[gnome-panel/wip/muktupavels/add-to-panel: 2/2] context-menu: switch to new Add to Panel window
- From: Alberts Muktupāvels <muktupavels src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-panel/wip/muktupavels/add-to-panel: 2/2] context-menu: switch to new Add to Panel window
- Date: Sat, 18 Apr 2020 14:43:02 +0000 (UTC)
commit 83c0aa225004c0bfeafb2c140fe48eff4045cb1a
Author: Alberts Muktupāvels <alberts muktupavels gmail com>
Date: Sat Apr 18 17:25:54 2020 +0300
context-menu: switch to new Add to Panel window
gnome-panel/Makefile.am | 3 -
gnome-panel/gp-applet-manager.c | 6 +
gnome-panel/gp-applet-manager.h | 2 +
gnome-panel/panel-addto-dialog.c | 818 ------------------------------------
gnome-panel/panel-addto-dialog.h | 39 --
gnome-panel/panel-addto-dialog.ui | 184 --------
gnome-panel/panel-applets-manager.c | 8 +
gnome-panel/panel-applets-manager.h | 3 +
gnome-panel/panel-context-menu.c | 47 ++-
gnome-panel/panel.gresource.xml | 1 -
po/POTFILES.in | 2 -
11 files changed, 63 insertions(+), 1050 deletions(-)
---
diff --git a/gnome-panel/Makefile.am b/gnome-panel/Makefile.am
index 5d3c0a63c..373e32062 100644
--- a/gnome-panel/Makefile.am
+++ b/gnome-panel/Makefile.am
@@ -44,7 +44,6 @@ panel_sources = \
panel-a11y.c \
panel-bindings.c \
panel-lockdown.c \
- panel-addto-dialog.c \
panel-layout.c \
panel-object-loader.c \
panel-applet-info.c
@@ -69,7 +68,6 @@ panel_headers = \
panel-enums.h \
panel-enums-gsettings.h \
panel-lockdown.h \
- panel-addto-dialog.h \
panel-icon-names.h \
panel-layout.h \
panel-object-loader.h \
@@ -156,7 +154,6 @@ BUILT_SOURCES = \
ui_FILES = \
gp-properties-dialog.ui \
- panel-addto-dialog.ui \
panel-run-dialog.ui
panel-resources.c: panel.gresource.xml $(shell $(GLIB_COMPILE_RESOURCES) --sourcedir=$(srcdir)
--generate-dependencies $(srcdir)/panel.gresource.xml)
diff --git a/gnome-panel/gp-applet-manager.c b/gnome-panel/gp-applet-manager.c
index 358cdcdea..9744f3ef2 100644
--- a/gnome-panel/gp-applet-manager.c
+++ b/gnome-panel/gp-applet-manager.c
@@ -210,6 +210,12 @@ gp_applet_manager_new (void)
return g_object_new (GP_TYPE_APPLET_MANAGER, NULL);
}
+GpModuleManager *
+gp_applet_manager_get_module_manager (GpAppletManager *self)
+{
+ return self->manager;
+}
+
GList *
gp_applet_manager_get_applets (GpAppletManager *self)
{
diff --git a/gnome-panel/gp-applet-manager.h b/gnome-panel/gp-applet-manager.h
index 64c1793c2..03f37c696 100644
--- a/gnome-panel/gp-applet-manager.h
+++ b/gnome-panel/gp-applet-manager.h
@@ -28,6 +28,8 @@ G_DECLARE_FINAL_TYPE (GpAppletManager, gp_applet_manager,
GpAppletManager *gp_applet_manager_new (void);
+GpModuleManager *gp_applet_manager_get_module_manager (GpAppletManager *self);
+
GList *gp_applet_manager_get_applets (GpAppletManager *self);
gboolean gp_applet_manager_factory_activate (GpAppletManager *self,
diff --git a/gnome-panel/panel-applets-manager.c b/gnome-panel/panel-applets-manager.c
index 0c89892bc..8fff46b83 100644
--- a/gnome-panel/panel-applets-manager.c
+++ b/gnome-panel/panel-applets-manager.c
@@ -46,6 +46,14 @@ _panel_applets_managers_ensure_loaded (void)
manager = gp_applet_manager_new ();
}
+GpModuleManager *
+panel_applets_maanger_get_module_manager (void)
+{
+ _panel_applets_managers_ensure_loaded ();
+
+ return gp_applet_manager_get_module_manager (manager);
+}
+
GList *
panel_applets_manager_get_applets (void)
{
diff --git a/gnome-panel/panel-applets-manager.h b/gnome-panel/panel-applets-manager.h
index bf6826528..8efe14061 100644
--- a/gnome-panel/panel-applets-manager.h
+++ b/gnome-panel/panel-applets-manager.h
@@ -23,12 +23,15 @@
#include <glib-object.h>
+#include "gp-module-manager.h"
#include "libgnome-panel/gp-initial-setup-dialog-private.h"
#include "panel-applet-frame.h"
#include "panel-applet-info.h"
G_BEGIN_DECLS
+GpModuleManager *panel_applets_maanger_get_module_manager (void);
+
GList *panel_applets_manager_get_applets (void);
gboolean panel_applets_manager_factory_activate (const gchar *iid);
diff --git a/gnome-panel/panel-context-menu.c b/gnome-panel/panel-context-menu.c
index d56d2de4b..1af819bc1 100644
--- a/gnome-panel/panel-context-menu.c
+++ b/gnome-panel/panel-context-menu.c
@@ -37,10 +37,11 @@
#include "panel-util.h"
#include "panel.h"
+#include "gp-add-applet-window.h"
#include "gp-properties-dialog.h"
+#include "panel-applets-manager.h"
#include "panel-layout.h"
#include "panel-lockdown.h"
-#include "panel-addto-dialog.h"
#include "panel-icon-names.h"
static void
@@ -129,6 +130,44 @@ add_menu_separator (GtkWidget *menu)
return menuitem;
}
+static void
+add_applet_dialog_destroy_cb (GtkWidget *dialog,
+ PanelToplevel *toplevel)
+{
+ panel_toplevel_pop_autohide_disabler (toplevel);
+ g_object_set_data (G_OBJECT (toplevel), "add-applet-dialog", NULL);
+}
+
+static void
+add_to_panel_activate_cb (GtkMenuItem *menuitem,
+ PanelToplevel *toplevel)
+{
+ GtkWidget *dialog;
+
+ dialog = g_object_get_data (G_OBJECT (toplevel), "add-applet-dialog");
+
+ if (dialog == NULL)
+ {
+ GpModuleManager *manager;
+
+ manager = panel_applets_maanger_get_module_manager ();
+ dialog = gp_add_applet_window_new (manager, toplevel);
+
+ g_signal_connect (dialog, "destroy",
+ G_CALLBACK (add_applet_dialog_destroy_cb),
+ toplevel);
+
+ g_object_set_data_full (G_OBJECT (toplevel),
+ "add-applet-dialog",
+ dialog,
+ (GDestroyNotify) gtk_widget_destroy);
+
+ panel_toplevel_push_autohide_disabler (toplevel);
+ }
+
+ gtk_window_present (GTK_WINDOW (dialog));
+}
+
static void
panel_context_menu_build_edition (PanelWidget *panel_widget,
GtkWidget *menu)
@@ -138,8 +177,10 @@ panel_context_menu_build_edition (PanelWidget *panel_widget,
menuitem = gtk_menu_item_new_with_mnemonic (_("_Add to Panel..."));
gtk_widget_show (menuitem);
gtk_menu_shell_append (GTK_MENU_SHELL (menu), menuitem);
- g_signal_connect (G_OBJECT (menuitem), "activate",
- G_CALLBACK (panel_addto_present), panel_widget);
+ g_signal_connect (menuitem,
+ "activate",
+ G_CALLBACK (add_to_panel_activate_cb),
+ panel_widget->toplevel);
if (!panel_layout_is_writable ())
gtk_widget_set_sensitive (menuitem, FALSE);
diff --git a/gnome-panel/panel.gresource.xml b/gnome-panel/panel.gresource.xml
index 9f02f6598..e455a157c 100644
--- a/gnome-panel/panel.gresource.xml
+++ b/gnome-panel/panel.gresource.xml
@@ -11,7 +11,6 @@
</gresource>
<gresource prefix="/org/gnome/panel">
<file compressed="true">gp-properties-dialog.ui</file>
- <file compressed="true">panel-addto-dialog.ui</file>
<file compressed="true">panel-run-dialog.ui</file>
</gresource>
</gresources>
diff --git a/po/POTFILES.in b/po/POTFILES.in
index 1da75721f..cd0e4d562 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -17,8 +17,6 @@ gnome-panel/gp-properties-dialog.c
gnome-panel/gp-properties-dialog.ui
gnome-panel/libpanel-util/panel-error.c
gnome-panel/libpanel-util/panel-show.c
-gnome-panel/panel-addto-dialog.c
-gnome-panel/panel-addto-dialog.ui
gnome-panel/panel-applet-frame.c
gnome-panel/panel-bindings.c
gnome-panel/panel.c
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]