Initial novacoin support
[electrum-nvc.git] / gui / qt / __init__.py
index 169c05f..296c366 100644 (file)
@@ -17,9 +17,9 @@
 # along with this program. If not, see <http://www.gnu.org/licenses/>.
 
 import sys, time, datetime, re, threading
-from electrum.i18n import _, set_language
-from electrum.util import print_error, print_msg, parse_url
-from electrum.plugins import run_hook
+from electrum_nvc.i18n import _, set_language
+from electrum_nvc.util import print_error, print_msg
+from electrum_nvc.plugins import run_hook
 import os.path, json, ast, traceback
 import shutil
 
@@ -33,9 +33,9 @@ from PyQt4.QtGui import *
 from PyQt4.QtCore import *
 import PyQt4.QtCore as QtCore
 
-from electrum import WalletStorage, Wallet
-from electrum.i18n import _
-from electrum.bitcoin import MIN_RELAY_TX_FEE
+from electrum_nvc import WalletStorage, Wallet
+from electrum_nvc.i18n import _
+from electrum_nvc.bitcoin import MIN_RELAY_TX_FEE
 
 try:
     import icons_rc
@@ -44,7 +44,7 @@ except Exception:
 
 from util import *
 from main_window import ElectrumWindow
-from electrum.plugins import init_plugins
+from electrum_nvc.plugins import init_plugins
 
 
 class OpenFileEventFilter(QObject):
@@ -71,7 +71,6 @@ class ElectrumGui:
             self.app = QApplication(sys.argv)
         self.app.installEventFilter(self.efilter)
         init_plugins(self)
-        self.payment_request = None
 
 
     def build_tray_menu(self):
@@ -128,8 +127,6 @@ class ElectrumGui:
                 self.config.set_key('lite_mode', False, True)
                 sys.exit(0)
             self.lite_window = None
-            self.main_window.show()
-            self.main_window.raise_()
             return
 
         actuator = lite_window.MiniActuator(self.main_window)
@@ -137,10 +134,6 @@ class ElectrumGui:
         self.lite_window = lite_window.MiniWindow(actuator, self.go_full, self.config)
         driver = lite_window.MiniDriver(self.main_window, self.lite_window)
 
-        if self.config.get('lite_mode') is True:
-            self.go_lite()
-        else:
-            self.go_full()
 
 
     def check_qt_version(self):
@@ -148,44 +141,8 @@ class ElectrumGui:
         return int(qtVersion[0]) >= 4 and int(qtVersion[2]) >= 7
 
 
-    def set_url(self, url):
-        from electrum import util
-        from decimal import Decimal
-
-        try:
-            address, amount, label, message, request_url, url = util.parse_url(url)
-        except Exception:
-            QMessageBox.warning(self.main_window, _('Error'), _('Invalid bitcoin URL'), _('OK'))
-            return
-
-        if amount:
-            try:
-                if self.main_window.base_unit() == 'mBTC': 
-                    amount = str( 1000* Decimal(amount))
-                else: 
-                    amount = str(Decimal(amount))
-            except Exception:
-                amount = "0.0"
-                QMessageBox.warning(self.main_window, _('Error'), _('Invalid Amount'), _('OK'))
-
-        if request_url:
-            from electrum import paymentrequest
-
-        if not request_url:
-            self.main_window.set_send(address, amount, label, message)
-            self.lite_window.set_payment_fields(address, amount)
-            return
-
-        def payment_request():
-            self.payment_request = paymentrequest.PaymentRequest(self.config)
-            self.payment_request.read(request_url)
-            if self.payment_request.verify():
-                self.main_window.emit(SIGNAL('payment_request_ok'))
-            else:
-                self.main_window.emit(SIGNAL('payment_request_error'))
-
-        threading.Thread(target=payment_request).start()
-        self.main_window.prepare_for_payment_request()
+    def set_url(self, uri):
+        self.current_window.pay_from_URI(uri)
 
 
     def main(self, url):
@@ -222,6 +179,16 @@ class ElectrumGui:
         #lite window
         self.init_lite()
 
+        # initial configuration
+        if self.config.get('hide_gui') is True and self.tray.isVisible():
+            self.main_window.hide()
+            self.lite_window.hide()
+        else:
+            if self.config.get('lite_mode') is True:
+                self.go_lite()
+            else:
+                self.go_full()
+
         # plugins that need to change the GUI do it here
         run_hook('init')