Commit Graph

425 Commits (78955e3199fdcf94d9711efeac60324f10d61542)

Author SHA1 Message Date
Manos Pitsidianakis 19ec6e54fc
Dont show notification for seen or draft Envelopes 5 years ago
Manos Pitsidianakis 31543bf2f9
ui: update CompactListing based on ConversationsListing 5 years ago
Manos Pitsidianakis b3e1d88898
compose: rename Overview to ThreadView 5 years ago
Manos Pitsidianakis d8ada69897
compose: don't lose draft if Draft folder isn't available
Try saving in INBOX or another folder instead. On complete failure, save
in /tmp/
5 years ago
Manos Pitsidianakis 68c40a2920
melib: return Result with error when an IO operation fails
Don't unwrap anything because this might be temporary, for example a
short IMAP disconnection.
5 years ago
Manos Pitsidianakis d44a68ec69
ui: don't quit if editing a draft
Ask user to save draft or discard it.
5 years ago
Manos Pitsidianakis 713c4f73b9
conf: add editor_cmd setting
Set the editor to launch in configuration. If it's missing, check for
$EDITOR
5 years ago
Manos Pitsidianakis 0ece51612f
update bincode to 1.2.0 5 years ago
Manos Pitsidianakis fa121820f7
Bump version to 0.3.1 5 years ago
Manos Pitsidianakis ef338f353d
ui: add PGP settings in configuration 5 years ago
Manos Pitsidianakis 6d40a57a2e
ui: scroll in shortcuts panel 5 years ago
Manos Pitsidianakis 91ae539de1
Small fixes 5 years ago
Manos Pitsidianakis f27b815aa7
Add verification of GPG signed messages 5 years ago
Manos Pitsidianakis 9305e543cf
melib: add a `body` field to Attachment
Attachment needs to know the range of bytes where the body part of the
attachment is located. The Attachment.raw field contains the entire
attachment, headers and body. The new Attachment.body fields contains a
`StrBuilder` which contains the offset and length of the body part inside
`raw`.
5 years ago
Manos Pitsidianakis 5a53020f3d
Add debug-tracing feature to all crates
The feature needs to be defined in all manifests in order to be enabled
in all crates.
5 years ago
Manos Pitsidianakis 26e4d50b40
Try to save sent messages elsewhere if Sent folder fails
If Sent folder wasn't correctly configured, the sent message would be
lost. With this change it tries these folders in this order:

 1. Sent
 2. Inbox
 3. Any other normal folder

The check is done by looking at the special usage metadata on each
folder. If everything fails, the message is saved in a file in the
tmpfs.
5 years ago
Manos Pitsidianakis 415fb2455b
ui: display status bar messages for 5 seconds 5 years ago
Manos Pitsidianakis b07db29a19
ui: add timer tick every 300ms
Check for pending events in the main process by receiving a timer event
every 300ms. This way loaded folders or received emails will get
recognized even if the appropriate informing signals got lost.
5 years ago
Manos Pitsidianakis 7fe6532c73
ui: add log on child waiting error 5 years ago
Manos Pitsidianakis fb7b038ee1
ui: add set_seen shortcut in {Compact,Conversation}
Shortcut sets an entire thread as seen.
5 years ago
Manos Pitsidianakis fada0ffce1
ui: use ThreadNode instead of Envelope to print entries in
ConversationsListing
5 years ago
Manos Pitsidianakis 146acb70dd
ui: check account conf for index style in listing.rs 5 years ago
Manos Pitsidianakis 828718141a
ui: return valid values in ListingTrait::coordinates
By convention the valid values at any time of a cursor_pos in mail
listings is in self.new_cursor_pos, which the listing compares with
self.cursor_pos to detect position changes. Returning
self.cursor_pos values with coordinates() is invalid.
5 years ago
Manos Pitsidianakis fe28e849b3
ui: send update event on folders even on no notification
Send an update event even if user's configuration has turned off
notification for this special event. This happens if the entire folder
is set to `ignore`, or when a particular thread is snoozed. In every
case we would want the UI to update.
5 years ago
Manos Pitsidianakis 79212621af
Bump version to 0.3.0 5 years ago
Manos Pitsidianakis 8795c2da4f
ui: small configuration fixes
- unused options were removed,
- renamed `index` conf option to `index_style`
5 years ago
Manos Pitsidianakis 86f21fbe52
ui: xbiff(1) support 5 years ago
Manos Pitsidianakis bd8424c1f8
ui: add notification `play_sound`, `sound_file` conf settings 5 years ago
Manos Pitsidianakis c695d7a8e2
ui: add Notification kinds 5 years ago
Manos Pitsidianakis 5cf620f43c
ui: add two log entries 5 years ago
Manos Pitsidianakis ad01101b9b
ui: fix ThreadView drawing artifacts 5 years ago
Manos Pitsidianakis af38b7e7cb
ui: add envelope views in new tab action 5 years ago
Manos Pitsidianakis 5ddd68ad9f
ui: add statusbar change with tab switch and updates 5 years ago
Manos Pitsidianakis 2eb41f3d3d
ui: dedup history suggestions in command execute bar 5 years ago
Manos Pitsidianakis 3ae2d03663
ui: add triptych thread mailing view
This mail list view shows one entry per thread just like CompactListing,
but the entry is slightly bigger just like in some GUIs, and when the
thread is opened the view becomes 3 columned:

+--+-------+----+
|~~|-------|~~~ |
|~~|-------|~~  |
|  |-------|    |
|  |-------|~~~ |
+--+-------+----+

This is meant to be used with bigger terminal sizes
5 years ago
Manos Pitsidianakis e3cd2d4c67
ui: save execute cmd history to XDG_DATA_DIR 5 years ago
Manos Pitsidianakis f61a43108c
ui: show worker and static threads in account tab 5 years ago
Manos Pitsidianakis f394fde143
add priority and info to jobs and workers
jobs now have a priority given to them, in order to parse some mailboxes
(eg INBOX, Sent) first.

worker threads now can set their names and status
5 years ago
Manos Pitsidianakis fd38dbed48
override configuration with per-folder configs 5 years ago
Manos Pitsidianakis 81a55abc7c
Update crossbeam to 0.7.2 and remove chan 5 years ago
Manos Pitsidianakis ecb3fd7f3d
Add dyn keyword to Trait objects
And fix some unused var warnings as well
5 years ago
Manos Pitsidianakis 335a1011de
imap: add watch 5 years ago
Manos Pitsidianakis c3e3c98fb0
melib: filter subscribed folders in MailBackend::new() 5 years ago
Manos Pitsidianakis c9f7b41e47
imap: continuous payload delivery in async workers 5 years ago
Manos Pitsidianakis c2c5f2db69
melib: add Failure to RefreshEventKind 5 years ago
Manos Pitsidianakis 0812242f60
Add IMAP backend
TODOs: new message events (untagged responses)
5 years ago
Manos Pitsidianakis 3f7d962abd
melib: remove ThreadTree, use ThreadNodes for root_set
Remove ThreadTree index in Threads {} struct. Keep a Vec<ThreadHash> for
root_set state of mailbox instead of rebuilding ThreadTrees every
time.
5 years ago
Manos Pitsidianakis dc2184a9de
melib: add Folder operations in mail backends
Add following operations in mail backend:
- Create,
- Delete,
- Subscribe,
- Unsubscribe,
- Rename
5 years ago
Manos Pitsidianakis 8b0dff728d
ui: don't show new mail notifications in ignored folders 5 years ago
Manos Pitsidianakis a866e060a1
ui: open MessageRfc822 attachments in new tab 5 years ago
Manos Pitsidianakis f72fb069fa
ui: add paste input in StatusBar 5 years ago
Manos Pitsidianakis 1328f994f3
Make config objects Serializable with serde 5 years ago
Manos Pitsidianakis 02b0f69e14
Replace config crate with toml
config crate was not really needed
5 years ago
Manos Pitsidianakis b474b44b10
Add special use semantics for mailboxes 5 years ago
Manos Pitsidianakis 76909a1959
add folder subscriptions 5 years ago
Manos Pitsidianakis b39b285711
ui: fix flag colors in re-highlight in CompactListing 5 years ago
Manos Pitsidianakis 734bc109b0
ui: refactor menu 5 years ago
Manos Pitsidianakis 1845b046fa
ui: add attribute support
bold/italic etc
5 years ago
Manos Pitsidianakis 2610e9c055
ui: don't check terminal size in ThreadView 5 years ago
Manos Pitsidianakis c0dcd7254a
ui: bound check in draw_horz in ThreadView 5 years ago
Manos Pitsidianakis e5f8714162
ui: make wide chars occupy more than one cell
If setting a wide char to a Cell, mark the next one as empty in order to
skip printing it.

This prevents the following misalignment:
  |   subject
  |📎  Fwd: RE:
  |   second subject
5 years ago
Manos Pitsidianakis af573b57f1
ui: add nonavailable folder checks 5 years ago
Manos Pitsidianakis 16a5d9b28a
ui, ThreadView: update seen flag in ThreadEntries
Update seen flag when receiving EnvelopeRename events.
5 years ago
Manos Pitsidianakis 84950ad740
ui, CompactListing: Don't accept listing actions if unfocused 5 years ago
Manos Pitsidianakis fed13816dd
Bump version to all workspace crates 5 years ago
Manos Pitsidianakis 22f11445e2
Print error and exit if Maildir path config is wrong 5 years ago
Manos Pitsidianakis bc7da4610e
Send MailboxUpdate events when threads are updated
Depending on the insertion order of folders which is non-deterministic
because it relies on the kernel's scheduling of parsing threads, the
listing the user sees might not be up-to-date because later thread
updates are never broadcast. This results in inconsistencies between
threads and mail listings when a thread's root envelope was part of a
not broadcast update leading to `key not found` panics in a listing's
hashmaps.
5 years ago
Manos Pitsidianakis 714f8255fc
ui: fix pageup/dn behaviour 5 years ago
Matthias Beyer 678921d2b7
Remove unused imports
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
5 years ago
Matthias Beyer fecb66e877
Print to stderr when printing error
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
5 years ago
Matthias Beyer 02bfda5eed
Prefix unused variables with underscore
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
5 years ago
Matthias Beyer 092f3694d2
Print error message to stderr
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
5 years ago
Manos Pitsidianakis d3c658cf00
ui: add attachments in composer tab 5 years ago
Manos Pitsidianakis 131b4abfbe
ui: use $EDITOR 5 years ago
Manos Pitsidianakis d73069bc80
melib: add Other and OctetStream content types 5 years ago
Manos Pitsidianakis c17bb24f0d
melib: refactor attachments and attachment_types interfaces 5 years ago
Manos Pitsidianakis 4f5bcfd1d4
fix compilation error on bsds 5 years ago
Manos Pitsidianakis 38da6c83b9
melib: add read-only support for mbox 5 years ago
Manos Pitsidianakis 8a0e702127
melib,ui: add MailboxEntry enum
Use an enum to describe a mailbox's state in ui::conf::Account instead
of Result.
5 years ago
Manos Pitsidianakis d84ceca88e
create text_processing crate 5 years ago
Manos Pitsidianakis ff37e97cba
ui: add From header in list unsubscribe e-mails 5 years ago
Manos Pitsidianakis 8543a06f59
ui: rename ignore to subscribe to match IMAP term 5 years ago
Manos Pitsidianakis 6e63e8a6f6
ui: rename read/unread uses to seen/unseen 5 years ago
Manos Pitsidianakis a62f1d6c01
add read-only option in accounts 5 years ago
Matthias Beyer 1e729010c1
replace deprecated trim_right() with trim_end()
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
Message-Id: <20190714115231.7002-1-mail@beyermatthias.de>
5 years ago
Manos Pitsidianakis f13da6a26a
ui: Add pipe action for Pager 5 years ago
Manos Pitsidianakis 0925f2a439
ui: restore Page{Up,Dn} to Pager
When issuing PageUp and PageDn actions to an e-mail pager in
CompactListing, the input action was handled by listing and not the
pager which led to the keys get seemingly ignored.
5 years ago
Manos Pitsidianakis 46a0574713
ui: permanently mark selected rows in self.data_columns
`self.draw_list` detects `bg_color` by checking the first cell of the first column, so set it to make it permanent
5 years ago
Manos Pitsidianakis 93f3d6e230
remove std::dbg uses 5 years ago
Manos Pitsidianakis 70e5949590
ui: add autocomplete for commands in execute bar 5 years ago
Manos Pitsidianakis a028aa9a44
ui: change contact list header colors 5 years ago
Manos Pitsidianakis 74be47ec5a
ui: fix some lints 5 years ago
Manos Pitsidianakis a655a85b5f
ui: fix replies not being synced and inserted properly on RefreshEvents 5 years ago
Manos Pitsidianakis b5ba9c3a8c
ui: force redraw CompactListing after EnvelopeRename event 5 years ago
Manos Pitsidianakis ff2c030c0f
ui: process refresh events immediately 5 years ago
Manos Pitsidianakis 34054d46ea
ui: print and set environment variables 5 years ago
Manos Pitsidianakis 8fefdf80ad
ui: don't send StartupCheck or MailboxUpdate on Envelope change events 5 years ago
Manos Pitsidianakis 22dbc7dd9f
ui: don't print empty history or duplicates 5 years ago
Manos Pitsidianakis f4f3b87f84
ui: add selections to CompactListing
Select multiple entries by pressing 'v'. Set read/unread and delete
actions are then performed on the selected entries.
5 years ago
Manos Pitsidianakis 8c97336307
ui: add set as read/unread, delete actions
Implemented only in compact listing for now.
5 years ago