URI: 
       tLoad theme in gui according to setting. - electrum - Electrum Bitcoin wallet
  HTML git clone https://git.parazyd.org/electrum
   DIR Log
   DIR Files
   DIR Refs
   DIR Submodules
       ---
   DIR commit 49aec96e1ec39b09698ad96ecf3c4a2fa20ef19a
   DIR parent 304ccb6fd7fc3fabb8a99e7c8d05fe8c2e46ac2f
  HTML Author: Amir Taaki <genjix@riseup.net>
       Date:   Sat, 18 Aug 2012 08:23:26 +0100
       
       Load theme in gui according to setting.
       
       Diffstat:
         M lib/gui_lite.py                     |      45 +++++++++++++++++++-------------
       
       1 file changed, 27 insertions(+), 18 deletions(-)
       ---
   DIR diff --git a/lib/gui_lite.py b/lib/gui_lite.py
       t@@ -4,7 +4,7 @@ from PyQt4.QtCore import *
        from PyQt4.QtGui import *
        
        from decimal import Decimal as D
       -from util import appdata_dir, get_resource_path as rsrc
       +from util import get_resource_path as rsrc
        from i18n import _
        import decimal
        import exchange_rate
       t@@ -15,6 +15,7 @@ import time
        import wallet
        import webbrowser
        import history_widget
       +import util
        
        try:
            import lib.gui_qt as gui_qt
       t@@ -40,36 +41,25 @@ def resize_line_edit_width(line_edit, text_input):
            text_input += "A"
            line_edit.setMinimumWidth(metrics.width(text_input))
        
       -def cd_data_dir():
       -    assert sys.argv
       -    prefix_path = os.path.dirname(sys.argv[0])
       -    local_data = os.path.join(prefix_path, "data")
       -    if os.path.exists(os.path.join(local_data, "style.css")):
       -        data_dir = local_data
       -    else:
       -        data_dir = appdata_dir()
       -    QDir.setCurrent(data_dir)
       -
        class ElectrumGui:
        
            def __init__(self, wallet):
                self.wallet = wallet
                self.app = QApplication(sys.argv)
       -        # Should probably not modify the current path but instead
       -        # change the behaviour of rsrc(...)
       -        self.old_path = QDir.currentPath()
       -        cd_data_dir()
       -        with open(rsrc("style.css")) as style_file:
       -            self.app.setStyleSheet(style_file.read())
        
            def main(self, url):
                actuator = MiniActuator(self.wallet)
       +        # Should probably not modify the current path but instead
       +        # change the behaviour of rsrc(...)
       +        old_path = QDir.currentPath()
       +        actuator.load_theme()
       +
                self.mini = MiniWindow(actuator, self.expand)
                driver = MiniDriver(self.wallet, self.mini)
        
                # Reset path back to original value now that loading the GUI
                # is completed.
       -        QDir.setCurrent(self.old_path)
       +        QDir.setCurrent(old_path)
        
                if url:
                    self.set_url(url)
       t@@ -473,6 +463,25 @@ class MiniActuator:
            def __init__(self, wallet):
                self.wallet = wallet
        
       +        self.theme_name = self.wallet.theme
       +        self.themes = util.load_theme_paths()
       +
       +    def load_theme(self):
       +        try:
       +            theme_prefix, theme_path = self.themes[self.theme_name]
       +        except KeyError:
       +            util.print_error("Theme not found! ", self.theme_name)
       +            return
       +        theme_css = os.path.join(theme_path, "style.css")
       +        QDir.setCurrent(theme_prefix)
       +        with open(rsrc(theme_css)) as style_file:
       +            qApp.setStyleSheet(style_file.read())
       +
       +    def theme_names(self):
       +        return self.themes.keys()
       +    def selected_theme(self):
       +        return self.theme_name
       +
            def set_configured_currency(self, set_quote_currency):
                currency = self.wallet.conversion_currency
                # currency can be none when Electrum is used for the first