diff --git a/BetInputDialog.qml b/BetInputDialog.qml index 9b2c112..e686a1a 100644 --- a/BetInputDialog.qml +++ b/BetInputDialog.qml @@ -52,16 +52,6 @@ Dialog { } onAccepted: { - /* - * Qt has no good way of making bottom to top grid layouts, so I had to use - * a workaround where the indexes do not work as expected. - * - * A solution for the indexes is to rotate the layout 180ยบ, but that will mess up - * the x and y coordinates which is even more annoying to fix. - */ - if (betType == 9 && n <= 35) { - n = 35 - n - } PlayerAreaModel.bet(betType, n, input.text) rouletteTable.numberOfBets += 1 } diff --git a/PlayerAreaModel.cpp b/PlayerAreaModel.cpp index e03b2bc..c84645a 100644 --- a/PlayerAreaModel.cpp +++ b/PlayerAreaModel.cpp @@ -43,11 +43,17 @@ void PlayerAreaModel::bet(BetType b, int n, int bet) player->bet1.betType = b; player->bet1.betValue = bet; player->bet1.betSpot = n; + if (b == 9 && n <= 35) { + n = 35 - n; + } emit betChanged(b, n, bet); } else if (player->bet2.betType == NONE) { player->bet2.betType = b; player->bet2.betValue = bet; player->bet2.betSpot = n; + if (b == 9 && n <= 35) { + n = 35 - n; + } emit betChanged(b, n, bet); } } @@ -57,9 +63,15 @@ void PlayerAreaModel::removeBet(BetType b, int n) Player *player = &players[focusedPlayer_]; if (player->bet1.betType != NONE) { player->bet1.betType = NONE; + if (b == 9 && n <= 35) { + n = 35 - n; + } emit betRemoved(b, n); } else { player->bet2.betType = NONE; + if (b == 9 && n <= 35) { + n = 35 - n; + } emit betRemoved(b, n); } } diff --git a/PlayerAreaView.qml b/PlayerAreaView.qml index 4c589b9..3e3e859 100644 --- a/PlayerAreaView.qml +++ b/PlayerAreaView.qml @@ -75,7 +75,10 @@ Item { } Text { - id: currentBet + property int betType + property int n + + id: currentBet1 anchors { verticalCenter: inputField.verticalCenter @@ -86,49 +89,107 @@ Item { text: "" } + Text { + property int betType + property int n + + id: currentBet2 + + anchors { + verticalCenter: inputField.verticalCenter + left: currentBet1.right + leftMargin: 5 + } + + text: "" + } + Connections { target: PlayerAreaModel function onBetChanged(b, n, bet) { if (PlayerAreaModel.focusedPlayer == index) { - switch(b) { - case 1: - currentBet.text = "Red: " + bet + "g" - break; - case 2: - currentBet.text = "Black: " + bet + "g" - break; - case 3: - currentBet.text = "Odd: " + bet + "g" - break; - case 4: - currentBet.text = "Even: " + bet + "g" - break; - case 5: - currentBet.text = "Low: " + bet + "g" - break; - case 6: - currentBet.text = "High: " + bet + "g" - break; - case 7: - currentBet.text = "Dozen " + (n + 1) + ": " + bet + "g" - break; - case 8: - currentBet.text = "Street " + (n + 1) + ": " + bet + "g" - break; - case 9: - currentBet.text = "Single " + (n + 1) + ": " + bet + "g" - break; - case 10: - currentBet.text = "Column " + (n + 1) + ": " + bet + "g" - break; + if (currentBet1.text == "") { + currentBet1.betType = b + currentBet1.n = n + switch(b) { + case 1: + currentBet1.text = "Red: " + bet + "g" + break; + case 2: + currentBet1.text = "Black: " + bet + "g" + break; + case 3: + currentBet1.text = "Odd: " + bet + "g" + break; + case 4: + currentBet1.text = "Even: " + bet + "g" + break; + case 5: + currentBet1.text = "Low: " + bet + "g" + break; + case 6: + currentBet1.text = "High: " + bet + "g" + break; + case 7: + currentBet1.text = "Dozen " + (n + 1) + ": " + bet + "g" + break; + case 8: + currentBet1.text = "Street " + (n + 1) + ": " + bet + "g" + break; + case 9: + currentBet1.text = "Single " + (n + 1) + ": " + bet + "g" + break; + case 10: + currentBet1.text = "Column " + (n + 1) + ": " + bet + "g" + break; + } + } else { + currentBet2.betType = b + currentBet2.n = n + switch(b) { + case 1: + currentBet2.text = "Red: " + bet + "g" + break; + case 2: + currentBet2.text = "Black: " + bet + "g" + break; + case 3: + currentBet2.text = "Odd: " + bet + "g" + break; + case 4: + currentBet2.text = "Even: " + bet + "g" + break; + case 5: + currentBet2.text = "Low: " + bet + "g" + break; + case 6: + currentBet2.text = "High: " + bet + "g" + break; + case 7: + currentBet2.text = "Dozen " + (n + 1) + ": " + bet + "g" + break; + case 8: + currentBet2.text = "Street " + (n + 1) + ": " + bet + "g" + break; + case 9: + currentBet2.text = "Single " + (n + 1) + ": " + bet + "g" + break; + case 10: + currentBet2.text = "Column " + (n + 1) + ": " + bet + "g" + break; + } } } } - function onBetRemoved(b, n, bet) { + function onBetRemoved(b, n) { if (PlayerAreaModel.focusedPlayer == index) { - currentBet.text = "" + if (currentBet1.betType == b && currentBet1.n == n) { + currentBet1.text = "" + } else if (currentBet2.betType == b && currentBet2.n == n) { + currentBet2.text = "" + } } } }