spawn both guis at start. clicking expand hides the simple one, shows the expert one.

This commit is contained in:
Amir Taaki 2012-06-29 07:26:52 +02:00
parent eda5672344
commit ba6e9417ed
4 changed files with 23 additions and 17 deletions

View File

@ -35,19 +35,18 @@ class ElectrumGui:
actuator = MiniActuator(self.wallet)
self.mini = MiniWindow(actuator, self.expand)
driver = MiniDriver(self.wallet, self.mini)
self.app.exec_()
timer = Timer()
timer.start()
self.expert = gui_qt.ElectrumWindow(self.wallet)
self.expert.connect_slots(timer)
self.expert.update_wallet()
sys.exit(self.app.exec_())
def expand(self):
self.mini.hide()
self.actuator = None
self.mini = None
self.driver = None
self.wallet.gui_callback = None
self.timer = Timer()
self.timer.start()
self.gui = gui_qt.ElectrumWindow(self.wallet)
self.gui.connect_slots(self.timer)
self.gui.update_wallet()
self.expert.show()
class MiniWindow(QDialog):
@ -306,7 +305,7 @@ class MiniDriver(QObject):
self.wallet = wallet
self.window = window
self.wallet.gui_callback = self.update_callback
self.wallet.register_callback(self.update_callback)
self.state = None

View File

@ -187,7 +187,7 @@ class ElectrumWindow(QMainWindow):
def __init__(self, wallet):
QMainWindow.__init__(self)
self.wallet = wallet
self.wallet.gui_callback = self.update_callback
self.wallet.register_callback(self.update_callback)
self.funds_error = False
self.completions = QStringListModel()
@ -207,7 +207,6 @@ class ElectrumWindow(QMainWindow):
title = 'Electrum ' + self.wallet.electrum_version + ' - ' + self.wallet.path
if not self.wallet.seed: title += ' [seedless]'
self.setWindowTitle( title )
self.show()
QShortcut(QKeySequence("Ctrl+W"), self, self.close)
QShortcut(QKeySequence("Ctrl+Q"), self, self.close)
@ -1490,5 +1489,6 @@ class ElectrumGui():
w.app = self.app
w.connect_slots(s)
w.update_wallet()
w.show()
self.app.exec_()

View File

@ -406,13 +406,13 @@ class WalletSynchronizer(threading.Thread):
self.wallet.was_updated = True
if self.wallet.was_updated:
self.wallet.gui_callback()
self.wallet.trigger_callbacks()
self.wallet.was_updated = False
response = self.interface.responses.get()
self.handle_response(response)
self.wallet.gui_callback()
self.wallet.trigger_callbacks()
if self.loop:
time.sleep(5)
self.init_interface()

View File

@ -249,11 +249,11 @@ from interface import DEFAULT_SERVERS
class Wallet:
def __init__(self, gui_callback = lambda: None):
def __init__(self):
self.electrum_version = ELECTRUM_VERSION
self.seed_version = SEED_VERSION
self.gui_callback = gui_callback
self.update_callbacks = []
self.gap_limit = 5 # configuration
self.use_change = True
@ -299,7 +299,14 @@ class Wallet:
self.pick_random_server()
def register_callback(self, update_callback):
with self.lock:
self.update_callbacks.append(update_callback)
def trigger_callbacks(self):
with self.lock:
callbacks = self.update_callbacks[:]
[update() for update in callbacks]
def pick_random_server(self):
self.server = random.choice( DEFAULT_SERVERS ) # random choice when the wallet is created