summaryrefslogtreecommitdiff
path: root/alot/db/manager.py
diff options
context:
space:
mode:
authorAnton Khirnov <anton@khirnov.net>2020-05-24 14:23:34 +0200
committerAnton Khirnov <anton@khirnov.net>2020-05-24 14:47:35 +0200
commit1bceeca953cda102923bb67dfbc8488bae5d35cc (patch)
tree2798579f7e97adccc4cdc302775db912a16b0bb0 /alot/db/manager.py
parentc8f3d99eab089d337e5fdcb8ff39efd6ab1aa5e9 (diff)
Allow designating certain tags as "property" tags.
Those are tags like attachment, signed, sent, etc., which are set automatically based on message properties and are typically not changed manually. Such designated tags are not affected by the retag operation.
Diffstat (limited to 'alot/db/manager.py')
-rw-r--r--alot/db/manager.py5
1 files changed, 4 insertions, 1 deletions
diff --git a/alot/db/manager.py b/alot/db/manager.py
index 6424f32f..cf452c42 100644
--- a/alot/db/manager.py
+++ b/alot/db/manager.py
@@ -84,6 +84,7 @@ class DBManager:
"""constants representing sort orders"""
_exclude_tags = None
+ _property_tags = None
def __init__(self, path=None, ro=False):
"""
@@ -98,6 +99,7 @@ class DBManager:
self.processes = []
self._exclude_tags = frozenset(settings.get('exclude_tags'))
+ self._property_tags = frozenset(settings.get('property_tags'))
def _db_ro(self):
return Database(path = self.path, mode = Database.MODE.READ_ONLY)
@@ -159,8 +161,9 @@ class DBManager:
if cmd == 'tag':
msg_tags |= op_tags
if cmd == 'set':
+ property_tags = msg_tags & self._property_tags
msg_tags.clear()
- msg_tags |= op_tags
+ msg_tags |= op_tags | property_tags
elif cmd == 'untag':
msg_tags -= op_tags