[epiphany] Add application manager to menu popover



commit 2ba22d1a92d013e69966e3dfbf6b4baa4020ff05
Author: Jan-Michael Brummer <jan brummer tabos org>
Date:   Wed Dec 19 11:50:14 2018 +0100

    Add application manager to menu popover
    
    Make application manager more prominent for the user, so he can also uninstall his web apps within the 
browser.
    
    Fixes: https://gitlab.gnome.org/GNOME/epiphany/issues/267

 src/ephy-header-bar.c                  |  2 ++
 src/ephy-window.c                      |  2 ++
 src/resources/gtk/page-menu-popover.ui |  8 ++++++++
 src/window-commands.c                  | 17 +++++++++++++++++
 src/window-commands.h                  |  3 +++
 5 files changed, 32 insertions(+)
---
diff --git a/src/ephy-header-bar.c b/src/ephy-header-bar.c
index 109a2f3e7..f169c0548 100644
--- a/src/ephy-header-bar.c
+++ b/src/ephy-header-bar.c
@@ -215,6 +215,7 @@ ephy_header_bar_constructed (GObject *object)
     gtk_widget_destroy (GTK_WIDGET (gtk_builder_get_object (builder, "export-bookmarks-button")));
     gtk_widget_destroy (GTK_WIDGET (gtk_builder_get_object (builder, "save-as-application-separator")));
     gtk_widget_destroy (GTK_WIDGET (gtk_builder_get_object (builder, "save-as-application-button")));
+    gtk_widget_destroy (GTK_WIDGET (gtk_builder_get_object (builder, "application-manager-button")));
     gtk_widget_destroy (GTK_WIDGET (gtk_builder_get_object (builder, "override-text-encoding-separator")));
     gtk_widget_destroy (GTK_WIDGET (gtk_builder_get_object (builder, "override-text-encoding-button")));
     gtk_widget_destroy (GTK_WIDGET (gtk_builder_get_object (builder, "keyboard-shortcuts-button")));
@@ -222,6 +223,7 @@ ephy_header_bar_constructed (GObject *object)
   } else if (ephy_is_running_inside_flatpak ()) {
     gtk_widget_destroy (GTK_WIDGET (gtk_builder_get_object (builder, "save-as-application-separator")));
     gtk_widget_destroy (GTK_WIDGET (gtk_builder_get_object (builder, "save-as-application-button")));
+    gtk_widget_destroy (GTK_WIDGET (gtk_builder_get_object (builder, "application-manager-button")));
   }
   gtk_menu_button_set_popover (GTK_MENU_BUTTON (button), page_menu_popover);
   g_object_unref (builder);
diff --git a/src/ephy-window.c b/src/ephy-window.c
index 6be54a3d0..0dcc2654b 100644
--- a/src/ephy-window.c
+++ b/src/ephy-window.c
@@ -85,6 +85,7 @@ const struct {
   { "win.open", { "<Primary>O", NULL } },
   { "win.save-as", { "<shift><Primary>S", "<Primary>S", NULL } },
   { "win.save-as-application", { "<shift><Primary>A", NULL } },
+  { "win.open-application-manager", { "<shift><Primary>C", NULL } },
   { "win.undo", { "<Primary>Z", NULL } },
   { "win.redo", { "<shift><Primary>Z", NULL } },
   { "win.copy", { "<Primary>C", NULL } },
@@ -774,6 +775,7 @@ static const GActionEntry window_entries [] =
   { "open", window_cmd_open },
   { "save-as", window_cmd_save_as },
   { "save-as-application", window_cmd_save_as_application },
+  { "open-application-manager", window_cmd_open_application_manager },
   { "undo", window_cmd_undo },
   { "redo", window_cmd_redo },
   { "cut", window_cmd_cut },
diff --git a/src/resources/gtk/page-menu-popover.ui b/src/resources/gtk/page-menu-popover.ui
index da0581f63..28664e133 100644
--- a/src/resources/gtk/page-menu-popover.ui
+++ b/src/resources/gtk/page-menu-popover.ui
@@ -212,6 +212,14 @@
             <property name="visible">True</property>
           </object>
         </child>
+        <child>
+          <object class="GtkModelButton" id="application-manager-button">
+            <property name="can_focus">True</property>
+            <property name="text" translatable="yes">Open Appli_cation Manager</property>
+            <property name="action-name">win.open-application-manager</property>
+            <property name="visible">True</property>
+          </object>
+        </child>
         <!-- FRAGILE: These buttons are manually removed for app mode in ephy-header-bar.c. -->
         <child>
           <object class="GtkSeparator" id="override-text-encoding-separator">
diff --git a/src/window-commands.c b/src/window-commands.c
index a0706a086..4ca50374c 100644
--- a/src/window-commands.c
+++ b/src/window-commands.c
@@ -2519,3 +2519,20 @@ window_cmd_toggle_reader_mode (GSimpleAction *action,
 
   ephy_web_view_toggle_reader_mode (web_view, !active);
 }
+
+void
+window_cmd_open_application_manager (GSimpleAction *action,
+                                     GVariant      *parameter,
+                                     gpointer       user_data)
+{
+  EphyWindow *window = EPHY_WINDOW (user_data);
+  EphyEmbed *embed;
+  EphyWebView *web_view;
+
+  embed = ephy_embed_container_get_active_child (EPHY_EMBED_CONTAINER (window));
+  g_assert (embed != NULL);
+
+  web_view = ephy_embed_get_web_view (embed);
+
+  ephy_web_view_load_url (web_view, "about:applications");
+}
diff --git a/src/window-commands.h b/src/window-commands.h
index a961d7418..9a52cb1cd 100644
--- a/src/window-commands.h
+++ b/src/window-commands.h
@@ -206,5 +206,8 @@ void window_cmd_change_show_tab_state           (GSimpleAction *action,
 void window_cmd_toggle_reader_mode              (GSimpleAction *action,
                                                  GVariant      *parameter,
                                                  gpointer       user_data);
+void window_cmd_open_application_manager        (GSimpleAction *action,
+                                                 GVariant      *parameter,
+                                                 gpointer       user_data);
 
 G_END_DECLS


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