From 373257864f5c972579ae8e0ff017699b3346a836 Mon Sep 17 00:00:00 2001 From: WorldTeacher Date: Wed, 3 Sep 2025 12:33:52 +0200 Subject: [PATCH] update searchpage, add updater thread and emit signal for progress bar add context menu and related actions --- src/ui/widgets/searchPage.py | 61 +++- .../search_statistic_page_ui.py | 340 +++++++----------- 2 files changed, 184 insertions(+), 217 deletions(-) diff --git a/src/ui/widgets/searchPage.py b/src/ui/widgets/searchPage.py index 6463419..814efdb 100644 --- a/src/ui/widgets/searchPage.py +++ b/src/ui/widgets/searchPage.py @@ -7,9 +7,10 @@ from PySide6.QtCore import Signal from src import LOG_DIR from src.backend import Database, Semester -from src.logic import Prof, custom_sort, sort_semesters_list +from src.logic import BookData, Prof, custom_sort, sort_semesters_list from src.ui.dialogs import ApparatExtendDialog, Mail_Dialog, ReminderDialog from src.ui.widgets import DataQtGraph, StatusWidget +from src.ui.widgets.signature_update import UpdaterThread from .widget_sources.search_statistic_page_ui import Ui_Dialog @@ -19,7 +20,6 @@ log.add(sys.stdout, level="INFO") log.add(f"{LOG_DIR}/application.log", rotation="1 MB", retention="10 days") - class MyComboBox(QtWidgets.QComboBox): def __init__(self, parent=None): super().__init__(parent) @@ -30,6 +30,7 @@ class SearchStatisticPage(QtWidgets.QDialog, Ui_Dialog): reloadSignal = Signal() refreshSignal = Signal() updateCalendar = Signal(int, list) + status_update = Signal(int, int) def __init__(self): log.info("SearchStatisticPage started") @@ -72,8 +73,54 @@ class SearchStatisticPage(QtWidgets.QDialog, Ui_Dialog): self.semester = Semester().value self.search_by_signature.returnPressed.connect(self.search_book) self.search_by_title.returnPressed.connect(self.search_book) + # add context menu to the book_search_result + self.book_search_result.setContextMenuPolicy( + QtCore.Qt.ContextMenuPolicy.CustomContextMenu + ) + self.book_search_result.customContextMenuRequested.connect( + self.book_search_result_context_menu + ) self.populate_tab() + def book_search_result_context_menu(self, position): + menu = QtWidgets.QMenu() + open_apparat_action = menu.addAction("Semesterapparat öffnen") + open_apparat_action.triggered.connect(self.open_selected_apparat) + update_books_action = menu.addAction("Bücher aktualisieren") + update_books_action.triggered.connect(self.update_books) + menu.exec(self.book_search_result.mapToGlobal(position)) + + def open_selected_apparat(self): + selected_rows = self.book_search_result.selectionModel().selectedRows() + if len(selected_rows) == 0: + return + row = selected_rows[0].row() + apparat_text = self.book_search_result.item(row, 2).text() + apparat_number = apparat_text.split(" (")[0] + self.apparat_open.emit(apparat_number) + + def update_books(self): + # update all books in the book_search_result + self.updater = UpdaterThread() + books = [] + for row in range(self.book_search_result.rowCount()): + signature = self.book_search_result.item(row, 1).text() + booksdata = self.db.query_db( + "SELECT id, bookdata from media WHERE bookdata LIKE ?", + (f'%"{signature}"%',), + one=True, + ) + books.append( + {"id": booksdata[0], "bookdata": BookData().from_string(booksdata[1])} + ) + self.updater.books = books # type: ignore + self.updater.currtot.connect(self.status_update_emit) + self.updater.finished.connect(self.updater.deleteLater) + self.updater.start() + + def status_update_emit(self, current: int, total: int): + self.status_update.emit(current, total) + def mass_extend_apparats(self): extend = ApparatExtendDialog() extend.exec() @@ -84,13 +131,13 @@ class SearchStatisticPage(QtWidgets.QDialog, Ui_Dialog): if self.tableWidget.cellWidget(i, 0).isChecked(): app_name = self.tableWidget.item(i, 1).text() app_id = self.db.getApparatId(app_name) - self.db.setNewSemesterDate(app_id, data["semester"], data["dauerapp"]) + self.db.setNewSemesterDate( + app_id, data["semester"], data["dauerapp"] + ) # remove the row self.tableWidget.removeRow(i) self.refreshSignal.emit() - - def restore_apparat(self): selected_rows = self.tableWidget.selectionModel().selectedRows() apparats = [] @@ -193,7 +240,7 @@ class SearchStatisticPage(QtWidgets.QDialog, Ui_Dialog): 2, QtWidgets.QTableWidgetItem( self.db.fetch_one( - "SELECT semesterapparat.appnr || ' (' || semesterapparat.name || ')' AS formatted_result from semesterapparat WHERE semesterapparat.appnr = ?", + "SELECT semesterapparat.appnr || ' (' || semesterapparat.name || ')' AS formatted_result from semesterapparat WHERE semesterapparat.id = ?", (book[1],), )[0], ), @@ -510,7 +557,7 @@ class SearchStatisticPage(QtWidgets.QDialog, Ui_Dialog): QtWidgets.QMessageBox.information( self, "Information", - f"Der Semesterapparat wurde bereits gelöscht und kann nicht angezeigt werden.", + "Der Semesterapparat wurde bereits gelöscht und kann nicht angezeigt werden.", ) if parent_depth == 1: # person selected case - open all apparats from this person in the tableWidget diff --git a/src/ui/widgets/widget_sources/search_statistic_page_ui.py b/src/ui/widgets/widget_sources/search_statistic_page_ui.py index 207dd58..8a49705 100644 --- a/src/ui/widgets/widget_sources/search_statistic_page_ui.py +++ b/src/ui/widgets/widget_sources/search_statistic_page_ui.py @@ -8,137 +8,126 @@ ## WARNING! All changes made in this file will be lost when recompiling UI file! ################################################################################ -from PySide6.QtCore import QCoreApplication, Qt -from PySide6.QtWidgets import ( - QAbstractItemView, - QCheckBox, - QComboBox, - QFrame, - QGridLayout, - QHBoxLayout, - QLabel, - QLayout, - QLineEdit, - QPushButton, - QSizePolicy, - QSpacerItem, - QStackedWidget, - QTableWidget, - QTableWidgetItem, - QTabWidget, - QVBoxLayout, - QWidget, -) - +from PySide6.QtCore import (QCoreApplication, QDate, QDateTime, QLocale, + QMetaObject, QObject, QPoint, QRect, + QSize, QTime, QUrl, Qt) +from PySide6.QtGui import (QBrush, QColor, QConicalGradient, QCursor, + QFont, QFontDatabase, QGradient, QIcon, + QImage, QKeySequence, QLinearGradient, QPainter, + QPalette, QPixmap, QRadialGradient, QTransform) +from PySide6.QtWidgets import (QAbstractItemView, QApplication, QCheckBox, QComboBox, + QDialog, QFrame, QGridLayout, QHBoxLayout, + QHeaderView, QLabel, QLayout, QLineEdit, + QPushButton, QSizePolicy, QSpacerItem, QStackedWidget, + QTabWidget, QTableWidget, QTableWidgetItem, QVBoxLayout, + QWidget) class Ui_Dialog(object): def setupUi(self, Dialog): if not Dialog.objectName(): - Dialog.setObjectName("Dialog") + Dialog.setObjectName(u"Dialog") Dialog.resize(1244, 767) self.verticalLayout = QVBoxLayout(Dialog) - self.verticalLayout.setObjectName("verticalLayout") + self.verticalLayout.setObjectName(u"verticalLayout") self.tabWidget_2 = QTabWidget(Dialog) - self.tabWidget_2.setObjectName("tabWidget_2") + self.tabWidget_2.setObjectName(u"tabWidget_2") self.tabWidget_2.setMaximumSize(QSize(16777215, 250)) self.tabWidget_2.setFocusPolicy(Qt.ClickFocus) self.tabWidget_2.setTabPosition(QTabWidget.North) self.tabWidget_2.setTabShape(QTabWidget.Rounded) self.tab_3 = QWidget() - self.tab_3.setObjectName("tab_3") + self.tab_3.setObjectName(u"tab_3") self.horizontalLayout_2 = QHBoxLayout(self.tab_3) - self.horizontalLayout_2.setObjectName("horizontalLayout_2") + self.horizontalLayout_2.setObjectName(u"horizontalLayout_2") self.gridLayout_3 = QGridLayout() - self.gridLayout_3.setObjectName("gridLayout_3") + self.gridLayout_3.setObjectName(u"gridLayout_3") self.box_semester = QComboBox(self.tab_3) - self.box_semester.setObjectName("box_semester") + self.box_semester.setObjectName(u"box_semester") self.box_semester.setEditable(True) self.gridLayout_3.addWidget(self.box_semester, 0, 3, 1, 1) self.label_18 = QLabel(self.tab_3) - self.label_18.setObjectName("label_18") + self.label_18.setObjectName(u"label_18") self.gridLayout_3.addWidget(self.label_18, 2, 2, 1, 1) self.box_fach = QComboBox(self.tab_3) - self.box_fach.setObjectName("box_fach") + self.box_fach.setObjectName(u"box_fach") self.box_fach.setEditable(True) self.gridLayout_3.addWidget(self.box_fach, 2, 1, 1, 1) self.label_15 = QLabel(self.tab_3) - self.label_15.setObjectName("label_15") + self.label_15.setObjectName(u"label_15") self.gridLayout_3.addWidget(self.label_15, 3, 0, 1, 1) self.label_11 = QLabel(self.tab_3) - self.label_11.setObjectName("label_11") + self.label_11.setObjectName(u"label_11") self.gridLayout_3.addWidget(self.label_11, 1, 0, 1, 1) - self.verticalSpacer_3 = QSpacerItem( - 20, 40, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Expanding - ) + self.verticalSpacer_3 = QSpacerItem(20, 40, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Expanding) self.gridLayout_3.addItem(self.verticalSpacer_3, 4, 0, 1, 1) self.label_7 = QLabel(self.tab_3) - self.label_7.setObjectName("label_7") + self.label_7.setObjectName(u"label_7") self.gridLayout_3.addWidget(self.label_7, 0, 0, 1, 1) self.label_17 = QLabel(self.tab_3) - self.label_17.setObjectName("label_17") + self.label_17.setObjectName(u"label_17") self.gridLayout_3.addWidget(self.label_17, 0, 2, 1, 1) self.box_appnrs = QComboBox(self.tab_3) - self.box_appnrs.setObjectName("box_appnrs") + self.box_appnrs.setObjectName(u"box_appnrs") self.box_appnrs.setEditable(True) self.gridLayout_3.addWidget(self.box_appnrs, 0, 1, 1, 1) self.box_dauerapp = QComboBox(self.tab_3) - self.box_dauerapp.setObjectName("box_dauerapp") + self.box_dauerapp.setObjectName(u"box_dauerapp") self.gridLayout_3.addWidget(self.box_dauerapp, 2, 3, 1, 1) self.box_person = QComboBox(self.tab_3) - self.box_person.setObjectName("box_person") + self.box_person.setObjectName(u"box_person") self.box_person.setEditable(True) self.gridLayout_3.addWidget(self.box_person, 1, 1, 1, 1) self.box_erstellsemester = QComboBox(self.tab_3) - self.box_erstellsemester.setObjectName("box_erstellsemester") + self.box_erstellsemester.setObjectName(u"box_erstellsemester") self.box_erstellsemester.setEditable(True) self.gridLayout_3.addWidget(self.box_erstellsemester, 1, 3, 1, 1) self.label_19 = QLabel(self.tab_3) - self.label_19.setObjectName("label_19") + self.label_19.setObjectName(u"label_19") self.gridLayout_3.addWidget(self.label_19, 1, 2, 1, 1) self.label_16 = QLabel(self.tab_3) - self.label_16.setObjectName("label_16") + self.label_16.setObjectName(u"label_16") self.gridLayout_3.addWidget(self.label_16, 2, 0, 1, 1) self.check_deletable = QCheckBox(self.tab_3) - self.check_deletable.setObjectName("check_deletable") + self.check_deletable.setObjectName(u"check_deletable") self.check_deletable.setFocusPolicy(Qt.StrongFocus) self.gridLayout_3.addWidget(self.check_deletable, 3, 1, 1, 1) self.btn_search = QPushButton(self.tab_3) - self.btn_search.setObjectName("btn_search") + self.btn_search.setObjectName(u"btn_search") self.gridLayout_3.addWidget(self.btn_search, 5, 0, 1, 1) self.db_err_message = QLabel(self.tab_3) - self.db_err_message.setObjectName("db_err_message") + self.db_err_message.setObjectName(u"db_err_message") self.gridLayout_3.addWidget(self.db_err_message, 5, 1, 1, 1) @@ -150,9 +139,7 @@ class Ui_Dialog(object): self.horizontalLayout_2.addLayout(self.gridLayout_3) - self.horizontalSpacer = QSpacerItem( - 40, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum - ) + self.horizontalSpacer = QSpacerItem(40, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) self.horizontalLayout_2.addItem(self.horizontalSpacer) @@ -160,60 +147,58 @@ class Ui_Dialog(object): self.horizontalLayout_2.setStretch(1, 1) self.tabWidget_2.addTab(self.tab_3, "") self.tab_4 = QWidget() - self.tab_4.setObjectName("tab_4") + self.tab_4.setObjectName(u"tab_4") self.horizontalLayout_3 = QHBoxLayout(self.tab_4) - self.horizontalLayout_3.setObjectName("horizontalLayout_3") + self.horizontalLayout_3.setObjectName(u"horizontalLayout_3") self.gridLayout = QGridLayout() - self.gridLayout.setObjectName("gridLayout") + self.gridLayout.setObjectName(u"gridLayout") self.search_by_signature = QLineEdit(self.tab_4) - self.search_by_signature.setObjectName("search_by_signature") + self.search_by_signature.setObjectName(u"search_by_signature") self.search_by_signature.setFocusPolicy(Qt.ClickFocus) self.search_by_signature.setClearButtonEnabled(True) self.gridLayout.addWidget(self.search_by_signature, 0, 1, 1, 1) self.label_25 = QLabel(self.tab_4) - self.label_25.setObjectName("label_25") + self.label_25.setObjectName(u"label_25") self.gridLayout.addWidget(self.label_25, 0, 0, 1, 1) - self.verticalSpacer = QSpacerItem( - 20, 40, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Expanding - ) + self.verticalSpacer = QSpacerItem(20, 40, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Expanding) self.gridLayout.addItem(self.verticalSpacer, 5, 0, 1, 1) self.search_by_title = QLineEdit(self.tab_4) - self.search_by_title.setObjectName("search_by_title") + self.search_by_title.setObjectName(u"search_by_title") self.search_by_title.setFocusPolicy(Qt.ClickFocus) self.search_by_title.setClearButtonEnabled(True) self.gridLayout.addWidget(self.search_by_title, 1, 1, 1, 1) self.label_26 = QLabel(self.tab_4) - self.label_26.setObjectName("label_26") + self.label_26.setObjectName(u"label_26") self.gridLayout.addWidget(self.label_26, 1, 0, 1, 1) self.horizontalLayout_4 = QHBoxLayout() - self.horizontalLayout_4.setObjectName("horizontalLayout_4") + self.horizontalLayout_4.setObjectName(u"horizontalLayout_4") self.label = QLabel(self.tab_4) - self.label.setObjectName("label") + self.label.setObjectName(u"label") self.horizontalLayout_4.addWidget(self.label) self.no_result = QLabel(self.tab_4) - self.no_result.setObjectName("no_result") + self.no_result.setObjectName(u"no_result") self.horizontalLayout_4.addWidget(self.no_result) + self.gridLayout.addLayout(self.horizontalLayout_4, 3, 1, 1, 1) + self.horizontalLayout_3.addLayout(self.gridLayout) - self.horizontalSpacer_2 = QSpacerItem( - 40, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum - ) + self.horizontalSpacer_2 = QSpacerItem(40, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) self.horizontalLayout_3.addItem(self.horizontalSpacer_2) @@ -224,64 +209,59 @@ class Ui_Dialog(object): self.verticalLayout.addWidget(self.tabWidget_2) self.verticalLayout_3 = QVBoxLayout() - self.verticalLayout_3.setObjectName("verticalLayout_3") + self.verticalLayout_3.setObjectName(u"verticalLayout_3") self.verticalLayout_3.setSizeConstraint(QLayout.SetDefaultConstraint) self.stackedWidget_4 = QStackedWidget(Dialog) - self.stackedWidget_4.setObjectName("stackedWidget_4") - sizePolicy = QSizePolicy( - QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Expanding - ) + self.stackedWidget_4.setObjectName(u"stackedWidget_4") + sizePolicy = QSizePolicy(QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Expanding) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth( - self.stackedWidget_4.sizePolicy().hasHeightForWidth() - ) + sizePolicy.setHeightForWidth(self.stackedWidget_4.sizePolicy().hasHeightForWidth()) self.stackedWidget_4.setSizePolicy(sizePolicy) self.stackedWidget_4.setFrameShape(QFrame.StyledPanel) self.stackedWidget_4.setFrameShadow(QFrame.Raised) self.apparatResult = QWidget() - self.apparatResult.setObjectName("apparatResult") + self.apparatResult.setObjectName(u"apparatResult") self.horizontalLayout = QHBoxLayout(self.apparatResult) - self.horizontalLayout.setObjectName("horizontalLayout") + self.horizontalLayout.setObjectName(u"horizontalLayout") self.app_results = QWidget(self.apparatResult) - self.app_results.setObjectName("app_results") + self.app_results.setObjectName(u"app_results") self.verticalLayout_6 = QVBoxLayout(self.app_results) - self.verticalLayout_6.setObjectName("verticalLayout_6") + self.verticalLayout_6.setObjectName(u"verticalLayout_6") self.verticalLayout_4 = QVBoxLayout() - self.verticalLayout_4.setObjectName("verticalLayout_4") + self.verticalLayout_4.setObjectName(u"verticalLayout_4") self.horizontalLayout_7 = QHBoxLayout() - self.horizontalLayout_7.setObjectName("horizontalLayout_7") + self.horizontalLayout_7.setObjectName(u"horizontalLayout_7") self.verticalLayout_5 = QVBoxLayout() - self.verticalLayout_5.setObjectName("verticalLayout_5") + self.verticalLayout_5.setObjectName(u"verticalLayout_5") self.horizontalLayout_7.addLayout(self.verticalLayout_5) self.btn_del_select_apparats = QPushButton(self.app_results) - self.btn_del_select_apparats.setObjectName("btn_del_select_apparats") + self.btn_del_select_apparats.setObjectName(u"btn_del_select_apparats") self.btn_del_select_apparats.setFocusPolicy(Qt.StrongFocus) self.horizontalLayout_7.addWidget(self.btn_del_select_apparats) self.btn_notify_for_deletion = QPushButton(self.app_results) - self.btn_notify_for_deletion.setObjectName("btn_notify_for_deletion") + self.btn_notify_for_deletion.setObjectName(u"btn_notify_for_deletion") self.horizontalLayout_7.addWidget(self.btn_notify_for_deletion) self.btn_extendSelection = QPushButton(self.app_results) - self.btn_extendSelection.setObjectName("btn_extendSelection") + self.btn_extendSelection.setObjectName(u"btn_extendSelection") self.horizontalLayout_7.addWidget(self.btn_extendSelection) - self.horizontalSpacer_5 = QSpacerItem( - 40, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum - ) + self.horizontalSpacer_5 = QSpacerItem(40, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) self.horizontalLayout_7.addItem(self.horizontalSpacer_5) + self.verticalLayout_4.addLayout(self.horizontalLayout_7) self.tableWidget = QTableWidget(self.app_results) - if self.tableWidget.columnCount() < 5: + if (self.tableWidget.columnCount() < 5): self.tableWidget.setColumnCount(5) __qtablewidgetitem = QTableWidgetItem() self.tableWidget.setHorizontalHeaderItem(0, __qtablewidgetitem) @@ -293,33 +273,35 @@ class Ui_Dialog(object): self.tableWidget.setHorizontalHeaderItem(3, __qtablewidgetitem3) __qtablewidgetitem4 = QTableWidgetItem() self.tableWidget.setHorizontalHeaderItem(4, __qtablewidgetitem4) - self.tableWidget.setObjectName("tableWidget") + self.tableWidget.setObjectName(u"tableWidget") self.tableWidget.setFocusPolicy(Qt.NoFocus) self.tableWidget.setContextMenuPolicy(Qt.CustomContextMenu) self.tableWidget.setEditTriggers(QAbstractItemView.NoEditTriggers) self.tableWidget.setGridStyle(Qt.NoPen) self.tableWidget.setSortingEnabled(True) self.tableWidget.horizontalHeader().setStretchLastSection(True) - self.tableWidget.verticalHeader().setProperty("showSortIndicator", True) + self.tableWidget.verticalHeader().setProperty(u"showSortIndicator", True) self.verticalLayout_4.addWidget(self.tableWidget) + self.verticalLayout_6.addLayout(self.verticalLayout_4) + self.horizontalLayout.addWidget(self.app_results) self.stats = QFrame(self.apparatResult) - self.stats.setObjectName("stats") + self.stats.setObjectName(u"stats") self.verticalLayout_8 = QVBoxLayout(self.stats) - self.verticalLayout_8.setObjectName("verticalLayout_8") + self.verticalLayout_8.setObjectName(u"verticalLayout_8") self.tabWidget_3 = QTabWidget(self.stats) - self.tabWidget_3.setObjectName("tabWidget_3") + self.tabWidget_3.setObjectName(u"tabWidget_3") self.statistic_table = QWidget() - self.statistic_table.setObjectName("statistic_table") + self.statistic_table.setObjectName(u"statistic_table") self.verticalLayout_7 = QVBoxLayout(self.statistic_table) - self.verticalLayout_7.setObjectName("verticalLayout_7") + self.verticalLayout_7.setObjectName(u"verticalLayout_7") self.statistics_table = QTableWidget(self.statistic_table) - if self.statistics_table.columnCount() < 3: + if (self.statistics_table.columnCount() < 3): self.statistics_table.setColumnCount(3) __qtablewidgetitem5 = QTableWidgetItem() self.statistics_table.setHorizontalHeaderItem(0, __qtablewidgetitem5) @@ -327,10 +309,8 @@ class Ui_Dialog(object): self.statistics_table.setHorizontalHeaderItem(1, __qtablewidgetitem6) __qtablewidgetitem7 = QTableWidgetItem() self.statistics_table.setHorizontalHeaderItem(2, __qtablewidgetitem7) - self.statistics_table.setObjectName("statistics_table") - sizePolicy.setHeightForWidth( - self.statistics_table.sizePolicy().hasHeightForWidth() - ) + self.statistics_table.setObjectName(u"statistics_table") + sizePolicy.setHeightForWidth(self.statistics_table.sizePolicy().hasHeightForWidth()) self.statistics_table.setSizePolicy(sizePolicy) self.statistics_table.setMaximumSize(QSize(16777215, 16777215)) self.statistics_table.setFocusPolicy(Qt.NoFocus) @@ -340,35 +320,36 @@ class Ui_Dialog(object): self.statistics_table.horizontalHeader().setCascadingSectionResizes(True) self.statistics_table.horizontalHeader().setMinimumSectionSize(40) self.statistics_table.horizontalHeader().setDefaultSectionSize(80) - self.statistics_table.horizontalHeader().setProperty("showSortIndicator", True) + self.statistics_table.horizontalHeader().setProperty(u"showSortIndicator", True) self.statistics_table.horizontalHeader().setStretchLastSection(False) self.statistics_table.verticalHeader().setStretchLastSection(True) self.verticalLayout_7.addWidget(self.statistics_table) self.dataLayout = QHBoxLayout() - self.dataLayout.setObjectName("dataLayout") + self.dataLayout.setObjectName(u"dataLayout") self.verticalLayout_7.addLayout(self.dataLayout) self.tabWidget_3.addTab(self.statistic_table, "") self.graph_table = QWidget() - self.graph_table.setObjectName("graph_table") + self.graph_table.setObjectName(u"graph_table") self.tabWidget_3.addTab(self.graph_table, "") self.verticalLayout_8.addWidget(self.tabWidget_3) + self.horizontalLayout.addWidget(self.stats) self.stackedWidget_4.addWidget(self.apparatResult) self.bookresult = QWidget() - self.bookresult.setObjectName("bookresult") + self.bookresult.setObjectName(u"bookresult") sizePolicy.setHeightForWidth(self.bookresult.sizePolicy().hasHeightForWidth()) self.bookresult.setSizePolicy(sizePolicy) self.verticalLayout_2 = QVBoxLayout(self.bookresult) - self.verticalLayout_2.setObjectName("verticalLayout_2") + self.verticalLayout_2.setObjectName(u"verticalLayout_2") self.book_search_result = QTableWidget(self.bookresult) - if self.book_search_result.columnCount() < 3: + if (self.book_search_result.columnCount() < 3): self.book_search_result.setColumnCount(3) __qtablewidgetitem8 = QTableWidgetItem() self.book_search_result.setHorizontalHeaderItem(0, __qtablewidgetitem8) @@ -376,7 +357,7 @@ class Ui_Dialog(object): self.book_search_result.setHorizontalHeaderItem(1, __qtablewidgetitem9) __qtablewidgetitem10 = QTableWidgetItem() self.book_search_result.setHorizontalHeaderItem(2, __qtablewidgetitem10) - self.book_search_result.setObjectName("book_search_result") + self.book_search_result.setObjectName(u"book_search_result") self.book_search_result.setFrameShadow(QFrame.Plain) self.book_search_result.setEditTriggers(QAbstractItemView.NoEditTriggers) self.book_search_result.setAlternatingRowColors(True) @@ -384,11 +365,9 @@ class Ui_Dialog(object): self.book_search_result.horizontalHeader().setCascadingSectionResizes(True) self.book_search_result.horizontalHeader().setMinimumSectionSize(100) self.book_search_result.horizontalHeader().setDefaultSectionSize(200) - self.book_search_result.horizontalHeader().setProperty( - "showSortIndicator", True - ) + self.book_search_result.horizontalHeader().setProperty(u"showSortIndicator", True) self.book_search_result.horizontalHeader().setStretchLastSection(True) - self.book_search_result.verticalHeader().setProperty("showSortIndicator", False) + self.book_search_result.verticalHeader().setProperty(u"showSortIndicator", False) self.verticalLayout_2.addWidget(self.book_search_result) @@ -396,9 +375,10 @@ class Ui_Dialog(object): self.verticalLayout_3.addWidget(self.stackedWidget_4) + self.verticalLayout.addLayout(self.verticalLayout_3) - # if QT_CONFIG(shortcut) +#if QT_CONFIG(shortcut) self.label_18.setBuddy(self.box_dauerapp) self.label_15.setBuddy(self.check_deletable) self.label_11.setBuddy(self.box_person) @@ -408,7 +388,7 @@ class Ui_Dialog(object): self.label_16.setBuddy(self.box_fach) self.label_25.setBuddy(self.search_by_signature) self.label_26.setBuddy(self.search_by_title) - # endif // QT_CONFIG(shortcut) +#endif // QT_CONFIG(shortcut) QWidget.setTabOrder(self.box_appnrs, self.box_person) QWidget.setTabOrder(self.box_person, self.box_fach) QWidget.setTabOrder(self.box_fach, self.check_deletable) @@ -426,118 +406,58 @@ class Ui_Dialog(object): self.stackedWidget_4.setCurrentIndex(0) self.tabWidget_3.setCurrentIndex(0) - QMetaObject.connectSlotsByName(Dialog) + QMetaObject.connectSlotsByName(Dialog) # setupUi def retranslateUi(self, Dialog): - Dialog.setWindowTitle(QCoreApplication.translate("Dialog", "Dialog", None)) - self.label_18.setText(QCoreApplication.translate("Dialog", "Dauerapp:", None)) - self.label_15.setText( - QCoreApplication.translate("Dialog", "L\u00f6schbar", None) - ) - self.label_11.setText(QCoreApplication.translate("Dialog", "Person:", None)) - self.label_7.setText(QCoreApplication.translate("Dialog", "Appnr.:", None)) - self.label_17.setText( - QCoreApplication.translate("Dialog", "Endsemester:", None) - ) - self.label_19.setText( - QCoreApplication.translate("Dialog", "Erstellsemester:", None) - ) - self.label_16.setText(QCoreApplication.translate("Dialog", "Fach:", None)) + Dialog.setWindowTitle(QCoreApplication.translate("Dialog", u"Dialog", None)) + self.label_18.setText(QCoreApplication.translate("Dialog", u"Dauerapp:", None)) + self.label_15.setText(QCoreApplication.translate("Dialog", u"L\u00f6schbar", None)) + self.label_11.setText(QCoreApplication.translate("Dialog", u"Person:", None)) + self.label_7.setText(QCoreApplication.translate("Dialog", u"Appnr.:", None)) + self.label_17.setText(QCoreApplication.translate("Dialog", u"Endsemester:", None)) + self.label_19.setText(QCoreApplication.translate("Dialog", u"Erstellsemester:", None)) + self.label_16.setText(QCoreApplication.translate("Dialog", u"Fach:", None)) self.check_deletable.setText("") - self.btn_search.setText(QCoreApplication.translate("Dialog", "Suchen", None)) + self.btn_search.setText(QCoreApplication.translate("Dialog", u"Suchen", None)) self.db_err_message.setText("") - self.tabWidget_2.setTabText( - self.tabWidget_2.indexOf(self.tab_3), - QCoreApplication.translate("Dialog", "Statistik", None), - ) - # if QT_CONFIG(statustip) - self.search_by_signature.setStatusTip( - QCoreApplication.translate( - "Dialog", "Trunkierung mit * am Ende unterst\u00fctzt", None - ) - ) - # endif // QT_CONFIG(statustip) - self.label_25.setText(QCoreApplication.translate("Dialog", "Signatur", None)) - self.label_26.setText(QCoreApplication.translate("Dialog", "Titel", None)) - self.label.setText( - QCoreApplication.translate("Dialog", "Suche mit Enter starten", None) - ) + self.tabWidget_2.setTabText(self.tabWidget_2.indexOf(self.tab_3), QCoreApplication.translate("Dialog", u"Statistik", None)) +#if QT_CONFIG(statustip) + self.search_by_signature.setStatusTip(QCoreApplication.translate("Dialog", u"Trunkierung mit * am Ende unterst\u00fctzt", None)) +#endif // QT_CONFIG(statustip) + self.label_25.setText(QCoreApplication.translate("Dialog", u"Signatur", None)) + self.label_26.setText(QCoreApplication.translate("Dialog", u"Titel", None)) + self.label.setText(QCoreApplication.translate("Dialog", u"Suche mit Enter starten", None)) self.no_result.setText("") - self.tabWidget_2.setTabText( - self.tabWidget_2.indexOf(self.tab_4), - QCoreApplication.translate("Dialog", "Suchen", None), - ) - self.btn_del_select_apparats.setText( - QCoreApplication.translate("Dialog", "Ausgew\u00e4hlte L\u00f6schen", None) - ) - # if QT_CONFIG(statustip) - self.btn_notify_for_deletion.setStatusTip( - QCoreApplication.translate( - "Dialog", - "Zeigt f\u00fcr jeden ausgew\u00e4hlten Apparat eine eMail-Vorlage an", - None, - ) - ) - # endif // QT_CONFIG(statustip) - self.btn_notify_for_deletion.setText( - QCoreApplication.translate( - "Dialog", "Ausgew\u00e4hlte Benachrichtigen", None - ) - ) - self.btn_extendSelection.setText( - QCoreApplication.translate( - "Dialog", "Ausgew\u00e4hlte Verl\u00e4ngern", None - ) - ) + self.tabWidget_2.setTabText(self.tabWidget_2.indexOf(self.tab_4), QCoreApplication.translate("Dialog", u"Suchen", None)) + self.btn_del_select_apparats.setText(QCoreApplication.translate("Dialog", u"Ausgew\u00e4hlte L\u00f6schen", None)) +#if QT_CONFIG(statustip) + self.btn_notify_for_deletion.setStatusTip(QCoreApplication.translate("Dialog", u"Zeigt f\u00fcr jeden ausgew\u00e4hlten Apparat eine eMail-Vorlage an", None)) +#endif // QT_CONFIG(statustip) + self.btn_notify_for_deletion.setText(QCoreApplication.translate("Dialog", u"Ausgew\u00e4hlte Benachrichtigen", None)) + self.btn_extendSelection.setText(QCoreApplication.translate("Dialog", u"Ausgew\u00e4hlte Verl\u00e4ngern", None)) ___qtablewidgetitem = self.tableWidget.horizontalHeaderItem(1) - ___qtablewidgetitem.setText( - QCoreApplication.translate("Dialog", "Apparatsname", None) - ) + ___qtablewidgetitem.setText(QCoreApplication.translate("Dialog", u"Apparatsname", None)); ___qtablewidgetitem1 = self.tableWidget.horizontalHeaderItem(2) - ___qtablewidgetitem1.setText( - QCoreApplication.translate("Dialog", "Apparatsnummer", None) - ) + ___qtablewidgetitem1.setText(QCoreApplication.translate("Dialog", u"Apparatsnummer", None)); ___qtablewidgetitem2 = self.tableWidget.horizontalHeaderItem(3) - ___qtablewidgetitem2.setText( - QCoreApplication.translate("Dialog", "Person", None) - ) + ___qtablewidgetitem2.setText(QCoreApplication.translate("Dialog", u"Person", None)); ___qtablewidgetitem3 = self.tableWidget.horizontalHeaderItem(4) - ___qtablewidgetitem3.setText(QCoreApplication.translate("Dialog", "Fach", None)) + ___qtablewidgetitem3.setText(QCoreApplication.translate("Dialog", u"Fach", None)); ___qtablewidgetitem4 = self.statistics_table.horizontalHeaderItem(0) - ___qtablewidgetitem4.setText( - QCoreApplication.translate("Dialog", "Semester", None) - ) + ___qtablewidgetitem4.setText(QCoreApplication.translate("Dialog", u"Semester", None)); ___qtablewidgetitem5 = self.statistics_table.horizontalHeaderItem(1) - ___qtablewidgetitem5.setText( - QCoreApplication.translate("Dialog", "Zugang", None) - ) + ___qtablewidgetitem5.setText(QCoreApplication.translate("Dialog", u"Zugang", None)); ___qtablewidgetitem6 = self.statistics_table.horizontalHeaderItem(2) - ___qtablewidgetitem6.setText( - QCoreApplication.translate("Dialog", "Abgang", None) - ) - self.tabWidget_3.setTabText( - self.tabWidget_3.indexOf(self.statistic_table), - QCoreApplication.translate("Dialog", "Tabelle", None), - ) - self.tabWidget_3.setTabText( - self.tabWidget_3.indexOf(self.graph_table), - QCoreApplication.translate( - "Dialog", "Erstellte und gel\u00f6schte Semesterapparate", None - ), - ) + ___qtablewidgetitem6.setText(QCoreApplication.translate("Dialog", u"Abgang", None)); + self.tabWidget_3.setTabText(self.tabWidget_3.indexOf(self.statistic_table), QCoreApplication.translate("Dialog", u"Tabelle", None)) + self.tabWidget_3.setTabText(self.tabWidget_3.indexOf(self.graph_table), QCoreApplication.translate("Dialog", u"Erstellte und gel\u00f6schte Semesterapparate", None)) ___qtablewidgetitem7 = self.book_search_result.horizontalHeaderItem(0) - ___qtablewidgetitem7.setText( - QCoreApplication.translate("Dialog", "Titel", None) - ) + ___qtablewidgetitem7.setText(QCoreApplication.translate("Dialog", u"Titel", None)); ___qtablewidgetitem8 = self.book_search_result.horizontalHeaderItem(1) - ___qtablewidgetitem8.setText( - QCoreApplication.translate("Dialog", "Signatur", None) - ) + ___qtablewidgetitem8.setText(QCoreApplication.translate("Dialog", u"Signatur", None)); ___qtablewidgetitem9 = self.book_search_result.horizontalHeaderItem(2) - ___qtablewidgetitem9.setText( - QCoreApplication.translate("Dialog", "Apparat", None) - ) - + ___qtablewidgetitem9.setText(QCoreApplication.translate("Dialog", u"Apparat", None)); # retranslateUi +