checkbox-qt doesn't fire the "prompt-finish" event
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Checkbox |
Fix Released
|
Medium
|
Tiago Salem Herrmann |
Bug Description
When closing checkbox-qt after a run, the prompt-finish event is not firing, and interface.direction is not set to NEXT. This causes problems because the cleanup work during prompt-finish doesn't get executed, and the 'recover run' bit in plugins.bpickle (see the plugins/
Steps to reproduce:
1- Run checkbox-qt --log-level=debug
2- Deselect all the tests
3- Press "start testing"
4- Enter email address and click on "submit results"
5- On the report screen, close checkbox
6- Restart checkbox
Expected results:
- The logfile (.cache/
2012-03-15 15:09:10,752 DEBUG Started firing prompt-finish.
2012-03-15 15:09:10,752 DEBUG Calling ./plugins/
2012-03-15 15:09:16,364 DEBUG Calling ./plugins/
2012-03-15 15:09:16,364 DEBUG Calling ./plugins/
2012-03-15 15:09:16,370 DEBUG Finished firing prompt-finish.
- Upon restarting checkbox, I don't get prompted to recover an existing run.
Actual results:
- Logfile doesn't show prompt-finish being fired, thus the plugins registered for it (final_prompt, recover_prompt and jobs_prompt) don't get notified or run any registered methods.
- Upon restarting checkbox, I always get prompted to recover the existing run.
Part of the problem is that, in checkbox-gtk, the user explicitly clicked on a "I'm done testing" button ("Finish"), thus it was easy to determine that the run had ended. On checkbox-qt, we have no explicit control to end the testing session, this is done implicitly by closing the window, but this can happen for any number of reasons (accident, crash, the user indeed wanting to interrupt the process mid-run to resume later), not all of which signify the run has ended.
One way to fix this would be to implicly consider that if the user either viewed or submitted the report, the run can be considered finished. So if the user presses either button and then closes checkbox, we reset things so he won't get prompted on restarting.
In either case, the UI needs to set interface.direction = NEXT for things to work properly, particularly with the recover_prompt plugin.
Related branches
- Daniel Manrique (community): Approve
-
Diff: 239 lines (+75/-7)6 files modifiedcheckbox/user_interface.py (+1/-0)
checkbox_qt/qt_interface.py (+14/-2)
debian/changelog (+4/-0)
plugins/user_interface.py (+23/-0)
qt/frontend/qtfront.cpp (+27/-4)
qt/frontend/qtfront.h (+6/-1)
- Ubuntu Sponsors: Pending requested
-
Diff: 101688 lines (+21514/-14618)123 files modifiedcheckbox/application.py (+1/-1)
checkbox/user_interface.py (+15/-34)
checkbox_qt/qt_interface.py (+25/-12)
debian/changelog (+57/-0)
debian/po/cs.po (+2/-2)
debian/po/de.po (+2/-2)
debian/po/en_AU.po (+2/-2)
debian/po/en_GB.po (+2/-2)
debian/po/es.po (+2/-2)
debian/po/fr.po (+2/-2)
debian/po/he.po (+2/-2)
debian/po/hu.po (+2/-2)
debian/po/it.po (+2/-2)
debian/po/ja.po (+2/-2)
debian/po/nl.po (+2/-2)
debian/po/oc.po (+2/-2)
debian/po/pl.po (+2/-2)
debian/po/pt_BR.po (+2/-2)
debian/po/ro.po (+2/-2)
debian/po/ru.po (+2/-2)
debian/po/uk.po (+2/-2)
debian/po/zh_TW.po (+2/-2)
jobs/keys.txt.in (+1/-1)
jobs/mediacard.txt.in (+16/-16)
jobs/optical.txt.in (+10/-9)
jobs/suspend.txt.in (+1/-1)
plugins/apport_prompt.py (+3/-4)
plugins/user_interface.py (+23/-0)
po/ace.po (+146/-144)
po/af.po (+146/-144)
po/am.po (+148/-146)
po/ar.po (+146/-144)
po/ast.po (+164/-157)
po/az.po (+95/-93)
po/be.po (+146/-144)
po/bg.po (+146/-144)
po/bn.po (+146/-144)
po/bo.po (+146/-144)
po/br.po (+146/-144)
po/bs.po (+146/-144)
po/ca.po (+230/-180)
po/ca@valencia.po (+146/-144)
po/ckb.po (+120/-93)
po/cs.po (+1030/-200)
po/cy.po (+148/-146)
po/da.po (+346/-148)
po/de.po (+742/-667)
po/dv.po (+148/-146)
po/el.po (+68/-66)
po/en_AU.po (+733/-685)
po/en_CA.po (+146/-144)
po/en_GB.po (+719/-717)
po/eo.po (+146/-144)
po/es.po (+505/-189)
po/et.po (+146/-144)
po/eu.po (+146/-144)
po/fa.po (+148/-146)
po/fi.po (+196/-145)
po/fr.po (+254/-144)
po/ga.po (+148/-146)
po/gd.po (+146/-144)
po/gl.po (+147/-145)
po/he.po (+146/-144)
po/hi.po (+146/-144)
po/hr.po (+146/-144)
po/hu.po (+211/-145)
po/hy.po (+148/-146)
po/id.po (+148/-146)
po/is.po (+146/-144)
po/it.po (+1158/-205)
po/ja.po (+146/-144)
po/jbo.po (+148/-146)
po/ka.po (+148/-146)
po/kk.po (+146/-144)
po/km.po (+148/-146)
po/kn.po (+148/-146)
po/ko.po (+195/-165)
po/ku.po (+148/-146)
po/ky.po (+148/-146)
po/lt.po (+146/-144)
po/lv.po (+146/-144)
po/mk.po (+148/-146)
po/ml.po (+148/-146)
po/mr.po (+148/-146)
po/ms.po (+95/-93)
po/my.po (+146/-144)
po/nb.po (+146/-144)
po/nds.po (+148/-146)
po/ne.po (+146/-144)
po/nl.po (+44/-44)
po/nn.po (+146/-144)
po/oc.po (+147/-145)
po/pl.po (+146/-144)
po/ps.po (+148/-146)
po/pt.po (+146/-144)
po/pt_BR.po (+199/-149)
po/ro.po (+1349/-239)
po/ru.po (+44/-44)
po/sd.po (+44/-44)
po/shn.po (+148/-146)
po/si.po (+148/-146)
po/sk.po (+68/-66)
po/sl.po (+799/-173)
po/sq.po (+146/-144)
po/sr.po (+148/-146)
po/sv.po (+146/-144)
po/ta.po (+152/-145)
po/te.po (+152/-150)
po/th.po (+146/-144)
po/tr.po (+1102/-199)
po/ug.po (+1309/-191)
po/uk.po (+45/-45)
po/ur.po (+148/-146)
po/uz.po (+148/-146)
po/vi.po (+146/-144)
po/zh_CN.po (+147/-145)
po/zh_HK.po (+146/-144)
po/zh_TW.po (+146/-144)
qt/frontend/qtfront.cpp (+75/-35)
qt/frontend/qtfront.h (+12/-7)
qt/frontend/qtfront.ui (+102/-35)
scripts/removable_storage_test (+3/-2)
scripts/removable_storage_watcher (+11/-11)
Changed in checkbox: | |
milestone: | none → 0.13.5 |
Changed in checkbox: | |
assignee: | nobody → Tiago Salem Herrmann (tiagosh) |
status: | New → In Progress |
Changed in checkbox: | |
importance: | Undecided → Medium |
Changed in checkbox: | |
status: | In Progress → Fix Committed |
Changed in checkbox: | |
status: | Fix Committed → Fix Released |