[gedit/wip/redesign] Better handling of sensitivity
- From: Ignacio Casal Quinteiro <icq src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gedit/wip/redesign] Better handling of sensitivity
- Date: Mon, 6 May 2013 17:30:18 +0000 (UTC)
commit 831591db6d13a9e5f29614a1295e21a3fcfed8dc
Author: Ignacio Casal Quinteiro <icq gnome org>
Date: Mon May 6 17:13:00 2013 +0200
Better handling of sensitivity
gedit/gedit-ui.xml | 19 -------
gedit/gedit-window-private.h | 2 -
gedit/gedit-window.c | 119 ++++++++++++++++++++++++++++++------------
3 files changed, 85 insertions(+), 55 deletions(-)
---
diff --git a/gedit/gedit-ui.xml b/gedit/gedit-ui.xml
index ff124c9..57fd3d5 100644
--- a/gedit/gedit-ui.xml
+++ b/gedit/gedit-ui.xml
@@ -37,7 +37,6 @@
<placeholder name="FileOps_4"/>
<separator/>
<placeholder name="FileOps_5"/>
- <placeholder name="FileQuitMenuHolder" />
</menu>
<menu name="EditMenu" action="Edit">
@@ -82,23 +81,5 @@
<placeholder name="ToolsOps_5" />
</menu>
- <placeholder name="ExtraMenu_1" />
-
- <menu name="HelpMenu" action="Help">
- <placeholder name="HelpOps_1" />
- <separator/>
- <placeholder name="HelpHolder" />
- </menu>
-
</menubar>
-
- <toolbar name="ToolBar">
- <toolitem action="EditUndo"/>
- <toolitem action="EditRedo"/>
- <separator/>
- <toolitem action="EditCut"/>
- <toolitem action="EditCopy"/>
- <toolitem action="EditPaste"/>
- </toolbar>
-
</ui>
diff --git a/gedit/gedit-window-private.h b/gedit/gedit-window-private.h
index 4522840..c5a7f9e 100644
--- a/gedit/gedit-window-private.h
+++ b/gedit/gedit-window-private.h
@@ -86,8 +86,6 @@ struct _GeditWindowPrivate
GtkUIManager *manager;
GtkActionGroup *action_group;
GtkActionGroup *always_sensitive_action_group;
- GtkActionGroup *quit_action_group;
- GtkActionGroup *panels_action_group;
GtkActionGroup *languages_action_group;
GtkActionGroup *documents_list_action_group;
guint documents_list_menu_ui_id;
diff --git a/gedit/gedit-window.c b/gedit/gedit-window.c
index 2eb0fff..4176faa 100644
--- a/gedit/gedit-window.c
+++ b/gedit/gedit-window.c
@@ -1137,7 +1137,6 @@ static void
create_menu_bar_and_toolbar (GeditWindow *window)
{
GtkActionGroup *action_group;
- GtkAction *action;
GtkUIManager *manager;
GError *error = NULL;
@@ -1170,21 +1169,6 @@ create_menu_bar_and_toolbar (GeditWindow *window)
g_object_unref (action_group);
window->priv->action_group = action_group;
- /* set which actions should have priority on the toolbar */
- action = gtk_action_group_get_action (action_group, "EditUndo");
- g_object_set (action, "is_important", TRUE, NULL);
-
- action_group = gtk_action_group_new ("GeditQuitWindowActions");
- gtk_action_group_set_translation_domain (action_group, NULL);
- gtk_action_group_add_actions (action_group,
- gedit_quit_menu_entries,
- G_N_ELEMENTS (gedit_quit_menu_entries),
- window);
-
- gtk_ui_manager_insert_action_group (manager, action_group, 0);
- g_object_unref (action_group);
- window->priv->quit_action_group = action_group;
-
gtk_ui_manager_add_ui_from_resource (manager,
"/org/gnome/gedit/ui/gedit-ui.xml",
&error);
@@ -2101,15 +2085,19 @@ set_sensitivity_according_to_window_state (GeditWindow *window)
gint num_tabs;
lockdown = gedit_app_get_lockdown (GEDIT_APP (g_application_get_default ()));
+ num_tabs = gedit_multi_notebook_get_n_tabs (window->priv->multi_notebook);
/* We disable File->Quit/SaveAll/CloseAll while printing to avoid to have two
operations (save and print/print preview) that uses the message area at
the same time (may be we can remove this limitation in the future) */
/* We disable File->Quit/CloseAll if state is saving since saving cannot be
cancelled (may be we can remove this limitation in the future) */
- gtk_action_group_set_sensitive (window->priv->quit_action_group,
- !(window->priv->state & GEDIT_WINDOW_STATE_SAVING) &&
- !(window->priv->state & GEDIT_WINDOW_STATE_PRINTING));
+ action = g_action_map_lookup_action (G_ACTION_MAP (g_application_get_default ()),
+ "quit");
+ g_simple_action_set_enabled (G_SIMPLE_ACTION (action),
+ !(window->priv->state & GEDIT_WINDOW_STATE_SAVING) &&
+ !(window->priv->state & GEDIT_WINDOW_STATE_PRINTING) &&
+ num_tabs > 0);
action = g_action_map_lookup_action (G_ACTION_MAP (window), "close_all");
g_simple_action_set_enabled (G_SIMPLE_ACTION (action),
@@ -2121,19 +2109,47 @@ set_sensitivity_according_to_window_state (GeditWindow *window)
!(window->priv->state & GEDIT_WINDOW_STATE_PRINTING) &&
!(lockdown & GEDIT_LOCKDOWN_SAVE_TO_DISK));
- num_tabs = gedit_multi_notebook_get_n_tabs (window->priv->multi_notebook);
+ action = g_action_map_lookup_action (G_ACTION_MAP (window), "save");
+ g_simple_action_set_enabled (G_SIMPLE_ACTION (action), num_tabs > 0);
- if (!gtk_action_group_get_sensitive (window->priv->action_group))
- {
- gtk_action_group_set_sensitive (window->priv->action_group,
- num_tabs > 0);
- }
+ action = g_action_map_lookup_action (G_ACTION_MAP (window), "save_as");
+ g_simple_action_set_enabled (G_SIMPLE_ACTION (action), num_tabs > 0);
- if (!gtk_action_group_get_sensitive (window->priv->quit_action_group))
- {
- gtk_action_group_set_sensitive (window->priv->quit_action_group,
- num_tabs > 0);
- }
+ action = g_action_map_lookup_action (G_ACTION_MAP (window), "revert");
+ g_simple_action_set_enabled (G_SIMPLE_ACTION (action), num_tabs > 0);
+
+ action = g_action_map_lookup_action (G_ACTION_MAP (window), "print");
+ g_simple_action_set_enabled (G_SIMPLE_ACTION (action), num_tabs > 0);
+
+ action = g_action_map_lookup_action (G_ACTION_MAP (window), "find");
+ g_simple_action_set_enabled (G_SIMPLE_ACTION (action), num_tabs > 0);
+
+ action = g_action_map_lookup_action (G_ACTION_MAP (window), "replace");
+ g_simple_action_set_enabled (G_SIMPLE_ACTION (action), num_tabs > 0);
+
+ action = g_action_map_lookup_action (G_ACTION_MAP (window), "find_next");
+ g_simple_action_set_enabled (G_SIMPLE_ACTION (action), num_tabs > 0);
+
+ action = g_action_map_lookup_action (G_ACTION_MAP (window), "find_prev");
+ g_simple_action_set_enabled (G_SIMPLE_ACTION (action), num_tabs > 0);
+
+ action = g_action_map_lookup_action (G_ACTION_MAP (window), "clear_highlight");
+ g_simple_action_set_enabled (G_SIMPLE_ACTION (action), num_tabs > 0);
+
+ action = g_action_map_lookup_action (G_ACTION_MAP (window), "goto_line");
+ g_simple_action_set_enabled (G_SIMPLE_ACTION (action), num_tabs > 0);
+
+ action = g_action_map_lookup_action (G_ACTION_MAP (window), "new_tab_group");
+ g_simple_action_set_enabled (G_SIMPLE_ACTION (action), num_tabs > 0);
+
+ action = g_action_map_lookup_action (G_ACTION_MAP (window), "previous_document");
+ g_simple_action_set_enabled (G_SIMPLE_ACTION (action), num_tabs > 0);
+
+ action = g_action_map_lookup_action (G_ACTION_MAP (window), "next_document");
+ g_simple_action_set_enabled (G_SIMPLE_ACTION (action), num_tabs > 0);
+
+ action = g_action_map_lookup_action (G_ACTION_MAP (window), "move_to_new_window");
+ g_simple_action_set_enabled (G_SIMPLE_ACTION (action), num_tabs > 1);
action = g_action_map_lookup_action (G_ACTION_MAP (window), "close");
if (!g_action_get_enabled (action))
@@ -2675,7 +2691,7 @@ can_search_again (GeditDocument *doc,
action = g_action_map_lookup_action (G_ACTION_MAP (window),
- "find_previous");
+ "find_prev");
g_simple_action_set_enabled (G_SIMPLE_ACTION (action), enabled);
}
@@ -2808,9 +2824,44 @@ update_sensitivity_according_to_open_tabs (GeditWindow *window,
{
GAction *action;
- /* Set sensitivity */
- gtk_action_group_set_sensitive (window->priv->action_group,
- num_tabs != 0);
+ action = g_action_map_lookup_action (G_ACTION_MAP (window), "save");
+ g_simple_action_set_enabled (G_SIMPLE_ACTION (action), num_tabs > 0);
+
+ action = g_action_map_lookup_action (G_ACTION_MAP (window), "save_as");
+ g_simple_action_set_enabled (G_SIMPLE_ACTION (action), num_tabs > 0);
+
+ action = g_action_map_lookup_action (G_ACTION_MAP (window), "revert");
+ g_simple_action_set_enabled (G_SIMPLE_ACTION (action), num_tabs > 0);
+
+ action = g_action_map_lookup_action (G_ACTION_MAP (window), "print");
+ g_simple_action_set_enabled (G_SIMPLE_ACTION (action), num_tabs > 0);
+
+ action = g_action_map_lookup_action (G_ACTION_MAP (window), "find");
+ g_simple_action_set_enabled (G_SIMPLE_ACTION (action), num_tabs > 0);
+
+ action = g_action_map_lookup_action (G_ACTION_MAP (window), "find_next");
+ g_simple_action_set_enabled (G_SIMPLE_ACTION (action), num_tabs > 0);
+
+ action = g_action_map_lookup_action (G_ACTION_MAP (window), "replace");
+ g_simple_action_set_enabled (G_SIMPLE_ACTION (action), num_tabs > 0);
+
+ action = g_action_map_lookup_action (G_ACTION_MAP (window), "find_prev");
+ g_simple_action_set_enabled (G_SIMPLE_ACTION (action), num_tabs > 0);
+
+ action = g_action_map_lookup_action (G_ACTION_MAP (window), "clear_highlight");
+ g_simple_action_set_enabled (G_SIMPLE_ACTION (action), num_tabs > 0);
+
+ action = g_action_map_lookup_action (G_ACTION_MAP (window), "goto_line");
+ g_simple_action_set_enabled (G_SIMPLE_ACTION (action), num_tabs > 0);
+
+ action = g_action_map_lookup_action (G_ACTION_MAP (window), "new_tab_group");
+ g_simple_action_set_enabled (G_SIMPLE_ACTION (action), num_tabs > 0);
+
+ action = g_action_map_lookup_action (G_ACTION_MAP (window), "previous_document");
+ g_simple_action_set_enabled (G_SIMPLE_ACTION (action), num_tabs > 0);
+
+ action = g_action_map_lookup_action (G_ACTION_MAP (window), "next_document");
+ g_simple_action_set_enabled (G_SIMPLE_ACTION (action), num_tabs > 0);
action = g_action_map_lookup_action (G_ACTION_MAP (window), "move_to_new_window");
g_simple_action_set_enabled (G_SIMPLE_ACTION (action),
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]