X-Git-Url: https://git.novaco.in/?a=blobdiff_plain;f=gui%2Fqt%2F__init__.py;h=296c3661eacdf48ca0beca2038fb0b654e08f33d;hb=3cbe11a42473af52e7c5e002c36aaaf32646f627;hp=07a449c5184f9856af0b262316e09938b83088c5;hpb=370bdbe85559f3cd20808e684cd0919b9ab6a6a4;p=electrum-nvc.git diff --git a/gui/qt/__init__.py b/gui/qt/__init__.py index 07a449c..296c366 100644 --- a/gui/qt/__init__.py +++ b/gui/qt/__init__.py @@ -17,9 +17,9 @@ # along with this program. If not, see . 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,47 +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: - try: - from electrum import paymentrequest - except: - print "cannot import paymentrequest" - request_url = None - - 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(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): @@ -225,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') @@ -243,6 +207,11 @@ class ElectrumGui: self.app.exec_() + # clipboard persistence + # see http://www.mail-archive.com/pyqt@riverbankcomputing.com/msg17328.html + event = QtCore.QEvent(QtCore.QEvent.Clipboard) + self.app.sendEvent(self.app.clipboard(), event) + wallet.stop_threads()