summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--portato/gui/updater.py23
1 files changed, 16 insertions, 7 deletions
diff --git a/portato/gui/updater.py b/portato/gui/updater.py
index ba46ffd..c4c81e7 100644
--- a/portato/gui/updater.py
+++ b/portato/gui/updater.py
@@ -27,8 +27,9 @@ class Updater (object):
SED_EXP = r"""
/\*/{
s/ \* //
-q
-}"""
+n
+}
+d"""
def __init__ (self, queue, iterators, threadClass = threading.Thread):
"""
@@ -48,6 +49,7 @@ q
self.iterators = iterators
self.threadClass = threadClass
self.stopEvent = threading.Event()
+ self.removed = set()
t = threadClass(name = "Queue Updater Thread", target = self.run)
t.setDaemon(True)
@@ -59,19 +61,21 @@ q
Checks the packages until being stopped.
"""
- curr = None
+ curr = set()
while not self.stopEvent.isSet():
# this = $(qlop -cCq | sed $SED_EXP)
p1 = subprocess.Popen(["qlop", "--current", "--nocolor", "--quiet"], stdout = subprocess.PIPE)
this = subprocess.Popen(["sed", self.SED_EXP], stdout = subprocess.PIPE, stdin = p1.stdout).communicate()[0]
- if this: this = this.strip()
- if this != curr: # changed package
- curr and self.remove(self.find(curr)) # remove the previous
- curr = this
+ this = set(this.split()) if this else set()
+ for removed in curr - this:
+ self.remove(self.find(removed)) # remove the previous
+ curr = this
time.sleep(2.0)
+
+ self.removed = set()
def stop (self):
"""
@@ -111,6 +115,11 @@ q
debug("Nothing to remove.")
return
+ if cpv in self.removed:
+ return
+
+ self.removed.add(cpv)
+
try:
self.queue.remove_with_children(self.iterators[cpv])
except KeyError:
> 2007-08-05i18n support and german translationsnecoro19-87/+1391 2007-08-04added an uncaught exception dialognecoro2-2/+1 2007-08-04added an uncaught exception dialognecoro4-3/+93 2007-08-04bugfixesnecoro3-5/+20 2007-08-01Removed "(GTK)" from desktop filenecoro1-1/+1 2007-07-30updatesnecoro1-1/+1 2007-07-30updatesnecoro2-21/+64 2007-07-28some more pause emerge itemsnecoro5-276/+423 2007-07-27changed design / added linknecoro3-66/+154 2007-07-26changed design / added linknecoro2-34/+27 2007-07-25changed design / added linknecoro5-86/+188 2007-07-24made the resume_loop-plugin change titles toonecoro5-7/+22 2007-07-21added logviewersnecoro7-215/+429 2007-07-21updated howtonecoro1-14/+24 2007-07-20new Plugin Schemenecoro1-5/+4 2007-07-20new Plugin Schemenecoro1-1/+1 2007-07-20new Plugin Schemenecoro9-162/+214 2007-07-13fixesnecoro4-27/+37 2007-07-13new fancier log outputnecoro14-127/+116 2007-07-11added SIGSTOP/SIGCONT support; SIGTERM now works ;)necoro8-208/+275 2007-07-09bug in shutdown pluginnecoro2-5/+12 2007-07-09added resume_loop pluginnecoro1-1/+1 2007-07-09added resume_loop pluginnecoro10-22/+162 2007-07-07some more documentationnecoro6-4/+108 2007-07-07Some documentation worknecoro7-18/+129