Ignore:
Timestamp:
04/30/12 10:55:37 (12 years ago)
Author:
István Váradi <ivaradi@…>
Branch:
default
hg-Phase:
(<MercurialRepository 1 'hg:/home/ivaradi/mlx/hg' '/'>, 'public')
Message:

Added support for enabling/disabling message types

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/mlx/config.py

    r131 r132  
    33
    44#-------------------------------------------------------------------------------
     5
     6import const
    57
    68import os
     
    2426    """Our configuration."""
    2527    DEFAULT_UPDATE_URL = "http://mlx.varadiistvan.hu/update"
     28
     29    _messageTypesSection = "messageTypes"
    2630   
    2731    def __init__(self):
     
    3236        self._rememberPassword = False
    3337
     38        self._language = ""
     39        self._flareTimeFromFS = False
     40       
    3441        self._autoUpdate = True       
    3542        self._updateURL = Config.DEFAULT_UPDATE_URL
    36        
    37         self._language = ""
    38         self._flareTimeFromFS = False
    39 
     43
     44        self._messageTypeLevels = {}
     45       
    4046        self._modified = False
    4147
     
    102108            self._modified = True
    103109
     110    def getMessageTypeLevel(self, messageType):
     111        """Get the level for the given message type."""
     112        return self._messageTypeLevels[messageType] \
     113               if messageType in self._messageTypeLevels \
     114               else const.MESSAGELEVEL_NONE
     115
     116    def setMessageTypeLevel(self, messageType, level):
     117        """Set the level of the given message type."""
     118        if messageType not in self._messageTypeLevels or \
     119           self._messageTypeLevels[messageType]!=level:
     120            self._messageTypeLevels[messageType] = level
     121            self._modified = True
     122
    104123    @property
    105124    def autoUpdate(self):
     
    136155                                                  "rememberPassword", False)
    137156
    138         self._autoUpdate = self._getBoolean(config, "update", "auto", True)
    139         self._updateURL = self._get(config, "update", "url",
    140                                     Config.DEFAULT_UPDATE_URL)
    141 
    142157        self._language = self._get(config, "general", "language", "")
    143158        self._flareTimeFromFS = self._getBoolean(config, "general",
    144159                                                 "flareTimeFromFS",
    145160                                                 False)
    146        
     161
     162        self._messageTypeLevels = {}
     163        for messageType in const.messageTypes:
     164            self._messageTypeLevels[messageType] = \
     165                self._getMessageTypeLevel(config, messageType)
     166           
     167        self._autoUpdate = self._getBoolean(config, "update", "auto", True)
     168        self._updateURL = self._get(config, "update", "url",
     169                                    Config.DEFAULT_UPDATE_URL)
     170
    147171        self._modified = False
    148172
     
    160184                   "yes" if self._rememberPassword else "no")
    161185
    162         config.add_section("update")
    163         config.set("update", "auto",
    164                    "yes" if self._autoUpdate else "no")
    165         config.set("update", "url", self._updateURL)
    166 
    167186        config.add_section("general")
    168187        if self._language:
     
    170189        config.set("general", "flareTimeFromFS",
    171190                   "yes" if self._flareTimeFromFS else "no")
    172        
     191
     192        config.add_section(Config._messageTypesSection)
     193        for messageType in const.messageTypes:
     194            if messageType in self._messageTypeLevels:
     195                option = self._getMessageTypeLevelOptionName(messageType)
     196                level = self._messageTypeLevels[messageType]               
     197                config.set(Config._messageTypesSection, option,
     198                           const.messageLevel2string(level))
     199       
     200        config.add_section("update")
     201        config.set("update", "auto",
     202                   "yes" if self._autoUpdate else "no")
     203        config.set("update", "url", self._updateURL)
     204
    173205        try:
    174206            fd = os.open(configPath, os.O_CREAT|os.O_TRUNC|os.O_WRONLY,
     
    194226               else default
    195227
     228    def _getMessageTypeLevel(self, config, messageType):
     229        """Get the message type level for the given message type."""
     230        option = self._getMessageTypeLevelOptionName(messageType)
     231        if config.has_option(Config._messageTypesSection, option):
     232            value = config.get(Config._messageTypesSection, option)
     233            return const.string2messageLevel(value)
     234        else:
     235            return const.MESSAGELEVEL_NONE
     236
     237    def _getMessageTypeLevelOptionName(self, messageType):
     238        """Get the option name for the given message type level."""
     239        return const.messageType2string(messageType)
     240       
    196241    def getLanguage(self):
    197242        """Get the language to be used."""
Note: See TracChangeset for help on using the changeset viewer.