| Commit message (Collapse) | Author | Age |
... | |
| |
|
|
|
|
|
| |
This is a temporary hack, it should properly be handled consistently in
future Message serializing API.
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
| |
|
|
|
|
|
| |
This is not implemented in notmuch2 and does not really belong in alot.
It can be done better through the notmuch utility.
|
| |
|
| |
|
|
|
|
| |
This code only wants the messages themselves, not the widgets.
|
| |
|
|
|
|
|
|
|
|
|
| |
Do not recreate all the widgets on every update, just update the widget
contents.
Make the statusbar update async, since some calls to get_info() can take
a long time (especially noticeable for counting threads for searches
with many results).
|
|
|
|
| |
It is only ever called from here, separating them makes little sense.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Instead of allowing the callers to access the email part directly,
introduce a new class for representing the MIME tree structure. All
interaction with the message content should now happen through this
class (some instances of direct access still remain and will be removed
later).
Encrypted/signed parts are now also handled through this structure
rather than using a fragile hack of attaching the decrypted message to
the encrypted one and using fake headers to signal
encryption/signatures.
Message body rendering is now done by walking through the whole MIME
tree and considering all the parts for rendering rather than picking one
specific part.
|
| |
|
|
|
|
|
|
| |
This also prevents it from modifying the message as it previously did
with add_tags. As a consequence, tags are now added to the beginning of
the message rather than at the end of header.
|
|
|
|
|
|
|
| |
It has no relation to database, so helper seems like a better place for
it.
As there is nothing left in db/utils, it is removed.
|
|
|
|
|
| |
They are only used in a single file, so there is no point in keeping
them elsewhere.
|
|
|
|
|
| |
It is only called from there, so there is no reason to keep it
elsewhere.
|
|
|
|
|
| |
It is used in only one place and does something so extremely simple it
does not need to be a special imported function.
|
|
|
|
|
|
|
|
| |
It is almost entirely unnecessary - python's email messages decode the
headers themselves. Do the "normalization" bit directly in the single
place where it is done, though properly there should be more thorough
message text sanitization somewhere (most likely in our message
wrapper).
|
| |
|
|
|
|
|
|
|
|
|
|
| |
The top part displayes the thread structure, the bottom half the message
body. This makes more sense then displaying the message inside the tree
structure and makes it easier to implement features such as folding a
part of the message body.
Drop commands related to folding, since that functionality does not
exist anymore.
|
| |
|
| |
|
|
|
|
| |
This is more correct.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Their API is misdesigned - forces the use of trees for nontree objects
and mixes data relationships with display properties. The result is a
mess that is hard to understand/maintain/extend.
Replace the use of urwidtrees with urwid Pile and ListBox. This
temporarily removes tree-style indentation and decorations for thread
buffers. That will be reimplemented in following commits.
|
|
|
|
|
| |
It should be cleaner and easier to use, and eventually replace the
custom tree walker in the thread display buffer.
|
| |
|
| |
|
|
|
|
|
| |
This functionality is too obscure and dangerous, it should be done
manually instead.
|
|
|
|
| |
It's pointless complexity that I do not need.
|
| |
|
|
|
|
|
| |
Fixes https://github.com/pazz/alot/issues/1435:
Do not add a Date header if it is already present
|
|
|
|
|
|
|
|
|
|
|
| |
Use the ordered set of header keys from the settings or from the current
envelope when generating an editable envelope.
Fixes https://github.com/pazz/alot/issues/898:
Message header ordering isn't preserved from the editor
Note: collections.OrderedDict has been used for backward compatibility with
Python <3.7.
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
Bypasses the inspection of editor_cmdstring if it is still None after
all attempts to fill it. This will eventually lead to EditCommand.apply
erroring with 'no editor set' instead of alot crashing.
Fixes #1438
|
|
|
|
|
| |
Implements the suggestion in #1427 to display the actual error code, and
substitutes an empty stderr with "No stderr output".
|
|
|
|
| |
... instead of from alot.completion
|
|
|
|
| |
The local variable proc was not defined in these branches.
|
| |
|
|
|
|
|
|
| |
... in favour of get_body_text to de-clutter the Message class.
The functionality is implemented in alot.db.utils.extract_body, which
now contains the hard-coding of the html warning.
|
|
|
|
| |
I don't think anyone needs anything else but copiousoutput here
|
| |
|
|
|
|
|
| |
This moves the static methods clear_my_address and ensure_unique_address
out of ReplyCommand and into alot.db.utils.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
see issue #1402
If the "author" string (a decoded version of the From header value) is
read from the notmuch index, it may have already removed quotes around
real name parts containing a comma.
This means that `alot.db.message.get_author()` will potentially
misinterpret it because python's email libs decoding behaviour is
different.
For example, 'Ä, B <a@b.c>' will yield address 'Ä' and empty name!.
This commit makes sure that the original from header is read from disk
when one replies to a message, which avoids the above problem.
|