Switch to ItemDelegate for PCs and Apps for proper hover and click behavior

This commit is contained in:
Cameron Gutman
2018-09-05 17:08:27 -07:00
parent bd9f2d2009
commit a7517dace3
2 changed files with 50 additions and 53 deletions
+9 -10
View File
@@ -16,8 +16,7 @@ GridView {
anchors.topMargin: 20
anchors.rightMargin: 5
anchors.bottomMargin: 5
cellWidth: 225; cellHeight: 350;
focus: true
cellWidth: 225; cellHeight: 385;
// Cache delegates for 1000px in both directions to improve
// scrolling and resizing performance
@@ -52,12 +51,13 @@ GridView {
model: appModel
delegate: Item {
width: 200; height: 300;
delegate: ItemDelegate {
width: 200; height: 335;
Image {
id: appIcon
anchors.horizontalCenter: parent.horizontalCenter;
y: 20
source: model.boxart
sourceSize {
width: 150
@@ -132,20 +132,19 @@ GridView {
}
}
MouseArea {
anchors.fill: parent
acceptedButtons: Qt.LeftButton | Qt.RightButton
onClicked: {
if (mouse.button === Qt.LeftButton) {
// Nothing is running or this app is running
launchOrResumeSelectedApp()
}
else {
MouseArea {
anchors.fill: parent
acceptedButtons: Qt.RightButton
onClicked: {
// Right click
appContextMenu.open()
}
}
}
Menu {
id: appContextMenu
+7 -9
View File
@@ -19,7 +19,6 @@ GridView {
anchors.rightMargin: 5
anchors.bottomMargin: 5
cellWidth: 350; cellHeight: 350;
focus: true
objectName: "Computers"
// The StackView will trigger a visibility change when
@@ -73,7 +72,7 @@ GridView {
model: computerModel
delegate: Item {
delegate: ItemDelegate {
width: 300; height: 300;
Image {
@@ -142,11 +141,7 @@ GridView {
}
}
MouseArea {
anchors.fill: parent
acceptedButtons: Qt.LeftButton | Qt.RightButton;
onClicked: {
if(mouse.button === Qt.LeftButton) {
if (model.addPc) {
addPcDialog.open()
}
@@ -177,16 +172,19 @@ GridView {
} else if (!model.online) {
pcContextMenu.open()
}
}
else { // right click
MouseArea {
anchors.fill: parent
acceptedButtons: Qt.RightButton;
onClicked: {
// right click
if (!model.addPc) { // but only for actual PCs, not the add-pc option
pcContextMenu.open()
}
}
}
}
}
MessageDialog {
id: errorDialog