Browse Source

Implemented new version comparing

283
Maran 12 years ago
parent
commit
9009fba35c
  1. 39
      lib/gui_qt.py

39
lib/gui_qt.py

@ -68,33 +68,38 @@ class UpdateLabel(QtGui.QLabel):
con = httplib.HTTPConnection('electrum.org', 80, timeout=5) con = httplib.HTTPConnection('electrum.org', 80, timeout=5)
con.request("GET", "/version") con.request("GET", "/version")
res = con.getresponse() res = con.getresponse()
if res.status == 200: except socket.error as msg:
latest_version = res.read() print "Could not retrieve version information"
latest_version = latest_version.replace("\n","") return
if(re.match('^\d\.\d.\d$', latest_version)):
self.config = config
self.latest_version = tuple(latest_version.split(".")) if res.status == 200:
self.latest_version_text = latest_version self.latest_version = res.read()
self.current_version = tuple(ELECTRUM_VERSION.split(".")) self.latest_version = self.latest_version.replace("\n","")
if(re.match('^\d\.\d.\d$', self.latest_version)):
self.config = config
if(self.latest_version > self.current_version): self.current_version = ELECTRUM_VERSION
latest_seen = self.config.get("last_seen_version")
if(self.latest_version > latest_seen):
self.setText("New version available: " + '.'.join(list(self.latest_version)))
except socket.error as msg: if(self.compare_versions(self.latest_version, self.current_version) == 1):
print "Could not retrieve version information" latest_seen = self.config.get("last_seen_version")
if(self.compare_versions(self.latest_version, latest_seen) == 1):
self.setText("New version available: " + self.latest_version)
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): def ignore_this_version(self):
self.setText("") self.setText("")
self.config.set_key("last_seen_version", self.latest_version) 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.")) QMessageBox.information(self, _("Preference saved"), _("Notifications about this update will not be shown again."))
self.dialog.done(0) self.dialog.done(0)
def ignore_all_version(self): def ignore_all_version(self):
self.setText("") self.setText("")
self.config.set_key("last_seen_version", tuple(['9','9','9'])) 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.")) QMessageBox.information(self, _("Preference saved"), _("No more notifications about version updates will be shown."))
self.dialog.done(0) self.dialog.done(0)
@ -108,7 +113,7 @@ class UpdateLabel(QtGui.QLabel):
dialog.setModal(1) dialog.setModal(1)
main_layout = QGridLayout() main_layout = QGridLayout()
main_layout.addWidget(QLabel("A new version of Electrum is available: " + self.latest_version_text), 0,0,1,3) 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 = QPushButton(_("Ignore this version"))
ignore_version.clicked.connect(self.ignore_this_version) ignore_version.clicked.connect(self.ignore_this_version)

Loading…
Cancel
Save