Merge lp:~roadmr/checkbox/868995 into lp:checkbox

Proposed by Daniel Manrique
Status: Merged
Merged at revision: 1109
Proposed branch: lp:~roadmr/checkbox/868995
Merge into: lp:checkbox
Diff against target: 128 lines (+42/-42)
3 files modified
checkbox_gtk/gtk_interface.py (+2/-4)
debian/changelog (+3/-1)
gtk/checkbox-gtk.ui (+37/-37)
To merge this branch: bzr merge lp:~roadmr/checkbox/868995
Reviewer Review Type Date Requested Status
Brendan Donegan (community) Approve
Review via email: mp+81328@code.launchpad.net

Description of the change

This fix takes care of the dreaded "checkbox constantly minimizes to the dash" bug 868995. It does this by removing the transient progress window altogether, instead integrating the progress indicators (a label and a progress bar) directly into the main checkbox dialog.

I tried to make the fix as unintrusive as possible, just a couple lines of python code and about 50 lines of Glade XML stuff that were moved within the checkbox-gtk.ui file. This should make it trivial to backport this change to Oneiric.

The UI does jump a bit when the progress widgets get hidden/unhidden, but it's certainly less disruptive than having checkbox minimize all the time.

Reviewing and testing would be appreciated, this can be run from trunk (branch trunk, then bin/checkbox-gtk -W data/whitelists/default.whitelist). Just to make sure I didn't introduce some other quirks that'll give us more trouble :)

To post a comment you must log in.
Revision history for this message
Brendan Donegan (brendan-donegan) wrote :

This works pretty well, I think I like it more than the original dialog! Might end up doing something similar in the new UI.

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'checkbox_gtk/gtk_interface.py'
--- checkbox_gtk/gtk_interface.py 2011-09-23 02:01:56 +0000
+++ checkbox_gtk/gtk_interface.py 2011-11-04 21:01:24 +0000
@@ -102,10 +102,8 @@
102 image_head.connect("expose-event",self.draw_image_head)102 image_head.connect("expose-event",self.draw_image_head)
103103
104 # Set wait transient for dialog104 # Set wait transient for dialog
105 self._wait = self._get_widget("window_wait")105 self._wait = self._get_widget("box_wait")
106 self._wait.set_transient_for(self._dialog)106 self._wait.hide()
107 self._wait.realize()
108 self._wait.get_window().set_functions(Gdk.WMFunction.MOVE)
109107
110 # Set shorthand for notebook108 # Set shorthand for notebook
111 self._notebook = self._get_widget("notebook_main")109 self._notebook = self._get_widget("notebook_main")
112110
=== modified file 'debian/changelog'
--- debian/changelog 2011-10-27 20:18:26 +0000
+++ debian/changelog 2011-11-04 21:01:24 +0000
@@ -8,6 +8,8 @@
88
9 [Daniel Manrique]9 [Daniel Manrique]
10 * Use gettext for string (LP: #869267)10 * Use gettext for string (LP: #869267)
11 * Move progress indicator to main checkbox dialog instead of a
12 transient window (LP: #868995)
1113
12 [Jeff Lane]14 [Jeff Lane]
13 * Went through all the job files and:15 * Went through all the job files and:
@@ -24,7 +26,7 @@
24 [Ara Pulido]26 [Ara Pulido]
25 * Rewrote all job descriptions to match OEM QA syntax27 * Rewrote all job descriptions to match OEM QA syntax
2628
27 -- Daniel Manrique <daniel.manrique@canonical.com> Wed, 12 Oct 2011 15:20:36 -040029 -- Daniel Manrique <daniel.manrique@canonical.com> Fri, 04 Nov 2011 16:32:08 -0400
2830
29checkbox (0.12.8) oneiric; urgency=low31checkbox (0.12.8) oneiric; urgency=low
3032
3133
=== modified file 'gtk/checkbox-gtk.ui'
--- gtk/checkbox-gtk.ui 2011-06-09 16:29:26 +0000
+++ gtk/checkbox-gtk.ui 2011-11-04 21:01:24 +0000
@@ -374,6 +374,43 @@
374 <property name="position">2</property>374 <property name="position">2</property>
375 </packing>375 </packing>
376 </child>376 </child>
377 <child>
378 <object class="GtkBox" id="box_wait">
379 <property name="visible">True</property>
380 <property name="can_focus">False</property>
381 <property name="orientation">vertical</property>
382 <child>
383 <object class="GtkLabel" id="label_wait">
384 <property name="visible">True</property>
385 <property name="can_focus">False</property>
386 </object>
387 <packing>
388 <property name="expand">False</property>
389 <property name="fill">False</property>
390 <property name="position">0</property>
391 </packing>
392 </child>
393 <child>
394 <object class="GtkProgressBar" id="progressbar_wait">
395 <property name="visible">True</property>
396 <property name="can_focus">False</property>
397 <property name="pulse_step">0.10000000149</property>
398 </object>
399 <packing>
400 <property name="expand">False</property>
401 <property name="fill">False</property>
402 <property name="position">1</property>
403 </packing>
404 </child>
405 </object>
406 <packing>
407 <property name="expand">False</property>
408 <property name="fill">True</property>
409 <property name="position">3</property>
410 </packing>
411 </child>
412
413
377 <child internal-child="action_area">414 <child internal-child="action_area">
378 <object class="GtkHButtonBox" id="dialog-action_area">415 <object class="GtkHButtonBox" id="dialog-action_area">
379 <property name="visible">True</property>416 <property name="visible">True</property>
@@ -452,41 +489,4 @@
452 <action-widget response="1">button_next</action-widget>489 <action-widget response="1">button_next</action-widget>
453 </action-widgets>490 </action-widgets>
454 </object>491 </object>
455 <object class="GtkWindow" id="window_wait">
456 <property name="title" translatable="yes"></property>
457 <property name="border_width">6</property>
458 <property name="resizable">False</property>
459 <property name="modal">True</property>
460 <property name="window_position">center-on-parent</property>
461 <property name="type_hint">dialog</property>
462 <property name="skip_taskbar_hint">True</property>
463 <property name="skip_pager_hint">True</property>
464 <child>
465 <object class="GtkVBox" id="vbox_wait">
466 <property name="visible">True</property>
467 <property name="spacing">12</property>
468 <child>
469 <object class="GtkLabel" id="label_wait">
470 <property name="visible">True</property>
471 </object>
472 <packing>
473 <property name="expand">False</property>
474 <property name="fill">False</property>
475 <property name="position">0</property>
476 </packing>
477 </child>
478 <child>
479 <object class="GtkProgressBar" id="progressbar_wait">
480 <property name="visible">True</property>
481 <property name="pulse_step">0.10000000149</property>
482 </object>
483 <packing>
484 <property name="expand">False</property>
485 <property name="fill">False</property>
486 <property name="position">1</property>
487 </packing>
488 </child>
489 </object>
490 </child>
491 </object>
492</interface>492</interface>

Subscribers

People subscribed via source and target branches