Commit graph

2662 commits

Author SHA1 Message Date
Manos Pitsidianakis
dbbb1529e4
Add missing ComponentUnrealize handlers
Dialog widgets require their parent components to handle their
ComponentUnrealize events, otherwise they'd not be removed if user
selects 'Cancel'.

Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2024-08-28 10:36:35 +03:00
Manos Pitsidianakis
4707ec9f2a
text/line_break: fix ReflowState::{No,All} break
It could split text on non-char boundaries. Check before return.

Closes #476

Resolves: https://git.meli-email.org/meli/meli/issues/476
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2024-08-28 10:36:35 +03:00
Manos Pitsidianakis
32e3be8b10
sqlite3: add optional directory field in DatabaseDescription
Databases described by `DatabaseDescription` are created in XDG Data
directories by default. Add an optional explicit directory field so that
tests and other API consumers can override that location.

Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2024-08-28 10:36:35 +03:00
Manos Pitsidianakis
26d33ce523
address: add separator argument to display_slice()
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2024-08-28 10:36:35 +03:00
Manos Pitsidianakis
394236ba8a
email/address: Refactor References struct
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2024-08-28 10:36:34 +03:00
Manos Pitsidianakis
a4f344b396
Use create_new to avoid overwriting files
Use File::options()..create_new() to avoid overwriting files when saving
attachments or exporting stuff.

File::create_new was added in 1.77 which is after our current MSRV, so
use OpenOptions instead.

Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2024-08-23 14:48:30 +03:00
Manos Pitsidianakis
11798be804
Replace Envelope::message_id_display() with Display impls
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2024-08-23 14:48:30 +03:00
Manos Pitsidianakis
6fbf569fe0
search: add Message-ID, and other header search support
Add support for searching by Message-ID, In-Reply-To, References, or any
header with the following keywords:

- "message-id:term", "msg-id:term"
- "in-reply-to:term"
- "references:term"
- "header:title,value"

Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2024-08-23 14:48:30 +03:00
Manos Pitsidianakis
191725b5c2
Fix some borrow checker error/warnings from upcoming 2024 edition
Mostly unsafe_op_in_unsafe_fn lint, but also std::env functions becoming
unsafe.

Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2024-08-23 14:48:30 +03:00
Manos Pitsidianakis
2bb9b20d95
mail/view: do not highlight reply subjects in thread
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2024-08-23 14:48:30 +03:00
Manos Pitsidianakis
28f45805d7
mail/view: try cancel env fetch on Drop
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2024-08-23 14:48:30 +03:00
Manos Pitsidianakis
60833ee51d
accounts: make mailbox available as soon as possible
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2024-08-23 14:48:30 +03:00
Manos Pitsidianakis
53b0d035e4
accounts: cancel any previous mailbox fetches
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2024-08-23 14:48:29 +03:00
Manos Pitsidianakis
f06a9072d6
jmap: fetch mailbox with receivedAt descending sort
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2024-08-23 14:48:29 +03:00
Manos Pitsidianakis
9c1b442452
jobs: make cancel flag an AtomicBool
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2024-08-23 14:48:29 +03:00
Manos Pitsidianakis
4bbf446bc1
utils: add unix file locks module
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2024-08-23 14:48:29 +03:00
Manos Pitsidianakis
1cfb0b1538
Update nix dependency to 0.29.0
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2024-08-23 14:48:29 +03:00
Manos Pitsidianakis
72dea6f3b2
Manpage fixes
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2024-08-23 14:48:29 +03:00
Manos Pitsidianakis
f3ad824df9
meli: use itoa to format offset indices in listings
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2024-08-11 15:59:24 +03:00
Manos Pitsidianakis
aed7a60fb9
samples: add ibm-modern theme
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2024-08-11 14:18:13 +03:00
Manos Pitsidianakis
0ee7fc4d95
Print clickable path links with subcommands
Print clickable path links when printings paths via subcommands like
print-log-path.

Part of #445 ("Add OSC8 terminal hyperlink support")

Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2024-08-11 13:53:49 +03:00
Manos Pitsidianakis
6be5fd2610
themes: add inheritance, and use themes when initializing grids
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2024-08-11 13:53:49 +03:00
Manos Pitsidianakis
036586a2f7
Update serde dependency to 1.0.205
This release solves a clippy lint warning for code that will get
introduced in the next commit.

Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2024-08-11 13:53:49 +03:00
Manos Pitsidianakis
bf3a4c5dc1
error: add ErrorChainDisplay struct for better output
Add an ErrorChainDisplay struct that borrows an error and prints the
list of chained errors one by one, showing relationships and metadata
for each error.

Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2024-08-11 13:53:48 +03:00
Manos Pitsidianakis
4b959f5c4f
Remove pcre feature/dependency
Crate regex is used by default in builds, so there's no need for an
optional libpcre2 dependency

Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2024-08-11 13:53:48 +03:00
Manos Pitsidianakis
978cefbb50
Replace Escape ascii char with hex literal
rustfmt was acting weird with it

Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2024-08-11 13:53:48 +03:00
Manos Pitsidianakis
a214a35c02
conf: refactor into submodules
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2024-08-11 13:53:48 +03:00
Manos Pitsidianakis
8d45ecc15d
melib/error: add related_path field
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2024-08-11 13:53:48 +03:00
Manos Pitsidianakis
de72bc6ac7
melib/error.rs: move network stuff to submodule
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2024-08-11 13:53:48 +03:00
Manos Pitsidianakis
0bed37b5a7
melib: use IndexMap in conf fields
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2024-08-11 13:53:47 +03:00
Manos Pitsidianakis
2084ce9375
Fix invalid cfg feature combinations for macos
NOTMUCH_ERROR_DETAILS was defined twice for macos from "unix"
target_family and target_os = "macos".

Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2024-08-10 12:50:44 +03:00
Manos Pitsidianakis
35f12b1551
embedded: prevent double-close of pty fd
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2024-08-06 18:15:11 +03:00
Manos Pitsidianakis
eda6620cb4
jmap: detect supported Auth schemes on connect
When 401 is returned by an HTTP server, the WWW-Authenticate header must
be present. The values represent the supported Authentication schemes of
the server.

This commit detects them and reports the appropriate error to the user.

Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2024-08-06 16:45:51 +03:00
Manos Pitsidianakis
7419b465ea
CI: unpin rust version after updating time dependency
This reverts commit 8a74920d (CI: pin rust version to 1.79.0, 2024-07-28).

Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2024-08-04 19:33:41 +03:00
Manos Pitsidianakis
6ee148c041
Fix 1.80.0 clippy lints
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2024-08-04 19:33:41 +03:00
Manos Pitsidianakis
6b05279a09
Update time dep to fix 1.80.0 breakage
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2024-08-04 17:00:05 +03:00
Manos Pitsidianakis
4684b6016b
CI: remove env vars from action names
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2024-08-03 16:03:43 +03:00
Manos Pitsidianakis
94f345d731
Implement mailbox renaming command
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2024-08-03 16:03:43 +03:00
Manos Pitsidianakis
15d24ab0e3
meli/jobs: refactor spawn_{blocking,specialized} to spawn()
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2024-08-03 16:03:42 +03:00
Manos Pitsidianakis
f7ec6d6bc5
melib/jmap: implement mailbox rename
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2024-08-03 16:03:42 +03:00
Manos Pitsidianakis
8481294147
melib/jmap: do not serialize server-set fields in Set create
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2024-08-03 16:03:42 +03:00
Manos Pitsidianakis
e6877e89c2
melib/jmap: refactor some parser imports
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2024-08-03 16:03:42 +03:00
Manos Pitsidianakis
2b3828d8d2
Update futures dependency to 0.3.30
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2024-08-03 16:03:42 +03:00
Manos Pitsidianakis
7be8912c14
Cargo.tomls: make formatting more consistent
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2024-08-03 16:03:42 +03:00
Manos Pitsidianakis
9e9c04a3f6
Update indexmap dep to 2.3.0
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2024-08-03 16:03:42 +03:00
Manos Pitsidianakis
a8dad31776
melib/imap: renamed cache module to sync
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2024-08-03 16:03:41 +03:00
Manos Pitsidianakis
6513c18810
melib/imap: on sync only update exists/unseen if loaded
When resyncing with resync_basic and resync_condstore, we would update
the unseen and exists counts for the mailbox without inspecting if the
mailbox was loaded or not. Since a previous commit reset total not yet
seen to 0 when inserting new entries to mail totals, this would lead in
unloaded mailboxes go from having their original unseen counts to having
only the new envelopes in the total.

Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2024-08-03 16:03:41 +03:00
Manos Pitsidianakis
84cfa358de
conf: remove need for global send_mail setting
This was a bad UX artifact from the very first meli versions. There's no
need to keep it around.

Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2024-08-03 16:03:41 +03:00
Manos Pitsidianakis
56b1bf28eb
meli/accounts: batch process refresh events
Process refresh events for a mailbox in a batch.

Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2024-08-03 15:27:23 +03:00
Manos Pitsidianakis
14f2d91193
melib/backends: change RefreshEvent field decl order
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2024-08-03 15:27:23 +03:00