Skip to content

Commit 906f3f4

Browse files
committed
feat: stack size in new hand dialog
1 parent 1daaf7b commit 906f3f4

File tree

4 files changed

+31
-7
lines changed

4 files changed

+31
-7
lines changed

hh_creator/dialog.py

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
from PyQt5.QtCore import pyqtSlot
88

99
from . import config, hh
10-
from .util import AutoUI, amount_validator, decimal_conversion
10+
from .util import AutoUI, decimal_conversion, amount_validator
1111

1212
if typing.TYPE_CHECKING:
1313
from .player import PlayerItemGroup
@@ -28,6 +28,7 @@ class NewHandDialog(QtWidgets.QDialog, AutoUI):
2828
"Straddle": Field(int, True),
2929
"Ante": Field(Decimal, True),
3030
"BBAnte": Field(Decimal, True),
31+
"Stack": Field(Decimal, False),
3132
"Players": Field(int, False),
3233
"Currency": Field(str, True),
3334
"Variant": Field(str, False, "comboBox", "CurrentText"),
@@ -44,8 +45,12 @@ def __init__(self, *a, **kw):
4445

4546
conf = config.config["new_hand"]
4647
for name, field in self.FIELDS.items():
48+
if name == "Stack":
49+
default = conf.get("default_stack_in_bb")
50+
else:
51+
default = conf.get(name)
4752
widget = self._get_widget(name)
48-
getattr(widget, f"set{field.input_property}")(conf.get(name))
53+
getattr(widget, f"set{field.input_property}")(default)
4954
if field.checkable:
5055
checkbox = self._get_checkbox(name)
5156
checked = conf.getboolean(f"{name}_checked")
@@ -166,7 +171,9 @@ def update_ok(self):
166171
ante = self.get_field_value("Ante", default=0)
167172
players = self.get_field_value("Players", default=0)
168173
decimals = self.get_field_value("Decimals", default=0)
174+
stack = self.get_field_value("Stack", default=0)
169175

176+
stack_ok = stack > 0
170177
sb_ok = 0 <= sb <= bb
171178
bb_ok = 0 < bb
172179
straddle_ok = (
@@ -178,7 +185,7 @@ def update_ok(self):
178185
decimals_ok = decimals >= 0
179186

180187
self.ok_button.setEnabled(
181-
all((sb_ok, bb_ok, straddle_ok, ante_ok, players_ok, decimals_ok))
188+
all((stack_ok, sb_ok, bb_ok, straddle_ok, ante_ok, players_ok, decimals_ok))
182189
)
183190

184191

hh_creator/main_window.py

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -152,8 +152,7 @@ def on_actionNew_triggered(self):
152152
self.scene.n_seats = dialog.get_field_value("Players")
153153

154154
self.scene.set_all_stacks(
155-
config.config["new_hand"].getint("default_stack_in_bb")
156-
* dialog.get_field_value("BB")
155+
dialog.get_field_value("Stack") * dialog.get_field_value("BB")
157156
)
158157

159158
self.scene.set_n_cards(dialog.get_n_cards())
@@ -166,7 +165,11 @@ def on_actionNew_triggered(self):
166165

167166
conf = dialog.conf
168167
for name, field in dialog.FIELDS.items():
169-
conf[name] = config.escape_dollar(dialog.get_field_value(name))
168+
if name == "Stack":
169+
conf_name = "default_stack_in_bb"
170+
else:
171+
conf_name = name
172+
conf[conf_name] = config.escape_dollar(dialog.get_field_value(name))
170173
if field.checkable:
171174
conf[f"{name}_checked"] = str(
172175
dialog._get_checkbox(name).isChecked()

hh_creator/resource/ui/NewHandDialog.ui

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -221,6 +221,20 @@
221221
</item>
222222
</layout>
223223
</item>
224+
<item row="11" column="0">
225+
<widget class="QLabel" name="label_11">
226+
<property name="text">
227+
<string>Stack</string>
228+
</property>
229+
</widget>
230+
</item>
231+
<item row="11" column="1">
232+
<layout class="QHBoxLayout">
233+
<item>
234+
<widget class="QLineEdit" name="lineEditStack"/>
235+
</item>
236+
</layout>
237+
</item>
224238
</layout>
225239
</item>
226240
<item>

hh_creator/util.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@ def __init__(self):
105105

106106
def decimal_conversion(text):
107107
try:
108-
return Decimal(text)
108+
return Decimal(text.replace(",", "."))
109109
except InvalidOperation:
110110
log.warning(f"Error converting {text} to decimal, returning 0")
111111
return Decimal(0)

0 commit comments

Comments
 (0)