mirror of
https://git.meli.delivery/meli/meli
synced 2024-11-10 19:10:57 +00:00
Add toggle encrypt action in composer
Does nothing for now, will be used in a future commit.
This commit is contained in:
parent
5d968b7c40
commit
08df7f39b2
@ -542,6 +542,19 @@ define_commands!([
|
|||||||
}
|
}
|
||||||
)
|
)
|
||||||
},
|
},
|
||||||
|
{ tags: ["toggle encrypt"],
|
||||||
|
desc: "toggle encryption for this draft",
|
||||||
|
tokens: &[One(Literal("toggle")), One(Literal("encrypt"))],
|
||||||
|
parser:(
|
||||||
|
fn toggle_encrypt(input: &[u8]) -> IResult<&[u8], Action> {
|
||||||
|
let (input, _) = tag("toggle")(input)?;
|
||||||
|
let (input, _) = is_a(" ")(input)?;
|
||||||
|
let (input, _) = tag("encrypt")(input)?;
|
||||||
|
let (input, _) = eof(input)?;
|
||||||
|
Ok((input, Compose(ToggleEncrypt)))
|
||||||
|
}
|
||||||
|
)
|
||||||
|
},
|
||||||
{ tags: ["create-mailbox "],
|
{ tags: ["create-mailbox "],
|
||||||
desc: "create-mailbox ACCOUNT MAILBOX_PATH",
|
desc: "create-mailbox ACCOUNT MAILBOX_PATH",
|
||||||
tokens: &[One(Literal("create-mailbox")), One(AccountName), One(MailboxPath)],
|
tokens: &[One(Literal("create-mailbox")), One(AccountName), One(MailboxPath)],
|
||||||
@ -765,7 +778,13 @@ fn listing_action(input: &[u8]) -> IResult<&[u8], Action> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fn compose_action(input: &[u8]) -> IResult<&[u8], Action> {
|
fn compose_action(input: &[u8]) -> IResult<&[u8], Action> {
|
||||||
alt((add_attachment, remove_attachment, toggle_sign, save_draft))(input)
|
alt((
|
||||||
|
add_attachment,
|
||||||
|
remove_attachment,
|
||||||
|
toggle_sign,
|
||||||
|
toggle_encrypt,
|
||||||
|
save_draft,
|
||||||
|
))(input)
|
||||||
}
|
}
|
||||||
|
|
||||||
fn account_action(input: &[u8]) -> IResult<&[u8], Action> {
|
fn account_action(input: &[u8]) -> IResult<&[u8], Action> {
|
||||||
|
@ -81,6 +81,7 @@ pub enum ComposeAction {
|
|||||||
RemoveAttachment(usize),
|
RemoveAttachment(usize),
|
||||||
SaveDraft,
|
SaveDraft,
|
||||||
ToggleSign,
|
ToggleSign,
|
||||||
|
ToggleEncrypt,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Debug)]
|
#[derive(Debug)]
|
||||||
|
@ -81,6 +81,7 @@ pub struct Composer {
|
|||||||
embed_area: Area,
|
embed_area: Area,
|
||||||
embed: Option<EmbedStatus>,
|
embed: Option<EmbedStatus>,
|
||||||
sign_mail: ToggleFlag,
|
sign_mail: ToggleFlag,
|
||||||
|
encrypt_mail: ToggleFlag,
|
||||||
dirty: bool,
|
dirty: bool,
|
||||||
has_changes: bool,
|
has_changes: bool,
|
||||||
initialized: bool,
|
initialized: bool,
|
||||||
@ -103,6 +104,7 @@ impl Default for Composer {
|
|||||||
|
|
||||||
mode: ViewMode::Edit,
|
mode: ViewMode::Edit,
|
||||||
sign_mail: ToggleFlag::Unset,
|
sign_mail: ToggleFlag::Unset,
|
||||||
|
encrypt_mail: ToggleFlag::Unset,
|
||||||
dirty: true,
|
dirty: true,
|
||||||
has_changes: false,
|
has_changes: false,
|
||||||
embed_area: ((0, 0), (0, 0)),
|
embed_area: ((0, 0), (0, 0)),
|
||||||
@ -451,9 +453,15 @@ impl Composer {
|
|||||||
None,
|
None,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
if attachments_no == 0 {
|
if self.encrypt_mail.is_true() {
|
||||||
write_string_to_grid(
|
write_string_to_grid(
|
||||||
"no attachments",
|
&format!(
|
||||||
|
"☑ encrypt with {}",
|
||||||
|
account_settings!(context[self.account_hash].pgp.encrypt_key)
|
||||||
|
.as_ref()
|
||||||
|
.map(|s| s.as_str())
|
||||||
|
.unwrap_or("default key")
|
||||||
|
),
|
||||||
grid,
|
grid,
|
||||||
theme_default.fg,
|
theme_default.fg,
|
||||||
theme_default.bg,
|
theme_default.bg,
|
||||||
@ -463,7 +471,7 @@ impl Composer {
|
|||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
write_string_to_grid(
|
write_string_to_grid(
|
||||||
&format!("{} attachments ", attachments_no),
|
"☐ don't encrypt",
|
||||||
grid,
|
grid,
|
||||||
theme_default.fg,
|
theme_default.fg,
|
||||||
theme_default.bg,
|
theme_default.bg,
|
||||||
@ -471,6 +479,27 @@ impl Composer {
|
|||||||
(pos_inc(upper_left!(area), (0, 2)), bottom_right!(area)),
|
(pos_inc(upper_left!(area), (0, 2)), bottom_right!(area)),
|
||||||
None,
|
None,
|
||||||
);
|
);
|
||||||
|
}
|
||||||
|
if attachments_no == 0 {
|
||||||
|
write_string_to_grid(
|
||||||
|
"no attachments",
|
||||||
|
grid,
|
||||||
|
theme_default.fg,
|
||||||
|
theme_default.bg,
|
||||||
|
theme_default.attrs,
|
||||||
|
(pos_inc(upper_left!(area), (0, 3)), bottom_right!(area)),
|
||||||
|
None,
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
write_string_to_grid(
|
||||||
|
&format!("{} attachments ", attachments_no),
|
||||||
|
grid,
|
||||||
|
theme_default.fg,
|
||||||
|
theme_default.bg,
|
||||||
|
theme_default.attrs,
|
||||||
|
(pos_inc(upper_left!(area), (0, 3)), bottom_right!(area)),
|
||||||
|
None,
|
||||||
|
);
|
||||||
for (i, a) in self.draft.attachments().iter().enumerate() {
|
for (i, a) in self.draft.attachments().iter().enumerate() {
|
||||||
if let Some(name) = a.content_type().name() {
|
if let Some(name) = a.content_type().name() {
|
||||||
write_string_to_grid(
|
write_string_to_grid(
|
||||||
@ -485,7 +514,7 @@ impl Composer {
|
|||||||
theme_default.fg,
|
theme_default.fg,
|
||||||
theme_default.bg,
|
theme_default.bg,
|
||||||
theme_default.attrs,
|
theme_default.attrs,
|
||||||
(pos_inc(upper_left!(area), (0, 3 + i)), bottom_right!(area)),
|
(pos_inc(upper_left!(area), (0, 4 + i)), bottom_right!(area)),
|
||||||
None,
|
None,
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
@ -495,7 +524,7 @@ impl Composer {
|
|||||||
theme_default.fg,
|
theme_default.fg,
|
||||||
theme_default.bg,
|
theme_default.bg,
|
||||||
theme_default.attrs,
|
theme_default.attrs,
|
||||||
(pos_inc(upper_left!(area), (0, 3 + i)), bottom_right!(area)),
|
(pos_inc(upper_left!(area), (0, 4 + i)), bottom_right!(area)),
|
||||||
None,
|
None,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@ -523,6 +552,11 @@ impl Component for Composer {
|
|||||||
context[self.account_hash].pgp.auto_sign
|
context[self.account_hash].pgp.auto_sign
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
if self.encrypt_mail.is_unset() {
|
||||||
|
self.encrypt_mail = ToggleFlag::InternalVal(*account_settings!(
|
||||||
|
context[self.account_hash].pgp.auto_encrypt
|
||||||
|
));
|
||||||
|
}
|
||||||
if !self.draft.headers().contains_key("From") || self.draft.headers()["From"].is_empty()
|
if !self.draft.headers().contains_key("From") || self.draft.headers()["From"].is_empty()
|
||||||
{
|
{
|
||||||
self.draft.set_header(
|
self.draft.set_header(
|
||||||
@ -1323,6 +1357,12 @@ impl Component for Composer {
|
|||||||
self.dirty = true;
|
self.dirty = true;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
Action::Compose(ComposeAction::ToggleEncrypt) => {
|
||||||
|
let is_true = self.encrypt_mail.is_true();
|
||||||
|
self.encrypt_mail = ToggleFlag::from(!is_true);
|
||||||
|
self.dirty = true;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
_ => {}
|
_ => {}
|
||||||
},
|
},
|
||||||
_ => {}
|
_ => {}
|
||||||
|
Loading…
Reference in New Issue
Block a user