commit 49aec96e1ec39b09698ad96ecf3c4a2fa20ef19a
parent 304ccb6fd7fc3fabb8a99e7c8d05fe8c2e46ac2f
Author: Amir Taaki <genjix@riseup.net>
Date: Sat, 18 Aug 2012 08:23:26 +0100
Load theme in gui according to setting.
Diffstat:
1 file changed, 27 insertions(+), 18 deletions(-)
diff --git a/lib/gui_lite.py b/lib/gui_lite.py
@@ -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
@@ -15,6 +15,7 @@ import time
import wallet
import webbrowser
import history_widget
+import util
try:
import lib.gui_qt as gui_qt
@@ -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)
@@ -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