mirror of
https://github.com/dcs-retribution/dcs-retribution.git
synced 2025-11-10 15:41:24 +00:00
PySide6 steamlining
This commit is contained in:
parent
7a3c9a707f
commit
3c921198af
@ -49,13 +49,13 @@ class TwoColumnRowDelegate(QStyledItemDelegate):
|
||||
with painter_context(painter):
|
||||
painter.setFont(self.get_font(option))
|
||||
|
||||
icon: Optional[QIcon] = index.data(Qt.DecorationRole)
|
||||
icon: Optional[QIcon] = index.data(Qt.ItemDataRole.DecorationRole)
|
||||
|
||||
if icon is not None:
|
||||
icon.paint(
|
||||
painter,
|
||||
rect,
|
||||
Qt.AlignLeft | Qt.AlignVCenter,
|
||||
Qt.AlignmentFlag.AlignLeft | Qt.AlignmentFlag.AlignVCenter,
|
||||
self.icon_mode(option),
|
||||
self.icon_state(option),
|
||||
)
|
||||
@ -65,25 +65,33 @@ class TwoColumnRowDelegate(QStyledItemDelegate):
|
||||
for row in range(self.rows):
|
||||
y = row_height * row
|
||||
location = rect.adjusted(0, y, 0, y)
|
||||
painter.drawText(location, Qt.AlignLeft, self.text_for(index, row, 0))
|
||||
painter.drawText(
|
||||
location, Qt.AlignmentFlag.AlignLeft, self.text_for(index, row, 0)
|
||||
)
|
||||
if self.columns == 2:
|
||||
painter.drawText(
|
||||
location, Qt.AlignRight, self.text_for(index, row, 1)
|
||||
location,
|
||||
Qt.AlignmentFlag.AlignRight,
|
||||
self.text_for(index, row, 1),
|
||||
)
|
||||
|
||||
@staticmethod
|
||||
def icon_mode(option: QStyleOptionViewItem) -> QIcon.Mode:
|
||||
if not (option.state & QStyle.State_Enabled):
|
||||
return QIcon.Disabled
|
||||
elif option.state & QStyle.State_Selected:
|
||||
return QIcon.Selected
|
||||
elif option.state & QStyle.State_Active:
|
||||
return QIcon.Active
|
||||
return QIcon.Normal
|
||||
if not (option.state & QStyle.StateFlag.State_Enabled):
|
||||
return QIcon.Mode.Disabled
|
||||
elif option.state & QStyle.StateFlag.State_Selected:
|
||||
return QIcon.Mode.Selected
|
||||
elif option.state & QStyle.StateFlag.State_Active:
|
||||
return QIcon.Mode.Active
|
||||
return QIcon.Mode.Normal
|
||||
|
||||
@staticmethod
|
||||
def icon_state(option: QStyleOptionViewItem) -> QIcon.State:
|
||||
return QIcon.On if option.state & QStyle.State_Open else QIcon.Off
|
||||
return (
|
||||
QIcon.State.On
|
||||
if option.state & QStyle.StateFlag.State_Open
|
||||
else QIcon.State.Off
|
||||
)
|
||||
|
||||
@staticmethod
|
||||
def icon_size(option: QStyleOptionViewItem) -> QSize:
|
||||
@ -110,7 +118,7 @@ class TwoColumnRowDelegate(QStyledItemDelegate):
|
||||
width = 0
|
||||
height = 0
|
||||
for column in range(self.columns):
|
||||
size = metrics.size(0, self.text_for(index, row, column))
|
||||
size = metrics.size(0, self.text_for(index, row, column), 0)
|
||||
width += size.width()
|
||||
height = max(height, size.height())
|
||||
widths.append(width)
|
||||
|
||||
@ -14,4 +14,4 @@ def report_errors(
|
||||
yield
|
||||
except error_type as ex:
|
||||
logging.exception(title)
|
||||
QMessageBox().critical(parent, title, str(ex), QMessageBox.Ok)
|
||||
QMessageBox().critical(parent, title, str(ex), QMessageBox.StandardButton.Ok)
|
||||
|
||||
@ -104,14 +104,14 @@ class NullListModel(QAbstractListModel):
|
||||
def rowCount(self, parent: QModelIndex = QModelIndex()) -> int:
|
||||
return 0
|
||||
|
||||
def data(self, index: QModelIndex, role: int = Qt.DisplayRole) -> Any:
|
||||
def data(self, index: QModelIndex, role: int = Qt.ItemDataRole.DisplayRole) -> Any:
|
||||
return None
|
||||
|
||||
|
||||
class PackageModel(QAbstractListModel):
|
||||
"""The model for an ATO package."""
|
||||
|
||||
FlightRole = Qt.UserRole
|
||||
FlightRole = Qt.ItemDataRole.UserRole
|
||||
|
||||
#: Emitted when this package is being deleted from the ATO.
|
||||
deleted = Signal()
|
||||
@ -127,13 +127,13 @@ class PackageModel(QAbstractListModel):
|
||||
def rowCount(self, parent: QModelIndex = QModelIndex()) -> int:
|
||||
return len(self.package.flights)
|
||||
|
||||
def data(self, index: QModelIndex, role: int = Qt.DisplayRole) -> Any:
|
||||
def data(self, index: QModelIndex, role: int = Qt.ItemDataRole.DisplayRole) -> Any:
|
||||
if not index.isValid():
|
||||
return None
|
||||
flight = self.flight_at_index(index)
|
||||
if role == Qt.DisplayRole:
|
||||
if role == Qt.ItemDataRole.DisplayRole:
|
||||
return self.text_for_flight(flight)
|
||||
if role == Qt.DecorationRole:
|
||||
if role == Qt.ItemDataRole.DecorationRole:
|
||||
return self.icon_for_flight(flight)
|
||||
elif role == PackageModel.FlightRole:
|
||||
return flight
|
||||
@ -231,7 +231,7 @@ class PackageModel(QAbstractListModel):
|
||||
class AtoModel(QAbstractListModel):
|
||||
"""The model for an AirTaskingOrder."""
|
||||
|
||||
PackageRole = Qt.UserRole
|
||||
PackageRole = Qt.ItemDataRole.UserRole
|
||||
|
||||
client_slots_changed = Signal()
|
||||
packages_changed = Signal()
|
||||
@ -250,11 +250,11 @@ class AtoModel(QAbstractListModel):
|
||||
def rowCount(self, parent: QModelIndex = QModelIndex()) -> int:
|
||||
return len(self.ato.packages)
|
||||
|
||||
def data(self, index: QModelIndex, role: int = Qt.DisplayRole) -> Any:
|
||||
def data(self, index: QModelIndex, role: int = Qt.ItemDataRole.DisplayRole) -> Any:
|
||||
if not index.isValid():
|
||||
return None
|
||||
package = self.ato.packages[index.row()]
|
||||
if role == Qt.DisplayRole:
|
||||
if role == Qt.ItemDataRole.DisplayRole:
|
||||
return f"{package.package_description} {package.target.name}"
|
||||
elif role == AtoModel.PackageRole:
|
||||
return package
|
||||
@ -360,7 +360,7 @@ class AtoModel(QAbstractListModel):
|
||||
class TransferModel(QAbstractListModel):
|
||||
"""The model for a ground unit transfer."""
|
||||
|
||||
TransferRole = Qt.UserRole
|
||||
TransferRole = Qt.ItemDataRole.UserRole
|
||||
|
||||
def __init__(self, game_model: GameModel) -> None:
|
||||
super().__init__()
|
||||
@ -373,13 +373,13 @@ class TransferModel(QAbstractListModel):
|
||||
def rowCount(self, parent: QModelIndex = QModelIndex()) -> int:
|
||||
return self.transfers.pending_transfer_count
|
||||
|
||||
def data(self, index: QModelIndex, role: int = Qt.DisplayRole) -> Any:
|
||||
def data(self, index: QModelIndex, role: int = Qt.ItemDataRole.DisplayRole) -> Any:
|
||||
if not index.isValid():
|
||||
return None
|
||||
transfer = self.transfer_at_index(index)
|
||||
if role == Qt.DisplayRole:
|
||||
if role == Qt.ItemDataRole.DisplayRole:
|
||||
return self.text_for_transfer(transfer)
|
||||
if role == Qt.DecorationRole:
|
||||
if role == Qt.ItemDataRole.DecorationRole:
|
||||
return self.icon_for_transfer(transfer)
|
||||
elif role == TransferModel.TransferRole:
|
||||
return transfer
|
||||
@ -422,7 +422,7 @@ class TransferModel(QAbstractListModel):
|
||||
class AirWingModel(QAbstractListModel):
|
||||
"""The model for an air wing."""
|
||||
|
||||
SquadronRole = Qt.UserRole
|
||||
SquadronRole = Qt.ItemDataRole.UserRole
|
||||
|
||||
def __init__(self, game_model: GameModel, player: bool) -> None:
|
||||
super().__init__()
|
||||
@ -432,13 +432,13 @@ class AirWingModel(QAbstractListModel):
|
||||
def rowCount(self, parent: QModelIndex = QModelIndex()) -> int:
|
||||
return self.game_model.game.air_wing_for(self.player).size
|
||||
|
||||
def data(self, index: QModelIndex, role: int = Qt.DisplayRole) -> Any:
|
||||
def data(self, index: QModelIndex, role: int = Qt.ItemDataRole.DisplayRole) -> Any:
|
||||
if not index.isValid():
|
||||
return None
|
||||
squadron = self.squadron_at_index(index)
|
||||
if role == Qt.DisplayRole:
|
||||
if role == Qt.ItemDataRole.DisplayRole:
|
||||
return self.text_for_squadron(squadron)
|
||||
if role == Qt.DecorationRole:
|
||||
if role == Qt.ItemDataRole.DecorationRole:
|
||||
return self.icon_for_squadron(squadron)
|
||||
elif role == AirWingModel.SquadronRole:
|
||||
return squadron
|
||||
@ -468,7 +468,7 @@ class AirWingModel(QAbstractListModel):
|
||||
class SquadronModel(QAbstractListModel):
|
||||
"""The model for a squadron."""
|
||||
|
||||
PilotRole = Qt.UserRole
|
||||
PilotRole = Qt.ItemDataRole.UserRole
|
||||
|
||||
def __init__(self, squadron: Squadron) -> None:
|
||||
super().__init__()
|
||||
@ -477,13 +477,13 @@ class SquadronModel(QAbstractListModel):
|
||||
def rowCount(self, parent: QModelIndex = QModelIndex()) -> int:
|
||||
return self.squadron.number_of_pilots_including_inactive
|
||||
|
||||
def data(self, index: QModelIndex, role: int = Qt.DisplayRole) -> Any:
|
||||
def data(self, index: QModelIndex, role: int = Qt.ItemDataRole.DisplayRole) -> Any:
|
||||
if not index.isValid():
|
||||
return None
|
||||
pilot = self.pilot_at_index(index)
|
||||
if role == Qt.DisplayRole:
|
||||
if role == Qt.ItemDataRole.DisplayRole:
|
||||
return self.text_for_pilot(pilot)
|
||||
if role == Qt.DecorationRole:
|
||||
if role == Qt.ItemDataRole.DecorationRole:
|
||||
return self.icon_for_pilot(pilot)
|
||||
elif role == SquadronModel.PilotRole:
|
||||
return pilot
|
||||
|
||||
@ -36,7 +36,7 @@ class UncaughtExceptionHandler(QObject):
|
||||
QApplication.focusWidget(),
|
||||
"An unexpected error occurred",
|
||||
"\n".join([message, "", exception]),
|
||||
QMessageBox.Ok,
|
||||
QMessageBox.StandardButton.Ok,
|
||||
)
|
||||
else:
|
||||
logging.critical("No QApplication instance available.")
|
||||
|
||||
@ -19,7 +19,7 @@ class QLabeledWidget(QHBoxLayout):
|
||||
label = QLabel(text)
|
||||
self.addWidget(label)
|
||||
self.addStretch()
|
||||
self.addWidget(widget, alignment=Qt.AlignRight)
|
||||
self.addWidget(widget, alignment=Qt.AlignmentFlag.AlignRight)
|
||||
if tooltip is not None:
|
||||
label.setToolTip(tooltip)
|
||||
widget.setToolTip(tooltip)
|
||||
|
||||
@ -5,28 +5,30 @@ from PySide6.QtWidgets import QCalendarWidget
|
||||
class QLiberationCalendar(QCalendarWidget):
|
||||
def __init__(self, parent=None):
|
||||
super(QLiberationCalendar, self).__init__(parent)
|
||||
self.setVerticalHeaderFormat(QCalendarWidget.NoVerticalHeader)
|
||||
self.setVerticalHeaderFormat(
|
||||
QCalendarWidget.VerticalHeaderFormat.NoVerticalHeader
|
||||
)
|
||||
self.setGridVisible(False)
|
||||
|
||||
# Overrride default QCalendar behaviour that is rendering week end days in red
|
||||
for d in (
|
||||
QtCore.Qt.Monday,
|
||||
QtCore.Qt.Tuesday,
|
||||
QtCore.Qt.Wednesday,
|
||||
QtCore.Qt.Thursday,
|
||||
QtCore.Qt.Friday,
|
||||
QtCore.Qt.Saturday,
|
||||
QtCore.Qt.Sunday,
|
||||
QtCore.Qt.DayOfWeek.Monday,
|
||||
QtCore.Qt.DayOfWeek.Tuesday,
|
||||
QtCore.Qt.DayOfWeek.Wednesday,
|
||||
QtCore.Qt.DayOfWeek.Thursday,
|
||||
QtCore.Qt.DayOfWeek.Friday,
|
||||
QtCore.Qt.DayOfWeek.Saturday,
|
||||
QtCore.Qt.DayOfWeek.Sunday,
|
||||
):
|
||||
fmt = self.weekdayTextFormat(d)
|
||||
fmt.setForeground(QtCore.Qt.darkGray)
|
||||
fmt.setForeground(QtCore.Qt.GlobalColor.darkGray)
|
||||
self.setWeekdayTextFormat(d, fmt)
|
||||
|
||||
def paintCell(self, painter, rect, date):
|
||||
if date == self.selectedDate():
|
||||
painter.save()
|
||||
painter.fillRect(rect, QtGui.QColor("#D3D3D3"))
|
||||
painter.setPen(QtCore.Qt.NoPen)
|
||||
painter.setPen(QtCore.Qt.PenStyle.NoPen)
|
||||
painter.setBrush(QtGui.QColor(52, 68, 85))
|
||||
r = QtCore.QRect(
|
||||
QtCore.QPoint(), min(rect.width(), rect.height()) * QtCore.QSize(1, 1)
|
||||
@ -34,7 +36,7 @@ class QLiberationCalendar(QCalendarWidget):
|
||||
r.moveCenter(rect.center())
|
||||
painter.drawEllipse(r)
|
||||
painter.setPen(QtGui.QPen(QtGui.QColor("white")))
|
||||
painter.drawText(rect, QtCore.Qt.AlignCenter, str(date.day()))
|
||||
painter.drawText(rect, QtCore.Qt.AlignmentFlag.AlignCenter, str(date.day()))
|
||||
painter.restore()
|
||||
else:
|
||||
super(QLiberationCalendar, self).paintCell(painter, rect, date)
|
||||
|
||||
@ -215,17 +215,17 @@ class QTopPanel(QFrame):
|
||||
"<br />Click 'Yes' to continue with an AI only mission"
|
||||
"<br />Click 'No' if you'd like to make more changes."
|
||||
),
|
||||
QMessageBox.No,
|
||||
QMessageBox.Yes,
|
||||
QMessageBox.StandardButton.No,
|
||||
QMessageBox.StandardButton.Yes,
|
||||
)
|
||||
return result == QMessageBox.Yes
|
||||
return result == QMessageBox.StandardButton.Yes
|
||||
|
||||
def confirm_negative_start_time(self, negative_starts: List[Package]) -> bool:
|
||||
formatted = "<br />".join(
|
||||
[f"{p.primary_task} {p.target.name}" for p in negative_starts]
|
||||
)
|
||||
mbox = QMessageBox(
|
||||
QMessageBox.Question,
|
||||
QMessageBox.Icon.Question,
|
||||
"Continue with past start times?",
|
||||
(
|
||||
"Some flights in the following packages have start times set "
|
||||
@ -244,9 +244,13 @@ class QTopPanel(QFrame):
|
||||
),
|
||||
parent=self,
|
||||
)
|
||||
auto = mbox.addButton("Fix TOTs automatically", QMessageBox.ActionRole)
|
||||
ignore = mbox.addButton("Continue without fixing", QMessageBox.DestructiveRole)
|
||||
cancel = mbox.addButton(QMessageBox.Cancel)
|
||||
auto = mbox.addButton(
|
||||
"Fix TOTs automatically", QMessageBox.ButtonRole.ActionRole
|
||||
)
|
||||
ignore = mbox.addButton(
|
||||
"Continue without fixing", QMessageBox.ButtonRole.DestructiveRole
|
||||
)
|
||||
cancel = mbox.addButton(QMessageBox.StandardButton.Cancel)
|
||||
mbox.setEscapeButton(cancel)
|
||||
mbox.exec_()
|
||||
clicked = mbox.clickedButton()
|
||||
@ -271,7 +275,7 @@ class QTopPanel(QFrame):
|
||||
[f"{p.primary_task} {p.target}: {f}" for p, f in missing_pilots]
|
||||
)
|
||||
mbox = QMessageBox(
|
||||
QMessageBox.Critical,
|
||||
QMessageBox.Icon.Critical,
|
||||
"Flights are missing pilots",
|
||||
(
|
||||
"The following flights are missing one or more pilots:<br />"
|
||||
@ -283,7 +287,7 @@ class QTopPanel(QFrame):
|
||||
),
|
||||
parent=self,
|
||||
)
|
||||
mbox.setEscapeButton(mbox.addButton(QMessageBox.Close))
|
||||
mbox.setEscapeButton(mbox.addButton(QMessageBox.StandardButton.Close))
|
||||
mbox.exec_()
|
||||
return True
|
||||
|
||||
|
||||
@ -79,7 +79,7 @@ class QFlightList(QListView):
|
||||
if package_model is not None:
|
||||
self.setItemDelegate(FlightDelegate(package_model.package))
|
||||
self.setIconSize(QSize(91, 24))
|
||||
self.setSelectionBehavior(QAbstractItemView.SelectItems)
|
||||
self.setSelectionBehavior(QAbstractItemView.SelectionBehavior.SelectItems)
|
||||
self.doubleClicked.connect(self.on_double_click)
|
||||
|
||||
def set_package(self, model: Optional[PackageModel]) -> None:
|
||||
@ -93,7 +93,8 @@ class QFlightList(QListView):
|
||||
# noinspection PyUnresolvedReferences
|
||||
model.deleted.connect(self.disconnect_model)
|
||||
self.selectionModel().setCurrentIndex(
|
||||
model.index(0, 0, QModelIndex()), QItemSelectionModel.Select
|
||||
model.index(0, 0, QModelIndex()),
|
||||
QItemSelectionModel.SelectionFlag.Select,
|
||||
)
|
||||
|
||||
def disconnect_model(self) -> None:
|
||||
@ -308,7 +309,7 @@ class QPackageList(QListView):
|
||||
self.setModel(model)
|
||||
self.setItemDelegate(PackageDelegate(game_model))
|
||||
self.setIconSize(QSize(0, 0))
|
||||
self.setSelectionBehavior(QAbstractItemView.SelectItems)
|
||||
self.setSelectionBehavior(QAbstractItemView.SelectionBehavior.SelectItems)
|
||||
self.model().rowsInserted.connect(self.on_new_packages)
|
||||
self.doubleClicked.connect(self.on_double_click)
|
||||
|
||||
@ -346,7 +347,7 @@ class QPackageList(QListView):
|
||||
# the player saving a new package, so selecting it helps them view/edit
|
||||
# it faster.
|
||||
self.selectionModel().setCurrentIndex(
|
||||
self.model().index(first, 0), QItemSelectionModel.Select
|
||||
self.model().index(first, 0), QItemSelectionModel.SelectionFlag.Select
|
||||
)
|
||||
|
||||
def on_double_click(self, index: QModelIndex) -> None:
|
||||
@ -477,7 +478,7 @@ class QAirTaskingOrderPanel(QSplitter):
|
||||
"""
|
||||
|
||||
def __init__(self, game_model: GameModel) -> None:
|
||||
super().__init__(Qt.Vertical)
|
||||
super().__init__(Qt.Orientation.Vertical)
|
||||
self.ato_model = game_model.ato_model
|
||||
|
||||
self.package_panel = QPackagePanel(game_model, self.ato_model)
|
||||
|
||||
@ -15,7 +15,7 @@ class QFilteredComboBox(QComboBox):
|
||||
):
|
||||
super(QFilteredComboBox, self).__init__(parent)
|
||||
|
||||
self.setFocusPolicy(Qt.StrongFocus)
|
||||
self.setFocusPolicy(Qt.FocusPolicy.StrongFocus)
|
||||
self.setEditable(True)
|
||||
self.completer = QCompleter(self)
|
||||
|
||||
@ -27,9 +27,11 @@ class QFilteredComboBox(QComboBox):
|
||||
self.include_friendly = include_friendly
|
||||
|
||||
# always show all completions
|
||||
self.completer.setCompletionMode(QCompleter.UnfilteredPopupCompletion)
|
||||
self.completer.setCompletionMode(
|
||||
QCompleter.CompletionMode.UnfilteredPopupCompletion
|
||||
)
|
||||
self.pFilterModel = QSortFilterProxyModel(self)
|
||||
self.pFilterModel.setFilterCaseSensitivity(Qt.CaseInsensitive)
|
||||
self.pFilterModel.setFilterCaseSensitivity(Qt.CaseSensitivity.CaseInsensitive)
|
||||
|
||||
self.completer.setPopup(self.view())
|
||||
|
||||
|
||||
@ -39,7 +39,10 @@ class QLiberationMap(QWebEngineView):
|
||||
# Required to allow "cross-origin" access from file:// scoped canvas.html to the
|
||||
# localhost HTTP backend.
|
||||
self.page.settings().setAttribute(
|
||||
QWebEngineSettings.LocalContentCanAccessRemoteUrls, True
|
||||
QWebEngineSettings.WebAttribute.LocalContentCanAccessRemoteUrls, True
|
||||
)
|
||||
self.page.settings().setAttribute(
|
||||
QWebEngineSettings.WebAttribute.WebGLEnabled, True
|
||||
)
|
||||
|
||||
if dev:
|
||||
|
||||
@ -14,7 +14,7 @@ class FloatSpinSlider(QHBoxLayout):
|
||||
) -> None:
|
||||
super().__init__()
|
||||
|
||||
slider = QSlider(Qt.Horizontal)
|
||||
slider = QSlider(Qt.Orientation.Horizontal)
|
||||
slider.setMinimum(int(minimum * divisor))
|
||||
slider.setMaximum(int(maximum * divisor))
|
||||
slider.setValue(int(initial * divisor))
|
||||
@ -36,7 +36,7 @@ class TimeInputs(QtWidgets.QHBoxLayout):
|
||||
|
||||
initial_minutes = int(initial.total_seconds() / 60)
|
||||
|
||||
slider = QtWidgets.QSlider(Qt.Horizontal)
|
||||
slider = QtWidgets.QSlider(Qt.Orientation.Horizontal)
|
||||
slider.setMinimum(minimum)
|
||||
slider.setMaximum(maximum)
|
||||
slider.setValue(initial_minutes)
|
||||
|
||||
@ -223,12 +223,16 @@ class SquadronConfigurationBox(QGroupBox):
|
||||
|
||||
nickname_edit_layout.addWidget(QLabel("Nickname:"), 0, 0, 1, 2)
|
||||
self.nickname_edit = QLineEdit(squadron.nickname)
|
||||
nickname_edit_layout.addWidget(self.nickname_edit, 1, 0, Qt.AlignTop)
|
||||
nickname_edit_layout.addWidget(
|
||||
self.nickname_edit, 1, 0, Qt.AlignmentFlag.AlignTop
|
||||
)
|
||||
reroll_nickname_button = QToolButton()
|
||||
reroll_nickname_button.setIcon(QIcon(ICONS["Reload"]))
|
||||
reroll_nickname_button.setToolTip("Re-roll nickname")
|
||||
reroll_nickname_button.clicked.connect(self.reroll_nickname)
|
||||
nickname_edit_layout.addWidget(reroll_nickname_button, 1, 1, Qt.AlignTop)
|
||||
nickname_edit_layout.addWidget(
|
||||
reroll_nickname_button, 1, 1, Qt.AlignmentFlag.AlignTop
|
||||
)
|
||||
|
||||
left_column.addWidget(QLabel("Livery:"))
|
||||
self.livery_selector = SquadronLiverySelector(squadron)
|
||||
@ -357,7 +361,7 @@ class SquadronConfigurationBox(QGroupBox):
|
||||
self.squadron.aircraft,
|
||||
self.coalition.air_wing.squadron_defs,
|
||||
)
|
||||
if popup.exec_() != QDialog.Accepted:
|
||||
if popup.exec_() != QDialog.DialogCode.Accepted:
|
||||
return None
|
||||
|
||||
selected_def = popup.squadron_def_selector.currentData()
|
||||
@ -504,8 +508,10 @@ class AircraftSquadronsPage(QWidget):
|
||||
scrolling_widget.setLayout(self.squadrons_config)
|
||||
|
||||
scrolling_area = QScrollArea()
|
||||
scrolling_area.setHorizontalScrollBarPolicy(Qt.ScrollBarAlwaysOff)
|
||||
scrolling_area.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOn)
|
||||
scrolling_area.setHorizontalScrollBarPolicy(
|
||||
Qt.ScrollBarPolicy.ScrollBarAlwaysOff
|
||||
)
|
||||
scrolling_area.setVerticalScrollBarPolicy(Qt.ScrollBarPolicy.ScrollBarAlwaysOn)
|
||||
scrolling_area.setWidgetResizable(True)
|
||||
scrolling_area.setWidget(scrolling_widget)
|
||||
|
||||
@ -604,7 +610,7 @@ class AircraftTypeList(QListView):
|
||||
self.setModel(self.item_model)
|
||||
|
||||
self.selectionModel().setCurrentIndex(
|
||||
self.item_model.index(0, 0), QItemSelectionModel.Select
|
||||
self.item_model.index(0, 0), QItemSelectionModel.SelectionFlag.Select
|
||||
)
|
||||
self.selectionModel().selectionChanged.connect(self.on_selection_changed)
|
||||
for aircraft in air_wing.squadrons:
|
||||
@ -702,7 +708,7 @@ class AirWingConfigurationTab(QWidget):
|
||||
bases,
|
||||
self.coalition.air_wing.squadron_defs,
|
||||
)
|
||||
if popup.exec_() != QDialog.Accepted:
|
||||
if popup.exec_() != QDialog.DialogCode.Accepted:
|
||||
return
|
||||
|
||||
selected_type = popup.aircraft_type_selector.currentData()
|
||||
@ -799,10 +805,10 @@ class AirWingConfigurationDialog(QDialog):
|
||||
None,
|
||||
"Discard changes?",
|
||||
"Are you sure you want to discard your changes and start the campaign?",
|
||||
QMessageBox.Yes,
|
||||
QMessageBox.No,
|
||||
QMessageBox.StandardButton.Yes,
|
||||
QMessageBox.StandardButton.No,
|
||||
)
|
||||
if result == QMessageBox.No:
|
||||
if result == QMessageBox.StandardButton.No:
|
||||
return
|
||||
super().reject()
|
||||
|
||||
|
||||
@ -77,11 +77,12 @@ class SquadronList(QListView):
|
||||
self.setItemDelegate(SquadronDelegate(self.air_wing_model))
|
||||
self.setModel(self.air_wing_model)
|
||||
self.selectionModel().setCurrentIndex(
|
||||
self.air_wing_model.index(0, 0, QModelIndex()), QItemSelectionModel.Select
|
||||
self.air_wing_model.index(0, 0, QModelIndex()),
|
||||
QItemSelectionModel.SelectionFlag.Select,
|
||||
)
|
||||
|
||||
# self.setIconSize(QSize(91, 24))
|
||||
self.setSelectionBehavior(QAbstractItemView.SelectItems)
|
||||
self.setSelectionBehavior(QAbstractItemView.SelectionBehavior.SelectItems)
|
||||
self.doubleClicked.connect(self.on_double_click)
|
||||
|
||||
def on_double_click(self, index: QModelIndex) -> None:
|
||||
@ -183,7 +184,7 @@ class AirInventoryView(QWidget):
|
||||
self.table = QTableWidget()
|
||||
layout.addWidget(self.table)
|
||||
|
||||
self.table.setEditTriggers(QAbstractItemView.NoEditTriggers)
|
||||
self.table.setEditTriggers(QAbstractItemView.EditTrigger.NoEditTriggers)
|
||||
self.table.verticalHeader().setVisible(False)
|
||||
self.set_only_unallocated(False)
|
||||
|
||||
|
||||
@ -31,7 +31,7 @@ class TransferDelegate(TwoColumnRowDelegate):
|
||||
|
||||
def text_for(self, index: QModelIndex, row: int, column: int) -> str:
|
||||
if row == 0:
|
||||
return self.transfer_model.data(index, Qt.DisplayRole)
|
||||
return self.transfer_model.data(index, Qt.ItemDataRole.DisplayRole)
|
||||
elif row == 1:
|
||||
return self.transfer(index).description
|
||||
return ""
|
||||
@ -47,11 +47,12 @@ class PendingTransfersList(QListView):
|
||||
self.setItemDelegate(TransferDelegate(self.transfer_model))
|
||||
self.setModel(self.transfer_model)
|
||||
self.selectionModel().setCurrentIndex(
|
||||
self.transfer_model.index(0, 0, QModelIndex()), QItemSelectionModel.Select
|
||||
self.transfer_model.index(0, 0, QModelIndex()),
|
||||
QItemSelectionModel.SelectionFlag.Select,
|
||||
)
|
||||
|
||||
# self.setIconSize(QSize(91, 24))
|
||||
self.setSelectionBehavior(QAbstractItemView.SelectItems)
|
||||
self.setSelectionBehavior(QAbstractItemView.SelectionBehavior.SelectItems)
|
||||
|
||||
def contextMenuEvent(self, event: QContextMenuEvent) -> None:
|
||||
index = self.indexAt(event.pos())
|
||||
|
||||
@ -43,7 +43,7 @@ class QICLSDialog(QDialog):
|
||||
|
||||
self.create_button = QPushButton("Save")
|
||||
self.create_button.clicked.connect(self.accept)
|
||||
layout.addWidget(self.create_button, alignment=Qt.AlignRight)
|
||||
layout.addWidget(self.create_button, alignment=Qt.AlignmentFlag.AlignRight)
|
||||
|
||||
self.setLayout(layout)
|
||||
|
||||
|
||||
@ -98,7 +98,7 @@ class QLiberationWindow(QMainWindow):
|
||||
# configuration.
|
||||
screen = QGuiApplication.primaryScreen().availableSize()
|
||||
self.setGeometry(0, 0, screen.width(), screen.height())
|
||||
self.setWindowState(Qt.WindowMaximized)
|
||||
self.setWindowState(Qt.WindowState.WindowMaximized)
|
||||
|
||||
# But override it with the saved configuration if it exists.
|
||||
self._restore_window_geometry()
|
||||
@ -117,8 +117,8 @@ class QLiberationWindow(QMainWindow):
|
||||
self.onGameGenerated(self.game)
|
||||
|
||||
def initUi(self, ui_flags: UiFlags) -> None:
|
||||
hbox = QSplitter(Qt.Horizontal)
|
||||
vbox = QSplitter(Qt.Vertical)
|
||||
hbox = QSplitter(Qt.Orientation.Horizontal)
|
||||
vbox = QSplitter(Qt.Orientation.Vertical)
|
||||
hbox.addWidget(self.ato_panel)
|
||||
hbox.addWidget(vbox)
|
||||
vbox.addWidget(self.liberation_map)
|
||||
@ -398,11 +398,11 @@ class QLiberationWindow(QMainWindow):
|
||||
QApplication.focusWidget(),
|
||||
title,
|
||||
msg,
|
||||
QMessageBox.Yes,
|
||||
QMessageBox.No,
|
||||
QMessageBox.StandardButton.Yes,
|
||||
QMessageBox.StandardButton.No,
|
||||
)
|
||||
|
||||
if result is not None and result == QMessageBox.Yes:
|
||||
if result is not None and result == QMessageBox.StandardButton.Yes:
|
||||
self.newGame()
|
||||
|
||||
def setGame(self, game: Optional[Game]):
|
||||
@ -422,7 +422,7 @@ class QLiberationWindow(QMainWindow):
|
||||
"version of DCS Retribution.\n"
|
||||
"\n"
|
||||
f"{traceback.format_exc()}",
|
||||
QMessageBox.Ok,
|
||||
QMessageBox.StandardButton.Ok,
|
||||
)
|
||||
GameUpdateSignal.get_instance().updateGame(None)
|
||||
finally:
|
||||
@ -577,11 +577,13 @@ class QLiberationWindow(QMainWindow):
|
||||
self,
|
||||
"Quit Retribution?",
|
||||
"Would you like to save before quitting?",
|
||||
QMessageBox.Yes | QMessageBox.No | QMessageBox.Cancel,
|
||||
QMessageBox.Cancel,
|
||||
QMessageBox.StandardButton.Yes
|
||||
| QMessageBox.StandardButton.No
|
||||
| QMessageBox.StandardButton.Cancel,
|
||||
QMessageBox.StandardButton.Cancel,
|
||||
)
|
||||
if result in [QMessageBox.Yes, QMessageBox.No]:
|
||||
if result == QMessageBox.Yes:
|
||||
if result in [QMessageBox.StandardButton.Yes, QMessageBox.StandardButton.No]:
|
||||
if result == QMessageBox.StandardButton.Yes:
|
||||
self.saveGame()
|
||||
self._save_window_geometry()
|
||||
super().closeEvent(event)
|
||||
|
||||
@ -121,7 +121,7 @@ class QRadioFrequencyDialog(QDialog):
|
||||
|
||||
self.create_button = QPushButton("Save")
|
||||
self.create_button.clicked.connect(self.accept)
|
||||
layout.addWidget(self.create_button, alignment=Qt.AlignRight)
|
||||
layout.addWidget(self.create_button, alignment=Qt.AlignmentFlag.AlignRight)
|
||||
|
||||
self.setLayout(layout)
|
||||
|
||||
|
||||
@ -47,7 +47,7 @@ class QTacanDialog(QDialog):
|
||||
|
||||
self.create_button = QPushButton("Save")
|
||||
self.create_button.clicked.connect(self.accept)
|
||||
layout.addWidget(self.create_button, alignment=Qt.AlignRight)
|
||||
layout.addWidget(self.create_button, alignment=Qt.AlignmentFlag.AlignRight)
|
||||
|
||||
self.setLayout(layout)
|
||||
|
||||
|
||||
@ -71,7 +71,7 @@ class QUnitInfoWindow(QDialog):
|
||||
self.setWindowIcon(QIcon("./resources/icon.png"))
|
||||
self.setMinimumHeight(570)
|
||||
self.setMaximumWidth(640)
|
||||
self.setWindowFlags(Qt.WindowStaysOnTopHint)
|
||||
self.setWindowFlags(Qt.WindowType.WindowStaysOnTopHint)
|
||||
|
||||
self.layout = QGridLayout()
|
||||
|
||||
|
||||
@ -54,7 +54,7 @@ class QWaitingForMissionResultWindow(QDialog):
|
||||
parent: Optional[QWidget] = None,
|
||||
) -> None:
|
||||
super(QWaitingForMissionResultWindow, self).__init__(parent=parent)
|
||||
self.setWindowModality(QtCore.Qt.WindowModal)
|
||||
self.setWindowModality(QtCore.Qt.WindowModality.WindowModal)
|
||||
self.game = game
|
||||
self.sim_controller = sim_controller
|
||||
self.setWindowTitle("Waiting for mission completion.")
|
||||
@ -98,7 +98,7 @@ class QWaitingForMissionResultWindow(QDialog):
|
||||
self.gridLayout.addWidget(self.instructions_text, 1, 0)
|
||||
|
||||
progress = QLabel("")
|
||||
progress.setAlignment(QtCore.Qt.AlignCenter)
|
||||
progress.setAlignment(QtCore.Qt.AlignmentFlag.AlignCenter)
|
||||
progress_bar = QMovie("./resources/ui/loader.gif")
|
||||
progress.setMovie(progress_bar)
|
||||
|
||||
|
||||
@ -47,7 +47,7 @@ class PilotDelegate(TwoColumnRowDelegate):
|
||||
def text_for(self, index: QModelIndex, row: int, column: int) -> str:
|
||||
pilot = self.pilot(index)
|
||||
if (row, column) == (0, 0):
|
||||
return self.squadron_model.data(index, Qt.DisplayRole)
|
||||
return self.squadron_model.data(index, Qt.ItemDataRole.DisplayRole)
|
||||
elif (row, column) == (0, 1):
|
||||
flown = pilot.record.missions_flown
|
||||
missions = "missions" if flown != 1 else "mission"
|
||||
@ -69,11 +69,12 @@ class PilotList(QListView):
|
||||
self.setItemDelegate(PilotDelegate(self.squadron_model))
|
||||
self.setModel(self.squadron_model)
|
||||
self.selectionModel().setCurrentIndex(
|
||||
self.squadron_model.index(0, 0, QModelIndex()), QItemSelectionModel.Select
|
||||
self.squadron_model.index(0, 0, QModelIndex()),
|
||||
QItemSelectionModel.SelectionFlag.Select,
|
||||
)
|
||||
|
||||
# self.setIconSize(QSize(91, 24))
|
||||
self.setSelectionBehavior(QAbstractItemView.SelectItems)
|
||||
self.setSelectionBehavior(QAbstractItemView.SelectionBehavior.SelectItems)
|
||||
|
||||
|
||||
class AutoAssignedTaskControls(QVBoxLayout):
|
||||
@ -291,19 +292,25 @@ class SquadronDialog(QDialog):
|
||||
self.rename_button = QPushButton("Rename pilot")
|
||||
self.rename_button.setProperty("style", "start-button")
|
||||
self.rename_button.clicked.connect(self.rename_pilot)
|
||||
button_panel.addWidget(self.rename_button, alignment=Qt.AlignRight)
|
||||
button_panel.addWidget(
|
||||
self.rename_button, alignment=Qt.AlignmentFlag.AlignRight
|
||||
)
|
||||
|
||||
self.toggle_ai_button = QPushButton()
|
||||
self.reset_ai_toggle_state(self.pilot_list.currentIndex())
|
||||
self.toggle_ai_button.setProperty("style", "start-button")
|
||||
self.toggle_ai_button.clicked.connect(self.toggle_ai)
|
||||
button_panel.addWidget(self.toggle_ai_button, alignment=Qt.AlignRight)
|
||||
button_panel.addWidget(
|
||||
self.toggle_ai_button, alignment=Qt.AlignmentFlag.AlignRight
|
||||
)
|
||||
|
||||
self.toggle_leave_button = QPushButton()
|
||||
self.reset_leave_toggle_state(self.pilot_list.currentIndex())
|
||||
self.toggle_leave_button.setProperty("style", "start-button")
|
||||
self.toggle_leave_button.clicked.connect(self.toggle_leave)
|
||||
button_panel.addWidget(self.toggle_leave_button, alignment=Qt.AlignRight)
|
||||
button_panel.addWidget(
|
||||
self.toggle_leave_button, alignment=Qt.AlignmentFlag.AlignRight
|
||||
)
|
||||
|
||||
@property
|
||||
def squadron(self) -> Squadron:
|
||||
|
||||
@ -49,7 +49,7 @@ class DepartingConvoyInfo(QGroupBox):
|
||||
attack_button.setProperty("style", "btn-danger")
|
||||
attack_button.setMaximumWidth(180)
|
||||
attack_button.clicked.connect(self.on_attack)
|
||||
main_layout.addWidget(attack_button, 0, Qt.AlignLeft)
|
||||
main_layout.addWidget(attack_button, 0, Qt.AlignmentFlag.AlignLeft)
|
||||
|
||||
def on_attack(self):
|
||||
# TODO: Maintain Convoy list in Game.
|
||||
@ -87,8 +87,8 @@ class DepartingConvoysList(QFrame):
|
||||
|
||||
scroll_content.setLayout(task_box_layout)
|
||||
scroll = QScrollArea()
|
||||
scroll.setHorizontalScrollBarPolicy(Qt.ScrollBarAlwaysOff)
|
||||
scroll.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOn)
|
||||
scroll.setHorizontalScrollBarPolicy(Qt.ScrollBarPolicy.ScrollBarAlwaysOff)
|
||||
scroll.setVerticalScrollBarPolicy(Qt.ScrollBarPolicy.ScrollBarAlwaysOn)
|
||||
scroll.setWidgetResizable(True)
|
||||
scroll.setWidget(scroll_content)
|
||||
layout.addWidget(scroll)
|
||||
|
||||
@ -75,8 +75,8 @@ class UnitTransferList(QFrame):
|
||||
|
||||
scroll_content.setLayout(task_box_layout)
|
||||
scroll = QScrollArea()
|
||||
scroll.setHorizontalScrollBarPolicy(Qt.ScrollBarAlwaysOff)
|
||||
scroll.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOn)
|
||||
scroll.setHorizontalScrollBarPolicy(Qt.ScrollBarPolicy.ScrollBarAlwaysOff)
|
||||
scroll.setVerticalScrollBarPolicy(Qt.ScrollBarPolicy.ScrollBarAlwaysOn)
|
||||
scroll.setWidgetResizable(True)
|
||||
scroll.setWidget(scroll_content)
|
||||
main_layout.addWidget(scroll)
|
||||
@ -131,13 +131,15 @@ class TransferControls(QGroupBox):
|
||||
decrease.setDisabled(disabled)
|
||||
decrease.setMinimumSize(16, 16)
|
||||
decrease.setMaximumSize(16, 16)
|
||||
decrease.setSizePolicy(QSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed))
|
||||
decrease.setSizePolicy(
|
||||
QSizePolicy(QSizePolicy.Policy.Fixed, QSizePolicy.Policy.Fixed)
|
||||
)
|
||||
decrease.clicked.connect(lambda: on_decrease(self))
|
||||
layout.addWidget(decrease)
|
||||
|
||||
self.count_label = QLabel()
|
||||
self.count_label.setSizePolicy(
|
||||
QSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed)
|
||||
QSizePolicy(QSizePolicy.Policy.Fixed, QSizePolicy.Policy.Fixed)
|
||||
)
|
||||
self.set_quantity(initial_amount)
|
||||
layout.addWidget(self.count_label)
|
||||
@ -148,7 +150,9 @@ class TransferControls(QGroupBox):
|
||||
increase.setMinimumSize(16, 16)
|
||||
increase.setMaximumSize(16, 16)
|
||||
increase.clicked.connect(lambda: on_increase(self))
|
||||
increase.setSizePolicy(QSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed))
|
||||
increase.setSizePolicy(
|
||||
QSizePolicy(QSizePolicy.Policy.Fixed, QSizePolicy.Policy.Fixed)
|
||||
)
|
||||
layout.addWidget(increase)
|
||||
|
||||
def set_quantity(self, quantity: int) -> None:
|
||||
@ -183,8 +187,8 @@ class ScrollingUnitTransferGrid(QFrame):
|
||||
|
||||
scroll_content.setLayout(task_box_layout)
|
||||
scroll = QScrollArea()
|
||||
scroll.setHorizontalScrollBarPolicy(Qt.ScrollBarAlwaysOff)
|
||||
scroll.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOn)
|
||||
scroll.setHorizontalScrollBarPolicy(Qt.ScrollBarPolicy.ScrollBarAlwaysOff)
|
||||
scroll.setVerticalScrollBarPolicy(Qt.ScrollBarPolicy.ScrollBarAlwaysOn)
|
||||
scroll.setWidgetResizable(True)
|
||||
scroll.setWidget(scroll_content)
|
||||
main_layout.addWidget(scroll)
|
||||
@ -207,12 +211,12 @@ class ScrollingUnitTransferGrid(QFrame):
|
||||
|
||||
unit_name = QLabel(f"<b>{unit_type.display_name}</b>")
|
||||
unit_name.setSizePolicy(
|
||||
QSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)
|
||||
QSizePolicy(QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Expanding)
|
||||
)
|
||||
|
||||
origin_inventory_label = QLabel(str(origin_inventory))
|
||||
origin_inventory_label.setSizePolicy(
|
||||
QSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed)
|
||||
QSizePolicy(QSizePolicy.Policy.Fixed, QSizePolicy.Policy.Fixed)
|
||||
)
|
||||
|
||||
def increase(controls: TransferControls):
|
||||
@ -222,9 +226,9 @@ class ScrollingUnitTransferGrid(QFrame):
|
||||
return
|
||||
|
||||
modifiers = QApplication.keyboardModifiers()
|
||||
if modifiers == Qt.ShiftModifier:
|
||||
if modifiers == Qt.Modifier.SHIFT:
|
||||
amount = 10
|
||||
elif modifiers == Qt.ControlModifier:
|
||||
elif modifiers == Qt.Modifier.CTRL:
|
||||
amount = 5
|
||||
else:
|
||||
amount = 1
|
||||
@ -242,9 +246,9 @@ class ScrollingUnitTransferGrid(QFrame):
|
||||
return
|
||||
|
||||
modifiers = QApplication.keyboardModifiers()
|
||||
if modifiers == Qt.ShiftModifier:
|
||||
if modifiers == Qt.Modifier.SHIFT:
|
||||
amount = 10
|
||||
elif modifiers == Qt.ControlModifier:
|
||||
elif modifiers == Qt.Modifier.CTRL:
|
||||
amount = 5
|
||||
else:
|
||||
amount = 1
|
||||
@ -259,11 +263,11 @@ class ScrollingUnitTransferGrid(QFrame):
|
||||
|
||||
origin_inventory_layout.addWidget(unit_name)
|
||||
origin_inventory_layout.addItem(
|
||||
QSpacerItem(20, 0, QSizePolicy.Minimum, QSizePolicy.Minimum)
|
||||
QSpacerItem(20, 0, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Minimum)
|
||||
)
|
||||
origin_inventory_layout.addWidget(origin_inventory_label)
|
||||
origin_inventory_layout.addItem(
|
||||
QSpacerItem(20, 0, QSizePolicy.Minimum, QSizePolicy.Minimum)
|
||||
QSpacerItem(20, 0, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Minimum)
|
||||
)
|
||||
|
||||
layout.addWidget(exist, row, 1)
|
||||
|
||||
@ -54,7 +54,7 @@ class QBaseMenu2(QDialog):
|
||||
|
||||
self.setWindowIcon(EVENT_ICONS["capture"])
|
||||
|
||||
self.setWindowFlags(Qt.WindowStaysOnTopHint)
|
||||
self.setWindowFlags(Qt.WindowType.WindowStaysOnTopHint)
|
||||
self.setMinimumSize(300, 200)
|
||||
self.setMinimumWidth(1024)
|
||||
self.setMaximumWidth(1024)
|
||||
@ -74,7 +74,7 @@ class QBaseMenu2(QDialog):
|
||||
top_layout.addLayout(cp_settings)
|
||||
|
||||
title = QLabel("<b>" + self.cp.name + "</b>")
|
||||
title.setAlignment(Qt.AlignLeft | Qt.AlignTop)
|
||||
title.setAlignment(Qt.AlignmentFlag.AlignLeft | Qt.AlignmentFlag.AlignTop)
|
||||
title.setProperty("style", "base-title")
|
||||
cp_settings.addWidget(title, 0, 0, 1, 2)
|
||||
cp_settings.setHorizontalSpacing(20)
|
||||
@ -114,7 +114,7 @@ class QBaseMenu2(QDialog):
|
||||
self.intel_summary.setToolTip(self.generate_intel_tooltip())
|
||||
self.update_intel_summary()
|
||||
top_layout.addWidget(self.intel_summary)
|
||||
top_layout.setAlignment(Qt.AlignTop)
|
||||
top_layout.setAlignment(Qt.AlignmentFlag.AlignTop)
|
||||
|
||||
runway_buttons_layout = QVBoxLayout()
|
||||
top_layout.addLayout(runway_buttons_layout)
|
||||
@ -166,7 +166,9 @@ class QBaseMenu2(QDialog):
|
||||
self.budget_display = QLabel(
|
||||
UnitTransactionFrame.BUDGET_FORMAT.format(self.game_model.game.blue.budget)
|
||||
)
|
||||
self.budget_display.setAlignment(Qt.AlignRight | Qt.AlignBottom)
|
||||
self.budget_display.setAlignment(
|
||||
Qt.AlignmentFlag.AlignRight | Qt.AlignmentFlag.AlignBottom
|
||||
)
|
||||
self.budget_display.setProperty("style", "budget-label")
|
||||
bottom_row.addWidget(self.budget_display)
|
||||
GameUpdateSignal.get_instance().budgetupdated.connect(self.update_budget)
|
||||
@ -226,7 +228,7 @@ class QBaseMenu2(QDialog):
|
||||
"Cannot repair runway",
|
||||
f"Runway repair costs ${RUNWAY_REPAIR_COST}M but you have "
|
||||
f"only ${self.game_model.game.blue.budget}M available.",
|
||||
QMessageBox.Ok,
|
||||
QMessageBox.StandardButton.Ok,
|
||||
)
|
||||
return
|
||||
if not self.can_repair_runway:
|
||||
@ -234,7 +236,7 @@ class QBaseMenu2(QDialog):
|
||||
self,
|
||||
"Cannot repair runway",
|
||||
f"Cannot repair this runway.",
|
||||
QMessageBox.Ok,
|
||||
QMessageBox.StandardButton.Ok,
|
||||
)
|
||||
return
|
||||
|
||||
|
||||
@ -55,7 +55,7 @@ class PurchaseGroup(QGroupBox, Generic[TransactionItemType]):
|
||||
self.sell_button.setMinimumSize(16, 16)
|
||||
self.sell_button.setMaximumSize(16, 16)
|
||||
self.sell_button.setSizePolicy(
|
||||
QSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed)
|
||||
QSizePolicy(QSizePolicy.Policy.Fixed, QSizePolicy.Policy.Fixed)
|
||||
)
|
||||
|
||||
self.sell_button.clicked.connect(
|
||||
@ -64,7 +64,7 @@ class PurchaseGroup(QGroupBox, Generic[TransactionItemType]):
|
||||
|
||||
self.amount_bought = QLabel()
|
||||
self.amount_bought.setSizePolicy(
|
||||
QSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed)
|
||||
QSizePolicy(QSizePolicy.Policy.Fixed, QSizePolicy.Policy.Fixed)
|
||||
)
|
||||
|
||||
self.buy_button = QPushButton("+")
|
||||
@ -76,7 +76,9 @@ class PurchaseGroup(QGroupBox, Generic[TransactionItemType]):
|
||||
self.buy_button.clicked.connect(
|
||||
lambda: self.recruiter.recruit_handler(RecruitType.BUY, self.item)
|
||||
)
|
||||
self.buy_button.setSizePolicy(QSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed))
|
||||
self.buy_button.setSizePolicy(
|
||||
QSizePolicy(QSizePolicy.Policy.Fixed, QSizePolicy.Policy.Fixed)
|
||||
)
|
||||
|
||||
layout.addWidget(self.sell_button)
|
||||
layout.addWidget(self.amount_bought)
|
||||
@ -153,23 +155,27 @@ class UnitTransactionFrame(QFrame, Generic[TransactionItemType]):
|
||||
exist.setMaximumHeight(72)
|
||||
exist.setMinimumHeight(36)
|
||||
existLayout = QHBoxLayout()
|
||||
existLayout.setSizeConstraint(QLayout.SetMinimumSize)
|
||||
existLayout.setSizeConstraint(QLayout.SizeConstraint.SetMinimumSize)
|
||||
exist.setLayout(existLayout)
|
||||
|
||||
existing_units = self.current_quantity_of(item)
|
||||
|
||||
unitName = QLabel(f"<b>{self.display_name_of(item, multiline=True)}</b>")
|
||||
unitName.setSizePolicy(
|
||||
QSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)
|
||||
QSizePolicy(QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Expanding)
|
||||
)
|
||||
|
||||
existing_units = QLabel(str(existing_units))
|
||||
existing_units.setSizePolicy(QSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed))
|
||||
existing_units.setSizePolicy(
|
||||
QSizePolicy(QSizePolicy.Policy.Fixed, QSizePolicy.Policy.Fixed)
|
||||
)
|
||||
|
||||
self.existing_units_labels[item] = existing_units
|
||||
|
||||
price = QLabel(f"<b>$ {self.price_of(item)}</b> M")
|
||||
price.setSizePolicy(QSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed))
|
||||
price.setSizePolicy(
|
||||
QSizePolicy(QSizePolicy.Policy.Fixed, QSizePolicy.Policy.Fixed)
|
||||
)
|
||||
|
||||
purchase_group = PurchaseGroup(item, self)
|
||||
self.purchase_groups[item] = purchase_group
|
||||
@ -186,15 +192,17 @@ class UnitTransactionFrame(QFrame, Generic[TransactionItemType]):
|
||||
unitInfo.setMinimumSize(16, 16)
|
||||
unitInfo.setMaximumSize(16, 16)
|
||||
unitInfo.clicked.connect(lambda: self.info(item))
|
||||
unitInfo.setSizePolicy(QSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed))
|
||||
unitInfo.setSizePolicy(
|
||||
QSizePolicy(QSizePolicy.Policy.Fixed, QSizePolicy.Policy.Fixed)
|
||||
)
|
||||
|
||||
existLayout.addWidget(unitName)
|
||||
existLayout.addItem(
|
||||
QSpacerItem(20, 0, QSizePolicy.Minimum, QSizePolicy.Minimum)
|
||||
QSpacerItem(20, 0, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Minimum)
|
||||
)
|
||||
existLayout.addWidget(existing_units)
|
||||
existLayout.addItem(
|
||||
QSpacerItem(20, 0, QSizePolicy.Minimum, QSizePolicy.Minimum)
|
||||
QSpacerItem(20, 0, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Minimum)
|
||||
)
|
||||
existLayout.addWidget(price)
|
||||
|
||||
@ -214,9 +222,9 @@ class UnitTransactionFrame(QFrame, Generic[TransactionItemType]):
|
||||
# Shift = 10 times
|
||||
# CTRL = 5 Times
|
||||
modifiers = QApplication.keyboardModifiers()
|
||||
if modifiers == Qt.ShiftModifier:
|
||||
if modifiers == Qt.Modifier.SHIFT:
|
||||
amount = 10
|
||||
elif modifiers == Qt.ControlModifier:
|
||||
elif modifiers == Qt.Modifier.CTRL:
|
||||
amount = 5
|
||||
else:
|
||||
amount = 1
|
||||
@ -235,7 +243,9 @@ class UnitTransactionFrame(QFrame, Generic[TransactionItemType]):
|
||||
self.purchase_adapter.buy(item, quantity)
|
||||
except TransactionError as ex:
|
||||
logging.exception(f"Purchase of {self.display_name_of(item)} failed")
|
||||
QMessageBox.warning(self, "Purchase failed", str(ex), QMessageBox.Ok)
|
||||
QMessageBox.warning(
|
||||
self, "Purchase failed", str(ex), QMessageBox.StandardButton.Ok
|
||||
)
|
||||
finally:
|
||||
self.post_transaction_update()
|
||||
|
||||
@ -244,7 +254,9 @@ class UnitTransactionFrame(QFrame, Generic[TransactionItemType]):
|
||||
self.purchase_adapter.sell(item, quantity)
|
||||
except TransactionError as ex:
|
||||
logging.exception(f"Sale of {self.display_name_of(item)} failed")
|
||||
QMessageBox.warning(self, "Sale failed", str(ex), QMessageBox.Ok)
|
||||
QMessageBox.warning(
|
||||
self, "Sale failed", str(ex), QMessageBox.StandardButton.Ok
|
||||
)
|
||||
finally:
|
||||
self.post_transaction_update()
|
||||
|
||||
|
||||
@ -87,10 +87,10 @@ class QHangarStatus(QHBoxLayout):
|
||||
self.text = QLabel("")
|
||||
|
||||
self.update_label()
|
||||
self.addWidget(self.icon, Qt.AlignLeft)
|
||||
self.addWidget(self.text, Qt.AlignLeft)
|
||||
self.addWidget(self.icon, Qt.AlignmentFlag.AlignLeft)
|
||||
self.addWidget(self.text, Qt.AlignmentFlag.AlignLeft)
|
||||
self.addStretch(50)
|
||||
self.setAlignment(Qt.AlignLeft)
|
||||
self.setAlignment(Qt.AlignmentFlag.AlignLeft)
|
||||
|
||||
def update_label(self) -> None:
|
||||
parking_type = ParkingType(
|
||||
|
||||
@ -41,8 +41,8 @@ class QArmorRecruitmentMenu(UnitTransactionFrame[GroundUnitType]):
|
||||
|
||||
scroll_content.setLayout(task_box_layout)
|
||||
scroll = QScrollArea()
|
||||
scroll.setHorizontalScrollBarPolicy(Qt.ScrollBarAlwaysOff)
|
||||
scroll.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOn)
|
||||
scroll.setHorizontalScrollBarPolicy(Qt.ScrollBarPolicy.ScrollBarAlwaysOff)
|
||||
scroll.setVerticalScrollBarPolicy(Qt.ScrollBarPolicy.ScrollBarAlwaysOn)
|
||||
scroll.setWidgetResizable(True)
|
||||
scroll.setWidget(scroll_content)
|
||||
main_layout.addWidget(scroll)
|
||||
|
||||
@ -57,8 +57,8 @@ class QIntelInfo(QFrame):
|
||||
|
||||
scroll_content.setLayout(intel_layout)
|
||||
scroll = QScrollArea()
|
||||
scroll.setHorizontalScrollBarPolicy(Qt.ScrollBarAlwaysOff)
|
||||
scroll.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOn)
|
||||
scroll.setHorizontalScrollBarPolicy(Qt.ScrollBarPolicy.ScrollBarAlwaysOff)
|
||||
scroll.setVerticalScrollBarPolicy(Qt.ScrollBarPolicy.ScrollBarAlwaysOn)
|
||||
scroll.setWidgetResizable(True)
|
||||
scroll.setWidget(scroll_content)
|
||||
|
||||
|
||||
@ -20,9 +20,9 @@ class QHorizontalSeparationLine(QFrame):
|
||||
super().__init__()
|
||||
self.setMinimumWidth(1)
|
||||
self.setFixedHeight(20)
|
||||
self.setFrameShape(QFrame.HLine)
|
||||
self.setFrameShadow(QFrame.Sunken)
|
||||
self.setSizePolicy(QSizePolicy.Preferred, QSizePolicy.Minimum)
|
||||
self.setFrameShape(QFrame.Shape.HLine)
|
||||
self.setFrameShadow(QFrame.Shadow.Sunken)
|
||||
self.setSizePolicy(QSizePolicy.Policy.Preferred, QSizePolicy.Policy.Minimum)
|
||||
|
||||
|
||||
class FinancesLayout(QGridLayout):
|
||||
|
||||
@ -90,8 +90,12 @@ class QTgoLayoutGroupRow(QWidget):
|
||||
|
||||
self.unit_selector.adjustSize()
|
||||
self.unit_selector.setEnabled(self.unit_selector.count() > 1)
|
||||
self.grid_layout.addWidget(self.unit_selector, 0, 0, alignment=Qt.AlignRight)
|
||||
self.grid_layout.addWidget(self.amount_selector, 0, 1, alignment=Qt.AlignRight)
|
||||
self.grid_layout.addWidget(
|
||||
self.unit_selector, 0, 0, alignment=Qt.AlignmentFlag.AlignRight
|
||||
)
|
||||
self.grid_layout.addWidget(
|
||||
self.amount_selector, 0, 1, alignment=Qt.AlignmentFlag.AlignRight
|
||||
)
|
||||
|
||||
dcs_unit_type, price = self.unit_selector.itemData(
|
||||
self.unit_selector.currentIndex()
|
||||
@ -109,7 +113,9 @@ class QTgoLayoutGroupRow(QWidget):
|
||||
self.amount_selector.setValue(self.group_layout.amount)
|
||||
self.amount_selector.setEnabled(self.group_layout.layout.max_size > 1)
|
||||
|
||||
self.grid_layout.addWidget(self.group_selector, 0, 2, alignment=Qt.AlignRight)
|
||||
self.grid_layout.addWidget(
|
||||
self.group_selector, 0, 2, alignment=Qt.AlignmentFlag.AlignRight
|
||||
)
|
||||
|
||||
self.amount_selector.valueChanged.connect(self.on_group_changed)
|
||||
self.unit_selector.currentIndexChanged.connect(self.on_group_changed)
|
||||
@ -299,14 +305,16 @@ class QGroundObjectBuyMenu(QDialog):
|
||||
|
||||
template_selector_layout = QGridLayout()
|
||||
template_selector_layout.addWidget(
|
||||
QLabel("Armed Forces Group:"), 0, 0, Qt.AlignLeft
|
||||
QLabel("Armed Forces Group:"), 0, 0, Qt.AlignmentFlag.AlignLeft
|
||||
)
|
||||
template_selector_layout.addWidget(
|
||||
self.force_group_selector, 0, 1, alignment=Qt.AlignRight
|
||||
self.force_group_selector, 0, 1, alignment=Qt.AlignmentFlag.AlignRight
|
||||
)
|
||||
template_selector_layout.addWidget(QLabel("Layout:"), 1, 0, Qt.AlignLeft)
|
||||
template_selector_layout.addWidget(
|
||||
self.layout_selector, 1, 1, alignment=Qt.AlignRight
|
||||
QLabel("Layout:"), 1, 0, Qt.AlignmentFlag.AlignLeft
|
||||
)
|
||||
template_selector_layout.addWidget(
|
||||
self.layout_selector, 1, 1, alignment=Qt.AlignmentFlag.AlignRight
|
||||
)
|
||||
self.mainLayout.addLayout(template_selector_layout, 0, 0)
|
||||
|
||||
|
||||
@ -15,7 +15,7 @@ class QInfoList(QListView):
|
||||
self.update_list()
|
||||
|
||||
self.selectionModel().setCurrentIndex(
|
||||
self.indexAt(QPoint(1, 1)), QItemSelectionModel.Select
|
||||
self.indexAt(QPoint(1, 1)), QItemSelectionModel.SelectionFlag.Select
|
||||
)
|
||||
self.selectionModel().selectionChanged.connect(self.on_selected_info_changed)
|
||||
|
||||
@ -28,7 +28,7 @@ class QInfoList(QListView):
|
||||
for i, info in enumerate(reversed(self.game.informations)):
|
||||
self.model.appendRow(QInfoItem(info))
|
||||
self.selectionModel().setCurrentIndex(
|
||||
self.indexAt(QPoint(1, 1)), QItemSelectionModel.Select
|
||||
self.indexAt(QPoint(1, 1)), QItemSelectionModel.SelectionFlag.Select
|
||||
)
|
||||
|
||||
def setGame(self, game):
|
||||
|
||||
@ -60,7 +60,9 @@ class IntelTableLayout(QGridLayout):
|
||||
|
||||
def add_spacer(self) -> None:
|
||||
self.addItem(
|
||||
QSpacerItem(0, 0, QSizePolicy.Preferred, QSizePolicy.Expanding),
|
||||
QSpacerItem(
|
||||
0, 0, QSizePolicy.Policy.Preferred, QSizePolicy.Policy.Expanding
|
||||
),
|
||||
next(self.row),
|
||||
0,
|
||||
)
|
||||
|
||||
@ -58,7 +58,7 @@ class QLogsWindow(QDialog):
|
||||
break
|
||||
if self._logging_handler is not None:
|
||||
self.textbox.setPlainText(self._logging_handler.log)
|
||||
self.textbox.moveCursor(QTextCursor.End)
|
||||
self.textbox.moveCursor(QTextCursor.MoveOperation.End)
|
||||
# The Handler might be called from a different thread,
|
||||
# so use signal/slot to properly handle the event in the main thread.
|
||||
# https://github.com/dcs-liberation/dcs_liberation/issues/1493
|
||||
@ -73,4 +73,4 @@ class QLogsWindow(QDialog):
|
||||
|
||||
def appendLog(self, msg: str):
|
||||
self.textbox.appendPlainText(msg)
|
||||
self.textbox.moveCursor(QTextCursor.End)
|
||||
self.textbox.moveCursor(QTextCursor.MoveOperation.End)
|
||||
|
||||
@ -76,7 +76,7 @@ class QPackageDialog(QDialog):
|
||||
self.package_name_column = QHBoxLayout()
|
||||
self.summary_row.addLayout(self.package_name_column)
|
||||
self.package_name_label = QLabel("Package Name:")
|
||||
self.package_name_label.setAlignment(Qt.AlignCenter)
|
||||
self.package_name_label.setAlignment(Qt.AlignmentFlag.AlignCenter)
|
||||
self.package_name_text = QLineEdit(self.package_model.package.custom_name)
|
||||
self.package_name_text.textChanged.connect(self.on_change_name)
|
||||
self.package_name_column.addWidget(self.package_name_label)
|
||||
@ -110,7 +110,7 @@ class QPackageDialog(QDialog):
|
||||
self.tot_help_label = QLabel(
|
||||
'<a href="https://github.com/dcs-retribution/dcs-retribution/wiki/Mission-planning"><span style="color:#FFFFFF;">Help</span></a>'
|
||||
)
|
||||
self.tot_help_label.setAlignment(Qt.AlignCenter)
|
||||
self.tot_help_label.setAlignment(Qt.AlignmentFlag.AlignCenter)
|
||||
self.tot_help_label.setOpenExternalLinks(True)
|
||||
self.tot_column.addWidget(self.tot_help_label)
|
||||
|
||||
@ -214,7 +214,7 @@ class QPackageDialog(QDialog):
|
||||
self.package_model.delete_flight(flight)
|
||||
logging.exception("Could not create flight")
|
||||
QMessageBox.critical(
|
||||
self, "Could not create flight", str(ex), QMessageBox.Ok
|
||||
self, "Could not create flight", str(ex), QMessageBox.StandardButton.Ok
|
||||
)
|
||||
self.auto_create_button.setDisabled(True)
|
||||
# noinspection PyUnresolvedReferences
|
||||
|
||||
@ -18,7 +18,7 @@ class QPlannedFlightsView(QListView):
|
||||
self.setModel(self.model)
|
||||
self.flight_items = []
|
||||
self.setIconSize(QSize(91, 24))
|
||||
self.setSelectionBehavior(QAbstractItemView.SelectItems)
|
||||
self.setSelectionBehavior(QAbstractItemView.SelectionBehavior.SelectItems)
|
||||
self.set_flight_planner()
|
||||
|
||||
def setup_content(self):
|
||||
@ -39,7 +39,9 @@ class QPlannedFlightsView(QListView):
|
||||
index = self.model.index(row, 0)
|
||||
if not index.isValid():
|
||||
index = self.model.index(0, 0)
|
||||
self.selectionModel().setCurrentIndex(index, QItemSelectionModel.Select)
|
||||
self.selectionModel().setCurrentIndex(
|
||||
index, QItemSelectionModel.SelectionFlag.Select
|
||||
)
|
||||
self.repaint()
|
||||
|
||||
def clear_layout(self):
|
||||
|
||||
@ -136,7 +136,7 @@ class QFlightCreator(QDialog):
|
||||
|
||||
self.create_button = QPushButton("Create")
|
||||
self.create_button.clicked.connect(self.create_flight)
|
||||
layout.addWidget(self.create_button, alignment=Qt.AlignRight)
|
||||
layout.addWidget(self.create_button, alignment=Qt.AlignmentFlag.AlignRight)
|
||||
|
||||
self.setLayout(layout)
|
||||
|
||||
@ -173,7 +173,9 @@ class QFlightCreator(QDialog):
|
||||
def create_flight(self) -> None:
|
||||
error = self.verify_form()
|
||||
if error is not None:
|
||||
QMessageBox.critical(self, "Could not create flight", error, QMessageBox.Ok)
|
||||
QMessageBox.critical(
|
||||
self, "Could not create flight", error, QMessageBox.StandardButton.Ok
|
||||
)
|
||||
return
|
||||
|
||||
task = self.task_selector.currentData()
|
||||
|
||||
@ -60,7 +60,7 @@ class DcsFuelSelector(QHBoxLayout):
|
||||
self.addWidget(self.label)
|
||||
|
||||
self.max_fuel = int(flight.unit_type.dcs_unit_type.fuel_max)
|
||||
self.fuel = QSlider(Qt.Horizontal)
|
||||
self.fuel = QSlider(Qt.Orientation.Horizontal)
|
||||
self.fuel.setRange(0, self.max_fuel)
|
||||
self.fuel.setValue(min(round(self.flight.fuel), self.max_fuel))
|
||||
self.fuel.valueChanged.connect(self.on_fuel_change)
|
||||
@ -148,7 +148,7 @@ class QFlightPayloadTab(QFrame):
|
||||
scroll = QScrollArea()
|
||||
scroll.setWidgetResizable(True)
|
||||
scroll.setWidget(scroll_content)
|
||||
scroll.setHorizontalScrollBarPolicy(Qt.ScrollBarAlwaysOff)
|
||||
scroll.setHorizontalScrollBarPolicy(Qt.ScrollBarPolicy.ScrollBarAlwaysOff)
|
||||
layout.addWidget(scroll, stretch=1)
|
||||
|
||||
self.own_laser_code_info = OwnLaserCodeInfo(
|
||||
@ -183,7 +183,7 @@ class QFlightPayloadTab(QFrame):
|
||||
docsText = QLabel(
|
||||
'<a href="https://github.com/dcs-retribution/dcs-retribution/wiki/Custom-Loadouts"><span style="color:#FFFFFF;">How to create your own default loadout</span></a>'
|
||||
)
|
||||
docsText.setAlignment(Qt.AlignCenter)
|
||||
docsText.setAlignment(Qt.AlignmentFlag.AlignCenter)
|
||||
docsText.setOpenExternalLinks(True)
|
||||
|
||||
self.fuel_selector = DcsFuelSelector(flight)
|
||||
|
||||
@ -42,7 +42,9 @@ class QLoadoutEditor(QGroupBox):
|
||||
|
||||
for i, pylon in enumerate(Pylon.iter_pylons(self.flight.unit_type)):
|
||||
label = QLabel(f"<b>{pylon.number}</b>")
|
||||
label.setSizePolicy(QSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed))
|
||||
label.setSizePolicy(
|
||||
QSizePolicy(QSizePolicy.Policy.Fixed, QSizePolicy.Policy.Fixed)
|
||||
)
|
||||
layout.addWidget(label, i, 0)
|
||||
layout.addWidget(QPylonEditor(game, flight, flight_member, pylon), i, 1)
|
||||
|
||||
@ -130,7 +132,9 @@ class QLoadoutEditor(QGroupBox):
|
||||
payloads = {
|
||||
"name": f"{self.flight.unit_type.dcs_unit_type.id}",
|
||||
"payloads": {
|
||||
1: DcsPayload.from_flight_member(self.flight_member, payload_name).to_dict(),
|
||||
1: DcsPayload.from_flight_member(
|
||||
self.flight_member, payload_name
|
||||
).to_dict(),
|
||||
},
|
||||
"unitType": f"{self.flight.unit_type.dcs_unit_type.id}",
|
||||
}
|
||||
|
||||
@ -120,7 +120,10 @@ class FlightPlanPropertiesGroup(QGroupBox):
|
||||
self.flight.divert = old_divert
|
||||
logging.exception("Could not change divert airfield")
|
||||
QMessageBox.critical(
|
||||
self, "Could not update flight plan", str(ex), QMessageBox.Ok
|
||||
self,
|
||||
"Could not update flight plan",
|
||||
str(ex),
|
||||
QMessageBox.StandardButton.Ok,
|
||||
)
|
||||
|
||||
def set_tot_offset(self, offset: QTime) -> None:
|
||||
|
||||
@ -6,7 +6,7 @@ from game.ato.flightwaypoint import FlightWaypoint
|
||||
class QWaypointItem(QStandardItem):
|
||||
def __init__(self, point: FlightWaypoint, number):
|
||||
super(QWaypointItem, self).__init__()
|
||||
self.setData(point, Qt.UserRole)
|
||||
self.setData(point, Qt.ItemDataRole.UserRole)
|
||||
self.number = number
|
||||
self.setText("{:<16}".format(point.pretty_name))
|
||||
self.setEditable(True)
|
||||
|
||||
@ -41,11 +41,11 @@ class QFlightWaypointList(QTableView):
|
||||
self.model.setHorizontalHeaderLabels(HEADER_LABELS)
|
||||
|
||||
header = self.horizontalHeader()
|
||||
header.setSectionResizeMode(0, QHeaderView.ResizeToContents)
|
||||
header.setSectionResizeMode(0, QHeaderView.ResizeMode.ResizeToContents)
|
||||
self.update_list()
|
||||
|
||||
self.selectionModel().setCurrentIndex(
|
||||
self.indexAt(QPoint(1, 1)), QItemSelectionModel.Select
|
||||
self.indexAt(QPoint(1, 1)), QItemSelectionModel.SelectionFlag.Select
|
||||
)
|
||||
|
||||
self.altitude_editor_delegate = AltitudeEditorDelegate(self)
|
||||
@ -66,7 +66,8 @@ class QFlightWaypointList(QTableView):
|
||||
for row, waypoint in enumerate(waypoints):
|
||||
self._add_waypoint_row(row, self.flight, waypoint)
|
||||
self.selectionModel().setCurrentIndex(
|
||||
self.model.index(current_index, 0), QItemSelectionModel.Select
|
||||
self.model.index(current_index, 0),
|
||||
QItemSelectionModel.SelectionFlag.Select,
|
||||
)
|
||||
self.resizeColumnsToContents()
|
||||
total_column_width = self.verticalHeader().width() + self.lineWidth()
|
||||
|
||||
@ -106,11 +106,13 @@ class QFlightWaypointTab(QFrame):
|
||||
return
|
||||
index: QModelIndex = selected[0]
|
||||
self.flight_waypoint_list.setCurrentIndex(index)
|
||||
wpt: FlightWaypoint = self.flight_waypoint_list.model.data(index, Qt.UserRole)
|
||||
wpt: FlightWaypoint = self.flight_waypoint_list.model.data(
|
||||
index, Qt.ItemDataRole.UserRole
|
||||
)
|
||||
next_wpt: Optional[FlightWaypoint] = None
|
||||
if index.row() + 1 < self.flight_waypoint_list.model.rowCount():
|
||||
next_wpt = self.flight_waypoint_list.model.data(
|
||||
index.siblingAtRow(index.row() + 1), Qt.UserRole
|
||||
index.siblingAtRow(index.row() + 1), Qt.ItemDataRole.UserRole
|
||||
)
|
||||
if not self.flight.flight_plan.layout.add_waypoint(wpt, next_wpt):
|
||||
QMessageBox.critical(
|
||||
@ -167,10 +169,10 @@ class QFlightWaypointTab(QFrame):
|
||||
"Deleting the selected waypoint(s) will require degradation to a custom flight-plan. "
|
||||
"A custom flight-plan will no longer respect the TOTs of the package.<br><br>"
|
||||
"<b>Are you sure you wish to continue?</b>",
|
||||
QMessageBox.Yes,
|
||||
QMessageBox.No,
|
||||
QMessageBox.StandardButton.Yes,
|
||||
QMessageBox.StandardButton.No,
|
||||
)
|
||||
return result == QMessageBox.Yes
|
||||
return result == QMessageBox.StandardButton.Yes
|
||||
|
||||
def on_fast_waypoint(self):
|
||||
self.subwindow = QPredefinedWaypointSelectionWindow(
|
||||
@ -189,8 +191,11 @@ class QFlightWaypointTab(QFrame):
|
||||
self.degrade_to_custom_flight_plan()
|
||||
assert isinstance(self.flight.flight_plan, CustomFlightPlan)
|
||||
self.flight.flight_plan.layout.custom_waypoints.extend(waypoints)
|
||||
self.add_rows(len(list(waypoints)))
|
||||
|
||||
def add_rows(self, count: int) -> None:
|
||||
rc = self.flight_waypoint_list.model.rowCount()
|
||||
self.flight_waypoint_list.model.insertRows(rc, len(list(waypoints)))
|
||||
self.flight_waypoint_list.model.insertRows(rc, count)
|
||||
self.on_change()
|
||||
|
||||
def on_rtb_waypoint(self):
|
||||
@ -198,7 +203,7 @@ class QFlightWaypointTab(QFrame):
|
||||
self.degrade_to_custom_flight_plan()
|
||||
assert isinstance(self.flight.flight_plan, CustomFlightPlan)
|
||||
self.flight.flight_plan.layout.custom_waypoints.append(rtb)
|
||||
self.on_change()
|
||||
self.add_rows(1)
|
||||
|
||||
def degrade_to_custom_flight_plan(self) -> None:
|
||||
if not isinstance(self.flight.flight_plan, CustomFlightPlan):
|
||||
@ -212,11 +217,11 @@ class QFlightWaypointTab(QFrame):
|
||||
"Changing the flight type will reset its flight plan. Do you want "
|
||||
"to continue?"
|
||||
),
|
||||
QMessageBox.No,
|
||||
QMessageBox.Yes,
|
||||
QMessageBox.StandardButton.No,
|
||||
QMessageBox.StandardButton.Yes,
|
||||
)
|
||||
original_task = self.flight.flight_type
|
||||
if result == QMessageBox.Yes:
|
||||
if result == QMessageBox.StandardButton.Yes:
|
||||
self.flight.set_flight_type(task)
|
||||
try:
|
||||
self.flight.recreate_flight_plan(dump_debug_info=True)
|
||||
@ -224,7 +229,10 @@ class QFlightWaypointTab(QFrame):
|
||||
self.flight.set_flight_type(original_task)
|
||||
logging.exception("Could not recreate flight")
|
||||
QMessageBox.critical(
|
||||
self, "Could not recreate flight", str(ex), QMessageBox.Ok
|
||||
self,
|
||||
"Could not recreate flight",
|
||||
str(ex),
|
||||
QMessageBox.StandardButton.Ok,
|
||||
)
|
||||
for member in self.flight.iter_members():
|
||||
if not member.loadout.is_custom:
|
||||
|
||||
@ -34,7 +34,7 @@ class QPredefinedWaypointSelectionWindow(QDialog):
|
||||
super(QPredefinedWaypointSelectionWindow, self).__init__()
|
||||
self.game = game
|
||||
self.flight = flight
|
||||
self.setWindowFlags(Qt.WindowStaysOnTopHint)
|
||||
self.setWindowFlags(Qt.WindowType.WindowStaysOnTopHint)
|
||||
self.setMinimumSize(400, 250)
|
||||
self.setModal(True)
|
||||
self.setWindowTitle("Add Predefined Waypoint")
|
||||
|
||||
@ -20,7 +20,7 @@ from qt_ui.windows.newgame.WizardPages.QTheaterConfiguration import (
|
||||
class NewGameWizard(QtWidgets.QWizard):
|
||||
def __init__(self, parent=None):
|
||||
super(NewGameWizard, self).__init__(parent)
|
||||
self.setOption(QtWidgets.QWizard.IndependentPages)
|
||||
self.setOption(QtWidgets.QWizard.WizardOption.IndependentPages)
|
||||
|
||||
self.campaigns = list(sorted(Campaign.load_each(), key=lambda x: x.name))
|
||||
|
||||
@ -41,10 +41,10 @@ class NewGameWizard(QtWidgets.QWizard):
|
||||
self.addPage(ConclusionPage(self))
|
||||
|
||||
self.setPixmap(
|
||||
QtWidgets.QWizard.WatermarkPixmap,
|
||||
QtWidgets.QWizard.WizardPixmap.WatermarkPixmap,
|
||||
QtGui.QPixmap("./resources/ui/wizard/watermark1.png"),
|
||||
)
|
||||
self.setWizardStyle(QtWidgets.QWizard.ModernStyle)
|
||||
self.setWizardStyle(QtWidgets.QWizard.WizardStyle.ModernStyle)
|
||||
|
||||
self.setWindowTitle("New Game")
|
||||
self.generatedGame = None
|
||||
@ -163,7 +163,7 @@ class IntroPage(QtWidgets.QWizardPage):
|
||||
|
||||
self.setTitle("Introduction")
|
||||
self.setPixmap(
|
||||
QtWidgets.QWizard.WatermarkPixmap,
|
||||
QtWidgets.QWizard.WizardPixmap.WatermarkPixmap,
|
||||
QtGui.QPixmap("./resources/ui/wizard/watermark1.png"),
|
||||
)
|
||||
|
||||
@ -185,7 +185,7 @@ class ConclusionPage(QtWidgets.QWizardPage):
|
||||
self.setTitle("Conclusion")
|
||||
self.setSubTitle("\n\n")
|
||||
self.setPixmap(
|
||||
QtWidgets.QWizard.WatermarkPixmap,
|
||||
QtWidgets.QWizard.WizardPixmap.WatermarkPixmap,
|
||||
QtGui.QPixmap("./resources/ui/wizard/watermark2.png"),
|
||||
)
|
||||
|
||||
|
||||
@ -109,7 +109,7 @@ class FactionSelection(QtWidgets.QWizardPage):
|
||||
"\nChoose the two opposing factions and select the player side."
|
||||
)
|
||||
self.setPixmap(
|
||||
QtWidgets.QWizard.LogoPixmap,
|
||||
QtWidgets.QWizard.WizardPixmap.LogoPixmap,
|
||||
QtGui.QPixmap("./resources/ui/misc/generator.png"),
|
||||
)
|
||||
|
||||
@ -133,13 +133,17 @@ class FactionSelection(QtWidgets.QWizardPage):
|
||||
self.blueFactionDescription = QTextBrowser()
|
||||
self.blueFactionDescription.setReadOnly(True)
|
||||
self.blueFactionDescription.setOpenExternalLinks(True)
|
||||
self.blueFactionDescription.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOn)
|
||||
self.blueFactionDescription.setVerticalScrollBarPolicy(
|
||||
Qt.ScrollBarPolicy.ScrollBarAlwaysOn
|
||||
)
|
||||
self.blueFactionDescription.setMaximumHeight(120)
|
||||
|
||||
self.redFactionDescription = QTextBrowser()
|
||||
self.redFactionDescription.setReadOnly(True)
|
||||
self.redFactionDescription.setOpenExternalLinks(True)
|
||||
self.redFactionDescription.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOn)
|
||||
self.redFactionDescription.setVerticalScrollBarPolicy(
|
||||
Qt.ScrollBarPolicy.ScrollBarAlwaysOn
|
||||
)
|
||||
self.redFactionDescription.setMaximumHeight(120)
|
||||
|
||||
# Setup default selected factions
|
||||
@ -177,7 +181,7 @@ class FactionSelection(QtWidgets.QWizardPage):
|
||||
docsText = QtWidgets.QLabel(
|
||||
'<a href="https://github.com/dcs-retribution/dcs-retribution/wiki/Custom-Factions"><span style="color:#FFFFFF;">How to create your own faction</span></a>'
|
||||
)
|
||||
docsText.setAlignment(Qt.AlignCenter)
|
||||
docsText.setAlignment(Qt.AlignmentFlag.AlignCenter)
|
||||
docsText.setOpenExternalLinks(True)
|
||||
|
||||
# Link form fields
|
||||
|
||||
@ -21,7 +21,7 @@ class BudgetInputs(QtWidgets.QGridLayout):
|
||||
minimum = 0
|
||||
maximum = 5000
|
||||
|
||||
slider = QtWidgets.QSlider(Qt.Horizontal)
|
||||
slider = QtWidgets.QSlider(Qt.Orientation.Horizontal)
|
||||
slider.setMinimum(minimum)
|
||||
slider.setMaximum(maximum)
|
||||
slider.setValue(value)
|
||||
@ -40,7 +40,7 @@ class GeneratorOptions(QtWidgets.QWizardPage):
|
||||
self.setTitle("Generator settings")
|
||||
self.setSubTitle("\nOptions affecting the generation of the game.")
|
||||
self.setPixmap(
|
||||
QtWidgets.QWizard.LogoPixmap,
|
||||
QtWidgets.QWizard.WizardPixmap.LogoPixmap,
|
||||
QtGui.QPixmap("./resources/ui/wizard/logo1.png"),
|
||||
)
|
||||
|
||||
@ -142,7 +142,7 @@ class GeneratorOptions(QtWidgets.QWizardPage):
|
||||
modHelpText = QtWidgets.QLabel(
|
||||
"<p>Select the mods you have installed. If your chosen factions support them, you'll be able to use these mods in your campaign.</p>"
|
||||
)
|
||||
modHelpText.setAlignment(Qt.AlignCenter)
|
||||
modHelpText.setAlignment(Qt.AlignmentFlag.AlignCenter)
|
||||
|
||||
modLayout = QtWidgets.QGridLayout()
|
||||
modLayout_row = 1
|
||||
|
||||
@ -14,7 +14,7 @@ class NewGameSettings(QtWidgets.QWizardPage):
|
||||
self.setTitle("Campaign options")
|
||||
self.setSubTitle("\nAll other options unrelated to campaign generation.")
|
||||
self.setPixmap(
|
||||
QtWidgets.QWizard.LogoPixmap,
|
||||
QtWidgets.QWizard.WizardPixmap.LogoPixmap,
|
||||
QtGui.QPixmap("./resources/ui/wizard/logo1.png"),
|
||||
)
|
||||
|
||||
|
||||
@ -83,12 +83,12 @@ class TheaterConfiguration(QtWidgets.QWizardPage):
|
||||
self.setTitle("Theater configuration")
|
||||
self.setSubTitle("\nChoose a terrain and time period for this game.")
|
||||
self.setPixmap(
|
||||
QtWidgets.QWizard.LogoPixmap,
|
||||
QtWidgets.QWizard.WizardPixmap.LogoPixmap,
|
||||
QtGui.QPixmap("./resources/ui/wizard/logo1.png"),
|
||||
)
|
||||
|
||||
self.setPixmap(
|
||||
QtWidgets.QWizard.WatermarkPixmap,
|
||||
QtWidgets.QWizard.WizardPixmap.WatermarkPixmap,
|
||||
QtGui.QPixmap("./resources/ui/wizard/watermark3.png"),
|
||||
)
|
||||
|
||||
@ -205,7 +205,8 @@ class TheaterConfiguration(QtWidgets.QWizardPage):
|
||||
self.campaign_selected.emit(campaign)
|
||||
|
||||
self.campaignList.selectionModel().setCurrentIndex(
|
||||
self.campaignList.indexAt(QPoint(1, 1)), QItemSelectionModel.Rows
|
||||
self.campaignList.indexAt(QPoint(1, 1)),
|
||||
QItemSelectionModel.SelectionFlag.Rows,
|
||||
)
|
||||
|
||||
self.campaignList.selectionModel().selectionChanged.connect(
|
||||
@ -220,7 +221,7 @@ class TheaterConfiguration(QtWidgets.QWizardPage):
|
||||
'or <a href="https://github.com/dcs-retribution/dcs-retribution/wiki/Custom-Campaigns"><span style="color:#FFFFFF;">create your own</span></a>.'
|
||||
"</p>"
|
||||
)
|
||||
docsText.setAlignment(Qt.AlignCenter)
|
||||
docsText.setAlignment(Qt.AlignmentFlag.AlignCenter)
|
||||
docsText.setOpenExternalLinks(True)
|
||||
|
||||
# Register fields
|
||||
@ -278,7 +279,7 @@ class QCampaignItem(QStandardItem):
|
||||
|
||||
|
||||
class QCampaignList(QListView):
|
||||
CampaignRole = Qt.UserRole
|
||||
CampaignRole = Qt.ItemDataRole.UserRole
|
||||
|
||||
def __init__(self, campaigns: list[Campaign], show_incompatible: bool) -> None:
|
||||
super(QCampaignList, self).__init__()
|
||||
@ -287,7 +288,7 @@ class QCampaignList(QListView):
|
||||
self.setMinimumWidth(250)
|
||||
self.setMinimumHeight(350)
|
||||
self.campaigns = campaigns
|
||||
self.setSelectionBehavior(QAbstractItemView.SelectItems)
|
||||
self.setSelectionBehavior(QAbstractItemView.SelectionBehavior.SelectItems)
|
||||
self.setup_content(show_incompatible)
|
||||
|
||||
@property
|
||||
@ -306,5 +307,6 @@ class QCampaignList(QListView):
|
||||
self.selectionModel().blockSignals(False)
|
||||
|
||||
self.selectionModel().setCurrentIndex(
|
||||
self.campaign_model.index(0, 0, QModelIndex()), QItemSelectionModel.Select
|
||||
self.campaign_model.index(0, 0, QModelIndex()),
|
||||
QItemSelectionModel.SelectionFlag.Select,
|
||||
)
|
||||
|
||||
@ -33,7 +33,7 @@ class QNotesWindow(QDialog):
|
||||
self.textbox = QPlainTextEdit(self)
|
||||
try:
|
||||
self.textbox.setPlainText(self.game.notes)
|
||||
self.textbox.moveCursor(QTextCursor.End)
|
||||
self.textbox.moveCursor(QTextCursor.MoveOperation.End)
|
||||
except AttributeError: # old save may not have game.notes
|
||||
pass
|
||||
self.textbox.move(10, 10)
|
||||
|
||||
@ -18,8 +18,12 @@ class QLiberationFirstStartWindow(QDialog):
|
||||
self.setWindowTitle("First start configuration")
|
||||
self.setMinimumSize(500, 200)
|
||||
self.setWindowIcon(QIcon("./resources/icon.png"))
|
||||
self.setWindowFlags(Qt.WindowStaysOnTopHint | Qt.Dialog | Qt.WindowTitleHint)
|
||||
self.setWindowModality(Qt.WindowModal)
|
||||
self.setWindowFlags(
|
||||
Qt.WindowType.WindowStaysOnTopHint
|
||||
| Qt.WindowType.Dialog
|
||||
| Qt.WindowType.WindowTitleHint
|
||||
)
|
||||
self.setWindowModality(Qt.WindowModality.WindowModal)
|
||||
self.preferences = QLiberationPreferences()
|
||||
|
||||
WARN_TEXT = """
|
||||
|
||||
@ -49,20 +49,28 @@ class QLiberationPreferences(QFrame):
|
||||
QLabel("<strong>DCS saved game directory:</strong>"),
|
||||
0,
|
||||
0,
|
||||
alignment=Qt.AlignLeft,
|
||||
alignment=Qt.AlignmentFlag.AlignLeft,
|
||||
)
|
||||
layout.addWidget(
|
||||
self.edit_saved_game_dir, 1, 0, alignment=Qt.AlignmentFlag.AlignRight
|
||||
)
|
||||
layout.addWidget(
|
||||
self.browse_saved_game, 1, 1, alignment=Qt.AlignmentFlag.AlignRight
|
||||
)
|
||||
layout.addWidget(self.edit_saved_game_dir, 1, 0, alignment=Qt.AlignRight)
|
||||
layout.addWidget(self.browse_saved_game, 1, 1, alignment=Qt.AlignRight)
|
||||
layout.addWidget(
|
||||
QLabel("<strong>DCS installation directory:</strong>"),
|
||||
2,
|
||||
0,
|
||||
alignment=Qt.AlignLeft,
|
||||
alignment=Qt.AlignmentFlag.AlignLeft,
|
||||
)
|
||||
layout.addWidget(
|
||||
self.edit_dcs_install_dir, 3, 0, alignment=Qt.AlignmentFlag.AlignRight
|
||||
)
|
||||
layout.addWidget(
|
||||
self.browse_install_dir, 3, 1, alignment=Qt.AlignmentFlag.AlignRight
|
||||
)
|
||||
layout.addWidget(self.edit_dcs_install_dir, 3, 0, alignment=Qt.AlignRight)
|
||||
layout.addWidget(self.browse_install_dir, 3, 1, alignment=Qt.AlignRight)
|
||||
layout.addWidget(QLabel("<strong>Theme (Requires Restart)</strong>"), 4, 0)
|
||||
layout.addWidget(self.themeSelect, 4, 1, alignment=Qt.AlignRight)
|
||||
layout.addWidget(self.themeSelect, 4, 1, alignment=Qt.AlignmentFlag.AlignRight)
|
||||
self.themeSelect.setCurrentIndex(get_theme_index())
|
||||
|
||||
main_layout.addLayout(layout)
|
||||
@ -115,7 +123,7 @@ class QLiberationPreferences(QFrame):
|
||||
QMessageBox.StandardButton.Yes,
|
||||
QMessageBox.StandardButton.No,
|
||||
)
|
||||
if warning_dialog == QMessageBox.No:
|
||||
if warning_dialog == QMessageBox.StandardButton.No:
|
||||
return False
|
||||
elif not os.path.isdir(self.dcs_install_dir):
|
||||
error_dialog = QMessageBox.critical(
|
||||
@ -130,7 +138,7 @@ class QLiberationPreferences(QFrame):
|
||||
QMessageBox.StandardButton.Ignore,
|
||||
QMessageBox.StandardButton.Ok,
|
||||
)
|
||||
if error_dialog == QMessageBox.Ignore:
|
||||
if error_dialog == QMessageBox.StandardButton.Ignore:
|
||||
self.install_dir_ignore_warning = True
|
||||
return False
|
||||
elif not os.path.isdir(
|
||||
|
||||
@ -180,7 +180,7 @@ class AutoSettingsLayout(QGridLayout):
|
||||
value = not value
|
||||
checkbox.setChecked(value)
|
||||
checkbox.toggled.connect(on_toggle)
|
||||
self.addWidget(checkbox, row, 1, Qt.AlignRight)
|
||||
self.addWidget(checkbox, row, 1, Qt.AlignmentFlag.AlignRight)
|
||||
self.settings_map[name] = checkbox
|
||||
|
||||
def add_combobox_for(self, row: int, name: str, description: ChoicesOption) -> None:
|
||||
@ -195,7 +195,7 @@ class AutoSettingsLayout(QGridLayout):
|
||||
description.text_for_value(self.sc.settings.__dict__[name])
|
||||
)
|
||||
combobox.currentIndexChanged.connect(on_changed)
|
||||
self.addWidget(combobox, row, 1, Qt.AlignRight)
|
||||
self.addWidget(combobox, row, 1, Qt.AlignmentFlag.AlignRight)
|
||||
self.settings_map[name] = combobox
|
||||
|
||||
def add_float_spin_slider_for(
|
||||
@ -212,7 +212,7 @@ class AutoSettingsLayout(QGridLayout):
|
||||
self.sc.settings.__dict__[name] = spinner.value
|
||||
|
||||
spinner.spinner.valueChanged.connect(on_changed)
|
||||
self.addLayout(spinner, row, 1, Qt.AlignRight)
|
||||
self.addLayout(spinner, row, 1, Qt.AlignmentFlag.AlignRight)
|
||||
self.settings_map[name] = spinner
|
||||
|
||||
def add_spinner_for(
|
||||
@ -229,7 +229,7 @@ class AutoSettingsLayout(QGridLayout):
|
||||
spinner.setValue(self.sc.settings.__dict__[name])
|
||||
|
||||
spinner.valueChanged.connect(on_changed)
|
||||
self.addWidget(spinner, row, 1, Qt.AlignRight)
|
||||
self.addWidget(spinner, row, 1, Qt.AlignmentFlag.AlignRight)
|
||||
self.settings_map[name] = spinner
|
||||
|
||||
def add_duration_controls_for(
|
||||
@ -243,7 +243,7 @@ class AutoSettingsLayout(QGridLayout):
|
||||
self.sc.settings.__dict__[name] = inputs.value
|
||||
|
||||
inputs.spinner.valueChanged.connect(on_changed)
|
||||
self.addLayout(inputs, row, 1, Qt.AlignRight)
|
||||
self.addLayout(inputs, row, 1, Qt.AlignmentFlag.AlignRight)
|
||||
self.settings_map[name] = inputs
|
||||
|
||||
def update_from_settings(self) -> None:
|
||||
@ -293,7 +293,7 @@ class AutoSettingsPageLayout(QVBoxLayout):
|
||||
write_full_settings: Callable[[], None],
|
||||
) -> None:
|
||||
super().__init__()
|
||||
self.setAlignment(Qt.AlignTop)
|
||||
self.setAlignment(Qt.AlignmentFlag.AlignTop)
|
||||
|
||||
self.widgets = []
|
||||
for section in Settings.sections(page):
|
||||
@ -403,10 +403,13 @@ class QSettingsWidget(QtWidgets.QWizardPage, SettingsContainer):
|
||||
scroll.setWidgetResizable(True)
|
||||
self.right_layout.addWidget(scroll)
|
||||
|
||||
self.categoryList.setSelectionBehavior(QAbstractItemView.SelectRows)
|
||||
self.categoryList.setSelectionBehavior(
|
||||
QAbstractItemView.SelectionBehavior.SelectRows
|
||||
)
|
||||
self.categoryList.setModel(self.categoryModel)
|
||||
self.categoryList.selectionModel().setCurrentIndex(
|
||||
self.categoryList.indexAt(QPoint(1, 1)), QItemSelectionModel.Select
|
||||
self.categoryList.indexAt(QPoint(1, 1)),
|
||||
QItemSelectionModel.SelectionFlag.Select,
|
||||
)
|
||||
self.categoryList.selectionModel().selectionChanged.connect(
|
||||
self.onSelectionChanged
|
||||
@ -434,7 +437,7 @@ class QSettingsWidget(QtWidgets.QWizardPage, SettingsContainer):
|
||||
|
||||
self.moneyCheatBox = QGroupBox("Money Cheat")
|
||||
self.moneyCheatBox.setDisabled(self.game is None)
|
||||
self.moneyCheatBox.setAlignment(Qt.AlignTop)
|
||||
self.moneyCheatBox.setAlignment(Qt.AlignmentFlag.AlignTop)
|
||||
self.moneyCheatBoxLayout = QGridLayout()
|
||||
self.moneyCheatBox.setLayout(self.moneyCheatBoxLayout)
|
||||
|
||||
@ -523,7 +526,7 @@ class QSettingsWidget(QtWidgets.QWizardPage, SettingsContainer):
|
||||
if not sd.exists():
|
||||
sd.mkdir()
|
||||
fd = QFileDialog(caption="Save Settings", directory=str(sd), filter="*.zip")
|
||||
fd.setAcceptMode(QFileDialog.AcceptSave)
|
||||
fd.setAcceptMode(QFileDialog.AcceptMode.AcceptSave)
|
||||
if fd.exec_():
|
||||
zipfilename = fd.selectedFiles()[0]
|
||||
with zipfile.ZipFile(zipfilename, "w", zipfile.ZIP_DEFLATED) as zf:
|
||||
|
||||
@ -22,7 +22,7 @@ class PluginsBox(QGroupBox):
|
||||
super().__init__("Plugins")
|
||||
|
||||
layout = QGridLayout()
|
||||
layout.setAlignment(Qt.AlignTop)
|
||||
layout.setAlignment(Qt.AlignmentFlag.AlignTop)
|
||||
self.setLayout(layout)
|
||||
|
||||
self.plugin_map: Dict[str, QCheckBox] = {}
|
||||
@ -52,7 +52,7 @@ class PluginsPage(QWidget):
|
||||
self.sc = sc
|
||||
|
||||
layout = QVBoxLayout()
|
||||
layout.setAlignment(Qt.AlignTop)
|
||||
layout.setAlignment(Qt.AlignmentFlag.AlignTop)
|
||||
self.setLayout(layout)
|
||||
|
||||
self.plugins_box = PluginsBox()
|
||||
@ -67,7 +67,7 @@ class PluginOptionsBox(QGroupBox):
|
||||
super().__init__(plugin.name)
|
||||
|
||||
layout = QGridLayout()
|
||||
layout.setAlignment(Qt.AlignTop)
|
||||
layout.setAlignment(Qt.AlignmentFlag.AlignTop)
|
||||
self.setLayout(layout)
|
||||
|
||||
self.widgets: Dict[str, QWidget] = {}
|
||||
@ -86,7 +86,7 @@ class PluginOptionsBox(QGroupBox):
|
||||
if type(val) == float:
|
||||
spinbox = QDoubleSpinBox()
|
||||
spinbox.setSingleStep(0.01)
|
||||
spinbox.setLocale(QLocale.English)
|
||||
spinbox.setLocale(QLocale.Language.English)
|
||||
else:
|
||||
spinbox = QSpinBox()
|
||||
spinbox.setMinimum(option.min)
|
||||
@ -113,7 +113,7 @@ class PluginOptionsPage(QWidget):
|
||||
self.sc = sc
|
||||
|
||||
layout = QVBoxLayout()
|
||||
layout.setAlignment(Qt.AlignTop)
|
||||
layout.setAlignment(Qt.AlignmentFlag.AlignTop)
|
||||
self.setLayout(layout)
|
||||
|
||||
self.pobs: List[PluginOptionsBox] = []
|
||||
|
||||
@ -31,7 +31,7 @@ class QAircraftChart(QFrame):
|
||||
self.alliedAircraftSerie.append(QPoint(a, i))
|
||||
|
||||
self.enemyAircraftSerie = QtCharts.QLineSeries()
|
||||
self.enemyAircraftSerie.setColor(Qt.red)
|
||||
self.enemyAircraftSerie.setColor(Qt.GlobalColor.red)
|
||||
self.enemyAircraftSerie.setName("Enemy aircraft count")
|
||||
for a, i in enumerate(self.enemyAircraft):
|
||||
self.enemyAircraftSerie.append(QPoint(a, i))
|
||||
@ -54,6 +54,6 @@ class QAircraftChart(QFrame):
|
||||
self.chart.axisY().applyNiceNumbers()
|
||||
|
||||
self.chartView = QtCharts.QChartView(self.chart)
|
||||
self.chartView.setRenderHint(QPainter.Antialiasing)
|
||||
self.chartView.setRenderHint(QPainter.RenderHint.Antialiasing)
|
||||
|
||||
self.layout.addWidget(self.chartView, 0, 0)
|
||||
|
||||
@ -31,7 +31,7 @@ class QArmorChart(QFrame):
|
||||
self.alliedArmorSerie.append(QPoint(a, i))
|
||||
|
||||
self.enemyArmorSerie = QtCharts.QLineSeries()
|
||||
self.enemyArmorSerie.setColor(Qt.red)
|
||||
self.enemyArmorSerie.setColor(Qt.GlobalColor.red)
|
||||
self.enemyArmorSerie.setName("Enemy vehicle count")
|
||||
for a, i in enumerate(self.enemyArmor):
|
||||
self.enemyArmorSerie.append(QPoint(a, i))
|
||||
@ -54,6 +54,6 @@ class QArmorChart(QFrame):
|
||||
self.chart.axisY().applyNiceNumbers()
|
||||
|
||||
self.chartView = QtCharts.QChartView(self.chart)
|
||||
self.chartView.setRenderHint(QPainter.Antialiasing)
|
||||
self.chartView.setRenderHint(QPainter.RenderHint.Antialiasing)
|
||||
|
||||
self.layout.addWidget(self.chartView, 0, 0)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user