diff --git a/gui/qt/__init__.py b/gui/qt/__init__.py index 4eb67afa..e7d0a63e 100644 --- a/gui/qt/__init__.py +++ b/gui/qt/__init__.py @@ -60,7 +60,7 @@ class OpenFileEventFilter(QObject): def eventFilter(self, obj, event): if event.type() == QtCore.QEvent.FileOpen: if len(self.windows) >= 1: - self.windows[0].set_url(event.url().toString()) + self.windows[0].set_url(event.url().toEncoded()) return True return False diff --git a/gui/qt/main_window.py b/gui/qt/main_window.py index cbfc4a97..34e87680 100644 --- a/gui/qt/main_window.py +++ b/gui/qt/main_window.py @@ -923,7 +923,12 @@ class ElectrumWindow(QMainWindow): def set_url(self, url): address, amount, label, message, signature, identity, url = util.parse_url(url) - if amount and self.base_unit() == 'mBTC': amount = str( 1000* Decimal(amount)) + try: + if amount and self.base_unit() == 'mBTC': amount = str( 1000* Decimal(amount)) + elif amount: amount = str(Decimal(amount)) + except Exception: + amount = "0.0" + QMessageBox.warning(self, _('Error'), _('Invalid Amount'), _('OK')) if self.mini: self.mini.set_payment_fields(address, amount) diff --git a/lib/util.py b/lib/util.py index 9b50ea0d..0a93fbf9 100644 --- a/lib/util.py +++ b/lib/util.py @@ -155,6 +155,7 @@ _ud = re.compile('%([0-9a-hA-H]{2})', re.MULTILINE) urldecode = lambda x: _ud.sub(lambda m: chr(int(m.group(1), 16)), x) def parse_url(url): + url = str(url) o = url[8:].split('?') address = o[0] if len(o)>1: diff --git a/setup-release.py b/setup-release.py index a5b73d18..d5fb297d 100644 --- a/setup-release.py +++ b/setup-release.py @@ -35,11 +35,11 @@ if sys.platform == 'darwin': extra_options = dict( setup_requires=['py2app'], app=[mainscript], - options=dict(py2app=dict(argv_emulation=True, + options=dict(py2app=dict(argv_emulation=False, includes=['PyQt4.QtCore', 'PyQt4.QtGui', 'sip'], packages=['lib', 'gui', 'plugins'], iconfile='electrum.icns', - #plist=plist, + plist=plist, resources=["data", "icons"])), ) elif sys.platform == 'win32':