[gnome-builder/wip/gtk4-port] libide/editor: fixup editor page menus



commit c55ffa723e67b6488389c18a82fda643637c5d68
Author: Christian Hergert <chergert redhat com>
Date:   Wed Apr 6 21:47:07 2022 -0700

    libide/editor: fixup editor page menus

 src/libide/editor/gtk/menus.ui                | 36 +++++++++++++++++++++++++++
 src/libide/editor/ide-editor-page.c           |  5 ++++
 src/libide/editor/libide-editor.gresource.xml |  1 +
 src/plugins/project-tree/gtk/menus.ui         |  7 +++---
 4 files changed, 45 insertions(+), 4 deletions(-)
---
diff --git a/src/libide/editor/gtk/menus.ui b/src/libide/editor/gtk/menus.ui
new file mode 100644
index 000000000..c6c4a3457
--- /dev/null
+++ b/src/libide/editor/gtk/menus.ui
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+  <menu id="ide-editor-page-menu">
+    <section id="ide-editor-page-document-section">
+      <attribute name="label" translatable="yes">Document</attribute>
+      <item>
+        <attribute name="label" translatable="yes">Open in New Frame</attribute>
+      </item>
+      <item>
+        <attribute name="label" translatable="yes">Open in New Workspace</attribute>
+      </item>
+      <item>
+        <attribute name="label" translatable="yes">Print…</attribute>
+      </item>
+      <item>
+        <attribute name="label" translatable="yes">Open Preview</attribute>
+      </item>
+    </section>
+    <section id="ide-editor-page-properties-section">
+      <attribute name="after">ide-editor-page-document-section</attribute>
+      <item>
+        <attribute name="label" translatable="yes">Document Properties…</attribute>
+      </item>
+    </section>
+    <section id="ide-editor-page-reveal-section"/>
+    <section id="ide-editor-page-save-section">
+      <attribute name="after">ide-editor-page-properties-section</attribute>
+      <item>
+        <attribute name="label" translatable="yes">Save</attribute>
+      </item>
+      <item>
+        <attribute name="label" translatable="yes">Save As</attribute>
+      </item>
+    </section>
+  </menu>
+</interface>
diff --git a/src/libide/editor/ide-editor-page.c b/src/libide/editor/ide-editor-page.c
index c41564ed7..5914f1e1d 100644
--- a/src/libide/editor/ide-editor-page.c
+++ b/src/libide/editor/ide-editor-page.c
@@ -332,9 +332,14 @@ ide_editor_page_init (IdeEditorPage *self)
 {
   GtkSourceGutterRenderer *renderer;
   GtkSourceGutter *gutter;
+  GMenu *menu;
 
   gtk_widget_init_template (GTK_WIDGET (self));
 
+  /* Load menus for editor pages */
+  menu = ide_application_get_menu_by_id (IDE_APPLICATION_DEFAULT, "ide-editor-page-menu");
+  panel_widget_set_menu_model (PANEL_WIDGET (self), G_MENU_MODEL (menu));
+
   /* Until we get the omnigutter in place */
   gutter = gtk_source_view_get_gutter (GTK_SOURCE_VIEW (self->view),
                                        GTK_TEXT_WINDOW_LEFT);
diff --git a/src/libide/editor/libide-editor.gresource.xml b/src/libide/editor/libide-editor.gresource.xml
index f59bc8ada..8ceb752e9 100644
--- a/src/libide/editor/libide-editor.gresource.xml
+++ b/src/libide/editor/libide-editor.gresource.xml
@@ -3,6 +3,7 @@
   <gresource prefix="/org/gnome/libide-editor/">
     <file preprocess="xml-stripblanks">ide-editor-page.ui</file>
     <file preprocess="xml-stripblanks">ide-editor-workspace.ui</file>
+    <file preprocess="xml-stripblanks">gtk/menus.ui</file>
     <file>style.css</file>
   </gresource>
 </gresources>
diff --git a/src/plugins/project-tree/gtk/menus.ui b/src/plugins/project-tree/gtk/menus.ui
index 41f9a6705..41c089e7a 100644
--- a/src/plugins/project-tree/gtk/menus.ui
+++ b/src/plugins/project-tree/gtk/menus.ui
@@ -78,10 +78,9 @@
       </submenu>
     </section>
   </menu>
-  <menu id="ide-editor-page-document-menu">
-    <section id="ide-frame-menu-reveal">
-      <attribute name="after">editor-document-preferences-section</attribute>
-      <attribute name="before">editor-document-save-section</attribute>
+  <menu id="ide-editor-page-menu">
+    <section id="ide-editor-page-reveal-section">
+      <attribute name="before">ide-editor-page-save-section</attribute>
       <item>
         <attribute name="id">project-tree-reveal</attribute>
         <attribute name="label" translatable="yes">Reveal in Project Tree</attribute>


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]