AddonManager: Fixed crash when quickly clicking through addons
This commit is contained in:
@@ -304,6 +304,11 @@ class CommandAddonManager:
|
||||
# kill existing show worker (might still be busy loading images...)
|
||||
if self.show_worker:
|
||||
self.show_worker.exit()
|
||||
self.show_worker.stopImageLoading()
|
||||
# wait until the thread stops
|
||||
while True:
|
||||
if self.show_worker.isFinished():
|
||||
break
|
||||
self.show_worker = ShowWorker(self.repos, idx)
|
||||
self.show_worker.info_label.connect(self.show_information)
|
||||
self.show_worker.addon_repos.connect(self.update_repos)
|
||||
|
||||
@@ -407,13 +407,20 @@ class ShowWorker(QtCore.QThread):
|
||||
|
||||
self.info_label.emit( message )
|
||||
self.progressbar_show.emit(False)
|
||||
self.mustLoadImages = True
|
||||
l = self.loadImages( message, self.repos[self.idx][1], self.repos[self.idx][0])
|
||||
if l:
|
||||
self.info_label.emit( l )
|
||||
self.stop = True
|
||||
|
||||
def stopImageLoading(self):
|
||||
|
||||
"this stops the image loading process and allow the thread to terminate earlier"
|
||||
|
||||
self.mustLoadImages = False
|
||||
|
||||
def loadImages(self,message,url,wbName):
|
||||
|
||||
|
||||
"checks if the given page contains images and downloads them"
|
||||
|
||||
# QTextBrowser cannot display online images. So we download them
|
||||
@@ -427,6 +434,8 @@ class ShowWorker(QtCore.QThread):
|
||||
if not os.path.exists(store):
|
||||
os.makedirs(store)
|
||||
for path in imagepaths:
|
||||
if not self.mustLoadImages:
|
||||
return None
|
||||
origpath = path
|
||||
if "?" in path:
|
||||
# remove everything after the ?
|
||||
|
||||
Reference in New Issue
Block a user