rename app ; add new,open,save actions
This commit is contained in:
parent
ee7a266e9d
commit
4d56a90790
37 changed files with 271 additions and 127 deletions
57
src/warchron/view/view.py
Normal file
57
src/warchron/view/view.py
Normal file
|
|
@ -0,0 +1,57 @@
|
|||
from pathlib import Path
|
||||
|
||||
from PyQt6 import QtWidgets
|
||||
from PyQt6.QtWidgets import QDialog, QFileDialog
|
||||
from PyQt6.QtGui import QCloseEvent
|
||||
|
||||
from warchron.view.ui.ui_main_window import Ui_MainWindow
|
||||
from warchron.view.ui.ui_player_dialog import Ui_playerDialog
|
||||
|
||||
class View(QtWidgets.QMainWindow, Ui_MainWindow):
|
||||
def __init__(self, parent=None):
|
||||
super(View, self).__init__(parent)
|
||||
self.setupUi(self)
|
||||
self.on_close_callback = None
|
||||
|
||||
def display_players(self, players: list):
|
||||
table = self.playersTable
|
||||
table.setRowCount(len(players))
|
||||
for row, player in enumerate(players):
|
||||
table.setItem(row, 0, QtWidgets.QTableWidgetItem(player.name))
|
||||
table.setItem(row, 1, QtWidgets.QTableWidgetItem(player.id))
|
||||
table.resizeColumnsToContents()
|
||||
|
||||
def closeEvent(self, event: QCloseEvent):
|
||||
if self.on_close_callback:
|
||||
proceed = self.on_close_callback()
|
||||
if not proceed:
|
||||
event.ignore()
|
||||
return
|
||||
event.accept()
|
||||
|
||||
def ask_open_file(self) -> Path | None:
|
||||
filename, _ = QFileDialog.getOpenFileName(
|
||||
self,
|
||||
"Open war history",
|
||||
"",
|
||||
"WarChron files (*.json)"
|
||||
)
|
||||
return Path(filename) if filename else None
|
||||
|
||||
def ask_save_file(self) -> Path | None:
|
||||
filename, _ = QFileDialog.getSaveFileName(
|
||||
self,
|
||||
"Save war history",
|
||||
"",
|
||||
"WarChron files (*.json)"
|
||||
)
|
||||
return Path(filename) if filename else None
|
||||
|
||||
class PlayerDialog(QDialog):
|
||||
def __init__(self, parent=None):
|
||||
super().__init__(parent)
|
||||
self.ui = Ui_playerDialog()
|
||||
self.ui.setupUi(self)
|
||||
|
||||
def get_player_name(self) -> str:
|
||||
return self.ui.playerName.text().strip()
|
||||
Loading…
Add table
Add a link
Reference in a new issue