rebase codebase, delete trunk, move threads to backend

This commit is contained in:
2025-01-14 16:20:08 +01:00
parent fba652006f
commit 08cd18f3f1
106 changed files with 1604 additions and 1057 deletions

View File

@@ -22,7 +22,7 @@ class MessageCalendar(QtWidgets.QCalendarWidget):
def getMessages(self):
# Get the messages from the database
messages = Database().getAllMessages()
logger.debug(messages)
logger.debug("Got {} messages", len(messages))
self.setMessages(messages)
def deleteMessage(self, id):

View File

@@ -1,5 +1,19 @@
__all__ = [
"LoginWidget",
"RegisterWidget",
"StatusWidget",
"FilePicker",
"DataGraph",
"CalendarEntry",
"MessageCalendar",
"SearchStatisticPage",
"ElsaDialog",
"UserCreate",
"EditUser",
"EditProf",
"IconWidget",
]
__all__ = ["filepicker"]
from .collapse import StatusWidget
from .filepicker import FilePicker
from .graph import DataGraph
@@ -9,4 +23,5 @@ from .searchPage import SearchStatisticPage
from .elsa_main import ElsaDialog
from .admin_create_user import UserCreate
from .admin_edit_user import EditUser
from .admin_edit_prof import EditProf
from .admin_edit_prof import EditProf
from .iconLine import IconWidget

View File

@@ -1,10 +1,12 @@
from PyQt6 import QtWidgets, QtCore, QtGui
from PyQt6.QtCore import pyqtSignal
from .widget_sources.Ui_admin_create_user import Ui_Dialog
from src.backend import AdminCommands, Database
from src.backend import AdminCommands, Database
class UserCreate(QtWidgets.QDialog, Ui_Dialog):
admin_action_changed = pyqtSignal()
def __init__(self):
super(UserCreate, self).__init__()
self.setupUi(self)
@@ -18,7 +20,7 @@ class UserCreate(QtWidgets.QDialog, Ui_Dialog):
self.user_frame_userrole.setCurrentText("")
# Variables
def add_user(self):
username = self.user_create_frame_username.text()
password = self.user_create_frame_password.text()
@@ -38,9 +40,10 @@ class UserCreate(QtWidgets.QDialog, Ui_Dialog):
self.user_create_frame_username.clear()
self.user_create_frame_password.clear()
self.admin_action_changed.emit()
def launch():
app = QtWidgets.QApplication([])
window = UserCreate()
window.show()
app.exec()
app.exec()

View File

@@ -1,23 +1,24 @@
from .widget_sources.Ui_admin_edit_prof import Ui_Dialog#
from .widget_sources.Ui_admin_edit_prof import Ui_Dialog #
from PyQt6 import QtWidgets, QtCore
from PyQt6.QtCore import pyqtSignal
from src import logger
from src.logic import Prof
from src.backend import Database
class EditProf(QtWidgets.QDialog, Ui_Dialog):
def __init__(self):
super(EditProf, self).__init__()
self.setupUi(self)
#Variables
# Variables
self.db = Database()
self.edit_faculty_member_select_member.currentTextChanged.connect(
self.edit_faculty_member_set_data
)
self.update_faculty_member.clicked.connect(self.edit_faculty_member_action)
self.gather_data()
def gather_data(self):
self.add_faculty_member_data()
apparats = self.db.getApparatsByProf(
@@ -42,7 +43,7 @@ class EditProf(QtWidgets.QDialog, Ui_Dialog):
self.edit_faculty_member_select_member.addItems(names)
self.edit_faculty_member_select_member.addItem("")
self.edit_faculty_member_select_member.setCurrentText("")
def edit_faculty_member_set_data(self):
# get the selected member
name = self.edit_faculty_member_select_member.currentText()
@@ -66,7 +67,7 @@ class EditProf(QtWidgets.QDialog, Ui_Dialog):
if data.title is not None
else self.edit_faculty_member_title.setText("")
)
def edit_faculty_member_action(self):
def __gen_fullname(fname, lname, data):
if fname == "" and lname == "":
@@ -123,4 +124,4 @@ class EditProf(QtWidgets.QDialog, Ui_Dialog):
self.edit_faculty_member_new_surname.clear()
self.user_faculty_member_new_name.clear()
self.user_faculty_member_new_telnr.clear()
self.user_faculty_member_new_mail.clear()
self.user_faculty_member_new_mail.clear()

View File

@@ -1,10 +1,12 @@
from .widget_sources.Ui_admin_edit_user import Ui_Dialog
from PyQt6 import QtWidgets, QtCore
from PyQt6.QtCore import pyqtSignal
from src.backend import Database
from src.backend import AdminCommands
admin = AdminCommands()
class EditUser(QtWidgets.QDialog, Ui_Dialog):
def __init__(self):
super(EditUser, self).__init__()
@@ -12,7 +14,7 @@ class EditUser(QtWidgets.QDialog, Ui_Dialog):
self.btn_delete_user.clicked.connect(self.delete_user)
self.update_user.clicked.connect(self.update_user_data)
self.user_delete_frame_user_select.currentIndexChanged.connect(self.updateData)
#Variables
# Variables
self.db = Database()
self.users = self.db.getUsers()
for user in self.users:
@@ -56,7 +58,6 @@ class EditUser(QtWidgets.QDialog, Ui_Dialog):
self.user_edit_frame_new_password.clear()
self.user_edit_frame_role_select.setCurrentText("")
def delete_user(self):
if self.user_delete_confirm.isChecked():
username = self.user_delete_frame_user_select.currentText()

View File

@@ -1,4 +1,3 @@
from .widget_sources.Ui_calendar_entry import Ui_Dialog
from PyQt6 import QtWidgets, QtCore
from PyQt6.QtCore import pyqtSignal, QDate
@@ -76,7 +75,6 @@ class CalendarEntry(QtWidgets.QDialog, Ui_Dialog):
def launch_calendar_entry():
messages = Database().getMessages("2024-06-10")
app = QtWidgets.QApplication([])

View File

@@ -1,4 +1,3 @@
# import pysignal pyslot
from PyQt6.QtCore import pyqtSignal as Signal
from PyQt6.QtWidgets import (

View File

@@ -1,15 +0,0 @@
from PyQt6 import QtCore, QtGui, QtWidgets
class CollapsibleWidget(object):
pass
from PyQt6 import QtCore, QtGui, QtWidgets
class CollapsibleWidget(object):
from PyQt6 import QtCore, QtGui, QtWidgets
class CollapsibleWidget(object):

View File

@@ -5,12 +5,11 @@ from PyQt6 import QtCore, QtWidgets, QtGui
from PyQt6.QtGui import QRegularExpressionValidator
from PyQt6.QtCore import QDate
from src import Icon, logger
from src.backend import recreateElsaFile, Semester, Database
from src.backend import Semester, Database
from src.logic import elsa_word_to_csv, Prof
from src.ui import popus_confirm
from src.ui.dialogs import ElsaAddEntry
from src.ui.widgets import FilePicker
from src.ui.widgets import DataGraph
from src.ui.dialogs import ElsaAddEntry, popus_confirm
from src.ui.widgets import FilePicker, DataGraph
class ElsaDialog(QtWidgets.QDialog, Ui_Dialog):
def __init__(self):
@@ -137,7 +136,8 @@ class ElsaDialog(QtWidgets.QDialog, Ui_Dialog):
def elsa_context_menu(self, position):
menu = QtWidgets.QMenu()
# TODO: add functions
pass
pass
def elsa_table_entry(self):
data = ElsaAddEntry()
selected_row = self.table_elsa_list.currentRow()
@@ -157,7 +157,7 @@ class ElsaDialog(QtWidgets.QDialog, Ui_Dialog):
else:
data.search(pages=pages)
data.exec()
def add_new_elsa(self):
self.create_frame_elsa.setEnabled(True)
self.elsa_cancel_create.setEnabled(True)
@@ -196,7 +196,7 @@ class ElsaDialog(QtWidgets.QDialog, Ui_Dialog):
self.db.updateElsaApparat(elsa_id, prof, semester, date)
self.elsa_update.setEnabled(False)
self.cancel_elsa_creation()
def confirm_popup(self, message: str, title: str):
popup = popus_confirm(title=title)
popup.textEdit.setReadOnly(True)
@@ -225,7 +225,7 @@ class ElsaDialog(QtWidgets.QDialog, Ui_Dialog):
mail=self.newProf_mail.text(),
telnr=self.newProf_telnr.text(),
title=self.newProf_title.text(),
fullname=f"{prof.split(", ")[0]} {prof.split(", ")[1]}",
fullname=f"{prof.split(', ')[0]} {prof.split(', ')[1]}",
)
prof_id = self.db.getProfId(profdata)
logger.debug(profdata, prof_id)
@@ -443,7 +443,7 @@ class ElsaDialog(QtWidgets.QDialog, Ui_Dialog):
self.elsa_table.setRowCount(0)
elsa_apparats = self.db.getElsaApparats()
elsa_apparats = natsorted(elsa_apparats, key=lambda x: x[2], reverse=True)
# x = semester, y = number of apparats
# x = semester, y = number of apparats
for apparat in elsa_apparats:
data = self.insert_elsa_into_table(apparat)
@@ -474,10 +474,11 @@ class ElsaDialog(QtWidgets.QDialog, Ui_Dialog):
0, 1, QtWidgets.QTableWidgetItem(str(self.graph_data["y"][i]))
)
self.elsa_statistics.addTab(graph, "Graph")
def launch():
logger.debug("Launching Elsa Dialog")
app = QtWidgets.QApplication([])
window = ElsaDialog()
window.show()
app.exec()
app.exec()

View File

@@ -1,4 +1,3 @@
import random
from typing import Union
@@ -124,7 +123,7 @@ class DataGraph(QtWidgets.QWidget):
years.sort()
for year in years:
SoSe_year = f"SoSe{year}"
WiSe_year = f"WiSe{year}/{year+1}"
WiSe_year = f"WiSe{year}/{year + 1}"
if SoSe_year not in SoSe_data.keys():
SoSe_data[SoSe_year] = 0
if WiSe_year not in WiSe_data.keys():

View File

@@ -0,0 +1,28 @@
from .widget_sources.Ui_icon_widget import Ui_Dialog
from PyQt6 import QtWidgets, QtCore, QtGui
from PyQt6.QtCore import Qt
from src import logger
class IconWidget(QtWidgets.QWidget, Ui_Dialog):
def __init__(self, icon_name: str, icon_filename: str):
super(IconWidget, self).__init__(None)
self.setupUi(self)
self.btn_change_icon.clicked.connect(self.change_icon)
self.icon_filename_line.setText(icon_filename)
self.icon_name_settings.setText(icon_name)
def change_icon(self):
file_dialog = QtWidgets.QFileDialog()
file_dialog.setFileMode(QtWidgets.QFileDialog.FileMode.ExistingFile)
file_dialog.setNameFilter("Images (*.ico *.svg)")
if file_dialog.exec():
self.icon_filename_line.setText(
file_dialog.selectedFiles()[0].split("/")[-1]
)
logger.debug(
"Icon changed to: {}", file_dialog.selectedFiles()[0].split("/")[-1]
)
def return_data(self):
return self.icon_name_settings.text(), self.icon_filename_line.text()

View File

@@ -4,8 +4,7 @@ from PyQt6.QtCore import pyqtSignal
from src.backend import Database, Semester
from src import logger
from src.logic import custom_sort, Prof, sort_semesters_list
from src.ui import ApparatExtendDialog
from src.ui.dialogs import Mail_Dialog
from src.ui.dialogs import Mail_Dialog, ApparatExtendDialog
from src.ui.widgets import DataGraph, StatusWidget
from natsort import natsorted
@@ -129,7 +128,7 @@ class SearchStatisticPage(QtWidgets.QDialog, Ui_Dialog):
self.book_search_result.setItem(
0, 1, QtWidgets.QTableWidgetItem(book[0].signature)
)
# print(book[1])
# #print(book[1])
self.book_search_result.setItem(
0,
2,
@@ -170,7 +169,7 @@ class SearchStatisticPage(QtWidgets.QDialog, Ui_Dialog):
self.btn_notify_for_deletion.setEnabled(False)
def setStatisticTableSize(self):
# # print(self.statistics_table.size(), self.statistics_table.rowCount())
# # #print(self.statistics_table.size(), self.statistics_table.rowCount())
size = self.statistics_table.size()
h = size.height()
w = size.width()
@@ -286,7 +285,7 @@ class SearchStatisticPage(QtWidgets.QDialog, Ui_Dialog):
selected_apparats.append(self.tableWidget.item(i, 2).text())
selected_apparat_rows.append(i)
# delete all selected apparats
# # print(selected_apparats)
# # #print(selected_apparats)
logger.info(f"Deleting apparats: {selected_apparats}")
for apparat in selected_apparats:
self.db.deleteApparat(apparat, self.semester)
@@ -374,7 +373,7 @@ class SearchStatisticPage(QtWidgets.QDialog, Ui_Dialog):
# set the items 0 = clickable checkbox, 1 = appname, 2 = profname, 3 = fach
self.tableWidget.setItem(i, 0, QtWidgets.QTableWidgetItem(""))
self.tableWidget.setItem(i, 1, QtWidgets.QTableWidgetItem(data[i][1]))
#set tooltip for the apparat name
# set tooltip for the apparat name
self.tableWidget.item(i, 1).setToolTip(data[i][1])
self.tableWidget.setItem(i, 2, QtWidgets.QTableWidgetItem(str(data[i][4])))
self.tableWidget.setItem(i, 3, QtWidgets.QTableWidgetItem(data[i][2]))
@@ -439,12 +438,12 @@ class SearchStatisticPage(QtWidgets.QDialog, Ui_Dialog):
apparat = args[1]
if header == "deleted" and parent_depth == 2:
# TODO: warn message here
print("warning")
logger.warning("Semesterapparat wurde bereits gelöscht")
if parent_depth == 1:
# person selected case - open all apparats from this person in the tableWidget
self.tableWidget.setRowCount(0)
name = apparat.split("(")[0].strip()
prof_id = self.db.getProfId({"profname":name})
prof_id = self.db.getProfId({"profname": name})
apparats = self.db.getApparatsByProf(prof_id)
for app in apparats:
# set the items 0 = clickable checkbox, 1 = appname, 2 = profname, 3 = fach
@@ -472,13 +471,13 @@ class SearchStatisticPage(QtWidgets.QDialog, Ui_Dialog):
"Dieser Semesterapparat kann nicht gelöscht werden, da er bereits gelöscht wurde"
)
elif parent_depth == 2:
# print("depth", parent_depth)
# #print("depth", parent_depth)
# apparat selected case - open the apparat in the frame
self.apparat_open.emit(apparat)
return
def emit_signal(self, *args):
# print("emit_signal", *args)
# #print("emit_signal", *args)
self.apparat_open.emit(args[1])

View File

@@ -1,4 +1,3 @@
# Form implementation generated from reading ui file 'c:\Users\aky547\GitHub\SemesterapparatsManager\src\ui\widgets\widget_sources\admin_create_user.ui'
#
# Created by: PyQt6 UI code generator 6.7.1

View File

@@ -1,4 +1,3 @@
# Form implementation generated from reading ui file 'c:\Users\aky547\GitHub\SemesterapparatsManager\src\ui\widgets\widget_sources\admin_edit_prof.ui'
#
# Created by: PyQt6 UI code generator 6.7.1
@@ -27,10 +26,14 @@ class Ui_Dialog(object):
self.faculty_member_old_telnr.setObjectName("faculty_member_old_telnr")
self.gridLayout_2.addWidget(self.faculty_member_old_telnr, 1, 1, 1, 1)
self.edit_faculty_member_title = QtWidgets.QLineEdit(parent=Dialog)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Policy.Fixed, QtWidgets.QSizePolicy.Policy.Fixed)
sizePolicy = QtWidgets.QSizePolicy(
QtWidgets.QSizePolicy.Policy.Fixed, QtWidgets.QSizePolicy.Policy.Fixed
)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.edit_faculty_member_title.sizePolicy().hasHeightForWidth())
sizePolicy.setHeightForWidth(
self.edit_faculty_member_title.sizePolicy().hasHeightForWidth()
)
self.edit_faculty_member_title.setSizePolicy(sizePolicy)
self.edit_faculty_member_title.setFocusPolicy(QtCore.Qt.FocusPolicy.NoFocus)
self.edit_faculty_member_title.setReadOnly(True)
@@ -43,7 +46,9 @@ class Ui_Dialog(object):
self.label_3.setObjectName("label_3")
self.gridLayout_2.addWidget(self.label_3, 1, 0, 1, 1)
self.edit_faculty_member_select_member = QtWidgets.QComboBox(parent=Dialog)
self.edit_faculty_member_select_member.setObjectName("edit_faculty_member_select_member")
self.edit_faculty_member_select_member.setObjectName(
"edit_faculty_member_select_member"
)
self.gridLayout_2.addWidget(self.edit_faculty_member_select_member, 0, 1, 1, 1)
self.faculty_member_oldmail = QtWidgets.QLineEdit(parent=Dialog)
self.faculty_member_oldmail.setReadOnly(True)
@@ -57,7 +62,12 @@ class Ui_Dialog(object):
self.delete_faculty_member.setFocusPolicy(QtCore.Qt.FocusPolicy.NoFocus)
self.delete_faculty_member.setObjectName("delete_faculty_member")
self.horizontalLayout.addWidget(self.delete_faculty_member)
spacerItem = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Policy.Fixed, QtWidgets.QSizePolicy.Policy.Minimum)
spacerItem = QtWidgets.QSpacerItem(
40,
20,
QtWidgets.QSizePolicy.Policy.Fixed,
QtWidgets.QSizePolicy.Policy.Minimum,
)
self.horizontalLayout.addItem(spacerItem)
self.update_faculty_member = QtWidgets.QPushButton(parent=Dialog)
self.update_faculty_member.setFocusPolicy(QtCore.Qt.FocusPolicy.NoFocus)
@@ -81,10 +91,14 @@ class Ui_Dialog(object):
self.label_9.setObjectName("label_9")
self.gridLayout_3.addWidget(self.label_9, 4, 0, 1, 1)
self.edit_faculty_member_new_title = QtWidgets.QLineEdit(parent=Dialog)
self.edit_faculty_member_new_title.setObjectName("edit_faculty_member_new_title")
self.edit_faculty_member_new_title.setObjectName(
"edit_faculty_member_new_title"
)
self.gridLayout_3.addWidget(self.edit_faculty_member_new_title, 0, 1, 1, 1)
self.user_faculty_member_new_telnr = QtWidgets.QLineEdit(parent=Dialog)
self.user_faculty_member_new_telnr.setObjectName("user_faculty_member_new_telnr")
self.user_faculty_member_new_telnr.setObjectName(
"user_faculty_member_new_telnr"
)
self.gridLayout_3.addWidget(self.user_faculty_member_new_telnr, 3, 1, 1, 1)
self.label_8 = QtWidgets.QLabel(parent=Dialog)
self.label_8.setObjectName("label_8")
@@ -99,7 +113,9 @@ class Ui_Dialog(object):
self.user_faculty_member_new_name.setObjectName("user_faculty_member_new_name")
self.gridLayout_3.addWidget(self.user_faculty_member_new_name, 2, 1, 1, 1)
self.edit_faculty_member_new_surname = QtWidgets.QLineEdit(parent=Dialog)
self.edit_faculty_member_new_surname.setObjectName("edit_faculty_member_new_surname")
self.edit_faculty_member_new_surname.setObjectName(
"edit_faculty_member_new_surname"
)
self.gridLayout_3.addWidget(self.edit_faculty_member_new_surname, 1, 1, 1, 1)
self.label_5 = QtWidgets.QLabel(parent=Dialog)
self.label_5.setObjectName("label_5")
@@ -124,14 +140,28 @@ class Ui_Dialog(object):
self.retranslateUi(Dialog)
QtCore.QMetaObject.connectSlotsByName(Dialog)
Dialog.setTabOrder(self.edit_faculty_member_select_member, self.faculty_member_old_telnr)
Dialog.setTabOrder(
self.edit_faculty_member_select_member, self.faculty_member_old_telnr
)
Dialog.setTabOrder(self.faculty_member_old_telnr, self.faculty_member_oldmail)
Dialog.setTabOrder(self.faculty_member_oldmail, self.edit_faculty_member_new_title)
Dialog.setTabOrder(self.edit_faculty_member_new_title, self.edit_faculty_member_new_surname)
Dialog.setTabOrder(self.edit_faculty_member_new_surname, self.user_faculty_member_new_name)
Dialog.setTabOrder(self.user_faculty_member_new_name, self.user_faculty_member_new_telnr)
Dialog.setTabOrder(self.user_faculty_member_new_telnr, self.user_faculty_member_new_mail)
Dialog.setTabOrder(self.user_faculty_member_new_mail, self.edit_faculty_member_title)
Dialog.setTabOrder(
self.faculty_member_oldmail, self.edit_faculty_member_new_title
)
Dialog.setTabOrder(
self.edit_faculty_member_new_title, self.edit_faculty_member_new_surname
)
Dialog.setTabOrder(
self.edit_faculty_member_new_surname, self.user_faculty_member_new_name
)
Dialog.setTabOrder(
self.user_faculty_member_new_name, self.user_faculty_member_new_telnr
)
Dialog.setTabOrder(
self.user_faculty_member_new_telnr, self.user_faculty_member_new_mail
)
Dialog.setTabOrder(
self.user_faculty_member_new_mail, self.edit_faculty_member_title
)
def retranslateUi(self, Dialog):
_translate = QtCore.QCoreApplication.translate

View File

@@ -1,4 +1,3 @@
# Form implementation generated from reading ui file 'c:\Users\aky547\GitHub\SemesterapparatsManager\src\ui\widgets\widget_sources\admin_edit_user.ui'
#
# Created by: PyQt6 UI code generator 6.7.1
@@ -29,7 +28,9 @@ class Ui_Dialog(object):
self.user_edit_frame_new_password.setObjectName("user_edit_frame_new_password")
self.gridLayout.addWidget(self.user_edit_frame_new_password, 1, 1, 1, 1)
self.user_delete_frame_user_select = QtWidgets.QComboBox(parent=Dialog)
self.user_delete_frame_user_select.setObjectName("user_delete_frame_user_select")
self.user_delete_frame_user_select.setObjectName(
"user_delete_frame_user_select"
)
self.gridLayout.addWidget(self.user_delete_frame_user_select, 0, 1, 1, 1)
self.label_2 = QtWidgets.QLabel(parent=Dialog)
self.label_2.setObjectName("label_2")

View File

@@ -1,4 +1,3 @@
# Form implementation generated from reading ui file 'c:\Users\aky547\GitHub\SemesterapparatsManager\src\ui\widgets\widget_sources\calendar_entry.ui'
#
# Created by: PyQt6 UI code generator 6.7.1
@@ -23,10 +22,14 @@ class Ui_Dialog(object):
self.horizontalLayout.addWidget(self.label_14)
self.line_app_info = QtWidgets.QLineEdit(parent=Dialog)
self.line_app_info.setEnabled(True)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Policy.Fixed, QtWidgets.QSizePolicy.Policy.Fixed)
sizePolicy = QtWidgets.QSizePolicy(
QtWidgets.QSizePolicy.Policy.Fixed, QtWidgets.QSizePolicy.Policy.Fixed
)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.line_app_info.sizePolicy().hasHeightForWidth())
sizePolicy.setHeightForWidth(
self.line_app_info.sizePolicy().hasHeightForWidth()
)
self.line_app_info.setSizePolicy(sizePolicy)
self.line_app_info.setMaximumSize(QtCore.QSize(30, 16777215))
self.line_app_info.setFocusPolicy(QtCore.Qt.FocusPolicy.NoFocus)
@@ -39,10 +42,14 @@ class Ui_Dialog(object):
self.btn_delete_message.setObjectName("btn_delete_message")
self.horizontalLayout.addWidget(self.btn_delete_message)
self.spin_select_message = QtWidgets.QSpinBox(parent=Dialog)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Policy.Expanding, QtWidgets.QSizePolicy.Policy.Fixed)
sizePolicy = QtWidgets.QSizePolicy(
QtWidgets.QSizePolicy.Policy.Expanding, QtWidgets.QSizePolicy.Policy.Fixed
)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.spin_select_message.sizePolicy().hasHeightForWidth())
sizePolicy.setHeightForWidth(
self.spin_select_message.sizePolicy().hasHeightForWidth()
)
self.spin_select_message.setSizePolicy(sizePolicy)
self.spin_select_message.setMaximumSize(QtCore.QSize(500, 16777215))
self.spin_select_message.setMinimum(1)

View File

@@ -185,17 +185,29 @@ class Ui_Dialog(object):
self.verticalLayout_3.addItem(spacerItem4)
self.horizontalLayout_2.addLayout(self.verticalLayout_3)
self.verticalLayout.addWidget(self.create_frame_elsa)
self.results = QtWidgets.QFrame(parent=Dialog)
self.results.setFrameShape(QtWidgets.QFrame.Shape.StyledPanel)
self.results.setFrameShadow(QtWidgets.QFrame.Shadow.Raised)
self.results.setObjectName("results")
self.horizontalLayout_3 = QtWidgets.QHBoxLayout(self.results)
self.horizontalLayout_3.setObjectName("horizontalLayout_3")
self.media_table = QtWidgets.QFrame(parent=self.results)
self.media_table.setFrameShape(QtWidgets.QFrame.Shape.StyledPanel)
self.media_table.setFrameShadow(QtWidgets.QFrame.Shadow.Raised)
self.media_table.setObjectName("media_table")
self.verticalLayout_4 = QtWidgets.QVBoxLayout(self.media_table)
self.verticalLayout_4.setObjectName("verticalLayout_4")
self.horizontalLayout_6 = QtWidgets.QHBoxLayout()
self.horizontalLayout_6.setObjectName("horizontalLayout_6")
self.quote_entry = QtWidgets.QPushButton(parent=Dialog)
self.quote_entry = QtWidgets.QPushButton(parent=self.media_table)
self.quote_entry.setObjectName("quote_entry")
self.horizontalLayout_6.addWidget(self.quote_entry)
spacerItem5 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Policy.Expanding, QtWidgets.QSizePolicy.Policy.Minimum)
self.horizontalLayout_6.addItem(spacerItem5)
self.verticalLayout.addLayout(self.horizontalLayout_6)
self.verticalLayout_4.addLayout(self.horizontalLayout_6)
self.horizontalLayout_5 = QtWidgets.QHBoxLayout()
self.horizontalLayout_5.setObjectName("horizontalLayout_5")
self.table_elsa_list = QtWidgets.QTableWidget(parent=Dialog)
self.table_elsa_list = QtWidgets.QTableWidget(parent=self.media_table)
self.table_elsa_list.setFocusPolicy(QtCore.Qt.FocusPolicy.NoFocus)
self.table_elsa_list.setEditTriggers(QtWidgets.QAbstractItemView.EditTrigger.NoEditTriggers)
self.table_elsa_list.setSelectionBehavior(QtWidgets.QAbstractItemView.SelectionBehavior.SelectItems)
@@ -231,7 +243,16 @@ class Ui_Dialog(object):
self.table_elsa_list.horizontalHeader().setDefaultSectionSize(85)
self.table_elsa_list.horizontalHeader().setMinimumSectionSize(31)
self.horizontalLayout_5.addWidget(self.table_elsa_list)
self.elsa_statistics = QtWidgets.QTabWidget(parent=Dialog)
self.horizontalLayout_5.setStretch(0, 7)
self.verticalLayout_4.addLayout(self.horizontalLayout_5)
self.horizontalLayout_3.addWidget(self.media_table)
self.statistics = QtWidgets.QFrame(parent=self.results)
self.statistics.setFrameShape(QtWidgets.QFrame.Shape.StyledPanel)
self.statistics.setFrameShadow(QtWidgets.QFrame.Shadow.Raised)
self.statistics.setObjectName("statistics")
self.verticalLayout_5 = QtWidgets.QVBoxLayout(self.statistics)
self.verticalLayout_5.setObjectName("verticalLayout_5")
self.elsa_statistics = QtWidgets.QTabWidget(parent=self.statistics)
self.elsa_statistics.setObjectName("elsa_statistics")
self.tab = QtWidgets.QWidget()
self.tab.setObjectName("tab")
@@ -252,12 +273,12 @@ class Ui_Dialog(object):
self.elsa_statistics_table.horizontalHeader().setDefaultSectionSize(169)
self.horizontalLayout_7.addWidget(self.elsa_statistics_table)
self.elsa_statistics.addTab(self.tab, "")
self.horizontalLayout_5.addWidget(self.elsa_statistics)
self.horizontalLayout_5.setStretch(0, 7)
self.horizontalLayout_5.setStretch(1, 3)
self.verticalLayout.addLayout(self.horizontalLayout_5)
self.verticalLayout_5.addWidget(self.elsa_statistics)
self.horizontalLayout_3.addWidget(self.statistics)
self.verticalLayout.addWidget(self.results)
self.verticalLayout.setStretch(0, 1)
self.verticalLayout.setStretch(3, 2)
self.verticalLayout.setStretch(1, 1)
self.verticalLayout.setStretch(2, 2)
self.retranslateUi(Dialog)
self.elsa_statistics.setCurrentIndex(0)
@@ -277,12 +298,8 @@ class Ui_Dialog(object):
Dialog.setTabOrder(self.seperateEntries, self.check_file_elsa)
Dialog.setTabOrder(self.check_file_elsa, self.elsa_save)
Dialog.setTabOrder(self.elsa_save, self.elsa_update)
Dialog.setTabOrder(self.elsa_update, self.quote_entry)
Dialog.setTabOrder(self.quote_entry, self.elsa_statistics)
Dialog.setTabOrder(self.elsa_statistics, self.table_elsa_list)
Dialog.setTabOrder(self.table_elsa_list, self.elsa_table)
Dialog.setTabOrder(self.elsa_table, self.elsa_statistics_table)
Dialog.setTabOrder(self.elsa_statistics_table, self.dokument_list_elsa)
Dialog.setTabOrder(self.elsa_update, self.elsa_table)
Dialog.setTabOrder(self.elsa_table, self.dokument_list_elsa)
def retranslateUi(self, Dialog):
_translate = QtCore.QCoreApplication.translate

View File

@@ -0,0 +1,41 @@
# Form implementation generated from reading ui file 'c:\Users\aky547\GitHub\SemesterapparatsManager\src\ui\widgets\widget_sources\icon_widget.ui'
#
# Created by: PyQt6 UI code generator 6.7.1
#
# WARNING: Any manual changes made to this file will be lost when pyuic6 is
# run again. Do not edit this file unless you know what you are doing.
from PyQt6 import QtCore, QtGui, QtWidgets
class Ui_Dialog(object):
def setupUi(self, Dialog):
Dialog.setObjectName("Dialog")
Dialog.resize(400, 40)
self.horizontalLayout = QtWidgets.QHBoxLayout(Dialog)
self.horizontalLayout.setObjectName("horizontalLayout")
self.icon_name_settings = QtWidgets.QLabel(parent=Dialog)
self.icon_name_settings.setText("")
self.icon_name_settings.setObjectName("icon_name_settings")
self.horizontalLayout.addWidget(self.icon_name_settings)
self.icon_filename_line = QtWidgets.QLineEdit(parent=Dialog)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Policy.Maximum, QtWidgets.QSizePolicy.Policy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.icon_filename_line.sizePolicy().hasHeightForWidth())
self.icon_filename_line.setSizePolicy(sizePolicy)
self.icon_filename_line.setMinimumSize(QtCore.QSize(230, 0))
self.icon_filename_line.setObjectName("icon_filename_line")
self.horizontalLayout.addWidget(self.icon_filename_line)
self.btn_change_icon = QtWidgets.QToolButton(parent=Dialog)
self.btn_change_icon.setObjectName("btn_change_icon")
self.horizontalLayout.addWidget(self.btn_change_icon)
self.retranslateUi(Dialog)
QtCore.QMetaObject.connectSlotsByName(Dialog)
def retranslateUi(self, Dialog):
_translate = QtCore.QCoreApplication.translate
Dialog.setWindowTitle(_translate("Dialog", "Dialog"))
self.btn_change_icon.setText(_translate("Dialog", "..."))

View File

@@ -150,6 +150,10 @@ class Ui_Dialog(object):
self.apparatResult.setObjectName("apparatResult")
self.horizontalLayout = QtWidgets.QHBoxLayout(self.apparatResult)
self.horizontalLayout.setObjectName("horizontalLayout")
self.app_results = QtWidgets.QWidget(parent=self.apparatResult)
self.app_results.setObjectName("app_results")
self.verticalLayout_6 = QtWidgets.QVBoxLayout(self.app_results)
self.verticalLayout_6.setObjectName("verticalLayout_6")
self.verticalLayout_4 = QtWidgets.QVBoxLayout()
self.verticalLayout_4.setObjectName("verticalLayout_4")
self.horizontalLayout_7 = QtWidgets.QHBoxLayout()
@@ -157,17 +161,17 @@ class Ui_Dialog(object):
self.verticalLayout_5 = QtWidgets.QVBoxLayout()
self.verticalLayout_5.setObjectName("verticalLayout_5")
self.horizontalLayout_7.addLayout(self.verticalLayout_5)
self.btn_del_select_apparats = QtWidgets.QPushButton(parent=self.apparatResult)
self.btn_del_select_apparats = QtWidgets.QPushButton(parent=self.app_results)
self.btn_del_select_apparats.setFocusPolicy(QtCore.Qt.FocusPolicy.StrongFocus)
self.btn_del_select_apparats.setObjectName("btn_del_select_apparats")
self.horizontalLayout_7.addWidget(self.btn_del_select_apparats)
self.btn_notify_for_deletion = QtWidgets.QPushButton(parent=self.apparatResult)
self.btn_notify_for_deletion = QtWidgets.QPushButton(parent=self.app_results)
self.btn_notify_for_deletion.setObjectName("btn_notify_for_deletion")
self.horizontalLayout_7.addWidget(self.btn_notify_for_deletion)
spacerItem4 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Policy.Expanding, QtWidgets.QSizePolicy.Policy.Minimum)
self.horizontalLayout_7.addItem(spacerItem4)
self.verticalLayout_4.addLayout(self.horizontalLayout_7)
self.tableWidget = QtWidgets.QTableWidget(parent=self.apparatResult)
self.tableWidget = QtWidgets.QTableWidget(parent=self.app_results)
self.tableWidget.setFocusPolicy(QtCore.Qt.FocusPolicy.NoFocus)
self.tableWidget.setContextMenuPolicy(QtCore.Qt.ContextMenuPolicy.CustomContextMenu)
self.tableWidget.setEditTriggers(QtWidgets.QAbstractItemView.EditTrigger.NoEditTriggers)
@@ -186,13 +190,18 @@ class Ui_Dialog(object):
self.tableWidget.setHorizontalHeaderItem(4, item)
self.tableWidget.horizontalHeader().setStretchLastSection(True)
self.verticalLayout_4.addWidget(self.tableWidget)
self.horizontalLayout.addLayout(self.verticalLayout_4)
self.tabWidget_3 = QtWidgets.QTabWidget(parent=self.apparatResult)
self.verticalLayout_6.addLayout(self.verticalLayout_4)
self.horizontalLayout.addWidget(self.app_results)
self.stats = QtWidgets.QFrame(parent=self.apparatResult)
self.stats.setObjectName("stats")
self.verticalLayout_8 = QtWidgets.QVBoxLayout(self.stats)
self.verticalLayout_8.setObjectName("verticalLayout_8")
self.tabWidget_3 = QtWidgets.QTabWidget(parent=self.stats)
self.tabWidget_3.setObjectName("tabWidget_3")
self.statistic_table = QtWidgets.QWidget()
self.statistic_table.setObjectName("statistic_table")
self.verticalLayout_6 = QtWidgets.QVBoxLayout(self.statistic_table)
self.verticalLayout_6.setObjectName("verticalLayout_6")
self.verticalLayout_7 = QtWidgets.QVBoxLayout(self.statistic_table)
self.verticalLayout_7.setObjectName("verticalLayout_7")
self.statistics_table = QtWidgets.QTableWidget(parent=self.statistic_table)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Policy.Expanding, QtWidgets.QSizePolicy.Policy.Expanding)
sizePolicy.setHorizontalStretch(0)
@@ -219,17 +228,16 @@ class Ui_Dialog(object):
self.statistics_table.horizontalHeader().setSortIndicatorShown(True)
self.statistics_table.horizontalHeader().setStretchLastSection(False)
self.statistics_table.verticalHeader().setStretchLastSection(True)
self.verticalLayout_6.addWidget(self.statistics_table)
self.verticalLayout_7.addWidget(self.statistics_table)
self.dataLayout = QtWidgets.QHBoxLayout()
self.dataLayout.setObjectName("dataLayout")
self.verticalLayout_6.addLayout(self.dataLayout)
self.verticalLayout_7.addLayout(self.dataLayout)
self.tabWidget_3.addTab(self.statistic_table, "")
self.graph_table = QtWidgets.QWidget()
self.graph_table.setObjectName("graph_table")
self.tabWidget_3.addTab(self.graph_table, "")
self.horizontalLayout.addWidget(self.tabWidget_3)
self.horizontalLayout.setStretch(0, 55)
self.horizontalLayout.setStretch(1, 45)
self.verticalLayout_8.addWidget(self.tabWidget_3)
self.horizontalLayout.addWidget(self.stats)
self.stackedWidget_4.addWidget(self.apparatResult)
self.bookresult = QtWidgets.QWidget()
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Policy.Expanding, QtWidgets.QSizePolicy.Policy.Expanding)
@@ -283,10 +291,7 @@ class Ui_Dialog(object):
Dialog.setTabOrder(self.box_semester, self.box_erstellsemester)
Dialog.setTabOrder(self.box_erstellsemester, self.box_dauerapp)
Dialog.setTabOrder(self.box_dauerapp, self.btn_search)
Dialog.setTabOrder(self.btn_search, self.btn_del_select_apparats)
Dialog.setTabOrder(self.btn_del_select_apparats, self.btn_notify_for_deletion)
Dialog.setTabOrder(self.btn_notify_for_deletion, self.tabWidget_3)
Dialog.setTabOrder(self.tabWidget_3, self.book_search_result)
Dialog.setTabOrder(self.btn_search, self.book_search_result)
Dialog.setTabOrder(self.book_search_result, self.seach_by_signature)
Dialog.setTabOrder(self.seach_by_signature, self.search_by_title)
Dialog.setTabOrder(self.search_by_title, self.book_search)

View File

@@ -13,7 +13,7 @@
<property name="windowTitle">
<string>Dialog</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout" stretch="1,0,0,2">
<layout class="QVBoxLayout" name="verticalLayout" stretch="1,1,2">
<item>
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
@@ -403,160 +403,196 @@ hinzufügen</string>
</widget>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_6">
<item>
<widget class="QPushButton" name="quote_entry">
<property name="text">
<string> Eintrag zitieren </string>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer_2">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_5" stretch="7,3">
<item>
<widget class="QTableWidget" name="table_elsa_list">
<property name="focusPolicy">
<enum>Qt::NoFocus</enum>
</property>
<property name="editTriggers">
<set>QAbstractItemView::NoEditTriggers</set>
</property>
<property name="selectionBehavior">
<enum>QAbstractItemView::SelectItems</enum>
</property>
<attribute name="horizontalHeaderMinimumSectionSize">
<number>31</number>
</attribute>
<attribute name="horizontalHeaderDefaultSectionSize">
<number>85</number>
</attribute>
<column>
<property name="text">
<string>Autor(en) des Werks</string>
<widget class="QFrame" name="results">
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<layout class="QHBoxLayout" name="horizontalLayout_3">
<item>
<widget class="QFrame" name="media_table">
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="textAlignment">
<set>AlignLeading|AlignVCenter</set>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
</column>
<column>
<property name="text">
<string>Autor(en) des Beitrags</string>
</property>
<property name="textAlignment">
<set>AlignLeading|AlignVCenter</set>
</property>
</column>
<column>
<property name="text">
<string>Jahr</string>
</property>
</column>
<column>
<property name="text">
<string>Heft</string>
</property>
</column>
<column>
<property name="text">
<string>Auflage</string>
</property>
</column>
<column>
<property name="text">
<string>Titel des Werks</string>
</property>
</column>
<column>
<property name="text">
<string>Beitragstitel</string>
</property>
</column>
<column>
<property name="text">
<string>Seiten</string>
</property>
</column>
<column>
<property name="text">
<string>Ort</string>
</property>
</column>
<column>
<property name="text">
<string>Verlag</string>
</property>
</column>
<column>
<property name="text">
<string>Signatur</string>
</property>
</column>
<column>
<property name="text">
<string>Art</string>
</property>
</column>
</widget>
</item>
<item>
<widget class="QTabWidget" name="elsa_statistics">
<property name="currentIndex">
<number>0</number>
</property>
<widget class="QWidget" name="tab">
<attribute name="title">
<string>Tabelle</string>
</attribute>
<layout class="QHBoxLayout" name="horizontalLayout_7">
<layout class="QVBoxLayout" name="verticalLayout_4">
<item>
<widget class="QTableWidget" name="elsa_statistics_table">
<property name="focusPolicy">
<enum>Qt::NoFocus</enum>
<layout class="QHBoxLayout" name="horizontalLayout_6">
<item>
<widget class="QPushButton" name="quote_entry">
<property name="text">
<string> Eintrag zitieren </string>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer_2">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_5" stretch="7">
<item>
<widget class="QTableWidget" name="table_elsa_list">
<property name="focusPolicy">
<enum>Qt::NoFocus</enum>
</property>
<property name="editTriggers">
<set>QAbstractItemView::NoEditTriggers</set>
</property>
<property name="selectionBehavior">
<enum>QAbstractItemView::SelectItems</enum>
</property>
<attribute name="horizontalHeaderMinimumSectionSize">
<number>31</number>
</attribute>
<attribute name="horizontalHeaderDefaultSectionSize">
<number>85</number>
</attribute>
<column>
<property name="text">
<string>Autor(en) des Werks</string>
</property>
<property name="textAlignment">
<set>AlignLeading|AlignVCenter</set>
</property>
</column>
<column>
<property name="text">
<string>Autor(en) des Beitrags</string>
</property>
<property name="textAlignment">
<set>AlignLeading|AlignVCenter</set>
</property>
</column>
<column>
<property name="text">
<string>Jahr</string>
</property>
</column>
<column>
<property name="text">
<string>Heft</string>
</property>
</column>
<column>
<property name="text">
<string>Auflage</string>
</property>
</column>
<column>
<property name="text">
<string>Titel des Werks</string>
</property>
</column>
<column>
<property name="text">
<string>Beitragstitel</string>
</property>
</column>
<column>
<property name="text">
<string>Seiten</string>
</property>
</column>
<column>
<property name="text">
<string>Ort</string>
</property>
</column>
<column>
<property name="text">
<string>Verlag</string>
</property>
</column>
<column>
<property name="text">
<string>Signatur</string>
</property>
</column>
<column>
<property name="text">
<string>Art</string>
</property>
</column>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QFrame" name="statistics">
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<layout class="QVBoxLayout" name="verticalLayout_5">
<item>
<widget class="QTabWidget" name="elsa_statistics">
<property name="currentIndex">
<number>0</number>
</property>
<property name="horizontalScrollBarPolicy">
<enum>Qt::ScrollBarAlwaysOff</enum>
</property>
<property name="editTriggers">
<set>QAbstractItemView::NoEditTriggers</set>
</property>
<property name="textElideMode">
<enum>Qt::ElideMiddle</enum>
</property>
<attribute name="horizontalHeaderDefaultSectionSize">
<number>169</number>
</attribute>
<column>
<property name="text">
<string>Semester</string>
</property>
</column>
<column>
<property name="text">
<string>Zugang</string>
</property>
</column>
<widget class="QWidget" name="tab">
<attribute name="title">
<string>Tabelle</string>
</attribute>
<layout class="QHBoxLayout" name="horizontalLayout_7">
<item>
<widget class="QTableWidget" name="elsa_statistics_table">
<property name="focusPolicy">
<enum>Qt::NoFocus</enum>
</property>
<property name="horizontalScrollBarPolicy">
<enum>Qt::ScrollBarAlwaysOff</enum>
</property>
<property name="editTriggers">
<set>QAbstractItemView::NoEditTriggers</set>
</property>
<property name="textElideMode">
<enum>Qt::ElideMiddle</enum>
</property>
<attribute name="horizontalHeaderDefaultSectionSize">
<number>169</number>
</attribute>
<column>
<property name="text">
<string>Semester</string>
</property>
</column>
<column>
<property name="text">
<string>Zugang</string>
</property>
</column>
</widget>
</item>
</layout>
</widget>
</widget>
</item>
</layout>
</widget>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
</item>
</layout>
</widget>
@@ -577,11 +613,7 @@ hinzufügen</string>
<tabstop>check_file_elsa</tabstop>
<tabstop>elsa_save</tabstop>
<tabstop>elsa_update</tabstop>
<tabstop>quote_entry</tabstop>
<tabstop>elsa_statistics</tabstop>
<tabstop>table_elsa_list</tabstop>
<tabstop>elsa_table</tabstop>
<tabstop>elsa_statistics_table</tabstop>
<tabstop>dokument_list_elsa</tabstop>
</tabstops>
<resources/>

View File

@@ -0,0 +1,51 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>Dialog</class>
<widget class="QDialog" name="Dialog">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>400</width>
<height>40</height>
</rect>
</property>
<property name="windowTitle">
<string>Dialog</string>
</property>
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QLabel" name="icon_name_settings">
<property name="text">
<string/>
</property>
</widget>
</item>
<item>
<widget class="QLineEdit" name="icon_filename_line">
<property name="sizePolicy">
<sizepolicy hsizetype="Maximum" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>230</width>
<height>0</height>
</size>
</property>
</widget>
</item>
<item>
<widget class="QToolButton" name="btn_change_icon">
<property name="text">
<string>...</string>
</property>
</widget>
</item>
</layout>
</widget>
<resources/>
<connections/>
</ui>

View File

@@ -315,176 +315,188 @@
<number>0</number>
</property>
<widget class="QWidget" name="apparatResult">
<layout class="QHBoxLayout" name="horizontalLayout" stretch="55,45">
<layout class="QHBoxLayout" name="horizontalLayout" stretch="0,0">
<item>
<layout class="QVBoxLayout" name="verticalLayout_4">
<item>
<layout class="QHBoxLayout" name="horizontalLayout_7">
<item>
<layout class="QVBoxLayout" name="verticalLayout_5"/>
</item>
<item>
<widget class="QPushButton" name="btn_del_select_apparats">
<property name="focusPolicy">
<enum>Qt::StrongFocus</enum>
</property>
<property name="text">
<string>Ausgewählte Löschen</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="btn_notify_for_deletion">
<property name="statusTip">
<string>Zeigt für jeden ausgewählten Apparat eine eMail-Vorlage an</string>
</property>
<property name="text">
<string>Ausgewählte Benachrichtigen</string>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer_5">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
<item>
<widget class="QTableWidget" name="tableWidget">
<property name="focusPolicy">
<enum>Qt::NoFocus</enum>
</property>
<property name="contextMenuPolicy">
<enum>Qt::CustomContextMenu</enum>
</property>
<property name="editTriggers">
<set>QAbstractItemView::NoEditTriggers</set>
</property>
<property name="sortingEnabled">
<bool>true</bool>
</property>
<attribute name="horizontalHeaderStretchLastSection">
<bool>true</bool>
</attribute>
<column>
<property name="text">
<string/>
</property>
</column>
<column>
<property name="text">
<string>Apparatsname</string>
</property>
</column>
<column>
<property name="text">
<string>Apparatsnummer</string>
</property>
</column>
<column>
<property name="text">
<string>Person</string>
</property>
</column>
<column>
<property name="text">
<string>Fach</string>
</property>
</column>
</widget>
</item>
</layout>
<widget class="QWidget" name="app_results" native="true">
<layout class="QVBoxLayout" name="verticalLayout_6">
<item>
<layout class="QVBoxLayout" name="verticalLayout_4">
<item>
<layout class="QHBoxLayout" name="horizontalLayout_7">
<item>
<layout class="QVBoxLayout" name="verticalLayout_5"/>
</item>
<item>
<widget class="QPushButton" name="btn_del_select_apparats">
<property name="focusPolicy">
<enum>Qt::StrongFocus</enum>
</property>
<property name="text">
<string>Ausgewählte Löschen</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="btn_notify_for_deletion">
<property name="statusTip">
<string>Zeigt für jeden ausgewählten Apparat eine eMail-Vorlage an</string>
</property>
<property name="text">
<string>Ausgewählte Benachrichtigen</string>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer_5">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
<item>
<widget class="QTableWidget" name="tableWidget">
<property name="focusPolicy">
<enum>Qt::NoFocus</enum>
</property>
<property name="contextMenuPolicy">
<enum>Qt::CustomContextMenu</enum>
</property>
<property name="editTriggers">
<set>QAbstractItemView::NoEditTriggers</set>
</property>
<property name="sortingEnabled">
<bool>true</bool>
</property>
<attribute name="horizontalHeaderStretchLastSection">
<bool>true</bool>
</attribute>
<column>
<property name="text">
<string/>
</property>
</column>
<column>
<property name="text">
<string>Apparatsname</string>
</property>
</column>
<column>
<property name="text">
<string>Apparatsnummer</string>
</property>
</column>
<column>
<property name="text">
<string>Person</string>
</property>
</column>
<column>
<property name="text">
<string>Fach</string>
</property>
</column>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QTabWidget" name="tabWidget_3">
<property name="currentIndex">
<number>0</number>
</property>
<widget class="QWidget" name="statistic_table">
<attribute name="title">
<string>Tabelle</string>
</attribute>
<layout class="QVBoxLayout" name="verticalLayout_6">
<item>
<widget class="QTableWidget" name="statistics_table">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="maximumSize">
<size>
<width>16777215</width>
<height>16777215</height>
</size>
</property>
<property name="focusPolicy">
<enum>Qt::NoFocus</enum>
</property>
<property name="horizontalScrollBarPolicy">
<enum>Qt::ScrollBarAlwaysOff</enum>
</property>
<property name="editTriggers">
<set>QAbstractItemView::NoEditTriggers</set>
</property>
<property name="alternatingRowColors">
<bool>true</bool>
</property>
<attribute name="horizontalHeaderCascadingSectionResizes">
<bool>true</bool>
<widget class="QFrame" name="stats">
<layout class="QVBoxLayout" name="verticalLayout_8">
<item>
<widget class="QTabWidget" name="tabWidget_3">
<property name="currentIndex">
<number>0</number>
</property>
<widget class="QWidget" name="statistic_table">
<attribute name="title">
<string>Tabelle</string>
</attribute>
<attribute name="horizontalHeaderMinimumSectionSize">
<number>40</number>
</attribute>
<attribute name="horizontalHeaderDefaultSectionSize">
<number>80</number>
</attribute>
<attribute name="horizontalHeaderShowSortIndicator" stdset="0">
<bool>true</bool>
</attribute>
<attribute name="horizontalHeaderStretchLastSection">
<bool>false</bool>
</attribute>
<attribute name="verticalHeaderStretchLastSection">
<bool>true</bool>
</attribute>
<column>
<property name="text">
<string>Semester</string>
</property>
</column>
<column>
<property name="text">
<string>Zugang</string>
</property>
</column>
<column>
<property name="text">
<string>Abgang</string>
</property>
</column>
<layout class="QVBoxLayout" name="verticalLayout_7">
<item>
<widget class="QTableWidget" name="statistics_table">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="maximumSize">
<size>
<width>16777215</width>
<height>16777215</height>
</size>
</property>
<property name="focusPolicy">
<enum>Qt::NoFocus</enum>
</property>
<property name="horizontalScrollBarPolicy">
<enum>Qt::ScrollBarAlwaysOff</enum>
</property>
<property name="editTriggers">
<set>QAbstractItemView::NoEditTriggers</set>
</property>
<property name="alternatingRowColors">
<bool>true</bool>
</property>
<attribute name="horizontalHeaderCascadingSectionResizes">
<bool>true</bool>
</attribute>
<attribute name="horizontalHeaderMinimumSectionSize">
<number>40</number>
</attribute>
<attribute name="horizontalHeaderDefaultSectionSize">
<number>80</number>
</attribute>
<attribute name="horizontalHeaderShowSortIndicator" stdset="0">
<bool>true</bool>
</attribute>
<attribute name="horizontalHeaderStretchLastSection">
<bool>false</bool>
</attribute>
<attribute name="verticalHeaderStretchLastSection">
<bool>true</bool>
</attribute>
<column>
<property name="text">
<string>Semester</string>
</property>
</column>
<column>
<property name="text">
<string>Zugang</string>
</property>
</column>
<column>
<property name="text">
<string>Abgang</string>
</property>
</column>
</widget>
</item>
<item>
<layout class="QHBoxLayout" name="dataLayout"/>
</item>
</layout>
</widget>
</item>
<item>
<layout class="QHBoxLayout" name="dataLayout"/>
</item>
</layout>
</widget>
<widget class="QWidget" name="graph_table">
<attribute name="title">
<string>Erstellte und gelöschte Semesterapparate</string>
</attribute>
</widget>
<widget class="QWidget" name="graph_table">
<attribute name="title">
<string>Erstellte und gelöschte Semesterapparate</string>
</attribute>
</widget>
</widget>
</item>
</layout>
</widget>
</item>
</layout>
@@ -557,9 +569,6 @@
<tabstop>box_erstellsemester</tabstop>
<tabstop>box_dauerapp</tabstop>
<tabstop>btn_search</tabstop>
<tabstop>btn_del_select_apparats</tabstop>
<tabstop>btn_notify_for_deletion</tabstop>
<tabstop>tabWidget_3</tabstop>
<tabstop>book_search_result</tabstop>
<tabstop>seach_by_signature</tabstop>
<tabstop>search_by_title</tabstop>