From 3c921198af0c04cce4613511074ac1d184a16e2e Mon Sep 17 00:00:00 2001 From: Raffson Date: Sat, 14 Oct 2023 18:42:20 +0200 Subject: [PATCH] PySide6 steamlining --- qt_ui/delegates.py | 34 ++++++++++------ qt_ui/errorreporter.py | 2 +- qt_ui/models.py | 40 +++++++++---------- qt_ui/uncaughtexceptionhandler.py | 2 +- qt_ui/widgets/QLabeledWidget.py | 2 +- qt_ui/widgets/QLiberationCalendar.py | 24 ++++++----- qt_ui/widgets/QTopPanel.py | 22 +++++----- qt_ui/widgets/ato.py | 11 ++--- qt_ui/widgets/combos/QFilteredComboBox.py | 8 ++-- qt_ui/widgets/map/QLiberationMap.py | 5 ++- qt_ui/widgets/spinsliders.py | 4 +- qt_ui/windows/AirWingConfigurationDialog.py | 26 +++++++----- qt_ui/windows/AirWingDialog.py | 7 ++-- qt_ui/windows/PendingTransfersDialog.py | 7 ++-- qt_ui/windows/QICLSDialog.py | 2 +- qt_ui/windows/QLiberationWindow.py | 24 ++++++----- qt_ui/windows/QRadioFrequencyDialog.py | 2 +- qt_ui/windows/QTacanDialog.py | 2 +- qt_ui/windows/QUnitInfoWindow.py | 2 +- .../windows/QWaitingForMissionResultWindow.py | 4 +- qt_ui/windows/SquadronDialog.py | 19 ++++++--- .../windows/basemenu/DepartingConvoysMenu.py | 6 +-- .../windows/basemenu/NewUnitTransferDialog.py | 34 +++++++++------- qt_ui/windows/basemenu/QBaseMenu2.py | 14 ++++--- .../windows/basemenu/UnitTransactionFrame.py | 40 ++++++++++++------- .../airfield/QAircraftRecruitmentMenu.py | 6 +-- .../ground_forces/QArmorRecruitmentMenu.py | 4 +- qt_ui/windows/basemenu/intel/QIntelInfo.py | 4 +- qt_ui/windows/finances/QFinancesMenu.py | 6 +-- .../groundobject/QGroundObjectBuyMenu.py | 22 ++++++---- qt_ui/windows/infos/QInfoList.py | 4 +- qt_ui/windows/intel.py | 4 +- qt_ui/windows/logs/QLogsWindow.py | 4 +- qt_ui/windows/mission/QPackageDialog.py | 6 +-- qt_ui/windows/mission/QPlannedFlightsView.py | 6 ++- .../windows/mission/flight/QFlightCreator.py | 6 ++- .../flight/payload/QFlightPayloadTab.py | 6 +-- .../mission/flight/payload/QLoadoutEditor.py | 8 +++- .../settings/FlightPlanPropertiesGroup.py | 5 ++- .../flight/waypoints/QFlightWaypointItem.py | 2 +- .../flight/waypoints/QFlightWaypointList.py | 7 ++-- .../flight/waypoints/QFlightWaypointTab.py | 30 +++++++++----- .../QPredefinedWaypointSelectionWindow.py | 2 +- qt_ui/windows/newgame/QNewGameWizard.py | 10 ++--- .../newgame/WizardPages/QFactionSelection.py | 12 ++++-- .../newgame/WizardPages/QGeneratorSettings.py | 6 +-- .../newgame/WizardPages/QNewGameSettings.py | 2 +- .../WizardPages/QTheaterConfiguration.py | 16 ++++---- qt_ui/windows/notes/QNotesWindow.py | 2 +- .../QLiberationFirstStartWindow.py | 8 +++- .../preferences/QLiberationPreferences.py | 26 +++++++----- qt_ui/windows/settings/QSettingsWindow.py | 23 ++++++----- qt_ui/windows/settings/plugins.py | 10 ++--- qt_ui/windows/stats/QAircraftChart.py | 4 +- qt_ui/windows/stats/QArmorChart.py | 4 +- 55 files changed, 352 insertions(+), 246 deletions(-) diff --git a/qt_ui/delegates.py b/qt_ui/delegates.py index dbeca273..e05c708b 100644 --- a/qt_ui/delegates.py +++ b/qt_ui/delegates.py @@ -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) diff --git a/qt_ui/errorreporter.py b/qt_ui/errorreporter.py index f945179f..918a3d00 100644 --- a/qt_ui/errorreporter.py +++ b/qt_ui/errorreporter.py @@ -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) diff --git a/qt_ui/models.py b/qt_ui/models.py index 4c76f185..ca93111a 100644 --- a/qt_ui/models.py +++ b/qt_ui/models.py @@ -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 diff --git a/qt_ui/uncaughtexceptionhandler.py b/qt_ui/uncaughtexceptionhandler.py index 3b32ab9f..61476b34 100644 --- a/qt_ui/uncaughtexceptionhandler.py +++ b/qt_ui/uncaughtexceptionhandler.py @@ -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.") diff --git a/qt_ui/widgets/QLabeledWidget.py b/qt_ui/widgets/QLabeledWidget.py index aa357c0b..69522e09 100644 --- a/qt_ui/widgets/QLabeledWidget.py +++ b/qt_ui/widgets/QLabeledWidget.py @@ -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) diff --git a/qt_ui/widgets/QLiberationCalendar.py b/qt_ui/widgets/QLiberationCalendar.py index a839a430..3a840885 100644 --- a/qt_ui/widgets/QLiberationCalendar.py +++ b/qt_ui/widgets/QLiberationCalendar.py @@ -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) diff --git a/qt_ui/widgets/QTopPanel.py b/qt_ui/widgets/QTopPanel.py index 71ee3356..bb97a192 100644 --- a/qt_ui/widgets/QTopPanel.py +++ b/qt_ui/widgets/QTopPanel.py @@ -215,17 +215,17 @@ class QTopPanel(QFrame): "
Click 'Yes' to continue with an AI only mission" "
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 = "
".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:
" @@ -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 diff --git a/qt_ui/widgets/ato.py b/qt_ui/widgets/ato.py index 26572cc3..99d61f3f 100644 --- a/qt_ui/widgets/ato.py +++ b/qt_ui/widgets/ato.py @@ -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) diff --git a/qt_ui/widgets/combos/QFilteredComboBox.py b/qt_ui/widgets/combos/QFilteredComboBox.py index 65d7a940..16edaa1f 100644 --- a/qt_ui/widgets/combos/QFilteredComboBox.py +++ b/qt_ui/widgets/combos/QFilteredComboBox.py @@ -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()) diff --git a/qt_ui/widgets/map/QLiberationMap.py b/qt_ui/widgets/map/QLiberationMap.py index 164ae9b9..d263a822 100644 --- a/qt_ui/widgets/map/QLiberationMap.py +++ b/qt_ui/widgets/map/QLiberationMap.py @@ -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: diff --git a/qt_ui/widgets/spinsliders.py b/qt_ui/widgets/spinsliders.py index 5ca2a9ab..aff85a90 100644 --- a/qt_ui/widgets/spinsliders.py +++ b/qt_ui/widgets/spinsliders.py @@ -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) diff --git a/qt_ui/windows/AirWingConfigurationDialog.py b/qt_ui/windows/AirWingConfigurationDialog.py index f94ac9b6..0f39d426 100644 --- a/qt_ui/windows/AirWingConfigurationDialog.py +++ b/qt_ui/windows/AirWingConfigurationDialog.py @@ -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() diff --git a/qt_ui/windows/AirWingDialog.py b/qt_ui/windows/AirWingDialog.py index c62f26f7..0e897cea 100644 --- a/qt_ui/windows/AirWingDialog.py +++ b/qt_ui/windows/AirWingDialog.py @@ -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) diff --git a/qt_ui/windows/PendingTransfersDialog.py b/qt_ui/windows/PendingTransfersDialog.py index 0cb0c375..e671a161 100644 --- a/qt_ui/windows/PendingTransfersDialog.py +++ b/qt_ui/windows/PendingTransfersDialog.py @@ -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()) diff --git a/qt_ui/windows/QICLSDialog.py b/qt_ui/windows/QICLSDialog.py index 087ff452..c09953d3 100644 --- a/qt_ui/windows/QICLSDialog.py +++ b/qt_ui/windows/QICLSDialog.py @@ -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) diff --git a/qt_ui/windows/QLiberationWindow.py b/qt_ui/windows/QLiberationWindow.py index fe6a9b39..c7feb6be 100644 --- a/qt_ui/windows/QLiberationWindow.py +++ b/qt_ui/windows/QLiberationWindow.py @@ -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) diff --git a/qt_ui/windows/QRadioFrequencyDialog.py b/qt_ui/windows/QRadioFrequencyDialog.py index 8102b0b6..deb4cc03 100644 --- a/qt_ui/windows/QRadioFrequencyDialog.py +++ b/qt_ui/windows/QRadioFrequencyDialog.py @@ -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) diff --git a/qt_ui/windows/QTacanDialog.py b/qt_ui/windows/QTacanDialog.py index c86fc8ee..d49c6344 100644 --- a/qt_ui/windows/QTacanDialog.py +++ b/qt_ui/windows/QTacanDialog.py @@ -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) diff --git a/qt_ui/windows/QUnitInfoWindow.py b/qt_ui/windows/QUnitInfoWindow.py index c92b0523..df25417f 100644 --- a/qt_ui/windows/QUnitInfoWindow.py +++ b/qt_ui/windows/QUnitInfoWindow.py @@ -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() diff --git a/qt_ui/windows/QWaitingForMissionResultWindow.py b/qt_ui/windows/QWaitingForMissionResultWindow.py index 96e326d4..9013c04b 100644 --- a/qt_ui/windows/QWaitingForMissionResultWindow.py +++ b/qt_ui/windows/QWaitingForMissionResultWindow.py @@ -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) diff --git a/qt_ui/windows/SquadronDialog.py b/qt_ui/windows/SquadronDialog.py index 23b42ee1..98a25f6d 100644 --- a/qt_ui/windows/SquadronDialog.py +++ b/qt_ui/windows/SquadronDialog.py @@ -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: diff --git a/qt_ui/windows/basemenu/DepartingConvoysMenu.py b/qt_ui/windows/basemenu/DepartingConvoysMenu.py index f6963ce8..359e7e55 100644 --- a/qt_ui/windows/basemenu/DepartingConvoysMenu.py +++ b/qt_ui/windows/basemenu/DepartingConvoysMenu.py @@ -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) diff --git a/qt_ui/windows/basemenu/NewUnitTransferDialog.py b/qt_ui/windows/basemenu/NewUnitTransferDialog.py index 834d74fe..b416031e 100644 --- a/qt_ui/windows/basemenu/NewUnitTransferDialog.py +++ b/qt_ui/windows/basemenu/NewUnitTransferDialog.py @@ -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"{unit_type.display_name}") 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) diff --git a/qt_ui/windows/basemenu/QBaseMenu2.py b/qt_ui/windows/basemenu/QBaseMenu2.py index 311a4381..ebaaea83 100644 --- a/qt_ui/windows/basemenu/QBaseMenu2.py +++ b/qt_ui/windows/basemenu/QBaseMenu2.py @@ -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("" + self.cp.name + "") - 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 diff --git a/qt_ui/windows/basemenu/UnitTransactionFrame.py b/qt_ui/windows/basemenu/UnitTransactionFrame.py index bdf14f28..f8642ae5 100644 --- a/qt_ui/windows/basemenu/UnitTransactionFrame.py +++ b/qt_ui/windows/basemenu/UnitTransactionFrame.py @@ -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"{self.display_name_of(item, multiline=True)}") 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"$ {self.price_of(item)} 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() diff --git a/qt_ui/windows/basemenu/airfield/QAircraftRecruitmentMenu.py b/qt_ui/windows/basemenu/airfield/QAircraftRecruitmentMenu.py index 08608ef8..14f8bcf7 100644 --- a/qt_ui/windows/basemenu/airfield/QAircraftRecruitmentMenu.py +++ b/qt_ui/windows/basemenu/airfield/QAircraftRecruitmentMenu.py @@ -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( diff --git a/qt_ui/windows/basemenu/ground_forces/QArmorRecruitmentMenu.py b/qt_ui/windows/basemenu/ground_forces/QArmorRecruitmentMenu.py index 07ef03d9..7d144245 100644 --- a/qt_ui/windows/basemenu/ground_forces/QArmorRecruitmentMenu.py +++ b/qt_ui/windows/basemenu/ground_forces/QArmorRecruitmentMenu.py @@ -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) diff --git a/qt_ui/windows/basemenu/intel/QIntelInfo.py b/qt_ui/windows/basemenu/intel/QIntelInfo.py index 41faf90a..b439639d 100644 --- a/qt_ui/windows/basemenu/intel/QIntelInfo.py +++ b/qt_ui/windows/basemenu/intel/QIntelInfo.py @@ -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) diff --git a/qt_ui/windows/finances/QFinancesMenu.py b/qt_ui/windows/finances/QFinancesMenu.py index 77adcf48..6f427d5a 100644 --- a/qt_ui/windows/finances/QFinancesMenu.py +++ b/qt_ui/windows/finances/QFinancesMenu.py @@ -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): diff --git a/qt_ui/windows/groundobject/QGroundObjectBuyMenu.py b/qt_ui/windows/groundobject/QGroundObjectBuyMenu.py index 647ac060..5b641695 100644 --- a/qt_ui/windows/groundobject/QGroundObjectBuyMenu.py +++ b/qt_ui/windows/groundobject/QGroundObjectBuyMenu.py @@ -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) diff --git a/qt_ui/windows/infos/QInfoList.py b/qt_ui/windows/infos/QInfoList.py index 877a977a..27a54c1a 100644 --- a/qt_ui/windows/infos/QInfoList.py +++ b/qt_ui/windows/infos/QInfoList.py @@ -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): diff --git a/qt_ui/windows/intel.py b/qt_ui/windows/intel.py index 75ee147c..bde1cacd 100644 --- a/qt_ui/windows/intel.py +++ b/qt_ui/windows/intel.py @@ -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, ) diff --git a/qt_ui/windows/logs/QLogsWindow.py b/qt_ui/windows/logs/QLogsWindow.py index bdde7787..b33fe77a 100644 --- a/qt_ui/windows/logs/QLogsWindow.py +++ b/qt_ui/windows/logs/QLogsWindow.py @@ -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) diff --git a/qt_ui/windows/mission/QPackageDialog.py b/qt_ui/windows/mission/QPackageDialog.py index 39aaa945..22350929 100644 --- a/qt_ui/windows/mission/QPackageDialog.py +++ b/qt_ui/windows/mission/QPackageDialog.py @@ -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( 'Help' ) - 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 diff --git a/qt_ui/windows/mission/QPlannedFlightsView.py b/qt_ui/windows/mission/QPlannedFlightsView.py index 2839d14b..87919da6 100644 --- a/qt_ui/windows/mission/QPlannedFlightsView.py +++ b/qt_ui/windows/mission/QPlannedFlightsView.py @@ -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): diff --git a/qt_ui/windows/mission/flight/QFlightCreator.py b/qt_ui/windows/mission/flight/QFlightCreator.py index bf791473..aeee0952 100644 --- a/qt_ui/windows/mission/flight/QFlightCreator.py +++ b/qt_ui/windows/mission/flight/QFlightCreator.py @@ -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() diff --git a/qt_ui/windows/mission/flight/payload/QFlightPayloadTab.py b/qt_ui/windows/mission/flight/payload/QFlightPayloadTab.py index 808e957b..afe6b56a 100644 --- a/qt_ui/windows/mission/flight/payload/QFlightPayloadTab.py +++ b/qt_ui/windows/mission/flight/payload/QFlightPayloadTab.py @@ -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( 'How to create your own default loadout' ) - docsText.setAlignment(Qt.AlignCenter) + docsText.setAlignment(Qt.AlignmentFlag.AlignCenter) docsText.setOpenExternalLinks(True) self.fuel_selector = DcsFuelSelector(flight) diff --git a/qt_ui/windows/mission/flight/payload/QLoadoutEditor.py b/qt_ui/windows/mission/flight/payload/QLoadoutEditor.py index 0c20cef6..ad44cf1f 100644 --- a/qt_ui/windows/mission/flight/payload/QLoadoutEditor.py +++ b/qt_ui/windows/mission/flight/payload/QLoadoutEditor.py @@ -42,7 +42,9 @@ class QLoadoutEditor(QGroupBox): for i, pylon in enumerate(Pylon.iter_pylons(self.flight.unit_type)): label = QLabel(f"{pylon.number}") - 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}", } diff --git a/qt_ui/windows/mission/flight/settings/FlightPlanPropertiesGroup.py b/qt_ui/windows/mission/flight/settings/FlightPlanPropertiesGroup.py index f3595222..641dc1ed 100644 --- a/qt_ui/windows/mission/flight/settings/FlightPlanPropertiesGroup.py +++ b/qt_ui/windows/mission/flight/settings/FlightPlanPropertiesGroup.py @@ -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: diff --git a/qt_ui/windows/mission/flight/waypoints/QFlightWaypointItem.py b/qt_ui/windows/mission/flight/waypoints/QFlightWaypointItem.py index 815e6197..7040fc4d 100644 --- a/qt_ui/windows/mission/flight/waypoints/QFlightWaypointItem.py +++ b/qt_ui/windows/mission/flight/waypoints/QFlightWaypointItem.py @@ -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) diff --git a/qt_ui/windows/mission/flight/waypoints/QFlightWaypointList.py b/qt_ui/windows/mission/flight/waypoints/QFlightWaypointList.py index 167667b2..50fd6c40 100644 --- a/qt_ui/windows/mission/flight/waypoints/QFlightWaypointList.py +++ b/qt_ui/windows/mission/flight/waypoints/QFlightWaypointList.py @@ -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() diff --git a/qt_ui/windows/mission/flight/waypoints/QFlightWaypointTab.py b/qt_ui/windows/mission/flight/waypoints/QFlightWaypointTab.py index 78b76993..c6ce59e0 100644 --- a/qt_ui/windows/mission/flight/waypoints/QFlightWaypointTab.py +++ b/qt_ui/windows/mission/flight/waypoints/QFlightWaypointTab.py @@ -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.

" "Are you sure you wish to continue?", - 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: diff --git a/qt_ui/windows/mission/flight/waypoints/QPredefinedWaypointSelectionWindow.py b/qt_ui/windows/mission/flight/waypoints/QPredefinedWaypointSelectionWindow.py index fd2740ba..957c69a2 100644 --- a/qt_ui/windows/mission/flight/waypoints/QPredefinedWaypointSelectionWindow.py +++ b/qt_ui/windows/mission/flight/waypoints/QPredefinedWaypointSelectionWindow.py @@ -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") diff --git a/qt_ui/windows/newgame/QNewGameWizard.py b/qt_ui/windows/newgame/QNewGameWizard.py index 56e36418..1918ac8c 100644 --- a/qt_ui/windows/newgame/QNewGameWizard.py +++ b/qt_ui/windows/newgame/QNewGameWizard.py @@ -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"), ) diff --git a/qt_ui/windows/newgame/WizardPages/QFactionSelection.py b/qt_ui/windows/newgame/WizardPages/QFactionSelection.py index dfe61cb7..5e0b37c3 100644 --- a/qt_ui/windows/newgame/WizardPages/QFactionSelection.py +++ b/qt_ui/windows/newgame/WizardPages/QFactionSelection.py @@ -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( 'How to create your own faction' ) - docsText.setAlignment(Qt.AlignCenter) + docsText.setAlignment(Qt.AlignmentFlag.AlignCenter) docsText.setOpenExternalLinks(True) # Link form fields diff --git a/qt_ui/windows/newgame/WizardPages/QGeneratorSettings.py b/qt_ui/windows/newgame/WizardPages/QGeneratorSettings.py index e7155a8f..5ad3c804 100644 --- a/qt_ui/windows/newgame/WizardPages/QGeneratorSettings.py +++ b/qt_ui/windows/newgame/WizardPages/QGeneratorSettings.py @@ -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( "

Select the mods you have installed. If your chosen factions support them, you'll be able to use these mods in your campaign.

" ) - modHelpText.setAlignment(Qt.AlignCenter) + modHelpText.setAlignment(Qt.AlignmentFlag.AlignCenter) modLayout = QtWidgets.QGridLayout() modLayout_row = 1 diff --git a/qt_ui/windows/newgame/WizardPages/QNewGameSettings.py b/qt_ui/windows/newgame/WizardPages/QNewGameSettings.py index ed2b8ee1..edbd970f 100644 --- a/qt_ui/windows/newgame/WizardPages/QNewGameSettings.py +++ b/qt_ui/windows/newgame/WizardPages/QNewGameSettings.py @@ -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"), ) diff --git a/qt_ui/windows/newgame/WizardPages/QTheaterConfiguration.py b/qt_ui/windows/newgame/WizardPages/QTheaterConfiguration.py index b4456700..0e101c6b 100644 --- a/qt_ui/windows/newgame/WizardPages/QTheaterConfiguration.py +++ b/qt_ui/windows/newgame/WizardPages/QTheaterConfiguration.py @@ -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 create your own.' "

" ) - 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, ) diff --git a/qt_ui/windows/notes/QNotesWindow.py b/qt_ui/windows/notes/QNotesWindow.py index d8d5bb3e..7e5e0ccb 100644 --- a/qt_ui/windows/notes/QNotesWindow.py +++ b/qt_ui/windows/notes/QNotesWindow.py @@ -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) diff --git a/qt_ui/windows/preferences/QLiberationFirstStartWindow.py b/qt_ui/windows/preferences/QLiberationFirstStartWindow.py index 844531a7..319b1159 100644 --- a/qt_ui/windows/preferences/QLiberationFirstStartWindow.py +++ b/qt_ui/windows/preferences/QLiberationFirstStartWindow.py @@ -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 = """ diff --git a/qt_ui/windows/preferences/QLiberationPreferences.py b/qt_ui/windows/preferences/QLiberationPreferences.py index 2afa4a3c..13b94e6e 100644 --- a/qt_ui/windows/preferences/QLiberationPreferences.py +++ b/qt_ui/windows/preferences/QLiberationPreferences.py @@ -49,20 +49,28 @@ class QLiberationPreferences(QFrame): QLabel("DCS saved game directory:"), 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("DCS installation directory:"), 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("Theme (Requires Restart)"), 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( diff --git a/qt_ui/windows/settings/QSettingsWindow.py b/qt_ui/windows/settings/QSettingsWindow.py index 8ca5a125..99a39172 100644 --- a/qt_ui/windows/settings/QSettingsWindow.py +++ b/qt_ui/windows/settings/QSettingsWindow.py @@ -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: diff --git a/qt_ui/windows/settings/plugins.py b/qt_ui/windows/settings/plugins.py index 49868373..93cee9bd 100644 --- a/qt_ui/windows/settings/plugins.py +++ b/qt_ui/windows/settings/plugins.py @@ -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] = [] diff --git a/qt_ui/windows/stats/QAircraftChart.py b/qt_ui/windows/stats/QAircraftChart.py index 0ec67d71..5a90c3b9 100644 --- a/qt_ui/windows/stats/QAircraftChart.py +++ b/qt_ui/windows/stats/QAircraftChart.py @@ -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) diff --git a/qt_ui/windows/stats/QArmorChart.py b/qt_ui/windows/stats/QArmorChart.py index 5f8b280c..c2592fe4 100644 --- a/qt_ui/windows/stats/QArmorChart.py +++ b/qt_ui/windows/stats/QArmorChart.py @@ -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)