do the banner request in interface, not in wallet
authorecdsa <ecdsa@github>
Sun, 17 Mar 2013 09:54:21 +0000 (10:54 +0100)
committerecdsa <ecdsa@github>
Sun, 17 Mar 2013 09:54:21 +0000 (10:54 +0100)
gui/gui_classic.py
gui/gui_gtk.py
gui/gui_text.py
lib/interface.py
lib/wallet.py

index bfba42a..19ab71c 100644 (file)
@@ -324,7 +324,7 @@ class ElectrumWindow(QMainWindow):
         
         self.connect(self, QtCore.SIGNAL('update_wallet'), self.update_wallet)
         self.connect(self, QtCore.SIGNAL('update_status'), self.update_status)
-        self.connect(self, QtCore.SIGNAL('banner_signal'), lambda: self.console.showMessage(self.wallet.banner) )
+        self.connect(self, QtCore.SIGNAL('banner_signal'), lambda: self.console.showMessage(self.wallet.interface.banner) )
         self.history_list.setFocus(True)
         
         self.exchanger = exchange_rate.Exchanger(self)
@@ -337,7 +337,7 @@ class ElectrumWindow(QMainWindow):
             tabs.setCurrentIndex (0)
 
         # set initial message
-        self.console.showMessage(self.wallet.banner)
+        self.console.showMessage(self.wallet.interface.banner)
 
         # plugins that need to change the GUI do it here
         self.run_hook('init_gui')
index 88de6ec..8568f7f 100644 (file)
@@ -1129,7 +1129,7 @@ class ElectrumWindow:
             self.update_history_tab()
             self.update_receiving_tab()
             # addressbook too...
-            self.info.set_text( self.wallet.banner )
+            self.info.set_text( self.wallet.interface.banner )
             self.wallet_updated = False
 
     def update_receiving_tab(self):
index fd83019..55b4284 100644 (file)
@@ -124,7 +124,7 @@ class ElectrumGui:
         self.stdscr.addstr( 12, 25, _("[Clear]"), curses.A_REVERSE if self.pos%6==5 else curses.color_pair(2))
 
     def print_banner(self):
-        self.stdscr.addstr( 1, 1, self.wallet.banner )
+        self.stdscr.addstr( 1, 1, self.wallet.interface.banner )
 
     def print_list(self, list, firstline):
         self.maxpos = len(list)
index ea787dd..57473f2 100644 (file)
@@ -77,7 +77,8 @@ class Interface(threading.Thread):
         #json
         self.message_id = 0
         self.unanswered_requests = {}
-
+        #banner
+        self.banner = ''
 
 
     def queue_json_response(self, c):
@@ -106,6 +107,10 @@ class Interface(threading.Thread):
             if method == 'server.version':
                 self.server_version = result
 
+            elif method == 'server.banner':
+                self.banner = result
+                self.trigger_callback('banner')
+
             elif method == 'server.peers.subscribe':
                 servers = {}
                 for item in result:
@@ -429,6 +434,7 @@ class Interface(threading.Thread):
         self.connect_event.set()
         if self.is_connected:
             self.send([('server.version', [ELECTRUM_VERSION, PROTOCOL_VERSION])])
+            self.send([('server.banner',[])])
             self.trigger_callback('connected')
         else:
             self.trigger_callback('notconnected')
index 7935dfe..0d55cec 100644 (file)
@@ -104,7 +104,6 @@ class Wallet:
         self.prevout_values = {}     # my own transaction outputs
         self.spent_outputs = []
         self.receipt = None          # next receipt
-        self.banner = ''
 
         # spv
         self.verifier = None
@@ -951,7 +950,6 @@ class WalletSynchronizer(threading.Thread):
         self.interface = self.wallet.interface
         self.interface.register_channel('synchronizer')
         self.wallet.interface.register_callback('connected', lambda: self.wallet.set_up_to_date(False))
-        self.wallet.interface.register_callback('connected', lambda: self.interface.send([('server.banner',[])],'synchronizer') )
         self.was_updated = True
         self.running = False
         self.lock = threading.Lock()
@@ -1091,9 +1089,6 @@ class WalletSynchronizer(threading.Thread):
                 self.wallet.tx_result = result
                 self.wallet.tx_event.set()
 
-            elif method == 'server.banner':
-                self.wallet.banner = result
-                self.interface.trigger_callback('banner')
             else:
                 print_error("Error: Unknown message:" + method + ", " + repr(params) + ", " + repr(result) )