forked from cwtch.im/ui
Add User Feedback when hovering over a contact in groups
This commit is contained in:
parent
ac6fb8d2e8
commit
bcd81c813d
|
@ -13,6 +13,7 @@ ColumnLayout {
|
||||||
id: overlay
|
id: overlay
|
||||||
property string name
|
property string name
|
||||||
property bool accepted
|
property bool accepted
|
||||||
|
property bool inGroup
|
||||||
|
|
||||||
|
|
||||||
StackToolbar {
|
StackToolbar {
|
||||||
|
@ -143,12 +144,14 @@ ColumnLayout {
|
||||||
|
|
||||||
onResetMessagePane: function() {
|
onResetMessagePane: function() {
|
||||||
overlayStack.overlay = overlayStack.chatOverlay
|
overlayStack.overlay = overlayStack.chatOverlay
|
||||||
|
overlay.inGroup = false
|
||||||
}
|
}
|
||||||
|
|
||||||
onSupplyGroupSettings: function(gid, name, server, invite, accepted, addrbooknames, addrbookaddrs) {
|
onSupplyGroupSettings: function(gid, name, server, invite, accepted, addrbooknames, addrbookaddrs) {
|
||||||
console.log("Supplied " + gid + " " + name + "Accepted " + accepted)
|
console.log("Supplied " + gid + " " + name + "Accepted " + accepted)
|
||||||
overlay.name = name
|
overlay.name = name
|
||||||
overlay.accepted = accepted
|
overlay.accepted = accepted
|
||||||
|
overlay.inGroup = true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -16,55 +16,66 @@ Item {
|
||||||
property int status
|
property int status
|
||||||
property bool isGroup
|
property bool isGroup
|
||||||
property bool showStatus
|
property bool showStatus
|
||||||
|
property bool highlight
|
||||||
|
|
||||||
Rectangle {
|
Rectangle {
|
||||||
|
id: mainImage
|
||||||
width: 48
|
width: 48
|
||||||
height: 48
|
height: 48
|
||||||
color: "#FFFFFF"
|
color: highlight ? windowItem.cwtch_dark_color: "#FFFFFF"
|
||||||
radius: width / 2
|
radius: width / 2
|
||||||
|
|
||||||
|
Rectangle {
|
||||||
|
width: highlight ? 44 : 48
|
||||||
|
height: highlight ? 44 : 48
|
||||||
|
color: "#FFFFFF"
|
||||||
|
radius: width / 2
|
||||||
|
anchors.centerIn:parent
|
||||||
|
|
||||||
Image { // PROFILE IMAGE
|
|
||||||
id: img
|
|
||||||
anchors.fill: parent
|
|
||||||
fillMode: Image.PreserveAspectFit
|
|
||||||
visible: false
|
|
||||||
}
|
|
||||||
|
|
||||||
Image { // CIRCLE MASK
|
Image { // PROFILE IMAGE
|
||||||
id: mask
|
id: img
|
||||||
fillMode: Image.PreserveAspectFit
|
anchors.fill: parent
|
||||||
visible: false
|
fillMode: Image.PreserveAspectFit
|
||||||
source: "qrc:/qml/images/extra/clipcircle.png"
|
visible: false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Image { // CIRCLE MASK
|
||||||
|
id: mask
|
||||||
|
fillMode: Image.PreserveAspectFit
|
||||||
|
visible: false
|
||||||
|
source: "qrc:/qml/images/extra/clipcircle.png"
|
||||||
|
}
|
||||||
|
|
||||||
|
OpacityMask {
|
||||||
|
anchors.fill: img
|
||||||
|
source: img
|
||||||
|
maskSource: mask
|
||||||
|
}
|
||||||
|
|
||||||
OpacityMask {
|
|
||||||
anchors.fill: img
|
|
||||||
source: img
|
|
||||||
maskSource: mask
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Rectangle { // PRESENCE INDICATOR
|
Rectangle { // PRESENCE INDICATOR
|
||||||
visible: showStatus
|
visible: showStatus
|
||||||
color: "#FFFFFF"
|
color: "#FFFFFF"
|
||||||
width: 8
|
width: 8
|
||||||
height: 8
|
height: 8
|
||||||
radius: 2
|
radius: 2
|
||||||
anchors.right: parent.right
|
anchors.right: parent.right
|
||||||
anchors.bottom: parent.bottom
|
anchors.bottom: parent.bottom
|
||||||
anchors.margins: 4
|
anchors.margins: 4
|
||||||
|
|
||||||
|
|
||||||
Rectangle { //-2:WtfCodeError,-1:Untrusted,0:Disconnected,1:Connecting,2:Connected,3:Authenticated,4:Failed,5:Killed
|
Rectangle { //-2:WtfCodeError,-1:Untrusted,0:Disconnected,1:Connecting,2:Connected,3:Authenticated,4:Failed,5:Killed
|
||||||
color: status == 3 ? "green" : status == -1 ? "blue" : status == 1 ? "orange" : status == 2 ? "orange" : "red"
|
color: status == 3 ? "green" : status == -1 ? "blue" : status == 1 ? "orange" : status == 2 ? "orange" : "red"
|
||||||
width: 5
|
width: 5
|
||||||
height: 5
|
height: 5
|
||||||
radius: 2
|
radius: 2
|
||||||
anchors.right: parent.right
|
anchors.right: parent.right
|
||||||
anchors.bottom: parent.bottom
|
anchors.bottom: parent.bottom
|
||||||
anchors.margins: 1.5
|
anchors.margins: 1.5
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -48,9 +48,17 @@ RowLayout {
|
||||||
handle: root.from
|
handle: root.from
|
||||||
visible: !fromMe
|
visible: !fromMe
|
||||||
showStatus: false
|
showStatus: false
|
||||||
|
highlight: ima.containsMouse
|
||||||
|
|
||||||
|
ToolTip.visible: ima.containsMouse
|
||||||
|
ToolTip.text: qsTr("Click to DM")
|
||||||
|
|
||||||
MouseArea {
|
MouseArea {
|
||||||
|
id: ima
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
|
hoverEnabled: overlay.inGroup
|
||||||
|
|
||||||
|
|
||||||
onClicked: {
|
onClicked: {
|
||||||
gcd.broadcast("ResetMessagePane")
|
gcd.broadcast("ResetMessagePane")
|
||||||
theStack.pane = theStack.messagePane
|
theStack.pane = theStack.messagePane
|
||||||
|
|
Loading…
Reference in New Issue