diff options
author | Anton Khirnov <anton@khirnov.net> | 2020-05-24 14:23:34 +0200 |
---|---|---|
committer | Anton Khirnov <anton@khirnov.net> | 2020-05-24 14:47:35 +0200 |
commit | 1bceeca953cda102923bb67dfbc8488bae5d35cc (patch) | |
tree | 2798579f7e97adccc4cdc302775db912a16b0bb0 /alot/db/manager.py | |
parent | c8f3d99eab089d337e5fdcb8ff39efd6ab1aa5e9 (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.py | 5 |
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 |