Load theme in gui according to setting.
This commit is contained in:
parent
304ccb6fd7
commit
49aec96e1e
|
@ -4,7 +4,7 @@ from PyQt4.QtCore import *
|
||||||
from PyQt4.QtGui import *
|
from PyQt4.QtGui import *
|
||||||
|
|
||||||
from decimal import Decimal as D
|
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 _
|
from i18n import _
|
||||||
import decimal
|
import decimal
|
||||||
import exchange_rate
|
import exchange_rate
|
||||||
|
@ -15,6 +15,7 @@ import time
|
||||||
import wallet
|
import wallet
|
||||||
import webbrowser
|
import webbrowser
|
||||||
import history_widget
|
import history_widget
|
||||||
|
import util
|
||||||
|
|
||||||
try:
|
try:
|
||||||
import lib.gui_qt as gui_qt
|
import lib.gui_qt as gui_qt
|
||||||
|
@ -40,36 +41,25 @@ def resize_line_edit_width(line_edit, text_input):
|
||||||
text_input += "A"
|
text_input += "A"
|
||||||
line_edit.setMinimumWidth(metrics.width(text_input))
|
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:
|
class ElectrumGui:
|
||||||
|
|
||||||
def __init__(self, wallet):
|
def __init__(self, wallet):
|
||||||
self.wallet = wallet
|
self.wallet = wallet
|
||||||
self.app = QApplication(sys.argv)
|
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):
|
def main(self, url):
|
||||||
actuator = MiniActuator(self.wallet)
|
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)
|
self.mini = MiniWindow(actuator, self.expand)
|
||||||
driver = MiniDriver(self.wallet, self.mini)
|
driver = MiniDriver(self.wallet, self.mini)
|
||||||
|
|
||||||
# Reset path back to original value now that loading the GUI
|
# Reset path back to original value now that loading the GUI
|
||||||
# is completed.
|
# is completed.
|
||||||
QDir.setCurrent(self.old_path)
|
QDir.setCurrent(old_path)
|
||||||
|
|
||||||
if url:
|
if url:
|
||||||
self.set_url(url)
|
self.set_url(url)
|
||||||
|
@ -473,6 +463,25 @@ class MiniActuator:
|
||||||
def __init__(self, wallet):
|
def __init__(self, wallet):
|
||||||
self.wallet = 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):
|
def set_configured_currency(self, set_quote_currency):
|
||||||
currency = self.wallet.conversion_currency
|
currency = self.wallet.conversion_currency
|
||||||
# currency can be none when Electrum is used for the first
|
# currency can be none when Electrum is used for the first
|
||||||
|
|
Loading…
Reference in New Issue