Merge lp:~roadmr/ubuntu/quantal/checkbox/0.14.5 into lp:ubuntu/quantal/checkbox

Proposed by Daniel Manrique
Status: Merged
Merged at revision: 49
Proposed branch: lp:~roadmr/ubuntu/quantal/checkbox/0.14.5
Merge into: lp:ubuntu/quantal/checkbox
Diff against target: 994 lines (+381/-351)
5 files modified
checkbox_qt/qt_interface.py (+8/-18)
debian/changelog (+11/-0)
qt/frontend/qtfront.cpp (+35/-38)
qt/frontend/qtfront.h (+2/-6)
qt/frontend/qtfront.ui (+325/-289)
To merge this branch: bzr merge lp:~roadmr/ubuntu/quantal/checkbox/0.14.5
Reviewer Review Type Date Requested Status
Martin Pitt Approve
Review via email: mp+123277@code.launchpad.net

Description of the change

This is a rearrangement of test screen controls for Checkbox, to make it more agile and less confusing to use.

Both the documentation and translators teams have agreed with these changes, their comments are in bug 1044037.

Thanks!

To post a comment you must log in.
Revision history for this message
Martin Pitt (pitti) wrote :

Thanks! Will sponsor with adding a bug ref to the second bug to the changelog.

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'checkbox_qt/qt_interface.py'
2--- checkbox_qt/qt_interface.py 2012-08-20 18:13:17 +0000
3+++ checkbox_qt/qt_interface.py 2012-09-07 13:47:26 +0000
4@@ -31,9 +31,9 @@
5 from dbus.mainloop.glib import DBusGMainLoop
6
7 ANSWER_TO_OPTION = {
8- YES_ANSWER: _('yes'),
9- NO_ANSWER: _('no'),
10- SKIP_ANSWER: _('skip')}
11+ YES_ANSWER: 'yes',
12+ NO_ANSWER: 'no',
13+ SKIP_ANSWER: 'skip'}
14
15 OPTION_TO_ANSWER = dict((o, a)
16 for a, o in ANSWER_TO_OPTION.items())
17@@ -192,7 +192,7 @@
18 def _run_test(self, test, runner):
19 self.qtiface.showTestControls(False)
20 (status, data, duration) = runner(test)
21- self.qtiface.setFocusTestYesNo(True if status == PASS else False)
22+ self.qtiface.setTestResult(True if status == PASS else False)
23 self.qtiface.showTestControls(True)
24
25 if test["info"]:
26@@ -207,7 +207,9 @@
27 self._run_test(test, runner)
28
29 def onNextTestClicked():
30- test["status"] = ANSWER_TO_STATUS[SKIP_ANSWER]
31+ #Get response from UI
32+ answer = self.qtiface.getTestResult()
33+ test["status"] = ANSWER_TO_STATUS[answer]
34 self.direction = NEXT
35 self.loop.quit()
36
37@@ -215,16 +217,6 @@
38 self.direction = PREV
39 self.loop.quit()
40
41- def onYesTestClicked():
42- test["status"] = ANSWER_TO_STATUS[YES_ANSWER]
43- self.direction = NEXT
44- self.loop.quit()
45-
46- def onNoTestClicked():
47- test["status"] = ANSWER_TO_STATUS[NO_ANSWER]
48- self.direction = NEXT
49- self.loop.quit()
50-
51 enableTestButton = False
52 self._set_main_title(test["name"])
53 if test["info"] and "$output" in test["info"]:
54@@ -247,9 +239,7 @@
55 self.wait_on_signals(
56 startTestClicked=onStartTestClicked,
57 nextTestClicked=onNextTestClicked,
58- previousTestClicked=onPreviousTestClicked,
59- noTestClicked=onNoTestClicked,
60- yesTestClicked=onYesTestClicked)
61+ previousTestClicked=onPreviousTestClicked)
62
63 test["data"] = self.qtiface.getTestComment()
64 #Unset the title, since we finished the job
65
66=== modified file 'debian/changelog'
67--- debian/changelog 2012-08-20 18:13:17 +0000
68+++ debian/changelog 2012-09-07 13:47:26 +0000
69@@ -1,3 +1,14 @@
70+checkbox (0.14.5) quantal; urgency=low
71+
72+ * New upstream release (LP: #1042911)
73+
74+ * [FEATURE]: qt/frontend/qtfront.cpp, qt/frontend/qtfront.h,
75+ qt/frontend/qtfront.ui, checkbox_qt/qt_interface.py: Replaced test result
76+ buttons with radiobuttons, made comment area always visible, and added
77+ keyboard shortcuts.
78+
79+ -- Daniel Manrique <roadmr@ubuntu.com> Tue, 28 Aug 2012 15:31:37 -0400
80+
81 checkbox (0.14.4) quantal; urgency=low
82
83 * New upstream release (LP: #1039094)
84
85=== modified file 'qt/frontend/qtfront.cpp'
86--- qt/frontend/qtfront.cpp 2012-08-20 18:13:17 +0000
87+++ qt/frontend/qtfront.cpp 2012-09-07 13:47:26 +0000
88@@ -40,7 +40,6 @@
89 ui(new Ui_main),
90 m_model(0),
91 m_statusModel(new QStandardItemModel()),
92- m_currentTextComment(new QTextEdit()),
93 m_currentTab(0),
94 m_skipTestMessage(false),
95 isFirstTimeWelcome(true),
96@@ -62,8 +61,6 @@
97 connect(ui->selectAllButton, SIGNAL(clicked()), this, SLOT(onSelectAllClicked()));
98 connect(ui->buttonStartTesting, SIGNAL(clicked()), this, SLOT(onStartTestsClicked()));
99 connect(ui->testTestButton, SIGNAL(clicked()), this, SIGNAL(startTestClicked()));
100- connect(ui->yesTestButton, SIGNAL(clicked()), this, SLOT(onYesTestClicked()));
101- connect(ui->noTestButton, SIGNAL(clicked()), this, SLOT(onNoTestClicked()));
102 connect(ui->nextTestButton, SIGNAL(clicked()), this, SLOT(onNextTestClicked()));
103 connect(ui->previousTestButton, SIGNAL(clicked()), this, SLOT(onPreviousTestClicked()));
104 connect(ui->buttonSubmitResults, SIGNAL(clicked()), this, SLOT(onSubmitTestsClicked()));
105@@ -79,15 +76,6 @@
106 ui->buttonViewResults->setEnabled(false);
107 ui->testsTab->setTabEnabled(ui->testsTab->indexOf(ui->testing), false);
108
109- // comment box
110- ui->commentTestButton->setMenu(new QMenu());
111- QWidgetAction *action = new QWidgetAction(ui->commentTestButton);
112- action->setDefaultWidget(m_currentTextComment);
113- ui->commentTestButton->menu()->addAction(action);
114- // force cursor blink without having to click inside the QTextEdit
115- m_currentTextComment->setFocus();
116- m_currentTextComment->setStyleSheet("background-color: white");
117-
118 m_titleTestTypes["__audio__"] = checkboxTr("Audio Test",0);
119 m_titleTestTypes["__bluetooth__"] = checkboxTr("Bluetooth Test", 0);
120 m_titleTestTypes["__camera__"] = checkboxTr("Camera Test", 0);
121@@ -146,16 +134,6 @@
122 emit testSelectionChanged();
123 }
124
125-void QtFront::onYesTestClicked() {
126- emit yesTestClicked();
127- updateTestStatus(STATUS_PASS);
128-}
129-
130-void QtFront::onNoTestClicked() {
131- emit noTestClicked();
132- updateTestStatus(STATUS_FAIL);
133-}
134-
135 void QtFront::onPreviousTestClicked() {
136 emit previousTestClicked();
137 updateTestStatus(STATUS_UNINITIATED);
138@@ -175,7 +153,9 @@
139 }
140
141 void QtFront::onNextTestClicked() {
142- if (!m_skipTestMessage) {
143+ QString currentResult = getTestResult();
144+ QString currentStatus;
145+ if (!m_skipTestMessage && currentResult == "skip") {
146 QMessageBox msgBox(QMessageBox::Question, checkboxTr("Are you sure?", 0), checkboxTr("Do you really want to skip this test?", 0), 0, ui->tabWidget);
147 QCheckBox dontPrompt(checkboxTr("Don't ask me again", 0), &msgBox);
148 dontPrompt.blockSignals(true);
149@@ -191,6 +171,15 @@
150 } else {
151 emit nextTestClicked();
152 }
153+ if (currentResult == "skip"){
154+ currentStatus = STATUS_UNTESTED;
155+ }
156+ else if (currentResult == "yes"){
157+ currentStatus = STATUS_PASS;
158+ }
159+ else if (currentResult == "no"){
160+ currentStatus = STATUS_FAIL;
161+ }
162 updateTestStatus(STATUS_UNTESTED);
163 }
164
165@@ -294,11 +283,12 @@
166 bool enableTestButton) {
167 currentState = TESTING;
168 m_currentTestName = testName;
169- m_currentTextComment->setText(comment);
170 updateTestStatus(STATUS_INPROGRESS);
171 ui->radioTestTab->setVisible(true);
172 ui->nextPrevButtons->setVisible(true);
173 ui->testTestButton->setEnabled(enableTestButton);
174+ ui->skipTestRadioButton->setChecked(true);
175+ ui->commentsTextEdit->setPlainText(comment);
176 ui->testsTab->setTabEnabled(ui->testsTab->indexOf(ui->testing), true);
177 ui->tabWidget->setCurrentIndex(1);
178
179@@ -351,25 +341,32 @@
180 }
181
182 void QtFront::showTestControls(bool enableTestControls) {
183+ ui->nextPrevButtons->setEnabled(enableTestControls);
184+ ui->noTestRadioButton->setEnabled(enableTestControls);
185+ ui->skipTestRadioButton->setEnabled(enableTestControls);
186 ui->testTestButton->setEnabled(enableTestControls);
187- ui->yesTestButton->setEnabled(enableTestControls);
188- ui->noTestButton->setEnabled(enableTestControls);
189- ui->nextPrevButtons->setEnabled(enableTestControls);
190+ ui->yesTestRadioButton->setEnabled(enableTestControls);
191+ ui->commentsTextEdit->setEnabled(enableTestControls);
192 }
193
194-void QtFront::setFocusTestYesNo(bool status) {
195+void QtFront::setTestResult(bool status) {
196 if (status) {
197- ui->noTestButton->setDefault(false);
198- ui->noTestButton->clearFocus();
199- ui->yesTestButton->setDefault(true);
200- ui->yesTestButton->setFocus();
201+ ui->yesTestRadioButton->setChecked(true);
202 }
203 else {
204- ui->yesTestButton->setDefault(false);
205- ui->yesTestButton->clearFocus();
206- ui->noTestButton->setDefault(true);
207- ui->noTestButton->setFocus();
208- }
209+ ui->noTestRadioButton->setChecked(true);
210+ }
211+}
212+
213+QString QtFront::getTestResult() {
214+ QString result = "skip";
215+ if (ui->yesTestRadioButton->isChecked()){
216+ result = "yes";
217+ }
218+ if (ui->noTestRadioButton->isChecked()) {
219+ result = "no";
220+ }
221+ return result;
222 }
223
224 void QtFront::updateTestStatus(QStandardItem *item, QStandardItem *statusItem, QString status) {
225@@ -577,7 +574,7 @@
226 }
227
228 QString QtFront::getTestComment() {
229- return m_currentTextComment->toPlainText();
230+ return ui->commentsTextEdit->toPlainText();
231 }
232
233 QtFront::~QtFront() {
234
235=== modified file 'qt/frontend/qtfront.h'
236--- qt/frontend/qtfront.h 2012-08-20 18:13:17 +0000
237+++ qt/frontend/qtfront.h 2012-09-07 13:47:26 +0000
238@@ -56,7 +56,8 @@
239 QString getTestComment();
240 void showTest(QString purpose, QString steps, QString verification, QString info, QString comment, QString testType, QString testName, bool enableTestButton);
241 void showTestControls(bool enableTestControls);
242- void setFocusTestYesNo(bool status);
243+ void setTestResult(bool status);
244+ QString getTestResult();
245 Q_NOREPLY void showInfo(QString text, QStringList options, QString defaultoption);
246 void updateAutoTestStatus(QString status, QString testName);
247
248@@ -69,8 +70,6 @@
249 void onSubmitTestsClicked();
250 void onNextTestClicked();
251 void onPreviousTestClicked();
252- void onYesTestClicked();
253- void onNoTestClicked();
254 void onReviewTestsClicked();
255
256 void onJobItemChanged(QModelIndex index);
257@@ -83,8 +82,6 @@
258 void fullTestsClicked();
259 void startTestsClicked();
260 void startTestClicked();
261- void yesTestClicked();
262- void noTestClicked();
263 void nextTestClicked();
264 void previousTestClicked();
265 void submitTestsClicked();
266@@ -102,7 +99,6 @@
267 QWidget *m_mainWindow;
268 TreeModel * m_model;
269 QStandardItemModel *m_statusModel;
270- QTextEdit *m_currentTextComment;
271 QMap<QString, QString> m_statusList;
272 QMap <QString, QString> m_titleTestTypes;
273 QMap <QString, QString> m_statusStrings;
274
275=== modified file 'qt/frontend/qtfront.ui'
276--- qt/frontend/qtfront.ui 2012-08-20 18:13:17 +0000
277+++ qt/frontend/qtfront.ui 2012-09-07 13:47:26 +0000
278@@ -7,7 +7,7 @@
279 <x>0</x>
280 <y>0</y>
281 <width>640</width>
282- <height>470</height>
283+ <height>588</height>
284 </rect>
285 </property>
286 <property name="sizePolicy">
287@@ -25,7 +25,7 @@
288 <property name="maximumSize">
289 <size>
290 <width>640</width>
291- <height>470</height>
292+ <height>640</height>
293 </size>
294 </property>
295 <property name="windowTitle">
296@@ -50,7 +50,7 @@
297 <enum>QTabWidget::Rounded</enum>
298 </property>
299 <property name="currentIndex">
300- <number>0</number>
301+ <number>1</number>
302 </property>
303 <widget class="QWidget" name="tabWelcome">
304 <attribute name="title">
305@@ -171,7 +171,7 @@
306 <x>15</x>
307 <y>12</y>
308 <width>610</width>
309- <height>260</height>
310+ <height>350</height>
311 </rect>
312 </property>
313 <property name="frameShape">
314@@ -191,7 +191,7 @@
315 <property name="geometry">
316 <rect>
317 <x>20</x>
318- <y>300</y>
319+ <y>390</y>
320 <width>601</width>
321 <height>31</height>
322 </rect>
323@@ -209,7 +209,7 @@
324 <property name="geometry">
325 <rect>
326 <x>15</x>
327- <y>280</y>
328+ <y>370</y>
329 <width>608</width>
330 <height>20</height>
331 </rect>
332@@ -529,7 +529,7 @@
333 <x>10</x>
334 <y>70</y>
335 <width>611</width>
336- <height>241</height>
337+ <height>331</height>
338 </rect>
339 </property>
340 <property name="styleSheet">
341@@ -570,7 +570,7 @@
342 <property name="geometry">
343 <rect>
344 <x>10</x>
345- <y>320</y>
346+ <y>410</y>
347 <width>181</width>
348 <height>27</height>
349 </rect>
350@@ -586,7 +586,7 @@
351 <property name="geometry">
352 <rect>
353 <x>201</x>
354- <y>320</y>
355+ <y>410</y>
356 <width>181</width>
357 <height>27</height>
358 </rect>
359@@ -602,7 +602,7 @@
360 <property name="geometry">
361 <rect>
362 <x>410</x>
363- <y>320</y>
364+ <y>410</y>
365 <width>201</width>
366 <height>27</height>
367 </rect>
368@@ -658,277 +658,313 @@
369 <attribute name="title">
370 <string>Tab 1</string>
371 </attribute>
372- <layout class="QVBoxLayout" name="verticalLayout_3">
373- <property name="spacing">
374- <number>0</number>
375- </property>
376- <property name="margin">
377- <number>0</number>
378- </property>
379- <item>
380- <layout class="QVBoxLayout" name="testVLayout">
381- <property name="spacing">
382- <number>0</number>
383- </property>
384- <item>
385- <widget class="QFrame" name="titleFrame">
386- <property name="sizePolicy">
387- <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
388- <horstretch>0</horstretch>
389- <verstretch>0</verstretch>
390- </sizepolicy>
391- </property>
392- <property name="minimumSize">
393- <size>
394- <width>0</width>
395- <height>56</height>
396- </size>
397- </property>
398- <widget class="QLabel" name="testTypeLabel">
399- <property name="geometry">
400- <rect>
401- <x>10</x>
402- <y>0</y>
403- <width>611</width>
404- <height>25</height>
405- </rect>
406- </property>
407- <property name="sizePolicy">
408- <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
409- <horstretch>0</horstretch>
410- <verstretch>0</verstretch>
411- </sizepolicy>
412- </property>
413- <property name="font">
414- <font>
415- <family>Ubuntu</family>
416- <pointsize>16</pointsize>
417- </font>
418- </property>
419- <property name="text">
420- <string>TextLabel</string>
421- </property>
422- <property name="alignment">
423- <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
424- </property>
425- <property name="wordWrap">
426- <bool>true</bool>
427- </property>
428- </widget>
429- <widget class="QLabel" name="purposeLabel">
430- <property name="geometry">
431- <rect>
432- <x>10</x>
433- <y>30</y>
434- <width>611</width>
435- <height>21</height>
436- </rect>
437- </property>
438- <property name="sizePolicy">
439- <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
440- <horstretch>0</horstretch>
441- <verstretch>0</verstretch>
442- </sizepolicy>
443- </property>
444- <property name="font">
445- <font>
446- <family>Ubuntu</family>
447- <pointsize>8</pointsize>
448- <weight>50</weight>
449- <bold>false</bold>
450- <kerning>false</kerning>
451- </font>
452- </property>
453- <property name="text">
454- <string>TextLabel</string>
455- </property>
456- <property name="alignment">
457- <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
458- </property>
459- <property name="wordWrap">
460- <bool>true</bool>
461- </property>
462- </widget>
463- </widget>
464- </item>
465- <item>
466- <widget class="QFrame" name="testFrame">
467- <layout class="QHBoxLayout" name="horizontalLayout_3">
468- <item>
469- <widget class="QFrame" name="frame">
470- <property name="sizePolicy">
471- <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
472- <horstretch>30</horstretch>
473- <verstretch>0</verstretch>
474- </sizepolicy>
475- </property>
476- <property name="frameShape">
477- <enum>QFrame::Box</enum>
478- </property>
479- <property name="frameShadow">
480- <enum>QFrame::Plain</enum>
481- </property>
482- <layout class="QVBoxLayout" name="verticalLayout_2">
483- <property name="spacing">
484- <number>0</number>
485- </property>
486- <property name="margin">
487- <number>0</number>
488- </property>
489- <item>
490- <widget class="QScrollArea" name="scrollArea">
491- <property name="sizePolicy">
492- <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
493- <horstretch>30</horstretch>
494- <verstretch>30</verstretch>
495- </sizepolicy>
496- </property>
497- <property name="frameShape">
498- <enum>QFrame::NoFrame</enum>
499- </property>
500- <property name="lineWidth">
501- <number>0</number>
502- </property>
503- <property name="widgetResizable">
504- <bool>true</bool>
505- </property>
506- <widget class="QWidget" name="scrollAreaWidgetContents">
507- <property name="geometry">
508- <rect>
509- <x>0</x>
510- <y>0</y>
511- <width>100</width>
512- <height>30</height>
513- </rect>
514- </property>
515- <layout class="QVBoxLayout" name="verticalLayout_4">
516- <property name="spacing">
517- <number>0</number>
518- </property>
519- <property name="margin">
520- <number>0</number>
521- </property>
522- <item>
523- <widget class="QFrame" name="stepsFrame">
524- <property name="sizePolicy">
525- <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
526- <horstretch>30</horstretch>
527- <verstretch>30</verstretch>
528- </sizepolicy>
529- </property>
530- <property name="minimumSize">
531- <size>
532- <width>0</width>
533- <height>0</height>
534- </size>
535- </property>
536- <property name="sizeIncrement">
537- <size>
538- <width>0</width>
539- <height>0</height>
540- </size>
541- </property>
542- <property name="autoFillBackground">
543- <bool>false</bool>
544- </property>
545- <property name="frameShape">
546- <enum>QFrame::NoFrame</enum>
547- </property>
548- <property name="frameShadow">
549- <enum>QFrame::Plain</enum>
550- </property>
551- <property name="lineWidth">
552- <number>1</number>
553- </property>
554- </widget>
555- </item>
556- </layout>
557- </widget>
558+ <widget class="QFrame" name="titleFrame">
559+ <property name="geometry">
560+ <rect>
561+ <x>9</x>
562+ <y>9</y>
563+ <width>610</width>
564+ <height>56</height>
565+ </rect>
566+ </property>
567+ <property name="sizePolicy">
568+ <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
569+ <horstretch>0</horstretch>
570+ <verstretch>0</verstretch>
571+ </sizepolicy>
572+ </property>
573+ <property name="minimumSize">
574+ <size>
575+ <width>0</width>
576+ <height>56</height>
577+ </size>
578+ </property>
579+ <widget class="QLabel" name="testTypeLabel">
580+ <property name="geometry">
581+ <rect>
582+ <x>10</x>
583+ <y>0</y>
584+ <width>611</width>
585+ <height>25</height>
586+ </rect>
587+ </property>
588+ <property name="sizePolicy">
589+ <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
590+ <horstretch>0</horstretch>
591+ <verstretch>0</verstretch>
592+ </sizepolicy>
593+ </property>
594+ <property name="font">
595+ <font>
596+ <family>Ubuntu</family>
597+ <pointsize>16</pointsize>
598+ </font>
599+ </property>
600+ <property name="text">
601+ <string>TextLabel</string>
602+ </property>
603+ <property name="alignment">
604+ <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
605+ </property>
606+ <property name="wordWrap">
607+ <bool>true</bool>
608+ </property>
609+ </widget>
610+ <widget class="QLabel" name="purposeLabel">
611+ <property name="geometry">
612+ <rect>
613+ <x>10</x>
614+ <y>30</y>
615+ <width>611</width>
616+ <height>21</height>
617+ </rect>
618+ </property>
619+ <property name="sizePolicy">
620+ <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
621+ <horstretch>0</horstretch>
622+ <verstretch>0</verstretch>
623+ </sizepolicy>
624+ </property>
625+ <property name="font">
626+ <font>
627+ <family>Ubuntu</family>
628+ <pointsize>8</pointsize>
629+ <weight>50</weight>
630+ <bold>false</bold>
631+ <kerning>false</kerning>
632+ </font>
633+ </property>
634+ <property name="text">
635+ <string>TextLabel</string>
636+ </property>
637+ <property name="alignment">
638+ <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
639+ </property>
640+ <property name="wordWrap">
641+ <bool>true</bool>
642+ </property>
643+ </widget>
644+ </widget>
645+ <widget class="QWidget" name="layoutWidget">
646+ <property name="geometry">
647+ <rect>
648+ <x>10</x>
649+ <y>320</y>
650+ <width>610</width>
651+ <height>91</height>
652+ </rect>
653+ </property>
654+ <layout class="QVBoxLayout" name="commentsVerticalLayout">
655+ <item>
656+ <widget class="QLabel" name="label">
657+ <property name="text">
658+ <string>Comments</string>
659+ </property>
660+ </widget>
661+ </item>
662+ <item>
663+ <widget class="QPlainTextEdit" name="commentsTextEdit">
664+ <property name="maximumSize">
665+ <size>
666+ <width>16777215</width>
667+ <height>200</height>
668+ </size>
669+ </property>
670+ </widget>
671+ </item>
672+ </layout>
673+ </widget>
674+ <widget class="QWidget" name="layoutWidget">
675+ <property name="geometry">
676+ <rect>
677+ <x>9</x>
678+ <y>71</y>
679+ <width>611</width>
680+ <height>241</height>
681+ </rect>
682+ </property>
683+ <layout class="QVBoxLayout" name="verticalLayout_3">
684+ <item>
685+ <widget class="QFrame" name="testFrame">
686+ <property name="enabled">
687+ <bool>true</bool>
688+ </property>
689+ <layout class="QHBoxLayout" name="horizontalLayout_3">
690+ <item>
691+ <widget class="QFrame" name="frame">
692+ <property name="sizePolicy">
693+ <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
694+ <horstretch>30</horstretch>
695+ <verstretch>0</verstretch>
696+ </sizepolicy>
697+ </property>
698+ <property name="frameShape">
699+ <enum>QFrame::Box</enum>
700+ </property>
701+ <property name="frameShadow">
702+ <enum>QFrame::Plain</enum>
703+ </property>
704+ <layout class="QVBoxLayout" name="verticalLayout_2">
705+ <property name="spacing">
706+ <number>0</number>
707+ </property>
708+ <property name="margin">
709+ <number>0</number>
710+ </property>
711+ <item>
712+ <widget class="QScrollArea" name="scrollArea">
713+ <property name="sizePolicy">
714+ <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
715+ <horstretch>30</horstretch>
716+ <verstretch>30</verstretch>
717+ </sizepolicy>
718+ </property>
719+ <property name="frameShape">
720+ <enum>QFrame::NoFrame</enum>
721+ </property>
722+ <property name="lineWidth">
723+ <number>0</number>
724+ </property>
725+ <property name="widgetResizable">
726+ <bool>true</bool>
727+ </property>
728+ <widget class="QWidget" name="scrollAreaWidgetContents">
729+ <property name="geometry">
730+ <rect>
731+ <x>0</x>
732+ <y>0</y>
733+ <width>589</width>
734+ <height>167</height>
735+ </rect>
736+ </property>
737+ <layout class="QVBoxLayout" name="verticalLayout_4">
738+ <property name="spacing">
739+ <number>0</number>
740+ </property>
741+ <property name="margin">
742+ <number>0</number>
743+ </property>
744+ <item>
745+ <widget class="QFrame" name="stepsFrame">
746+ <property name="sizePolicy">
747+ <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
748+ <horstretch>30</horstretch>
749+ <verstretch>30</verstretch>
750+ </sizepolicy>
751+ </property>
752+ <property name="minimumSize">
753+ <size>
754+ <width>0</width>
755+ <height>0</height>
756+ </size>
757+ </property>
758+ <property name="sizeIncrement">
759+ <size>
760+ <width>0</width>
761+ <height>0</height>
762+ </size>
763+ </property>
764+ <property name="autoFillBackground">
765+ <bool>false</bool>
766+ </property>
767+ <property name="frameShape">
768+ <enum>QFrame::NoFrame</enum>
769+ </property>
770+ <property name="frameShadow">
771+ <enum>QFrame::Plain</enum>
772+ </property>
773+ <property name="lineWidth">
774+ <number>1</number>
775+ </property>
776+ </widget>
777+ </item>
778+ </layout>
779 </widget>
780- </item>
781- </layout>
782- </widget>
783- </item>
784- <item>
785- <widget class="QFrame" name="testButtonsFrame">
786- <property name="sizePolicy">
787- <sizepolicy hsizetype="MinimumExpanding" vsizetype="MinimumExpanding">
788- <horstretch>6</horstretch>
789- <verstretch>0</verstretch>
790- </sizepolicy>
791- </property>
792- <property name="frameShape">
793- <enum>QFrame::NoFrame</enum>
794- </property>
795- <property name="frameShadow">
796- <enum>QFrame::Plain</enum>
797- </property>
798- <property name="lineWidth">
799- <number>0</number>
800- </property>
801- <widget class="QPushButton" name="yesTestButton">
802- <property name="geometry">
803- <rect>
804- <x>10</x>
805- <y>100</y>
806- <width>85</width>
807- <height>27</height>
808- </rect>
809- </property>
810- <property name="text">
811- <string>Yes</string>
812- </property>
813- </widget>
814- <widget class="QPushButton" name="testTestButton">
815- <property name="geometry">
816- <rect>
817- <x>10</x>
818- <y>41</y>
819- <width>85</width>
820- <height>27</height>
821- </rect>
822- </property>
823- <property name="text">
824- <string>Test</string>
825- </property>
826- </widget>
827- <widget class="QPushButton" name="noTestButton">
828- <property name="geometry">
829- <rect>
830- <x>10</x>
831- <y>130</y>
832- <width>85</width>
833- <height>27</height>
834- </rect>
835- </property>
836- <property name="text">
837- <string>No</string>
838- </property>
839- </widget>
840- <widget class="QToolButton" name="commentTestButton">
841- <property name="geometry">
842- <rect>
843- <x>10</x>
844- <y>170</y>
845- <width>85</width>
846- <height>27</height>
847- </rect>
848- </property>
849- <property name="text">
850- <string>Comment</string>
851- </property>
852- <property name="popupMode">
853- <enum>QToolButton::InstantPopup</enum>
854- </property>
855- </widget>
856- </widget>
857- </item>
858- </layout>
859- </widget>
860- </item>
861- </layout>
862- </item>
863- </layout>
864+ </widget>
865+ </item>
866+ </layout>
867+ </widget>
868+ </item>
869+ </layout>
870+ </widget>
871+ </item>
872+ <item>
873+ <layout class="QHBoxLayout" name="horizontalLayout_5">
874+ <item>
875+ <widget class="QGroupBox" name="groupBox_2">
876+ <property name="sizePolicy">
877+ <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
878+ <horstretch>0</horstretch>
879+ <verstretch>0</verstretch>
880+ </sizepolicy>
881+ </property>
882+ <property name="styleSheet">
883+ <string notr="true">QGroupBox {
884+ border: 2px solid gray;
885+ border-radius: 5px;
886+ margin-top: 0ex; /* leave space at the top for the title */
887+ }
888+
889+ QGroupBox::title {
890+ subcontrol-origin: margin;
891+ subcontrol-position: top center; /* position at the top center */
892+ padding: 0 3px;
893+ }</string>
894+ </property>
895+ <property name="title">
896+ <string/>
897+ </property>
898+ <property name="flat">
899+ <bool>false</bool>
900+ </property>
901+ <layout class="QHBoxLayout" name="horizontalLayout_6">
902+ <item>
903+ <widget class="QRadioButton" name="yesTestRadioButton">
904+ <property name="text">
905+ <string>&amp;Yes</string>
906+ </property>
907+ </widget>
908+ </item>
909+ <item>
910+ <widget class="QRadioButton" name="noTestRadioButton">
911+ <property name="text">
912+ <string>&amp;No</string>
913+ </property>
914+ </widget>
915+ </item>
916+ <item>
917+ <widget class="QRadioButton" name="skipTestRadioButton">
918+ <property name="text">
919+ <string>&amp;Skip this test</string>
920+ </property>
921+ </widget>
922+ </item>
923+ </layout>
924+ </widget>
925+ </item>
926+ <item>
927+ <widget class="QPushButton" name="testTestButton">
928+ <property name="sizePolicy">
929+ <sizepolicy hsizetype="Minimum" vsizetype="Maximum">
930+ <horstretch>0</horstretch>
931+ <verstretch>0</verstretch>
932+ </sizepolicy>
933+ </property>
934+ <property name="maximumSize">
935+ <size>
936+ <width>160</width>
937+ <height>16777215</height>
938+ </size>
939+ </property>
940+ <property name="text">
941+ <string>&amp;Test</string>
942+ </property>
943+ </widget>
944+ </item>
945+ </layout>
946+ </item>
947+ </layout>
948+ </widget>
949 </widget>
950 <widget class="QWidget" name="tab_2">
951 <attribute name="title">
952@@ -948,33 +984,33 @@
953 <property name="minimumSize">
954 <size>
955 <width>0</width>
956- <height>46</height>
957+ <height>64</height>
958 </size>
959 </property>
960 <widget class="QPushButton" name="nextTestButton">
961 <property name="geometry">
962 <rect>
963- <x>510</x>
964+ <x>460</x>
965 <y>10</y>
966- <width>80</width>
967- <height>25</height>
968+ <width>160</width>
969+ <height>27</height>
970 </rect>
971 </property>
972 <property name="text">
973- <string>Next</string>
974+ <string>Ne&amp;xt</string>
975 </property>
976 </widget>
977 <widget class="QPushButton" name="previousTestButton">
978 <property name="geometry">
979 <rect>
980- <x>420</x>
981+ <x>290</x>
982 <y>10</y>
983- <width>80</width>
984- <height>25</height>
985+ <width>160</width>
986+ <height>27</height>
987 </rect>
988 </property>
989 <property name="text">
990- <string>Previous</string>
991+ <string>&amp;Previous</string>
992 </property>
993 </widget>
994 </widget>

Subscribers

People subscribed via source and target branches