| Commit message (Collapse) | Author | Age |
| |
|
|\
| |
| | |
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.
|
|\
| |
| | |
Fix for issue 1164 - Cannot select key for encryption by number keys
|
| | |
|
| |
| |
| |
| | |
and a list of return objects for choices.
|
|/ |
|
| |
|
|\ |
|
| |
| |
| |
| |
| | |
This mostly shortens lines down to <=79 chars and fixes some other small
things I found using the pep8 tool.
|
|/ |
|
|
|
|
|
|
|
|
|
| |
The old implementation would raise an error when the translated tag
string was a unicode string (might be defined as an abbreviation in the
users config).
The official docs suggest this kind of implementation:
https://docs.python.org/3/reference/datamodel.html#object.__hash__
|
|
|
|
|
|
| |
Implementing the comparison functions as a shared method rather than in
terms of each other (as functools.totalordering does) makes the
search interface much snappier.
|
|
|
|
|
|
|
|
| |
Which is required in python3 when implementing the __eq__ method.
The implementation caches the hash method, since it's being called each
time the focus is changed in the search view. This doesn't really seem
correct to me, but I'm not sure it's wrong.
|
|
|
|
|
| |
This wasn't caught by static checkers since it is used in the other
brach of the if statement containing this value.
|
|
|
|
|
|
|
| |
This can create circular imports in unittests, which causes difficult to
debug errors.
Fixes #1076
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
This introduces a new config option 'thread_focus_linewise',
(defaults to True), which determines if the message texts are
split into individually focussable lines in thread mode.
fixes #645
|
|\
| |
| | |
Remove remaining uses of cmp
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The calculation wants to sort first by length, then by string value (so
'z' would come before 'aa'). The calculation does this by deciding that
if one value has a length of 1, and the other doesn't. Currently it does
this by calling min, and max, and calling len 4 times. This is
pretty inefficient, and more complicated that necessary.
Instead, this patch uses 'is not' with booleans to figure out if one and
only one of the lengths is 1.
|
| |
| |
| |
| |
| |
| | |
This is both a performance issue (since cmp is slower than rich
comparisons), and a python3 issue since cmp (and __cmp__) are gone in
python 3.
|
|/
|
|
| |
Fixes #1016
|
|\
| |
| | |
Use absolute_imports from __future__
|
| | |
|
| | |
|
|/ |
|
|
|
|
| |
This is just whitespace changes.
|
|
|
|
|
|
|
|
| |
This patch replaces a number of uses of dict.items, dict.values, and
dict.keys with their iterative siblings. The advantage of using the
iterator version is that they don't copy the keys, values, or items, but
simply return references. This reduces memory usage and may speed up the
these operations a bit.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
- use relative imports if possible
- group imports into standard library, third party, and alot modules
- sort imports alphabetically
|