updater ui.

This commit is contained in:
St.Huang 2018-07-09 16:23:17 +08:00
parent 1322d4c2e5
commit 59e3d8714d
4 changed files with 40 additions and 34 deletions

View File

@ -30,6 +30,7 @@ class Endpoint:
feedback_mail = u'sth201807@gmail.com' feedback_mail = u'sth201807@gmail.com'
check_version = u'sth2018/FastWordQuery' check_version = u'sth2018/FastWordQuery'
user_guide = u'https://sth2018.github.io/FastWordQuery' user_guide = u'https://sth2018.github.io/FastWordQuery'
version = VERSION
class Template: class Template:

View File

@ -39,20 +39,20 @@ class Ui_DialogUpdates(object):
self.verticalLayout.addWidget(self.textBrowser) self.verticalLayout.addWidget(self.textBrowser)
self.horizontalLayout = QtGui.QHBoxLayout() self.horizontalLayout = QtGui.QHBoxLayout()
self.horizontalLayout.setObjectName(_fromUtf8("horizontalLayout")) self.horizontalLayout.setObjectName(_fromUtf8("horizontalLayout"))
spacerItem = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) #spacerItem = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
self.horizontalLayout.addItem(spacerItem) #self.horizontalLayout.addItem(spacerItem)
self.always = QtGui.QPushButton(DialogUpdates) #self.always = QtGui.QPushButton(DialogUpdates)
self.always.setObjectName(_fromUtf8("always")) #self.always.setObjectName(_fromUtf8("always"))
self.horizontalLayout.addWidget(self.always) #self.horizontalLayout.addWidget(self.always)
self.update = QtGui.QPushButton(DialogUpdates) self.update = QtGui.QPushButton(DialogUpdates)
self.update.setObjectName(_fromUtf8("update")) self.update.setObjectName(_fromUtf8("update"))
self.horizontalLayout.addWidget(self.update) self.horizontalLayout.addWidget(self.update, 0, QtCore.Qt.AlignCenter)
self.dont = QtGui.QPushButton(DialogUpdates) #self.dont = QtGui.QPushButton(DialogUpdates)
self.dont.setObjectName(_fromUtf8("dont")) #self.dont.setObjectName(_fromUtf8("dont"))
self.horizontalLayout.addWidget(self.dont) #self.horizontalLayout.addWidget(self.dont)
self.never = QtGui.QPushButton(DialogUpdates) #self.never = QtGui.QPushButton(DialogUpdates)
self.never.setObjectName(_fromUtf8("never")) #self.never.setObjectName(_fromUtf8("never"))
self.horizontalLayout.addWidget(self.never) #self.horizontalLayout.addWidget(self.never)
self.verticalLayout.addLayout(self.horizontalLayout) self.verticalLayout.addLayout(self.horizontalLayout)
self.retranslateUi(DialogUpdates) self.retranslateUi(DialogUpdates)
@ -61,8 +61,8 @@ class Ui_DialogUpdates(object):
def retranslateUi(self, DialogUpdates): def retranslateUi(self, DialogUpdates):
DialogUpdates.setWindowTitle(_translate("DialogUpdates", "Update Checker", None)) DialogUpdates.setWindowTitle(_translate("DialogUpdates", "Update Checker", None))
self.labelUpdates.setText(_translate("DialogUpdates", "<html><head/><body><p>A new version of {0} is available for download! </p><p>Do you want to update {1}to version {2}?</p><p>Changes from your version are listed below:</p></body></html>", None)) self.labelUpdates.setText(_translate("DialogUpdates", "<html><head/><body><p>A new version of {0} is available for download! </p><p>Do you want to update {1}to version {2}?</p><p>Changes from your version are listed below:</p></body></html>", None))
self.always.setText(_translate("DialogUpdates", "Always update", None)) #self.always.setText(_translate("DialogUpdates", "Always update", None))
self.update.setText(_translate("DialogUpdates", "Update", None)) self.update.setText(_translate("DialogUpdates", "Update", None))
self.dont.setText(_translate("DialogUpdates", "Don\'t update", None)) #self.dont.setText(_translate("DialogUpdates", "Don\'t update", None))
self.never.setText(_translate("DialogUpdates", "Never", None)) #self.never.setText(_translate("DialogUpdates", "Never", None))

View File

@ -43,34 +43,39 @@ dataPath = '.ankihub.json' #os.path.join(defaultBase(),'.ankihub.json')
class DialogUpdates(QtGui.QDialog, Ui_DialogUpdates): class DialogUpdates(QtGui.QDialog, Ui_DialogUpdates):
def __init__(self, parent, data, oldData, callback, automaticAnswer=None,install=False): def __init__(self, parent, data, oldData, callback, automaticAnswer=None,install=False):
QtGui.QDialog.__init__(self,parent) QtGui.QDialog.__init__(self,parent)
self.setModal(True)
self.setWindowFlags(
self.windowFlags() &
~QtCore.Qt.WindowContextHelpButtonHint
)
self.setupUi(self) self.setupUi(self)
totalSize = sum(map(lambda x:x['size'],data['assets'])) totalSize = sum(map(lambda x:x['size'],data['assets']))
def answer(doUpdate,answ): def answer(doUpdate,answ):
self.update.setEnabled(False) self.update.setEnabled(False)
self.dont.setEnabled(False) #self.dont.setEnabled(False)
self.always.setEnabled(False) #self.always.setEnabled(False)
self.never.setEnabled(False) #self.never.setEnabled(False)
callback(doUpdate,answ,self.appendHtml,self.finish,install) callback(doUpdate,answ,self.appendHtml,self.finish,install)
self.html = u'' self.html = u''
self.appendHtml(markdown(data['body'])) self.appendHtml(markdown(data['body']))
if not automaticAnswer: #if not automaticAnswer:
self.connect(self.update,QtCore.SIGNAL('clicked()'), self.connect(self.update,QtCore.SIGNAL('clicked()'),
lambda:answer(True,'ask')) lambda:answer(True,'ask'))
self.connect(self.dont,QtCore.SIGNAL('clicked()'), #self.connect(self.dont,QtCore.SIGNAL('clicked()'),
lambda:answer(False,'ask')) # lambda:answer(False,'ask'))
self.connect(self.always,QtCore.SIGNAL('clicked()'), #self.connect(self.always,QtCore.SIGNAL('clicked()'),
lambda:answer(True,'always')) # lambda:answer(True,'always'))
self.connect(self.never,QtCore.SIGNAL('clicked()'), #self.connect(self.never,QtCore.SIGNAL('clicked()'),
lambda:answer(False,'never')) # lambda:answer(False,'never'))
else: #else:
#self.update.setEnabled(False) #self.update.setEnabled(False)
#self.dont.setEnabled(False) #self.dont.setEnabled(False)
#self.always.setEnabled(False) #self.always.setEnabled(False)
#self.never.setEnabled(False) #self.never.setEnabled(False)
answer(True,automaticAnswer) # answer(True,automaticAnswer)
fromVersion = '' fromVersion = ''
if 'tag_name' in oldData: if 'tag_name' in oldData:
@ -83,11 +88,11 @@ class DialogUpdates(QtGui.QDialog, Ui_DialogUpdates):
def appendHtml(self,html='',temp=''): def appendHtml(self,html='',temp=''):
self.html += html self.html += html + '<div id="text_bottom"></div>'
self.textBrowser.setHtml(u'<html><body>{0}{1}</body></html>'.format(self.html,temp)) self.textBrowser.setHtml(u'<html><body>{0}{1}</body></html>'.format(self.html,temp))
self.textBrowser.scrollToAnchor('text_bottom')
def finish(self): def finish(self):
pass pass
@ -190,7 +195,7 @@ def updateSingle(repositories,path,data):
datas = [] datas = []
def update(add=[],install=False): def update(add=[],install=False, VERSION='v0.0.0'):
conn = httplib.HTTPSConnection("api.github.com") conn = httplib.HTTPSConnection("api.github.com")
try: try:
with open(dataPath,'r') as file: with open(dataPath,'r') as file:
@ -238,7 +243,7 @@ def update(add=[],install=False):
while len(oldVersion)<3: while len(oldVersion)<3:
oldVersion.append(0) oldVersion.append(0)
else: else:
oldVersion = [0,0,0] oldVersion = map(int,VERSION[1:].split('.'))#[0,0,0]
newVersion = map(int,data['tag_name'][1:].split('.')) newVersion = map(int,data['tag_name'][1:].split('.'))
isMinor = len(newVersion)>2 and newVersion[2]>0 isMinor = len(newVersion)>2 and newVersion[2]>0
while len(newVersion)<3: while len(newVersion)<3:

View File

@ -517,7 +517,7 @@ class OptionsDialog(QDialog):
def check_updates(): def check_updates():
try: try:
import libs.ankihub import libs.ankihub
if not libs.ankihub.update([Endpoint.check_version]): if not libs.ankihub.update([Endpoint.check_version], False, Endpoint.version):
showInfo(_('LATEST_VERSION')) showInfo(_('LATEST_VERSION'))
except: except:
showInfo(_('CHECK_FAILURE')) showInfo(_('CHECK_FAILURE'))