URI: 
       tmove pointofsale plugin to main codebase - electrum - Electrum Bitcoin wallet
  HTML git clone https://git.parazyd.org/electrum
   DIR Log
   DIR Files
   DIR Refs
   DIR Submodules
       ---
   DIR commit 06cdb7ff39bc2a2617c6d038d4cc1c4f61ff32e2
   DIR parent d33b53f850d1195b7393392ddd032a44f55c7281
  HTML Author: ThomasV <thomasv@gitorious>
       Date:   Thu, 31 Jul 2014 10:10:14 +0200
       
       move pointofsale plugin to main codebase
       
       Diffstat:
         M gui/qt/main_window.py               |      23 ++++++++++++++++++++++-
         A gui/qt/qrwindow.py                  |      90 +++++++++++++++++++++++++++++++
         D plugins/pointofsale.py              |     121 -------------------------------
       
       3 files changed, 112 insertions(+), 122 deletions(-)
       ---
   DIR diff --git a/gui/qt/main_window.py b/gui/qt/main_window.py
       t@@ -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
       t@@ -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')
        
       t@@ -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)
        
       t@@ -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
       t@@ -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):
   DIR diff --git a/gui/qt/qrwindow.py b/gui/qt/qrwindow.py
       t@@ -0,0 +1,90 @@
       +#!/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 <http://www.gnu.org/licenses/>.
       +
       +import re
       +import platform
       +from decimal import Decimal
       +from urllib import quote
       +
       +from PyQt4.QtGui import *
       +from PyQt4.QtCore import *
       +import PyQt4.QtCore as QtCore
       +import PyQt4.QtGui as QtGui
       +
       +from electrum_gui.qt.qrcodewidget import QRCodeWidget
       +from electrum.i18n import _
       +
       +if platform.system() == 'Windows':
       +    MONOSPACE_FONT = 'Lucida Console'
       +elif platform.system() == 'Darwin':
       +    MONOSPACE_FONT = 'Monaco'
       +else:
       +    MONOSPACE_FONT = 'monospace'
       +
       +column_index = 4
       +
       +class QR_Window(QWidget):
       +
       +    def __init__(self, win):
       +        QWidget.__init__(self)
       +        self.win = win
       +        self.setWindowTitle('Electrum - '+_('Invoice'))
       +        self.setMinimumSize(800, 250)
       +        self.address = ''
       +        self.label = ''
       +        self.amount = 0
       +        self.setFocusPolicy(QtCore.Qt.NoFocus)
       +
       +        main_box = QHBoxLayout()
       +        
       +        self.qrw = QRCodeWidget()
       +        main_box.addWidget(self.qrw, 1)
       +
       +        vbox = QVBoxLayout()
       +        main_box.addLayout(vbox)
       +
       +        self.address_label = QLabel("")
       +        #self.address_label.setFont(QFont(MONOSPACE_FONT))
       +        vbox.addWidget(self.address_label)
       +
       +        self.label_label = QLabel("")
       +        vbox.addWidget(self.label_label)
       +
       +        self.amount_label = QLabel("")
       +        vbox.addWidget(self.amount_label)
       +
       +        vbox.addStretch(1)
       +        self.setLayout(main_box)
       +
       +
       +    def set_content(self, address, amount, message, url):
       +        address_text = "<span style='font-size: 18pt'>%s</span>" % address if address else ""
       +        self.address_label.setText(address_text)
       +        if amount:
       +            amount = self.win.format_amount(amount)
       +            amount_text = "<span style='font-size: 21pt'>%s</span> <span style='font-size: 16pt'>%s</span> " % (amount, self.win.base_unit())
       +        else:
       +            amount_text = ''
       +        self.amount_label.setText(amount_text)
       +        label_text = "<span style='font-size: 21pt'>%s</span>" % message if message else ""
       +        self.label_label.setText(label_text)
       +        self.qrw.setData(url)
       +
       +
       +
       +
   DIR diff --git a/plugins/pointofsale.py b/plugins/pointofsale.py
       t@@ -1,121 +0,0 @@
       -import re
       -import platform
       -from decimal import Decimal
       -from urllib import quote
       -
       -from PyQt4.QtGui import *
       -from PyQt4.QtCore import *
       -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':
       -    MONOSPACE_FONT = 'Monaco'
       -else:
       -    MONOSPACE_FONT = 'monospace'
       -
       -column_index = 4
       -
       -class QR_Window(QWidget):
       -
       -    def __init__(self, win):
       -        QWidget.__init__(self)
       -        self.win = win
       -        self.setWindowTitle('Electrum - '+_('Invoice'))
       -        self.setMinimumSize(800, 250)
       -        self.address = ''
       -        self.label = ''
       -        self.amount = 0
       -        self.setFocusPolicy(QtCore.Qt.NoFocus)
       -
       -        main_box = QHBoxLayout()
       -        
       -        self.qrw = QRCodeWidget()
       -        main_box.addWidget(self.qrw, 1)
       -
       -        vbox = QVBoxLayout()
       -        main_box.addLayout(vbox)
       -
       -        self.address_label = QLabel("")
       -        #self.address_label.setFont(QFont(MONOSPACE_FONT))
       -        vbox.addWidget(self.address_label)
       -
       -        self.label_label = QLabel("")
       -        vbox.addWidget(self.label_label)
       -
       -        self.amount_label = QLabel("")
       -        vbox.addWidget(self.amount_label)
       -
       -        vbox.addStretch(1)
       -        self.setLayout(main_box)
       -
       -
       -    def set_content(self, address, amount, message, url):
       -        address_text = "<span style='font-size: 18pt'>%s</span>" % address if address else ""
       -        self.address_label.setText(address_text)
       -        if amount:
       -            amount = self.win.format_amount(amount)
       -            amount_text = "<span style='font-size: 21pt'>%s</span> <span style='font-size: 16pt'>%s</span> " % (amount, self.win.base_unit())
       -        else:
       -            amount_text = ''
       -        self.amount_label.setText(amount_text)
       -        label_text = "<span style='font-size: 21pt'>%s</span>" % message if message else ""
       -        self.label_label.setText(label_text)
       -        self.qrw.setData(url)
       -
       -
       -
       -
       -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)
       -
       -
       -
       -