Manos Pitsidianakis
b3e1d88898
compose: rename Overview to ThreadView
2019-09-27 13:40:02 +03:00
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/
2019-09-27 13:40:02 +03:00
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.
2019-09-27 13:40:02 +03:00
Manos Pitsidianakis
d44a68ec69
ui: don't quit if editing a draft
...
Ask user to save draft or discard it.
2019-09-27 13:40:02 +03:00
Manos Pitsidianakis
713c4f73b9
conf: add editor_cmd setting
...
Set the editor to launch in configuration. If it's missing, check for
$EDITOR
2019-09-27 13:39:55 +03:00
Manos Pitsidianakis
ef338f353d
ui: add PGP settings in configuration
2019-09-26 14:09:01 +03:00
Manos Pitsidianakis
6d40a57a2e
ui: scroll in shortcuts panel
2019-09-26 13:11:53 +03:00
Manos Pitsidianakis
91ae539de1
Small fixes
2019-09-26 13:11:49 +03:00
Manos Pitsidianakis
f27b815aa7
Add verification of GPG signed messages
2019-09-26 13:11:08 +03:00
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`.
2019-09-26 13:10:06 +03:00
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.
2019-09-23 09:30:23 +03:00
Manos Pitsidianakis
415fb2455b
ui: display status bar messages for 5 seconds
2019-09-22 13:35:50 +03:00
Manos Pitsidianakis
fb7b038ee1
ui: add set_seen shortcut in {Compact,Conversation}
...
Shortcut sets an entire thread as seen.
2019-09-20 10:26:08 +03:00
Manos Pitsidianakis
fada0ffce1
ui: use ThreadNode instead of Envelope to print entries in
...
ConversationsListing
2019-09-20 09:17:04 +03:00
Manos Pitsidianakis
146acb70dd
ui: check account conf for index style in listing.rs
2019-09-20 09:15:13 +03:00
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.
2019-09-20 09:12:53 +03:00
Manos Pitsidianakis
8795c2da4f
ui: small configuration fixes
...
- unused options were removed,
- renamed `index` conf option to `index_style`
2019-09-16 16:41:22 +03:00
Manos Pitsidianakis
86f21fbe52
ui: xbiff(1) support
2019-09-15 23:38:32 +03:00
Manos Pitsidianakis
bd8424c1f8
ui: add notification `play_sound`, `sound_file` conf settings
2019-09-15 23:38:32 +03:00
Manos Pitsidianakis
c695d7a8e2
ui: add Notification kinds
2019-09-15 23:38:32 +03:00
Manos Pitsidianakis
5cf620f43c
ui: add two log entries
2019-09-15 23:38:32 +03:00
Manos Pitsidianakis
ad01101b9b
ui: fix ThreadView drawing artifacts
2019-09-15 23:38:31 +03:00
Manos Pitsidianakis
af38b7e7cb
ui: add envelope views in new tab action
2019-09-15 23:38:31 +03:00
Manos Pitsidianakis
5ddd68ad9f
ui: add statusbar change with tab switch and updates
2019-09-15 23:38:31 +03:00
Manos Pitsidianakis
2eb41f3d3d
ui: dedup history suggestions in command execute bar
2019-09-15 23:38:31 +03:00
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
2019-09-15 23:38:31 +03:00
Manos Pitsidianakis
e3cd2d4c67
ui: save execute cmd history to XDG_DATA_DIR
2019-09-15 13:21:15 +03:00
Manos Pitsidianakis
f61a43108c
ui: show worker and static threads in account tab
2019-09-15 13:21:15 +03:00
Manos Pitsidianakis
fd38dbed48
override configuration with per-folder configs
2019-09-15 13:21:14 +03:00
Manos Pitsidianakis
ecb3fd7f3d
Add dyn keyword to Trait objects
...
And fix some unused var warnings as well
2019-09-15 13:21:14 +03:00
Manos Pitsidianakis
335a1011de
imap: add watch
2019-09-15 13:21:14 +03:00
Manos Pitsidianakis
c3e3c98fb0
melib: filter subscribed folders in MailBackend::new()
2019-09-15 13:21:14 +03:00
Manos Pitsidianakis
0812242f60
Add IMAP backend
...
TODOs: new message events (untagged responses)
2019-09-15 13:21:13 +03:00
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.
2019-09-08 11:49:23 +03:00
Manos Pitsidianakis
a866e060a1
ui: open MessageRfc822 attachments in new tab
2019-09-08 11:13:51 +03:00
Manos Pitsidianakis
f72fb069fa
ui: add paste input in StatusBar
2019-08-30 18:41:25 +03:00
Manos Pitsidianakis
b39b285711
ui: fix flag colors in re-highlight in CompactListing
2019-08-18 15:47:10 +03:00
Manos Pitsidianakis
734bc109b0
ui: refactor menu
2019-08-18 15:47:10 +03:00
Manos Pitsidianakis
1845b046fa
ui: add attribute support
...
bold/italic etc
2019-08-18 15:47:09 +03:00
Manos Pitsidianakis
2610e9c055
ui: don't check terminal size in ThreadView
2019-08-17 12:56:11 +03:00
Manos Pitsidianakis
c0dcd7254a
ui: bound check in draw_horz in ThreadView
2019-08-17 12:26:32 +03:00
Manos Pitsidianakis
16a5d9b28a
ui, ThreadView: update seen flag in ThreadEntries
...
Update seen flag when receiving EnvelopeRename events.
2019-08-04 00:30:40 +03:00
Manos Pitsidianakis
84950ad740
ui, CompactListing: Don't accept listing actions if unfocused
2019-08-04 00:28:20 +03:00
Manos Pitsidianakis
714f8255fc
ui: fix pageup/dn behaviour
2019-08-02 01:00:54 +03:00
Matthias Beyer
678921d2b7
Remove unused imports
...
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2019-08-02 01:00:54 +03:00
Matthias Beyer
02bfda5eed
Prefix unused variables with underscore
...
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2019-08-02 01:00:53 +03:00
Manos Pitsidianakis
d3c658cf00
ui: add attachments in composer tab
2019-08-02 01:00:53 +03:00
Manos Pitsidianakis
131b4abfbe
ui: use $EDITOR
2019-08-02 01:00:53 +03:00
Manos Pitsidianakis
d73069bc80
melib: add Other and OctetStream content types
2019-08-02 00:22:20 +03:00
Manos Pitsidianakis
c17bb24f0d
melib: refactor attachments and attachment_types interfaces
2019-07-30 21:33:15 +03:00
Manos Pitsidianakis
8a0e702127
melib,ui: add MailboxEntry enum
...
Use an enum to describe a mailbox's state in ui::conf::Account instead
of Result.
2019-07-28 20:15:41 +03:00
Manos Pitsidianakis
ff37e97cba
ui: add From header in list unsubscribe e-mails
2019-07-22 15:14:39 +03:00
Manos Pitsidianakis
6e63e8a6f6
ui: rename read/unread uses to seen/unseen
2019-07-18 20:23:02 +03:00
Manos Pitsidianakis
a62f1d6c01
add read-only option in accounts
2019-07-18 20:16:51 +03:00
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>
2019-07-15 10:49:19 +03:00
Manos Pitsidianakis
f13da6a26a
ui: Add pipe action for Pager
2019-07-15 00:12:01 +03:00
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.
2019-07-13 22:52:42 +03:00
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
2019-07-11 12:29:17 +03:00
Manos Pitsidianakis
70e5949590
ui: add autocomplete for commands in execute bar
2019-07-06 20:44:51 +03:00
Manos Pitsidianakis
a028aa9a44
ui: change contact list header colors
2019-07-06 20:36:59 +03:00
Manos Pitsidianakis
74be47ec5a
ui: fix some lints
2019-07-06 12:47:27 +03:00
Manos Pitsidianakis
a655a85b5f
ui: fix replies not being synced and inserted properly on RefreshEvents
2019-07-06 12:46:45 +03:00
Manos Pitsidianakis
b5ba9c3a8c
ui: force redraw CompactListing after EnvelopeRename event
2019-07-06 00:19:37 +03:00
Manos Pitsidianakis
ff2c030c0f
ui: process refresh events immediately
2019-07-06 00:18:55 +03:00
Manos Pitsidianakis
22dbc7dd9f
ui: don't print empty history or duplicates
2019-06-25 10:37:19 +03:00
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.
2019-06-25 10:37:18 +03:00
Manos Pitsidianakis
8c97336307
ui: add set as read/unread, delete actions
...
Implemented only in compact listing for now.
2019-06-23 11:42:48 +03:00
Manos Pitsidianakis
e0e520b2c4
ui: add filter method in ListingTrait
...
Implemented in CompactListing only for now. Filter results are stored in
the filter* fields of the struct.
2019-06-22 16:13:40 +03:00
Manos Pitsidianakis
bb292486f4
ui: expand Listing trait with draw_list and highlight_line
...
In the course of making the Listing trait a generic way for any kind of
listing (eg. NNTP, RSS, et all)
2019-06-21 12:02:11 +03:00
Manos Pitsidianakis
06862c1484
ui: prevent some unnecessary redraws
2019-06-19 19:39:23 +03:00
Manos Pitsidianakis
9026fb866e
ui: Add ability to call mailing list actions from Envelope view
2019-06-18 22:16:32 +03:00
Manos Pitsidianakis
07700ca00f
ui: Add possible mailing list actions from List-* headers
2019-06-18 22:01:02 +03:00
Manos Pitsidianakis
24831b3c13
Fix warnings, lints, and 2018 errors
2019-06-18 21:14:14 +03:00
Manos Pitsidianakis
cb83f9fe05
ui: add fluid columns in CompactListing
2019-06-10 19:40:51 +03:00
Manos Pitsidianakis
d772d10d66
merge FirstName/LastName fields in Contacts
...
First names and Last names are an anglocentric concept and do not apply
cleanly to the rest of the world's cultures.
2019-06-10 19:40:51 +03:00
Manos Pitsidianakis
b6c0236d24
ui: make EnvelopeRename event not folder specific
...
And pass EnvelopeRename events to subviews
2019-06-10 19:40:51 +03:00
Manos Pitsidianakis
85d1aaaa69
ui: add PageMovements and colors to ThreadView
2019-06-10 19:40:50 +03:00
Manos Pitsidianakis
6088705745
ui: add PageMovements in ThreadListing
2019-06-10 19:40:50 +03:00
Manos Pitsidianakis
831ec97d64
ui: add columns in PlainListing
2019-06-10 19:40:50 +03:00
Manos Pitsidianakis
d3ce424361
ui: add update and expand_headers in MailView
2019-06-10 19:40:50 +03:00
Manos Pitsidianakis
3318123870
ui: add attachment emoji in compact listing
2019-06-10 19:40:50 +03:00
Manos Pitsidianakis
d0039740b0
melib: add has_attachments property to Envelope
...
Check subattachments in has_attachments check.
Instead of getting a flattened attachment view of multipart/mixed (eg
[multipart/mixed, text/plain, text/plain]) get only the subattachments
(eg [text/plain, text/plain]). Don't count text-only multipart/mixed as attachments
2019-06-10 19:40:50 +03:00
Manos Pitsidianakis
42654410e3
ui: move Collection to Account
...
Each account had one mailbox per folder, which had one associated
collection. Now each Account has one Collection for all folders and each
Mailbox object holds only the hashes of each message.
Collection also gets Threads for each folder in order to mix messages
(ie from/to Sent folder).
Insert Sent emails in chronological order
if inserted unsorted, mails a, b with a happened-before b, might never
get added.
Fix multiple insertions in ThreadTree upon insert_reply
insert_reply was creating multiple copies in threading
2019-06-10 19:40:50 +03:00
Manos Pitsidianakis
d8651db93a
delete mailbox_view module
2019-06-10 19:40:50 +03:00
Manos Pitsidianakis
7de075df49
ui: add Home/End movements
2019-06-10 19:40:49 +03:00
Manos Pitsidianakis
06b96449c1
ui: add history and autocomplete in execute bar
...
closes #116 and #117
2019-06-10 19:40:49 +03:00
Manos Pitsidianakis
3c575c823d
ui: toggle thread snooze flag
...
snooze field translated to whether the user wants to be notified of new
email in the thread or not. This is toggled with an (temp) EX cmd: `toggle_thread_snooze`
closes #112
2019-06-10 19:40:49 +03:00
Manos Pitsidianakis
22d868f499
save Account to disk
...
closes #114
2019-06-10 19:40:49 +03:00
Manos Pitsidianakis
4582bcd5ae
fix warnings and lints
2019-06-10 19:40:49 +03:00
Manos Pitsidianakis
3bc22abdff
ui: draw thread arrows correctly in other sortings
...
thread arrows in ThreadListing weren't drawn correctly when subsorting
was changed (eg date -> subject)
has_sibling was delegated to ThreadsIterator.
2019-06-10 19:40:49 +03:00
Manos Pitsidianakis
2dec7fa6b6
ui: set plain/threaded/compact keeps mailbox position
...
closes #109
2019-06-10 19:40:48 +03:00
Manos Pitsidianakis
f972f69bad
ui: send RefreshMailbox events in every refresh_mailbox call
...
closes #108
2019-06-10 19:40:48 +03:00
Manos Pitsidianakis
a0b1a079b8
ui: add "application/pgp-signature" content type
2019-06-10 19:40:48 +03:00
Manos Pitsidianakis
4c88422d71
ui: fix scrollbar calculations
2019-06-10 19:40:48 +03:00
Manos Pitsidianakis
6e7ab0421b
ui: fix pager scrolling getting stuck
2019-06-10 19:40:48 +03:00
Manos Pitsidianakis
5d6c4ee2c8
ui: remove useless padding from ThreadView items
2019-06-10 19:40:48 +03:00
Manos Pitsidianakis
bf35894a18
ui: distinct shortcut maps with description
...
put shortcuts in different maps according to their source component
instead of bagging them all in the same one, and then print each
shortcut section on its own in the shortcut window
2019-06-10 19:40:48 +03:00
Manos Pitsidianakis
5a564dee63
melib: print folder tree in Listing menu properly
...
Depths weren't calculated correctly, and index (eg 0 Inbox) wasn't
colored correctly if the folder's name started with a number (eg 11 2019)
2019-06-10 19:40:48 +03:00
Manos Pitsidianakis
d231865f88
ui: add scrollbar widget in view/thread.rs
2019-06-10 19:40:48 +03:00
Manos Pitsidianakis
8b23ddb920
ui: correct mailview visibility toggle
...
Grid wasn't updated when user toggles mailview's visibility in
view/thread.rs.
2019-06-10 19:40:48 +03:00
Manos Pitsidianakis
0f4db97b75
ui: display headers in ViewMode::Raw
2019-06-10 19:40:47 +03:00
Manos Pitsidianakis
c26dd0685b
ui: print menu entries in order
...
FolderNode is a tree structure to represent the sorted or user defined
order inside the Account type
2019-06-10 19:40:47 +03:00
Manos Pitsidianakis
35bac364b1
ui: correctly display multipart html in Views
...
- Use Alt-r for entering raw mode
- Use r to exit raw mode
- added shortcuts
- add attachment footer in HtmlView::new
2019-06-10 19:40:47 +03:00
Manos Pitsidianakis
59d912e2ee
ui: send events to active subview only in CompactListing
2019-06-10 19:40:47 +03:00
Manos Pitsidianakis
aade41401e
ui: add column sep between menu and listing
2019-06-10 19:40:47 +03:00
Manos Pitsidianakis
99527f5684
ui: format From column in CompactListing
...
closes #87
2019-06-10 19:40:47 +03:00
Manos Pitsidianakis
02083032bf
ui: add From column in CompactListing
2019-06-10 19:40:46 +03:00
Manos Pitsidianakis
1f2c0b4fa7
melib: multipart/mixed with html messages not displayed as html
2019-06-10 19:40:46 +03:00
Manos Pitsidianakis
7e76cb7a4a
ui: align columns in CompactListing
2019-06-10 19:40:46 +03:00
Manos Pitsidianakis
e7c50c8dc5
pager: wrong max_cursor_pos setting
2019-06-10 19:40:46 +03:00
Manos Pitsidianakis
fb406667ab
add debug! macro to replace eprintlns
2019-06-10 19:40:46 +03:00
Manos Pitsidianakis
9143b2e791
ui: view: small fixes
2019-06-10 19:40:46 +03:00
Manos Pitsidianakis
13cd6b2741
ui: CompactListing: change only highlight in EnvelopeRename event
2019-06-10 19:40:46 +03:00
Manos Pitsidianakis
03b9641bc6
ui: fix acc navigation shortcuts direction
2019-06-10 19:40:46 +03:00
Manos Pitsidianakis
4ae8cbadbf
ui: reassign listing shortcuts
...
after `312011c ui: move account menu functions to Listing`, shortcuts like prev_folder etc should be generic over all listing types.
2019-06-10 19:40:45 +03:00
Manos Pitsidianakis
69031e66f9
ui: move account menu functions to Listing
...
AccountMenu was completely semantically attached to Listing, so there's
no reason for them to be separate and communicating via events.
2019-06-10 19:40:45 +03:00
Manos Pitsidianakis
de8b733d92
ui: initialize cursor in AccountMenu
...
Previous behavior was cursor highlight jumping around freshly loaded
folders
2019-06-10 19:40:45 +03:00
Manos Pitsidianakis
b104a71544
ui: highlight entries in ThreadView within grid boundaries
...
If entry string length + indentation was more than available width an
out of index panic occurs when opening the thread.
2019-06-10 19:40:45 +03:00
Manos Pitsidianakis
1e44089d84
ui: Refer to child/parents with FolderHash in BackendFolder
...
- use a stack to build folder order list in conf/accounts.rs
- update side menu print
2019-06-10 19:40:45 +03:00
Manos Pitsidianakis
8e06e298ab
ui: send only appropriate events to current view
2019-06-10 19:40:45 +03:00
Manos Pitsidianakis
499113acd2
melib: encode header values
...
closes #102
2019-06-10 19:40:45 +03:00
Manos Pitsidianakis
87adc6dd19
melib/ui: refer to Folders by FolderHash
2019-06-10 19:40:44 +03:00
Manos Pitsidianakis
04eb8d926f
ui: remove debug_log feature, add log positions
2019-06-10 19:40:44 +03:00
Manos Pitsidianakis
ea331327b2
ui: return to first tab on TabClose
2019-06-10 19:40:44 +03:00
Manos Pitsidianakis
188e359301
ui: fix nil default ComponentId
2019-06-10 19:40:44 +03:00
Manos Pitsidianakis
9bc76e3bcb
ui: unwrap UIEventType
2019-06-10 19:40:44 +03:00
Manos Pitsidianakis
106744c7ca
ui: remove Entity
2019-06-10 19:40:44 +03:00
Manos Pitsidianakis
b993375fa0
ui: put INBOX first in AccountMenu
2019-06-10 19:40:44 +03:00
Manos Pitsidianakis
42a512d010
ui: save sent messages to Sent folder
2019-06-10 19:40:44 +03:00
Manos Pitsidianakis
8149f5712f
don't overwrite 'From' in Composer'
2019-06-10 19:40:44 +03:00
Manos Pitsidianakis
7e80ad2a86
ui: hold live entries for each mailbox in CompactListing
2019-06-10 19:40:44 +03:00
Manos Pitsidianakis
0e2e8b09f6
ui: update accounts tab on mailboxupdate
2019-06-10 19:40:44 +03:00
Manos Pitsidianakis
adb3123c57
ui: reverse visible entries if self.reversed in ThreadView
2019-06-10 19:40:44 +03:00
Manos Pitsidianakis
7fa599d13e
ui: clear threadview properly
2019-06-10 19:40:43 +03:00
Manos Pitsidianakis
ada0950854
ui: retain hidden properties in ThreadView
2019-06-10 19:40:43 +03:00
Manos Pitsidianakis
e3d0ad9170
ui: fix paging in ThreadView
2019-06-10 19:40:43 +03:00
Manos Pitsidianakis
4be1b52089
ui: add hide option in ThreadView
2019-06-10 19:40:43 +03:00
Manos Pitsidianakis
6b3c4d57d6
ui: add mailer setting and send shortcut in composer
2019-06-10 19:40:43 +03:00
Manos Pitsidianakis
4bf1f6b9c9
ui: make Composer account specific
2019-06-10 19:40:43 +03:00
Manos Pitsidianakis
cfb7dcec64
ui: make html filter optional in config
...
closes #92
2019-06-10 19:40:43 +03:00
Manos Pitsidianakis
067a8e5c81
Run clippy for 2018 edition
2019-06-10 19:40:43 +03:00
Manos Pitsidianakis
ee4462881e
run cargo fmt
2019-06-10 19:40:42 +03:00
Manos Pitsidianakis
37f95dd86d
ui: fix crash when ThreadView is initiated without a ready mailbox
2019-06-10 19:40:42 +03:00
Manos Pitsidianakis
d7a4bd24c3
ui: do not recreate ThreadView on envelope update event
2019-06-10 19:40:42 +03:00
Manos Pitsidianakis
db6e83b755
ui: highlight unseen thread entries in ThreadView
...
closes #78
2019-06-10 19:40:42 +03:00
Manos Pitsidianakis
aa95c89ba8
ui: fix erasure of first body line in MailView
2019-06-10 19:40:42 +03:00
Manos Pitsidianakis
ff821e4fca
ui: don't set seen flag in Plainlisting
2019-06-10 19:40:42 +03:00
Manos Pitsidianakis
c91f0d73a5
ui: add ListingTrait to get/set coordinates
2019-06-10 19:40:42 +03:00
Manos Pitsidianakis
dcb62798f8
ui: properly update cursor on refresh_mailbox in PlainListing
2019-06-10 19:40:42 +03:00
Manos Pitsidianakis
11b2abd1d1
ui: fix seen property of threads on open, add env rename events
2019-06-10 19:40:41 +03:00