big refactoring of the interface
[electrum-nvc.git] / electrum
index 0066c43..4e842f4 100755 (executable)
--- a/electrum
+++ b/electrum
@@ -36,9 +36,9 @@ except ImportError:
     sys.exit("Error: AES does not seem to be installed. Try 'sudo pip install slowaes'")
 
 try:
-    from lib import Wallet, WalletSynchronizer, format_satoshis, mnemonic, SimpleConfig, pick_random_server
+    from lib import Wallet, Interface, WalletSynchronizer, WalletVerifier, format_satoshis, mnemonic, SimpleConfig, pick_random_server
 except ImportError:
-    from electrum import Wallet, WalletSynchronizer, format_satoshis, mnemonic, SimpleConfig, pick_random_server
+    from electrum import Wallet, Interface, WalletSynchronizer, WalletVerifier, format_satoshis, mnemonic, SimpleConfig, pick_random_server
 
 from decimal import Decimal
 
@@ -130,7 +130,7 @@ if __name__ == '__main__':
 
     usage = "usage: %prog [options] command\nCommands: "+ (', '.join(known_commands))
     parser = optparse.OptionParser(prog=usage)
-    parser.add_option("-g", "--gui", dest="gui", help="gui")
+    parser.add_option("-g", "--gui", dest="gui", help="User interface: qt, lite, gtk or text")
     parser.add_option("-w", "--wallet", dest="wallet_path", help="wallet path (default: electrum.dat)")
     parser.add_option("-o", "--offline", action="store_true", dest="offline", default=False, help="remain offline")
     parser.add_option("-a", "--all", action="store_true", dest="show_all", default=False, help="show all addresses")
@@ -176,12 +176,20 @@ if __name__ == '__main__':
                   import lib.gui_lite as gui
               except ImportError:
                   import electrum.gui_lite as gui
+        elif pref_gui == 'text':
+              try:
+                  import lib.gui_text as gui
+              except ImportError:
+                  import electrum.gui_text as gui
         else:
             sys.exit("Error: Unknown GUI: " + pref_gui )
 
         gui = gui.ElectrumGui(wallet, config)
-        interface = WalletSynchronizer(wallet, config, True, gui.server_list_changed)
-        interface.start()
+        wallet.interface = Interface(config, True, gui.server_list_changed)
+        wallet.interface.start()
+
+        WalletSynchronizer(wallet, config).start()
+        WalletVerifier(wallet, config).start()
 
         try:
             found = config.wallet_file_exists