Kiln » TortoiseHg » TortoiseHg
Clone URL:  
Pushed to one repository · View In Graph Contained in 0.9, 0.9.1, and 0.9.1.1

gdialog: refactor: use dicts for menu entries

don't use the text of the menu item to address it

Changeset bb2fb44256e0

Parent 2bbd439e063c

by Adrian Buehlmann

Changes to 4 files · Browse files at bb2fb44256e0 Showing diff from parent 2bbd439e063c Diff from another changeset...

 
176
177
178
179
180
181
182
183
184
 
 
 
 
 
 
185
186
187
188
189
190
191
192
193
194
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
195
196
197
 
618
619
620
621
 
622
623
624
 
176
177
178
 
179
 
 
 
 
180
181
182
183
184
185
186
 
 
 
 
 
 
 
 
 
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
 
627
628
629
 
630
631
632
633
@@ -176,22 +176,31 @@
  else:   frame.hide()   setattr(self, statename, show) - no = False   return [(_('_View'), - [(_('Advanced'), True, toggle, ['advanced'], self.showadvanced), - (_('Parents'), True, toggle, ['parents'], self.showparents), - ('----', None, None, None, None), - (_('Refresh'), False, refresh, [], gtk.STOCK_REFRESH)]), + [dict(text=_('Advanced'), ascheck=True, func=toggle, + args=['advanced'], check=self.showadvanced), + dict(text=_('Parents'), ascheck=True, func=toggle, + args=['parents'], check=self.showparents), + dict(text='----'), + dict(text=_('Refresh'), func=refresh, icon=gtk.STOCK_REFRESH)]),   (_('_Operations'), [ - (_('_Commit'), no, self.commit_clicked, [], gtk.STOCK_OK), - (_('_Undo'), no, self.undo_clicked, [], gtk.STOCK_UNDO), - ('----', None, None, None, None), - (_('_Diff'), no, self.diff_clicked, [], gtk.STOCK_JUSTIFY_FILL), - (_('Re_vert'), no, self.revert_clicked, [], gtk.STOCK_MEDIA_REWIND), - (_('_Add'), no, self.add_clicked, [], gtk.STOCK_ADD), - (_('_Remove'), no, self.remove_clicked, [], gtk.STOCK_DELETE), - (_('Move'), no, self.move_clicked, [], gtk.STOCK_JUMP_TO), - (_('_Forget'), no, self.forget_clicked, [], gtk.STOCK_CLEAR)]), + dict(text=_('_Commit'), func=self.commit_clicked, + icon=gtk.STOCK_OK), + dict(name='undo', text=_('_Undo'), func=self.undo_clicked, + icon=gtk.STOCK_UNDO), + dict(text='----'), + dict(name='diff', text=_('_Diff'), func=self.diff_clicked, + icon=gtk.STOCK_JUSTIFY_FILL), + dict(name='revert', text=_('Re_vert'), func=self.revert_clicked, + icon=gtk.STOCK_MEDIA_REWIND), + dict(name='add', text=_('_Add'), func=self.add_clicked, + icon=gtk.STOCK_ADD), + dict(name='remove', text=_('_Remove'), func=self.remove_clicked, + icon=gtk.STOCK_DELETE), + dict(name='move', text=_('Move'), func=self.move_clicked, + icon=gtk.STOCK_JUMP_TO), + dict(name='forget', text=_('_Forget'), func=self.forget_clicked, + icon=gtk.STOCK_CLEAR)]),   ]     def save_settings(self): @@ -618,7 +627,7 @@
  can_undo = os.path.exists(self.repo.sjoin("undo")) and \   self.last_commit_id is not None   self.undo_button.set_sensitive(can_undo) - self.get_menuitem(_('_Undo')).set_sensitive(can_undo) + self.get_menuitem('undo').set_sensitive(can_undo)     def check_merge(self):   if self.is_merge():
 
333
334
335
336
337
 
 
 
 
 
338
339
340
 
428
429
430
431
432
433
434
435
436
437
438
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
439
440
441
442
 
 
 
 
443
444
445
446
447
448
 
 
 
 
 
 
 
 
 
449
450
451
452
453
454
455
456
 
 
 
 
 
457
458
 
459
460
461
 
462
463
464
 
 
 
 
465
466
467
468
 
469
470
 
 
471
472
473
 
333
334
335
 
 
336
337
338
339
340
341
342
343
 
431
432
433
 
 
 
 
 
 
 
 
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
 
 
452
453
454
455
456
457
458
459
 
 
460
461
462
463
464
465
466
467
468
469
470
471
 
 
 
 
 
472
473
474
475
476
477
 
478
479
480
 
481
482
 
 
483
484
485
486
487
488
489
 
490
491
 
492
493
494
495
496
@@ -333,8 +333,11 @@
  def get_toolbutton(self, label):   return self.toolbuttons[label]   - def get_menuitem(self, label): - return self.menuitems.get(label, None) + def get_menuitem(self, name, throw=True): + if throw: + return self.menuitems[name] + else: + return self.menuitems.get(name)     def get_reponame(self):   return hglib.get_reponame(self.repo) @@ -428,46 +431,66 @@
  if menus:   allmenus = [   (_('_Tools'), - [(_('Changelog'), False, self.launch, ['log'], 'menulog.ico'), - (_('Commit'), False, self.launch, ['commit'], 'menucommit.ico'), - (_('Datamine'), False, self.launch, ['datamine'], 'menurepobrowse.ico'), - (_('Recovery'), False, self.launch, ['recover'], 'general.ico'), - (_('Serve'), False, self.launch, ['serve'], 'proxy.ico'), - (_('Shelve'), False, self.launch, ['shelve'], 'shelve.ico'), - (_('Synchronize'), False, self.launch, ['synch'], 'menusynch.ico'), - (_('Settings'), False, self.launch, ['repoconfig'], 'settings_repo.ico')]) + [dict(text=_('Changelog'), func=self.launch, args=['log'], + icon='menulog.ico'), + dict(text=_('Commit'), func=self.launch, args=['commit'], + icon='menucommit.ico'), + dict(text=_('Datamine'), func=self.launch, args=['datamine'], + icon='menurepobrowse.ico'), + dict(text=_('Recovery'), func=self.launch, args=['recover'], + icon='general.ico'), + dict(text=_('Serve'), func=self.launch, args=['serve'], + icon='proxy.ico'), + dict(text=_('Shelve'), func=self.launch, args=['shelve'], + icon='shelve.ico'), + dict(text=_('Synchronize'), func=self.launch, args=['synch'], + icon='menusynch.ico'), + dict(text=_('Settings'), func=self.launch, args=['repoconfig'], + icon='settings_repo.ico')])   ] + menus + [   (_('_Help'), - [(_('Contents'), False, self.helpcontents, [], gtk.STOCK_INFO), - (_('About'), False, self.launch, ['about'], gtk.STOCK_ABOUT)]) + [dict(text=_('Contents'), func=self.helpcontents, + icon=gtk.STOCK_INFO), + dict(text=_('About'), func=self.launch, args=['about'], + icon=gtk.STOCK_ABOUT)])   ]   menubar = gtk.MenuBar()   for title, items in allmenus:   menu = gtk.Menu() - for name, ascheck, func, args, icon_or_var in items: - if name == '----': + for d in items: + text = d['text'] + name = d.get('name') + func = d.get('func') + ascheck = d.get('ascheck', False) + args = d.get('args', []) + icon = d.get('icon') + check = d.get('check', False) + if text == '----':   item = gtk.SeparatorMenuItem()   else:   if ascheck: - item = gtk.CheckMenuItem(name) - item.set_active(icon_or_var) - elif icon_or_var: - item = gtk.ImageMenuItem(name) - if icon_or_var.startswith('gtk'): + item = gtk.CheckMenuItem(text) + item.set_active(check) + elif icon: + item = gtk.ImageMenuItem(text) + if icon.startswith('gtk'):   img = gtk.image_new_from_stock( - icon_or_var, gtk.ICON_SIZE_MENU) + icon, gtk.ICON_SIZE_MENU)   else:   img = gtk.Image() - ico = paths.get_tortoise_icon(icon_or_var) + ico = paths.get_tortoise_icon(icon)   if ico: - width, height = gtk.icon_size_lookup(gtk.ICON_SIZE_MENU) - pixbuf = gtk.gdk.pixbuf_new_from_file_at_size(ico, width, height) + width, height = gtk.icon_size_lookup( + gtk.ICON_SIZE_MENU) + pixbuf = gtk.gdk.pixbuf_new_from_file_at_size( + ico, width, height)   img.set_from_pixbuf(pixbuf)   item.set_image(img)   else: - item = gtk.MenuItem(name) + item = gtk.MenuItem(text)   item.connect('activate', func, *args) - self.menuitems[name] = item + if name: + self.menuitems[name] = item   menu.append(item)   item = gtk.MenuItem(title)   item.set_submenu(menu)
 
124
125
126
127
 
128
129
130
 
 
 
131
132
133
134
135
136
 
 
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
152
153
154
155
156
157
158
 
 
 
 
159
160
161
162
163
164
165
166
167
168
169
 
 
 
 
 
 
 
 
 
170
171
172
 
297
298
299
300
 
301
302
 
303
304
305
 
425
426
427
428
429
430
 
 
 
 
 
431
432
433
 
438
439
440
441
 
442
443
444
 
124
125
126
 
127
128
 
 
129
130
131
132
133
134
135
 
 
136
137
138
139
 
 
 
 
 
 
 
 
 
 
 
 
 
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
 
 
 
 
160
161
162
163
164
165
166
 
 
 
 
 
 
 
 
167
168
169
170
171
172
173
174
175
176
177
178
 
303
304
305
 
306
307
 
308
309
310
311
 
431
432
433
 
 
 
434
435
436
437
438
439
440
441
 
446
447
448
 
449
450
451
452
@@ -124,49 +124,55 @@
  lb = self.get_live_branches()   bmenus = []   if len(lb) > 1 or (lb and lb[0] != 'default'): - bmenus.append(('----', None, None, None, None)) + bmenus.append(dict(text='----'))   for name in lb[:10]: - bmenus.append((hglib.toutf(name), False, navigate, [name], None)) - + bmenus.append(dict(text=hglib.toutf(name), func=navigate, + args=[name])) +   fnc = self.toggle_view_column   if self.repo.ui.configbool('tortoisehg', 'disable-syncbar'):   sync_bar_item = []   else: - sync_bar_item = [(_('Sync Bar'), True, self.toggle_show_syncbar, - [], self.show_syncbar)] + sync_bar_item = [dict(text=_('Sync Bar'), ascheck=True, + func=self.toggle_show_syncbar, check=self.show_syncbar)]     return [(_('_View'), sync_bar_item + [ - (_('Filter Bar'), True, self.toggle_show_filterbar, [], - self.show_filterbar), - ('----', None, None, None, None), - (_('Choose Details...'), False, self.details_clicked, [], None), - ('----', None, None, None, None), - (_('Refresh'), False, refresh, [False], gtk.STOCK_REFRESH), - (_('Reset Marks'), False, refresh, [True], gtk.STOCK_REMOVE), - ('----', None, None, None, None), - (_('Compact Graph'), True, self.toggle_compactgraph, [], - self.compactgraph), - (_('Color by Branch'), True, self.toggle_branchcolor, [], - self.branch_color), - (_('Ignore Max Diff Size'), True, disable_maxdiff, [], False), + dict(text=_('Filter Bar'), ascheck=True, + func=self.toggle_show_filterbar, check=self.show_filterbar), + dict(text='----'), + dict(text=_('Choose Details...'), func=self.details_clicked), + dict(text='----'), + dict(text=_('Refresh'), func=refresh, args=[False], + icon=gtk.STOCK_REFRESH), + dict(text=_('Reset Marks'), func=refresh, args=[True], + icon=gtk.STOCK_REMOVE), + dict(text='----'), + dict(name='compact-graph', text=('Compact Graph'), ascheck=True, + func=self.toggle_compactgraph, check=self.compactgraph), + dict(name='color-by-branch', text=_('Color by Branch'), + ascheck=True, func=self.toggle_branchcolor, + check=self.branch_color), + dict(text=_('Ignore Max Diff Size'), ascheck=True, + func=disable_maxdiff),   ]),     (_('_Navigate'), [ - (_('Tip'), False, navigate, ['tip'], None), - (_('Working Parent'), False, navigate, ['.'], None), - ('----', None, None, None, None), - (_('Revision...'), False, navigate, [None], None), + dict(text=_('Tip'), func=navigate, args=['tip']), + dict(text=_('Working Parent'), func=navigate, args=['.']), + dict(text='----'), + dict(text=_('Revision...'), func=navigate, args=[None]),   ] + bmenus),     (_('_Synchronize'), [ - (_('Incoming'), False, self.incoming_clicked, [], None), - (_('Pull'), False, self.pull_clicked, [], None), - (_('Outgoing'), False, self.outgoing_clicked, [], None), - (_('Push'), False, self.push_clicked, [], None), - (_('Email...'), False, self.email_clicked, [], None), - ('----', None, None, None, None), - (_('Use proxy server'), True, toggle_proxy, [], False), - (_('Force push'), True, toggle_force, [], False), + dict(text=_('Incoming'), func=self.incoming_clicked), + dict(text=_('Pull'), func=self.pull_clicked), + dict(text=_('Outgoing'), func=self.outgoing_clicked), + dict(text=_('Push'), func=self.push_clicked), + dict(text=_('Email...'), func=self.email_clicked), + dict(text='----'), + dict(name='use-proxy-server', text=_('Use proxy server'), + ascheck=True, func=toggle_proxy), + dict(text=_('Force push'), ascheck=True, func=toggle_force),   ])   ]   @@ -297,9 +303,9 @@
  if self.graphcol != show:   self.graphcol = show   reload = True - item = self.get_menuitem(_('Compact Graph')) + item = self.get_menuitem('compact-graph')   item.set_sensitive(self.graphcol) - item = self.get_menuitem(_('Color by Branch')) + item = self.get_menuitem('color-by-branch')   item.set_sensitive(self.graphcol)   else:   self.graphview.set_property(property, show) @@ -425,9 +431,11 @@
  # ignore unknown column names, these could originate from garbeled   # persisted data   pass - self.get_menuitem(_('Compact Graph')).set_sensitive(self.graphcol) - self.get_menuitem(_('Color by Branch')).set_sensitive(self.graphcol) - item = self.get_menuitem(_('Use proxy server')) + + self.get_menuitem('compact-graph').set_sensitive(self.graphcol) + self.get_menuitem('color-by-branch').set_sensitive(self.graphcol) + + item = self.get_menuitem('use-proxy-server')   if ui.ui().config('http_proxy', 'host'):   item.set_sensitive(True)   item.set_active(True) @@ -438,7 +446,7 @@
  self.enable_mqpanel()     def get_proxy_args(self): - item = self.get_menuitem(_('Use proxy server')) + item = self.get_menuitem('use-proxy-server')   if item.get_property('sensitive') and not item.get_active():   return ['--config', 'http_proxy.host=']   else:
 
462
463
464
465
466
 
 
 
 
467
468
469
 
462
463
464
 
 
465
466
467
468
469
470
471
@@ -462,8 +462,10 @@
  for label in (_('_Diff'), _('Re_vert'), _('_Add'), _('_Remove'),   _('Move'), _('_Forget')):   self.get_toolbutton(label).set_sensitive(sensitive) - i = self.get_menuitem(label) - if i: i.set_sensitive(sensitive) + for cmd in ('diff', 'revert', 'add', 'remove', 'move', 'forget'): + i = self.get_menuitem(cmd, throw=False) + if i: + i.set_sensitive(sensitive)   if self.diff_notebook.get_current_page() == 2:   self.update_commit_preview()