Make the starting budget text editable.

This commit is contained in:
Dan Albert 2020-10-10 13:00:59 -07:00
parent b0a176a22c
commit 1ac062653d

View File

@ -2,7 +2,7 @@ from __future__ import unicode_literals
import datetime
import logging
from typing import List
from typing import List, Optional
from PySide2 import QtGui, QtWidgets
from PySide2.QtCore import QItemSelectionModel, QPoint, Qt
@ -295,6 +295,44 @@ class TheaterConfiguration(QtWidgets.QWizardPage):
self.setLayout(layout)
class CurrencySpinner(QtWidgets.QSpinBox):
def __init__(self, minimum: Optional[int] = None,
maximum: Optional[int] = None,
initial: Optional[int] = None) -> None:
super().__init__()
if minimum is not None:
self.setMinimum(minimum)
if maximum is not None:
self.setMaximum(maximum)
if initial is not None:
self.setValue(initial)
def textFromValue(self, val: int) -> str:
return f"${val}"
class BudgetInputs(QtWidgets.QGridLayout):
def __init__(self) -> None:
super().__init__()
self.addWidget(QtWidgets.QLabel("Starting money"), 0, 0)
minimum = 0
maximum = 5000
initial = 650
slider = QtWidgets.QSlider(Qt.Horizontal)
slider.setMinimum(minimum)
slider.setMaximum(maximum)
slider.setValue(initial)
self.starting_money = CurrencySpinner(minimum, maximum, initial)
slider.valueChanged.connect(lambda x: self.starting_money.setValue(x))
self.starting_money.valueChanged.connect(lambda x: slider.setValue(x))
self.addWidget(slider, 1, 0)
self.addWidget(self.starting_money, 1, 1)
class MiscOptions(QtWidgets.QWizardPage):
def __init__(self, parent=None):
super(MiscOptions, self).__init__(parent)
@ -327,16 +365,6 @@ class MiscOptions(QtWidgets.QWizardPage):
no_enemy_navy = QtWidgets.QCheckBox()
self.registerField('no_enemy_navy', no_enemy_navy)
# Economy settings
economySettingsGroup = QtWidgets.QGroupBox("Economy")
starting_money_slider = QtWidgets.QSlider(Qt.Horizontal)
starting_money_slider.setMinimum(0)
starting_money_slider.setMaximum(5000)
starting_money_slider.setValue(650)
starting_money_label = QtWidgets.QLabel("$650M")
starting_money_slider.valueChanged.connect(lambda x: starting_money_label.setText("${}M".format(x)))
self.registerField('starting_money', starting_money_slider)
layout = QtWidgets.QGridLayout()
layout.addWidget(QtWidgets.QLabel("Start at mid game"), 1, 0)
layout.addWidget(midGame, 1, 1)
@ -357,11 +385,10 @@ class MiscOptions(QtWidgets.QWizardPage):
generatorLayout.addWidget(no_enemy_navy, 5, 1)
generatorSettingsGroup.setLayout(generatorLayout)
economyLayout = QtWidgets.QGridLayout()
economyLayout.addWidget(QtWidgets.QLabel("Starting money"), 0, 0)
economyLayout.addWidget(starting_money_slider, 1, 0)
economyLayout.addWidget(starting_money_label, 1, 1)
economySettingsGroup.setLayout(economyLayout)
budget_inputs = BudgetInputs()
economySettingsGroup = QtWidgets.QGroupBox("Economy")
economySettingsGroup.setLayout(budget_inputs)
self.registerField('starting_money', budget_inputs.starting_money)
mlayout = QVBoxLayout()
mlayout.addWidget(miscSettingsGroup)