diff --git a/data/gresource.xml b/data/gresource.xml
index 1903a60..3fee5a3 100644
--- a/data/gresource.xml
+++ b/data/gresource.xml
@@ -48,6 +48,8 @@
icons/scalable/actions/tooth-minus-large-symbolic.svg
icons/scalable/actions/tooth-cross-large-symbolic.svg
icons/scalable/actions/tooth-address-book-new-symbolic.svg
+ icons/scalable/actions/tooth-eye-open-negative-filled-symbolic.svg
+ icons/scalable/actions/tooth-eye-not-looking-symbolic.svg
gtk/dropdown/icon.ui
gtk/dropdown/full.ui
diff --git a/data/icons/scalable/actions/tooth-eye-not-looking-symbolic.svg b/data/icons/scalable/actions/tooth-eye-not-looking-symbolic.svg
new file mode 100644
index 0000000..3dfa654
--- /dev/null
+++ b/data/icons/scalable/actions/tooth-eye-not-looking-symbolic.svg
@@ -0,0 +1,2 @@
+
+
diff --git a/data/icons/scalable/actions/tooth-eye-open-negative-filled-symbolic.svg b/data/icons/scalable/actions/tooth-eye-open-negative-filled-symbolic.svg
new file mode 100644
index 0000000..e904ea3
--- /dev/null
+++ b/data/icons/scalable/actions/tooth-eye-open-negative-filled-symbolic.svg
@@ -0,0 +1,2 @@
+
+
diff --git a/src/Dialogs/Composer/AttachmentsPage.vala b/src/Dialogs/Composer/AttachmentsPage.vala
index 1d5e306..7a436f1 100644
--- a/src/Dialogs/Composer/AttachmentsPage.vala
+++ b/src/Dialogs/Composer/AttachmentsPage.vala
@@ -32,6 +32,7 @@ public class Tooth.AttachmentsPage : ComposerPage {
public GLib.ListStore attachments;
public Adw.ToastOverlay toast_overlay;
public bool can_publish { get; set; default = false; }
+ public bool media_sensitive { get; set; default = false; }
public AttachmentsPage () {
Object (
@@ -75,12 +76,28 @@ public class Tooth.AttachmentsPage : ComposerPage {
icon_name = "tooth-plus-large-symbolic",
valign = Gtk.Align.CENTER,
halign = Gtk.Align.CENTER,
- tooltip_text = _("Add Media")
+ tooltip_text = _("Add Media"),
+ css_classes = {"flat"}
};
- add_media_action_button.add_css_class ("flat");
add_media_action_button.clicked.connect(show_file_selector);
+ var sensitive_media_button = new Gtk.ToggleButton() {
+ icon_name = "tooth-eye-open-negative-filled-symbolic",
+ valign = Gtk.Align.CENTER,
+ halign = Gtk.Align.CENTER,
+ tooltip_text = _("Mark media as sensitive"),
+ css_classes = {"flat"}
+ };
+ sensitive_media_button.bind_property ("active", this, "media_sensitive", GLib.BindingFlags.SYNC_CREATE, (b, src, ref target) => {
+ var sensitive_media_button_active = src.get_boolean ();
+ target.set_boolean (sensitive_media_button_active);
+ sensitive_media_button.icon_name = sensitive_media_button_active ? "tooth-eye-not-looking-symbolic" : "tooth-eye-open-negative-filled-symbolic";
+ sensitive_media_button.tooltip_text = sensitive_media_button_active ? _("Unmark media as sensitive") : _("Mark media as sensitive");
+ return true;
+ });
+
bottom_bar.pack_start (add_media_action_button);
+ bottom_bar.pack_start (sensitive_media_button);
// State stack
stack = new Adw.ViewStack ();
@@ -215,6 +232,10 @@ public class Tooth.AttachmentsPage : ComposerPage {
var attachment = attachments.get_item (i) as API.Attachment;
req.with_form_data ("media_ids[]", attachment.id);
}
+
+ if (media_sensitive) {
+ req.with_form_data ("sensitive", "true");
+ }
}
}
}