Merge lp:~psquid/heybuddy/maemo_tweaks into lp:heybuddy
- maemo_tweaks
- Merge into trunk
Status: | Needs review |
---|---|
Proposed branch: | lp:~psquid/heybuddy/maemo_tweaks |
Merge into: | lp:heybuddy |
Diff against target: |
352 lines (+136/-45) 4 files modified
ContextPage.py (+0/-7) GroupPage.py (+41/-12) UserPage.py (+42/-18) heybuddy.py (+53/-8) |
To merge this branch: | bzr merge lp:~psquid/heybuddy/maemo_tweaks |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
jezra | Approve | ||
Review via email: mp+60008@code.launchpad.net |
This proposal supersedes a proposal from 2011-05-04.
Commit message
Description of the change
This branch contains the fix for actually making submitting work on Maemo.
Also, as of this resubmitted proposal:
Some new Maemo tweaks: collapsible info sections for groups/users, and close buttons in tab titles (for closeable tabs only), rather than a separate button at the bottom of the tab.
Only possible issue I can see is with the close buttons; they do make the tab bar a few pixels taller when a closeable tab is open. Haven't figured out how/if it's possible to have it keep a constant height.
jezra (jezra) wrote : Posted in a previous version of this proposal | # |
- 272. By Psychedelic Squid
-
Do some hackery to keep the tabbar height from fluctuating.
Unmerged revisions
- 272. By Psychedelic Squid
-
Do some hackery to keep the tabbar height from fluctuating.
- 271. By Psychedelic Squid
-
Close buttons in tab header for all closeable tabs, rather than at the bottom of the tab. Saves a lot of space.
- 270. By Psychedelic Squid
-
Collapsible info-area for groups/users. This makes it possible to actually see a sensible amount of dents on small screens (e.g., maemo) when the bio is long.
- 269. By Psychedelic Squid
-
Restore Maemo devices' ability to submit dents.
Preview Diff
1 | === modified file 'ContextPage.py' | |||
2 | --- ContextPage.py 2010-10-09 06:14:56 +0000 | |||
3 | +++ ContextPage.py 2011-05-05 04:39:25 +0000 | |||
4 | @@ -14,13 +14,6 @@ | |||
5 | 14 | } | 14 | } |
6 | 15 | def __init__(self): | 15 | def __init__(self): |
7 | 16 | ScrollPage.__init__(self) | 16 | ScrollPage.__init__(self) |
8 | 17 | #we do need a close button | ||
9 | 18 | close_button=gtk.Button(_("Close")) | ||
10 | 19 | hbox = gtk.HBox(False) | ||
11 | 20 | hbox.pack_start(close_button,False,False,0) | ||
12 | 21 | close_button.connect('clicked',self.close) | ||
13 | 22 | self.pack_end(hbox,False,False,0) | ||
14 | 23 | |||
15 | 24 | 17 | ||
16 | 25 | def close(self,button): | 18 | def close(self,button): |
17 | 26 | #we can just hid ourself | 19 | #we can just hid ourself |
18 | 27 | 20 | ||
19 | === modified file 'GroupPage.py' | |||
20 | --- GroupPage.py 2011-04-11 18:31:17 +0000 | |||
21 | +++ GroupPage.py 2011-05-05 04:39:25 +0000 | |||
22 | @@ -3,6 +3,7 @@ | |||
23 | 3 | copyright 2010 jezra lickter http://www.jezra.net | 3 | copyright 2010 jezra lickter http://www.jezra.net |
24 | 4 | ''' | 4 | ''' |
25 | 5 | from DentScroller import DentScroller | 5 | from DentScroller import DentScroller |
26 | 6 | from DentButton import DentButton | ||
27 | 6 | import gtk,gobject | 7 | import gtk,gobject |
28 | 7 | from PlatformSpecific import links_unavailable | 8 | from PlatformSpecific import links_unavailable |
29 | 8 | class GroupPage(gtk.VBox,gobject.GObject): | 9 | class GroupPage(gtk.VBox,gobject.GObject): |
30 | @@ -32,11 +33,11 @@ | |||
31 | 32 | imagevbox.pack_start(self.image,False,False,0) | 33 | imagevbox.pack_start(self.image,False,False,0) |
32 | 33 | 34 | ||
33 | 34 | #make an hbox to hold image and group info | 35 | #make an hbox to hold image and group info |
37 | 35 | grouphbox=gtk.HBox(False,5) | 36 | self.grouphbox=gtk.HBox(False,5) |
38 | 36 | self.pack_start(grouphbox,False,False,0) | 37 | self.pack_start(self.grouphbox,False,False,0) |
39 | 37 | grouphbox.pack_start(imagevbox,False,False,0) | 38 | self.grouphbox.pack_start(imagevbox,False,False,0) |
40 | 38 | infovbox = gtk.VBox(False) | 39 | infovbox = gtk.VBox(False) |
42 | 39 | grouphbox.pack_start(infovbox,False,False) | 40 | self.grouphbox.pack_start(infovbox,False,False) |
43 | 40 | 41 | ||
44 | 41 | self.name_label = gtk.Label() | 42 | self.name_label = gtk.Label() |
45 | 42 | infovbox.pack_start(self.name_label,False,False,0) | 43 | infovbox.pack_start(self.name_label,False,False,0) |
46 | @@ -53,27 +54,45 @@ | |||
47 | 53 | self.location_label = gtk.Label() | 54 | self.location_label = gtk.Label() |
48 | 54 | infovbox.pack_start(self.location_label,False,False,0) | 55 | infovbox.pack_start(self.location_label,False,False,0) |
49 | 55 | 56 | ||
50 | 57 | #widget box for the horizontal stuff | ||
51 | 58 | self.widgetbox = gtk.HBox(False) | ||
52 | 59 | self.pack_start(self.widgetbox,False,False,0) | ||
53 | 60 | |||
54 | 56 | #make a checkbutton if we are following | 61 | #make a checkbutton if we are following |
55 | 57 | self.joined_checkbutton = gtk.CheckButton(_("joined")) | 62 | self.joined_checkbutton = gtk.CheckButton(_("joined")) |
56 | 58 | self.joined_checkbutton.connect('toggled', self.joined_toggled) | 63 | self.joined_checkbutton.connect('toggled', self.joined_toggled) |
58 | 59 | infovbox.pack_start(self.joined_checkbutton,False,False,0) | 64 | self.widgetbox.pack_start(self.joined_checkbutton,False,False,0) |
59 | 65 | |||
60 | 66 | #collapse button | ||
61 | 67 | collapsebox = gtk.Alignment(xalign=1.0) | ||
62 | 68 | self.collapse_button = DentButton(u'\u25b2') | ||
63 | 69 | self.collapse_button.connect('clicked',self.collapse_clicked) | ||
64 | 70 | collapsebox.add(self.collapse_button) | ||
65 | 71 | self.widgetbox.pack_end(collapsebox,True,True,0) | ||
66 | 72 | |||
67 | 73 | #collapsed widget box and name label | ||
68 | 74 | self.widgetbox_collapsed = gtk.HBox(False) | ||
69 | 75 | self.name_label_collapsed = gtk.Label() | ||
70 | 76 | self.widgetbox_collapsed.pack_start(self.name_label_collapsed,False,False,0) | ||
71 | 77 | #its expand button | ||
72 | 78 | expandbox = gtk.Alignment(xalign=1.0) | ||
73 | 79 | self.expand_button = DentButton(u'\u25bc') | ||
74 | 80 | self.expand_button.connect('clicked',self.expand_clicked) | ||
75 | 81 | expandbox.add(self.expand_button) | ||
76 | 82 | self.widgetbox_collapsed.pack_end(expandbox,True,True,0) | ||
77 | 83 | #pack it up | ||
78 | 84 | self.pack_start(self.widgetbox_collapsed,False,False,0) | ||
79 | 60 | 85 | ||
80 | 61 | #create a group dent scroller and add it to the group page | 86 | #create a group dent scroller and add it to the group page |
81 | 62 | self.dentScroller = DentScroller() | 87 | self.dentScroller = DentScroller() |
82 | 63 | self.pack_start(self.dentScroller) | 88 | self.pack_start(self.dentScroller) |
83 | 64 | 89 | ||
84 | 65 | #make a "close" button | ||
85 | 66 | hbox = gtk.HBox(False) | ||
86 | 67 | user_close_button=gtk.Button(_("Close")) | ||
87 | 68 | hbox.pack_start(user_close_button,False,False,0) | ||
88 | 69 | user_close_button.connect('clicked',self.close) | ||
89 | 70 | self.pack_end(hbox,False,False,0) | ||
90 | 71 | |||
91 | 72 | def set_group_data(self,data): | 90 | def set_group_data(self,data): |
92 | 73 | self.joined_checkbutton.set_sensitive(True) | 91 | self.joined_checkbutton.set_sensitive(True) |
93 | 74 | self.group_id= data['id'] | 92 | self.group_id= data['id'] |
94 | 75 | self.group_name = data['fullname'] | 93 | self.group_name = data['fullname'] |
95 | 76 | self.name_label.set_text("%s" %(data['fullname']) ) | 94 | self.name_label.set_text("%s" %(data['fullname']) ) |
96 | 95 | self.name_label_collapsed.set_text("%s" %(data['fullname']) ) | ||
97 | 77 | if data['location']!=None: | 96 | if data['location']!=None: |
98 | 78 | self.location_label.set_text("%s: %s" %(_("Location"), data['location']) ) | 97 | self.location_label.set_text("%s: %s" %(_("Location"), data['location']) ) |
99 | 79 | self.location_label.show() | 98 | self.location_label.show() |
100 | @@ -122,6 +141,16 @@ | |||
101 | 122 | #self.hide() | 141 | #self.hide() |
102 | 123 | self.emit('group-page-hide') | 142 | self.emit('group-page-hide') |
103 | 124 | 143 | ||
104 | 144 | def collapse_clicked(self,widget): | ||
105 | 145 | self.grouphbox.hide() | ||
106 | 146 | self.widgetbox.hide() | ||
107 | 147 | self.widgetbox_collapsed.show() | ||
108 | 148 | |||
109 | 149 | def expand_clicked(self,widget): | ||
110 | 150 | self.grouphbox.show() | ||
111 | 151 | self.widgetbox.show() | ||
112 | 152 | self.widgetbox_collapsed.hide() | ||
113 | 153 | |||
114 | 125 | def process_link(self, label, uri ): | 154 | def process_link(self, label, uri ): |
115 | 126 | self.emit('open-link', uri ) | 155 | self.emit('open-link', uri ) |
116 | 127 | return True | 156 | return True |
117 | 128 | 157 | ||
118 | === modified file 'UserPage.py' | |||
119 | --- UserPage.py 2011-04-11 18:31:17 +0000 | |||
120 | +++ UserPage.py 2011-05-05 04:39:25 +0000 | |||
121 | @@ -61,47 +61,60 @@ | |||
122 | 61 | labelvbox.pack_start(self.location_label,False,False,0) | 61 | labelvbox.pack_start(self.location_label,False,False,0) |
123 | 62 | labelvbox.pack_start(self.url_label,False,False,0) | 62 | labelvbox.pack_start(self.url_label,False,False,0) |
124 | 63 | #make an hbox to hold the image and labels | 63 | #make an hbox to hold the image and labels |
126 | 64 | userhbox=gtk.HBox(False,5) | 64 | self.userhbox=gtk.HBox(False,5) |
127 | 65 | #make an hbox to hold widgets | 65 | #make an hbox to hold widgets |
129 | 66 | widgetbox = gtk.HBox(False) | 66 | self.widgetbox = gtk.HBox(False) |
130 | 67 | #add the imagevbox | 67 | #add the imagevbox |
135 | 68 | userhbox.pack_start(imagevbox,False,False,0) | 68 | self.userhbox.pack_start(imagevbox,False,False,0) |
136 | 69 | userhbox.pack_start(labelvbox,False,False,0) | 69 | self.userhbox.pack_start(labelvbox,False,False,0) |
137 | 70 | self.pack_start(userhbox,False,False,0) | 70 | self.pack_start(self.userhbox,False,False,0) |
138 | 71 | self.pack_start(widgetbox,False,False,0) | 71 | self.pack_start(self.widgetbox,False,False,0) |
139 | 72 | #make a checkbutton if we are following | 72 | #make a checkbutton if we are following |
140 | 73 | self.following_checkbutton = gtk.CheckButton(_("Following")) | 73 | self.following_checkbutton = gtk.CheckButton(_("Following")) |
141 | 74 | self.following_checkbutton.connect('toggled', self.following_toggled) | 74 | self.following_checkbutton.connect('toggled', self.following_toggled) |
143 | 75 | widgetbox.pack_start(self.following_checkbutton,False,False,0) | 75 | self.widgetbox.pack_start(self.following_checkbutton,False,False,0) |
144 | 76 | #how about a 'direct' button? | 76 | #how about a 'direct' button? |
145 | 77 | self.direct_button = DentButton('direct') | 77 | self.direct_button = DentButton('direct') |
146 | 78 | self.direct_button.connect('clicked',self.direct_clicked) | 78 | self.direct_button.connect('clicked',self.direct_clicked) |
148 | 79 | widgetbox.pack_start(self.direct_button,False,False,0) | 79 | self.widgetbox.pack_start(self.direct_button,False,False,0) |
149 | 80 | #create stuff for blocking -- commented out 9.3.10 x1101 | 80 | #create stuff for blocking -- commented out 9.3.10 x1101 |
150 | 81 | blockbox=gtk.HBox() | 81 | blockbox=gtk.HBox() |
151 | 82 | #enabler | 82 | #enabler |
152 | 83 | self.enable_block_checkbutton = gtk.CheckButton(_("Enable Blocking")) | 83 | self.enable_block_checkbutton = gtk.CheckButton(_("Enable Blocking")) |
153 | 84 | self.enable_block_checkbutton.connect('toggled', self.block_enable_toggled) | 84 | self.enable_block_checkbutton.connect('toggled', self.block_enable_toggled) |
155 | 85 | 85 | ||
156 | 86 | #the blocking buttons | 86 | #the blocking buttons |
157 | 87 | self.block_button = DentButton('block') | 87 | self.block_button = DentButton('block') |
158 | 88 | self.block_button.connect('clicked',self.block_clicked) | 88 | self.block_button.connect('clicked',self.block_clicked) |
159 | 89 | self.block_button.set_sensitive(False) | 89 | self.block_button.set_sensitive(False) |
160 | 90 | blockbox.pack_start(self.block_button,False,False,0) | 90 | blockbox.pack_start(self.block_button,False,False,0) |
161 | 91 | blockbox.pack_start(self.enable_block_checkbutton,False,False,0) | 91 | blockbox.pack_start(self.enable_block_checkbutton,False,False,0) |
164 | 92 | 92 | self.widgetbox.pack_start(blockbox,False,False,0) | |
165 | 93 | widgetbox.pack_end(blockbox) | 93 | |
166 | 94 | #the collapse button | ||
167 | 95 | collapsebox = gtk.Alignment(xalign=1.0) | ||
168 | 96 | self.collapse_button = DentButton(u'\u25b2') | ||
169 | 97 | self.collapse_button.connect('clicked',self.collapse_clicked) | ||
170 | 98 | collapsebox.add(self.collapse_button) | ||
171 | 99 | self.widgetbox.pack_end(collapsebox,True,True,0) | ||
172 | 100 | |||
173 | 101 | #the collapsed widget box and name label | ||
174 | 102 | self.widgetbox_collapsed = gtk.HBox(False) | ||
175 | 103 | self.name_label_collapsed = gtk.Label() | ||
176 | 104 | self.widgetbox_collapsed.pack_start(self.name_label_collapsed,False,False,0) | ||
177 | 105 | #its expand button | ||
178 | 106 | expandbox = gtk.Alignment(xalign=1.0) | ||
179 | 107 | self.expand_button = DentButton(u'\u25bc') | ||
180 | 108 | self.expand_button.connect('clicked',self.expand_clicked) | ||
181 | 109 | expandbox.add(self.expand_button) | ||
182 | 110 | self.widgetbox_collapsed.pack_end(expandbox,True,True,0) | ||
183 | 111 | #pack it up | ||
184 | 112 | self.pack_start(self.widgetbox_collapsed,False,False,0) | ||
185 | 113 | |||
186 | 94 | #create a user dent scroller and add it to the user page | 114 | #create a user dent scroller and add it to the user page |
187 | 95 | self.dentScroller = DentScroller() | 115 | self.dentScroller = DentScroller() |
188 | 96 | self.pack_start(self.dentScroller) | 116 | self.pack_start(self.dentScroller) |
189 | 97 | 117 | ||
190 | 98 | #make a "close" button | ||
191 | 99 | hbox = gtk.HBox(False) | ||
192 | 100 | user_close_button=gtk.Button(_("Close")) | ||
193 | 101 | hbox.pack_start(user_close_button,False,False,0) | ||
194 | 102 | user_close_button.connect('clicked',self.close) | ||
195 | 103 | self.pack_end(hbox,False,False,0) | ||
196 | 104 | |||
197 | 105 | def set_image(self,image): | 118 | def set_image(self,image): |
198 | 106 | self.image.set_from_file(image) | 119 | self.image.set_from_file(image) |
199 | 107 | self.image.show() | 120 | self.image.show() |
200 | @@ -110,6 +123,7 @@ | |||
201 | 110 | self.screen_name = data['screen_name'] | 123 | self.screen_name = data['screen_name'] |
202 | 111 | self.user_id=data['id'] | 124 | self.user_id=data['id'] |
203 | 112 | self.name_label.set_text("%s (%s)" %(data['name'],data['screen_name']) ) | 125 | self.name_label.set_text("%s (%s)" %(data['name'],data['screen_name']) ) |
204 | 126 | self.name_label_collapsed.set_text("%s (%s)" %(data['name'],data['screen_name']) ) | ||
205 | 113 | if data['location']!=None: | 127 | if data['location']!=None: |
206 | 114 | self.location_label.set_text("%s: %s" % (_("Location"),data['location']) ) | 128 | self.location_label.set_text("%s: %s" % (_("Location"),data['location']) ) |
207 | 115 | self.location_label.show() | 129 | self.location_label.show() |
208 | @@ -177,6 +191,16 @@ | |||
209 | 177 | #disable the button | 191 | #disable the button |
210 | 178 | widget.set_sensitive(False) | 192 | widget.set_sensitive(False) |
211 | 179 | self.emit('block-create',self.user_id) | 193 | self.emit('block-create',self.user_id) |
212 | 194 | |||
213 | 195 | def collapse_clicked(self,widget): | ||
214 | 196 | self.userhbox.hide() | ||
215 | 197 | self.widgetbox.hide() | ||
216 | 198 | self.widgetbox_collapsed.show() | ||
217 | 199 | |||
218 | 200 | def expand_clicked(self,widget): | ||
219 | 201 | self.userhbox.show() | ||
220 | 202 | self.widgetbox.show() | ||
221 | 203 | self.widgetbox_collapsed.hide() | ||
222 | 180 | 204 | ||
223 | 181 | def process_link(self, label, uri ): | 205 | def process_link(self, label, uri ): |
224 | 182 | self.emit('open-link', uri ) | 206 | self.emit('open-link', uri ) |
225 | 183 | 207 | ||
226 | === modified file 'heybuddy.py' | |||
227 | --- heybuddy.py 2011-05-04 21:57:08 +0000 | |||
228 | +++ heybuddy.py 2011-05-05 04:39:25 +0000 | |||
229 | @@ -192,21 +192,59 @@ | |||
230 | 192 | #self.mainwindow.connect('window-state-event', self.mainwindow_state_event) | 192 | #self.mainwindow.connect('window-state-event', self.mainwindow_state_event) |
231 | 193 | self.mainwindow.connect('delete-event', self.mainwindow_delete_event) | 193 | self.mainwindow.connect('delete-event', self.mainwindow_delete_event) |
232 | 194 | 194 | ||
233 | 195 | # local function to create a closeable tab label for closeable tabs | ||
234 | 196 | def closeable_tab_label(caption, tab): | ||
235 | 197 | tablabel = gtk.HBox(False) | ||
236 | 198 | tablabel.pack_start(gtk.Label(caption),True,True,0) | ||
237 | 199 | closebutton = gtk.Button() | ||
238 | 200 | closeicon = gtk.Image() | ||
239 | 201 | closeicon.set_from_stock(gtk.STOCK_CLOSE,gtk.ICON_SIZE_MENU) | ||
240 | 202 | closebutton.set_image(closeicon) | ||
241 | 203 | closebutton.set_relief(gtk.RELIEF_NONE) | ||
242 | 204 | tinybutton_style = gtk.RcStyle() | ||
243 | 205 | tinybutton_style.xthickness = 0 | ||
244 | 206 | tinybutton_style.ythickness = 0 | ||
245 | 207 | closebutton.modify_style(tinybutton_style) | ||
246 | 208 | if tab != None: # if this isn't a mock-add | ||
247 | 209 | closebutton.connect('clicked',tab.close) | ||
248 | 210 | closebutton.set_tooltip_text(_("Close")) | ||
249 | 211 | tablabel.pack_start(closebutton,False,False,0) | ||
250 | 212 | tablabel.show_all() | ||
251 | 213 | return tablabel | ||
252 | 214 | |||
253 | 215 | # do a mock add of dentspage, with a close label, so as to determine height needed for uncloseable tabs' labels, then break it all down again | ||
254 | 216 | # this is ridiculously hacky, but it works, and doesn't leave anything behind | ||
255 | 217 | self.dentspage = ScrollPage() | ||
256 | 218 | self.mock_label = closeable_tab_label(_("Dents"),None) | ||
257 | 219 | self.mainwindow.notebook.append_page(self.dentspage,self.mock_label) | ||
258 | 220 | self.mainwindow.show_all() # we have to do this so the tab gets actualised, and thus gets a height | ||
259 | 221 | min_tab_height = self.mock_label.allocation.height | ||
260 | 222 | self.mainwindow.hide_all() | ||
261 | 223 | self.mainwindow.notebook.remove_page(-1) | ||
262 | 224 | del self.mock_label | ||
263 | 225 | |||
264 | 226 | # local function to create a label the same height as the closeable tabs' labels | ||
265 | 227 | def uncloseable_tab_label(caption): | ||
266 | 228 | tablabel = gtk.Label(caption) | ||
267 | 229 | tablabel.set_size_request(-1,min_tab_height) | ||
268 | 230 | tablabel.show() | ||
269 | 231 | return tablabel | ||
270 | 232 | |||
271 | 195 | # create and add all of the pages | 233 | # create and add all of the pages |
272 | 196 | self.dentspage = ScrollPage() | 234 | self.dentspage = ScrollPage() |
274 | 197 | self.mainwindow.notebook.append_page(self.dentspage,gtk.Label(_("Dents") ) ) | 235 | self.mainwindow.notebook.append_page(self.dentspage,uncloseable_tab_label(_("Dents") ) ) |
275 | 198 | 236 | ||
276 | 199 | self.mentionspage = ScrollPage() | 237 | self.mentionspage = ScrollPage() |
278 | 200 | self.mainwindow.notebook.append_page(self.mentionspage,gtk.Label(_("Mentions")) ) | 238 | self.mainwindow.notebook.append_page(self.mentionspage,uncloseable_tab_label(_("Mentions")) ) |
279 | 201 | 239 | ||
280 | 202 | self.directspage = ScrollPage() | 240 | self.directspage = ScrollPage() |
282 | 203 | self.mainwindow.notebook.append_page(self.directspage,gtk.Label(_("Directs")) ) | 241 | self.mainwindow.notebook.append_page(self.directspage,uncloseable_tab_label(_("Directs")) ) |
283 | 204 | 242 | ||
284 | 205 | #make the conversation page | 243 | #make the conversation page |
285 | 206 | self.contextpage=ContextPage() | 244 | self.contextpage=ContextPage() |
286 | 207 | self.contextpage.connect('context-page-hide',self.hide_contextpage) | 245 | self.contextpage.connect('context-page-hide',self.hide_contextpage) |
287 | 208 | #add the contextpage | 246 | #add the contextpage |
289 | 209 | self.mainwindow.notebook.append_page(self.contextpage,gtk.Label("Context") ) | 247 | self.mainwindow.notebook.append_page(self.contextpage,closeable_tab_label("Context",self.contextpage)) |
290 | 210 | 248 | ||
291 | 211 | #create a user page | 249 | #create a user page |
292 | 212 | self.userpage=UserPage() | 250 | self.userpage=UserPage() |
293 | @@ -218,15 +256,16 @@ | |||
294 | 218 | self.userpage.connect('block-destroy',self.block_destroy) | 256 | self.userpage.connect('block-destroy',self.block_destroy) |
295 | 219 | 257 | ||
296 | 220 | #add the userpage | 258 | #add the userpage |
298 | 221 | self.mainwindow.notebook.append_page(self.userpage,gtk.Label(_("User") ) ) | 259 | self.mainwindow.notebook.append_page(self.userpage,closeable_tab_label(_("User"),self.userpage ) ) |
299 | 222 | 260 | ||
300 | 223 | #create a Group page | 261 | #create a Group page |
301 | 224 | self.grouppage=GroupPage() | 262 | self.grouppage=GroupPage() |
302 | 225 | self.grouppage.connect('group-page-hide',self.hide_grouppage) | 263 | self.grouppage.connect('group-page-hide',self.hide_grouppage) |
303 | 226 | self.grouppage.connect('join-group',self.join_group) | 264 | self.grouppage.connect('join-group',self.join_group) |
304 | 227 | self.grouppage.connect('open-link',self.open_link) | 265 | self.grouppage.connect('open-link',self.open_link) |
305 | 266 | |||
306 | 228 | #add the Grouppage | 267 | #add the Grouppage |
308 | 229 | self.mainwindow.notebook.append_page(self.grouppage,gtk.Label(_("Group") ) ) | 268 | self.mainwindow.notebook.append_page(self.grouppage,closeable_tab_label(_("Group"),self.grouppage ) ) |
309 | 230 | 269 | ||
310 | 231 | #create and add the account page | 270 | #create and add the account page |
311 | 232 | self.settingspage = SettingsPage(has_hildon,has_pynotify) | 271 | self.settingspage = SettingsPage(has_hildon,has_pynotify) |
312 | @@ -264,11 +303,11 @@ | |||
313 | 264 | self.settingspage.connect('add-user-filter', self.add_user_filter ) | 303 | self.settingspage.connect('add-user-filter', self.add_user_filter ) |
314 | 265 | self.settingspage.connect('remove-user-filter', self.remove_user_filter ) | 304 | self.settingspage.connect('remove-user-filter', self.remove_user_filter ) |
315 | 266 | #add the settings to the mainwindow | 305 | #add the settings to the mainwindow |
317 | 267 | self.mainwindow.add_notebook_page(self.settingspage,gtk.Label(_("Settings") ) ) | 306 | self.mainwindow.add_notebook_page(self.settingspage,uncloseable_tab_label(_("Settings") ) ) |
318 | 268 | #create and add the about page | 307 | #create and add the about page |
319 | 269 | about = About(version,branch,self.standard_icon_path,self.readme_file) | 308 | about = About(version,branch,self.standard_icon_path,self.readme_file) |
320 | 270 | about.connect('open-link',self.open_link) | 309 | about.connect('open-link',self.open_link) |
322 | 271 | self.mainwindow.add_notebook_page( about, gtk.Label(_("About") ) ) | 310 | self.mainwindow.add_notebook_page( about, uncloseable_tab_label(_("About") ) ) |
323 | 272 | self.mainwindow.show_some() | 311 | self.mainwindow.show_some() |
324 | 273 | #hide some stuff | 312 | #hide some stuff |
325 | 274 | self.grouppage.hide_all() | 313 | self.grouppage.hide_all() |
326 | @@ -693,6 +732,8 @@ | |||
327 | 693 | self.userpage.disable() | 732 | self.userpage.disable() |
328 | 694 | #show the page | 733 | #show the page |
329 | 695 | self.userpage.show_all() | 734 | self.userpage.show_all() |
330 | 735 | #rehide its collapsed widgetbox, that doesn't need to be visible yet | ||
331 | 736 | self.userpage.widgetbox_collapsed.hide() | ||
332 | 696 | #clear the userpage stuff | 737 | #clear the userpage stuff |
333 | 697 | self.userpage.clear() | 738 | self.userpage.clear() |
334 | 698 | #change to the user page | 739 | #change to the user page |
335 | @@ -706,6 +747,8 @@ | |||
336 | 706 | self.userpage.disable() | 747 | self.userpage.disable() |
337 | 707 | #show the page | 748 | #show the page |
338 | 708 | self.userpage.show_all() | 749 | self.userpage.show_all() |
339 | 750 | #rehide its collapsed widgetbox, that doesn't need to be visible yet | ||
340 | 751 | self.userpage.widgetbox_collapsed.hide() | ||
341 | 709 | #clear the userpage stuff | 752 | #clear the userpage stuff |
342 | 710 | self.userpage.clear() | 753 | self.userpage.clear() |
343 | 711 | #change to the user page | 754 | #change to the user page |
344 | @@ -959,6 +1002,8 @@ | |||
345 | 959 | self.grouppage.joined_checkbutton.set_sensitive(False) | 1002 | self.grouppage.joined_checkbutton.set_sensitive(False) |
346 | 960 | #make the grouppage visible | 1003 | #make the grouppage visible |
347 | 961 | self.grouppage.show_all() | 1004 | self.grouppage.show_all() |
348 | 1005 | #rehide its collapsed widgetbox, that doesn't need to be visible yet | ||
349 | 1006 | self.grouppage.widgetbox_collapsed.hide() | ||
350 | 962 | #clear the grouppage | 1007 | #clear the grouppage |
351 | 963 | self.grouppage.clear() | 1008 | self.grouppage.clear() |
352 | 964 | #switch to the group page | 1009 | #switch to the group page |
shit yea, boyeeeeee!