diff --git a/BetButton.qml b/BetButton.qml index 0fcae2f..14fbe48 100644 --- a/BetButton.qml +++ b/BetButton.qml @@ -20,11 +20,17 @@ Item { border.width: 0 color: { - if (rouletteTable.numberOfBets < 2 || border.width == 3) { - if (tapHandler.pressed) { - "#88999999" - } else if (hoverHandler.hovered) { - "#88EEEEEE" + if (PlayerAreaModel.focusedPlayer == 0 && rouletteTable.numberOfBets == 1 && border.width != 3) { + "#00000000" + } else if (rouletteTable.numberOfBets < 2 || border.width == 3) { + if ((PlayerAreaModel.focusedPlayer == 0 && rouletteTable.numberOfBets < 1) || PlayerAreaModel.focusedPlayer != 0 || border.width == 3) { + if (tapHandler.pressed) { + "#88999999" + } else if (hoverHandler.hovered) { + "#88EEEEEE" + } else { + "#00000000" + } } else { "#00000000" } @@ -40,10 +46,19 @@ Item { id: tapHandler onTapped: { - if (rouletteTable.numberOfBets < 2 && parent.border.width == 0) { + if (PlayerAreaModel.focusedPlayer == 0 && rouletteTable.numberOfBets == 1 && parent.border.width != 3) { + + } else if (rouletteTable.numberOfBets < 2 && parent.border.width == 0) { parent.border.width = 3 - roulette.showBetInputDialog(betType, index_, betButton.parent.x + offsetX, - betButton.parent.y + offsetY) + + /* Don't show this dialog for the croupier */ + if (PlayerAreaModel.focusedPlayer != 0) { + roulette.showBetInputDialog(betType, index_, betButton.parent.x + offsetX, + betButton.parent.y + offsetY) + } else { + rouletteTable.numberOfBets = 1 + PlayerAreaModel.bet(betType, index_, 0) + } } else if (parent.border.width == 3) { parent.border.width = 0 PlayerAreaModel.removeBet(betType, index_) diff --git a/PlayerAreaModel.cpp b/PlayerAreaModel.cpp index c84645a..ab6a2cd 100644 --- a/PlayerAreaModel.cpp +++ b/PlayerAreaModel.cpp @@ -4,7 +4,7 @@ PlayerAreaModel::PlayerAreaModel(QObject *parent) { Player defaultValues; - for(int i = 0; i < 7; i++){ + for(int i = 0; i < 8; i++){ players.append(defaultValues); } } diff --git a/PlayerAreaView.qml b/PlayerAreaView.qml index 3e3e859..a40f3d6 100644 --- a/PlayerAreaView.qml +++ b/PlayerAreaView.qml @@ -12,7 +12,38 @@ Item { Text { id: croupier + font.pointSize: 18 text: "Croupier" + color: { + if (tapHandler.pressed) { + "#99000000" + } else { + "#000000" + } + } + + TapHandler { + id: tapHandler + + onSingleTapped: { + PlayerAreaModel.focusedPlayer = 0 + } + } + + Rectangle { + id: indicator + color: "red" + height: 10 + width: 10 + opacity: 0.5 + visible: PlayerAreaModel.focusedPlayer == 0 + + anchors { + verticalCenter: parent.verticalCenter + right: parent.left + rightMargin: 5 + } + } } ColumnLayout { @@ -47,7 +78,7 @@ Item { * This check will run once when the object is created, but then only refresh * when the NOTIFY signal for .focusedPlayer is sent */ - visible: PlayerAreaModel.focusedPlayer == index + visible: PlayerAreaModel.focusedPlayer - 1 == index opacity: 0.5 anchors { @@ -69,7 +100,7 @@ Item { onActiveFocusChanged: { /* focusReason 0, 1 and 2 are mouse, tab forward, and tab backward, respectively */ if (activeFocus && (focusReason == 0 || focusReason == 1 || focusReason == 2)) { - PlayerAreaModel.focusedPlayer = index + PlayerAreaModel.focusedPlayer = index + 1 } } } @@ -108,7 +139,7 @@ Item { target: PlayerAreaModel function onBetChanged(b, n, bet) { - if (PlayerAreaModel.focusedPlayer == index) { + if (PlayerAreaModel.focusedPlayer - 1 == index) { if (currentBet1.text == "") { currentBet1.betType = b currentBet1.n = n @@ -184,7 +215,7 @@ Item { } function onBetRemoved(b, n) { - if (PlayerAreaModel.focusedPlayer == index) { + if (PlayerAreaModel.focusedPlayer - 1 == index) { if (currentBet1.betType == b && currentBet1.n == n) { currentBet1.text = "" } else if (currentBet2.betType == b && currentBet2.n == n) { diff --git a/Root.qml b/Root.qml index 6f00759..655ba4a 100644 --- a/Root.qml +++ b/Root.qml @@ -12,6 +12,12 @@ Window { Pane { anchors.fill: parent + MouseArea { + anchors.fill: parent + + onClicked: focus = true + } + PlayerAreaView { id: playerAreaView }