Kiln » TortoiseHg » TortoiseHg
Clone URL:  
Pushed to one repository · View In Graph Contained in 1.0.2, 1.0.3, and 1.0.4

stable quickop: add functionality to restore dialog geometories

Fixes #1087

Changeset 1fb070779fba

Parent 01cedc3f47a2

by Yuki KODAMA

Changes to one file · Browse files at 1fb070779fba Showing diff from parent 01cedc3f47a2 Diff from another changeset...

 
21
22
23
 
 
 
24
25
26
 
46
47
48
49
 
 
 
 
50
51
52
 
208
209
210
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
211
212
213
 
21
22
23
24
25
26
27
28
29
 
49
50
51
 
52
53
54
55
56
57
58
 
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
@@ -21,6 +21,9 @@
  'revert': (_('Select files to revert'), _('Revert')),   'remove': (_('Select files to remove'), _('Remove')),}   +DEFAULT_SIZE = (450, 300) +DEFAULT_POS = (0, 0) +  class QuickOpDialog(gdialog.GDialog):   """ Dialog for performing quick dirstate operations """   def __init__(self, command, pats): @@ -46,7 +49,10 @@
  return 'hg.ico'     def get_defsize(self): - return (450, 300) + return self.defsize + + def get_setting_name(self): + return 'quickop'     def get_body(self, vbox):   os.chdir(self.repo.root) @@ -208,6 +214,36 @@
  else:   self.cmd.set_result(_('Failed'), style='error')   + def before_show(self): + # restore dialog state + if self.defmax: + self.maximize() + + # restore dialog position + screen = self.get_screen() + w, h = screen.get_width(), screen.get_height() + x, y = self.defpos + if x >= 0 and x < w and y >= 0 and y < h: + self.move(x, y) + + def load_settings(self): + self.defsize = self.settings.get_value('size', DEFAULT_SIZE) + self.defpos = self.settings.get_value('pos', DEFAULT_POS) + self.defmax = self.settings.get_value('maximize', False) + + def store_settings(self): + state = self.window.get_state() + ismaximized = bool(state & gtk.gdk.WINDOW_STATE_MAXIMIZED) + if ismaximized or state & gtk.gdk.WINDOW_STATE_ICONIFIED: + self.settings.set_value('size', DEFAULT_SIZE) + self.settings.set_value('pos', DEFAULT_POS) + else: + rect = self.get_allocation() + self.settings.set_value('size', (rect.width, rect.height)) + self.settings.set_value('pos', self.get_position()) + self.settings.set_value('maximize', ismaximized) + self.settings.write() +   ### End of Overriding Section ###     def operation(self):