From 92df52867d5db986f681a78cdcd26584b3c4b2ef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pawe=C5=82=20Jastrz=C4=99bski?= Date: Sat, 15 Jun 2013 13:21:51 +0200 Subject: [PATCH] Implemented version check --- kcc/KCC_gui.py | 39 ++++++++++++++++++++++++++++++++------- 1 file changed, 32 insertions(+), 7 deletions(-) diff --git a/kcc/KCC_gui.py b/kcc/KCC_gui.py index 467e80d..ae6970f 100644 --- a/kcc/KCC_gui.py +++ b/kcc/KCC_gui.py @@ -26,11 +26,13 @@ import os import sys import shutil import traceback +import urllib2 import comic2ebook import kindlestrip from image import ProfileData from subprocess import call, STDOUT, PIPE from PyQt4 import QtGui, QtCore +from xml.dom.minidom import parse class Icons: @@ -53,6 +55,26 @@ class Icons: self.error.addPixmap(QtGui.QPixmap(":/Status/icons/error.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off) +# noinspection PyBroadException +class VersionThread(QtCore.QThread): + def __init__(self, parent): + QtCore.QThread.__init__(self) + self.parent = parent + + def __del__(self): + self.wait() + + def run(self): + try: + XML = urllib2.urlopen('http://kcc.vulturis.eu/Version.xml') + XML = parse(XML) + except Exception: + return + latestVersion = XML.childNodes[0].getElementsByTagName('latest')[0].childNodes[0].toxml() + if latestVersion != __version__: + self.emit(QtCore.SIGNAL("addMessage"), 'New version is available!', 'warning') + + # noinspection PyBroadException class WorkerThread(QtCore.QThread): def __init__(self, parent): @@ -332,7 +354,7 @@ class Ui_KCC(object): self.addMessage('No files selected! Please choose files to convert.', 'error') self.needClean = True return - self.thread.start() + self.worker.start() def hideProgressBar(self): GUI.ProgressBar.hide() @@ -352,7 +374,8 @@ class Ui_KCC(object): self.settings = QtCore.QSettings('KindleComicConverter', 'KindleComicConverter') self.lastPath = self.settings.value('lastPath', '', type=str) self.lastDevice = self.settings.value('lastDevice', 10, type=int) - self.thread = WorkerThread(self) + self.worker = WorkerThread(self) + self.versionCheck = VersionThread(self) self.needClean = True self.GammaValue = 0 @@ -379,10 +402,11 @@ class Ui_KCC(object): GUI.FileButton.clicked.connect(self.selectFile) GUI.ConvertButton.clicked.connect(self.convertStart) GUI.GammaSlider.valueChanged.connect(self.changeGamma) - KCC.connect(self.thread, QtCore.SIGNAL("progressBarTick"), self.updateProgressbar) - KCC.connect(self.thread, QtCore.SIGNAL("modeConvert"), self.modeConvert) - KCC.connect(self.thread, QtCore.SIGNAL("addMessage"), self.addMessage) - KCC.connect(self.thread, QtCore.SIGNAL("hideProgressBar"), self.hideProgressBar) + KCC.connect(self.worker, QtCore.SIGNAL("progressBarTick"), self.updateProgressbar) + KCC.connect(self.worker, QtCore.SIGNAL("modeConvert"), self.modeConvert) + KCC.connect(self.worker, QtCore.SIGNAL("addMessage"), self.addMessage) + KCC.connect(self.worker, QtCore.SIGNAL("hideProgressBar"), self.hideProgressBar) + KCC.connect(self.versionCheck, QtCore.SIGNAL("addMessage"), self.addMessage) KCC.closeEvent = self.saveSettings for profile in profiles: @@ -393,4 +417,5 @@ class Ui_KCC(object): GUI.FormatBox.setCurrentIndex(0) self.modeBasic() - GUI.ProgressBar.hide() + self.versionCheck.start() + self.hideProgressBar()