summaryrefslogtreecommitdiff
path: root/alot
diff options
context:
space:
mode:
authorPatrick Totzke <patricktotzke@gmail.com>2012-01-08 12:23:19 +0000
committerPatrick Totzke <patricktotzke@gmail.com>2012-01-08 12:23:19 +0000
commit55702c5ed955dc230f310d229fa0c2bcaee4e3ac (patch)
tree4b08bc5021030101937d39cb72ce3817ab0583df /alot
parentabc41deef6db833d50709fb337be89f9d72f0ec8 (diff)
update local tags in Message and Thread
by extending the afterwards callback issue #242
Diffstat (limited to 'alot')
-rw-r--r--alot/db.py20
-rw-r--r--alot/message.py14
2 files changed, 28 insertions, 6 deletions
diff --git a/alot/db.py b/alot/db.py
index 9149c502..1ee8f329 100644
--- a/alot/db.py
+++ b/alot/db.py
@@ -404,7 +404,12 @@ class Thread(object):
"""
newtags = set(tags).difference(self._tags)
if newtags:
- self._dbman.tag('thread:' + self._id, newtags, afterwards)
+ def myafterwards():
+ self._tags = self._tags.union(tags)
+ if callable(afterwards):
+ afterwards()
+
+ self._dbman.tag('thread:' + self._id, newtags, myafterwards)
self._tags = self._tags.union(newtags)
def remove_tags(self, tags, afterwards=None):
@@ -425,7 +430,11 @@ class Thread(object):
"""
rmtags = set(tags).intersection(self._tags)
if rmtags:
- self._dbman.untag('thread:' + self._id, tags, afterwards)
+ def myafterwards():
+ self._tags = self._tags.difference(tags)
+ if callable(afterwards):
+ afterwards()
+ self._dbman.untag('thread:' + self._id, tags, myafterwards)
self._tags = self._tags.difference(rmtags)
def set_tags(self, tags, afterwards=None):
@@ -446,7 +455,12 @@ class Thread(object):
:type afterwards: callable
"""
if tags != self._tags:
- self._dbman.tag('thread:' + self._id, tags, afterwards=afterwards,
+ def myafterwards():
+ self._tags = set(tags)
+ if callable(afterwards):
+ afterwards()
+ self._dbman.tag('thread:' + self._id, tags,
+ afterwards=myafterwards,
remove_rest=True)
self._tags = set(tags)
diff --git a/alot/message.py b/alot/message.py
index 163dac05..db96803b 100644
--- a/alot/message.py
+++ b/alot/message.py
@@ -176,7 +176,12 @@ class Message(object):
application of this tagging operation
:type afterwards: callable
"""
- self._dbman.tag('id:' + self._id, tags, afterwards)
+ def myafterwards():
+ self._tags = self._tags.union(tags)
+ if callable(afterwards):
+ afterwards()
+
+ self._dbman.tag('id:' + self._id, tags, myafterwards)
self._tags = self._tags.union(tags)
def remove_tags(self, tags, afterwards=None):
@@ -194,9 +199,12 @@ class Message(object):
application of this tagging operation
:type afterwards: callable
"""
+ def myafterwards():
+ self._tags = self._tags.difference(tags)
+ if callable(afterwards):
+ afterwards()
- self._dbman.untag('id:' + self._id, tags, afterwards)
- self._tags = self._tags.difference(tags)
+ self._dbman.untag('id:' + self._id, tags, myafterwards)
def get_attachments(self):
"""