Changeset 123:3b181cd0ab99


Ignore:
Timestamp:
04/29/12 06:48:38 (13 years ago)
Author:
István Váradi <ivaradi@…>
Branch:
default
Phase:
public
Message:

The Preferences dialog works

Location:
src/mlx
Files:
1 added
7 edited

Legend:

Unmodified
Added
Removed
  • src/mlx/config.py

    r113 r123  
    2929        self._updateURL = Config.DEFAULT_UPDATE_URL
    3030
     31        self._language = ""
     32
    3133        self._modified = False
    32 
    33         self._language = ""
    3434
    3535    @property
     
    6767        if rememberPassword!=self._rememberPassword:
    6868            self._rememberPassword = rememberPassword
     69            self._modified = True
     70
     71    @property
     72    def language(self):
     73        """Get the language to use."""
     74        return self._language
     75
     76    @language.setter
     77    def language(self, language):
     78        """Set the language to use."""
     79        if language!=self._language:
     80            self._language = language
    6981            self._modified = True
    7082
     
    160172        import locale
    161173        if self._language:
     174            os.environ["LANGUAGE"] = self._language
     175            os.environ["LANG"] = self._language + ".UTF-8"
     176            os.environ["LC_MESSAGES"] = self._language + ".UTF-8"
     177            os.environ["LC_COLLATE"] = self._language + ".UTF-8"
     178            os.environ["LC_CTYPE"] = self._language + ".UTF-8"
     179
    162180            locale.setlocale(locale.LC_ALL, (self._language,
    163181                                             locale.getpreferredencoding()))
  • src/mlx/const.py

    r103 r123  
    219219    return _stageStrings[stage] if stage in _stageStrings else None
    220220       
    221    
     221#-------------------------------------------------------------------------------
     222
     223languages = ["$system", "en_GB", "hu_HU"]
  • src/mlx/gui/common.py

    r105 r123  
    2727    BUTTONSTYPE_YES_NO = gtk.BUTTONS_YES_NO
    2828    RESPONSETYPE_YES = gtk.RESPONSE_YES
     29    RESPONSETYPE_ACCEPT = gtk.RESPONSE_ACCEPT
     30    RESPONSETYPE_REJECT = gtk.RESPONSE_REJECT
    2931    ACCEL_VISIBLE = gtk.ACCEL_VISIBLE
    3032    CONTROL_MASK = gdk.CONTROL_MASK
     33    DIALOG_MODAL = gtk.DIALOG_MODAL
    3134
    3235    def text2unicode(text):
     
    4952    BUTTONSTYPE_YES_NO = gtk.ButtonsType.YES_NO
    5053    RESPONSETYPE_YES = gtk.ResponseType.YES
     54    RESPONSETYPE_ACCEPT = gtk.ResponseType.ACCEPT
     55    RESPONSETYPE_REJECT = gtk.ResponseType.REJECT
    5156    ACCEL_VISIBLE = gtk.AccelFlags.VISIBLE
    5257    CONTROL_MASK = gdk.ModifierType.CONTROL_MASK
     58    DIALOG_MODAL = gtk.DialogFlags.MODAL
    5359
    5460    import codecs
  • src/mlx/gui/gui.py

    r120 r123  
    1010from mlx.gui.weighthelp import WeightHelp
    1111from mlx.gui.gates import FleetGateStatus
     12from mlx.gui.prefs import Preferences
    1213
    1314import mlx.const as const
     
    6162        """Build the GUI."""
    6263       
    63         window = gtk.Window()
     64        self._mainWindow = window = gtk.Window()
    6465        window.set_title(WINDOW_TITLE_BASE)
    6566        window.set_icon_from_file(os.path.join(iconDirectory, "logo.ico"))
     
    7374        window.add(mainVBox)
    7475
     76        self._preferences = Preferences(self)
     77
    7578        menuBar = self._buildMenuBar(accelGroup)
    7679        mainVBox.pack_start(menuBar, False, False, 0)
     
    130133        self._weightHelp.reset()
    131134        self._weightHelp.disable()
    132 
    133         self._mainWindow = window
    134135
    135136        self._statusIcon = StatusIcon(iconDirectory, self)
     
    663664        fileMenu.append(quitMenuItem)
    664665
     666        toolsMenuItem = gtk.MenuItem(xstr("menu_tools"))
     667        toolsMenu = gtk.Menu()
     668        toolsMenuItem.set_submenu(toolsMenu)
     669        menuBar.append(toolsMenuItem)
     670
     671        prefsMenuItem = gtk.ImageMenuItem(gtk.STOCK_PREFERENCES)
     672        prefsMenuItem.set_use_stock(True)
     673        prefsMenuItem.set_label(xstr("menu_tools_prefs"))
     674        prefsMenuItem.add_accelerator("activate", accelGroup,
     675                                      ord(xstr("menu_tools_prefs_key")),
     676                                      CONTROL_MASK, ACCEL_VISIBLE)
     677        prefsMenuItem.connect("activate", self._editPreferences)
     678        toolsMenu.append(prefsMenuItem)
    665679
    666680        viewMenuItem = gtk.MenuItem(xstr("menu_view"))
     
    759773        else:
    760774            self._mainWindow.set_default(None)
     775
     776    def _editPreferences(self, menuItem):
     777        """Callback for editing the preferences."""
     778        self._preferences.run(self.config)
  • src/mlx/gui/info.py

    r122 r123  
    55from mlx.i18n import xstr
    66import mlx.const as const
     7
     8#------------------------------------------------------------------------------
    79
    810class FlightInfo(gtk.VBox):
  • src/mlx/i18n.py

    r118 r123  
    128128        self.add("menu_file_quit_key", "q")
    129129        self.add("quit_question", "Are you sure to quit the logger?")
     130
     131        self.add("menu_tools", "Tools")
     132        self.add("menu_tools_prefs", "_Preferences")
     133        self.add("menu_tools_prefs_key", "p")
    130134
    131135        self.add("menu_view", "View")
     
    528532        self.add("gates_plane_parking", "PARKING")
    529533        self.add("gates_plane_unknown", "UNKNOWN")
    530                  
     534
     535        self.add("prefs_title", "Preferences")
     536        self.add("prefs_tab_general", "_General")
     537        self.add("prefs_tab_general_tooltip", "General preferences")
     538        self.add("prefs_tab_advanced", "_Advanced")
     539        self.add("prefs_tab_advanced_tooltip",
     540                 "Advanced preferences, edit with care!")
     541        self.add("prefs_language", "_Language:")
     542        self.add("prefs_language_tooltip",
     543                 "The language of the program")
     544        self.add("prefs_restart",
     545                 "Restart needed")
     546        self.add("prefs_language_restart_sec",
     547                 "If you change the language, the program should be restarted "
     548                 "so that the change has an effect.")
     549        self.add("prefs_lang_$system", "system default")
     550        self.add("prefs_lang_en_GB", "English")
     551        self.add("prefs_lang_hu_HU", "Hungarian")
     552        self.add("prefs_update_auto", "Update the program auto_matically")
     553        self.add("prefs_update_auto_tooltip",
     554                 "If checked the program will look for updates when "
     555                 "it is starting, and if new updates are found, they "
     556                 "will be downloaded and installed. This ensures that "
     557                 "the PIREP you send will always conform to the latest "
     558                 "expectations of the airline.")
     559        self.add("prefs_update_auto_warning",
     560                 "Disabling automatic updates may result in "
     561                 "your version of the program becoming out of date "
     562                 "and your PIREPs not being accepted.")
     563        self.add("prefs_update_url", "Update _URL:")
     564        self.add("prefs_update_url_tooltip",
     565                 "The URL from which to download the updates. Change this "
     566                 "only if you know what you are doing!")
     567
    531568#------------------------------------------------------------------------------
    532569
     
    543580        self.add("menu_file_quit_key", "k")
    544581        self.add("quit_question", "Biztosan ki akarsz lépni?")
     582
     583        self.add("menu_tools", "Eszközök")
     584        self.add("menu_tools_prefs", "_Beállítások")
     585        self.add("menu_tools_prefs_key", "b")
    545586
    546587        self.add("menu_view", "Nézet")
     
    951992        self.add("gates_plane_unknown", "ISMERETLEN")
    952993                 
     994        self.add("prefs_title", "Beállítások")
     995        self.add("prefs_tab_general", "_Általános")
     996        self.add("prefs_tab_general_tooltip", "Általános beállítások")
     997        self.add("prefs_tab_advanced", "_Haladó")
     998        self.add("prefs_tab_advanced_tooltip",
     999                 "Haladó beállítások: óvatosan módosítsd őket!")
     1000        self.add("prefs_language", "_Nyelv:")
     1001        self.add("prefs_language_tooltip",
     1002                 "A program által használt nyelv")
     1003        self.add("prefs_restart",
     1004                 "Újraindítás szükséges")
     1005        self.add("prefs_language_restart_sec",
     1006                 "A program nyelvének megváltoztatása csak egy újraindítást "
     1007                 "követően jut érvényre.")
     1008        self.add("prefs_lang_$system", "alapértelmezett")
     1009        self.add("prefs_lang_en_GB", "angol")
     1010        self.add("prefs_lang_hu_HU", "magyar")
     1011        self.add("prefs_update_auto",
     1012                 "Frissítsd a programot _automatikusan")
     1013        self.add("prefs_update_auto_tooltip",
     1014                 "Ha ez be van jelölve, a program induláskor frissítést "
     1015                 "keres, és ha talál, azokat letölti és telepíti. Ez "
     1016                 "biztosítja, hogy az elküldött PIREP minden megfelel "
     1017                 "a legújabb elvárásoknak.")
     1018        self.add("prefs_update_auto_warning",
     1019                 "Az automatikus frissítés kikapcsolása azt okozhatja, "
     1020                 "hogy a program Nálad lévő verziója elavulttá válik, "
     1021                 "és a PIREP-jeidet így nem fogadják el.")
     1022        self.add("prefs_update_url", "Frissítés _URL-je:")
     1023        self.add("prefs_update_url_tooltip",
     1024                 "Az URL, ahol a frissítéseket keresi a program. Csak akkor "
     1025                 "változtasd meg, ha biztos vagy a dolgodban!")
     1026
    9531027#------------------------------------------------------------------------------
    9541028
  • src/mlx/mlx.py

    r107 r123  
    11# The main program
    2 
    3 from .gui.gui import GUI
    42
    53from config import Config
     
    3533    setLanguage(config.getLanguage())
    3634   
     35    from .gui.gui import GUI
    3736    gui = GUI(programDirectory, config)
    3837   
Note: See TracChangeset for help on using the changeset viewer.