Skip to content

Commit

Permalink
qml: improve peer delegate
Browse files Browse the repository at this point in the history
  • Loading branch information
promag committed Nov 30, 2023
1 parent bc6f872 commit 04d9f0d
Showing 1 changed file with 51 additions and 70 deletions.
121 changes: 51 additions & 70 deletions src/qml/pages/node/Peers.qml
Original file line number Diff line number Diff line change
Expand Up @@ -153,55 +153,22 @@ Page {
}
}

delegate: Item {
delegate: ItemDelegate {
id: delegate
required property int nodeId;
required property string address;
required property string subversion;
required property string direction;
required property string connectionType;
required property string network;
property color stateColor;
implicitHeight: 60
implicitWidth: listView.width
state: "FILLED"

states: [
State {
name: "FILLED"
PropertyChanges { target: delegate; stateColor: Theme.color.neutral9 }
},
State {
name: "HOVER"
PropertyChanges { target: delegate; stateColor: Theme.color.orangeLight1 }
},
State {
name: "ACTIVE"
PropertyChanges { target: delegate; stateColor: Theme.color.orange }
}
]

MouseArea {
anchors.fill: parent
hoverEnabled: AppMode.isDesktop
onEntered: {
delegate.state = "HOVER"
}
onExited: {
delegate.state = "FILLED"
}
onPressed: {
delegate.state = "ACTIVE"
}
onReleased: {
if (mouseArea.containsMouse) {
delegate.state = "HOVER"
} else {
delegate.state = "FILLED"
}
readonly property color stateColor: {
if (delegate.down) {
return Theme.color.orange
} else if (delegate.hovered) {
return Theme.color.orangeLight1
}
return Theme.color.neutral9
}

Connections {
target: peerListModelProxy
function onSortByChanged(roleName) {
Expand Down Expand Up @@ -254,41 +221,55 @@ Page {
quaternary.text = subversion
}
}

ColumnLayout {
anchors.left: parent.left
CoreText {
Layout.alignment: Qt.AlignLeft
id: primary
font.pixelSize: 18
color: delegate.stateColor
}
CoreText {
Layout.alignment: Qt.AlignLeft
id: tertiary
font.pixelSize: 15
color: Theme.color.neutral7
leftPadding: 0
rightPadding: 0
topPadding: 0
bottomPadding: 14
width: listView.width
background: Item {
Separator {
anchors.bottom: parent.bottom
width: parent.width
}
}
ColumnLayout {
anchors.right: parent.right
CoreText {
Layout.alignment: Qt.AlignRight
id: secondary
font.pixelSize: 18
color: delegate.stateColor
contentItem: RowLayout {
spacing: 15
ColumnLayout {
Layout.fillWidth: true
CoreText {
Layout.alignment: Qt.AlignLeft
id: primary
font.pixelSize: 18
color: delegate.stateColor
}
CoreText {
Layout.alignment: Qt.AlignLeft
Layout.fillWidth: true
Layout.preferredWidth: 0
id: tertiary
font.pixelSize: 15
color: Theme.color.neutral7
elide: Text.ElideMiddle
wrapMode: Text.NoWrap
horizontalAlignment: Text.AlignLeft
}
}
CoreText {
Layout.alignment: Qt.AlignRight
id: quaternary
font.pixelSize: 15
color: Theme.color.neutral7
ColumnLayout {
Layout.fillWidth: false
CoreText {
Layout.alignment: Qt.AlignRight
id: secondary
font.pixelSize: 18
color: delegate.stateColor
}
CoreText {
Layout.alignment: Qt.AlignRight
id: quaternary
font.pixelSize: 15
color: Theme.color.neutral7
}
}
}
Separator {
anchors.bottom: parent.bottom
width: parent.width
}
}
}
}

0 comments on commit 04d9f0d

Please sign in to comment.