summaryrefslogtreecommitdiff
path: root/alot/buffers
Commit message (Collapse)AuthorAge
* buffers/search: allow displaying results in reverseAnton Khirnov2021-11-29
| | | | | | | | | | | | Not hooked up to any commands, so not actually usable yet. Note that oldest_first and newest_first sort orders are not inverses of each other, because oldest_first uses the oldest message in the thread for sorting, while newest_first uses the newest one. This option applies on top of that sorting to display results from the end to the beginning. This requires reading the whole result list first, so can be slow for queries with many results.
* mail/envelope: add a special class for headersAnton Khirnov2021-11-20
| | | | Handle multiple headers with ordering and case-insensitive operations.
* buffers/thread: drop unused importAnton Khirnov2021-06-18
|
* buffers/thread: prevent cursor movements from switching sub-window focusAnton Khirnov2021-05-17
|
* buffers/thread: do not access message widgets unnecessarilyAnton Khirnov2021-05-13
| | | | Avoids constructing the widgets when we only need the messages.
* buffers/thread: do not construct the message widgets until they are neededAnton Khirnov2021-05-13
|
* buffers/thread: cosmetics, vertical alignmentAnton Khirnov2021-04-01
|
* buffers/thread: sanitize thread subject in infoAnton Khirnov2021-04-01
|
* Cosmetics, clean up importsAnton Khirnov2021-02-10
|
* widgets/search: display the number of matching messages in the threadAnton Khirnov2021-02-10
|
* buffers/search: do not pass dbman into IterWalkerAnton Khirnov2021-02-10
| | | | | Use functools.partial to keep the widget construction logic out of IterWalker, since it should not handle such details.
* buffers/namedqueries: add a hook for sorting queriesAnton Khirnov2021-02-04
|
* buffers/search: fix handling malformed queriesAnton Khirnov2021-01-31
|
* buffers/search: remove unused variableAnton Khirnov2021-01-31
|
* db: use symbolic constants for sort ordersAnton Khirnov2021-01-31
|
* widgets/global: move HeadersList to the only place where it is usedAnton Khirnov2021-01-26
|
* buffers: make get_info() asynchronousAnton Khirnov2021-01-20
| | | | | Allows computing message/thread counts asynchronously in a separate thread.
* db/manager: Drop async methodDylan Baker2021-01-10
| | | | | | | | | | As far as I can tell using a separate process doesn't actually improve performance, it makes it worse. The work that we're passing off to the separate function isn't necessarily work that's well suited to being handed off, there isn't a lot of computation and the objects that need to be passed across the pipe are fairly large (at least when considering a pipe). Converting the function to a generator gives better performance and simplifies the implementation.
* buffers/thread: more sophisticated heuristics for default weightsAnton Khirnov2021-01-09
| | | | Should produce better results in most situations.
* buffers/thread: allow changing weights of the tree/message splitAnton Khirnov2020-12-30
|
* buffers/thread: use LineBox frames to wrap the two main partsAnton Khirnov2020-10-21
| | | | Drop the ugly divider that used to indicate which part is focused.
* Consistently use set/frozenset for tags.Anton Khirnov2020-05-24
|
* taglist: drop the useless filtfun parameterAnton Khirnov2020-05-24
|
* buffers/search: do not lose exceptions while constructing list widgetsAnton Khirnov2020-05-09
|
* Switch to the notmuch2 bindings.Anton Khirnov2020-05-09
| | | | | They are supposed to replace the original notmuch python bindings, providing a safer and more pythonic interface.
* helper: move string_sanitize() to the only place where it is usedAnton Khirnov2020-05-05
|
* buffers/thread: fix focus_next/prev_siblingAnton Khirnov2020-05-05
|
* buffer: drop the ui parameter when not neededAnton Khirnov2020-04-25
|
* buffers/thread: only return selected attachments when the message is in focusAnton Khirnov2020-04-25
|
* ui: rewrite notification/status bar handlingAnton Khirnov2020-04-23
| | | | | | | | | Do not recreate all the widgets on every update, just update the widget contents. Make the statusbar update async, since some calls to get_info() can take a long time (especially noticeable for counting threads for searches with many results).
* buffers/search: rewrite PipeWalkerAnton Khirnov2020-04-19
| | | | | Convert it to the v2 API and avoid constructing widgets until they are needed.
* buffers/search: simplify codeAnton Khirnov2020-04-19
|
* buffers/search: drop unused codeAnton Khirnov2020-04-19
|
* buffers/search: with walker.pyAnton Khirnov2020-04-19
| | | | It is only ever called from here, separating them makes little sense.
* buffers/search: revert 66d24cf0f00a58133c159940d8f65a4f622a09ebAnton Khirnov2020-04-19
| | | | | | | | | This optimization is wrong, since oldest_first is not a reverse of newest_first. oldest_first sorts the threads by the oldest message in each thread, while newest_first sorts by the newest message in each thread. That results in 'focus last' changing the thread order, which it should not do.
* buffers/search: drop unused varAnton Khirnov2020-04-19
|
* buffers/thread: add focusing on first/last message matching a propertyAnton Khirnov2020-03-02
|
* buffers/thread: make the widget split-windowAnton Khirnov2020-03-01
| | | | | | | | | | 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.
* thread buffer: make attachments work againAnton Khirnov2020-02-25
|
* thread: implement tree decorationsAnton Khirnov2020-02-19
| | | | | | | | 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
* thread: drop the use of urwidtreesAnton Khirnov2020-02-19
| | | | | | | | | | 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.
* db: drop useless gettersAnton Khirnov2020-02-06
|
* db/thread: drop useless getter functionsAnton Khirnov2020-02-06
|
* buffers/thread: drop a useless getter functionAnton Khirnov2020-02-05
|
* buffers/thread: drop support for auto-read taggingAnton Khirnov2020-02-05
| | | | It's pointless complexity that I do not need.
* search: add thread_count info propertyAnton Khirnov2020-02-03
|
* Revert "db/manager: Drop async method"Anton Khirnov2020-01-02
| | | | This reverts commit e7e0c52db9093a9ecd9dcaa0766e66515a546a75.
* sanitize message text for displayPatrick Totzke2019-11-21
| | | | | | | | 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
* Remove unicode escape codesLucas Hoffmann2019-11-06
|
* Remove unicode literals syntax from python2Lucas Hoffmann2019-11-06
|