From 06cdb7ff39bc2a2617c6d038d4cc1c4f61ff32e2 Mon Sep 17 00:00:00 2001 From: ThomasV Date: Thu, 31 Jul 2014 10:10:14 +0200 Subject: [PATCH] move pointofsale plugin to main codebase --- gui/qt/main_window.py | 23 ++++++- plugins/pointofsale.py => gui/qt/qrwindow.py | 67 ++++++-------------- 2 files changed, 40 insertions(+), 50 deletions(-) rename plugins/pointofsale.py => gui/qt/qrwindow.py (61%) diff --git a/gui/qt/main_window.py b/gui/qt/main_window.py index a209e8b0..32c34bc9 100644 --- a/gui/qt/main_window.py +++ b/gui/qt/main_window.py @@ -188,6 +188,7 @@ class ElectrumWindow(QMainWindow): self.wallet = None self.payment_request = None + self.qr_window = None def update_account_selector(self): # account selector @@ -431,6 +432,8 @@ class ElectrumWindow(QMainWindow): return fileName def close(self): + if self.qr_window: + self.qr_window.close() QMainWindow.close(self) run_hook('close_main_window') @@ -705,6 +708,7 @@ class ElectrumWindow(QMainWindow): self.receive_qr = QRCodeWidget(fixedSize=200) grid.addWidget(self.receive_qr, 0, 4, 5, 2) + self.receive_qr.mousePressEvent = lambda x: self.toggle_qr_window() grid.setRowStretch(5, 1) @@ -786,6 +790,22 @@ class ElectrumWindow(QMainWindow): self.receive_message_e.setText('') self.receive_amount_e.setAmount(None) + def toggle_qr_window(self): + import qrwindow + if not self.qr_window: + self.qr_window = qrwindow.QR_Window(self) + self.qr_window.setVisible(True) + self.qr_window_geometry = self.qr_window.geometry() + else: + if not self.qr_window.isVisible(): + self.qr_window.setVisible(True) + self.qr_window.setGeometry(self.qr_window_geometry) + else: + self.qr_window_geometry = self.qr_window.geometry() + self.qr_window.setVisible(False) + self.update_receive_qr() + + def receive_at(self, addr): if not bitcoin.is_address(addr): return @@ -823,7 +843,8 @@ class ElectrumWindow(QMainWindow): else: url = "" self.receive_qr.setData(url) - run_hook('update_receive_qr', addr, amount, message, url) + if self.qr_window: + self.qr_window.set_content(addr, amount, message, url) def create_send_tab(self): diff --git a/plugins/pointofsale.py b/gui/qt/qrwindow.py similarity index 61% rename from plugins/pointofsale.py rename to gui/qt/qrwindow.py index a153655c..cff20530 100644 --- a/plugins/pointofsale.py +++ b/gui/qt/qrwindow.py @@ -1,3 +1,21 @@ +#!/usr/bin/env python +# +# Electrum - lightweight Bitcoin client +# Copyright (C) 2014 Thomas Voegtlin +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + import re import platform from decimal import Decimal @@ -9,10 +27,8 @@ import PyQt4.QtCore as QtCore import PyQt4.QtGui as QtGui from electrum_gui.qt.qrcodewidget import QRCodeWidget -from electrum import BasePlugin from electrum.i18n import _ - if platform.system() == 'Windows': MONOSPACE_FONT = 'Lucida Console' elif platform.system() == 'Darwin': @@ -72,50 +88,3 @@ class QR_Window(QWidget): -class Plugin(BasePlugin): - - def fullname(self): - return 'Point of Sale' - - - def description(self): - return _('Show payment requests in a large, separate window.') - - - def init(self): - self.window = self.gui.main_window - self.qr_window = None - self.toggle_QR_window(True) - - - def close(self): - self.toggle_QR_window(False) - - - def close_main_window(self): - if self.qr_window: - self.qr_window.close() - self.qr_window = None - - - def update_receive_qr(self, address, amount, message, url): - self.qr_window.set_content( address, amount, message, url ) - - - def toggle_QR_window(self, show): - if show and not self.qr_window: - self.qr_window = QR_Window(self.gui.main_window) - self.qr_window.setVisible(True) - self.qr_window_geometry = self.qr_window.geometry() - - elif show and self.qr_window and not self.qr_window.isVisible(): - self.qr_window.setVisible(True) - self.qr_window.setGeometry(self.qr_window_geometry) - - elif not show and self.qr_window and self.qr_window.isVisible(): - self.qr_window_geometry = self.qr_window.geometry() - self.qr_window.setVisible(False) - - - -