AddonManager: Don't check addons for updates if they have already been checked for updates

This commit is contained in:
Yorik van Havre
2019-07-26 22:21:51 -03:00
parent afce7318b1
commit febbb16bb1
2 changed files with 10 additions and 2 deletions

View File

@@ -232,6 +232,7 @@ class CommandAddonManager:
self.check_worker = CheckWBWorker(self.repos)
self.check_worker.mark.connect(self.mark)
self.check_worker.enable.connect(self.enable_updates)
self.check_worker.addon_repos.connect(self.update_repos)
self.check_worker.start()
def apply_updates(self):
@@ -263,7 +264,7 @@ class CommandAddonManager:
addonicon = QtGui.QIcon(":/icons/" + addon_repo[0] + "_workbench_icon.svg")
if addonicon.isNull():
addonicon = QtGui.QIcon(":/icons/Group.svg")
if addon_repo[2] == 1:
if addon_repo[2] > 0:
item = QtGui.QListWidgetItem(addonicon,str(addon_repo[0]) + str(" ("+translate("AddonsInstaller","Installed")+")"))
item.setForeground(QtGui.QBrush(QtGui.QColor(0,182,41)))
self.dialog.listWorkbenches.addItem(item)
@@ -348,7 +349,7 @@ class CommandAddonManager:
def update_repos(self, repos):
"""convenience function to update the internal list of workbenches"""
"""this function allows threads to update the main list of workbenches"""
self.repos = repos

View File

@@ -159,6 +159,7 @@ class CheckWBWorker(QtCore.QThread):
enable = QtCore.Signal(int)
mark = QtCore.Signal(str)
addon_repos = QtCore.Signal(object)
def __init__(self,repos):
@@ -208,6 +209,8 @@ class CheckWBWorker(QtCore.QThread):
if "git pull" in gitrepo.status():
self.mark.emit(repo[0])
upds.append(repo[0])
self.repos[self.repos.index(repo)][2] = 2 # mark as already installed AND already checked for updates
self.addon_repos.emit(self.repos)
self.enable.emit(len(upds))
self.stop = True
@@ -301,6 +304,8 @@ class ShowWorker(QtCore.QThread):
def __init__(self, repos, idx):
# repos is a list of [name,url,installbit,descr] lists
# installbit: 0 = not installed, 1 = installed, 2 = installed and checked for available updates
QtCore.QThread.__init__(self)
self.repos = repos
self.idx = idx
@@ -386,6 +391,8 @@ class ShowWorker(QtCore.QThread):
message = "<strong style=\"background: #B65A00;\">" + translate("AddonsInstaller", "An update is available for this addon.") + "</strong><br>" + desc + '<br/><br/>Addon repository: <a href="' + self.repos[self.idx][1] + '">' + self.repos[self.idx][1] + '</a>'
else:
message = "<strong style=\"background: #00B629;\">" + translate("AddonsInstaller", "This addon is already installed.") + "</strong><br>" + desc + '<br/><br/>Addon repository: <a href="' + self.repos[self.idx][1] + '">' + self.repos[self.idx][1] + '</a>'
self.repos[self.idx][2] = 2 # mark as already installed AND already checked for updates
self.addon_repos.emit(self.repos)
else:
message = desc + '<br/><br/>Addon repository: <a href="' + self.repos[self.idx][1] + '">' + self.repos[self.idx][1] + '</a>'