| Commit message (Collapse) | Author | Age |
... | |
| | |
|
| | |
|
| |
| |
| |
| |
| | |
this is only possible for "tags" parts, in case the list of tags is
empty or all tags are hidden.
|
| |
| |
| |
| |
| | |
.. from the theming structure, instead of pushing these as extra
parameters through helper functions.
|
| |
| |
| |
| |
| | |
into several small functions that prepare the content string for their
respective part of a threadline.
|
| |
| |
| |
| |
| |
| | |
We currently call dict_keys.sort(), which doesn't work because it
doesn't exist. The whole function is kinda strange anyway, since there's
a lot of work done in general that only applies in once case.
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This factors out the method _build_part, which is used to create local
Text/Column widgets for each indivitual part of the threadline.
The method is now broken in two: one for text (= subject, authors,..)
parts and one for tags (= Columns of TagWidgets) and both those
functions are moved out of the Threadline class.
|
| |
| |
| |
| | |
This was superseeded by settings.get_threadline_theming a while back
|
| |
| |
| |
| |
| | |
this simplifies the rebuilding of alot.widgets.search.Threadline,
removes duplicate and ugly code.
|
|/
|
|
|
|
|
|
|
|
| |
this will cause the width of a (author/tag/..) string in a threadline
widget to be computed by urwids `Widget.pack` function rather than just
taking the length of the string.
This fixes an issue with utf-8 wide characters such as Kanji, fow which
urwid needs extra space, and consequently adds additional rows when
packing such Textwidgets into Columns as we do in threadlines.
|
|\
| |
| | |
fix: automatically update envelope gpg keys only if requested. see #1228
|
| |
| |
| |
| |
| |
| |
| | |
This prevents the update of the gpg keys stored in an envelope,
triggered by a header change, in case envelope.encrypt is set to false.
Fixes the issue that I reported on #1228
|
| | |
|
| |
| |
| |
| |
| |
| | |
Terminal colour mode can be set both in the config file and on the
command line, but a default value for the command-line option overrode
whatever was specified in the config file. Fix this.
|
| |
| |
| |
| |
| |
| | |
This has really annoyed me for a while, the search is reversed from vim.
In alot currently up is older searches, whiles down is newer. In vim
it's reversed.
|
|\ \
| | |
| | | |
Message from bytes
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
.. instead of homebrew method `db.utils.message_from_bytes`.
The right way to do this is to rely on the direct bytes->message
conversion provided by pythons email module.
cf #1253
Suggested-by: Patrick Totzke <patricktotzke@gmail.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Our message_from_functions decrypt PGP encryped parts in addition to
creating a message object (from bytes or file handles) and recognizing
the encoding in one way or the other.
Rename them before refactoring to make their function clearer and to
distinguish them from the email.message_from_ functions (which do not
decrypt).
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This reverts commit 0b5f8bf143e76be7ac989e8c8ec6e4a7dc08a78a.
Chardet takes prohibitively long on large blobs (such as attachments).
It will be replaced by functions from the email module in subsequent
commits.
|
| | |
| | |
| | |
| | | |
Signed-off-by: Johannes Löthberg <johannes@kyriasis.com>
|
|/ /
| |
| |
| |
| |
| |
| | |
Otherwise it will be read as a regular python string and be interpreted
as octet-stream.
Signed-off-by: Johannes Löthberg <johannes@kyriasis.com>
|
|\ \
| | |
| | | |
provide retagprompt command in thread mode
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
retagprompt in search mode allows to retag a whole thread. The new
thread mode version allows to do the same for each selected message.
The common command infers its mode from the UI object that it is passed
when applied. Therefore, the docstring (and everything else) is
mode-agnostic.
When this command command is registered for the wrong mode and applied
it raises a KeyError (on purpose).
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Introduce a new source file common.py for common commands and, as a
first example, define RetagPromptCommand there and register it from
search.py.
This shows how to "decorate" a class that is defined somewhere else, and
thus how to decorate it multiple times.
|
|/ /
| |
| |
| |
| | |
.. that accidentally got dropped during c86623d9c7daaa2f9a832135a11870a0d91110a3
This fixes #1255
|
|/
|
|
|
|
|
|
|
| |
This prevents SettingsManager from reading the config files right when
it is isntantiated and instead waits for the main module to call
`read_[notmuch]config` with the right path.
This should prevent problems with accidentally reading the default
config paths despite being told otherwise (via commandline options)
|
|\
| |
| | |
envelope: Update encryption keys when CC, To, or From is changed
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Currently the encryption keys will only be updated when they are
toggled, which means that if you change a Cc or To then the keys
encrypted to might be wrong, either too many keys will be encrypted to,
or not enough, or just the wrong ones.
This patches fixes this by calling set_encrypt whenever the 'To', 'Cc',
or 'From' headers are changed by set or unset.
Fixes #1227
|
| |
| |
| |
| | |
see also #1250
|
| |
| |
| |
| |
| | |
This splits buffers.py, which contained all buffer classes, into several smaller files.
issue #1226
|
|\ \ |
|
| | |
| | |
| | |
| | | |
imp is deprecated in favor of importlib.
|
|/ /
| |
| |
| | |
They are not needed for python >= 3.0.
|
| |
| |
| |
| | |
fixes #1244
|
| | |
|
| |
| |
| |
| |
| | |
This might be a little sloppy, but there are legitimate cases where
stdin is bytes, and cases where it is a string.
|
| |
| |
| |
| | |
because the data is in bytes not strings.
|
| | |
|
|\ \ |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The typical current message looks like:
unable to load hooks file:/home/teto/.config/alot/hooks.py
without telling why python couldn't load the hook.
This commit prints the exception, thus helping users to solve the issue
(in my case encoding + wrong imports).
|
| | | |
|
| | | |
|
|\| |
| | |
| | |
| | |
| | | |
And attempts to fix handling of non text/plain parts by leaving them as
bytes until they've been passed to the program that will render them.
|
| |/
| |
| |
| |
| |
| |
| | |
This moves out the plaintext rendering of email parts (that are
not multipart/* and not text/plain) into a separate utility function
render_part. This function looks up and calls the apropriate mailcap
handler.
|
| |
| |
| |
| | |
oops
|
|\ \
| | |
| | |
| | |
| | | |
One small conflict caused by "db/utils: correctly handle 8bit encoded
mail"
|
| | | |
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | | |
The `assert` statement is not always executed (it can be optimised
away) so is not a suitable run-time check. Also, an exception allows
for a better error message.
|
| | | |
|