| Commit message (Collapse) | Author | Age |
| |
|
| |
|
| |
|
|
|
|
| |
Apply toggle as a single db write rather than two.
|
|
|
|
|
| |
Makes the command affect the whole thread, rather than just those
messages matching the query.
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
Should produce better results in most situations.
|
| |
|
| |
|
|
|
|
|
| |
This is not implemented in notmuch2 and does not really belong in alot.
It can be done better through the notmuch utility.
|
| |
|
|
|
|
| |
It is only ever called from here, separating them makes little sense.
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
Closes #1391
|
|
|
|
|
|
| |
This is a pretty invasive patch, since the ui code is used so
extensively, it requires going into a lot of other code and converting
those to coroutines, since before they returned deferred's.
|
| |
|
|
|
|
|
|
| |
...that stores a query string as named search.
in Search buffers, this will fall back on the current search string
unless a full query string is provided as (second) argument.
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
They are not needed for python >= 3.0.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
When the else branch was hit the count was already updated by
SearchBuffer.rebuild() before the hitcount calculation was done and the
final result was obviously off. This fixes it by just counting the
messages in the search result directly.
The same code is implicitly already called in the other branch of the if
statement. So it is hopefully not a big overhead.
Fixes #1098
|
| |
|
| |
|
|
|
|
| |
This is just whitespace changes.
|
|
|
|
|
|
|
|
| |
This had the advantage of being more readable to people without a
functional programming background, and it avoids the need to use lambdas
which are both slow and have many corners in python. In a few cases it
also allows us to use a generator expression instead of a materialized
list, which save some memory.
|
|
|
|
| |
It would otherwise be picked up by the autogenerated docs.
|
|
|
|
|
|
| |
- use relative imports if possible
- group imports into standard library, third party, and alot modules
- sort imports alphabetically
|
| |
|
| |
|
|
|
|
|
|
| |
... in search.RefinePromptCommand,
bufferlist.BufferCloseCommand
and globals.BufferCloseCommand
|
|
|
|
| |
cf #629
|
|
|
|
| |
(and so avoid having a leading comma)
|
|
|
|
| |
So the tags are in a predictable order.
|
|
|
|
|
| |
So we don't have to remember to type the extra comma before typing a new
tag.
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
If one replaces some widget without letting urwid know,
one has to manually trigger it to redraw the screen.
We enforce this to happen after focus_first and focus_last
commands, which might replace widgets in search buffers.
For sake of performance this is *not* done after all other
focus movements.
|
|/ |
|
|
|
|
| |
mostly automatically fixed
|
|
|
|
| |
Commands
|
| |
|
| |
|
|
|
|
|
|
|
| |
added:
* ctrl d = half page down
* ctrl u = half page up
* G = focus last entry (only search buffer for now)
|