Kiln » TortoiseHg » TortoiseHg
Clone URL:  
Pushed to one repository · View In Graph Contained in 0.4rc1, 0.4rc2, and 0.4rc3

hggtk/gdialog: adopt hggtk's native settings management

this eliminates maintainence of ~/.hgext/gtools/ directory.

Changeset 15d08463ac53

Parent dcd907aac480

by TK Soh

Changes to one file · Browse files at 15d08463ac53 Showing diff from parent dcd907aac480 Diff from another changeset...

Change 1 of 3 Show Entire File hggtk/​gdialog.py Stacked
 
27
28
29
30
 
31
32
33
 
97
98
99
 
100
101
102
 
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
 
 
 
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
 
 
 
 
 
351
352
353
 
27
28
29
 
30
31
32
33
 
97
98
99
100
101
102
103
 
313
314
315
 
316
 
 
 
 
 
 
 
 
 
 
317
318
319
320
 
 
321
322
323
324
325
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
326
327
328
329
330
331
332
333
@@ -27,7 +27,7 @@
 from mercurial.node import *  from mercurial import cmdutil, util, ui, hg, commands, patch  from hgext import extdiff -from shlib import shell_notify, set_tortoise_icon +from shlib import shell_notify, set_tortoise_icon, Settings  from thgconfig import ConfigDialog    class SimpleMessage(gtk.MessageDialog): @@ -97,6 +97,7 @@
  self.opts = opts   self.main = main   self.tmproot = None + self.settings = Settings(self.__class__.__name__)     ### Following methods are meant to be overridden by subclasses ###   @@ -312,42 +313,21 @@
    def _destroying(self, gtkobj):   try: - file = None   settings = self.save_settings() - versioned = (GDialog.settings_version, settings) - dirname = os.path.join(os.path.expanduser('~'), '.hgext/gtools') - filename = os.path.join(dirname, self.__class__.__name__) - try: - if not os.path.exists(dirname): - os.makedirs(dirname) - file = open(filename, 'wb') - cPickle.dump(versioned, file, cPickle.HIGHEST_PROTOCOL) - except (IOError, cPickle.PickleError): - pass + self.settings['settings_version'] = GDialog.settings_version + self.settings['dialogs'] = settings + self.settings.write()   finally: - if file: - file.close()   if self.main:   gtk.main_quit()       def _load_settings(self): - try: - file = None - settings = None - dirname = os.path.join(os.path.expanduser('~'), '.hgext/gtools') - filename = os.path.join(dirname, self.__class__.__name__) - try: - file = open(filename, 'rb') - versioned = cPickle.load(file) - if versioned[0] == GDialog.settings_version: - settings = versioned[1] - except (IOError, cPickle.PickleError), inst: - pass - finally: - if file: - file.close() - self.load_settings(settings) + settings = {} + version = self.settings.get('settings_version', None) + if version == GDialog.settings_version: + settings = self.settings.get('dialogs', {}) + self.load_settings(settings)       def _hg_call_wrapper(self, title, command, showoutput=True):