show is_over in warsTree & fator resources paths
This commit is contained in:
parent
a9cd4c9e27
commit
d869017646
28 changed files with 783 additions and 628 deletions
|
|
@ -1,3 +1,4 @@
|
|||
from __future__ import annotations
|
||||
from typing import Callable, List
|
||||
from pathlib import Path
|
||||
import calendar
|
||||
|
|
@ -5,9 +6,9 @@ import calendar
|
|||
from PyQt6 import QtWidgets
|
||||
from PyQt6.QtCore import Qt, QPoint
|
||||
from PyQt6.QtWidgets import QWidget, QFileDialog, QTreeWidgetItem, QMenu
|
||||
from PyQt6.QtGui import QCloseEvent, QIcon
|
||||
from PyQt6.QtGui import QCloseEvent
|
||||
|
||||
from warchron.constants import ROLE_TYPE, ROLE_ID, ItemType
|
||||
from warchron.constants import ROLE_TYPE, ROLE_ID, ItemType, Icons, IconName
|
||||
from warchron.controller.dtos import (
|
||||
ParticipantOption,
|
||||
TreeSelection,
|
||||
|
|
@ -56,6 +57,7 @@ class View(QtWidgets.QMainWindow, Ui_MainWindow):
|
|||
)
|
||||
self.addCampaignBtn.clicked.connect(self._on_add_campaign_clicked)
|
||||
self.addRoundBtn.clicked.connect(self._on_add_round_clicked)
|
||||
|
||||
# Pages
|
||||
self.warParticipantsTable.setContextMenuPolicy(
|
||||
Qt.ContextMenuPolicy.CustomContextMenu
|
||||
|
|
@ -89,6 +91,37 @@ class View(QtWidgets.QMainWindow, Ui_MainWindow):
|
|||
)
|
||||
self.majorValue.valueChanged.connect(self._on_major_changed)
|
||||
self.minorValue.valueChanged.connect(self._on_minor_changed)
|
||||
self._apply_icons()
|
||||
|
||||
def _apply_icons(self) -> None:
|
||||
# Window
|
||||
self.setWindowIcon(Icons.get(IconName.WARCHRON))
|
||||
# Menu bar
|
||||
self.actionNew.setIcon(Icons.get(IconName.NEW))
|
||||
self.actionOpen.setIcon(Icons.get(IconName.OPEN))
|
||||
self.actionSave.setIcon(Icons.get(IconName.SAVE))
|
||||
self.actionSave_as.setIcon(Icons.get(IconName.SAVE_AS))
|
||||
self.actionExit.setIcon(Icons.get(IconName.EXIT))
|
||||
self.actionUndo.setIcon(Icons.get(IconName.UNDO))
|
||||
self.actionRedo.setIcon(Icons.get(IconName.REDO))
|
||||
self.actionExport.setIcon(Icons.get(IconName.EXPORT))
|
||||
self.actionAbout.setIcon(Icons.get(IconName.ABOUT))
|
||||
# Tabs
|
||||
self.tabWidget.setTabIcon(0, Icons.get(IconName.PLAYERS))
|
||||
self.tabWidget.setTabIcon(1, Icons.get(IconName.WARS))
|
||||
# Buttons
|
||||
self.addPlayerBtn.setIcon(Icons.get(IconName.ADD))
|
||||
self.addWarBtn.setIcon(Icons.get(IconName.ADD))
|
||||
self.addCampaignBtn.setIcon(Icons.get(IconName.ADD))
|
||||
self.addRoundBtn.setIcon(Icons.get(IconName.ADD))
|
||||
self.addObjectiveBtn.setIcon(Icons.get(IconName.ADD))
|
||||
self.addWarParticipantBtn.setIcon(Icons.get(IconName.ADD))
|
||||
self.endWarBtn.setIcon(Icons.get(IconName.END))
|
||||
self.addSectorBtn.setIcon(Icons.get(IconName.ADD))
|
||||
self.addCampaignParticipantBtn.setIcon(Icons.get(IconName.ADD))
|
||||
self.endCampaignBtn.setIcon(Icons.get(IconName.END))
|
||||
self.resolvePairingBtn.setIcon(Icons.get(IconName.PAIRING))
|
||||
self.endRoundBtn.setIcon(Icons.get(IconName.END))
|
||||
|
||||
def _emit_selection_changed(self, current: QTreeWidgetItem | None) -> None:
|
||||
if not self.on_tree_selection_changed:
|
||||
|
|
@ -147,12 +180,8 @@ class View(QtWidgets.QMainWindow, Ui_MainWindow):
|
|||
return
|
||||
player_id = name_item.data(Qt.ItemDataRole.UserRole)
|
||||
menu = QMenu(self)
|
||||
edit_action = menu.addAction(
|
||||
QIcon(".\\src\\warchron\\view\\ui\\../resources/pencil.png"), "Edit"
|
||||
)
|
||||
delete_action = menu.addAction(
|
||||
QIcon(".\\src\\warchron\\view\\ui\\../resources/cross.png"), "Delete"
|
||||
)
|
||||
edit_action = menu.addAction(Icons.get(IconName.EDIT), "Edit")
|
||||
delete_action = menu.addAction(Icons.get(IconName.DELETE), "Delete")
|
||||
viewport = self.playersTable.viewport()
|
||||
assert viewport is not None
|
||||
action = menu.exec(viewport.mapToGlobal(pos))
|
||||
|
|
@ -195,12 +224,8 @@ class View(QtWidgets.QMainWindow, Ui_MainWindow):
|
|||
menu = QMenu(self)
|
||||
edit_action = None
|
||||
if item_type != ItemType.ROUND:
|
||||
edit_action = menu.addAction(
|
||||
QIcon(".\\src\\warchron\\view\\ui\\../resources/pencil.png"), "Edit"
|
||||
)
|
||||
delete_action = menu.addAction(
|
||||
QIcon(".\\src\\warchron\\view\\ui\\../resources/cross.png"), "Delete"
|
||||
)
|
||||
edit_action = menu.addAction(Icons.get(IconName.EDIT), "Edit")
|
||||
delete_action = menu.addAction(Icons.get(IconName.DELETE), "Delete")
|
||||
viewport = self.warsTree.viewport()
|
||||
assert viewport is not None
|
||||
action = menu.exec(viewport.mapToGlobal(pos))
|
||||
|
|
@ -216,18 +241,23 @@ class View(QtWidgets.QMainWindow, Ui_MainWindow):
|
|||
tree.clear()
|
||||
tree.setColumnCount(1)
|
||||
tree.setHeaderLabels(["Wars"])
|
||||
hourglass = Icons.get(IconName.ONGOING)
|
||||
check = Icons.get(IconName.DONE)
|
||||
for war in wars:
|
||||
war_item = QTreeWidgetItem([format_war_label(war)])
|
||||
war_item.setIcon(0, check if war.is_over else hourglass)
|
||||
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([format_campaign_label(camp)])
|
||||
camp_item.setIcon(0, check if camp.is_over else hourglass)
|
||||
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([format_round_label(index)])
|
||||
rnd_item.setIcon(0, check if rnd.is_over else hourglass)
|
||||
rnd_item.setData(0, ROLE_TYPE, ItemType.ROUND)
|
||||
rnd_item.setData(0, ROLE_ID, rnd.id)
|
||||
camp_item.addChild(rnd_item)
|
||||
|
|
@ -283,12 +313,8 @@ class View(QtWidgets.QMainWindow, Ui_MainWindow):
|
|||
return
|
||||
objective_id = name_item.data(Qt.ItemDataRole.UserRole)
|
||||
menu = QMenu(self)
|
||||
edit_action = menu.addAction(
|
||||
QIcon(".\\src\\warchron\\view\\ui\\../resources/pencil.png"), "Edit"
|
||||
)
|
||||
delete_action = menu.addAction(
|
||||
QIcon(".\\src\\warchron\\view\\ui\\../resources/cross.png"), "Delete"
|
||||
)
|
||||
edit_action = menu.addAction(Icons.get(IconName.EDIT), "Edit")
|
||||
delete_action = menu.addAction(Icons.get(IconName.DELETE), "Delete")
|
||||
viewport = self.objectivesTable.viewport()
|
||||
assert viewport is not None
|
||||
action = menu.exec(viewport.mapToGlobal(pos))
|
||||
|
|
@ -307,12 +333,8 @@ class View(QtWidgets.QMainWindow, Ui_MainWindow):
|
|||
return
|
||||
participant_id = name_item.data(Qt.ItemDataRole.UserRole)
|
||||
menu = QMenu(self)
|
||||
edit_action = menu.addAction(
|
||||
QIcon(".\\src\\warchron\\view\\ui\\../resources/pencil.png"), "Edit"
|
||||
)
|
||||
delete_action = menu.addAction(
|
||||
QIcon(".\\src\\warchron\\view\\ui\\../resources/cross.png"), "Delete"
|
||||
)
|
||||
edit_action = menu.addAction(Icons.get(IconName.EDIT), "Edit")
|
||||
delete_action = menu.addAction(Icons.get(IconName.DELETE), "Delete")
|
||||
viewport = self.warParticipantsTable.viewport()
|
||||
assert viewport is not None
|
||||
action = menu.exec(viewport.mapToGlobal(pos))
|
||||
|
|
@ -380,12 +402,8 @@ class View(QtWidgets.QMainWindow, Ui_MainWindow):
|
|||
return
|
||||
sector_id = name_item.data(Qt.ItemDataRole.UserRole)
|
||||
menu = QMenu(self)
|
||||
edit_action = menu.addAction(
|
||||
QIcon(".\\src\\warchron\\view\\ui\\../resources/pencil.png"), "Edit"
|
||||
)
|
||||
delete_action = menu.addAction(
|
||||
QIcon(".\\src\\warchron\\view\\ui\\../resources/cross.png"), "Delete"
|
||||
)
|
||||
edit_action = menu.addAction(Icons.get(IconName.EDIT), "Edit")
|
||||
delete_action = menu.addAction(Icons.get(IconName.DELETE), "Delete")
|
||||
viewport = self.sectorsTable.viewport()
|
||||
assert viewport is not None
|
||||
action = menu.exec(viewport.mapToGlobal(pos))
|
||||
|
|
@ -404,12 +422,8 @@ class View(QtWidgets.QMainWindow, Ui_MainWindow):
|
|||
return
|
||||
participant_id = name_item.data(Qt.ItemDataRole.UserRole)
|
||||
menu = QMenu(self)
|
||||
edit_action = menu.addAction(
|
||||
QIcon(".\\src\\warchron\\view\\ui\\../resources/pencil.png"), "Edit"
|
||||
)
|
||||
delete_action = menu.addAction(
|
||||
QIcon(".\\src\\warchron\\view\\ui\\../resources/cross.png"), "Delete"
|
||||
)
|
||||
edit_action = menu.addAction(Icons.get(IconName.EDIT), "Edit")
|
||||
delete_action = menu.addAction(Icons.get(IconName.DELETE), "Delete")
|
||||
viewport = self.campaignParticipantsTable.viewport()
|
||||
assert viewport is not None
|
||||
action = menu.exec(viewport.mapToGlobal(pos))
|
||||
|
|
@ -476,9 +490,7 @@ class View(QtWidgets.QMainWindow, Ui_MainWindow):
|
|||
if choice_id is None:
|
||||
return
|
||||
menu = QMenu(self)
|
||||
edit_action = menu.addAction(
|
||||
QIcon(".\\src\\warchron\\view\\ui\\../resources/pencil.png"), "Edit"
|
||||
)
|
||||
edit_action = menu.addAction(Icons.get(IconName.EDIT), "Edit")
|
||||
viewport = self.choicesTable.viewport()
|
||||
assert viewport is not None
|
||||
action = menu.exec(viewport.mapToGlobal(pos))
|
||||
|
|
@ -497,9 +509,7 @@ class View(QtWidgets.QMainWindow, Ui_MainWindow):
|
|||
if battle_id is None:
|
||||
return
|
||||
menu = QMenu(self)
|
||||
edit_action = menu.addAction(
|
||||
QIcon(".\\src\\warchron\\view\\ui\\../resources/pencil.png"), "Edit"
|
||||
)
|
||||
edit_action = menu.addAction(Icons.get(IconName.EDIT), "Edit")
|
||||
viewport = self.battlesTable.viewport()
|
||||
assert viewport is not None
|
||||
action = menu.exec(viewport.mapToGlobal(pos))
|
||||
|
|
@ -530,13 +540,13 @@ class View(QtWidgets.QMainWindow, Ui_MainWindow):
|
|||
for row, battle in enumerate(sectors):
|
||||
sector_item = QtWidgets.QTableWidgetItem(battle.sector_name)
|
||||
if battle.state_icon:
|
||||
sector_item.setIcon(QIcon(battle.state_icon))
|
||||
sector_item.setIcon(battle.state_icon)
|
||||
player_1_item = QtWidgets.QTableWidgetItem(battle.player_1)
|
||||
if battle.player1_icon:
|
||||
player_1_item.setIcon(QIcon(battle.player1_icon))
|
||||
player_1_item.setIcon(battle.player1_icon)
|
||||
player_2_item = QtWidgets.QTableWidgetItem(battle.player_2)
|
||||
if battle.player2_icon:
|
||||
player_2_item.setIcon(QIcon(battle.player2_icon))
|
||||
player_2_item.setIcon(battle.player2_icon)
|
||||
score_item = QtWidgets.QTableWidgetItem(battle.score)
|
||||
vp_item = QtWidgets.QTableWidgetItem(battle.victory_condition)
|
||||
comment_item = QtWidgets.QTableWidgetItem(battle.comment)
|
||||
|
|
@ -544,7 +554,7 @@ class View(QtWidgets.QMainWindow, Ui_MainWindow):
|
|||
table.setItem(row, 0, sector_item)
|
||||
table.setItem(row, 1, player_1_item)
|
||||
table.setItem(row, 2, player_2_item)
|
||||
table.setItem(row, 3, score_item)
|
||||
table.setItem(row, 4, vp_item)
|
||||
table.setItem(row, 3, vp_item)
|
||||
table.setItem(row, 4, score_item)
|
||||
table.setItem(row, 5, comment_item)
|
||||
table.resizeColumnsToContents()
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue