URI: 
       tseparate version_getter module - electrum - Electrum Bitcoin wallet
  HTML git clone https://git.parazyd.org/electrum
   DIR Log
   DIR Files
   DIR Refs
   DIR Submodules
       ---
   DIR commit e40776bcee17a9a824fbd286cc7dfcdeef1647ef
   DIR parent 1d0fd3784a57e2c67072e1d27c0d65fc256aef77
  HTML Author: ThomasV <thomasv@gitorious>
       Date:   Tue, 10 Sep 2013 23:48:28 +0200
       
       separate version_getter module
       
       Diffstat:
         M gui/gui_classic.py                  |      96 +------------------------------
         A gui/version_getter.py               |     120 +++++++++++++++++++++++++++++++
         M setup.py                            |       1 +
       
       3 files changed, 122 insertions(+), 95 deletions(-)
       ---
   DIR diff --git a/gui/gui_classic.py b/gui/gui_classic.py
       t@@ -75,101 +75,6 @@ import re
        from qt_util import *
        
        
       -class VersionGetter(threading.Thread):
       -
       -    def __init__(self, label):
       -        threading.Thread.__init__(self)
       -        self.label = label
       -        
       -    def run(self):
       -        try:
       -            con = httplib.HTTPConnection('electrum.org', 80, timeout=5)
       -            con.request("GET", "/version")
       -            res = con.getresponse()
       -        except socket.error as msg:
       -            print_error("Could not retrieve version information")
       -            return
       -            
       -        if res.status == 200:
       -            latest_version = res.read()
       -            latest_version = latest_version.replace("\n","")
       -            if(re.match('^\d+(\.\d+)*$', latest_version)):
       -                self.label.callback(latest_version)
       -
       -class UpdateLabel(QLabel):
       -    def __init__(self, config, sb):
       -        QLabel.__init__(self)
       -        self.new_version = False
       -        self.sb = sb
       -        self.config = config
       -        self.current_version = ELECTRUM_VERSION
       -        self.connect(self, QtCore.SIGNAL('new_electrum_version'), self.new_electrum_version)
       -        VersionGetter(self).start()
       -
       -    def callback(self, version):
       -        self.latest_version = version
       -        if(self.compare_versions(self.latest_version, self.current_version) == 1):
       -            latest_seen = self.config.get("last_seen_version",ELECTRUM_VERSION)
       -            if(self.compare_versions(self.latest_version, latest_seen) == 1):
       -                self.new_version = True
       -                self.emit(QtCore.SIGNAL('new_electrum_version'))
       -
       -    def new_electrum_version(self):
       -        if self.new_version:
       -            self.setText(_("New version available") + ": " + self.latest_version)
       -            self.sb.insertPermanentWidget(1, self)
       -
       -    def compare_versions(self, version1, version2):
       -        def normalize(v):
       -            return [int(x) for x in re.sub(r'(\.0+)*$','', v).split(".")]
       -        return cmp(normalize(version1), normalize(version2))
       -
       -    def ignore_this_version(self):
       -        self.setText("")
       -        self.config.set_key("last_seen_version", self.latest_version, True)
       -        QMessageBox.information(self, _("Preference saved"), _("Notifications about this update will not be shown again."))
       -        self.dialog.done(0)
       -
       -    def ignore_all_version(self):
       -        self.setText("")
       -        self.config.set_key("last_seen_version", "9.9.9", True)
       -        QMessageBox.information(self, _("Preference saved"), _("No more notifications about version updates will be shown."))
       -        self.dialog.done(0)
       -  
       -    def open_website(self):
       -        webbrowser.open("http://electrum.org/download.html")
       -        self.dialog.done(0)
       -
       -    def mouseReleaseEvent(self, event):
       -        dialog = QDialog(self)
       -        dialog.setWindowTitle(_('Electrum update'))
       -        dialog.setModal(1)
       -
       -        main_layout = QGridLayout()
       -        main_layout.addWidget(QLabel(_("A new version of Electrum is available:")+" " + self.latest_version), 0,0,1,3)
       -        
       -        ignore_version = QPushButton(_("Ignore this version"))
       -        ignore_version.clicked.connect(self.ignore_this_version)
       -
       -        ignore_all_versions = QPushButton(_("Ignore all versions"))
       -        ignore_all_versions.clicked.connect(self.ignore_all_version)
       -
       -        open_website = QPushButton(_("Goto download page"))
       -        open_website.clicked.connect(self.open_website)
       -
       -        main_layout.addWidget(ignore_version, 1, 0)
       -        main_layout.addWidget(ignore_all_versions, 1, 1)
       -        main_layout.addWidget(open_website, 1, 2)
       -
       -        dialog.setLayout(main_layout)
       -
       -        self.dialog = dialog
       -        
       -        if not dialog.exec_(): return
       -
       -
       -
       -
        class MyTreeWidget(QTreeWidget):
            def __init__(self, parent):
                QTreeWidget.__init__(self, parent)
       t@@ -1421,6 +1326,7 @@ class ElectrumWindow(QMainWindow):
                self.balance_label = QLabel("")
                sb.addWidget(self.balance_label)
        
       +        from version_getter import UpdateLabel
                self.updatelabel = UpdateLabel(self.config, sb)
        
                self.account_selector = QComboBox()
   DIR diff --git a/gui/version_getter.py b/gui/version_getter.py
       t@@ -0,0 +1,120 @@
       +#!/usr/bin/env python
       +#
       +# Electrum - lightweight Bitcoin client
       +# Copyright (C) 2012 thomasv@gitorious
       +#
       +# 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 threading, httplib, re
       +import webbrowser
       +from PyQt4.QtGui import *
       +from PyQt4.QtCore import *
       +import PyQt4.QtCore as QtCore
       +
       +from i18n import _
       +from electrum import ELECTRUM_VERSION
       +
       +class VersionGetter(threading.Thread):
       +
       +    def __init__(self, label):
       +        threading.Thread.__init__(self)
       +        self.label = label
       +        
       +    def run(self):
       +        try:
       +            con = httplib.HTTPConnection('electrum.org', 80, timeout=5)
       +            con.request("GET", "/version")
       +            res = con.getresponse()
       +        except socket.error as msg:
       +            print_error("Could not retrieve version information")
       +            return
       +            
       +        if res.status == 200:
       +            latest_version = res.read()
       +            latest_version = latest_version.replace("\n","")
       +            if(re.match('^\d+(\.\d+)*$', latest_version)):
       +                self.label.callback(latest_version)
       +
       +class UpdateLabel(QLabel):
       +    def __init__(self, config, sb):
       +        QLabel.__init__(self)
       +        self.new_version = False
       +        self.sb = sb
       +        self.config = config
       +        self.current_version = ELECTRUM_VERSION
       +        self.connect(self, QtCore.SIGNAL('new_electrum_version'), self.new_electrum_version)
       +        VersionGetter(self).start()
       +
       +    def callback(self, version):
       +        self.latest_version = version
       +        if(self.compare_versions(self.latest_version, self.current_version) == 1):
       +            latest_seen = self.config.get("last_seen_version",ELECTRUM_VERSION)
       +            if(self.compare_versions(self.latest_version, latest_seen) == 1):
       +                self.new_version = True
       +                self.emit(QtCore.SIGNAL('new_electrum_version'))
       +
       +    def new_electrum_version(self):
       +        if self.new_version:
       +            self.setText(_("New version available") + ": " + self.latest_version)
       +            self.sb.insertPermanentWidget(1, self)
       +
       +    def compare_versions(self, version1, version2):
       +        def normalize(v):
       +            return [int(x) for x in re.sub(r'(\.0+)*$','', v).split(".")]
       +        return cmp(normalize(version1), normalize(version2))
       +
       +    def ignore_this_version(self):
       +        self.setText("")
       +        self.config.set_key("last_seen_version", self.latest_version, True)
       +        QMessageBox.information(self, _("Preference saved"), _("Notifications about this update will not be shown again."))
       +        self.dialog.done(0)
       +
       +    def ignore_all_version(self):
       +        self.setText("")
       +        self.config.set_key("last_seen_version", "9.9.9", True)
       +        QMessageBox.information(self, _("Preference saved"), _("No more notifications about version updates will be shown."))
       +        self.dialog.done(0)
       +  
       +    def open_website(self):
       +        webbrowser.open("http://electrum.org/download.html")
       +        self.dialog.done(0)
       +
       +    def mouseReleaseEvent(self, event):
       +        dialog = QDialog(self)
       +        dialog.setWindowTitle(_('Electrum update'))
       +        dialog.setModal(1)
       +
       +        main_layout = QGridLayout()
       +        main_layout.addWidget(QLabel(_("A new version of Electrum is available:")+" " + self.latest_version), 0,0,1,3)
       +        
       +        ignore_version = QPushButton(_("Ignore this version"))
       +        ignore_version.clicked.connect(self.ignore_this_version)
       +
       +        ignore_all_versions = QPushButton(_("Ignore all versions"))
       +        ignore_all_versions.clicked.connect(self.ignore_all_version)
       +
       +        open_website = QPushButton(_("Goto download page"))
       +        open_website.clicked.connect(self.open_website)
       +
       +        main_layout.addWidget(ignore_version, 1, 0)
       +        main_layout.addWidget(ignore_all_versions, 1, 1)
       +        main_layout.addWidget(open_website, 1, 2)
       +
       +        dialog.setLayout(main_layout)
       +
       +        self.dialog = dialog
       +        
       +        if not dialog.exec_(): return
       +
       +
   DIR diff --git a/setup.py b/setup.py
       t@@ -89,6 +89,7 @@ setup(name = "Electrum",
                          'electrum_gui.password_dialog',
                          'electrum_gui.plugins',
                          'electrum_gui.seed_dialog',
       +                  'electrum_gui.version_getter',
                          'electrum_gui.amountedit',
                          'electrum_plugins.pointofsale',
                          'electrum_plugins.qrscanner',