Commit Graph

1324 Commits (5d107db8b80760d1747e861f0d27f5e3e6d63856)
 

Author SHA1 Message Date
Manos Pitsidianakis 1cc1b0604c
conf/accounts.rs: use QueryTrait when search_backend is None 4 years ago
Manos Pitsidianakis 3f8aa560f0
melib/MailBackend: add MailBackendCapabilities struct 4 years ago
Manos Pitsidianakis 4aaa784d8f
Fix panic on empty command history when browsing history 4 years ago
Manos Pitsidianakis 8b90c7fcb6
conf/shortcuts: add shortcut for COMMAND mode
Replace hardcoded Key value with customisable shortcut
"general.enter_command_mode"
4 years ago
Manos Pitsidianakis c2550f60b6
Rename EXECUTE mode to COMMAND
vim uses COMMAND, and we want to be consistent with vim when possible.
4 years ago
Manos Pitsidianakis b20bdea8f0
EXECUTE: cancel command with Esc 4 years ago
Manos Pitsidianakis 989cfcc877
conf/accounts.rs: use mailbox alias if available in MailboxEntry::name() 4 years ago
Manos Pitsidianakis 7744ef1462
conf/accounts.rs: make JobRequest::Generic name Cow<'_, str> 4 years ago
Manos Pitsidianakis d6ef3567f4
conf/accounts.rs: add hash() method 4 years ago
Manos Pitsidianakis 688060ceb6
conf/accounts.rs: always load Inbox 4 years ago
Manos Pitsidianakis ed3b2fa6c8
types.rs: add JobCanceled event 4 years ago
Manos Pitsidianakis 5a5408ecd5
imap: small fixes 4 years ago
Manos Pitsidianakis 00acba7717
melib/MailBackend: add copy_messages,set_flags,delete_messages methods 4 years ago
Manos Pitsidianakis a049a83fe3
conf/accounts: add insert_job() method 4 years ago
Manos Pitsidianakis 246ac4b84a
Update smallvec dependency to 1.4.1 4 years ago
Manos Pitsidianakis 1b8529c59c
melib/imap: use LITERAL+ with APPEND
Closes #50
4 years ago
Manos Pitsidianakis f9efaea0ec
ConversationsListing: fix invalid update_line colors 4 years ago
Manos Pitsidianakis 99fbac3806
Remove unused variables/functions 4 years ago
Manos Pitsidianakis 0ee3a0bf79
imap: clear mesage totals when fetching entire mailbox
Totals might have been set after a STATUS response, meaning we know the
totals without knowing exactly what message UIDs are there. Clear the
totals, and start inserting UIDs instead.
4 years ago
Manos Pitsidianakis 6121f77853
imap: support LIST-STATUS 4 years ago
Manos Pitsidianakis 350c8033b1
imap: use ImapLineIterator in imap_mailboxes() 4 years ago
Manos Pitsidianakis e49c293b01
imap: impl DoubleEndedIterator for ImapLineIterator 4 years ago
Manos Pitsidianakis b9343dfb32
imap: update supported capabilities 4 years ago
Manos Pitsidianakis 1bd89b3c96
themes: add mail.sidebar_account_name key 4 years ago
Manos Pitsidianakis 44ffbe54e2
input_thread: add atomic refcount to check if thread is dead 4 years ago
Manos Pitsidianakis 0882dbbad0
melib/Collection: put all fields behind a mutex 4 years ago
Manos Pitsidianakis 1112ef4717
melib/Collection: remove unused fields 4 years ago
Manos Pitsidianakis fadb3634e0
melib: take MailboxHash instead of &Mailbox in fetch*() 4 years ago
Manos Pitsidianakis 9103d05617
melib: s/get/fetch in MailBackend methods 4 years ago
Manos Pitsidianakis 0a7f283582
imap: prevent deadlock in watch::examine_updates
uid_store.mailboxes was locked before calling examine_updates, which
calls examine_mailbox() which also attempts to lock uid_store.mailboxes
4 years ago
Manos Pitsidianakis 996abd323f
Add print setting action
Add experimental print setting action. The command is of the form:

  print account_name listing.index_style

account_name is currently ignored.

The path, e.g. listing.index_style is split by "." and fed to
DotAddressable lookup trait method. The method checks the first segment
in the path if it matches any of the struct's fields, and then calls the
field's lookup method.
4 years ago
Manos Pitsidianakis c6c2865a54
melib/thread/iterators: remove recursion in favor of loops 4 years ago
Manos Pitsidianakis b4dadf20b6
ThreadListing: don't print previous link on root envelopes
If a thread root is missing (i.e. we never received that message or it
was deleted) threads rendered like this:

 ├─>Re: original subject
 ├─>Re: original subject
 └─>Re: original subject

This causes visual ambiguity if the parentless thread follows another:

 Another thread
 └─>Re: Another thread
 ├─>Re: original subject
 ├─>Re: original subject
 └─>Re: original subject

This commit removes the "previous link" from every first message in a group:

 ┬─>Re: original subject
 ├─>Re: original subject
 └─>Re: original subject
4 years ago
Manos Pitsidianakis 08d8c05a67
CompactListing: update self.rows{,_drawn} on row update
self.rows{,_drawn} were left unupdated, and stale envelope hashes could
result in panics
4 years ago
Manos Pitsidianakis 1bac926bdc
CompactListing: add row_attr macro
Add macro to calculate theme attribute for given thread row
4 years ago
Manos Pitsidianakis 5e1fa2d8d7
CompactListing: add select command
Select envelopes based on query
4 years ago
Manos Pitsidianakis 0d3fe288c5
sqlite3: make reindex operation async 4 years ago
Manos Pitsidianakis 32f196143e
melib: add supports_search() method to MailBackend 4 years ago
Manos Pitsidianakis 5ef62a39b8
conf: Rename cache_type to search_backend 4 years ago
Manos Pitsidianakis 017a45d5cd
conf/accounts: add JobRequest::Generic 4 years ago
Manos Pitsidianakis eb62463e7d
jobs: add spawn_blocking() method 4 years ago
Manos Pitsidianakis 1f9cdb8be5
conf/accounts: update mailbox status on payload delivery 4 years ago
Manos Pitsidianakis d3391e96c0
mbox: send envelope payload in chunks 4 years ago
Manos Pitsidianakis 15b15854bf
update documentation
Endless gratitude to WanderingBeekeper for editing the text.
4 years ago
Manos Pitsidianakis 587eaf7215
ThreadListing: add columns 4 years ago
Manos Pitsidianakis 349d2990c2
docs: add `send_mail` documentation 4 years ago
Manos Pitsidianakis 77dc1d74bf
Add smtp client support for sending mail in UI
`mailer_command` was removed, and a new setting `send_mail` was added.

Its possible values are a string, consisting of a shell command to
execute, or settings to configure an smtp server connection. The
configuration I used for testing this is:

  [composing]
  send_mail = { hostname = "smtp.mail.tld", port = 587, auth = { type = "auto", username = "yoshi", password = { type = "command_eval", value = "gpg2 --no-tty -q -d ~/.passwords/msmtp/yoshi.gpg" } }, security = { type = "STARTTLS" } }

For local smtp server:
  [composing]
  send_mail = { hostname = "localhost", port = 25, auth = { type = "none" }, security = { type = "none" } }
4 years ago
Manos Pitsidianakis ddafde7b37
jobs: save handle for each Job
If we save the JoinHandle for each task, we can cancel it in future
commits if we have to timeout network requests.
4 years ago
Manos Pitsidianakis 08c462801d
melib/mbox: fix not updating mailbox_index on new envelope 4 years ago
Manos Pitsidianakis e1c9967260
melib: Small documentation fixes for smtp, thread 4 years ago