Commit Graph

365 Commits (d8ada69897d46d298309f672df611aa81e3645fa)

Author SHA1 Message Date
Manos Pitsidianakis 551db51b00
ui: avoid full renders when worker threads return StartupChecks
Now listings only re-render when their folder gets a StartupCheck event,
account menu always re-renders to update new mail counts

closes #76
2019-06-10 19:40:41 +03:00
Manos Pitsidianakis d19bda8977
melib: properly save drafts in maildir backend 2019-06-10 19:40:41 +03:00
Manos Pitsidianakis 1aa4eaa314
ui: add paste event to Field 2019-06-10 19:40:41 +03:00
Manos Pitsidianakis 1867bb6aa3
ui: hide divider column in VSplit if !self.show_divider 2019-06-10 19:40:41 +03:00
Manos Pitsidianakis 4629e6a22f
meli: add debug_logs feature
Conditional print of debug logs in stderr. Previously they were always
printed
2019-06-10 19:40:40 +03:00
Manos Pitsidianakis d50c201776
ui: add hide menu shortcut 2019-06-10 19:40:40 +03:00
Manos Pitsidianakis b741899fcf
ui: Add some docs and mini cleanups 2019-06-10 19:40:40 +03:00
Manos Pitsidianakis 9b4b6051f1
ui: use any email as composing template with edit command
concerns #38
2019-06-10 19:40:40 +03:00
Manos Pitsidianakis d5c1da4a20
ui: add contact selectors to every relevant field
concerns #38
2019-06-10 19:40:40 +03:00
Manos Pitsidianakis e5856bd01e
ui: Pin first children in Tabbed 2019-06-10 19:40:40 +03:00
Manos Pitsidianakis 4c26077f30
ui: word break with grapheme length, not bytes
​#69 East characters are not working.
2019-06-10 19:40:40 +03:00
Manos Pitsidianakis 9522508a92
Update broken reply_context drawing
concerns #38
2019-06-10 19:40:40 +03:00
Manos Pitsidianakis 39c8082a47
Distinguish far right selected tab from background 2019-06-10 19:40:40 +03:00
Manos Pitsidianakis 2b06dd1aca
ui: fix pager from_buf reflowing incompatibility 2019-06-10 19:40:40 +03:00
Manos Pitsidianakis 0b76307e30
ui: add grapheme cluster support in text input
closes #60
2019-06-10 19:40:40 +03:00
Manos Pitsidianakis bf038428c2
Run rustfmt 2019-06-10 19:40:39 +03:00
Manos Pitsidianakis e7c95ba229
Clear closed tabs in tabbed area 2019-06-10 19:40:39 +03:00
Manos Pitsidianakis bbd1918d70
Add text reflowing in pager and compose
concerns #69
2019-06-10 19:40:39 +03:00
Manos Pitsidianakis ea65989679
Move terminal stuff in its own module 2019-06-10 19:40:39 +03:00
Manos Pitsidianakis da256be25c
Fix compose pager redrawing bug 2019-06-10 19:40:39 +03:00
Manos Pitsidianakis b1d25e6d8d
add autocomplete suggestions in field 2019-06-10 19:40:39 +03:00
Manos Pitsidianakis 5bffd8e966
Store Addressbook in JSON 2019-06-10 19:40:39 +03:00
Manos Pitsidianakis b437e55b67
use shortcuts from config or default
closes #63
2019-06-10 19:40:39 +03:00
Manos Pitsidianakis 1f200cfc88
Fix compact listing defaults 2019-06-10 19:40:39 +03:00
Manos Pitsidianakis 5e306130fb
Fix clippy warnings 2019-06-10 19:40:39 +03:00
Manos Pitsidianakis d4c64916f0
Add configurable shortcuts for compact mail listing
concerns #63
2019-06-10 19:40:39 +03:00
Manos Pitsidianakis 1bb1cf7aac
add notification filter
concerns #64
2019-06-10 19:40:38 +03:00
Manos Pitsidianakis 712652a4c8
Fix xdg notification format
Concerns #64
2019-06-10 19:40:38 +03:00
Manos Pitsidianakis d285913974
Add shortcut panel
Concerns #63
2019-06-10 19:40:38 +03:00
Manos Pitsidianakis 12cc9950c7
add close action in Contacts List 2019-06-10 19:40:38 +03:00
Manos Pitsidianakis f748f1e692
edit headers with a form in composer 2019-06-10 19:40:38 +03:00
Manos Pitsidianakis f93310d424
Add Field type for FormWidgets 2019-06-10 19:40:38 +03:00
Manos Pitsidianakis e285d1006b
Open Contacts list from accounts tab 2019-06-10 19:40:38 +03:00
Manos Pitsidianakis 00abea5bff
Make Entity `Send` 2019-06-10 19:40:38 +03:00
Manos Pitsidianakis bac75b96dd
Add Contact create 2019-06-10 19:40:38 +03:00
Manos Pitsidianakis 7a0223c9b3
fix buttons/form scrolling issue 2019-06-10 19:40:38 +03:00
Manos Pitsidianakis c135650018
Add Contact edit
concerns #11
2019-06-10 19:40:37 +03:00
Manos Pitsidianakis 4ee5447cf9
Add FormWidget/ButtonWidget and use them in Contacts 2019-06-10 19:40:37 +03:00
Manos Pitsidianakis bbaf87e345
Add type synonyms for Uuids
closes 58
2019-06-10 19:40:37 +03:00
Manos Pitsidianakis ba6c7d0d7b
Add ContactList component
concerns #11
2019-06-10 19:40:37 +03:00
Manos Pitsidianakis 99d0f81b60
check for needless allocation in CellBuffer::resize() 2019-06-10 19:40:37 +03:00
Manos Pitsidianakis abf8878b39
add set_id() method in Component trait 2019-06-10 19:40:37 +03:00
Manos Pitsidianakis 62168e9183
Add contact view page, edit headers in compose, index style in conf 2019-06-10 19:40:37 +03:00
Manos Pitsidianakis 1883bb46dd
Fix `unused` cargo warnings 2019-06-10 19:40:37 +03:00
Manos Pitsidianakis 30b1808bdb
ui: save draft to draft_folder
tracking-issue: #38
2019-06-10 19:40:37 +03:00
Manos Pitsidianakis 7ff22229a9
store headers in same order in drafts 2019-06-10 19:40:37 +03:00
Manos Pitsidianakis d5c0f113d8
Accept future dates in format_date
closes #49
2019-06-10 19:40:37 +03:00
Manos Pitsidianakis 04411f1003
rename 'mod.rs' files
closes #53
2019-06-10 19:40:37 +03:00
Manos Pitsidianakis 92bb3bf8d3
ui: add contacts and account panel 2019-06-10 19:40:36 +03:00
Manos Pitsidianakis 07a51de0b6
Fix unused warnings 2019-06-10 19:40:36 +03:00
Manos Pitsidianakis 4be5b1a868
ui: fix mailbox length count 2019-06-10 19:40:36 +03:00
Manos Pitsidianakis 5c45910426
ui: move accounts to conf module 2019-06-10 19:40:36 +03:00
Manos Pitsidianakis 998414aa5a
ui: escape xml chars in notifications
closes #52
2019-06-10 19:40:36 +03:00
Manos Pitsidianakis 5a28320004
WIP 2019-06-10 19:40:36 +03:00
Manos Pitsidianakis 9b58908f6f
melib: add per-folder hash indexes in maildir backend 2019-06-10 19:40:36 +03:00
Manos Pitsidianakis b0097574a5
ui: change notification hints 2019-06-10 19:40:36 +03:00
Manos Pitsidianakis 679bbb1a04
ui: edit notification format 2019-06-10 19:40:35 +03:00
Manos Pitsidianakis 3f9ea25899
ui: add pageup-dn movements in compact listing 2019-06-10 19:40:35 +03:00
Manos Pitsidianakis 3b4e4195d6
ui: in threadview, skip entry list if length == 1 2019-06-10 19:40:35 +03:00
Manos Pitsidianakis b25e59370a
ui: remove useless self.dirty sets 2019-06-10 19:40:35 +03:00
Manos Pitsidianakis f6533d51c7
melib: add async threading
closes #43
2019-06-10 19:40:35 +03:00
Manos Pitsidianakis c619d46861
ui: don't block while waiting for Listing status 2019-06-10 19:40:35 +03:00
Manos Pitsidianakis 47481e72da
melib: Prune empty containers while threading 2019-06-10 19:40:34 +03:00
Manos Pitsidianakis fae1cdd33e
melib: Re-implement JWZ threading algorithm 2019-06-10 19:40:34 +03:00
Manos Pitsidianakis 4993db745a
melib: insert sent_folder content to other mailboxes 2019-06-10 19:40:34 +03:00
Manos Pitsidianakis 1e04e6a4ea
ui: Add bracketed paste mode
closes #42
2019-06-10 19:40:34 +03:00
Manos Pitsidianakis 8c5879032e
melib/ui: print threads in correct order 2019-06-10 19:40:34 +03:00
Manos Pitsidianakis 2fcd014bfe
melib: Fix incorrect thread child linking 2019-06-10 19:40:34 +03:00
Manos Pitsidianakis 4f715af248
melib: cache threads
closes #28
2019-06-10 19:40:33 +03:00
Manos Pitsidianakis bcef22b3f3
ui: add Listing component with 3 modes: compact plain and threaded 2019-06-10 19:40:33 +03:00
Manos Pitsidianakis 6003bdd28c
WIP 2019-06-10 19:40:33 +03:00
Manos Pitsidianakis 3e9d137310
melib: rework mail events
closes #39
2019-06-10 19:40:33 +03:00
Manos Pitsidianakis 13b3808f30
ui: Add FolderConf struct in configuration 2019-06-10 19:40:33 +03:00
Manos Pitsidianakis 31014e275a
ui: add visual separators for accounts in menu
tracking issue: #25
2019-06-10 19:40:33 +03:00
Manos Pitsidianakis c88ee18dda
melib: add quoted body in reply draft 2019-06-10 19:40:33 +03:00
Manos Pitsidianakis 91760e5be6
ui: add close dialog in compose tab discard 2019-06-10 19:40:32 +03:00
Manos Pitsidianakis 8d3a2d8236
ui: refactor compose actions 2019-06-10 19:40:32 +03:00
Manos Pitsidianakis b94687cdb0
ui: add reply-context in compose
tracking-issue: #24
2019-06-10 19:40:32 +03:00
Manos Pitsidianakis a20e7ac5c2
ui: select `From` identities in compose tab
Tracking issue #24
2019-06-10 19:40:32 +03:00
Manos Pitsidianakis d8f81cb596
ui: Remove box chars from AccountMenu 2019-06-10 19:40:32 +03:00
Manos Pitsidianakis d0315a0259
ui: Hide cursor on all occasions 2019-06-10 19:40:32 +03:00
Manos Pitsidianakis 751febeb9e
ui: Hide box drawing in compose tab 2019-06-10 19:40:32 +03:00
Manos Pitsidianakis deadd3c3fb
ui: Use Draft in compose tab
tracking issue: #24
2019-06-10 19:40:32 +03:00
Manos Pitsidianakis edf0464011
melib: Add Draft entity 2019-06-10 19:40:31 +03:00
Manos Pitsidianakis c01d15b19f
WIP commit 2019-06-10 19:40:31 +03:00
Manos Pitsidianakis c415a5aae3
Rename MailListing to PlainListing 2019-06-10 19:40:31 +03:00
Manos Pitsidianakis 5f24515145
Add buffer display in statusbar 2019-06-10 19:40:31 +03:00
Manos Pitsidianakis c5992b707d
Add box drawing in threadview with fluid layout 2019-06-10 19:40:31 +03:00
Manos Pitsidianakis a4ac421bca
Fix cursor bounds in pager scrolling 2019-06-10 19:40:31 +03:00
Manos Pitsidianakis 2b6d1e0dbf
Run clippy lints 2019-06-10 19:40:31 +03:00
Manos Pitsidianakis b617fc0136
ThreadView and compact listing
closes #3
2019-06-10 19:40:31 +03:00
Manos Pitsidianakis ad5d2353e8
Add plain threadview 2019-06-10 19:40:30 +03:00
Manos Pitsidianakis 111f915ced
folder renaming configuration
concerns #27
2019-06-10 19:40:30 +03:00
Manos Pitsidianakis 84bf2d43be
Move accounts to `ui` 2019-06-10 19:40:30 +03:00
Manos Pitsidianakis 681ac4b849
move config stuff to `ui` 2019-06-10 19:40:30 +03:00
Manos Pitsidianakis 9d5b2a4628
move config stuff to `ui` 2019-06-10 19:40:30 +03:00
Manos Pitsidianakis 5e7d73e6dc
Add an EnvelopeWrapper in compose 2019-06-10 19:40:30 +03:00
Manos Pitsidianakis d146c81d48
Add message/rfc822, multipart/digest multipart/mixed views
closes #22
2019-06-10 19:40:30 +03:00
Manos Pitsidianakis ae209e2545
Fix account menu reload bug 2019-06-10 19:40:29 +03:00
Manos Pitsidianakis c8611926fa
Refactor attachment content types 2019-06-10 19:40:29 +03:00
Manos Pitsidianakis 710920c67b
Detect new mail events and pass them as notifications to State
concerns #26
2019-06-10 19:40:29 +03:00
Manos Pitsidianakis b2c7430907
Add compact view listing, and compose tab pager
concerns #3
2019-06-10 19:40:29 +03:00
Manos Pitsidianakis d43d8d282c
tab switching doesn't redraw box lines in splits
closes #32
2019-06-10 19:40:29 +03:00
Manos Pitsidianakis f033463db9
startupcheck signal seems to be causing redraws
closes #33
2019-06-10 19:40:29 +03:00
Manos Pitsidianakis 832d1243de
Show correct thread on unthreaded view
Closes #31
2019-06-10 19:40:29 +03:00
Manos Pitsidianakis 415ce2a27e
Sort in unthreaded view
concerns #7
2019-06-10 19:40:29 +03:00
Manos Pitsidianakis daa28ae188
Sorting in threaded view
Concerns #7
2019-06-10 19:40:28 +03:00
Manos Pitsidianakis 591946a842
Fix qp header parsing 2019-06-10 19:40:28 +03:00
Manos Pitsidianakis 5d0b7fa903
Add Envelope parsing caching
Concerns #28
2019-06-10 19:40:28 +03:00
Manos Pitsidianakis 5889494e9e
Move backend logic to backend and keep Envelope abstract 2019-06-10 19:40:28 +03:00
Manos Pitsidianakis addd27f209
Put root folders on top in account menu 2019-06-10 19:40:28 +03:00
Manos Pitsidianakis 1b44aae5ce
Add reload when receiving refresh event!! 2019-06-10 19:40:28 +03:00
Manos Pitsidianakis b98a04f35b
Make backend folders completely agnostic (remove maildir logic from
conf)
2019-06-10 19:40:28 +03:00
Manos Pitsidianakis 7a6fc1ce94
Fix resize bug 2019-06-10 19:40:28 +03:00
Manos Pitsidianakis dacc4e4ba0
Properly draw and exit subview in MailView when in attachment mode 2019-06-10 19:40:27 +03:00
Manos Pitsidianakis 8462d1aceb
Add HtmlView, bounds checking in pager scrolling and better attachment view 2019-06-10 19:40:27 +03:00
Manos Pitsidianakis befe00dea6
Add html view 2019-06-10 19:40:27 +03:00
Manos Pitsidianakis a3a98f894f
Fix file drop bug 2019-06-10 19:40:27 +03:00
Manos Pitsidianakis 14d65838b7
Fix proper viewing for multipart alternatives, html view and quoted printable soft breaks 2019-06-10 19:40:27 +03:00
Manos Pitsidianakis 93b36a9941
Semifix for more than 1 digit url indexes in ViewMode::Url 2019-06-10 19:40:27 +03:00
Manos Pitsidianakis 2932dd0dc0
Fix some drawing bugs 2019-06-10 19:40:27 +03:00
Manos Pitsidianakis a8fed3a042
Add Charset type and Charset based decoding 2019-06-10 19:40:27 +03:00
Manos Pitsidianakis f16fd889e4
Add deleting in ex mode 2019-06-10 19:40:27 +03:00
Manos Pitsidianakis c30f77a312
Run clippy and rustfmt 2019-06-10 19:40:27 +03:00
Manos Pitsidianakis 43ad31d2ab
Add sort/subsort functions, not working yet as intended 2019-06-10 19:40:27 +03:00
Manos Pitsidianakis 8a7dfcd4ee
Add some documentation 2019-06-10 19:40:26 +03:00
Manos Pitsidianakis c32c6b82c8
Refactor ui module 2019-06-10 19:40:26 +03:00
Manos Pitsidianakis 00200aedb6
Handle thread joins from State 2019-06-10 19:40:26 +03:00
Manos Pitsidianakis 3f35b69ff1
Poll all parse workers on startup 2019-06-10 19:40:26 +03:00
Manos Pitsidianakis f2a646158d
Set flags in backends and mark as read when read in maillisting 2019-06-10 19:40:26 +03:00
Manos Pitsidianakis b21d30c2ef
Async loading of mailboxes on startup 2019-06-10 19:40:26 +03:00
Manos Pitsidianakis 4e5721563e
Generate missing message_id from byte hash 2019-06-10 19:40:26 +03:00
Manos Pitsidianakis e4760e4d25
Make parser for ex commands and move actions to their own mod 2019-06-10 19:40:26 +03:00
Manos Pitsidianakis 375b256a4e
Add raw mode view in email 2019-06-10 19:40:26 +03:00
Manos Pitsidianakis e91f22cb4f
Remove some string conversions in parsing 2019-06-10 19:40:26 +03:00
Manos Pitsidianakis 2f91d29326
rustfmt everything 2019-06-10 19:40:25 +03:00
Manos Pitsidianakis ffbd70e40b
Add address_list parser 2019-06-10 19:40:25 +03:00
Manos Pitsidianakis a4b8b4fd4e
Show message if attachment view is not possible instead of panic
closes #2
2019-06-10 19:40:25 +03:00
Manos Pitsidianakis faa349fadb
Add text attachment view
concerns #2
2019-06-10 19:40:25 +03:00
Manos Pitsidianakis 6049449733
Add attachment view for application/* mime
concerns #2

left:

multipart text and pgp.
2019-06-10 19:40:25 +03:00
Manos Pitsidianakis b7729243ad
Fix compiler warnings 2019-06-10 19:40:25 +03:00
Manos Pitsidianakis 569e710067
Add create_temp_file helper function with random filenames 2019-06-10 19:40:25 +03:00
Manos Pitsidianakis 0dd379141d
Fix some indentation 2019-06-10 19:40:25 +03:00
Manos Pitsidianakis f1722691e2
Hide cursor after return to alternate screen 2019-06-10 19:40:25 +03:00
Manos Pitsidianakis 2df22c2da9
^Z causes SIGSTOP
closes #6
2019-06-10 19:40:25 +03:00
Manos Pitsidianakis 0aef7e03a5
Fix colors in open-link view 2019-06-10 19:40:25 +03:00
Manos Pitsidianakis 1fd43eb671
Fix whitespace overflow in copy_area_with_break 2019-06-10 19:40:25 +03:00
Manos Pitsidianakis 1389c4b1d5
Add word break copy area function
closes #13
2019-06-10 19:40:24 +03:00
Manos Pitsidianakis 0bcea12400
Color url index in open-link
concerns #13
2019-06-10 19:40:24 +03:00
Manos Pitsidianakis d962da665f
Add range check in url open along with status bar notifications
concerns #13
2019-06-10 19:40:24 +03:00
Manos Pitsidianakis d0e6bc24f4
Add url mode in MailView and open command
for #13
TODO:
 - bounds check with statusbar message
 - color in [X] markers
2019-06-10 19:40:24 +03:00
Manos Pitsidianakis bae613ec54
Remove eprintlns and add some doc 2019-06-10 19:40:24 +03:00
Manos Pitsidianakis dcb1fe6c3a
Create MailView to replace pager in MailListing 2019-06-10 19:40:24 +03:00
Manos Pitsidianakis 7ed707a309
Print attachments of interest in the text body
Concerns #2
2019-06-10 19:40:24 +03:00
Manos Pitsidianakis bf0eb66b02
Add 'show_divider' field in (V|H)Split 2019-06-10 19:40:24 +03:00
Manos Pitsidianakis 892b3d389a
Scroll through other accounts when folder scrolling 2019-06-10 19:40:24 +03:00
Manos Pitsidianakis d763699324
Add support for component specific actions for shortcuts 2019-06-10 19:40:24 +03:00
Manos Pitsidianakis f119789cb0
Add stub for format_flowed support
Concerns #17
2019-06-10 19:40:24 +03:00
Manos Pitsidianakis f267fe8c9e
Micro fixes 2019-06-10 19:40:24 +03:00
Manos Pitsidianakis a7993d48f8
Make date printing prettier in entry formatting 2019-06-10 19:40:24 +03:00
Manos Pitsidianakis 00235fe814
Add message composing and piping to msmtp
Closes #16
2019-06-10 19:40:24 +03:00
Manos Pitsidianakis b35407bc7f
Add child forking functionality 2019-06-10 19:40:23 +03:00
Manos Pitsidianakis ac334b09b1
Use alternate buffer 2019-06-10 19:40:23 +03:00
Manos Pitsidianakis 0092496632
Rename all getters from get_X to X
closes #5
2019-06-10 19:40:23 +03:00
Manos Pitsidianakis 8c98d3a5a0
Move ui and melib to different crates
closes #9
2019-06-10 19:40:23 +03:00