Commit Graph

344 Commits

Author SHA1 Message Date
14af0d28c8 mu4e-headers: Add hook executed when we're opening bookmarks (again)
This was merged in as part of pull request #718 but changed to a more
general facility in 7716e00.

It's fantastic that we have the more general hook facility for any
search, but the primary use-case I had for the bookmark hook can't be
satisfied by the more general mu4e-headers-search-pre-hook.

The reason I added this hook was to emulate the folders I used in
Icedove as mu4e bookmarks. E.g. some folders are threaded, others are
not. By default mu4e only allows you to set this globally via options
like mu4e-headers-show-threads.

So I have a mu4e-headers-search-bookmark-hook which is basically a long
line of cond statements like:

    ((string-equal expr "NOT flag:trashed AND date:365d..now AND (flag:flagged)")
        (setq mu4e-headers-show-threads nil)
        (setq mu4e-headers-include-related nil)
        (setq mu4e-headers-skip-duplicates t)
        (setq mu4e-headers-results-limit 500))

For this to work properly it's critical that the hook doesn't execute on
any search, but *only* those where we enter it via the bookmark.

As an example, I have a "b+" search which finds messages I've flagged,
most of my searches have related & threading turned on, but for that
search I only want to show the specific messages I've flagged, so the
hook turns both of those settings off before executing the search.

But I might still want to change my mind and look at the related
messages as threads by pressing P and then W. This works with the
mu4e-headers-search-bookmark-hook because it only executes when we get
the search via a bookmark.

But it doesn't work with the mu4e-headers-search-pre-hook because when I
toggle the setting my settings hook (which matches the search executed
by the bookmark) will just turn it back off again.

Perhaps there's some clever way to know if we're getting to the
mu4e-headers-search-pre-hook via the bookmark that I've missed. But if
there isn't I need a hook that works like this.
2016-02-18 21:37:21 +01:00
7716e005bf mu4e: add mu4e-headers-search-pre-hook
Just before executing a search, a hook-function
`mu4e-headers-search-pre-hook` is invoked, which receives the search
expression as its parameter.
2016-02-18 20:59:02 +02:00
eca427d3a2 Merge commit '4f83ab0f9430f0af1e6d3adbfc9a9591dddb8867' into avar/avar/mu4e-headers-search-bookmark-hook 2016-02-18 20:24:29 +02:00
faf453d538 mu4e: resend: add to view/headers menu
Add `mu4e-compose-resend` to the menus in the headers and view
modes. Don't add a shortcut, as it's a fairly rarely needed feature, and
might be confusing if invoked accidentally.
2016-02-16 08:29:06 +02:00
6337151918 mu4e: also quote the context label in the modeline 2016-02-16 08:28:59 +02:00
ac0b1b755a mu4e: escape % in queries when updating the mode-string 2016-02-14 20:00:43 +01:00
14cbca7595 mu4e: remove 'z' shortcut for quitting headers view
Make consistent - 'q' is for quitting, not 'z', both in message, headers
view. Single-letter keybindings are precious, so let's avoid duplicates.
2016-02-06 12:48:14 +02:00
7b84236bdb mu4e: be tolerant of errors in `mu4e~headers-remove-handler'
Works around issue #789
2016-02-05 08:03:29 +02:00
967b3cb727 mu4e: update copyright years 2016-01-09 21:28:03 +02:00
972678b6be mu4e: when delete the currently view msg, kill the view
When we delete the message that is currently being viewed, destroy the
view as well.
2015-12-21 22:24:16 +02:00
a14b3f0e62 Replace some 'fancy' characters
They showed up as hexboxes when using the Liberation font.
2015-12-16 21:31:17 +02:00
e19658c9aa Initial implementation of customizable headers 2015-12-15 07:57:51 -05:00
5f73b48609 Merge pull request #730 from cpitclaudel/fix-spurious-space
mu4e: Refactor mu4e~headers-header-handler
2015-12-15 09:43:42 +02:00
ddcd2f39b5 mu4e: more support for fancy-chars
Re-simplify `mu4e-use-fancy-chars` to a boolean again; add some extra
mark-chars (big character, so they are easily visible). Document it.
2015-12-15 09:07:17 +02:00
9f104b217b Refactor mu4e~headers-header-handler
Generate the whole line in one call to mapconcat instead of appending to
the string, and remove the spurious final space.
2015-12-15 00:08:34 -05:00
2d443a953c mu4e: don't use purecopy, it's useless
Don't use `purecopy`, it's useless outside emacs itself, as pointed out
by cpitclaudel. Fixes issue #729.
2015-12-15 07:02:24 +02:00
f621003658 mu4e: context: integrate with the views
Show the current context in headers, view and main mode; add
keybindings.
2015-12-13 17:46:02 +02:00
4f83ab0f94 mu4e-headers: Add hook executed when we're opening bookmarks
I'm using this for a rather nasty hack. When I open different bookmarks
in the mu4e-main view I want to set options for them, currently just
tweaking:

    * mu4e-headers-show-threads
    * mu4e-headers-include-related
    * mu4e-headers-skip-duplicates
    * mu4e-headers-results-limit

This is because some of my searches are *really* expensive when I
include related threads (huge batches of cron-generated E-Mails), but
some aren't. I couldn't find another way to do this. Using
mu4e-headers-mode-hook doesn't work, because we don't have access to the
search (just a variable showing the last search).

Also maybe we should be passing the actual key chord for the bookmark
here. I don't care since I look up the search string that'll be executed
and go from there, but maybe that interface would make more sense.

But whatever, this works for me, and solves a real use-case.
2015-12-09 01:51:29 +01:00
d37385030f mu4e: Fetch markpair in interactive declaration
This makes it possible to bind mark shortcuts in view-mode for certain
markpairs.
2015-11-29 16:42:30 +02:00
4cffcfa440 mu4e-{view,headers}: Refactor a (lamba) kbd-bound function into a named function
Because this was a lambda C-h m would just show "??" instead of the
function name, and the documentation would be really confusing since it
showed the deparsed lambda function instead of the function name being
called.

Fix this by refactoring both the view & headers [ and ] functions into
named functions, and make their shared logic new internal
mu4u~{headers,view}-* functions.
2015-11-22 22:32:05 +01:00
cec825eec1 mu4e: fix for split-view
Commit 5708a173fa fixes some behavior for non-split-view, but
inadvertently changed the behavior for split-view as well.

Fix this.
2015-11-21 13:26:56 +02:00
5708a173fa Merge pull request #691 from tmalsburg/master
mu4e: Moving in headers should only change view if mu4e-split-view is non-nil.
2015-11-19 12:48:27 +02:00
781f0782f5 mu4e: added action to show the current thread only
Add an action for view and headers buffer to show only the messages in
the current thread.
2015-11-12 12:57:26 +02:00
bf1325f7c4 mu4e: Moving in headers should only change view if mu4e-split-view is non-nil. 2015-11-11 11:41:14 -08:00
22b7022798 mu4e: allow cc, bcc, mailing-list in mu4e-headers-mark-pattern
Based on patch by cinayakoshka, allow for matching more fields
2015-11-02 09:05:42 +02:00
0956c096de mu4e: don't be too eager to open view
When there's no view yet, don't automatically open one when moving.
2015-10-13 16:16:10 +03:00
a7d611c902 Fix moving when not in split-view mode
Don't insist on having a window (which caused an error), and don't
refuse to move in that case.
2015-10-13 07:39:24 +03:00
a924985803 Fix issues reported by the byte-compiler. 2015-10-09 01:02:58 +02:00
db65c824d0 Fix typo from higl.* to highl.* 2015-09-22 10:10:47 +02:00
90293f6d98 mu4e: show sort arrows for fields / derived fields
We weren't showing the sort-arrows in all cases; we need to get
calculate the current sortfield, compare that to the current sortfield.
2015-09-19 12:11:17 +03:00
9780f076f1 Make usage of fancy chars configurable. 2015-09-10 12:32:49 +02:00
976711c16c mu4e: support message-action when marking 'deferred'
When marking headers as 'deferred' (with '*'), and executing them ('x'),
you can now also apply arbitrary header actions to them.
2015-04-26 17:09:06 +03:00
a57228b724 mu4e: avoid error when splitting headers window 2015-03-28 09:07:50 -04:00
646b06563f mu4e: fix :thread-subject for the non-threaded case 2015-03-23 20:57:29 +02:00
910e41e2fe mu4e: experimental :thread-subject field (one subject per thread)
with :thread-subject field, we attempt to only show one subject per
thread, somewhat like mutt does it.

the current implementation is straightforward, but does not take into
account whether the thread-subject is currently visible on the screen,
which is a bit tricky to implement
2015-03-22 11:49:57 +02:00
52176dabfc mu4e: make mu4e-headers-sort-field, mu4e-headers-sort-direction public 2015-03-22 10:57:07 +02:00
69ef3037a7 Extract mu4e-headers-mark-thread-using-markpair
This allows for a key binding to something like:

(mu4e-headers-mark-thread-using-markpair '(read))
2015-03-17 12:55:17 +02:00
6722e59e01 Merge branch 'master' of github.com:djcb/mu 2015-01-03 17:14:24 +02:00
af00ff802f mu4e: fix typo in mu4e~headers-query-navigate 2015-01-03 17:12:26 +02:00
9162e3e68c mu4e: mu4e-headers-find-if-next: move before search
when searching for the next match, go the end of the current line; when
searching for the previous match, go to the beginning of the current
line.
2014-12-10 22:51:13 -08:00
8991490262 mu4e: support jumping to next, previous unread message
mu4e-headers-next-unread
mu4e-view-headers-next-unread

Use key-bindings ] and [ to go to next, previous unread message.
2014-11-28 08:54:08 +02:00
1022c64dd9 mu4e: add mu4e-headers-find-if-next, mu4e-headers-next-unread
In the headers-view, allow for movig to next and previous
unread/untrashed messages using tab/backtab.

Built on top of the convenience function mu4e-headers-find-if-next.

Update docstrings.
2014-11-25 07:38:07 +02:00
8f9499c0c9 mu4e: update mu4e-headers-find-if documentation 2014-11-22 17:27:15 +02:00
7eac4ac918 mu4e: add mu4e-headers-find-if
This function can be used to jump to some message in the headers list
that matches a certain pattern.
2014-11-22 13:23:29 +02:00
8305c2e147 mu4e: add note about overly long header lines 2014-10-26 21:21:51 +02:00
ad48860101 Update mu4e-headers.el 2014-10-12 10:38:38 +02:00
ce0006721a Add different face attribute for the mode-line
There is an additional face attribute for the mode-line.
2014-10-02 06:31:10 +02:00
fa819de59b Avoid sorting by nil 2014-05-21 01:08:25 +01:00
339d6ac562 * mu4e: workaround; limit subject to 600 chars (thanks to Toni Reina); fixes #394. 2014-03-21 07:30:37 +02:00
e55840a917 * mu4e: when erasing buffer, nullify view-message too; fixes #395 2014-03-21 07:22:54 +02:00