From 233a6cfe68a87e9b0624f17a1773ccb79503f3da Mon Sep 17 00:00:00 2001
From: Jan Feil <11638228+jfeil@users.noreply.github.com>
Date: Wed, 3 May 2023 16:36:53 +0200
Subject: [PATCH] Add button to disable all MChoice before export and to change
font size of questions
---
res/regeltest_save.ui | 137 +++++++++++++++++++++++++--------------
src/dock_widgets.py | 2 +-
src/regeltestcreator.py | 10 +++
src/ui_regeltest_save.py | 124 ++++++++++++++++++++++-------------
4 files changed, 179 insertions(+), 94 deletions(-)
diff --git a/res/regeltest_save.ui b/res/regeltest_save.ui
index cdaa396..1e1c768 100644
--- a/res/regeltest_save.ui
+++ b/res/regeltest_save.ui
@@ -6,8 +6,8 @@
0
0
- 470
- 266
+ 760
+ 542
@@ -17,18 +17,14 @@
Save Regeltest
- -
-
-
-
-
-
-
+ -
+
+
+ Qt::StrongFocus
+
+
-
-
-
- Auswählen
-
-
+
@@ -40,14 +36,23 @@
- -
-
-
- Speicherort
-
+
-
+
+
+
-
+
+
+ -
+
+
+ Auswählen
+
+
+
+
- -
+
-
Qt::Horizontal
@@ -57,16 +62,28 @@
- -
-
-
- Qt::StrongFocus
+
-
+
+
+ Speicherort
-
-
-
-
-
-
+
+
+ -
+
+
+ true
+
+
+
+
+ 0
+ 0
+ 740
+ 142
+
+
+
-
@@ -76,14 +93,48 @@
- -
-
-
+
-
+
+
-
+
+
+ Alle Multiple-Choice aktivieren
+
+
+
+ -
+
+
+ Alle Multiple-Choice deaktivieren
+
+
+
+
+
+ -
+
+
+ pt
+
+
+ 9
+
+
+ 15
+
+
+ 11
+
+
+
+ -
+
+
-
-
+
-
-
+
Auswählen
@@ -92,24 +143,14 @@
- -
-
-
- true
+
-
+
+
+ Schriftgröße
-
-
-
- 0
- 0
- 450
- 69
-
-
-
- -
+
-
Qt::Vertical
diff --git a/src/dock_widgets.py b/src/dock_widgets.py
index 4cd32a4..27879f7 100644
--- a/src/dock_widgets.py
+++ b/src/dock_widgets.py
@@ -69,7 +69,7 @@ def create_regeltest(self):
selected_questions=selected_questions)
db.add_object(regeltest)
document_builder.create_document(selected_questions, output_path, settings.ui.title_edit.text(),
- icon=icon)
+ icon=icon, font_size=settings.ui.fontsize_spinBox.value())
QApplication.restoreOverrideCursor()
webbrowser.open_new(output_path)
diff --git a/src/regeltestcreator.py b/src/regeltestcreator.py
index 43de6b5..881a0d0 100644
--- a/src/regeltestcreator.py
+++ b/src/regeltestcreator.py
@@ -30,6 +30,7 @@ def add_question(self, question: Question):
item = QListWidgetItem(self)
item.setData(Qt.UserRole, question.signature)
item.setText(question.question)
+ item.setToolTip(question.question)
self.questions.append(question.signature)
def delete_selected_items(self):
@@ -117,6 +118,9 @@ def __init__(self, questions: List[Question], parent):
self.questions = questions
self.question_widgets: List[QuestionEditWidget] = []
+ self.ui.activate_mc_button.clicked.connect(lambda: self.change_all_mchoice(True))
+ self.ui.deactivate_mc_button.clicked.connect(lambda: self.change_all_mchoice(False))
+
self.ui.question_scrollable.setLayout(QVBoxLayout())
for question in self.questions:
@@ -124,6 +128,12 @@ def __init__(self, questions: List[Question], parent):
self.ui.question_scrollable.layout().addWidget(widget)
self.question_widgets += [widget]
+ def change_all_mchoice(self, value: bool):
+ for question in self.question_widgets:
+ if not question.ui.checkBox_multiplechoice.isEnabled():
+ continue
+ question.ui.checkBox_multiplechoice.setCheckState(Qt.Checked if value else Qt.Unchecked)
+
def open_icon(self):
file_name = QFileDialog.getOpenFileName(self, caption="Icon auswählen", filter="Icon file (*.jpg;*.png)")
if len(file_name) == 0 or file_name[0] == "":
diff --git a/src/ui_regeltest_save.py b/src/ui_regeltest_save.py
index a83fc6b..ca7bea4 100644
--- a/src/ui_regeltest_save.py
+++ b/src/ui_regeltest_save.py
@@ -13,49 +13,17 @@
from PySide6.QtWidgets import (QDialogButtonBox,
QGridLayout, QHBoxLayout, QLabel, QLineEdit,
QPushButton, QScrollArea, QSizePolicy, QSpacerItem,
- QWidget)
+ QSpinBox, QWidget)
+
class Ui_RegeltestSave(object):
def setupUi(self, RegeltestSave):
if not RegeltestSave.objectName():
RegeltestSave.setObjectName(u"RegeltestSave")
- RegeltestSave.resize(470, 266)
+ RegeltestSave.resize(760, 542)
RegeltestSave.setFocusPolicy(Qt.NoFocus)
self.gridLayout = QGridLayout(RegeltestSave)
self.gridLayout.setObjectName(u"gridLayout")
- self.widget = QWidget(RegeltestSave)
- self.widget.setObjectName(u"widget")
- self.horizontalLayout = QHBoxLayout(self.widget)
- self.horizontalLayout.setObjectName(u"horizontalLayout")
- self.icon_path_edit = QLineEdit(self.widget)
- self.icon_path_edit.setObjectName(u"icon_path_edit")
-
- self.horizontalLayout.addWidget(self.icon_path_edit)
-
- self.icon_edit_button = QPushButton(self.widget)
- self.icon_edit_button.setObjectName(u"icon_edit_button")
-
- self.horizontalLayout.addWidget(self.icon_edit_button)
-
- self.gridLayout.addWidget(self.widget, 1, 1, 1, 1)
-
- self.label = QLabel(RegeltestSave)
- self.label.setObjectName(u"label")
-
- self.gridLayout.addWidget(self.label, 0, 0, 1, 1)
-
- self.label_3 = QLabel(RegeltestSave)
- self.label_3.setObjectName(u"label_3")
-
- self.gridLayout.addWidget(self.label_3, 3, 0, 1, 1)
-
- self.buttonBox = QDialogButtonBox(RegeltestSave)
- self.buttonBox.setObjectName(u"buttonBox")
- self.buttonBox.setOrientation(Qt.Horizontal)
- self.buttonBox.setStandardButtons(QDialogButtonBox.Cancel | QDialogButtonBox.Ok)
-
- self.gridLayout.addWidget(self.buttonBox, 6, 0, 1, 2)
-
self.widget_3 = QWidget(RegeltestSave)
self.widget_3.setObjectName(u"widget_3")
self.widget_3.setFocusPolicy(Qt.StrongFocus)
@@ -66,12 +34,12 @@ def setupUi(self, RegeltestSave):
self.horizontalLayout_3.addWidget(self.title_edit)
- self.gridLayout.addWidget(self.widget_3, 0, 1, 1, 1)
+ self.gridLayout.addWidget(self.widget_3, 0, 2, 1, 1)
- self.label_2 = QLabel(RegeltestSave)
- self.label_2.setObjectName(u"label_2")
+ self.label = QLabel(RegeltestSave)
+ self.label.setObjectName(u"label")
- self.gridLayout.addWidget(self.label_2, 1, 0, 1, 1)
+ self.gridLayout.addWidget(self.label, 0, 0, 1, 1)
self.widget_2 = QWidget(RegeltestSave)
self.widget_2.setObjectName(u"widget_2")
@@ -87,21 +55,81 @@ def setupUi(self, RegeltestSave):
self.horizontalLayout_2.addWidget(self.output_edit_button)
- self.gridLayout.addWidget(self.widget_2, 3, 1, 1, 1)
+ self.gridLayout.addWidget(self.widget_2, 3, 2, 1, 1)
+
+ self.buttonBox = QDialogButtonBox(RegeltestSave)
+ self.buttonBox.setObjectName(u"buttonBox")
+ self.buttonBox.setOrientation(Qt.Horizontal)
+ self.buttonBox.setStandardButtons(QDialogButtonBox.Cancel | QDialogButtonBox.Ok)
+
+ self.gridLayout.addWidget(self.buttonBox, 9, 0, 1, 3)
+
+ self.label_3 = QLabel(RegeltestSave)
+ self.label_3.setObjectName(u"label_3")
+
+ self.gridLayout.addWidget(self.label_3, 3, 0, 1, 1)
self.scrollArea = QScrollArea(RegeltestSave)
self.scrollArea.setObjectName(u"scrollArea")
self.scrollArea.setWidgetResizable(True)
self.question_scrollable = QWidget()
self.question_scrollable.setObjectName(u"question_scrollable")
- self.question_scrollable.setGeometry(QRect(0, 0, 450, 69))
+ self.question_scrollable.setGeometry(QRect(0, 0, 740, 142))
self.scrollArea.setWidget(self.question_scrollable)
- self.gridLayout.addWidget(self.scrollArea, 5, 0, 1, 2)
+ self.gridLayout.addWidget(self.scrollArea, 8, 0, 1, 3)
+
+ self.label_2 = QLabel(RegeltestSave)
+ self.label_2.setObjectName(u"label_2")
+
+ self.gridLayout.addWidget(self.label_2, 1, 0, 1, 1)
+
+ self.horizontalLayout_4 = QHBoxLayout()
+ self.horizontalLayout_4.setObjectName(u"horizontalLayout_4")
+ self.activate_mc_button = QPushButton(RegeltestSave)
+ self.activate_mc_button.setObjectName(u"activate_mc_button")
+
+ self.horizontalLayout_4.addWidget(self.activate_mc_button)
+
+ self.deactivate_mc_button = QPushButton(RegeltestSave)
+ self.deactivate_mc_button.setObjectName(u"deactivate_mc_button")
+
+ self.horizontalLayout_4.addWidget(self.deactivate_mc_button)
+
+ self.gridLayout.addLayout(self.horizontalLayout_4, 6, 0, 1, 3)
+
+ self.fontsize_spinBox = QSpinBox(RegeltestSave)
+ self.fontsize_spinBox.setObjectName(u"fontsize_spinBox")
+ self.fontsize_spinBox.setMinimum(9)
+ self.fontsize_spinBox.setMaximum(15)
+ self.fontsize_spinBox.setValue(11)
+
+ self.gridLayout.addWidget(self.fontsize_spinBox, 4, 2, 1, 1)
+
+ self.widget = QWidget(RegeltestSave)
+ self.widget.setObjectName(u"widget")
+ self.horizontalLayout = QHBoxLayout(self.widget)
+ self.horizontalLayout.setObjectName(u"horizontalLayout")
+ self.icon_path_edit = QLineEdit(self.widget)
+ self.icon_path_edit.setObjectName(u"icon_path_edit")
+
+ self.horizontalLayout.addWidget(self.icon_path_edit)
+
+ self.icon_edit_button = QPushButton(self.widget)
+ self.icon_edit_button.setObjectName(u"icon_edit_button")
+
+ self.horizontalLayout.addWidget(self.icon_edit_button)
+
+ self.gridLayout.addWidget(self.widget, 1, 2, 1, 1)
+
+ self.label_4 = QLabel(RegeltestSave)
+ self.label_4.setObjectName(u"label_4")
+
+ self.gridLayout.addWidget(self.label_4, 4, 0, 1, 1)
self.verticalSpacer = QSpacerItem(20, 40, QSizePolicy.Minimum, QSizePolicy.Expanding)
- self.gridLayout.addItem(self.verticalSpacer, 4, 0, 1, 1)
+ self.gridLayout.addItem(self.verticalSpacer, 7, 0, 1, 1)
QWidget.setTabOrder(self.title_edit, self.icon_path_edit)
QWidget.setTabOrder(self.icon_path_edit, self.icon_edit_button)
@@ -119,10 +147,16 @@ def setupUi(self, RegeltestSave):
def retranslateUi(self, RegeltestSave):
RegeltestSave.setWindowTitle(QCoreApplication.translate("RegeltestSave", u"Save Regeltest", None))
- self.icon_edit_button.setText(QCoreApplication.translate("RegeltestSave", u"Ausw\u00e4hlen", None))
self.label.setText(QCoreApplication.translate("RegeltestSave", u"Titel", None))
+ self.output_edit_button.setText(QCoreApplication.translate("RegeltestSave", u"Ausw\u00e4hlen", None))
self.label_3.setText(QCoreApplication.translate("RegeltestSave", u"Speicherort", None))
self.label_2.setText(QCoreApplication.translate("RegeltestSave", u"Iconpfad", None))
- self.output_edit_button.setText(QCoreApplication.translate("RegeltestSave", u"Ausw\u00e4hlen", None))
+ self.activate_mc_button.setText(
+ QCoreApplication.translate("RegeltestSave", u"Alle Multiple-Choice aktivieren", None))
+ self.deactivate_mc_button.setText(
+ QCoreApplication.translate("RegeltestSave", u"Alle Multiple-Choice deaktivieren", None))
+ self.fontsize_spinBox.setSuffix(QCoreApplication.translate("RegeltestSave", u" pt", None))
+ self.icon_edit_button.setText(QCoreApplication.translate("RegeltestSave", u"Ausw\u00e4hlen", None))
+ self.label_4.setText(QCoreApplication.translate("RegeltestSave", u"Schriftgr\u00f6\u00dfe", None))
# retranslateUi