Commit Graph

172 Commits

Author SHA1 Message Date
Dirk-Jan C. Binnema ff94595fad Merge pull request #1037 from wavexx/fix-duplicate-header-views
mu4e: Do not duplicate headers views in iconified/hidden frames
2017-02-21 09:46:43 +02:00
Yuri D'Elia 34ed757e11 Do not duplicate headers views in iconified/hidden frames
When the frame running mu4e is in another virtual desktop or iconified, but
still contains a visible headers buffer, do not attempt to create a new view.
2017-02-20 18:40:20 +01:00
Titus von der Malsburg 79ad110737 mu4e: Added menu items for untrash 2017-02-14 12:02:56 +01:00
djcb 05faceeb49 mu4e: some whitespace cleanup 2017-01-30 21:07:00 +02:00
djcb 4859cb802f mu4e: headers: don't clear too soon
Try burying header buffers a bit less aggressively.
2017-01-18 00:13:02 +02:00
djcb e0c21252c9 mu4e: clean up update handling
When we have a mu4e-headers window open and there's an update, try to
refresh it. If there's no open window, don't.
2017-01-16 23:45:14 +02:00
djcb 600955eebc mu4e: rename msg->message in mu4e-message-changed-hook 2017-01-15 15:41:16 +02:00
djcb e9b71af547 mu4e-headers: default to include-related / skip-duplicates
Probably better default options for most users.
2017-01-14 16:51:50 +02:00
Sébastien Le Callonnec c1c7bf44cf mu4e: Fix outdated docstring for `mu4e-headers-actions' 2016-12-18 10:38:50 +00:00
Jun Hao 59dfcb5ac5 mu4e: add mu4e-msg-changed-hook to mu4e-index-updated-hook globally 2016-12-11 21:22:44 +08:00
djcb 01fe899c37 mu4e: better error for non-supported header fields
Some fields (eg. :attachments and :user-agent) require a full message
and are not supported in headers-mode. Document this and give a clearer
error message when they are added to `mu4e-headers-fields'.

Fixes issue #933.
2016-11-05 12:42:28 +02:00
Dirk-Jan C. Binnema b981a7804f Merge pull request #934 from antoine-levitt/master
mu4e: Don't erase global-mode-string with context label, but add to it
2016-11-05 10:52:35 +02:00
djcb 739013d031 mu4e: allow maildir as sort-field 2016-10-26 22:36:40 +03:00
Antoine Levitt bc13cfda35 dont erase global-mode-string with context label, but add to it 2016-10-26 08:20:25 +02:00
Dirk-Jan C. Binnema dd1c0325f9 Merge pull request #912 from j-hao/master
mu4e: add mu4e-msg-changed-hook
2016-09-03 11:25:49 +03:00
djcb ae7f649a4a mu4e: avoid error return to same message
This avoids a runtime error. Fix by holtzermann17 for Issue #910.
2016-08-27 18:58:55 +03:00
Jun Hao 35c6d4ab8b mu4e: add mu4e-msg-changed-hook 2016-08-25 10:03:35 +08:00
djcb 49bc9605d8 mu4e: add mu4e-headers-hide-predicate
Add `mu4e-headers-hide-predicate', a function that allows for hiding
messages from the display. This can be used e.g. to hide trashed
messages.
2016-07-31 13:07:27 +03:00
djcb ed16684f45 mu4e: cosmetics 2016-06-08 19:25:52 +03:00
djcb e977309de5 mu4e: don't try to open non-existent messages
When processing header updates, don't try to open a message that doesn't
exist. Fixes issue #825.
2016-06-08 19:22:41 +03:00
djcb 3a7429456c mu4e: parenthesize narrowing term
When narrowing search results, parenthesize the narrowing term, so terms
with AND/OR etc. don't lead to surprising results.

Fixes #846.
2016-05-09 23:14:36 +03:00
Dirk-Jan C. Binnema 455a0731c0 Merge pull request #820 from tmalsburg/master
Mu4e: Added missing menu items.
2016-04-26 20:13:07 +03:00
djcb 1edeee4764 mu4e: fix typo -> mu4e~headers-msgid-target 2016-03-24 20:26:39 +02:00
Titus von der Malsburg 88df34cd96 Mu4e: Added missing menu items. 2016-03-22 23:33:07 -07:00
djcb 15f857afcc mu4e: try to jump to same message after re-search
After a re-search, perhaps after toggling threading etc., try to move
point to the same message it was before
2016-03-16 01:11:11 +02:00
djcb 1505da640d mu4e: add check for add-face-text-property
add-face-text-property was only introduced in emacs 24.4, so check
before use in mu4e-headers as do in mu4e-view.

Fixes issue #811.
2016-03-09 08:02:57 +02:00
djcb 7ac4921902 mu4e: improve mu4e-view-message-with-message-id
Now, when going to a message with certain message-id, do open a headers
buffer as well. This way, message opened this behave just like an other
message, and can be delete, flagged etc.

As a bonus, you get the whole message thread for a given
message (depending on settings)

mu4e-view-message-with-message-id now does a search and
mu4e-headers-search allow for some extra actions to open a specific
message in a hook function.
2016-02-23 23:19:54 +02:00
djcb 392880233f mu4e: rename to mu4e-headers-search-hook
The old name mu4e-headers-search-pre-hook was unnecessarily long.
2016-02-19 07:39:52 +02:00
Ævar Arnfjörð Bjarmason 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
djcb 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
djcb eca427d3a2 Merge commit '4f83ab0f9430f0af1e6d3adbfc9a9591dddb8867' into avar/avar/mu4e-headers-search-bookmark-hook 2016-02-18 20:24:29 +02:00
djcb 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
Yuri D'Elia 6337151918 mu4e: also quote the context label in the modeline 2016-02-16 08:28:59 +02:00
Yuri D'Elia ac0b1b755a mu4e: escape % in queries when updating the mode-string 2016-02-14 20:00:43 +01:00
djcb 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
djcb 7b84236bdb mu4e: be tolerant of errors in `mu4e~headers-remove-handler'
Works around issue #789
2016-02-05 08:03:29 +02:00
djcb 967b3cb727 mu4e: update copyright years 2016-01-09 21:28:03 +02:00
djcb 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
djcb a14b3f0e62 Replace some 'fancy' characters
They showed up as hexboxes when using the Liberation font.
2015-12-16 21:31:17 +02:00
Clément Pit--Claudel e19658c9aa Initial implementation of customizable headers 2015-12-15 07:57:51 -05:00
Dirk-Jan C. Binnema 5f73b48609 Merge pull request #730 from cpitclaudel/fix-spurious-space
mu4e: Refactor mu4e~headers-header-handler
2015-12-15 09:43:42 +02:00
djcb 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
Clément Pit--Claudel 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
djcb 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
djcb 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
Ævar Arnfjörð Bjarmason 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
Martin Yrjölä 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
Ævar Arnfjörð Bjarmason 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
djcb 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
Dirk-Jan C. Binnema 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