import NimQml QtObject: type player* = ref object of QObject p_name: string p_bet: int p_push: bool p_double: bool p_payout: int proc delete*(self: player) proc setup(self: player) proc newplayer*(): player = new(result, delete) result.p_name = "no player name" result.p_bet = 250000 result.p_push = false result.p_double = false result.p_payout = 250000 result.setup proc delete*(self: player) = self.QObject.delete proc setup(self: player) = self.QObject.setup proc getName*(self: player): string {.slot.} = result = self.p_name proc getBet*(self: player): int {.slot.} = result = self.p_bet proc getPush*(self: player): bool {.slot.} = result = self.p_push proc getDouble*(self: player): bool {.slot.} = result = self.p_double proc getPayout*(self: player): int {.slot.} = result = self.p_payout proc nameChanged*(self: player, name: string) {.signal.} proc betChanged*(self: player, bet: int) {.signal.} proc pushChanged*(self: player, push: bool) {.signal.} proc doubleChanged*(self: player, double: bool) {.signal.} proc payoutChanged*(self: player, payout: int) {.signal.} proc setName*(self: player, name: string) {.slot.} = if self.p_name == name: return self.p_name = name self.nameChanged(name) proc setBet*(self: player, bet: int) {.slot.} = if self.p_bet == bet: return self.p_bet = bet self.betChanged(bet) proc setPush*(self: player, push: bool) {.slot.} = if self.p_push == push: return self.p_push = push self.pushChanged(push) proc setDouble*(self: player, double: bool) {.slot.} = if self.p_double == double: return self.p_double = double self.doubleChanged(double) proc setPayout*(self: player, payout: int) {.slot.} = if self.p_payout == payout: return self.p_payout = payout self.payoutChanged(payout) proc calcPayout*(self: player, bet: int, push: bool, double: bool): int {.slot.} = var payout = bet * 2 self.p_bet = payout self.betChanged(payout) QtProperty[string] name: read = getName write = setName notify = nameChanged QtProperty[int] bet: read = getBet write = setBet notify = betChanged QtProperty[bool] push: read = getPush write = setPush notify = pushChanged QtProperty[bool] double: read = getDouble write = setDouble notify = doubleChanged QtProperty[int] payout: read = getPayout write = setPayout notify = payoutChanged