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'
check_version = u'sth2018/FastWordQuery'
user_guide = u'https://sth2018.github.io/FastWordQuery'
version = VERSION
class Template:

View File

@ -39,20 +39,20 @@ class Ui_DialogUpdates(object):
self.verticalLayout.addWidget(self.textBrowser)
self.horizontalLayout = QtGui.QHBoxLayout()
self.horizontalLayout.setObjectName(_fromUtf8("horizontalLayout"))
spacerItem = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
self.horizontalLayout.addItem(spacerItem)
self.always = QtGui.QPushButton(DialogUpdates)
self.always.setObjectName(_fromUtf8("always"))
self.horizontalLayout.addWidget(self.always)
#spacerItem = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
#self.horizontalLayout.addItem(spacerItem)
#self.always = QtGui.QPushButton(DialogUpdates)
#self.always.setObjectName(_fromUtf8("always"))
#self.horizontalLayout.addWidget(self.always)
self.update = QtGui.QPushButton(DialogUpdates)
self.update.setObjectName(_fromUtf8("update"))
self.horizontalLayout.addWidget(self.update)
self.dont = QtGui.QPushButton(DialogUpdates)
self.dont.setObjectName(_fromUtf8("dont"))
self.horizontalLayout.addWidget(self.dont)
self.never = QtGui.QPushButton(DialogUpdates)
self.never.setObjectName(_fromUtf8("never"))
self.horizontalLayout.addWidget(self.never)
self.horizontalLayout.addWidget(self.update, 0, QtCore.Qt.AlignCenter)
#self.dont = QtGui.QPushButton(DialogUpdates)
#self.dont.setObjectName(_fromUtf8("dont"))
#self.horizontalLayout.addWidget(self.dont)
#self.never = QtGui.QPushButton(DialogUpdates)
#self.never.setObjectName(_fromUtf8("never"))
#self.horizontalLayout.addWidget(self.never)
self.verticalLayout.addLayout(self.horizontalLayout)
self.retranslateUi(DialogUpdates)
@ -61,8 +61,8 @@ class Ui_DialogUpdates(object):
def retranslateUi(self, DialogUpdates):
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.always.setText(_translate("DialogUpdates", "Always update", None))
#self.always.setText(_translate("DialogUpdates", "Always update", None))
self.update.setText(_translate("DialogUpdates", "Update", None))
self.dont.setText(_translate("DialogUpdates", "Don\'t update", None))
self.never.setText(_translate("DialogUpdates", "Never", None))
#self.dont.setText(_translate("DialogUpdates", "Don\'t update", 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):
def __init__(self, parent, data, oldData, callback, automaticAnswer=None,install=False):
QtGui.QDialog.__init__(self,parent)
self.setModal(True)
self.setWindowFlags(
self.windowFlags() &
~QtCore.Qt.WindowContextHelpButtonHint
)
self.setupUi(self)
totalSize = sum(map(lambda x:x['size'],data['assets']))
def answer(doUpdate,answ):
self.update.setEnabled(False)
self.dont.setEnabled(False)
self.always.setEnabled(False)
self.never.setEnabled(False)
#self.dont.setEnabled(False)
#self.always.setEnabled(False)
#self.never.setEnabled(False)
callback(doUpdate,answ,self.appendHtml,self.finish,install)
self.html = u''
self.appendHtml(markdown(data['body']))
if not automaticAnswer:
self.connect(self.update,QtCore.SIGNAL('clicked()'),
lambda:answer(True,'ask'))
self.connect(self.dont,QtCore.SIGNAL('clicked()'),
lambda:answer(False,'ask'))
self.connect(self.always,QtCore.SIGNAL('clicked()'),
lambda:answer(True,'always'))
self.connect(self.never,QtCore.SIGNAL('clicked()'),
lambda:answer(False,'never'))
else:
#if not automaticAnswer:
self.connect(self.update,QtCore.SIGNAL('clicked()'),
lambda:answer(True,'ask'))
#self.connect(self.dont,QtCore.SIGNAL('clicked()'),
# lambda:answer(False,'ask'))
#self.connect(self.always,QtCore.SIGNAL('clicked()'),
# lambda:answer(True,'always'))
#self.connect(self.never,QtCore.SIGNAL('clicked()'),
# lambda:answer(False,'never'))
#else:
#self.update.setEnabled(False)
#self.dont.setEnabled(False)
#self.always.setEnabled(False)
#self.never.setEnabled(False)
answer(True,automaticAnswer)
# answer(True,automaticAnswer)
fromVersion = ''
if 'tag_name' in oldData:
@ -83,11 +88,11 @@ class DialogUpdates(QtGui.QDialog, Ui_DialogUpdates):
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.scrollToAnchor('text_bottom')
def finish(self):
pass
@ -190,7 +195,7 @@ def updateSingle(repositories,path,data):
datas = []
def update(add=[],install=False):
def update(add=[],install=False, VERSION='v0.0.0'):
conn = httplib.HTTPSConnection("api.github.com")
try:
with open(dataPath,'r') as file:
@ -238,7 +243,7 @@ def update(add=[],install=False):
while len(oldVersion)<3:
oldVersion.append(0)
else:
oldVersion = [0,0,0]
oldVersion = map(int,VERSION[1:].split('.'))#[0,0,0]
newVersion = map(int,data['tag_name'][1:].split('.'))
isMinor = len(newVersion)>2 and newVersion[2]>0
while len(newVersion)<3:

View File

@ -517,7 +517,7 @@ class OptionsDialog(QDialog):
def check_updates():
try:
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'))
except:
showInfo(_('CHECK_FAILURE'))