[gedit/wip/redesign2: 24/28] Remove UI Manager left overs
- From: Ignacio Casal Quinteiro <icq src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gedit/wip/redesign2: 24/28] Remove UI Manager left overs
- Date: Mon, 6 Jan 2014 20:27:11 +0000 (UTC)
commit 70735305e3640fe07dcb1d5eb32e9883de34ea97
Author: Ignacio Casal Quinteiro <icq gnome org>
Date: Sun Jan 5 17:16:00 2014 +0100
Remove UI Manager left overs
gedit/gedit-ui-fallback.xml | 52 -------
gedit/gedit-ui.xml | 74 ---------
gedit/gedit-window-private.h | 7 +-
gedit/gedit-window.c | 347 ------------------------------------------
gedit/gedit-window.h | 2 -
gedit/gedit.gresource.xml | 2 -
6 files changed, 1 insertions(+), 483 deletions(-)
---
diff --git a/gedit/gedit-window-private.h b/gedit/gedit-window-private.h
index a5229f7..b462b2f 100644
--- a/gedit/gedit-window-private.h
+++ b/gedit/gedit-window-private.h
@@ -82,11 +82,7 @@ struct _GeditWindowPrivate
guint tab_width_id;
guint language_changed_id;
- /* Menus & Toolbars */
- GtkUIManager *manager;
- GtkActionGroup *documents_list_action_group;
- guint documents_list_menu_ui_id;
-
+ /* Headerbars */
GtkWidget *titlebar_paned;
GtkWidget *side_headerbar;
GtkWidget *headerbar;
@@ -95,7 +91,6 @@ struct _GeditWindowPrivate
GMenuModel *gear_menu;
/* recent files */
- guint update_documents_list_menu_id;
gint num_tabs_with_error;
diff --git a/gedit/gedit-window.c b/gedit/gedit-window.c
index 8501a76..cc5d59e 100644
--- a/gedit/gedit-window.c
+++ b/gedit/gedit-window.c
@@ -231,13 +231,6 @@ gedit_window_dispose (GObject *object)
window->priv->fullscreen_controls = NULL;
}
- if (window->priv->update_documents_list_menu_id != 0)
- {
- g_source_remove (window->priv->update_documents_list_menu_id);
- window->priv->update_documents_list_menu_id = 0;
- }
-
- g_clear_object (&window->priv->manager);
g_clear_object (&window->priv->message_bus);
g_clear_object (&window->priv->window_group);
g_clear_object (&window->priv->default_location);
@@ -828,263 +821,6 @@ setup_headerbar_open_button (GeditWindow *window)
}
static void
-create_menu_bar_and_toolbar (GeditWindow *window)
-{
- GtkActionGroup *action_group;
- GtkUIManager *manager;
-
- manager = gtk_ui_manager_new ();
- window->priv->manager = manager;
-
- gedit_debug (DEBUG_WINDOW);
-
- /* list of open documents menu */
- action_group = gtk_action_group_new ("DocumentsListActions");
- gtk_action_group_set_translation_domain (action_group, NULL);
- window->priv->documents_list_action_group = action_group;
- gtk_ui_manager_insert_action_group (manager, action_group, 0);
- g_object_unref (action_group);
-}
-
-static void
-documents_list_menu_activate (GtkToggleAction *action,
- GeditWindow *window)
-{
- gint n;
-
- if (gtk_toggle_action_get_active (action) == FALSE)
- return;
-
- n = gtk_radio_action_get_current_value (GTK_RADIO_ACTION (action));
- gedit_multi_notebook_set_current_page (window->priv->multi_notebook, n);
-}
-
-static gchar *
-get_menu_tip_for_tab (GeditTab *tab)
-{
- GeditDocument *doc;
- gchar *uri;
- gchar *ruri;
- gchar *tip;
-
- doc = gedit_tab_get_document (tab);
-
- uri = gedit_document_get_uri_for_display (doc);
- ruri = gedit_utils_replace_home_dir_with_tilde (uri);
- g_free (uri);
-
- /* Translators: %s is a URI */
- tip = g_strdup_printf (_("Activate '%s'"), ruri);
- g_free (ruri);
-
- return tip;
-}
-
-static gboolean
-update_documents_list_menu_idle (GeditWindow *window)
-{
- GeditWindowPrivate *p = window->priv;
- GList *actions, *l;
- gint n_notebooks, n_nb, n, i;
- guint id;
- GSList *group = NULL;
-
- gedit_debug (DEBUG_WINDOW);
-
- g_return_val_if_fail (p->documents_list_action_group != NULL, FALSE);
-
- if (p->documents_list_menu_ui_id != 0)
- {
- gtk_ui_manager_remove_ui (p->manager,
- p->documents_list_menu_ui_id);
- }
-
- actions = gtk_action_group_list_actions (p->documents_list_action_group);
- for (l = actions; l != NULL; l = l->next)
- {
- g_signal_handlers_disconnect_by_func (GTK_ACTION (l->data),
- G_CALLBACK (documents_list_menu_activate),
- window);
- gtk_action_group_remove_action (p->documents_list_action_group,
- GTK_ACTION (l->data));
- }
- g_list_free (actions);
-
- n = gedit_multi_notebook_get_n_tabs (p->multi_notebook);
-
- id = (n > 0) ? gtk_ui_manager_new_merge_id (p->manager) : 0;
-
- n_notebooks = gedit_multi_notebook_get_n_notebooks (p->multi_notebook);
-
- i = 0;
- n_nb = 0;
- while (n_nb < n_notebooks)
- {
- GeditNotebook *notebook = gedit_multi_notebook_get_nth_notebook (p->multi_notebook, n_nb);
- gint j;
-
- n = gtk_notebook_get_n_pages (GTK_NOTEBOOK (notebook));
-
- for (j = 0; j < n; j++, i++)
- {
- GtkWidget *tab;
- GtkRadioAction *action;
- gchar *action_name;
- gchar *tab_name;
- gchar *name;
- gchar *tip;
- gboolean active_notebook;
-
- tab = gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook), j);
-
- active_notebook = notebook == gedit_multi_notebook_get_active_notebook
(p->multi_notebook);
-
- /* NOTE: the action is associated to the position of the tab in
- * the notebook not to the tab itself! This is needed to work
- * around the gtk+ bug #170727: gtk leaves around the accels
- * of the action. Since the accel depends on the tab position
- * the problem is worked around, action with the same name always
- * get the same accel.
- */
- if (active_notebook)
- {
- action_name = g_strdup_printf ("Active_Tab_%d", i);
- }
- else
- {
- action_name = g_strdup_printf ("Inactive_Tab_%d", i);
- }
- tab_name = _gedit_tab_get_name (GEDIT_TAB (tab));
- name = gedit_utils_escape_underscores (tab_name, -1);
- tip = get_menu_tip_for_tab (GEDIT_TAB (tab));
-
- action = gtk_radio_action_new (action_name,
- name,
- tip,
- NULL,
- i);
-
- if (group != NULL)
- gtk_radio_action_set_group (action, group);
-
- /* note that group changes each time we add an action, so it must be updated */
- group = gtk_radio_action_get_group (action);
-
- /* alt + 1, 2, 3... 0 to switch to the first ten tabs */
- if (active_notebook)
- {
- gchar *accel;
- gchar const *mod;
-
-#ifndef OS_OSX
- mod = "alt";
-#else
- mod = "meta";
-#endif
-
- accel = (j < 10) ? g_strdup_printf ("<%s>%d", mod, (j + 1) % 10) : NULL;
-
- gtk_action_group_add_action_with_accel (p->documents_list_action_group,
- GTK_ACTION (action),
- accel);
- g_free (accel);
- }
- else
- {
- gtk_action_group_add_action (p->documents_list_action_group,
- GTK_ACTION (action));
- }
-
- g_signal_connect (action,
- "activate",
- G_CALLBACK (documents_list_menu_activate),
- window);
-
- gtk_ui_manager_add_ui (p->manager,
- id,
- "/MenuBar/DocumentsMenu/DocumentsListPlaceholder",
- action_name, action_name,
- GTK_UI_MANAGER_MENUITEM,
- FALSE);
-
- if (GEDIT_TAB (tab) == gedit_window_get_active_tab (window))
- gtk_toggle_action_set_active (GTK_TOGGLE_ACTION (action), TRUE);
-
- g_object_unref (action);
-
- g_free (action_name);
- g_free (tab_name);
- g_free (name);
- g_free (tip);
- }
-
- n_nb++;
- }
-
- p->documents_list_menu_ui_id = id;
-
- window->priv->update_documents_list_menu_id = 0;
-
- return FALSE;
-}
-
-static void
-update_documents_list_menu (GeditWindow *window)
-{
- /* Do the real update in an idle so that we consolidate
- * multiple updates when loading or closing many docs */
- if (window->priv->update_documents_list_menu_id == 0)
- {
- window->priv->update_documents_list_menu_id =
- gdk_threads_add_idle ((GSourceFunc) update_documents_list_menu_idle,
- window);
- }
-}
-
-static void
-activate_documents_list_item (GeditWindow *window,
- GeditTab *tab)
-{
- GtkAction *action;
- gchar *action_name;
- gint page_num;
- GeditNotebook *active_notebook;
- gboolean is_active;
-
- active_notebook = gedit_multi_notebook_get_active_notebook (window->priv->multi_notebook);
- page_num = gtk_notebook_page_num (GTK_NOTEBOOK (active_notebook),
- GTK_WIDGET (tab));
-
- is_active = (page_num != -1);
-
- page_num = gedit_multi_notebook_get_page_num (window->priv->multi_notebook,
- tab);
-
- /* get the action name related with the page number */
- if (is_active)
- {
- action_name = g_strdup_printf ("Active_Tab_%d", page_num);
- }
- else
- {
- action_name = g_strdup_printf ("Inactive_Tab_%d", page_num);
- }
- action = gtk_action_group_get_action (window->priv->documents_list_action_group,
- action_name);
-
- /* sometimes the action doesn't exist yet, and the proper action
- * is set active during the documents list menu creation
- * CHECK: would it be nicer if active_tab was a property and we monitored the notify signal?
- */
- if (action != NULL)
- {
- gtk_toggle_action_set_active (GTK_TOGGLE_ACTION (action), TRUE);
- }
-
- g_free (action_name);
-}
-
-static void
tab_width_combo_item_activated (GtkMenuItem *item,
GeditWindow *window)
{
@@ -1673,9 +1409,6 @@ tab_switched (GeditMultiNotebook *mnb,
set_title (window);
set_sensitivity_according_to_tab (window, new_tab);
- /* activate the right item in the documents menu */
- activate_documents_list_item (window, new_tab);
-
g_signal_emit (G_OBJECT (window),
signals[ACTIVE_TAB_CHANGED],
0,
@@ -1941,12 +1674,7 @@ sync_name (GeditTab *tab,
GParamSpec *pspec,
GeditWindow *window)
{
- GtkAction *action;
- gchar *action_name;
GeditDocument *doc;
- gint page_num;
- GeditNotebook *active_notebook;
- gboolean is_active;
if (tab == gedit_window_get_active_tab (window))
{
@@ -1962,49 +1690,6 @@ sync_name (GeditTab *tab,
!gedit_document_is_untitled (doc));
}
- /* sync the item in the documents list menu */
-
- active_notebook = gedit_multi_notebook_get_active_notebook (window->priv->multi_notebook);
- page_num = gtk_notebook_page_num (GTK_NOTEBOOK (active_notebook),
- GTK_WIDGET (tab));
-
- is_active = (page_num != -1);
-
- page_num = gedit_multi_notebook_get_page_num (window->priv->multi_notebook,
- tab);
-
- /* get the action name related with the page number */
- if (is_active)
- {
- action_name = g_strdup_printf ("Active_Tab_%d", page_num);
- }
- else
- {
- action_name = g_strdup_printf ("Inactive_Tab_%d", page_num);
- }
- action = gtk_action_group_get_action (window->priv->documents_list_action_group,
- action_name);
- g_free (action_name);
-
- /* action may be NULL if the idle has not populated the menu yet */
- if (action != NULL)
- {
- gchar *tab_name;
- gchar *escaped_name;
- gchar *tip;
-
- tab_name = _gedit_tab_get_name (tab);
- escaped_name = gedit_utils_escape_underscores (tab_name, -1);
- tip = get_menu_tip_for_tab (tab);
-
- g_object_set (action, "label", escaped_name, NULL);
- g_object_set (action, "tooltip", tip, NULL);
-
- g_free (tab_name);
- g_free (escaped_name);
- g_free (tip);
- }
-
peas_extension_set_foreach (window->priv->extensions,
(PeasExtensionSetForeachFunc) extension_update_state,
window);
@@ -2635,8 +2320,6 @@ on_tab_added (GeditMultiNotebook *multi,
G_CALLBACK (editable_changed),
window);
- update_documents_list_menu (window);
-
update_window_state (window);
update_can_close (window);
@@ -2744,7 +2427,6 @@ on_tab_removed (GeditMultiNotebook *multi,
gtk_notebook_get_n_pages (GTK_NOTEBOOK (notebook)) > 0) ||
num_tabs == 0)
{
- update_documents_list_menu (window);
update_next_prev_doc_sensitivity_per_window (window);
update_sensitivity_according_to_open_tabs (window,
num_notebooks,
@@ -2772,7 +2454,6 @@ on_page_reordered (GeditMultiNotebook *multi,
gint page_num,
GeditWindow *window)
{
- update_documents_list_menu (window);
update_next_prev_doc_sensitivity_per_window (window);
g_signal_emit (G_OBJECT (window), signals[TABS_REORDERED], 0);
@@ -2834,7 +2515,6 @@ on_notebook_changed (GeditMultiNotebook *mnb,
GParamSpec *pspec,
GeditWindow *window)
{
- update_documents_list_menu (window);
update_sensitivity_according_to_open_tabs (window,
gedit_multi_notebook_get_n_notebooks (mnb),
gedit_multi_notebook_get_n_tabs (mnb));
@@ -2845,7 +2525,6 @@ on_notebook_removed (GeditMultiNotebook *mnb,
GeditNotebook *notebook,
GeditWindow *window)
{
- update_documents_list_menu (window);
update_sensitivity_according_to_open_tabs (window,
gedit_multi_notebook_get_n_notebooks (mnb),
gedit_multi_notebook_get_n_tabs (mnb));
@@ -3178,12 +2857,6 @@ extension_removed (PeasExtensionSet *extensions,
GeditWindow *window)
{
gedit_window_activatable_deactivate (GEDIT_WINDOW_ACTIVATABLE (exten));
-
- /* Ensure update of ui manager, because we suspect it does something
- * with expected static strings in the type module (when unloaded the
- * strings don't exist anymore, and ui manager updates in an idle
- * func) */
- gtk_ui_manager_ensure_update (window->priv->manager);
}
static void
@@ -3270,10 +2943,6 @@ gedit_window_init (GeditWindow *window)
window->priv->window_group = gtk_window_group_new ();
gtk_window_group_add_window (window->priv->window_group, GTK_WINDOW (window));
- /* Add menu bar and toolbar bar */
- // FIXME: kill this, right now it is just not added to the window
- create_menu_bar_and_toolbar (window);
-
g_object_bind_property (window->priv->side_panel,
"visible",
window->priv->side_headerbar,
@@ -3873,22 +3542,6 @@ _gedit_window_is_removing_tabs (GeditWindow *window)
}
/**
- * gedit_window_get_ui_manager:
- * @window: a #GeditWindow
- *
- * Gets the #GtkUIManager associated with the @window.
- *
- * Returns: (transfer none): the #GtkUIManager of the @window.
- */
-GtkUIManager *
-gedit_window_get_ui_manager (GeditWindow *window)
-{
- g_return_val_if_fail (GEDIT_IS_WINDOW (window), NULL);
-
- return window->priv->manager;
-}
-
-/**
* gedit_window_get_side_panel:
* @window: a #GeditWindow
*
diff --git a/gedit/gedit-window.h b/gedit/gedit-window.h
index 6dba3ef..1ccacbd 100644
--- a/gedit/gedit-window.h
+++ b/gedit/gedit-window.h
@@ -140,8 +140,6 @@ GeditPanel *gedit_window_get_bottom_panel (GeditWindow *window);
GtkWidget *gedit_window_get_statusbar (GeditWindow *window);
-GtkUIManager *gedit_window_get_ui_manager (GeditWindow *window);
-
GeditWindowState gedit_window_get_state (GeditWindow *window);
GeditTab *gedit_window_get_tab_from_location (GeditWindow *window,
diff --git a/gedit/gedit.gresource.xml b/gedit/gedit.gresource.xml
index b340e66..3c9758a 100644
--- a/gedit/gedit.gresource.xml
+++ b/gedit/gedit.gresource.xml
@@ -1,8 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<gresources>
<gresource prefix="/org/gnome/gedit/ui">
- <file preprocess="xml-stripblanks">gedit-ui.xml</file>
- <file preprocess="xml-stripblanks">gedit-ui-fallback.xml</file>
<file preprocess="xml-stripblanks">gedit-menu.ui</file>
<file preprocess="xml-stripblanks">gedit-encodings-dialog.ui</file>
<file preprocess="xml-stripblanks">gedit-preferences-dialog.ui</file>
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]