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
1=== modified file 'checkbox_gtk/gtk_interface.py'
2--- checkbox_gtk/gtk_interface.py 2011-09-23 02:01:56 +0000
3+++ checkbox_gtk/gtk_interface.py 2011-11-04 21:01:24 +0000
4@@ -102,10 +102,8 @@
5 image_head.connect("expose-event",self.draw_image_head)
6
7 # Set wait transient for dialog
8- self._wait = self._get_widget("window_wait")
9- self._wait.set_transient_for(self._dialog)
10- self._wait.realize()
11- self._wait.get_window().set_functions(Gdk.WMFunction.MOVE)
12+ self._wait = self._get_widget("box_wait")
13+ self._wait.hide()
14
15 # Set shorthand for notebook
16 self._notebook = self._get_widget("notebook_main")
17
18=== modified file 'debian/changelog'
19--- debian/changelog 2011-10-27 20:18:26 +0000
20+++ debian/changelog 2011-11-04 21:01:24 +0000
21@@ -8,6 +8,8 @@
22
23 [Daniel Manrique]
24 * Use gettext for string (LP: #869267)
25+ * Move progress indicator to main checkbox dialog instead of a
26+ transient window (LP: #868995)
27
28 [Jeff Lane]
29 * Went through all the job files and:
30@@ -24,7 +26,7 @@
31 [Ara Pulido]
32 * Rewrote all job descriptions to match OEM QA syntax
33
34- -- Daniel Manrique <daniel.manrique@canonical.com> Wed, 12 Oct 2011 15:20:36 -0400
35+ -- Daniel Manrique <daniel.manrique@canonical.com> Fri, 04 Nov 2011 16:32:08 -0400
36
37 checkbox (0.12.8) oneiric; urgency=low
38
39
40=== modified file 'gtk/checkbox-gtk.ui'
41--- gtk/checkbox-gtk.ui 2011-06-09 16:29:26 +0000
42+++ gtk/checkbox-gtk.ui 2011-11-04 21:01:24 +0000
43@@ -374,6 +374,43 @@
44 <property name="position">2</property>
45 </packing>
46 </child>
47+ <child>
48+ <object class="GtkBox" id="box_wait">
49+ <property name="visible">True</property>
50+ <property name="can_focus">False</property>
51+ <property name="orientation">vertical</property>
52+ <child>
53+ <object class="GtkLabel" id="label_wait">
54+ <property name="visible">True</property>
55+ <property name="can_focus">False</property>
56+ </object>
57+ <packing>
58+ <property name="expand">False</property>
59+ <property name="fill">False</property>
60+ <property name="position">0</property>
61+ </packing>
62+ </child>
63+ <child>
64+ <object class="GtkProgressBar" id="progressbar_wait">
65+ <property name="visible">True</property>
66+ <property name="can_focus">False</property>
67+ <property name="pulse_step">0.10000000149</property>
68+ </object>
69+ <packing>
70+ <property name="expand">False</property>
71+ <property name="fill">False</property>
72+ <property name="position">1</property>
73+ </packing>
74+ </child>
75+ </object>
76+ <packing>
77+ <property name="expand">False</property>
78+ <property name="fill">True</property>
79+ <property name="position">3</property>
80+ </packing>
81+ </child>
82+
83+
84 <child internal-child="action_area">
85 <object class="GtkHButtonBox" id="dialog-action_area">
86 <property name="visible">True</property>
87@@ -452,41 +489,4 @@
88 <action-widget response="1">button_next</action-widget>
89 </action-widgets>
90 </object>
91- <object class="GtkWindow" id="window_wait">
92- <property name="title" translatable="yes"></property>
93- <property name="border_width">6</property>
94- <property name="resizable">False</property>
95- <property name="modal">True</property>
96- <property name="window_position">center-on-parent</property>
97- <property name="type_hint">dialog</property>
98- <property name="skip_taskbar_hint">True</property>
99- <property name="skip_pager_hint">True</property>
100- <child>
101- <object class="GtkVBox" id="vbox_wait">
102- <property name="visible">True</property>
103- <property name="spacing">12</property>
104- <child>
105- <object class="GtkLabel" id="label_wait">
106- <property name="visible">True</property>
107- </object>
108- <packing>
109- <property name="expand">False</property>
110- <property name="fill">False</property>
111- <property name="position">0</property>
112- </packing>
113- </child>
114- <child>
115- <object class="GtkProgressBar" id="progressbar_wait">
116- <property name="visible">True</property>
117- <property name="pulse_step">0.10000000149</property>
118- </object>
119- <packing>
120- <property name="expand">False</property>
121- <property name="fill">False</property>
122- <property name="position">1</property>
123- </packing>
124- </child>
125- </object>
126- </child>
127- </object>
128 </interface>

Subscribers

People subscribed via source and target branches