Add a default mailbox setting:
> The mailbox that is the default to open / view for this account. Must be
> a valid mailbox name.
>
> If not specified, the default is [`Self::root_mailbox`].
Closes: #350
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
In the next commits we will add a `default_mailbox` field. Instead of
poluting the `Account` struct with more setting fields, consolidate them
on its `settings`.
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
accounts.rs is getting rather long (almost 3K lines) so split standalone
stuff in submodules.
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
Prevent accessing a ThreadView if it has not been initialized by making
an uninitialized ThreadView impossible.
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
An error was returned from the db_path function, preventing the issuing
of the reindex command in the background.
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
General refactoring to make blocking operations use special blocking
thread workers, SQL operations to use transactions, and setting up WAL
journal mode mode to minimize locking.
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
set_err_kind() is a method of the IntoError trait, not an Error method;
it is meant to be used for any error type that can be converted into
Error. Since melib::Error implements Into<melib::Error> tautologically,
this was not a compilation error. Nevertheless, the correct thing to do
is use the type method directly to set ErrorKind.
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
AccountSettings extra keys like `vcard_folder` were not taken into
account when validating a config.
This commit introduces an AccountSettings::validate_config() method that
checks for the presence and validity of this key value.
Fixes#349https://git.meli-email.org/meli/meli/issues/349
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
Commit (a37d5fc1 conf/shortcuts: implement
a key to command mapping) introduced shortcuts that expand to user
defined commands. To allow already existing shortcuts to take
precedence, the check for the user-defined shortcuts should be the last
one in the evaluation order.
Example problem scenario:
- Press new_mail shortcut (e.g. `m`)
- Code in listing.rs searches if it matches any of the commands, and
regardless if it matches or not, stops the evaluation and returns.
- New mail composer never shows up.
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
Commit 61a0c3c27f ("listing: do not clear
selection after action") broke select/jump modifiers (e.g. prefixing a
jump with a number).
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
Clear selection only when Escape is pressed, not after action is
completed. The user might want to perform further actions on the
selection.
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>