diff --git a/src/warchron/constants.py b/src/warchron/constants.py new file mode 100644 index 0000000..f0a759f --- /dev/null +++ b/src/warchron/constants.py @@ -0,0 +1,14 @@ +from enum import StrEnum + +from PyQt6.QtCore import Qt + +# --- Tree / Table roles --- +ROLE_TYPE = Qt.ItemDataRole.UserRole +ROLE_ID = Qt.ItemDataRole.UserRole + 1 + +# --- Domain object types --- +class ItemType(StrEnum): + PLAYER = "player" + WAR = "war" + CAMPAIGN = "campaign" + ROUND = "round" diff --git a/src/warchron/controller/controller.py b/src/warchron/controller/controller.py index 62c1397..6143a11 100644 --- a/src/warchron/controller/controller.py +++ b/src/warchron/controller/controller.py @@ -5,6 +5,7 @@ from PyQt6.QtWidgets import QMessageBox, QDialog from warchron.model.model import Model from warchron.view.view import View +from warchron.constants import ItemType from warchron.view.view import PlayerDialog, WarDialog, CampaignDialog class Controller: @@ -121,7 +122,7 @@ class Controller: def refresh_wars_view(self): wars = self.model.get_all_wars() - self.view.display_wars(wars) + self.view.display_wars_tree(wars) def refresh_views(self): current = self.view.get_current_tab() @@ -130,17 +131,42 @@ class Controller: elif current == "wars": self.refresh_wars_view() + def _fill_war_details(self, war_id: str): + war = self.model.get_war(war_id) + self.view.warName.setText(war.name) + self.view.warYear.setText(str(war.year)) + + def _fill_campaign_details(self, campaign_id: str): + camp = self.model.get_campaign(campaign_id) + self.view.show_campaign_details(name=camp.name, month=camp.month) + + def _fill_round_details(self, round_id: str): + index = self.model.get_round_index(round_id) + self.view.show_round_details(index=index) + def on_tree_selection_changed(self, selection): self.selected_war_id = None self.selected_campaign_id = None self.selected_round_id = None if selection: - if selection["type"] == "war": - self.selected_war_id = selection["id"] - elif selection["type"] == "campaign": - self.selected_campaign_id = selection["id"] - elif selection["type"] == "round": - self.selected_round_id = selection["id"] + item_type = selection["type"] + item_id = selection["id"] + if item_type == ItemType.WAR: + self.selected_war_id = item_id + self.view.show_details(ItemType.WAR) + self._fill_war_details(item_id) + elif item_type == ItemType.CAMPAIGN: + self.selected_campaign_id = item_id + self.view.show_details(ItemType.CAMPAIGN) + self._fill_campaign_details(item_id) + elif item_type == ItemType.ROUND: + self.selected_round_id = item_id + self.view.show_details(ItemType.ROUND) + self._fill_round_details(item_id) + else: + self.view.show_details(None) + self.update_actions_state() + return self.update_actions_state() def update_actions_state(self): diff --git a/src/warchron/model/campaign.py b/src/warchron/model/campaign.py index 66dd16d..c0b2810 100644 --- a/src/warchron/model/campaign.py +++ b/src/warchron/model/campaign.py @@ -59,3 +59,9 @@ class Campaign: rnd = next((r for r in self.rounds if r.id == round_id), None) if rnd: self.rounds.remove(rnd) + + def get_round_index(self, round_id: str) -> int: + for index, rnd in enumerate(self.rounds, start=1): + if rnd.id == round_id: + return index + raise KeyError("Round not found in campaign") diff --git a/src/warchron/model/model.py b/src/warchron/model/model.py index f488eed..6f70d2d 100644 --- a/src/warchron/model/model.py +++ b/src/warchron/model/model.py @@ -136,7 +136,11 @@ class Model: if rnd.id == round_id: return rnd raise KeyError("Round not found") - + + def get_round_index(self, round_id: str) -> int: + camp = self.get_campaign_by_round(round_id) + return camp.get_round_index(round_id) + def remove_player(self, player_id: str): del self.players[player_id] diff --git a/src/warchron/view/ui/ui_main_window.py b/src/warchron/view/ui/ui_main_window.py index f9839e1..7e4829e 100644 --- a/src/warchron/view/ui/ui_main_window.py +++ b/src/warchron/view/ui/ui_main_window.py @@ -26,7 +26,7 @@ class Ui_MainWindow(object): self.playersTable = QtWidgets.QTableWidget(parent=self.playersTab) self.playersTable.setGeometry(QtCore.QRect(10, 60, 741, 431)) self.playersTable.setObjectName("playersTable") - self.playersTable.setColumnCount(3) + self.playersTable.setColumnCount(4) self.playersTable.setRowCount(0) item = QtWidgets.QTableWidgetItem() self.playersTable.setHorizontalHeaderItem(0, item) @@ -34,6 +34,8 @@ class Ui_MainWindow(object): self.playersTable.setHorizontalHeaderItem(1, item) item = QtWidgets.QTableWidgetItem() self.playersTable.setHorizontalHeaderItem(2, item) + item = QtWidgets.QTableWidgetItem() + self.playersTable.setHorizontalHeaderItem(3, item) self.addPlayerBtn = QtWidgets.QPushButton(parent=self.playersTab) self.addPlayerBtn.setGeometry(QtCore.QRect(20, 20, 75, 23)) self.addPlayerBtn.setObjectName("addPlayerBtn") @@ -45,9 +47,6 @@ class Ui_MainWindow(object): self.warsTree = QtWidgets.QTreeWidget(parent=self.warsTab) self.warsTree.setGeometry(QtCore.QRect(10, 60, 211, 431)) self.warsTree.setObjectName("warsTree") - item_0 = QtWidgets.QTreeWidgetItem(self.warsTree) - item_1 = QtWidgets.QTreeWidgetItem(item_0) - item_2 = QtWidgets.QTreeWidgetItem(item_1) self.addWarBtn = QtWidgets.QPushButton(parent=self.warsTab) self.addWarBtn.setGeometry(QtCore.QRect(20, 20, 75, 23)) self.addWarBtn.setObjectName("addWarBtn") @@ -83,28 +82,16 @@ class Ui_MainWindow(object): self.warYear.setFont(font) self.warYear.setObjectName("warYear") self.labelEntrants = QtWidgets.QLabel(parent=self.pageWar) - self.labelEntrants.setGeometry(QtCore.QRect(10, 200, 47, 13)) + self.labelEntrants.setGeometry(QtCore.QRect(10, 150, 111, 16)) self.labelEntrants.setObjectName("labelEntrants") self.addEntrantBtn = QtWidgets.QPushButton(parent=self.pageWar) - self.addEntrantBtn.setGeometry(QtCore.QRect(430, 310, 75, 23)) + self.addEntrantBtn.setGeometry(QtCore.QRect(420, 270, 81, 23)) self.addEntrantBtn.setObjectName("addEntrantBtn") self.playersTable_2 = QtWidgets.QTableWidget(parent=self.pageWar) - self.playersTable_2.setGeometry(QtCore.QRect(10, 220, 401, 201)) + self.playersTable_2.setGeometry(QtCore.QRect(10, 170, 401, 211)) self.playersTable_2.setObjectName("playersTable_2") - self.playersTable_2.setColumnCount(4) - self.playersTable_2.setRowCount(6) - item = QtWidgets.QTableWidgetItem() - self.playersTable_2.setVerticalHeaderItem(0, item) - item = QtWidgets.QTableWidgetItem() - self.playersTable_2.setVerticalHeaderItem(1, item) - item = QtWidgets.QTableWidgetItem() - self.playersTable_2.setVerticalHeaderItem(2, item) - item = QtWidgets.QTableWidgetItem() - self.playersTable_2.setVerticalHeaderItem(3, item) - item = QtWidgets.QTableWidgetItem() - self.playersTable_2.setVerticalHeaderItem(4, item) - item = QtWidgets.QTableWidgetItem() - self.playersTable_2.setVerticalHeaderItem(5, item) + self.playersTable_2.setColumnCount(5) + self.playersTable_2.setRowCount(0) item = QtWidgets.QTableWidgetItem() self.playersTable_2.setHorizontalHeaderItem(0, item) item = QtWidgets.QTableWidgetItem() @@ -114,72 +101,24 @@ class Ui_MainWindow(object): item = QtWidgets.QTableWidgetItem() self.playersTable_2.setHorizontalHeaderItem(3, item) item = QtWidgets.QTableWidgetItem() - self.playersTable_2.setItem(0, 0, item) - item = QtWidgets.QTableWidgetItem() - self.playersTable_2.setItem(0, 1, item) - item = QtWidgets.QTableWidgetItem() - self.playersTable_2.setItem(0, 2, item) - item = QtWidgets.QTableWidgetItem() - self.playersTable_2.setItem(0, 3, item) - item = QtWidgets.QTableWidgetItem() - self.playersTable_2.setItem(1, 0, item) - item = QtWidgets.QTableWidgetItem() - self.playersTable_2.setItem(1, 1, item) - item = QtWidgets.QTableWidgetItem() - self.playersTable_2.setItem(1, 2, item) - item = QtWidgets.QTableWidgetItem() - self.playersTable_2.setItem(1, 3, item) - item = QtWidgets.QTableWidgetItem() - self.playersTable_2.setItem(2, 0, item) - item = QtWidgets.QTableWidgetItem() - self.playersTable_2.setItem(2, 1, item) - item = QtWidgets.QTableWidgetItem() - self.playersTable_2.setItem(2, 2, item) - item = QtWidgets.QTableWidgetItem() - self.playersTable_2.setItem(2, 3, item) - item = QtWidgets.QTableWidgetItem() - self.playersTable_2.setItem(3, 0, item) - item = QtWidgets.QTableWidgetItem() - self.playersTable_2.setItem(3, 1, item) - item = QtWidgets.QTableWidgetItem() - self.playersTable_2.setItem(3, 2, item) - item = QtWidgets.QTableWidgetItem() - self.playersTable_2.setItem(3, 3, item) - item = QtWidgets.QTableWidgetItem() - self.playersTable_2.setItem(4, 0, item) - item = QtWidgets.QTableWidgetItem() - self.playersTable_2.setItem(4, 1, item) - item = QtWidgets.QTableWidgetItem() - self.playersTable_2.setItem(4, 2, item) - item = QtWidgets.QTableWidgetItem() - self.playersTable_2.setItem(4, 3, item) - item = QtWidgets.QTableWidgetItem() - self.playersTable_2.setItem(5, 0, item) - item = QtWidgets.QTableWidgetItem() - self.playersTable_2.setItem(5, 1, item) - item = QtWidgets.QTableWidgetItem() - self.playersTable_2.setItem(5, 2, item) - item = QtWidgets.QTableWidgetItem() - self.playersTable_2.setItem(5, 3, item) - self.addCampaignBtn_2 = QtWidgets.QPushButton(parent=self.pageWar) - self.addCampaignBtn_2.setEnabled(True) - self.addCampaignBtn_2.setGeometry(QtCore.QRect(230, 120, 91, 23)) - font = QtGui.QFont() - font.setPointSize(10) - self.addCampaignBtn_2.setFont(font) - self.addCampaignBtn_2.setObjectName("addCampaignBtn_2") - self.listWidget = QtWidgets.QListWidget(parent=self.pageWar) - self.listWidget.setGeometry(QtCore.QRect(10, 80, 211, 91)) - self.listWidget.setObjectName("listWidget") - item = QtWidgets.QListWidgetItem() - self.listWidget.addItem(item) - self.labelCampaigns = QtWidgets.QLabel(parent=self.pageWar) - self.labelCampaigns.setGeometry(QtCore.QRect(10, 60, 61, 16)) - self.labelCampaigns.setObjectName("labelCampaigns") + self.playersTable_2.setHorizontalHeaderItem(4, item) self.addRoundBtn_8 = QtWidgets.QPushButton(parent=self.pageWar) self.addRoundBtn_8.setEnabled(True) - self.addRoundBtn_8.setGeometry(QtCore.QRect(410, 400, 91, 23)) + self.addRoundBtn_8.setGeometry(QtCore.QRect(230, 400, 61, 23)) self.addRoundBtn_8.setObjectName("addRoundBtn_8") + self.listObjectives = QtWidgets.QListWidget(parent=self.pageWar) + self.listObjectives.setGeometry(QtCore.QRect(10, 60, 161, 71)) + self.listObjectives.setObjectName("listObjectives") + self.labelObjectives = QtWidgets.QLabel(parent=self.pageWar) + self.labelObjectives.setGeometry(QtCore.QRect(10, 40, 111, 20)) + self.labelObjectives.setObjectName("labelObjectives") + self.addCampaignBtn_3 = QtWidgets.QPushButton(parent=self.pageWar) + self.addCampaignBtn_3.setEnabled(True) + self.addCampaignBtn_3.setGeometry(QtCore.QRect(180, 80, 91, 23)) + font = QtGui.QFont() + font.setPointSize(10) + self.addCampaignBtn_3.setFont(font) + self.addCampaignBtn_3.setObjectName("addCampaignBtn_3") self.selectedDetailsStack.addWidget(self.pageWar) self.pageCampaign = QtWidgets.QWidget() self.pageCampaign.setObjectName("pageCampaign") @@ -190,10 +129,10 @@ class Ui_MainWindow(object): self.campaignName.setFont(font) self.campaignName.setObjectName("campaignName") self.labelRound = QtWidgets.QLabel(parent=self.pageCampaign) - self.labelRound.setGeometry(QtCore.QRect(10, 50, 91, 16)) + self.labelRound.setGeometry(QtCore.QRect(10, 40, 91, 16)) self.labelRound.setObjectName("labelRound") self.addEntrantBtn_2 = QtWidgets.QPushButton(parent=self.pageCampaign) - self.addEntrantBtn_2.setGeometry(QtCore.QRect(420, 310, 75, 23)) + self.addEntrantBtn_2.setGeometry(QtCore.QRect(420, 270, 75, 23)) self.addEntrantBtn_2.setObjectName("addEntrantBtn_2") self.campaignMonth = QtWidgets.QLabel(parent=self.pageCampaign) self.campaignMonth.setGeometry(QtCore.QRect(280, 10, 121, 16)) @@ -202,25 +141,13 @@ class Ui_MainWindow(object): self.campaignMonth.setFont(font) self.campaignMonth.setObjectName("campaignMonth") self.labelEntrants_2 = QtWidgets.QLabel(parent=self.pageCampaign) - self.labelEntrants_2.setGeometry(QtCore.QRect(10, 200, 47, 13)) + self.labelEntrants_2.setGeometry(QtCore.QRect(10, 180, 47, 13)) self.labelEntrants_2.setObjectName("labelEntrants_2") self.playersTable_3 = QtWidgets.QTableWidget(parent=self.pageCampaign) - self.playersTable_3.setGeometry(QtCore.QRect(10, 220, 401, 201)) + self.playersTable_3.setGeometry(QtCore.QRect(10, 200, 401, 181)) self.playersTable_3.setObjectName("playersTable_3") self.playersTable_3.setColumnCount(4) - self.playersTable_3.setRowCount(6) - item = QtWidgets.QTableWidgetItem() - self.playersTable_3.setVerticalHeaderItem(0, item) - item = QtWidgets.QTableWidgetItem() - self.playersTable_3.setVerticalHeaderItem(1, item) - item = QtWidgets.QTableWidgetItem() - self.playersTable_3.setVerticalHeaderItem(2, item) - item = QtWidgets.QTableWidgetItem() - self.playersTable_3.setVerticalHeaderItem(3, item) - item = QtWidgets.QTableWidgetItem() - self.playersTable_3.setVerticalHeaderItem(4, item) - item = QtWidgets.QTableWidgetItem() - self.playersTable_3.setVerticalHeaderItem(5, item) + self.playersTable_3.setRowCount(0) item = QtWidgets.QTableWidgetItem() self.playersTable_3.setHorizontalHeaderItem(0, item) item = QtWidgets.QTableWidgetItem() @@ -229,69 +156,11 @@ class Ui_MainWindow(object): self.playersTable_3.setHorizontalHeaderItem(2, item) item = QtWidgets.QTableWidgetItem() self.playersTable_3.setHorizontalHeaderItem(3, item) - item = QtWidgets.QTableWidgetItem() - self.playersTable_3.setItem(0, 0, item) - item = QtWidgets.QTableWidgetItem() - self.playersTable_3.setItem(0, 1, item) - item = QtWidgets.QTableWidgetItem() - self.playersTable_3.setItem(0, 2, item) - item = QtWidgets.QTableWidgetItem() - self.playersTable_3.setItem(0, 3, item) - item = QtWidgets.QTableWidgetItem() - self.playersTable_3.setItem(1, 0, item) - item = QtWidgets.QTableWidgetItem() - self.playersTable_3.setItem(1, 1, item) - item = QtWidgets.QTableWidgetItem() - self.playersTable_3.setItem(1, 2, item) - item = QtWidgets.QTableWidgetItem() - self.playersTable_3.setItem(1, 3, item) - item = QtWidgets.QTableWidgetItem() - self.playersTable_3.setItem(2, 0, item) - item = QtWidgets.QTableWidgetItem() - self.playersTable_3.setItem(2, 1, item) - item = QtWidgets.QTableWidgetItem() - self.playersTable_3.setItem(2, 2, item) - item = QtWidgets.QTableWidgetItem() - self.playersTable_3.setItem(2, 3, item) - item = QtWidgets.QTableWidgetItem() - self.playersTable_3.setItem(3, 0, item) - item = QtWidgets.QTableWidgetItem() - self.playersTable_3.setItem(3, 1, item) - item = QtWidgets.QTableWidgetItem() - self.playersTable_3.setItem(3, 2, item) - item = QtWidgets.QTableWidgetItem() - self.playersTable_3.setItem(3, 3, item) - item = QtWidgets.QTableWidgetItem() - self.playersTable_3.setItem(4, 0, item) - item = QtWidgets.QTableWidgetItem() - self.playersTable_3.setItem(4, 1, item) - item = QtWidgets.QTableWidgetItem() - self.playersTable_3.setItem(4, 2, item) - item = QtWidgets.QTableWidgetItem() - self.playersTable_3.setItem(4, 3, item) - item = QtWidgets.QTableWidgetItem() - self.playersTable_3.setItem(5, 0, item) - item = QtWidgets.QTableWidgetItem() - self.playersTable_3.setItem(5, 1, item) - item = QtWidgets.QTableWidgetItem() - self.playersTable_3.setItem(5, 2, item) - item = QtWidgets.QTableWidgetItem() - self.playersTable_3.setItem(5, 3, item) - self.addRoundBtn_2 = QtWidgets.QPushButton(parent=self.pageCampaign) - self.addRoundBtn_2.setEnabled(True) - self.addRoundBtn_2.setGeometry(QtCore.QRect(360, 90, 91, 23)) - self.addRoundBtn_2.setObjectName("addRoundBtn_2") self.playersTable_4 = QtWidgets.QTableWidget(parent=self.pageCampaign) - self.playersTable_4.setGeometry(QtCore.QRect(10, 80, 331, 91)) + self.playersTable_4.setGeometry(QtCore.QRect(10, 60, 401, 101)) self.playersTable_4.setObjectName("playersTable_4") - self.playersTable_4.setColumnCount(3) - self.playersTable_4.setRowCount(3) - item = QtWidgets.QTableWidgetItem() - self.playersTable_4.setVerticalHeaderItem(0, item) - item = QtWidgets.QTableWidgetItem() - self.playersTable_4.setVerticalHeaderItem(1, item) - item = QtWidgets.QTableWidgetItem() - self.playersTable_4.setVerticalHeaderItem(2, item) + self.playersTable_4.setColumnCount(5) + self.playersTable_4.setRowCount(0) item = QtWidgets.QTableWidgetItem() self.playersTable_4.setHorizontalHeaderItem(0, item) item = QtWidgets.QTableWidgetItem() @@ -299,82 +168,34 @@ class Ui_MainWindow(object): item = QtWidgets.QTableWidgetItem() self.playersTable_4.setHorizontalHeaderItem(2, item) item = QtWidgets.QTableWidgetItem() - self.playersTable_4.setItem(0, 0, item) + self.playersTable_4.setHorizontalHeaderItem(3, item) item = QtWidgets.QTableWidgetItem() - self.playersTable_4.setItem(0, 1, item) - item = QtWidgets.QTableWidgetItem() - self.playersTable_4.setItem(0, 2, item) - item = QtWidgets.QTableWidgetItem() - self.playersTable_4.setItem(1, 0, item) - item = QtWidgets.QTableWidgetItem() - self.playersTable_4.setItem(1, 1, item) - item = QtWidgets.QTableWidgetItem() - self.playersTable_4.setItem(1, 2, item) - item = QtWidgets.QTableWidgetItem() - self.playersTable_4.setItem(2, 0, item) - item = QtWidgets.QTableWidgetItem() - self.playersTable_4.setItem(2, 1, item) - item = QtWidgets.QTableWidgetItem() - self.playersTable_4.setItem(2, 2, item) + self.playersTable_4.setHorizontalHeaderItem(4, item) self.addSectorBtn = QtWidgets.QPushButton(parent=self.pageCampaign) - self.addSectorBtn.setEnabled(False) - self.addSectorBtn.setGeometry(QtCore.QRect(360, 130, 91, 23)) + self.addSectorBtn.setEnabled(True) + self.addSectorBtn.setGeometry(QtCore.QRect(420, 110, 71, 23)) self.addSectorBtn.setObjectName("addSectorBtn") self.endCampaignBtn = QtWidgets.QPushButton(parent=self.pageCampaign) self.endCampaignBtn.setEnabled(True) - self.endCampaignBtn.setGeometry(QtCore.QRect(410, 400, 91, 23)) + self.endCampaignBtn.setGeometry(QtCore.QRect(210, 400, 91, 23)) self.endCampaignBtn.setObjectName("endCampaignBtn") self.selectedDetailsStack.addWidget(self.pageCampaign) self.pageRound = QtWidgets.QWidget() self.pageRound.setObjectName("pageRound") self.labelChoices = QtWidgets.QLabel(parent=self.pageRound) - self.labelChoices.setGeometry(QtCore.QRect(10, 170, 91, 16)) + self.labelChoices.setGeometry(QtCore.QRect(10, 40, 91, 16)) self.labelChoices.setObjectName("labelChoices") self.choicesTable = QtWidgets.QTableWidget(parent=self.pageRound) - self.choicesTable.setGeometry(QtCore.QRect(10, 190, 271, 91)) + self.choicesTable.setGeometry(QtCore.QRect(10, 60, 301, 141)) self.choicesTable.setObjectName("choicesTable") - self.choicesTable.setColumnCount(2) - self.choicesTable.setRowCount(6) - item = QtWidgets.QTableWidgetItem() - self.choicesTable.setVerticalHeaderItem(0, item) - item = QtWidgets.QTableWidgetItem() - self.choicesTable.setVerticalHeaderItem(1, item) - item = QtWidgets.QTableWidgetItem() - self.choicesTable.setVerticalHeaderItem(2, item) - item = QtWidgets.QTableWidgetItem() - self.choicesTable.setVerticalHeaderItem(3, item) - item = QtWidgets.QTableWidgetItem() - self.choicesTable.setVerticalHeaderItem(4, item) - item = QtWidgets.QTableWidgetItem() - self.choicesTable.setVerticalHeaderItem(5, item) + self.choicesTable.setColumnCount(3) + self.choicesTable.setRowCount(0) item = QtWidgets.QTableWidgetItem() self.choicesTable.setHorizontalHeaderItem(0, item) item = QtWidgets.QTableWidgetItem() self.choicesTable.setHorizontalHeaderItem(1, item) item = QtWidgets.QTableWidgetItem() - self.choicesTable.setItem(0, 0, item) - item = QtWidgets.QTableWidgetItem() - self.choicesTable.setItem(0, 1, item) - item = QtWidgets.QTableWidgetItem() - self.choicesTable.setItem(1, 0, item) - item = QtWidgets.QTableWidgetItem() - self.choicesTable.setItem(1, 1, item) - item = QtWidgets.QTableWidgetItem() - self.choicesTable.setItem(2, 0, item) - item = QtWidgets.QTableWidgetItem() - self.choicesTable.setItem(2, 1, item) - item = QtWidgets.QTableWidgetItem() - self.choicesTable.setItem(3, 0, item) - item = QtWidgets.QTableWidgetItem() - self.choicesTable.setItem(3, 1, item) - item = QtWidgets.QTableWidgetItem() - self.choicesTable.setItem(4, 0, item) - item = QtWidgets.QTableWidgetItem() - self.choicesTable.setItem(4, 1, item) - item = QtWidgets.QTableWidgetItem() - self.choicesTable.setItem(5, 0, item) - item = QtWidgets.QTableWidgetItem() - self.choicesTable.setItem(5, 1, item) + self.choicesTable.setHorizontalHeaderItem(2, item) self.roundNb = QtWidgets.QLabel(parent=self.pageRound) self.roundNb.setGeometry(QtCore.QRect(10, 10, 241, 16)) font = QtGui.QFont() @@ -383,156 +204,30 @@ class Ui_MainWindow(object): self.roundNb.setObjectName("roundNb") self.resolveBtn = QtWidgets.QPushButton(parent=self.pageRound) self.resolveBtn.setEnabled(True) - self.resolveBtn.setGeometry(QtCore.QRect(290, 220, 91, 23)) + self.resolveBtn.setGeometry(QtCore.QRect(320, 110, 91, 23)) self.resolveBtn.setObjectName("resolveBtn") self.playersTable_6 = QtWidgets.QTableWidget(parent=self.pageRound) - self.playersTable_6.setGeometry(QtCore.QRect(10, 320, 271, 91)) + self.playersTable_6.setGeometry(QtCore.QRect(10, 240, 301, 111)) self.playersTable_6.setObjectName("playersTable_6") - self.playersTable_6.setColumnCount(2) - self.playersTable_6.setRowCount(3) - item = QtWidgets.QTableWidgetItem() - self.playersTable_6.setVerticalHeaderItem(0, item) - item = QtWidgets.QTableWidgetItem() - self.playersTable_6.setVerticalHeaderItem(1, item) - item = QtWidgets.QTableWidgetItem() - self.playersTable_6.setVerticalHeaderItem(2, item) + self.playersTable_6.setColumnCount(3) + self.playersTable_6.setRowCount(0) item = QtWidgets.QTableWidgetItem() self.playersTable_6.setHorizontalHeaderItem(0, item) item = QtWidgets.QTableWidgetItem() self.playersTable_6.setHorizontalHeaderItem(1, item) item = QtWidgets.QTableWidgetItem() - self.playersTable_6.setItem(0, 0, item) - item = QtWidgets.QTableWidgetItem() - self.playersTable_6.setItem(0, 1, item) - item = QtWidgets.QTableWidgetItem() - self.playersTable_6.setItem(1, 0, item) - item = QtWidgets.QTableWidgetItem() - self.playersTable_6.setItem(1, 1, item) - item = QtWidgets.QTableWidgetItem() - self.playersTable_6.setItem(2, 0, item) - item = QtWidgets.QTableWidgetItem() - self.playersTable_6.setItem(2, 1, item) + self.playersTable_6.setHorizontalHeaderItem(2, item) self.resultBtn = QtWidgets.QPushButton(parent=self.pageRound) self.resultBtn.setEnabled(True) - self.resultBtn.setGeometry(QtCore.QRect(290, 360, 91, 23)) + self.resultBtn.setGeometry(QtCore.QRect(320, 290, 91, 23)) self.resultBtn.setObjectName("resultBtn") self.endRoundBtn = QtWidgets.QPushButton(parent=self.pageRound) self.endRoundBtn.setEnabled(True) - self.endRoundBtn.setGeometry(QtCore.QRect(410, 400, 91, 23)) + self.endRoundBtn.setGeometry(QtCore.QRect(220, 400, 71, 23)) self.endRoundBtn.setObjectName("endRoundBtn") self.labelChoices_2 = QtWidgets.QLabel(parent=self.pageRound) - self.labelChoices_2.setGeometry(QtCore.QRect(10, 300, 91, 16)) + self.labelChoices_2.setGeometry(QtCore.QRect(10, 220, 91, 16)) self.labelChoices_2.setObjectName("labelChoices_2") - self.choicesTable_2 = QtWidgets.QTableWidget(parent=self.pageRound) - self.choicesTable_2.setGeometry(QtCore.QRect(10, 70, 421, 91)) - self.choicesTable_2.setObjectName("choicesTable_2") - self.choicesTable_2.setColumnCount(4) - self.choicesTable_2.setRowCount(9) - item = QtWidgets.QTableWidgetItem() - self.choicesTable_2.setVerticalHeaderItem(0, item) - item = QtWidgets.QTableWidgetItem() - self.choicesTable_2.setVerticalHeaderItem(1, item) - item = QtWidgets.QTableWidgetItem() - self.choicesTable_2.setVerticalHeaderItem(2, item) - item = QtWidgets.QTableWidgetItem() - self.choicesTable_2.setVerticalHeaderItem(3, item) - item = QtWidgets.QTableWidgetItem() - self.choicesTable_2.setVerticalHeaderItem(4, item) - item = QtWidgets.QTableWidgetItem() - self.choicesTable_2.setVerticalHeaderItem(5, item) - item = QtWidgets.QTableWidgetItem() - self.choicesTable_2.setVerticalHeaderItem(6, item) - item = QtWidgets.QTableWidgetItem() - self.choicesTable_2.setVerticalHeaderItem(7, item) - item = QtWidgets.QTableWidgetItem() - self.choicesTable_2.setVerticalHeaderItem(8, item) - item = QtWidgets.QTableWidgetItem() - self.choicesTable_2.setHorizontalHeaderItem(0, item) - item = QtWidgets.QTableWidgetItem() - self.choicesTable_2.setHorizontalHeaderItem(1, item) - item = QtWidgets.QTableWidgetItem() - self.choicesTable_2.setHorizontalHeaderItem(2, item) - item = QtWidgets.QTableWidgetItem() - self.choicesTable_2.setHorizontalHeaderItem(3, item) - item = QtWidgets.QTableWidgetItem() - self.choicesTable_2.setItem(0, 0, item) - item = QtWidgets.QTableWidgetItem() - self.choicesTable_2.setItem(0, 1, item) - item = QtWidgets.QTableWidgetItem() - self.choicesTable_2.setItem(0, 2, item) - item = QtWidgets.QTableWidgetItem() - self.choicesTable_2.setItem(0, 3, item) - item = QtWidgets.QTableWidgetItem() - self.choicesTable_2.setItem(1, 0, item) - item = QtWidgets.QTableWidgetItem() - self.choicesTable_2.setItem(1, 1, item) - item = QtWidgets.QTableWidgetItem() - self.choicesTable_2.setItem(1, 2, item) - item = QtWidgets.QTableWidgetItem() - self.choicesTable_2.setItem(1, 3, item) - item = QtWidgets.QTableWidgetItem() - self.choicesTable_2.setItem(2, 0, item) - item = QtWidgets.QTableWidgetItem() - self.choicesTable_2.setItem(2, 1, item) - item = QtWidgets.QTableWidgetItem() - self.choicesTable_2.setItem(2, 2, item) - item = QtWidgets.QTableWidgetItem() - self.choicesTable_2.setItem(2, 3, item) - item = QtWidgets.QTableWidgetItem() - self.choicesTable_2.setItem(3, 0, item) - item = QtWidgets.QTableWidgetItem() - self.choicesTable_2.setItem(3, 1, item) - item = QtWidgets.QTableWidgetItem() - self.choicesTable_2.setItem(3, 2, item) - item = QtWidgets.QTableWidgetItem() - self.choicesTable_2.setItem(3, 3, item) - item = QtWidgets.QTableWidgetItem() - self.choicesTable_2.setItem(4, 0, item) - item = QtWidgets.QTableWidgetItem() - self.choicesTable_2.setItem(4, 1, item) - item = QtWidgets.QTableWidgetItem() - self.choicesTable_2.setItem(4, 2, item) - item = QtWidgets.QTableWidgetItem() - self.choicesTable_2.setItem(4, 3, item) - item = QtWidgets.QTableWidgetItem() - self.choicesTable_2.setItem(5, 0, item) - item = QtWidgets.QTableWidgetItem() - self.choicesTable_2.setItem(5, 1, item) - item = QtWidgets.QTableWidgetItem() - self.choicesTable_2.setItem(5, 2, item) - item = QtWidgets.QTableWidgetItem() - self.choicesTable_2.setItem(5, 3, item) - item = QtWidgets.QTableWidgetItem() - self.choicesTable_2.setItem(6, 0, item) - item = QtWidgets.QTableWidgetItem() - self.choicesTable_2.setItem(6, 1, item) - item = QtWidgets.QTableWidgetItem() - self.choicesTable_2.setItem(6, 2, item) - item = QtWidgets.QTableWidgetItem() - self.choicesTable_2.setItem(6, 3, item) - item = QtWidgets.QTableWidgetItem() - self.choicesTable_2.setItem(7, 0, item) - item = QtWidgets.QTableWidgetItem() - self.choicesTable_2.setItem(7, 1, item) - item = QtWidgets.QTableWidgetItem() - self.choicesTable_2.setItem(7, 2, item) - item = QtWidgets.QTableWidgetItem() - self.choicesTable_2.setItem(7, 3, item) - item = QtWidgets.QTableWidgetItem() - self.choicesTable_2.setItem(8, 0, item) - item = QtWidgets.QTableWidgetItem() - self.choicesTable_2.setItem(8, 1, item) - item = QtWidgets.QTableWidgetItem() - self.choicesTable_2.setItem(8, 2, item) - item = QtWidgets.QTableWidgetItem() - self.choicesTable_2.setItem(8, 3, item) - self.labelChoices_3 = QtWidgets.QLabel(parent=self.pageRound) - self.labelChoices_3.setGeometry(QtCore.QRect(10, 40, 91, 16)) - self.labelChoices_3.setObjectName("labelChoices_3") - self.addSectorBtn_2 = QtWidgets.QPushButton(parent=self.pageRound) - self.addSectorBtn_2.setEnabled(True) - self.addSectorBtn_2.setGeometry(QtCore.QRect(430, 100, 91, 23)) - self.addSectorBtn_2.setObjectName("addSectorBtn_2") self.selectedDetailsStack.addWidget(self.pageRound) icon2 = QtGui.QIcon() icon2.addPixmap(QtGui.QPixmap(".\\src\\warchron\\view\\ui\\../resources/swords-small.png"), QtGui.QIcon.Mode.Normal, QtGui.QIcon.State.Off) @@ -626,14 +321,10 @@ class Ui_MainWindow(object): item.setText(_translate("MainWindow", "Wars")) item = self.playersTable.horizontalHeaderItem(2) item.setText(_translate("MainWindow", "Wins")) + item = self.playersTable.horizontalHeaderItem(3) + item.setText(_translate("MainWindow", "Rewards")) self.addPlayerBtn.setText(_translate("MainWindow", "Add player")) self.tabWidget.setTabText(self.tabWidget.indexOf(self.playersTab), _translate("MainWindow", "Players")) - __sortingEnabled = self.warsTree.isSortingEnabled() - self.warsTree.setSortingEnabled(False) - self.warsTree.topLevelItem(0).setText(0, _translate("MainWindow", "warItem")) - self.warsTree.topLevelItem(0).child(0).setText(0, _translate("MainWindow", "campaignItem")) - self.warsTree.topLevelItem(0).child(0).child(0).setText(0, _translate("MainWindow", "roundItem")) - self.warsTree.setSortingEnabled(__sortingEnabled) self.addWarBtn.setText(_translate("MainWindow", "Add war")) self.addCampaignBtn.setText(_translate("MainWindow", "Add Campaign")) self.addRoundBtn.setText(_translate("MainWindow", "Add Round")) @@ -649,68 +340,14 @@ class Ui_MainWindow(object): item = self.playersTable_2.horizontalHeaderItem(2) item.setText(_translate("MainWindow", "Campaigns")) item = self.playersTable_2.horizontalHeaderItem(3) - item.setText(_translate("MainWindow", "Wins")) - __sortingEnabled = self.playersTable_2.isSortingEnabled() - self.playersTable_2.setSortingEnabled(False) - item = self.playersTable_2.item(0, 0) - item.setText(_translate("MainWindow", "Alice")) - item = self.playersTable_2.item(0, 1) - item.setText(_translate("MainWindow", "army A")) - item = self.playersTable_2.item(0, 2) - item.setText(_translate("MainWindow", "2")) - item = self.playersTable_2.item(0, 3) - item.setText(_translate("MainWindow", "1")) - item = self.playersTable_2.item(1, 0) - item.setText(_translate("MainWindow", "Bob")) - item = self.playersTable_2.item(1, 1) - item.setText(_translate("MainWindow", "army B")) - item = self.playersTable_2.item(1, 2) - item.setText(_translate("MainWindow", "2")) - item = self.playersTable_2.item(1, 3) - item.setText(_translate("MainWindow", "1")) - item = self.playersTable_2.item(2, 0) - item.setText(_translate("MainWindow", "Charlie")) - item = self.playersTable_2.item(2, 1) - item.setText(_translate("MainWindow", "army C")) - item = self.playersTable_2.item(2, 2) - item.setText(_translate("MainWindow", "2")) - item = self.playersTable_2.item(2, 3) - item.setText(_translate("MainWindow", "0")) - item = self.playersTable_2.item(3, 0) - item.setText(_translate("MainWindow", "Dave")) - item = self.playersTable_2.item(3, 1) - item.setText(_translate("MainWindow", "army D")) - item = self.playersTable_2.item(3, 2) - item.setText(_translate("MainWindow", "1")) - item = self.playersTable_2.item(3, 3) - item.setText(_translate("MainWindow", "0")) - item = self.playersTable_2.item(4, 0) - item.setText(_translate("MainWindow", "Eve")) - item = self.playersTable_2.item(4, 1) - item.setText(_translate("MainWindow", "army E")) - item = self.playersTable_2.item(4, 2) - item.setText(_translate("MainWindow", "1")) - item = self.playersTable_2.item(4, 3) - item.setText(_translate("MainWindow", "0")) - item = self.playersTable_2.item(5, 0) - item.setText(_translate("MainWindow", "Fred")) - item = self.playersTable_2.item(5, 1) - item.setText(_translate("MainWindow", "army F")) - item = self.playersTable_2.item(5, 2) - item.setText(_translate("MainWindow", "2")) - item = self.playersTable_2.item(5, 3) - item.setText(_translate("MainWindow", "0")) - self.playersTable_2.setSortingEnabled(__sortingEnabled) - self.addCampaignBtn_2.setText(_translate("MainWindow", "Add Campaign")) - __sortingEnabled = self.listWidget.isSortingEnabled() - self.listWidget.setSortingEnabled(False) - item = self.listWidget.item(0) - item.setText(_translate("MainWindow", "campaignName")) - self.listWidget.setSortingEnabled(__sortingEnabled) - self.labelCampaigns.setText(_translate("MainWindow", "Campaigns")) + item.setText(_translate("MainWindow", "Victory pts.")) + item = self.playersTable_2.horizontalHeaderItem(4) + item.setText(_translate("MainWindow", "Theme pts")) self.addRoundBtn_8.setText(_translate("MainWindow", "End war")) + self.labelObjectives.setText(_translate("MainWindow", "Objectives")) + self.addCampaignBtn_3.setText(_translate("MainWindow", "Add objective")) self.campaignName.setText(_translate("MainWindow", "campaignName")) - self.labelRound.setText(_translate("MainWindow", "Sectors by round")) + self.labelRound.setText(_translate("MainWindow", "Sectors")) self.addEntrantBtn_2.setText(_translate("MainWindow", "Add entrant")) self.campaignMonth.setText(_translate("MainWindow", "campaignMonth")) self.labelEntrants_2.setText(_translate("MainWindow", "Entrants")) @@ -719,249 +356,39 @@ class Ui_MainWindow(object): item = self.playersTable_3.horizontalHeaderItem(1) item.setText(_translate("MainWindow", "Leader")) item = self.playersTable_3.horizontalHeaderItem(2) - item.setText(_translate("MainWindow", "Battles")) + item.setText(_translate("MainWindow", "Victory pts.")) item = self.playersTable_3.horizontalHeaderItem(3) - item.setText(_translate("MainWindow", "Wins")) - __sortingEnabled = self.playersTable_3.isSortingEnabled() - self.playersTable_3.setSortingEnabled(False) - item = self.playersTable_3.item(0, 0) - item.setText(_translate("MainWindow", "Alice")) - item = self.playersTable_3.item(0, 1) - item.setText(_translate("MainWindow", "boss A")) - item = self.playersTable_3.item(0, 2) - item.setText(_translate("MainWindow", "6")) - item = self.playersTable_3.item(0, 3) - item.setText(_translate("MainWindow", "5")) - item = self.playersTable_3.item(1, 0) - item.setText(_translate("MainWindow", "Bob")) - item = self.playersTable_3.item(1, 1) - item.setText(_translate("MainWindow", "boss B")) - item = self.playersTable_3.item(1, 2) - item.setText(_translate("MainWindow", "6")) - item = self.playersTable_3.item(1, 3) - item.setText(_translate("MainWindow", "5")) - item = self.playersTable_3.item(2, 0) - item.setText(_translate("MainWindow", "Charlie")) - item = self.playersTable_3.item(2, 1) - item.setText(_translate("MainWindow", "boss C")) - item = self.playersTable_3.item(2, 2) - item.setText(_translate("MainWindow", "6")) - item = self.playersTable_3.item(2, 3) - item.setText(_translate("MainWindow", "3")) - item = self.playersTable_3.item(3, 0) - item.setText(_translate("MainWindow", "Dave")) - item = self.playersTable_3.item(3, 1) - item.setText(_translate("MainWindow", "boss D")) - item = self.playersTable_3.item(3, 2) - item.setText(_translate("MainWindow", "3")) - item = self.playersTable_3.item(3, 3) - item.setText(_translate("MainWindow", "2")) - item = self.playersTable_3.item(4, 0) - item.setText(_translate("MainWindow", "Eve")) - item = self.playersTable_3.item(4, 1) - item.setText(_translate("MainWindow", "boss E")) - item = self.playersTable_3.item(4, 2) - item.setText(_translate("MainWindow", "3")) - item = self.playersTable_3.item(4, 3) - item.setText(_translate("MainWindow", "1")) - item = self.playersTable_3.item(5, 0) - item.setText(_translate("MainWindow", "Fred")) - item = self.playersTable_3.item(5, 1) - item.setText(_translate("MainWindow", "boss F")) - item = self.playersTable_3.item(5, 2) - item.setText(_translate("MainWindow", "6")) - item = self.playersTable_3.item(5, 3) - item.setText(_translate("MainWindow", "2")) - self.playersTable_3.setSortingEnabled(__sortingEnabled) - self.addRoundBtn_2.setText(_translate("MainWindow", "Add Round")) + item.setText(_translate("MainWindow", "Theme pts.")) item = self.playersTable_4.horizontalHeaderItem(0) - item.setText(_translate("MainWindow", "Round 1")) + item.setText(_translate("MainWindow", "Name")) item = self.playersTable_4.horizontalHeaderItem(1) - item.setText(_translate("MainWindow", "Round 2")) + item.setText(_translate("MainWindow", "Round")) item = self.playersTable_4.horizontalHeaderItem(2) - item.setText(_translate("MainWindow", "Round 3")) - __sortingEnabled = self.playersTable_4.isSortingEnabled() - self.playersTable_4.setSortingEnabled(False) - item = self.playersTable_4.item(0, 0) - item.setText(_translate("MainWindow", "Zone A")) - item = self.playersTable_4.item(0, 1) - item.setText(_translate("MainWindow", "Zone D")) - item = self.playersTable_4.item(0, 2) - item.setText(_translate("MainWindow", "Zone G")) - item = self.playersTable_4.item(1, 0) - item.setText(_translate("MainWindow", "Zone B")) - item = self.playersTable_4.item(1, 1) - item.setText(_translate("MainWindow", "Zone E")) - item = self.playersTable_4.item(1, 2) - item.setText(_translate("MainWindow", "Zone H")) - item = self.playersTable_4.item(2, 0) - item.setText(_translate("MainWindow", "Zone C")) - item = self.playersTable_4.item(2, 1) - item.setText(_translate("MainWindow", "Zone F")) - item = self.playersTable_4.item(2, 2) - item.setText(_translate("MainWindow", "Zone I")) - self.playersTable_4.setSortingEnabled(__sortingEnabled) + item.setText(_translate("MainWindow", "Major obj.")) + item = self.playersTable_4.horizontalHeaderItem(3) + item.setText(_translate("MainWindow", "Minor opp.")) + item = self.playersTable_4.horizontalHeaderItem(4) + item.setText(_translate("MainWindow", "Influence imp.")) self.addSectorBtn.setText(_translate("MainWindow", "Add Sector")) self.endCampaignBtn.setText(_translate("MainWindow", "End campaign")) self.labelChoices.setText(_translate("MainWindow", "Choices")) - item = self.choicesTable.verticalHeaderItem(0) - item.setText(_translate("MainWindow", "Alice")) - item = self.choicesTable.verticalHeaderItem(1) - item.setText(_translate("MainWindow", "Bob")) - item = self.choicesTable.verticalHeaderItem(2) - item.setText(_translate("MainWindow", "Charlie")) - item = self.choicesTable.verticalHeaderItem(3) - item.setText(_translate("MainWindow", "Dave")) - item = self.choicesTable.verticalHeaderItem(4) - item.setText(_translate("MainWindow", "Eve")) - item = self.choicesTable.verticalHeaderItem(5) - item.setText(_translate("MainWindow", "Fred")) item = self.choicesTable.horizontalHeaderItem(0) - item.setText(_translate("MainWindow", "Prioritary")) + item.setText(_translate("MainWindow", "Player")) item = self.choicesTable.horizontalHeaderItem(1) + item.setText(_translate("MainWindow", "Prioritary")) + item = self.choicesTable.horizontalHeaderItem(2) item.setText(_translate("MainWindow", "Secondary")) - __sortingEnabled = self.choicesTable.isSortingEnabled() - self.choicesTable.setSortingEnabled(False) - item = self.choicesTable.item(0, 0) - item.setText(_translate("MainWindow", "Zone A")) - item = self.choicesTable.item(0, 1) - item.setText(_translate("MainWindow", "Zone C")) - item = self.choicesTable.item(1, 0) - item.setText(_translate("MainWindow", "Zone B")) - item = self.choicesTable.item(1, 1) - item.setText(_translate("MainWindow", "Zone C")) - item = self.choicesTable.item(2, 0) - item.setText(_translate("MainWindow", "Zone A")) - item = self.choicesTable.item(2, 1) - item.setText(_translate("MainWindow", "Zone B")) - item = self.choicesTable.item(3, 0) - item.setText(_translate("MainWindow", "Zone C")) - item = self.choicesTable.item(3, 1) - item.setText(_translate("MainWindow", "Zone A")) - item = self.choicesTable.item(4, 0) - item.setText(_translate("MainWindow", "Zone C")) - item = self.choicesTable.item(4, 1) - item.setText(_translate("MainWindow", "Zone B")) - item = self.choicesTable.item(5, 0) - item.setText(_translate("MainWindow", "Zone B")) - item = self.choicesTable.item(5, 1) - item.setText(_translate("MainWindow", "Zone C")) - self.choicesTable.setSortingEnabled(__sortingEnabled) self.roundNb.setText(_translate("MainWindow", "Round Nb")) self.resolveBtn.setText(_translate("MainWindow", "Resolve pairing")) - item = self.playersTable_6.verticalHeaderItem(0) - item.setText(_translate("MainWindow", "Zone A")) - item = self.playersTable_6.verticalHeaderItem(1) - item.setText(_translate("MainWindow", "Zone B")) - item = self.playersTable_6.verticalHeaderItem(2) - item.setText(_translate("MainWindow", "Zone C")) item = self.playersTable_6.horizontalHeaderItem(0) - item.setText(_translate("MainWindow", "Player 1")) + item.setText(_translate("MainWindow", "Sector")) item = self.playersTable_6.horizontalHeaderItem(1) + item.setText(_translate("MainWindow", "Player 1")) + item = self.playersTable_6.horizontalHeaderItem(2) item.setText(_translate("MainWindow", "Player 2")) - __sortingEnabled = self.playersTable_6.isSortingEnabled() - self.playersTable_6.setSortingEnabled(False) - item = self.playersTable_6.item(0, 0) - item.setText(_translate("MainWindow", "Alice")) - item = self.playersTable_6.item(0, 1) - item.setText(_translate("MainWindow", "Charlie")) - item = self.playersTable_6.item(1, 0) - item.setText(_translate("MainWindow", "Bob")) - item = self.playersTable_6.item(1, 1) - item.setText(_translate("MainWindow", "Fred")) - item = self.playersTable_6.item(2, 0) - item.setText(_translate("MainWindow", "Dave")) - item = self.playersTable_6.item(2, 1) - item.setText(_translate("MainWindow", "Eve")) - self.playersTable_6.setSortingEnabled(__sortingEnabled) self.resultBtn.setText(_translate("MainWindow", "Enter results")) self.endRoundBtn.setText(_translate("MainWindow", "End round")) self.labelChoices_2.setText(_translate("MainWindow", "Battles")) - item = self.choicesTable_2.horizontalHeaderItem(0) - item.setText(_translate("MainWindow", "Name")) - item = self.choicesTable_2.horizontalHeaderItem(1) - item.setText(_translate("MainWindow", "Major")) - item = self.choicesTable_2.horizontalHeaderItem(2) - item.setText(_translate("MainWindow", "Minor")) - item = self.choicesTable_2.horizontalHeaderItem(3) - item.setText(_translate("MainWindow", "Influence")) - __sortingEnabled = self.choicesTable_2.isSortingEnabled() - self.choicesTable_2.setSortingEnabled(False) - item = self.choicesTable_2.item(0, 0) - item.setText(_translate("MainWindow", "Zone A")) - item = self.choicesTable_2.item(0, 1) - item.setText(_translate("MainWindow", "type1")) - item = self.choicesTable_2.item(0, 2) - item.setText(_translate("MainWindow", "type3")) - item = self.choicesTable_2.item(0, 3) - item.setText(_translate("MainWindow", "False")) - item = self.choicesTable_2.item(1, 0) - item.setText(_translate("MainWindow", "Zone B")) - item = self.choicesTable_2.item(1, 1) - item.setText(_translate("MainWindow", "type2")) - item = self.choicesTable_2.item(1, 2) - item.setText(_translate("MainWindow", "type1")) - item = self.choicesTable_2.item(1, 3) - item.setText(_translate("MainWindow", "True")) - item = self.choicesTable_2.item(2, 0) - item.setText(_translate("MainWindow", "Zone C")) - item = self.choicesTable_2.item(2, 1) - item.setText(_translate("MainWindow", "type3")) - item = self.choicesTable_2.item(2, 2) - item.setText(_translate("MainWindow", "type2")) - item = self.choicesTable_2.item(2, 3) - item.setText(_translate("MainWindow", "False")) - item = self.choicesTable_2.item(3, 0) - item.setText(_translate("MainWindow", "Zone D")) - item = self.choicesTable_2.item(3, 1) - item.setText(_translate("MainWindow", "type1")) - item = self.choicesTable_2.item(3, 2) - item.setText(_translate("MainWindow", "type3")) - item = self.choicesTable_2.item(3, 3) - item.setText(_translate("MainWindow", "True")) - item = self.choicesTable_2.item(4, 0) - item.setText(_translate("MainWindow", "Zone E")) - item = self.choicesTable_2.item(4, 1) - item.setText(_translate("MainWindow", "type3")) - item = self.choicesTable_2.item(4, 2) - item.setText(_translate("MainWindow", "type2")) - item = self.choicesTable_2.item(4, 3) - item.setText(_translate("MainWindow", "False")) - item = self.choicesTable_2.item(5, 0) - item.setText(_translate("MainWindow", "Zone F")) - item = self.choicesTable_2.item(5, 1) - item.setText(_translate("MainWindow", "type2")) - item = self.choicesTable_2.item(5, 2) - item.setText(_translate("MainWindow", "type1")) - item = self.choicesTable_2.item(5, 3) - item.setText(_translate("MainWindow", "False")) - item = self.choicesTable_2.item(6, 0) - item.setText(_translate("MainWindow", "Zone G")) - item = self.choicesTable_2.item(6, 1) - item.setText(_translate("MainWindow", "type3")) - item = self.choicesTable_2.item(6, 2) - item.setText(_translate("MainWindow", "type1")) - item = self.choicesTable_2.item(6, 3) - item.setText(_translate("MainWindow", "True")) - item = self.choicesTable_2.item(7, 0) - item.setText(_translate("MainWindow", "Zone H")) - item = self.choicesTable_2.item(7, 1) - item.setText(_translate("MainWindow", "type2")) - item = self.choicesTable_2.item(7, 2) - item.setText(_translate("MainWindow", "type3")) - item = self.choicesTable_2.item(7, 3) - item.setText(_translate("MainWindow", "False")) - item = self.choicesTable_2.item(8, 0) - item.setText(_translate("MainWindow", "Zone I")) - item = self.choicesTable_2.item(8, 1) - item.setText(_translate("MainWindow", "type1")) - item = self.choicesTable_2.item(8, 2) - item.setText(_translate("MainWindow", "type2")) - item = self.choicesTable_2.item(8, 3) - item.setText(_translate("MainWindow", "False")) - self.choicesTable_2.setSortingEnabled(__sortingEnabled) - self.labelChoices_3.setText(_translate("MainWindow", "Choices")) - self.addSectorBtn_2.setText(_translate("MainWindow", "Add sector")) self.tabWidget.setTabText(self.tabWidget.indexOf(self.warsTab), _translate("MainWindow", "Wars")) self.menuFile.setTitle(_translate("MainWindow", "File")) self.menuEdit.setTitle(_translate("MainWindow", "Edit")) diff --git a/src/warchron/view/ui/ui_main_window.ui b/src/warchron/view/ui/ui_main_window.ui index 8a1bc4d..6949658 100644 --- a/src/warchron/view/ui/ui_main_window.ui +++ b/src/warchron/view/ui/ui_main_window.ui @@ -62,6 +62,11 @@ Wins + + + Rewards + + @@ -99,21 +104,6 @@ - - - warItem - - - - campaignItem - - - - roundItem - - - - @@ -228,9 +218,9 @@ 10 - 200 - 47 - 13 + 150 + 111 + 16 @@ -240,9 +230,9 @@ - 430 - 310 - 75 + 420 + 270 + 81 23 @@ -254,41 +244,11 @@ 10 - 220 + 170 401 - 201 + 211 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Name @@ -306,138 +266,62 @@ - Wins + Victory pts. - + - Alice + Theme pts - - - - army A - - - - - 2 - - - - - 1 - - - - - Bob - - - - - army B - - - - - 2 - - - - - 1 - - - - - Charlie - - - - - army C - - - - - 2 - - - - - 0 - - - - - Dave - - - - - army D - - - - - 1 - - - - - 0 - - - - - Eve - - - - - army E - - - - - 1 - - - - - 0 - - - - - Fred - - - - - army F - - - - - 2 - - - - - 0 - - + - + true 230 - 120 + 400 + 61 + 23 + + + + End war + + + + + + 10 + 60 + 161 + 71 + + + + + + + 10 + 40 + 111 + 20 + + + + Objectives + + + + + true + + + + 180 + 80 91 23 @@ -448,51 +332,7 @@ - Add Campaign - - - - - - 10 - 80 - 211 - 91 - - - - - campaignName - - - - - - - 10 - 60 - 61 - 16 - - - - Campaigns - - - - - true - - - - 410 - 400 - 91 - 23 - - - - End war + Add objective @@ -519,20 +359,20 @@ 10 - 50 + 40 91 16 - Sectors by round + Sectors 420 - 310 + 270 75 23 @@ -563,7 +403,7 @@ 10 - 200 + 180 47 13 @@ -576,41 +416,11 @@ 10 - 220 + 200 401 - 201 + 181 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Name @@ -623,245 +433,59 @@ - Battles + Victory pts. - Wins + Theme pts. - - - Alice - - - - - boss A - - - - - 6 - - - - - 5 - - - - - Bob - - - - - boss B - - - - - 6 - - - - - 5 - - - - - Charlie - - - - - boss C - - - - - 6 - - - - - 3 - - - - - Dave - - - - - boss D - - - - - 3 - - - - - 2 - - - - - Eve - - - - - boss E - - - - - 3 - - - - - 1 - - - - - Fred - - - - - boss F - - - - - 6 - - - - - 2 - - - - - - true - - - - 360 - 90 - 91 - 23 - - - - Add Round - 10 - 80 - 331 - 91 + 60 + 401 + 101 - - - - - - - - - - - - - - - - Round 1 + Name - Round 2 + Round - Round 3 + Major obj. - + - Zone A + Minor opp. - - + + - Zone D + Influence imp. - - - - Zone G - - - - - Zone B - - - - - Zone E - - - - - Zone H - - - - - Zone C - - - - - Zone F - - - - - Zone I - - + - false + true - 360 - 130 - 91 + 420 + 110 + 71 23 @@ -875,7 +499,7 @@ - 410 + 210 400 91 23 @@ -891,7 +515,7 @@ 10 - 170 + 40 91 16 @@ -904,41 +528,16 @@ 10 - 190 - 271 - 91 + 60 + 301 + 141 - + - Alice + Player - - - - Bob - - - - - Charlie - - - - - Dave - - - - - Eve - - - - - Fred - - + Prioritary @@ -949,66 +548,6 @@ Secondary - - - Zone A - - - - - Zone C - - - - - Zone B - - - - - Zone C - - - - - Zone A - - - - - Zone B - - - - - Zone C - - - - - Zone A - - - - - Zone C - - - - - Zone B - - - - - Zone B - - - - - Zone C - - @@ -1034,8 +573,8 @@ - 290 - 220 + 320 + 110 91 23 @@ -1048,26 +587,16 @@ 10 - 320 - 271 - 91 + 240 + 301 + 111 - + - Zone A + Sector - - - - Zone B - - - - - Zone C - - + Player 1 @@ -1078,36 +607,6 @@ Player 2 - - - Alice - - - - - Charlie - - - - - Bob - - - - - Fred - - - - - Dave - - - - - Eve - - @@ -1115,8 +614,8 @@ - 290 - 360 + 320 + 290 91 23 @@ -1131,9 +630,9 @@ - 410 + 220 400 - 91 + 71 23 @@ -1145,7 +644,7 @@ 10 - 300 + 220 91 16 @@ -1154,290 +653,6 @@ Battles - - - - 10 - 70 - 421 - 91 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Name - - - - - Major - - - - - Minor - - - - - Influence - - - - - Zone A - - - - - type1 - - - - - type3 - - - - - False - - - - - Zone B - - - - - type2 - - - - - type1 - - - - - True - - - - - Zone C - - - - - type3 - - - - - type2 - - - - - False - - - - - Zone D - - - - - type1 - - - - - type3 - - - - - True - - - - - Zone E - - - - - type3 - - - - - type2 - - - - - False - - - - - Zone F - - - - - type2 - - - - - type1 - - - - - False - - - - - Zone G - - - - - type3 - - - - - type1 - - - - - True - - - - - Zone H - - - - - type2 - - - - - type3 - - - - - False - - - - - Zone I - - - - - type1 - - - - - type2 - - - - - False - - - - - - - 10 - 40 - 91 - 16 - - - - Choices - - - - - true - - - - 430 - 100 - 91 - 23 - - - - Add sector - - diff --git a/src/warchron/view/view.py b/src/warchron/view/view.py index 3792855..a3bbd70 100644 --- a/src/warchron/view/view.py +++ b/src/warchron/view/view.py @@ -6,14 +6,12 @@ from PyQt6.QtCore import Qt from PyQt6.QtWidgets import QDialog, QFileDialog, QTreeWidgetItem, QMenu from PyQt6.QtGui import QCloseEvent +from warchron.constants import ROLE_TYPE, ROLE_ID, ItemType from warchron.view.ui.ui_main_window import Ui_MainWindow from warchron.view.ui.ui_player_dialog import Ui_playerDialog from warchron.view.ui.ui_war_dialog import Ui_warDialog from warchron.view.ui.ui_campaign_dialog import Ui_campaignDialog -ROLE_TYPE = Qt.ItemDataRole.UserRole -ROLE_ID = Qt.ItemDataRole.UserRole + 1 - class View(QtWidgets.QMainWindow, Ui_MainWindow): def __init__(self, parent=None): super(View, self).__init__(parent) @@ -24,9 +22,9 @@ class View(QtWidgets.QMainWindow, Ui_MainWindow): self.on_add_round = None self.on_edit_item = None self.on_delete_item = None + self.show_details(None) self.playersTable.setContextMenuPolicy(Qt.ContextMenuPolicy.CustomContextMenu) self.playersTable.customContextMenuRequested.connect(self._on_players_table_context_menu) - self.warsTree.currentItemChanged.connect(self._emit_selection_changed) self.warsTree.setContextMenuPolicy(Qt.ContextMenuPolicy.CustomContextMenu) self.warsTree.customContextMenuRequested.connect(self._on_wars_tree_context_menu) self.addCampaignBtn.clicked.connect(self._on_add_campaign_clicked) @@ -53,9 +51,9 @@ class View(QtWidgets.QMainWindow, Ui_MainWindow): delete_action = menu.addAction("Delete") action = menu.exec(self.playersTable.viewport().mapToGlobal(pos)) if action == edit_action and self.on_edit_item: - self.on_edit_item("player", player_id) + self.on_edit_item(ItemType.PLAYER, player_id) elif action == delete_action and self.on_delete_item: - self.on_delete_item("player", player_id) + self.on_delete_item(ItemType.PLAYER, player_id) def _on_wars_tree_context_menu(self, pos): item = self.warsTree.itemAt(pos) @@ -65,7 +63,7 @@ class View(QtWidgets.QMainWindow, Ui_MainWindow): item_id = item.data(0, ROLE_ID) menu = QMenu(self) edit_action = None - if item_type != "round": + if item_type != ItemType.ROUND: edit_action = menu.addAction("Edit") delete_action = menu.addAction("Delete") action = menu.exec(self.warsTree.viewport().mapToGlobal(pos)) @@ -119,28 +117,59 @@ class View(QtWidgets.QMainWindow, Ui_MainWindow): table.setItem(row, 0, play_item) table.resizeColumnsToContents() - def display_wars(self, wars: list): + def _format_war_label(self, war) -> str: + return f"{war.name} ({war.name} ({war.year}))" + + def _format_campaign_label(self, camp) -> str: + return f"{camp.name} ({calendar.month_name[camp.month]})" + + def _format_round_label(self, round, index: int) -> str: + return f"Round {index}" + + def display_wars_tree(self, wars: list): tree = self.warsTree tree.clear() tree.setColumnCount(1) tree.setHeaderLabels(["Wars"]) for war in wars: - war_item = QTreeWidgetItem([f"{war.name} ({war.year})"]) - war_item.setData(0, ROLE_TYPE, "war") + war_item = QTreeWidgetItem([self._format_war_label(war)]) + war_item.setData(0, ROLE_TYPE, ItemType.WAR) war_item.setData(0, ROLE_ID, war.id) tree.addTopLevelItem(war_item) for camp in war.get_all_campaigns(): - camp_item = QTreeWidgetItem([f"{camp.name} ({calendar.month_name[camp.month]})"]) - camp_item.setData(0, ROLE_TYPE, "campaign") + camp_item = QTreeWidgetItem([self._format_campaign_label(camp)]) + camp_item.setData(0, ROLE_TYPE, ItemType.CAMPAIGN) camp_item.setData(0, ROLE_ID, camp.id) war_item.addChild(camp_item) for index, rnd in enumerate(camp.get_all_rounds(), start=1): - rnd_item = QTreeWidgetItem([f"Round {index}"]) - rnd_item.setData(0, ROLE_TYPE, "round") + rnd_item = QTreeWidgetItem([self._format_round_label(rnd, index)]) + rnd_item.setData(0, ROLE_TYPE, ItemType.ROUND) rnd_item.setData(0, ROLE_ID, rnd.id) camp_item.addChild(rnd_item) + tree.currentItemChanged.connect(self._emit_selection_changed) tree.expandAll() + def show_details(self, item_type: str | None): + if item_type == ItemType.WAR: + self.selectedDetailsStack.setCurrentWidget(self.pageWar) + elif item_type == ItemType.CAMPAIGN: + self.selectedDetailsStack.setCurrentWidget(self.pageCampaign) + elif item_type == ItemType.ROUND: + self.selectedDetailsStack.setCurrentWidget(self.pageRound) + else: + self.selectedDetailsStack.setCurrentWidget(self.pageEmpty) + + def show_war_details(self, *, name: str, year: int): + self.warName.setText(name) + self.warYear.setText(year) + + def show_campaign_details(self, *, name: str, month: int): + self.campaignName.setText(name) + self.campaignMonth.setText(calendar.month_name[month]) + + def show_round_details(self, *, index: int): + self.roundNb.setText(f"Round {index}") + def get_selected_tree_item(self): item = self.warsTree.currentItem() if not item: