/[straw]/straw/src/lib/Config.py
ViewVC logotype

Diff of /straw/src/lib/Config.py

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.25 by juri, Sat Nov 8 16:50:17 2003 UTC revision 1.26 by ScottDW, Sun Nov 9 07:03:52 2003 UTC
# Line 53  class ConfigPicklePersistence: Line 53  class ConfigPicklePersistence:
53          return self._dict.get(option, None)          return self._dict.get(option, None)
54    
55      def _initialize_dict(self):      def _initialize_dict(self):
56          pickle_file = open(self._config_file, "r")          if os.path.exists(self._config_file):
57          self._dict = cPickle.load(pickle_file)              pickle_file = open(self._config_file, "r")
58          pickle_file.close()              self._dict = cPickle.load(pickle_file)
59                pickle_file.close()
60            else:
61                self._dict = {}
62    
63  class ConfigGConfPersistence:  class ConfigGConfPersistence:
64      SAVERS = {OPTION_LAST_POLL: 'int',      SAVERS = {OPTION_LAST_POLL: 'int',
# Line 258  class NullProxyConfig(BaseProxyConfig): Line 261  class NullProxyConfig(BaseProxyConfig):
261  # The main man  # The main man
262  class Config(object, straw.SignalEmitter):  class Config(object, straw.SignalEmitter):
263      _straw_dir = os.path.join(os.getenv("HOME"), ".straw")      _straw_dir = os.path.join(os.getenv("HOME"), ".straw")
264        _straw_config_file = os.path.join(_straw_dir, "config")
265    
266      def __init__(self, persistence):      def __init__(self, persistence):
267          self.persistence = persistence          self.persistence = persistence
# Line 271  class Config(object, straw.SignalEmitter Line 275  class Config(object, straw.SignalEmitter
275              self._proxy_config = p()              self._proxy_config = p()
276              if self._proxy_config.config_working:              if self._proxy_config.config_working:
277                  break                  break
         self.first_time = ensure_directory(self._straw_dir)  
         self._last_poll = self.persistence.load_option(OPTION_LAST_POLL)  
278    
279          if self._last_poll is None or self._last_poll == 0:          ensure_directory(self._straw_dir)
280              self._load_defaults()          self._load_defaults()
281    
282            last_poll = self.persistence.load_option(OPTION_LAST_POLL)
283            has_last_poll = not (last_poll is None or last_poll == 0)
284            has_config = os.path.exists(self.straw_config_file)
285    
286            self.first_time = not (has_config or has_last_poll)
287    
288            if self.first_time:
289              return              return
290    
291          self._items_stored = self.persistence.load_option(OPTION_ITEMS_STORED)          if has_config:
292          self._item_order = self.persistence.load_option(OPTION_ITEM_ORDER)              self._feed_id_seq = self.persistence.load_option(OPTION_FEED_ID_SEQ)
293          self._main_window_size = (  
294              self.persistence.load_option(OPTION_WINDOW_SIZE_W),          if has_last_poll:
295              self.persistence.load_option(OPTION_WINDOW_SIZE_H))              self._items_stored = self.persistence.load_option(OPTION_ITEMS_STORED)
296          self._main_pane_position = self.persistence.load_option(              self._item_order = self.persistence.load_option(OPTION_ITEM_ORDER)
297              OPTION_MAIN_PANE_POS)              self._main_window_size = (
298          self._sub_pane_position = self.persistence.load_option(                  self.persistence.load_option(OPTION_WINDOW_SIZE_W),
299              OPTION_SUB_PANE_POS)                  self.persistence.load_option(OPTION_WINDOW_SIZE_H))
300          self._offline = self.persistence.load_option(OPTION_OFFLINE)              self._main_pane_position = self.persistence.load_option(
301          self._poll_freq = self.persistence.load_option(OPTION_POLL_FREQUENCY)                  OPTION_MAIN_PANE_POS)
302          self._feed_id_seq = self.persistence.load_option(OPTION_FEED_ID_SEQ)              self._sub_pane_position = self.persistence.load_option(
303                    OPTION_SUB_PANE_POS)
304                self._offline = self.persistence.load_option(OPTION_OFFLINE)
305                self._poll_freq = self.persistence.load_option(OPTION_POLL_FREQUENCY)
306    
307      def _load_defaults(self):      def _load_defaults(self):
308          self._poll_freq = 3600          self._poll_freq = 3600
# Line 300  class Config(object, straw.SignalEmitter Line 313  class Config(object, straw.SignalEmitter
313          self._sub_pane_position = 180          self._sub_pane_position = 180
314          self._offline = True          self._offline = True
315          self._last_poll = 0          self._last_poll = 0
316          self._feed_id_seq = 0          self._feed_id_seq = 0        
317    
318      def get_straw_dir(self):      def get_straw_dir(self):
319          return self._straw_dir          return self._straw_dir
320    
321      straw_dir = property(get_straw_dir, None, None, "")      straw_dir = property(get_straw_dir, None, None, "")
322    
323        def get_straw_config_file(self):
324            return self._straw_config_file
325    
326        straw_config_file = property(get_straw_config_file, None, None, "")
327            
328      def get_proxy_config(self):      def get_proxy_config(self):
329          return self._proxy_config          return self._proxy_config
# Line 426  class Config(object, straw.SignalEmitter Line 444  class Config(object, straw.SignalEmitter
444      def set_sub_pane_position(self, position):      def set_sub_pane_position(self, position):
445          if self._sub_pane_position != position:          if self._sub_pane_position != position:
446              self._sub_pane_position = position              self._sub_pane_position = position
447              self.peristence.save_option(OPTION_SUB_PANE_POS, position)              self.persistence.save_option(OPTION_SUB_PANE_POS, position)
448              self.emit_signal(straw.SubPanePositionChangedSignal(self))              self.emit_signal(straw.SubPanePositionChangedSignal(self))
449    
450      def get_sub_pane_position(self):      def get_sub_pane_position(self):
# Line 437  class Config(object, straw.SignalEmitter Line 455  class Config(object, straw.SignalEmitter
455  config_instance = None  config_instance = None
456    
457  def convert_if_necessary(config):  def convert_if_necessary(config):
458      f = open(os.path.join(config.straw_dir, "config"), "rw")      if not os.path.exists(config.straw_config_file):
459            return
460    
461        f = open(config.straw_config_file, "rw")
462      cf = cPickle.load(f)      cf = cPickle.load(f)
463      if cf.has_key('poll_frequency'):      if cf.has_key('poll_frequency'):
464          config.poll_frequency = cf.get('poll_frequency')          config.poll_frequency = cf.get('poll_frequency')
# Line 468  def create_gconf_persistence(): Line 489  def create_gconf_persistence():
489      return ConfigGConfPersistence(client)      return ConfigGConfPersistence(client)
490    
491  def create_pickle_persistence():  def create_pickle_persistence():
492      return ConfigPicklePersistence(os.path.join(Config._straw_dir, "config"))      return ConfigPicklePersistence(Config._straw_config_file)
493    
494  def create_instance():  def create_instance():
     gp = create_gconf_persistence()  
     pp = create_pickle_persistence()  
495      cp = ConfigPersistence(      cp = ConfigPersistence(
496          (create_gconf_persistence(),          (create_gconf_persistence(),
497           (OPTION_LAST_POLL, OPTION_ITEMS_STORED, OPTION_ITEM_ORDER,           (OPTION_LAST_POLL, OPTION_ITEMS_STORED, OPTION_ITEM_ORDER,

Legend:
Removed from v.1.25  
changed lines
  Added in v.1.26

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26