import QtQuick import QtQuick.Layouts import roulette /* * The very important id 'rouletteTable' * comes from Roulette.qml */ Item { RowLayout { id: layout property int indexForDialog anchors { left: parent.left leftMargin: 90 top: parent.top topMargin: 22 } spacing: 1.8 Repeater { id: repeater model: 12 Item { property alias selected: selected id: betButton height: 45 width: 35 Rectangle { id: selected visible: true height: parent.height width: parent.width border.color: "blue" border.width: 0 color: { if (rouletteTable.numberOfBets < 2 || border.width == 2) { if (tapHandler1.pressed) { "#AA999999" } else if (hoverHandler.hovered) { "#AAEEEEEE" } else { "#00000000" } } else { "#00000000" } } HoverHandler { id: hoverHandler } TapHandler { id: tapHandler1 onTapped: { if (rouletteTable.numberOfBets < 2 && parent.border.width == 0) { parent.border.width = 2 layout.indexForDialog = index roulette.showBetInputDialog(PlayerAreaModel.STREET, index, betButton.x, betButton.y) } else if (parent.border.width == 2) { parent.border.width = 0 PlayerAreaModel.removeBet(PlayerAreaModel.STREET, index) rouletteTable.numberOfBets -= 1 } } } Connections { target: PlayerAreaModel function onFocusedPlayerChanged(b1, n1, b2, n2) { if (b1 == PlayerAreaModel.STREET && n1 == index) { if (selected.border.width != 0) { rouletteTable.numberOfBets -=1 } selected.border.width = 2; rouletteTable.numberOfBets += 1 } else if (b2 == PlayerAreaModel.STREET && n2 == index) { if (selected.border.width != 0) { rouletteTable.numberOfBets -=1 } selected.border.width = 2; rouletteTable.numberOfBets += 1 } else { if (selected.border.width != 0) { rouletteTable.numberOfBets -=1 } selected.border.width = 0; } } function onBetCanceled(n) { if (index == n) { selected.border.width = 0 } } } } } } } }