| Commit message (Collapse) | Author | Age |
|
|
|
|
|
|
| |
"async" is a reserved keyword in Python 3.7, so cannot be used for
method names.
Signed-off-by: Johannes Löthberg <johannes@kyriasis.com>
|
|
|
|
|
|
| |
The "2" version was used in non-twisted contexts, now that we don't use
twisted we can drop this and rename the "2" variant to the normal
variant.
|
|
|
|
|
| |
This moves the actual event loop to be the default asyncio eventloop
instead of the twisted reactor.
|
|
|
|
|
|
| |
This patch is sketchy, it makes the UI start up slowly, and it breaks in
a bunch of cases where it get's defereds but asyncio doesn't expect
that.
|
|
|
|
|
|
|
|
|
|
|
| |
asyncio's Futures are much like twisted's Deferreds, they represent a
value that is not yet available, and they can be awaited like a
coroutine.
For the moment we still need to return a deferred because the twisted
eventloop doesn't use Futures, it uses Deferreds; once we can remove
twisted's eventloop we can remove the conversion from a Future to a
deferred.
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
asyncio doesn't have a loopingCall helper, so I've implemented a
coroutine that does the same thing, it takes a callable, a period, and
then forwards all other arguments. This is tested and working.
|
| |
|
| |
|
| |
|
|
|
|
|
| |
This is the obvious thing to do, and it works, but it does introduce
some latency into starting alot.
|
|
|
|
| |
Found due to another bug :)
|
|
|
|
|
|
| |
Rather than returning a deferred in some cases, this makes the function
a coroutine, in some cases it calls regular subprocess, in other cases
it uses asyncio subprocess.
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
This allows twisted deferred's (which is all an inlineCallback actually
is) to be mixed with asyncio coroutines (async def), by wrapping them in
a special twisted function for handling asyncio coroutines.
|
|
|
|
|
|
|
|
| |
This puts the twisted event loop into the asyncio framework. This means
that we're currently running all over our twisted.defered's and
twisted.inlineCallbacks through asyncio, using the twisted loop. This
will allow incremental updates from twisted's event loop to a standard
asyncio event loop.
|
|
|
|
|
|
| |
If the mail is passed a string then envelope will always be None. There
is one case in the final callback where self.envelope is assumed set,
but it isn't guaranteed to be, so guard that properly.
|
|\
| |
| | |
Copyedit documentation
|
| |
| |
| |
| |
| | |
The descriptions of --help and --version are the same as used in e.g.
GNU coreutils (different from the Python default).
|
| | |
|
| | |
|
| | |
|
| | |
|
|/
|
|
|
|
|
|
| |
Email utils apparently assumes it's getting a string, and calls encode
directly. This can only be hit if you have a single account configured,
not with multiple accounts.
Fixes #1277
|
|\
| |
| | |
New buffer type for notmuch's named query strings
|
| |
| |
| |
| |
| |
| |
| |
| | |
This adds a Completer which looks up and completes the alias strings of
named queries.
Also in this commit the QueryCompleter (which helps building valid query
strings in prompts) is extended to make use of the new Completer.
|
| |
| |
| |
| | |
that removes a named query string from the notmuch index
|
| |
| |
| |
| |
| |
| | |
...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.
|
| |
| |
| |
| | |
these can be used to define/remove new named query strings
|
| | |
|
| |
| |
| |
| | |
... in new namedqueries buffer
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This patchseries adds a new buffer type for displaying notmuch's saved
querystrings. This commit adds the respective theming attributes used in
the new buffer. They are just copies of the taglist buffer really.
THIS BREAKS COMPATIBILITY WITH USER THEMES!
The theme files need to be updated to also have these new attributes in
order to conform with the updated spec.
|
| |
| |
| |
| | |
that displays the named query strings stored in the notmuch database
|
| | |
|
| | |
|
| |
| |
| |
| | |
... that opens a new namedqueries buffer
|
| | |
|
| | |
|
| |
| |
| |
| |
| | |
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
|