Manos Pitsidianakis
6f7b3f20de
move StackVec to melib
...
closes #120
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
eff1c1641c
melib: track modified paths in maildir
...
Keep modified path status in maildir to prevent not-found panics
2019-06-10 19:40:50 +03:00
Manos Pitsidianakis
d3208f6a3d
End of line in grapheme_clusters?
2019-06-10 19:40:49 +03:00
Manos Pitsidianakis
f51ea93351
move grapheme stuff to melib
2019-06-10 19:40:49 +03:00
Manos Pitsidianakis
6504a141f3
melib: dont allocate new string
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
1e7e99f499
melib: return $val in debug!
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
b943941e60
melib: format maildir/backend.rs
2019-06-10 19:40:48 +03:00
Manos Pitsidianakis
13fba8d35b
melib: drop MutexGuard before calling add_path_to_index
...
In some cases add_path_to_index was called with the mutex already held,
and a deadlock occurred.
2019-06-10 19:40:48 +03:00
Manos Pitsidianakis
dad7c09158
melib: detect plain text in multipart/alternative
2019-06-10 19:40:48 +03:00
Manos Pitsidianakis
355fb63b16
melib: link threads with empty intermediates
...
A thread's chain link would get broken when empty intermediate
ThreadNodes exist. The pruning of the empty node did not properly chain
the empty node's parent with the empty node's children.
Old behaviour:
- [A]
/* [B] is missing */
- [C]
/* [D] is missing */
- [E]
New behaviour (`x` represents deleted links)
- [A]
|
|xxx> [empty node of B]
| x
| x
| \/
|_______>[C]
|
|xxx> [empty node of D]
| x
| x
| \/
|_______>[E]
2019-06-10 19:40:47 +03:00
Manos Pitsidianakis
0e3b8f54d9
melib: fix address_spec parse without displayname
...
addresses like "<user@domain.tld>" were parsed as "ser@domain.tld". Fix
this by checking for displayname length.
2019-06-10 19:40:47 +03:00
Manos Pitsidianakis
9afeb648f7
melib: keep old_hash in Collection temporarily
...
When renaming envelopes, keep old_hash in collection until we receive an
EnvelopeRename event in ui
2019-06-10 19:40:47 +03:00
Manos Pitsidianakis
325bb5bff2
add literal print to debug!
2019-06-10 19:40:47 +03:00
Manos Pitsidianakis
59135be983
melib: fix typo and unused val
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
8ef470fb15
add name in single var print in debug!
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
a03bd80199
ui: watch root_folder instead of every folder
2019-06-10 19:40:45 +03:00
Manos Pitsidianakis
3790f68e3f
ui: file_name() does not return full file_name
...
move_to_cur doesn't retain the full envelope name when moving
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
596194fa47
melib: fix debug prints not debug-build only
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
f348cc9a55
melib: add fqdn to MID
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
a29e39f5ef
ui: fix editing messages duplicates headers
...
closes #94
2019-06-10 19:40:43 +03:00
Manos Pitsidianakis
d9a3b03e2b
melib: create new threadnode if it's missing inside rebuild_thread
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
1c7aa0ec9c
update to 2018 edition
2019-06-10 19:40:42 +03:00
Manos Pitsidianakis
ac0e2cbe44
melib: fix invalid folder hierarchy in Backend::folders()
2019-06-10 19:40:42 +03:00
Manos Pitsidianakis
43f89ef680
melib: fix crash in node_build(
2019-06-10 19:40:42 +03:00
Manos Pitsidianakis
ba6c259820
melib: fix duplication of thread nodes in update envelope event
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
Manos Pitsidianakis
5d9af8e32b
ui: improve contact additions from mail view
2019-06-10 19:40:41 +03:00
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
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
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
bf038428c2
Run rustfmt
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
5e306130fb
Fix clippy warnings
2019-06-10 19:40:39 +03:00
Manos Pitsidianakis
f748f1e692
edit headers with a form in composer
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
c135650018
Add Contact edit
...
concerns #11
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
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
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
1b3fe2a391
melib: maildir set extension properly
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
2f3c168aeb
melib: add clear debug prints in email structs
2019-06-10 19:40:36 +03:00
Manos Pitsidianakis
fd1378781d
melib: insert envelope in threads after inserting it in collection
2019-06-10 19:40:35 +03:00
Manos Pitsidianakis
afe34d5916
melib: hash path instead of file contents in maildir backend
2019-06-10 19:40:35 +03:00
Manos Pitsidianakis
1950228fda
melib: remove body field from Envelope
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
0add765030
melib: ensure envelope has MessageID
2019-06-10 19:40:35 +03:00
Manos Pitsidianakis
eda76c744e
melib: add async blocking join
2019-06-10 19:40:34 +03:00
Manos Pitsidianakis
47481e72da
melib: Prune empty containers while threading
2019-06-10 19:40:34 +03:00
Manos Pitsidianakis
b2e91a83bd
Fix encoded-word parsing bug
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
8c5879032e
melib/ui: print threads in correct order
2019-06-10 19:40:34 +03:00
Manos Pitsidianakis
630330f632
melib: add ThreadTree
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
e3457c40d6
melib: fix setting incorrect From:
values
2019-06-10 19:40:34 +03:00
Manos Pitsidianakis
823889b773
melib: Fix incorrect thread len count
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
1f49dfae3b
melib: add hash_set in threads to keep track of envelopes
...
closes #40
2019-06-10 19:40:33 +03:00
Manos Pitsidianakis
5135c5ce3f
ui: insert new envelopes in threads
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
c88ee18dda
melib: add quoted body in reply draft
2019-06-10 19:40:33 +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
58679db790
melib: Add folder path prefix in cache file names
...
Closes #29
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
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
6f994feb13
Whitespace fixes
2019-06-10 19:40:31 +03:00
Manos Pitsidianakis
a6d557d694
Don't insert newlines between multipart attachments
...
Closes #34
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
2b6d1e0dbf
Run clippy lints
2019-06-10 19:40:31 +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
47dd2ed93e
Fix potential as_ptr() substraction bug
2019-06-10 19:40:30 +03:00
Manos Pitsidianakis
a24c366670
Parse date as phrase
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
41d8793412
Rewrite multipart attachment parser
2019-06-10 19:40:29 +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
f033463db9
startupcheck signal seems to be causing redraws
...
closes #33
2019-06-10 19:40:29 +03:00
Manos Pitsidianakis
99fab60990
Fix phrase parser again
2019-06-10 19:40:29 +03:00
Manos Pitsidianakis
5f52caf931
Fix phrase parsing with custom parser
...
closes #30
2019-06-10 19:40:29 +03:00
Manos Pitsidianakis
036d699ce0
Fix empty input slice bug in encoded_word ( Fix #30 )
2019-06-10 19:40:28 +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
e316640f68
TODO comment removal
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
d8137738b5
Add more charsets and parsing stuff
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
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
14d65838b7
Fix proper viewing for multipart alternatives, html view and quoted printable soft breaks
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
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
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
375b256a4e
Add raw mode view in email
2019-06-10 19:40:26 +03:00
Manos Pitsidianakis
63ce729205
Optimize some parser stuff
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
d5c0542f61
Update benches
2019-06-10 19:40:26 +03:00
Manos Pitsidianakis
6ebab37a3d
Add some error checking 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
ea9bdd2074
Add address_list parser
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
7ed707a309
Print attachments of interest in the text body
...
Concerns #2
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
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