[fractal/fractal-next] media-viewer: Don't use same menu as room messages
- From: Julian Sparber <jsparber src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [fractal/fractal-next] media-viewer: Don't use same menu as room messages
- Date: Mon, 17 Jan 2022 23:16:32 +0000 (UTC)
commit e8d7081ea92544289ba0c529a577ca0d97efd071
Author: Kévin Commaille <zecakeh tedomum fr>
Date: Mon Jan 17 14:13:01 2022 +0100
media-viewer: Don't use same menu as room messages
data/resources/ui/event-menu.ui | 16 +++++++++++++++-
data/resources/ui/media-viewer.ui | 1 +
src/session/content/room_history/item_row.rs | 2 +-
src/session/content/room_history/message_row/text.rs | 2 +-
src/session/media_viewer.rs | 3 +--
src/session/room/event_actions.rs | 18 +++++++++++++++---
6 files changed, 34 insertions(+), 8 deletions(-)
---
diff --git a/data/resources/ui/event-menu.ui b/data/resources/ui/event-menu.ui
index 30c68073..4970f0e6 100644
--- a/data/resources/ui/event-menu.ui
+++ b/data/resources/ui/event-menu.ui
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<interface>
- <menu id="menu_model">
+ <menu id="message_menu_model">
<section>
<item>
<attribute name="label" translatable="yes">_Reply</attribute>
@@ -61,4 +61,18 @@
</item>
</section>
</menu>
+ <menu id="media_menu_model">
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">_Copy Image</attribute>
+ <attribute name="action">event.copy-image</attribute>
+ <attribute name="hidden-when">action-missing</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">S_ave Image</attribute>
+ <attribute name="action">event.save-image</attribute>
+ <attribute name="hidden-when">action-missing</attribute>
+ </item>
+ </section>
+ </menu>
</interface>
diff --git a/data/resources/ui/media-viewer.ui b/data/resources/ui/media-viewer.ui
index 3102ddc3..05efe055 100644
--- a/data/resources/ui/media-viewer.ui
+++ b/data/resources/ui/media-viewer.ui
@@ -73,6 +73,7 @@
<child type="end">
<object class="GtkMenuButton" id="menu_full">
<property name="icon-name">view-more-symbolic</property>
+ <property name="menu-model" bind-source="MediaViewer" bind-property="context-menu"
bind-flags="sync-create"/>
</object>
</child>
<child type="end">
diff --git a/src/session/content/room_history/item_row.rs b/src/session/content/room_history/item_row.rs
index 5f48008f..1b0c26d5 100644
--- a/src/session/content/room_history/item_row.rs
+++ b/src/session/content/room_history/item_row.rs
@@ -117,7 +117,7 @@ impl ItemRow {
match item.type_() {
ItemType::Event(event) => {
if self.context_menu().is_none() {
- self.set_context_menu(Some(Self::event_menu_model()));
+ self.set_context_menu(Some(Self::event_message_menu_model()));
}
self.set_event_actions(Some(event));
diff --git a/src/session/content/room_history/message_row/text.rs
b/src/session/content/room_history/message_row/text.rs
index 81e1a0d4..c23a5a22 100644
--- a/src/session/content/room_history/message_row/text.rs
+++ b/src/session/content/room_history/message_row/text.rs
@@ -260,7 +260,7 @@ fn set_label_styles(w: >k::Label) {
w.set_valign(gtk::Align::Start);
w.set_halign(gtk::Align::Fill);
w.set_selectable(true);
- w.set_extra_menu(Some(ItemRow::event_menu_model()));
+ w.set_extra_menu(Some(ItemRow::event_message_menu_model()));
}
fn create_widget_for_html_block(block: &HtmlBlock) -> gtk::Widget {
diff --git a/src/session/media_viewer.rs b/src/session/media_viewer.rs
index 5fd7e52c..76bec06c 100644
--- a/src/session/media_viewer.rs
+++ b/src/session/media_viewer.rs
@@ -133,8 +133,7 @@ mod imp {
fn constructed(&self, obj: &Self::Type) {
self.parent_constructed(obj);
- let menu_model = Some(Self::Type::event_menu_model());
- self.menu_full.set_menu_model(menu_model);
+ let menu_model = Some(Self::Type::event_media_menu_model());
obj.set_context_menu(menu_model);
// Bind `fullscreened` to the window property of the same name.
diff --git a/src/session/room/event_actions.rs b/src/session/room/event_actions.rs
index 3deccfb9..bf543b02 100644
--- a/src/session/room/event_actions.rs
+++ b/src/session/room/event_actions.rs
@@ -24,12 +24,24 @@ where
Self: glib::clone::Downgrade,
<Self as glib::clone::Downgrade>::Weak: glib::clone::Upgrade<Strong = Self>,
{
- /// The `MenuModel` for common event actions.
- fn event_menu_model() -> &'static gio::MenuModel {
+ /// The `MenuModel` for common message event actions.
+ fn event_message_menu_model() -> &'static gio::MenuModel {
static MODEL: Lazy<MenuModelSendSync> = Lazy::new(|| {
MenuModelSendSync(
gtk::Builder::from_resource("/org/gnome/FractalNext/event-menu.ui")
- .object::<gio::MenuModel>("menu_model")
+ .object::<gio::MenuModel>("message_menu_model")
+ .unwrap(),
+ )
+ });
+ &MODEL.0
+ }
+
+ /// The `MenuModel` for common media message event actions.
+ fn event_media_menu_model() -> &'static gio::MenuModel {
+ static MODEL: Lazy<MenuModelSendSync> = Lazy::new(|| {
+ MenuModelSendSync(
+ gtk::Builder::from_resource("/org/gnome/FractalNext/event-menu.ui")
+ .object::<gio::MenuModel>("media_menu_model")
.unwrap(),
)
});
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]