diff options
author | Vitaly Ovchinnikov <v@postbox.nz> | 2023-08-29 08:50:06 +0300 |
---|---|---|
committer | Robin Jarry <robin@jarry.cc> | 2023-08-30 22:09:47 +0200 |
commit | f1bb4767b04a84432cd8abd59d987a57b3cdbb7a (patch) | |
tree | 6a5523c897929ac85d3b1d28aea00dd854229818 /widgets | |
parent | 608bc4fa7fa721ca1bef79e8d8a4630cd6124843 (diff) | |
download | aerc-f1bb4767b04a84432cd8abd59d987a57b3cdbb7a.tar.gz |
postpone: change recall/postpone logic for custom folders
Change `:recall -f` behavior so it remembers the source folder the
message is taken from and the further `:postpone` call can save it back
to that folder.
Change the `:recall` tab closing behavior, so it no longer asks if the
recalled message needs to be deleted. This is now done automatically.
Add an optional `-t <folder>` parameter to `:postpone`, so the message
can be saved in a different folder.
Change `:postpone` behavior, so it checks if the message was
force-recalled from a different folder, and then it saves the message
there.
The "breaking" change is made to the closing handler of the recalled
message tab. There was a confirmation dialog that asked if the recalled
message needs to be deleted. This is now removed and replaced with a
pretty simple logic: if the recalled message is either sent or
re-postponed - it is safe to delete the original. Otherwise (if the
recalled message editing is discarded, any other reasons?) the message
is left intact, there is no need to ask for deleting it. If the user
don't need that message - they can delete it manually.
Another "breaking" change to the same handler is that it always works
this way regardless of the curently selected folder. There was an `if`
that checked that, but as the recalled messages are now only deleted if
they are re-sent or re-postponed, it seems that there is no need to
check the current folder anymore.
Signed-off-by: Vitaly Ovchinnikov <v@postbox.nz>
Acked-by: Robin Jarry <robin@jarry.cc>
Diffstat (limited to 'widgets')
-rw-r--r-- | widgets/compose.go | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/widgets/compose.go b/widgets/compose.go index 05d06a7f..608b8532 100644 --- a/widgets/compose.go +++ b/widgets/compose.go @@ -63,6 +63,9 @@ type Composer struct { sent bool archive string + recalledFrom string + postponed bool + onClose []func(ti *Composer) width int @@ -301,6 +304,22 @@ func (c *Composer) Sent() bool { return c.sent } +func (c *Composer) SetPostponed() { + c.postponed = true +} + +func (c *Composer) Postponed() bool { + return c.postponed +} + +func (c *Composer) SetRecalledFrom(folder string) { + c.recalledFrom = folder +} + +func (c *Composer) RecalledFrom() string { + return c.recalledFrom +} + func (c *Composer) Archive() string { return c.archive } |