ui: save sent messages to Sent folder

embed
Manos Pitsidianakis 2019-04-10 18:57:09 +03:00
parent 8149f5712f
commit 42a512d010
Signed by: Manos Pitsidianakis
GPG Key ID: 73627C2F690DF710
3 changed files with 26 additions and 1 deletions

View File

@ -258,7 +258,8 @@ impl Component for Composer {
};
if !self.initialized {
if !self.draft.headers().contains_key("From") {
if !self.draft.headers().contains_key("From") || self.draft.headers()["From"].is_empty()
{
self.draft.headers_mut().insert(
"From".into(),
get_display_name(context, self.account_cursor),
@ -555,6 +556,24 @@ impl Component for Composer {
stdin
.write_all(draft.as_bytes())
.expect("Failed to write to stdin");
if let Err(e) = context.accounts[self.account_cursor].save(
draft.as_bytes(),
&context.accounts[self.account_cursor]
.settings
.conf()
.sent_folder(),
) {
if cfg!(feature = "debug_log") {
eprintln!("{:?} could not save sent msg", e);
}
context.replies.push_back(UIEvent {
id: 0,
event_type: UIEventType::Notification(
Some("Could not save in 'Sent' folder.".into()),
e.into(),
),
});
}
}
context.replies.push_back(UIEvent {
id: 0,

View File

@ -122,6 +122,9 @@ impl FileAccount {
pub fn index(&self) -> IndexStyle {
self.index
}
pub fn sent_folder(&self) -> &str {
self.sent_folder.as_str()
}
pub fn html_filter(&self) -> Option<&str> {
self.html_filter.as_ref().map(|f| f.as_str())
}

View File

@ -351,6 +351,9 @@ impl Account {
self.backend
.save(&finalize.as_bytes(), &self.settings.conf.draft_folder)
}
pub fn save(&self, bytes: &[u8], folder: &str) -> Result<()> {
self.backend.save(bytes, folder)
}
pub fn iter_mailboxes<'a>(&'a self) -> MailboxIterator<'a> {
MailboxIterator {
folders: &self.folders,