Manos Pitsidianakis
995e70e009
ui: change line_break meaning in write_string_to_grid
...
Change line_break parameter from bool flag (whether to break in the end
of a line or not) to an Option<usize>, where the value is the x_offset
of the left side of the area. Thus if line_break == Some(_) when a line
ends its value is set as x to continue in the next line properly.
2019-11-18 14:49:50 +02:00
Manos Pitsidianakis
fc2d9a684d
melib/imap: set has_attachments based on BODYSTRUCTURE
...
fetch BODYSTRUCTURE along with ENVELOPE from server and set
has_attachments based on the MIME structure of the envelope.
Notes: BODYSTRUCTURE returns the MIME structure of the envelope without
the data, so if it includes a multipart/mixed it *should* have
attachments.
ENVELOPE returns basic headers of the message like Sender, Subject, Date
etc.
2019-11-18 13:00:43 +02:00
Manos Pitsidianakis
b2cd4f4b7a
melib/imap: put imap folders in RwLock instead of Mutex
...
This should prevent lockups if the IMAP conn thread gets blocked
2019-11-18 12:59:04 +02:00
Manos Pitsidianakis
3c3ee92efb
Small Makefile prettification
2019-11-18 12:56:52 +02:00
Manos Pitsidianakis
a5e272c36e
Add tests/ dir and a test
...
Add a test for generating mail with melib's Draft struct.
2019-11-17 13:29:12 +02:00
Manos Pitsidianakis
094ce7ee69
Add format_flowed option for composing e-mail
...
When format_flowed=true, generated text/plain attachments include the
format=flowed MIME parameter.
format_flowed is set to true by default.
2019-11-17 13:27:22 +02:00
Manos Pitsidianakis
953c3aa9d0
melib: Add parameters field in ContentType::Text
...
Intending to add the option to set the parameter format=flowed in the
next commits
2019-11-17 13:24:19 +02:00
Manos Pitsidianakis
62f3d12253
ui/view: move reply and edit to view.rs
...
reply and edit actions where only in view/thread.rs, so simple envelope
views had no way to reply. view.rs is used standalone or within
view/thread.rs so it is the appropriate place for the actions.
2019-11-17 12:05:57 +02:00
Manos Pitsidianakis
f8a2ce0bed
ui: small bounds checking fix in view.rs
2019-11-17 12:05:57 +02:00
Manos Pitsidianakis
f8a1a6caa5
melib: replace find_thread_group with find_root_hash
...
thread_group property of ThreadNode doesn't yet reflect the actual root
ThreadNode (the root of the thread, that is). So find the root manually
instead.
2019-11-17 12:05:52 +02:00
Manos Pitsidianakis
1168804cf8
ui: add reflow property to Pager
...
For displaying format=flowed formatted text/plain attachments properly.
2019-11-16 20:23:07 +02:00
Manos Pitsidianakis
dfa83e486c
melib: add into_iter() for &StackVec<T>
2019-11-16 20:21:47 +02:00
Manos Pitsidianakis
b01b9ffbcb
text_processing: add reflow method() and enum to TextProcessing trait
...
Add
split_lines_reflow(&self, reflow: Reflow, width: Option<usize>) -> Vec<String>
method that, according to reflow (No reflow, FormatFlowed
or All) reflows the text.
FormatFlowed follows the rfc3676 - The Text/Plain Format and DelSp Parameters
https://tools.ietf.org/html/rfc3676
2019-11-16 20:19:02 +02:00
Manos Pitsidianakis
e1dec05881
ui/embed: don't increase cursor with multibyte chars
...
When waiting for a multibyte unicode codepoint to fill up, don't
increase cursor at all.
2019-11-16 20:00:42 +02:00
Manos Pitsidianakis
04e1137b36
melib: add "On ${date} ${author} wrote" heading in replies
2019-11-16 19:59:47 +02:00
Manos Pitsidianakis
bd4cf860fa
ui: persist row highlighting in CompactListing
2019-11-16 14:00:00 +02:00
Manos Pitsidianakis
f3a3668f3f
ui: correct redrawing when entering Execute command
2019-11-16 13:42:03 +02:00
Manos Pitsidianakis
0d03116e8a
ui: correct row highlighting in CompactListing
2019-11-16 13:41:33 +02:00
Manos Pitsidianakis
321be8555f
Cleanup startup error exit paths
...
Make startup methods return Results so that the main binary can exit
cleanly instead of using std::process::exit from arbitrary positions,
which exits the process immediately and doesn't run destructors.
2019-11-16 00:33:22 +02:00
Manos Pitsidianakis
aeb9d046a2
ui/ThreadListing: fix uninitialized array entry crash
...
If ThreadListing is uninitialized, self.locations is empty and
coordinates() would panic.
2019-11-15 23:23:14 +02:00
Manos Pitsidianakis
77936e0cd5
melib: add notmuch backend
...
Missing:
- Watching for updates functionality
- Using tags
- Search
2019-11-15 22:56:45 +02:00
Manos Pitsidianakis
7463248da8
melib: change BackendOp::set_flag() signature
2019-11-15 21:32:55 +02:00
Manos Pitsidianakis
ede512200b
conf: move FolderConf to melib
...
This will be needed to add notmuch-specific configuration settings in
the FolderConf struct in the next commit
2019-11-15 19:52:39 +02:00
Manos Pitsidianakis
8f36678abf
melib: make Backendfolder::children return slice
2019-11-14 17:55:24 +02:00
Manos Pitsidianakis
56cda63c83
Fix some warnings
2019-11-14 17:55:24 +02:00
Manos Pitsidianakis
c2da09de99
ui/sqlite3: insert account if non-existent
2019-11-12 22:20:20 +02:00
Manos Pitsidianakis
f83db67a38
melib/imap: don't stop IDLE session
...
Previous behaviour: connection with IDLE was stopped every 5 minutes to
poll the other threads. As a result messages received within that time
window when there was no IDLING were never received.
Current behaviour: polling is done in the main connection.
2019-11-12 22:18:00 +02:00
Manos Pitsidianakis
94152f7336
ui: add multiplier shortcuts to cursor movements
...
Prepend a cursor movement (Up/Down/PageUp/PageDown) with a multiplier
(e.g 23+Down, that is '2' then '3' then 'Down') to increase the
movement's length.
2019-11-12 22:14:44 +02:00
Manos Pitsidianakis
134178a74a
ui/sqlite3: add remove/update for RefreshEvent
...
Remove and/or update envelopes in sqlite3 db when the appropriate events
happen.
2019-11-12 13:09:43 +02:00
Manos Pitsidianakis
c6a4fcb959
ui: fix Account watching bug
...
Account::is_online(&mut self) should be called from ui/src/state.rs
only, since it launches the watcher threads when an account goes from
offline to online. If it's called from elsewhere the watcher threads
might not get launched ever.
2019-11-12 13:09:09 +02:00
Manos Pitsidianakis
c9c4e1ea60
ui/sqlite3: add has:attachment query
2019-11-11 22:59:37 +02:00
Manos Pitsidianakis
35e34d1c09
ui: add "is:" alias for "flags:" query
2019-11-11 22:48:39 +02:00
Manos Pitsidianakis
6ce88667c0
ui/sqlite3: add flag query support
2019-11-11 22:43:08 +02:00
Manos Pitsidianakis
dce1c39b48
ui: add mailcap support
2019-11-11 22:20:16 +02:00
Manos Pitsidianakis
9cd00cf53a
sqlite3: add accounts and folders table
2019-11-11 18:01:01 +02:00
Manos Pitsidianakis
1d6ef92a4f
ui: make StatusPanel grid growable
2019-11-11 17:59:36 +02:00
Manos Pitsidianakis
776dc107c2
Fix Pager::print_string() with empty string
2019-11-11 00:48:42 +02:00
Manos Pitsidianakis
5761f854e2
melib: Add FolderPermissions
...
permissions() method on BackendFolder and SetPermissions in
FolderOperation enum.
2019-11-11 00:47:23 +02:00
Manos Pitsidianakis
97e20b22a8
ui: update PlainListing
...
Remake PlainListing after CompactListing to add columns, filtering,
selection.
2019-11-10 23:04:11 +02:00
Manos Pitsidianakis
c1902f96b5
imap: add UIDVALIDITY check
...
On UIDVALIDITY change, discard cache and force rescan.
2019-11-10 23:02:23 +02:00
Manos Pitsidianakis
0cbc44fd0e
ui: exit contact add dialog with Esc in mail view
2019-11-10 13:33:56 +02:00
Manos Pitsidianakis
06d99c7f92
ui: Add save attachment command
...
use as `save-attachment ATTACHMENT_INDEX PATH`
2019-11-10 13:33:22 +02:00
Manos Pitsidianakis
580f0be8a4
imap: fix cases that would block connection
...
Fix blocking if TLS negotiation can't start
Fix blocking if IDLE connection dies.
2019-11-10 13:32:31 +02:00
Manos Pitsidianakis
a907b9c21d
Fix melib test errors
2019-11-09 18:10:22 +02:00
Manos Pitsidianakis
8b781cbbe0
melib: StackVec bounds fix
2019-11-09 17:46:07 +02:00
Manos Pitsidianakis
1bd343988e
ui: add horizontal scrolling in pager
...
It only took what, 3 years?
2019-11-09 17:45:23 +02:00
Manos Pitsidianakis
e600b0252f
text_processing: add line_break method
...
In preparation for format=flowed support, add a line_break method in the
text_processing Trait, now renamed from Graphemes to TextProcessing.
2019-11-09 17:44:22 +02:00
Manos Pitsidianakis
098982015b
ui/conversations: show all participating addresses in entry
...
Show all unique From: values of addresses in thread entries in
Conversations
2019-11-09 13:58:16 +02:00
Manos Pitsidianakis
36eccdf514
Add search documentation
2019-11-08 17:51:01 +02:00
Manos Pitsidianakis
74672f0807
ui: Add CacheType option in configuration
...
CacheType's value dictates which cache backend to use: none, or sqlite3
2019-11-08 17:51:01 +02:00