excel2moodle 0.3.7__py3-none-any.whl → 0.4.1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -17,25 +17,24 @@ from PySide6.QtGui import (QAction, QBrush, QColor, QConicalGradient,
17
17
  QPainter, QPalette, QPixmap, QRadialGradient,
18
18
  QTransform)
19
19
  from PySide6.QtWidgets import (QAbstractItemView, QAbstractSpinBox, QApplication, QCheckBox,
20
- QDoubleSpinBox, QFormLayout, QFrame, QHBoxLayout,
21
- QHeaderView, QLabel, QMainWindow, QMenu,
22
- QMenuBar, QPushButton, QSizePolicy, QSpacerItem,
23
- QSpinBox, QStatusBar, QTextEdit, QToolBar,
24
- QTreeWidget, QTreeWidgetItem, QVBoxLayout, QWidget)
20
+ QDoubleSpinBox, QFormLayout, QFrame, QGraphicsView,
21
+ QGridLayout, QHeaderView, QLabel, QLayout,
22
+ QLineEdit, QMainWindow, QMenu, QMenuBar,
23
+ QPushButton, QSizePolicy, QSplitter, QStatusBar,
24
+ QTextEdit, QToolBar, QTreeWidget, QTreeWidgetItem,
25
+ QVBoxLayout, QWidget)
25
26
 
26
27
  class Ui_MoodleTestGenerator(object):
27
28
  def setupUi(self, MoodleTestGenerator):
28
29
  if not MoodleTestGenerator.objectName():
29
30
  MoodleTestGenerator.setObjectName(u"MoodleTestGenerator")
30
- MoodleTestGenerator.resize(936, 1198)
31
+ MoodleTestGenerator.resize(1101, 1010)
31
32
  icon = QIcon(QIcon.fromTheme(QIcon.ThemeIcon.DialogQuestion))
32
33
  MoodleTestGenerator.setWindowIcon(icon)
33
- self.actionInput_Spreadsheet = QAction(MoodleTestGenerator)
34
- self.actionInput_Spreadsheet.setObjectName(u"actionInput_Spreadsheet")
35
- icon1 = QIcon(QIcon.fromTheme(QIcon.ThemeIcon.DocumentOpen))
36
- self.actionInput_Spreadsheet.setIcon(icon1)
37
- self.actionOutput_Folder = QAction(MoodleTestGenerator)
38
- self.actionOutput_Folder.setObjectName(u"actionOutput_Folder")
34
+ self.actionSpreadsheet = QAction(MoodleTestGenerator)
35
+ self.actionSpreadsheet.setObjectName(u"actionSpreadsheet")
36
+ icon1 = QIcon(QIcon.fromTheme(u"document-open"))
37
+ self.actionSpreadsheet.setIcon(icon1)
39
38
  self.actionEquationChecker = QAction(MoodleTestGenerator)
40
39
  self.actionEquationChecker.setObjectName(u"actionEquationChecker")
41
40
  icon2 = QIcon(QIcon.fromTheme(QIcon.ThemeIcon.ToolsCheckSpelling))
@@ -44,98 +43,67 @@ class Ui_MoodleTestGenerator(object):
44
43
  self.actionParseAll.setObjectName(u"actionParseAll")
45
44
  icon3 = QIcon(QIcon.fromTheme(u"view-refresh"))
46
45
  self.actionParseAll.setIcon(icon3)
47
- self.actionPreviewQ = QAction(MoodleTestGenerator)
48
- self.actionPreviewQ.setObjectName(u"actionPreviewQ")
49
- icon4 = QIcon(QIcon.fromTheme(u"document-print-preview"))
50
- self.actionPreviewQ.setIcon(icon4)
51
- self.actionAbout = QAction(MoodleTestGenerator)
52
- self.actionAbout.setObjectName(u"actionAbout")
53
- icon5 = QIcon(QIcon.fromTheme(u"help-about"))
54
- self.actionAbout.setIcon(icon5)
55
46
  self.actionSetting = QAction(MoodleTestGenerator)
56
47
  self.actionSetting.setObjectName(u"actionSetting")
57
- icon6 = QIcon(QIcon.fromTheme(u"preferences-system"))
58
- self.actionSetting.setIcon(icon6)
48
+ icon4 = QIcon(QIcon.fromTheme(u"preferences-system"))
49
+ self.actionSetting.setIcon(icon4)
50
+ self.actionExport = QAction(MoodleTestGenerator)
51
+ self.actionExport.setObjectName(u"actionExport")
52
+ icon5 = QIcon(QIcon.fromTheme(QIcon.ThemeIcon.ApplicationExit))
53
+ self.actionExport.setIcon(icon5)
54
+ self.actionAbout = QAction(MoodleTestGenerator)
55
+ self.actionAbout.setObjectName(u"actionAbout")
56
+ icon6 = QIcon(QIcon.fromTheme(QIcon.ThemeIcon.HelpAbout))
57
+ self.actionAbout.setIcon(icon6)
58
+ self.actionDocumentation = QAction(MoodleTestGenerator)
59
+ self.actionDocumentation.setObjectName(u"actionDocumentation")
60
+ self.actionDocumentation.setIcon(icon6)
59
61
  self.mainWidget = QWidget(MoodleTestGenerator)
60
62
  self.mainWidget.setObjectName(u"mainWidget")
61
- self.verticalLayout = QVBoxLayout(self.mainWidget)
62
- self.verticalLayout.setObjectName(u"verticalLayout")
63
- self.horizontalLayout_2 = QHBoxLayout()
64
- self.horizontalLayout_2.setObjectName(u"horizontalLayout_2")
65
- self.horizontalLayout_2.setContentsMargins(-1, -1, -1, 14)
66
- self.verticalLayout_4 = QVBoxLayout()
63
+ self.verticalLayout_3 = QVBoxLayout(self.mainWidget)
64
+ self.verticalLayout_3.setObjectName(u"verticalLayout_3")
65
+ self.splitter_2 = QSplitter(self.mainWidget)
66
+ self.splitter_2.setObjectName(u"splitter_2")
67
+ self.splitter_2.setOrientation(Qt.Orientation.Vertical)
68
+ self.splitter_2.setHandleWidth(3)
69
+ self.splitter = QSplitter(self.splitter_2)
70
+ self.splitter.setObjectName(u"splitter")
71
+ self.splitter.setOrientation(Qt.Orientation.Horizontal)
72
+ self.splitter.setHandleWidth(3)
73
+ self.layoutWidget = QWidget(self.splitter)
74
+ self.layoutWidget.setObjectName(u"layoutWidget")
75
+ self.verticalLayout_4 = QVBoxLayout(self.layoutWidget)
67
76
  self.verticalLayout_4.setObjectName(u"verticalLayout_4")
68
- self.verticalLayout_4.setContentsMargins(3, -1, -1, -1)
69
- self.horizontalLayout = QHBoxLayout()
70
- self.horizontalLayout.setObjectName(u"horizontalLayout")
71
- self.checkBoxQuestionListSelectAll = QCheckBox(self.mainWidget)
72
- self.checkBoxQuestionListSelectAll.setObjectName(u"checkBoxQuestionListSelectAll")
73
-
74
- self.horizontalLayout.addWidget(self.checkBoxQuestionListSelectAll)
75
-
76
- self.horizontalSpacer_4 = QSpacerItem(20, 10, QSizePolicy.Policy.Fixed, QSizePolicy.Policy.Minimum)
77
-
78
- self.horizontalLayout.addItem(self.horizontalSpacer_4)
79
-
80
- self.line_4 = QFrame(self.mainWidget)
77
+ self.verticalLayout_4.setContentsMargins(0, 0, 4, 4)
78
+ self.gridLayout = QGridLayout()
79
+ self.gridLayout.setObjectName(u"gridLayout")
80
+ self.gridLayout.setVerticalSpacing(6)
81
+ self.line_4 = QFrame(self.layoutWidget)
81
82
  self.line_4.setObjectName(u"line_4")
82
83
  self.line_4.setFrameShape(QFrame.Shape.VLine)
83
84
  self.line_4.setFrameShadow(QFrame.Shadow.Sunken)
84
85
 
85
- self.horizontalLayout.addWidget(self.line_4)
86
-
87
- self.label = QLabel(self.mainWidget)
88
- self.label.setObjectName(u"label")
89
- font = QFont()
90
- font.setPointSize(14)
91
- self.label.setFont(font)
92
- self.label.setLayoutDirection(Qt.LayoutDirection.LeftToRight)
93
-
94
- self.horizontalLayout.addWidget(self.label)
86
+ self.gridLayout.addWidget(self.line_4, 1, 3, 1, 1)
95
87
 
96
- self.horizontalSpacer = QSpacerItem(20, 40, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum)
97
-
98
- self.horizontalLayout.addItem(self.horizontalSpacer)
99
-
100
-
101
- self.verticalLayout_4.addLayout(self.horizontalLayout)
102
-
103
- self.treeWidget = QTreeWidget(self.mainWidget)
104
- __qtreewidgetitem = QTreeWidgetItem()
105
- __qtreewidgetitem.setTextAlignment(2, Qt.AlignLeading|Qt.AlignVCenter);
106
- self.treeWidget.setHeaderItem(__qtreewidgetitem)
107
- self.treeWidget.setObjectName(u"treeWidget")
108
- self.treeWidget.setBaseSize(QSize(0, 60))
109
- self.treeWidget.setEditTriggers(QAbstractItemView.EditTrigger.NoEditTriggers)
110
- self.treeWidget.header().setCascadingSectionResizes(True)
111
- self.treeWidget.header().setMinimumSectionSize(8)
112
-
113
- self.verticalLayout_4.addWidget(self.treeWidget)
114
-
115
-
116
- self.horizontalLayout_2.addLayout(self.verticalLayout_4)
117
-
118
- self.verticalLayout_2 = QVBoxLayout()
119
- self.verticalLayout_2.setObjectName(u"verticalLayout_2")
120
- self.label_5 = QLabel(self.mainWidget)
121
- self.label_5.setObjectName(u"label_5")
122
- font1 = QFont()
123
- font1.setPointSize(15)
124
- self.label_5.setFont(font1)
88
+ self.checkBoxQuestionListSelectAll = QCheckBox(self.layoutWidget)
89
+ self.checkBoxQuestionListSelectAll.setObjectName(u"checkBoxQuestionListSelectAll")
125
90
 
126
- self.verticalLayout_2.addWidget(self.label_5)
91
+ self.gridLayout.addWidget(self.checkBoxQuestionListSelectAll, 1, 0, 1, 1)
127
92
 
128
- self.formLayout = QFormLayout()
129
- self.formLayout.setObjectName(u"formLayout")
130
- self.formLayout.setLabelAlignment(Qt.AlignmentFlag.AlignLeading|Qt.AlignmentFlag.AlignLeft|Qt.AlignmentFlag.AlignVCenter)
131
- self.formLayout.setFormAlignment(Qt.AlignmentFlag.AlignHCenter|Qt.AlignmentFlag.AlignTop)
132
- self.formLayout.setContentsMargins(5, 5, 5, 5)
133
- self.label_6 = QLabel(self.mainWidget)
134
- self.label_6.setObjectName(u"label_6")
93
+ self.questionCounter = QDoubleSpinBox(self.layoutWidget)
94
+ self.questionCounter.setObjectName(u"questionCounter")
95
+ self.questionCounter.setMaximumSize(QSize(120, 16777215))
96
+ font = QFont()
97
+ font.setPointSize(13)
98
+ self.questionCounter.setFont(font)
99
+ self.questionCounter.setReadOnly(True)
100
+ self.questionCounter.setButtonSymbols(QAbstractSpinBox.ButtonSymbols.NoButtons)
101
+ self.questionCounter.setDecimals(0)
102
+ self.questionCounter.setMaximum(300.000000000000000)
135
103
 
136
- self.formLayout.setWidget(0, QFormLayout.ItemRole.LabelRole, self.label_6)
104
+ self.gridLayout.addWidget(self.questionCounter, 1, 1, 1, 1)
137
105
 
138
- self.pointCounter = QDoubleSpinBox(self.mainWidget)
106
+ self.pointCounter = QDoubleSpinBox(self.layoutWidget)
139
107
  self.pointCounter.setObjectName(u"pointCounter")
140
108
  self.pointCounter.setEnabled(True)
141
109
  sizePolicy = QSizePolicy(QSizePolicy.Policy.Preferred, QSizePolicy.Policy.Fixed)
@@ -143,143 +111,161 @@ class Ui_MoodleTestGenerator(object):
143
111
  sizePolicy.setVerticalStretch(0)
144
112
  sizePolicy.setHeightForWidth(self.pointCounter.sizePolicy().hasHeightForWidth())
145
113
  self.pointCounter.setSizePolicy(sizePolicy)
114
+ self.pointCounter.setMaximumSize(QSize(120, 16777215))
146
115
  self.pointCounter.setBaseSize(QSize(190, 0))
147
- font2 = QFont()
148
- font2.setPointSize(13)
149
- self.pointCounter.setFont(font2)
116
+ font1 = QFont()
117
+ font1.setPointSize(13)
118
+ font1.setBold(False)
119
+ self.pointCounter.setFont(font1)
120
+ self.pointCounter.setLayoutDirection(Qt.LayoutDirection.LeftToRight)
150
121
  self.pointCounter.setAutoFillBackground(False)
151
122
  self.pointCounter.setInputMethodHints(Qt.InputMethodHint.ImhNone)
152
- self.pointCounter.setButtonSymbols(QAbstractSpinBox.ButtonSymbols.UpDownArrows)
123
+ self.pointCounter.setWrapping(False)
124
+ self.pointCounter.setAlignment(Qt.AlignmentFlag.AlignRight|Qt.AlignmentFlag.AlignTrailing|Qt.AlignmentFlag.AlignVCenter)
125
+ self.pointCounter.setReadOnly(True)
126
+ self.pointCounter.setButtonSymbols(QAbstractSpinBox.ButtonSymbols.NoButtons)
153
127
  self.pointCounter.setDecimals(1)
154
- self.pointCounter.setMaximum(999.899999999999977)
155
-
156
- self.formLayout.setWidget(0, QFormLayout.ItemRole.FieldRole, self.pointCounter)
157
-
158
- self.label_7 = QLabel(self.mainWidget)
159
- self.label_7.setObjectName(u"label_7")
160
-
161
- self.formLayout.setWidget(1, QFormLayout.ItemRole.LabelRole, self.label_7)
162
-
163
- self.questionCounter = QDoubleSpinBox(self.mainWidget)
164
- self.questionCounter.setObjectName(u"questionCounter")
165
- self.questionCounter.setFont(font2)
166
- self.questionCounter.setDecimals(0)
167
- self.questionCounter.setMaximum(300.000000000000000)
168
-
169
- self.formLayout.setWidget(1, QFormLayout.ItemRole.FieldRole, self.questionCounter)
170
-
171
-
172
- self.verticalLayout_2.addLayout(self.formLayout)
173
-
174
- self.line_3 = QFrame(self.mainWidget)
175
- self.line_3.setObjectName(u"line_3")
176
- self.line_3.setFrameShape(QFrame.Shape.HLine)
177
- self.line_3.setFrameShadow(QFrame.Shadow.Sunken)
178
-
179
- self.verticalLayout_2.addWidget(self.line_3)
180
-
181
- self.verticalSpacer = QSpacerItem(20, 40, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Expanding)
182
-
183
- self.verticalLayout_2.addItem(self.verticalSpacer)
128
+ self.pointCounter.setMaximum(9999.899999999999636)
184
129
 
185
- self.label_2 = QLabel(self.mainWidget)
186
- self.label_2.setObjectName(u"label_2")
187
- self.label_2.setFont(font)
188
- self.label_2.setLayoutDirection(Qt.LayoutDirection.LeftToRight)
130
+ self.gridLayout.addWidget(self.pointCounter, 1, 2, 1, 1)
189
131
 
190
- self.verticalLayout_2.addWidget(self.label_2)
132
+ self.buttonSpreadsheet = QPushButton(self.layoutWidget)
133
+ self.buttonSpreadsheet.setObjectName(u"buttonSpreadsheet")
191
134
 
192
- self.buttonSpreadSheet = QPushButton(self.mainWidget)
193
- self.buttonSpreadSheet.setObjectName(u"buttonSpreadSheet")
194
- #if QT_CONFIG(tooltip)
195
- self.buttonSpreadSheet.setToolTip(u"<html><head/><body><p>Select the Spreadsheet File with all the Questions inside</p></body></html>")
196
- #endif // QT_CONFIG(tooltip)
197
-
198
- self.verticalLayout_2.addWidget(self.buttonSpreadSheet)
199
-
200
- self.horizontalSpacer_2 = QSpacerItem(40, 20, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Expanding)
135
+ self.gridLayout.addWidget(self.buttonSpreadsheet, 0, 0, 1, 1)
201
136
 
202
- self.verticalLayout_2.addItem(self.horizontalSpacer_2)
137
+ self.buttonExport = QPushButton(self.layoutWidget)
138
+ self.buttonExport.setObjectName(u"buttonExport")
203
139
 
204
- self.line_2 = QFrame(self.mainWidget)
205
- self.line_2.setObjectName(u"line_2")
206
- self.line_2.setFrameShape(QFrame.Shape.HLine)
207
- self.line_2.setFrameShadow(QFrame.Shadow.Sunken)
140
+ self.gridLayout.addWidget(self.buttonExport, 0, 2, 1, 1)
208
141
 
209
- self.verticalLayout_2.addWidget(self.line_2)
210
142
 
211
- self.label_3 = QLabel(self.mainWidget)
212
- self.label_3.setObjectName(u"label_3")
213
- self.label_3.setFont(font)
143
+ self.verticalLayout_4.addLayout(self.gridLayout)
214
144
 
215
- self.verticalLayout_2.addWidget(self.label_3)
216
-
217
- self.formLayout_2 = QFormLayout()
218
- self.formLayout_2.setObjectName(u"formLayout_2")
219
- self.formLayout_2.setContentsMargins(5, 5, 5, 5)
220
- self.label_10 = QLabel(self.mainWidget)
221
- self.label_10.setObjectName(u"label_10")
145
+ self.treeWidget = QTreeWidget(self.layoutWidget)
146
+ __qtreewidgetitem = QTreeWidgetItem()
147
+ __qtreewidgetitem.setTextAlignment(2, Qt.AlignLeading|Qt.AlignVCenter);
148
+ self.treeWidget.setHeaderItem(__qtreewidgetitem)
149
+ self.treeWidget.setObjectName(u"treeWidget")
150
+ self.treeWidget.setBaseSize(QSize(0, 60))
151
+ self.treeWidget.setEditTriggers(QAbstractItemView.EditTrigger.NoEditTriggers)
152
+ self.treeWidget.header().setCascadingSectionResizes(True)
153
+ self.treeWidget.header().setMinimumSectionSize(8)
222
154
 
223
- self.formLayout_2.setWidget(0, QFormLayout.ItemRole.LabelRole, self.label_10)
155
+ self.verticalLayout_4.addWidget(self.treeWidget)
224
156
 
225
- self.spinBoxDefaultQVariant = QSpinBox(self.mainWidget)
226
- self.spinBoxDefaultQVariant.setObjectName(u"spinBoxDefaultQVariant")
157
+ self.splitter.addWidget(self.layoutWidget)
158
+ self.layoutWidget1 = QWidget(self.splitter)
159
+ self.layoutWidget1.setObjectName(u"layoutWidget1")
160
+ self.verticalLayout_2 = QVBoxLayout(self.layoutWidget1)
161
+ self.verticalLayout_2.setSpacing(0)
162
+ self.verticalLayout_2.setObjectName(u"verticalLayout_2")
163
+ self.verticalLayout_2.setSizeConstraint(QLayout.SizeConstraint.SetMinAndMaxSize)
164
+ self.verticalLayout_2.setContentsMargins(4, 0, 0, 4)
165
+ self.label = QLabel(self.layoutWidget1)
166
+ self.label.setObjectName(u"label")
167
+ font2 = QFont()
168
+ font2.setPointSize(13)
169
+ font2.setBold(False)
170
+ font2.setItalic(True)
171
+ self.label.setFont(font2)
172
+ self.label.setAlignment(Qt.AlignmentFlag.AlignCenter)
227
173
 
228
- self.formLayout_2.setWidget(0, QFormLayout.ItemRole.FieldRole, self.spinBoxDefaultQVariant)
174
+ self.verticalLayout_2.addWidget(self.label)
229
175
 
230
- self.label_9 = QLabel(self.mainWidget)
231
- self.label_9.setObjectName(u"label_9")
176
+ self.formLayout_3 = QFormLayout()
177
+ self.formLayout_3.setObjectName(u"formLayout_3")
178
+ self.formLayout_3.setLabelAlignment(Qt.AlignmentFlag.AlignLeading|Qt.AlignmentFlag.AlignLeft|Qt.AlignmentFlag.AlignVCenter)
179
+ self.formLayout_3.setHorizontalSpacing(20)
180
+ self.formLayout_3.setVerticalSpacing(5)
181
+ self.formLayout_3.setContentsMargins(10, 6, 10, -1)
182
+ self.questionNameLabel = QLabel(self.layoutWidget1)
183
+ self.questionNameLabel.setObjectName(u"questionNameLabel")
232
184
 
233
- self.formLayout_2.setWidget(1, QFormLayout.ItemRole.LabelRole, self.label_9)
185
+ self.formLayout_3.setWidget(0, QFormLayout.ItemRole.LabelRole, self.questionNameLabel)
234
186
 
235
- self.checkBoxIncludeCategories = QCheckBox(self.mainWidget)
236
- self.checkBoxIncludeCategories.setObjectName(u"checkBoxIncludeCategories")
187
+ self.qNameLine = QLineEdit(self.layoutWidget1)
188
+ self.qNameLine.setObjectName(u"qNameLine")
189
+ self.qNameLine.setReadOnly(True)
237
190
 
238
- self.formLayout_2.setWidget(1, QFormLayout.ItemRole.FieldRole, self.checkBoxIncludeCategories)
191
+ self.formLayout_3.setWidget(0, QFormLayout.ItemRole.FieldRole, self.qNameLine)
239
192
 
240
193
 
241
- self.verticalLayout_2.addLayout(self.formLayout_2)
194
+ self.verticalLayout_2.addLayout(self.formLayout_3)
242
195
 
243
- self.buttonTestGen = QPushButton(self.mainWidget)
244
- self.buttonTestGen.setObjectName(u"buttonTestGen")
245
- self.buttonTestGen.setEnabled(False)
246
- #if QT_CONFIG(tooltip)
247
- self.buttonTestGen.setToolTip(u"<html><head/><body><p>exporst all selected questions to the test File</p></body></html>")
248
- #endif // QT_CONFIG(tooltip)
196
+ self.questionText = QLabel(self.layoutWidget1)
197
+ self.questionText.setObjectName(u"questionText")
198
+ self.questionText.setWordWrap(True)
199
+ self.questionText.setMargin(10)
249
200
 
250
- self.verticalLayout_2.addWidget(self.buttonTestGen)
201
+ self.verticalLayout_2.addWidget(self.questionText)
251
202
 
252
- self.line = QFrame(self.mainWidget)
253
- self.line.setObjectName(u"line")
254
- self.line.setFrameShape(QFrame.Shape.VLine)
255
- self.line.setFrameShadow(QFrame.Shadow.Sunken)
203
+ self.line_6 = QFrame(self.layoutWidget1)
204
+ self.line_6.setObjectName(u"line_6")
205
+ self.line_6.setFrameShape(QFrame.Shape.HLine)
206
+ self.line_6.setFrameShadow(QFrame.Shadow.Sunken)
256
207
 
257
- self.verticalLayout_2.addWidget(self.line)
208
+ self.verticalLayout_2.addWidget(self.line_6)
258
209
 
210
+ self.answersLabel = QLabel(self.layoutWidget1)
211
+ self.answersLabel.setObjectName(u"answersLabel")
212
+ self.answersLabel.setMargin(10)
259
213
 
260
- self.horizontalLayout_2.addLayout(self.verticalLayout_2)
214
+ self.verticalLayout_2.addWidget(self.answersLabel)
261
215
 
216
+ self.graphicsView = QGraphicsView(self.layoutWidget1)
217
+ self.graphicsView.setObjectName(u"graphicsView")
218
+ brush = QBrush(QColor(231, 243, 245, 255))
219
+ brush.setStyle(Qt.BrushStyle.SolidPattern)
220
+ self.graphicsView.setBackgroundBrush(brush)
262
221
 
263
- self.verticalLayout.addLayout(self.horizontalLayout_2)
222
+ self.verticalLayout_2.addWidget(self.graphicsView)
264
223
 
265
- self.label_4 = QLabel(self.mainWidget)
224
+ self.splitter.addWidget(self.layoutWidget1)
225
+ self.splitter_2.addWidget(self.splitter)
226
+ self.layoutWidget2 = QWidget(self.splitter_2)
227
+ self.layoutWidget2.setObjectName(u"layoutWidget2")
228
+ self.verticalLayout = QVBoxLayout(self.layoutWidget2)
229
+ self.verticalLayout.setObjectName(u"verticalLayout")
230
+ self.verticalLayout.setSizeConstraint(QLayout.SizeConstraint.SetMinimumSize)
231
+ self.verticalLayout.setContentsMargins(0, 3, 0, 0)
232
+ self.label_4 = QLabel(self.layoutWidget2)
266
233
  self.label_4.setObjectName(u"label_4")
234
+ sizePolicy1 = QSizePolicy(QSizePolicy.Policy.Preferred, QSizePolicy.Policy.Minimum)
235
+ sizePolicy1.setHorizontalStretch(0)
236
+ sizePolicy1.setVerticalStretch(0)
237
+ sizePolicy1.setHeightForWidth(self.label_4.sizePolicy().hasHeightForWidth())
238
+ self.label_4.setSizePolicy(sizePolicy1)
239
+ self.label_4.setMinimumSize(QSize(0, 20))
240
+ self.label_4.setMaximumSize(QSize(16777215, 20))
241
+ self.label_4.setBaseSize(QSize(0, 20))
242
+ self.label_4.setIndent(8)
267
243
 
268
244
  self.verticalLayout.addWidget(self.label_4)
269
245
 
270
- self.loggerWindow = QTextEdit(self.mainWidget)
246
+ self.loggerWindow = QTextEdit(self.layoutWidget2)
271
247
  self.loggerWindow.setObjectName(u"loggerWindow")
248
+ self.loggerWindow.setEnabled(True)
249
+ sizePolicy2 = QSizePolicy(QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Expanding)
250
+ sizePolicy2.setHorizontalStretch(0)
251
+ sizePolicy2.setVerticalStretch(0)
252
+ sizePolicy2.setHeightForWidth(self.loggerWindow.sizePolicy().hasHeightForWidth())
253
+ self.loggerWindow.setSizePolicy(sizePolicy2)
272
254
  self.loggerWindow.setMinimumSize(QSize(0, 0))
273
- self.loggerWindow.setMaximumSize(QSize(16777215, 373))
274
- self.loggerWindow.setBaseSize(QSize(0, 30))
255
+ self.loggerWindow.setMaximumSize(QSize(16777215, 800))
256
+ self.loggerWindow.setBaseSize(QSize(0, 29))
275
257
  self.loggerWindow.setTextInteractionFlags(Qt.TextInteractionFlag.NoTextInteraction)
276
258
 
277
259
  self.verticalLayout.addWidget(self.loggerWindow)
278
260
 
261
+ self.splitter_2.addWidget(self.layoutWidget2)
262
+
263
+ self.verticalLayout_3.addWidget(self.splitter_2)
264
+
279
265
  MoodleTestGenerator.setCentralWidget(self.mainWidget)
280
266
  self.menubar = QMenuBar(MoodleTestGenerator)
281
267
  self.menubar.setObjectName(u"menubar")
282
- self.menubar.setGeometry(QRect(0, 0, 936, 33))
268
+ self.menubar.setGeometry(QRect(0, 0, 1101, 33))
283
269
  self.menuFile = QMenu(self.menubar)
284
270
  self.menuFile.setObjectName(u"menuFile")
285
271
  self.menuTools = QMenu(self.menubar)
@@ -290,31 +276,29 @@ class Ui_MoodleTestGenerator(object):
290
276
  self.statusbar = QStatusBar(MoodleTestGenerator)
291
277
  self.statusbar.setObjectName(u"statusbar")
292
278
  MoodleTestGenerator.setStatusBar(self.statusbar)
293
- self.toolBar = QToolBar(MoodleTestGenerator)
294
- self.toolBar.setObjectName(u"toolBar")
295
- MoodleTestGenerator.addToolBar(Qt.ToolBarArea.TopToolBarArea, self.toolBar)
296
279
  self.toolBar_3 = QToolBar(MoodleTestGenerator)
297
280
  self.toolBar_3.setObjectName(u"toolBar_3")
298
281
  MoodleTestGenerator.addToolBar(Qt.ToolBarArea.TopToolBarArea, self.toolBar_3)
299
- self.toolBar_2 = QToolBar(MoodleTestGenerator)
300
- self.toolBar_2.setObjectName(u"toolBar_2")
301
- MoodleTestGenerator.addToolBar(Qt.ToolBarArea.TopToolBarArea, self.toolBar_2)
282
+ self.toolBar = QToolBar(MoodleTestGenerator)
283
+ self.toolBar.setObjectName(u"toolBar")
284
+ MoodleTestGenerator.addToolBar(Qt.ToolBarArea.TopToolBarArea, self.toolBar)
302
285
 
303
286
  self.menubar.addAction(self.menuFile.menuAction())
304
287
  self.menubar.addAction(self.menuTools.menuAction())
305
288
  self.menubar.addAction(self.menuHelp.menuAction())
306
- self.menuFile.addAction(self.actionInput_Spreadsheet)
307
- self.menuTools.addAction(self.actionEquationChecker)
289
+ self.menuFile.addAction(self.actionExport)
290
+ self.menuFile.addAction(self.actionSpreadsheet)
308
291
  self.menuTools.addAction(self.actionParseAll)
309
- self.menuTools.addAction(self.actionPreviewQ)
292
+ self.menuTools.addAction(self.actionEquationChecker)
310
293
  self.menuTools.addAction(self.actionSetting)
311
- self.toolBar.addAction(self.actionInput_Spreadsheet)
312
- self.toolBar.addAction(self.actionParseAll)
313
- self.toolBar.addSeparator()
294
+ self.menuHelp.addAction(self.actionAbout)
295
+ self.menuHelp.addAction(self.actionDocumentation)
314
296
  self.toolBar_3.addAction(self.actionEquationChecker)
315
- self.toolBar_3.addAction(self.actionPreviewQ)
316
- self.toolBar_2.addAction(self.actionAbout)
317
- self.toolBar_2.addAction(self.actionSetting)
297
+ self.toolBar_3.addAction(self.actionDocumentation)
298
+ self.toolBar_3.addAction(self.actionAbout)
299
+ self.toolBar.addAction(self.actionSpreadsheet)
300
+ self.toolBar.addAction(self.actionParseAll)
301
+ self.toolBar.addAction(self.actionExport)
318
302
 
319
303
  self.retranslateUi(MoodleTestGenerator)
320
304
 
@@ -323,53 +307,64 @@ class Ui_MoodleTestGenerator(object):
323
307
 
324
308
  def retranslateUi(self, MoodleTestGenerator):
325
309
  MoodleTestGenerator.setWindowTitle(QCoreApplication.translate("MoodleTestGenerator", u"excel 2 moodle", None))
326
- self.actionInput_Spreadsheet.setText(QCoreApplication.translate("MoodleTestGenerator", u"&Input Spreadsheet", None))
310
+ self.actionSpreadsheet.setText(QCoreApplication.translate("MoodleTestGenerator", u"&Input Spreadsheet", None))
311
+ #if QT_CONFIG(tooltip)
312
+ self.actionSpreadsheet.setToolTip(QCoreApplication.translate("MoodleTestGenerator", u"Open the question spreadsheet", None))
313
+ #endif // QT_CONFIG(tooltip)
327
314
  #if QT_CONFIG(shortcut)
328
- self.actionInput_Spreadsheet.setShortcut(QCoreApplication.translate("MoodleTestGenerator", u"Ctrl+O", None))
315
+ self.actionSpreadsheet.setShortcut(QCoreApplication.translate("MoodleTestGenerator", u"Ctrl+O", None))
329
316
  #endif // QT_CONFIG(shortcut)
330
- self.actionOutput_Folder.setText(QCoreApplication.translate("MoodleTestGenerator", u"&Output Folder", None))
331
317
  self.actionEquationChecker.setText(QCoreApplication.translate("MoodleTestGenerator", u"&Equation Checker", None))
332
318
  self.actionParseAll.setText(QCoreApplication.translate("MoodleTestGenerator", u"&Parse all Questions", None))
333
319
  #if QT_CONFIG(tooltip)
334
- self.actionParseAll.setToolTip(QCoreApplication.translate("MoodleTestGenerator", u"Parses all questions inside the spreadsheet", None))
320
+ self.actionParseAll.setToolTip(QCoreApplication.translate("MoodleTestGenerator", u"Parse all questions inside the spreadsheet", None))
335
321
  #endif // QT_CONFIG(tooltip)
336
322
  #if QT_CONFIG(shortcut)
337
323
  self.actionParseAll.setShortcut(QCoreApplication.translate("MoodleTestGenerator", u"Ctrl+R", None))
338
324
  #endif // QT_CONFIG(shortcut)
339
- self.actionPreviewQ.setText(QCoreApplication.translate("MoodleTestGenerator", u"Preview Question", None))
325
+ self.actionSetting.setText(QCoreApplication.translate("MoodleTestGenerator", u"Settings", None))
326
+ self.actionExport.setText(QCoreApplication.translate("MoodleTestGenerator", u"Export the question selection ", None))
340
327
  #if QT_CONFIG(shortcut)
341
- self.actionPreviewQ.setShortcut(QCoreApplication.translate("MoodleTestGenerator", u"Ctrl+P", None))
328
+ self.actionExport.setShortcut(QCoreApplication.translate("MoodleTestGenerator", u"Ctrl+E", None))
342
329
  #endif // QT_CONFIG(shortcut)
343
330
  self.actionAbout.setText(QCoreApplication.translate("MoodleTestGenerator", u"About", None))
344
- self.actionSetting.setText(QCoreApplication.translate("MoodleTestGenerator", u"Settings", None))
331
+ self.actionDocumentation.setText(QCoreApplication.translate("MoodleTestGenerator", u"Documentation", None))
332
+ #if QT_CONFIG(tooltip)
333
+ self.actionDocumentation.setToolTip(QCoreApplication.translate("MoodleTestGenerator", u"Open the documentation for excel2moodle", None))
334
+ #endif // QT_CONFIG(tooltip)
335
+ #if QT_CONFIG(shortcut)
336
+ self.actionDocumentation.setShortcut(QCoreApplication.translate("MoodleTestGenerator", u"F1", None))
337
+ #endif // QT_CONFIG(shortcut)
345
338
  self.checkBoxQuestionListSelectAll.setText(QCoreApplication.translate("MoodleTestGenerator", u"Select all", None))
346
- self.label.setText(QCoreApplication.translate("MoodleTestGenerator", u"Question List", None))
339
+ #if QT_CONFIG(tooltip)
340
+ self.questionCounter.setToolTip(QCoreApplication.translate("MoodleTestGenerator", u"The number of selected questions", None))
341
+ #endif // QT_CONFIG(tooltip)
342
+ self.questionCounter.setPrefix("")
343
+ self.questionCounter.setSuffix(QCoreApplication.translate("MoodleTestGenerator", u" Qst.", None))
344
+ #if QT_CONFIG(tooltip)
345
+ self.pointCounter.setToolTip(QCoreApplication.translate("MoodleTestGenerator", u"The total number of points of all selected questions.", None))
346
+ #endif // QT_CONFIG(tooltip)
347
+ self.pointCounter.setPrefix("")
348
+ self.pointCounter.setSuffix(QCoreApplication.translate("MoodleTestGenerator", u" Pts.", None))
349
+ self.buttonSpreadsheet.setText(QCoreApplication.translate("MoodleTestGenerator", u"Open Spreadsheet", None))
350
+ #if QT_CONFIG(tooltip)
351
+ self.buttonExport.setToolTip(QCoreApplication.translate("MoodleTestGenerator", u"Export the selected questions to a xml file", None))
352
+ #endif // QT_CONFIG(tooltip)
353
+ self.buttonExport.setText(QCoreApplication.translate("MoodleTestGenerator", u"Export", None))
347
354
  ___qtreewidgetitem = self.treeWidget.headerItem()
348
355
  ___qtreewidgetitem.setText(3, QCoreApplication.translate("MoodleTestGenerator", u"Variants", None));
349
356
  ___qtreewidgetitem.setText(2, QCoreApplication.translate("MoodleTestGenerator", u"Points", None));
350
357
  ___qtreewidgetitem.setText(1, QCoreApplication.translate("MoodleTestGenerator", u"Description", None));
351
358
  ___qtreewidgetitem.setText(0, QCoreApplication.translate("MoodleTestGenerator", u"Question ID", None));
352
- self.label_5.setText(QCoreApplication.translate("MoodleTestGenerator", u"Selected:", None))
353
- self.label_6.setText(QCoreApplication.translate("MoodleTestGenerator", u"Points", None))
354
- self.pointCounter.setPrefix("")
355
- self.label_7.setText(QCoreApplication.translate("MoodleTestGenerator", u"Questions", None))
356
- self.questionCounter.setPrefix("")
357
- self.label_2.setText(QCoreApplication.translate("MoodleTestGenerator", u"Input", None))
358
- self.buttonSpreadSheet.setText(QCoreApplication.translate("MoodleTestGenerator", u"Select spreadsheet", None))
359
- self.label_3.setText(QCoreApplication.translate("MoodleTestGenerator", u"Output", None))
360
- self.label_10.setText(QCoreApplication.translate("MoodleTestGenerator", u"Default Question Variant", None))
361
- #if QT_CONFIG(tooltip)
362
- self.label_9.setToolTip(QCoreApplication.translate("MoodleTestGenerator", u"If enabled, all questions will be categorized, when importing into moodle. Otherwise they will all be imported into one category", None))
363
- #endif // QT_CONFIG(tooltip)
364
- self.label_9.setText(QCoreApplication.translate("MoodleTestGenerator", u"Include Questions in Categories", None))
365
- self.checkBoxIncludeCategories.setText("")
366
- self.buttonTestGen.setText(QCoreApplication.translate("MoodleTestGenerator", u"export selected Questions to examfile", None))
367
- self.label_4.setText(QCoreApplication.translate("MoodleTestGenerator", u"Logger", None))
359
+ self.label.setText(QCoreApplication.translate("MoodleTestGenerator", u"Question Preview", None))
360
+ self.questionNameLabel.setText(QCoreApplication.translate("MoodleTestGenerator", u"Question:", None))
361
+ self.questionText.setText(QCoreApplication.translate("MoodleTestGenerator", u"QuestionText", None))
362
+ self.answersLabel.setText(QCoreApplication.translate("MoodleTestGenerator", u"Answers", None))
363
+ self.label_4.setText(QCoreApplication.translate("MoodleTestGenerator", u"Logging Messages", None))
368
364
  self.menuFile.setTitle(QCoreApplication.translate("MoodleTestGenerator", u"File", None))
369
365
  self.menuTools.setTitle(QCoreApplication.translate("MoodleTestGenerator", u"Tools", None))
370
366
  self.menuHelp.setTitle(QCoreApplication.translate("MoodleTestGenerator", u"Help", None))
371
- self.toolBar.setWindowTitle(QCoreApplication.translate("MoodleTestGenerator", u"toolBar", None))
372
367
  self.toolBar_3.setWindowTitle(QCoreApplication.translate("MoodleTestGenerator", u"toolBar_3", None))
373
- self.toolBar_2.setWindowTitle(QCoreApplication.translate("MoodleTestGenerator", u"toolBar_2", None))
368
+ self.toolBar.setWindowTitle(QCoreApplication.translate("MoodleTestGenerator", u"toolBar", None))
374
369
  # retranslateUi
375
370
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: excel2moodle
3
- Version: 0.3.7
3
+ Version: 0.4.1
4
4
  Summary: A package for converting questions from a spreadsheet, to valid moodle-xml
5
5
  Author: Jakob Bosse
6
6
  License-Expression: GPL-3.0-or-later
@@ -0,0 +1,37 @@
1
+ excel2moodle/__init__.py,sha256=qdQJY0xbSiEhnmqbgJpqBe0kHec7yLOeAdcArScioE8,1925
2
+ excel2moodle/__main__.py,sha256=xnTzJuQL5uDWiwDGoU9vKY4hMSFZIaz0meognglUwxw,1189
3
+ excel2moodle/logger.py,sha256=e3i6ECB8x-qyR4mP5WhdDGs1WbFXma2tzBjKbMumfOw,3086
4
+ excel2moodle/core/__init__.py,sha256=H4Bt6u076RKb6BH5F58nHLQvYPDUoayosM_Onyr9yT0,398
5
+ excel2moodle/core/category.py,sha256=QIl8nh1ryvlVMtNy8hWRfhZZMgGOhQZ3rwDFqf4woa4,1809
6
+ excel2moodle/core/dataStructure.py,sha256=xEb24WHMSTXnR5JtpLeacfYyBkP418znQXYBTaUix6k,13209
7
+ excel2moodle/core/etHelpers.py,sha256=i8DAx7YBxrQqzbXFsU-pIvYMPHSRhYci-JvuzY1MzeI,2299
8
+ excel2moodle/core/exceptions.py,sha256=VgbxrnoR9RRnmDYK2rbB_Bv00r7NLWET6FgddPwo3uw,748
9
+ excel2moodle/core/globals.py,sha256=Dg46AveftuGTGpxaFdxF87Kc1Azf0dIFQy8dAdgy0cE,3293
10
+ excel2moodle/core/numericMultiQ.py,sha256=vr-gYogu2sf2a_Bhvhnu1ZSZFZXM32MfhJesjTkoOQM,2618
11
+ excel2moodle/core/parser.py,sha256=biXKznQdrK0_UNBB4TsV54RqTpAmEnGwZJVC5_wneA0,8549
12
+ excel2moodle/core/question.py,sha256=mr0T8qc7C-m-A8_A59JeCyu80SmruRB-iTV5JEAHjAk,8599
13
+ excel2moodle/core/settings.py,sha256=6Do6A1VWlVMJYgT0Je4YyFsIS8rEMcghu-MUXBGk1b0,6842
14
+ excel2moodle/core/stringHelpers.py,sha256=OzFZ6Eu3PeBLKb61K-aeVfUZmVuBerr9KfyOsuNRd7Y,2403
15
+ excel2moodle/core/validator.py,sha256=4U0HEJREtZ7d6K7b4F1NA7P_AC3_uv6Th_1YGLKJwgU,4969
16
+ excel2moodle/extra/__init__.py,sha256=PM-id60HD21A3IcGC_fCYFihS8osBGZMIJCcN-ZRsIM,293
17
+ excel2moodle/extra/equationVerification.py,sha256=GLJl1r90d8AAiNy0H2hooZrg3D6aEwNfifYKAe3aGxM,3921
18
+ excel2moodle/question_types/__init__.py,sha256=ZYGg_tYop9c5yUfN8St6FddeaDxbyE2hneKKUFVzcGM,955
19
+ excel2moodle/question_types/mc.py,sha256=DEloENXMME7zpHgUIdQlH_HKMyPbWdNs45r05nseQ8c,4804
20
+ excel2moodle/question_types/nf.py,sha256=QcLIGFLTOyZyTouOTbSb9oaqXZAo1wYJz-Ek9oqEVHc,773
21
+ excel2moodle/question_types/nfm.py,sha256=ndwZdsCb71MrdPGaftqWxD7IuWFNXKRIN7Qcxe1qTHM,3231
22
+ excel2moodle/ui/__init__.py,sha256=4EdGtpzwH3rgw4xW9E5x9kdPQYwKbo9rehHRZTNxCrQ,44
23
+ excel2moodle/ui/appUi.py,sha256=3uYIuuLJlUhud5yHo8Uiya3ZOlMUlyWVMtFxHU3ZATk,11284
24
+ excel2moodle/ui/dialogs.py,sha256=Xvhkvp4U-0yN5dWK9BaP6j3LzeNLd3YMiA1JvtyCZyw,5636
25
+ excel2moodle/ui/exportSettingsDialog.py,sha256=_BldaX74LsaAfy4rG6g7f55tra3OQETnfyRQ-wClvHU,3610
26
+ excel2moodle/ui/questionPreviewDialog.py,sha256=_rJvz1GM90aNnj3P6SugEezK7JW6m74ZALgkChohWLM,4980
27
+ excel2moodle/ui/treewidget.py,sha256=mTRqmZHMZT3QTTvt5Gw9L-yl4KdhhulkF7O1KBwW-_E,2449
28
+ excel2moodle/ui/variantDialog.py,sha256=snVaF3_YAc7NWjMRg7NzbjL_PzNbOpt4eiqElkE46io,5414
29
+ excel2moodle/ui/windowDoc.py,sha256=WvzHj6F4JvHP82WlTsyFeOXW024Xq3BUqtp--T4twuI,661
30
+ excel2moodle/ui/windowEquationChecker.py,sha256=fLyal3sbJwpthWCAxLB5vbSFOX23JoivoYksNp3mZVY,7925
31
+ excel2moodle/ui/windowMain.py,sha256=iHEq9HRRGduPIxV4QOYUkGgKkbmphJT1vKHsrokQbsM,19668
32
+ excel2moodle-0.4.1.dist-info/licenses/LICENSE,sha256=ywQqe6Sitymkf2lV2NRcx_aGsaC-KbSl_EfEsRXmNRw,35135
33
+ excel2moodle-0.4.1.dist-info/METADATA,sha256=wupC5jQBXubRzjlpK2YPXtJeI1Ng31xjG8lUF-khbZE,2972
34
+ excel2moodle-0.4.1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
35
+ excel2moodle-0.4.1.dist-info/entry_points.txt,sha256=r6Dy9TGktIJUdr1QpKni_ANneugiuEtLYUbsKVMn96w,117
36
+ excel2moodle-0.4.1.dist-info/top_level.txt,sha256=5V1xRUQ9o7UmOCmNoWCZPAuy5nXp3Qbzyqch8fUGT_c,13
37
+ excel2moodle-0.4.1.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (80.8.0)
2
+ Generator: setuptools (80.9.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5
 
@@ -1,2 +1,5 @@
1
1
  [console_scripts]
2
2
  excel2moodle = excel2moodle.__main__:main
3
+
4
+ [gui_scripts]
5
+ excel2moodle = excel2moodle.__main__:main