[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: [kmines/viranch/qtquick] src/qml: Implement flagged and questioned states which react to right-click
From: Viranch Mehta <viranch.mehta () gmail ! com>
Date: 2013-03-28 11:59:42
Message-ID: 20130328115942.D1A71A60C5 () git ! kde ! org
[Download RAW message or body]
Git commit 7ebc74d1747d3fe4dfc5bdda83a6edc4203ece9c by Viranch Mehta.
Committed on 06/08/2012 at 21:59.
Pushed by viranch into branch 'viranch/qtquick'.
Implement flagged and questioned states which react to right-clicks
M +25 -4 src/qml/CellItem.qml
M +1 -1 src/qml/logic.js
http://commits.kde.org/kmines/7ebc74d1747d3fe4dfc5bdda83a6edc4203ece9c
diff --git a/src/qml/CellItem.qml b/src/qml/CellItem.qml
index be79e9f..b461ea8 100644
--- a/src/qml/CellItem.qml
+++ b/src/qml/CellItem.qml
@@ -20,28 +20,49 @@ import org.kde.games.core 0.1 as KgCore
KgCore.CanvasItem {
id: cell
- spriteKey: revealed ? "cell_down" : "cell_up"
+ spriteKey: pressed || revealed ? "cell_down" : "cell_up"
property bool hasMine: false
property int digit: 0
+ property bool pressed: false
property bool revealed: false
+ property bool flagged: cellState == 1
+ property bool questioned: cellState == 2
+ property int cellState: 0
signal clicked
MouseArea {
anchors.fill: parent
- enabled: spriteKey=="cell_up" || spriteKey=="cell_down"
+ acceptedButtons: Qt.LeftButton | Qt.RightButton
+ enabled: !revealed
onPressed: {
- revealed = true;
+ if (mouse.button == Qt.LeftButton) {
+ cell.pressed = true;
+ }
}
onReleased: {
- cell.clicked();
+ cell.pressed = false;
+ if (mouse.button == Qt.LeftButton) {
+ if (cellState>0) return;
+ revealed = true;
+ cell.clicked();
+ } else {
+ if (revealed) return;
+ cellState = (cellState+1)%3;
+ }
}
}
KgCore.CanvasItem {
anchors.fill: parent
+ spriteKey: ["", "flag", "question"][cellState]
+ visible: cellState>0
+ }
+
+ KgCore.CanvasItem {
+ anchors.fill: parent
visible: parent.hasMine && revealed
spriteKey: "mine"
}
diff --git a/src/qml/logic.js b/src/qml/logic.js
index 4830a01..ef284f2 100644
--- a/src/qml/logic.js
+++ b/src/qml/logic.js
@@ -20,7 +20,7 @@ function revealEmptyCells(row, column) {
for (var i=0; i<list.length; i++) {
// first is row, second is col
item = field.cells.itemAt(list[i]);
- if (item.revealed /*|| item.flagged || item.questioned*/)
+ if (item.revealed || item.flagged || item.questioned)
continue;
if (item.digit == 0) {
item.revealed = true;
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic