Navigation Menu

Skip to content

Commit

Permalink
AddonManager: Don't check addons for updates if they have already bee…
Browse files Browse the repository at this point in the history
…n checked for updates
  • Loading branch information
yorikvanhavre committed Jul 27, 2019
1 parent e28ec22 commit e1b581a
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 2 deletions.
5 changes: 3 additions & 2 deletions src/Mod/AddonManager/AddonManager.py
Expand Up @@ -232,6 +232,7 @@ def check_updates(self):
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):
Expand Down Expand Up @@ -263,7 +264,7 @@ def add_addon_repo(self, addon_repo):
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)
Expand Down Expand Up @@ -348,7 +349,7 @@ def switchtab(self,idx):

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

Expand Down
7 changes: 7 additions & 0 deletions src/Mod/AddonManager/addonmanager_workers.py
Expand Up @@ -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):

Expand Down Expand Up @@ -208,6 +209,8 @@ def run(self):
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

Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -386,6 +391,8 @@ def run(self):
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>'

Expand Down

0 comments on commit e1b581a

Please sign in to comment.