| Commit message (Collapse) | Author | Age |
| |
|
| |
|
|
|
|
| |
It is the only place it is still called from.
|
| |
|
|
|
|
|
| |
Rather than an ad-hoc collection of widgets. This will allow folding
body parts (such as quotes).
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
It is not useful and too complex/fragile to maintain.
|
|
|
|
| |
Also, stop accessing the email directly.
|
|
|
|
| |
Avoid accessing the email directly.
|
|
|
|
|
| |
It is only called from there, so there is no reason to keep it
elsewhere.
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
They were temporarily removed in the previous commit.
Still not working:
- theming for the decorations
- drawing the connector line properly for expanded messages
- configurable indentation
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
| |
|
|
|
|
|
| |
There is no meaningful reason to focus on individual lines, since they
are unactionable.
|
| |
|
|
|
|
|
|
|
|
| |
This ensures that non-printable characters (tabs) are replaced in the
message body texts in envelope buffers and in source texts in thread
mode.
fix #1439
|
| |
|
|
|
|
|
|
| |
... 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.
|
| |
|
| |
|
|
|
|
|
| |
to make sure that all parts exist when messages are expanded
(see pydoc string)
|
|
|
|
|
|
|
|
|
|
|
| |
This will prevent the whole message from being read and interpreted
at the time we instantiate a MessageTree for display and instead only
create the (cheap!) summary widget.
When a user manually interacts with the Message widgets (for example by
unfolding/toggling source) then the content parts will anyway be
reassembled. The consequence of this patch is that loading large threads
should be much faster.
|
|
|
|
|
| |
Hotfix for double width characters causing columns misalign in search
view (https://github.com/pazz/alot/issues/1393)
|
| |
|
|\
| |
| | |
New buffer type for notmuch's named query strings
|
| | |
|
| |
| |
| |
| |
| | |
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.
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
They are not needed for python >= 3.0.
|
|\ |
|
| |
| |
| |
| |
| |
| |
| | |
The code currently uses "cursor up", which seems wrong to me. This
corrects searching through prompt history only moving in one direction.
Fixes #1216
|
| | |
|
|/
|
|
|
|
|
| |
in python3 dict.{keys,items,values} return views, which are similar to
iterators without some of the caveats about modifying the underlying
object. The iter* and view* methods have been removed, instead one warps
dict.x in iter or list to get those types.
|