From b2ebd3592585df54363e2989c4d9d3e1f1b862a1 Mon Sep 17 00:00:00 2001 From: Maxime Biais Date: Sun, 11 Aug 2013 15:11:27 +0200 Subject: [PATCH] Add a Qt eventFilter to listen for QFileOpenEvent fix #209 --- gui/gui_classic.py | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/gui/gui_classic.py b/gui/gui_classic.py index 389911800..0a7b0e316 100644 --- a/gui/gui_classic.py +++ b/gui/gui_classic.py @@ -2247,18 +2247,28 @@ class ElectrumWindow(QMainWindow): self.config.set_key("console-history",self.console.history[-50:]) event.accept() - - - +class OpenFileEventFilter(QObject): + def __init__(self, windows): + self.windows = windows + super(OpenFileEventFilter, self).__init__() + + def eventFilter(self, obj, event): + if event.type() == QtCore.QEvent.FileOpen: + if len(self.windows) >= 1: + self.windows[0].set_url(event.url().toString()) + return True + return False class ElectrumGui: def __init__(self, wallet, config, app=None): self.wallet = wallet self.config = config + self.windows = [] + self.efilter = OpenFileEventFilter(self.windows) if app is None: self.app = QApplication(sys.argv) - + self.app.installEventFilter(self.efilter) def restore_or_create(self): msg = _("Wallet file not found.")+"\n"+_("Do you want to create a new wallet, or to restore an existing one?") @@ -2373,6 +2383,7 @@ class ElectrumGui: s = Timer() s.start() w = ElectrumWindow(self.wallet, self.config) + self.windows.append(w) if url: w.set_url(url) w.app = self.app w.connect_slots(s)