implement general data tab view

This commit is contained in:
Thomas Peetz
2025-01-07 21:18:14 +01:00
parent 0759c99c1d
commit fe407d6d89
6 changed files with 236 additions and 84 deletions
+35 -19
View File
@@ -11,6 +11,8 @@ from PySide6.QtWidgets import QApplication, QLabel, QMainWindow
from platformdirs import PlatformDirs
from comic_model import ComicTableModel
from dialogs import ExportKontorDialog, ImportKontorDialog
from data import KontorDB
from model_config import KontorModelConfig
from table_model import KontorTableModel
@@ -35,12 +37,13 @@ class MainWindow(QMainWindow):
self.data = []
self.filter = {}
self.kontor_db = KontorDB(config)
self.central_widget = QWidget()
parent_layout = QVBoxLayout()
self.central_widget.setLayout(parent_layout)
self.tabs = QTabWidget()
self.tabs.addTab(self.generate_tab_comics(config), "Comics")
self.tabs.addTab(self.generate_tab_media_file(config), "MediaFile")
self.tabs.addTab(self.generate_data_tab("comic"), "Comics")
self.tabs.addTab(self.generate_data_tab("media_file"), "MediaFile")
self.tabs.currentChanged.connect(self._tab_changed)
#label.setAlignment(Qt.AlignmentFlag.AlignCenter)
parent_layout.addWidget(self.tabs)
@@ -52,9 +55,13 @@ class MainWindow(QMainWindow):
self.aboutAction = QAction("&Über...", self)
self.aboutAction.triggered.connect(self.about)
self.importAction = QAction(self.import_icon, "&Import", self)
self.importAction.triggered.connect(self.import_from_file)
self.exportAction = QAction(self.export_icon, "&Export", self)
self.exportAction.triggered.connect(self.export_to_file)
self.refreshAction = QAction(self.circle_icon, "&Refresh", self)
self.refreshAction.triggered.connect(self.refresh)
self.updateTitleAction = QAction("&Update Titles", self)
self.downloadAction = QAction("&Download Videos", self)
self.exitAction = QAction("&Beenden", self)
self.exitAction.setShortcut("Alt+F4")
self.exitAction.triggered.connect(self.close)
@@ -70,6 +77,10 @@ class MainWindow(QMainWindow):
menu_bar.addMenu(kontor_menu)
kontor_menu.addAction(self.importAction)
kontor_menu.addAction(self.exportAction)
media_file_menu = QMenu("&MediaFile")
media_file_menu.addAction(self.updateTitleAction)
media_file_menu.addAction(self.downloadAction)
kontor_menu.addMenu(media_file_menu)
# Help menu
help_menu = QMenu("&Hilfe")
menu_bar.addMenu(help_menu)
@@ -91,36 +102,41 @@ class MainWindow(QMainWindow):
def about(self):
QMessageBox.about(self.central_widget, "Über Kontor", f"Python: 3.11\nKontor: 0.1.0")
def import_from_file(self):
import_dlg = ImportKontorDialog(self)
if import_dlg.exec():
print(f"import DB from file {import_dlg.file_name}")
else:
print("no nothing for import")
pass
def export_to_file(self):
export_dlg = ExportKontorDialog(self, self.kontor_db)
if export_dlg.exec():
print(export_dlg.get_tables_to_export())
self.statusBar.showMessage(f"export DB to {export_dlg.file_name}", 3000)
else:
self.statusBar.showMessage("Export cancelled", 3000)
def refresh(self):
self.data[self.tabs.currentIndex()].refresh()
def _tab_changed(self, tab_index):
self.data[tab_index].refresh()
def generate_tab_comics(self, db_configuration):
comic_tab = QWidget()
layout = QVBoxLayout()
comic_tab.setLayout(layout)
model = ComicTableModel(db_configuration, self)
self.data.append(model)
table_view = QTableView()
table_view.setModel(model)
layout.addWidget(table_view)
return comic_tab
def generate_tab_media_file(self, db_configuration):
media_file_tab = QWidget()
table_config = KontorModelConfig(db_configuration, self, "media_file")
def generate_data_tab(self, table_name):
data_tab = QWidget()
table_config = KontorModelConfig(self.kontor_db, self, table_name)
model = KontorTableModel(table_config)
layout = QVBoxLayout()
# model = MediaFileTableModel(db_configuration, self)
self.data.append(model)
media_file_tab.setLayout(layout)
data_tab.setLayout(layout)
table_view = QTableView()
table_view.setModel(model)
layout.addLayout(table_config.get_filter_layout())
layout.addWidget(table_view)
return media_file_tab
model.refresh()
return data_tab
if __name__ == '__main__':