Commit Graph

494 Commits (12e4258ae42da5029e13b245ed6861db670fe4b4)

Author SHA1 Message Date
Manos Pitsidianakis 12e4258ae4
conf: add * glob expansion to subscribed_folders field
You can now do:
 subscribed_folders = [ "*", ]
2019-11-23 19:34:16 +02:00
Manos Pitsidianakis b327bee3e4
text_processing: add GlobMatch trait
Move GlobMatch trait from ui::mailcap to text_processing in order to use
it for glob matching folder paths in subscribed_folders field of
account configuration. See next commit.
2019-11-23 19:34:16 +02:00
Manos Pitsidianakis eecec551c1
Display watch thread errors to user
Show a proper notification with the error message to the user instead of
just logging it on debug-tracing.
2019-11-23 19:34:16 +02:00
Manos Pitsidianakis b8e4a35963
melib/imap: add default capabilities to SUPPORTED_CAPABILITIES 2019-11-23 19:34:16 +02:00
Manos Pitsidianakis 41a678c6ef
melib: make MailBackend::folders return Result
Change folders() signature:
-    fn folders(&self) -> FnvHashMap<FolderHash, Folder>;
+    fn folders(&self) -> Result<FnvHashMap<FolderHash, Folder>>;

Imap may not be online, therefore we need the ability to return an
error.
2019-11-23 17:47:24 +02:00
Manos Pitsidianakis 3d3ead02e9
bin: add --test-config flag
meli --test-config PATH tests a configuration file for syntax issues or missing options.

Caveat: right now undefined options/values do not return an error.
Backend specific options are also not validated.
2019-11-22 18:43:24 +02:00
Manos Pitsidianakis 1063bb73b5
shortcuts tidiness
- Unflatten shortcuts configuration table.
  Shortcuts now have to be defined in levels:
  [shortcuts.general]
  ...
  [shortcuts.pager]
  ...

- Add shortcuts for thread view
- Sort alphabetically in help view
2019-11-22 16:34:35 +02:00
Manos Pitsidianakis 678889d706
ui/threadview: add show_thread shortcut
Press 't' by default to toggle thread visibility
2019-11-22 16:22:52 +02:00
Manos Pitsidianakis f3c938d8c3
Prevent OOM abort when printing large strings 2019-11-22 14:17:09 +02:00
Manos Pitsidianakis 424b244bb7
fixup some TODO and FIXMEs 2019-11-22 13:59:00 +02:00
Manos Pitsidianakis 501f1a0e1e
pager: add minimum_width and split_lines_reflow
Add options to pager settings
2019-11-22 13:13:27 +02:00
Manos Pitsidianakis 022e1f437d
ui/pager: reflow on resize 2019-11-21 15:42:01 +02:00
Manos Pitsidianakis 3d52b1f1b7
ui: fix bracket mode end code typo
Thanks to Gert Hulselmans for noticing in 35c3017419
2019-11-19 23:41:12 +02:00
Manos Pitsidianakis 62bfe2a91f
ui: embed editor cleanups 2019-11-19 23:28:08 +02:00
Manos Pitsidianakis ce646abc7a
ui: add send confirmation dialog in compose tab
Confirm before sending mail
2019-11-19 23:28:08 +02:00
Manos Pitsidianakis 458f8da332
ui: fix bounds check in StatusBar 2019-11-19 20:40:28 +02:00
Manos Pitsidianakis 0cea6368d9
ui/embed: fix scrolling area issues 2019-11-19 20:39:43 +02:00
Manos Pitsidianakis f1588f6002
ui: shortcuts refactoring 2019-11-18 22:20:18 +02:00
Manos Pitsidianakis 8798d84e43
ui: update cached rows on row update in CompactListing 2019-11-18 20:55:52 +02:00
Manos Pitsidianakis 51628ac9d2
ui: move list_management mod to melib
list_management module includes some small functions to handle mailing
list metadata (List-* headers)
2019-11-18 20:37:48 +02:00
Manos Pitsidianakis 449a24d075
ui: ListActions changes
- Parse List-Post value like List-Unsubscribe: comma separated angle bracket limited list of <mailto:> or <url> values
- Check if List-Archive value is angle bracket delimited
2019-11-18 14:55:48 +02:00
Manos Pitsidianakis 590619de0e
ui/compose: remove thread view in reply composer
You don't need to have the thread in the composer anymore, since you can
just switch tabs to the actual thread.
2019-11-18 14:53:41 +02:00
Manos Pitsidianakis 31a86533c5
ui/pager: add Left/Right movements
Left/Right movements change the horizontal offset by (page width) / 3.
2019-11-18 14:50:08 +02:00
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 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 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 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 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 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 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 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