[balsa/gtk3] Provide wrapper for g_action_map_lookup_action
- From: Peter Bloomfield <PeterB src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [balsa/gtk3] Provide wrapper for g_action_map_lookup_action
- Date: Thu, 15 Aug 2013 12:20:37 +0000 (UTC)
commit baa96b7d0dfebebbce9f7c2f81ae20e9f28f461f
Author: Peter Bloomfield <PeterBloomfield bellsouth net>
Date: Thu Aug 15 08:19:34 2013 -0400
Provide wrapper for g_action_map_lookup_action
* src/main-window.c (bw_get_action): wrapper for
g_action_map_lookup_action;
(bw_action_set_boolean), (bw_action_get_boolean),
(bw_action_set_string), (bw_action_set_enabled),
(hide_change_state), (balsa_window_new),
(balsa_window_update_book_menus): use it;
(bw_set_filter_menu): use g_simple_action_set_state, to avoid
recursion;
(update_view_menu): remove redundant call to
balsa_message_set_wrap.
ChangeLog | 13 ++++++++
src/main-window.c | 82 ++++++++++++++++++++++------------------------------
2 files changed, 48 insertions(+), 47 deletions(-)
---
diff --git a/ChangeLog b/ChangeLog
index 3cc39a7..9ea9277 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,16 @@
+2013-08-15 Peter Bloomfield
+
+ * src/main-window.c (bw_get_action): wrapper for
+ g_action_map_lookup_action;
+ (bw_action_set_boolean), (bw_action_get_boolean),
+ (bw_action_set_string), (bw_action_set_enabled),
+ (hide_change_state), (balsa_window_new),
+ (balsa_window_update_book_menus): use it;
+ (bw_set_filter_menu): use g_simple_action_set_state, to avoid
+ recursion;
+ (update_view_menu): remove redundant call to
+ balsa_message_set_wrap.
+
2013-08-14 Peter Bloomfield
* src/main-window.c (hide_change_state), (bw_set_filter_menu),
diff --git a/src/main-window.c b/src/main-window.c
index 2ccf066..8d99355 100644
--- a/src/main-window.c
+++ b/src/main-window.c
@@ -736,6 +736,26 @@ bw_is_active_notify(GObject * gobject, GParamSpec * pspec,
* GAction helpers
*/
+static GAction *
+bw_get_action(BalsaWindow * window,
+ const gchar * action_name)
+{
+ GActionMap *action_map;
+ GAction *action;
+
+ action_map = G_ACTION_MAP(window);
+ action = g_action_map_lookup_action(action_map, action_name);
+ if (!action) {
+ action_map =
+ G_ACTION_MAP(gtk_window_get_application(GTK_WINDOW(window)));
+ action = g_action_map_lookup_action(action_map, action_name);
+ }
+ if (!action)
+ g_print("%s action \"%s\" not found\n", __func__, action_name);
+
+ return action;
+}
+
/*
* Set and get the state of a toggle action
*/
@@ -746,11 +766,9 @@ bw_action_set_boolean(BalsaWindow * window,
{
GAction *action;
- action = g_action_map_lookup_action(G_ACTION_MAP(window), action_name);
+ action = bw_get_action(window, action_name);
if (action)
g_action_change_state(action, g_variant_new_boolean(state));
- else
- g_print("%s action \"%s\" not found\n", __func__, action_name);
}
static gboolean
@@ -760,15 +778,14 @@ bw_action_get_boolean(BalsaWindow * window,
GAction *action;
gboolean retval = FALSE;
- action = g_action_map_lookup_action(G_ACTION_MAP(window), action_name);
+ action = bw_get_action(window, action_name);
if (action) {
GVariant *action_state;
action_state = g_action_get_state(action);
retval = g_variant_get_boolean(action_state);
g_variant_unref(action_state);
- } else
- g_print("%s action \"%s\" not found\n", __func__, action_name);
+ }
return retval;
}
@@ -784,12 +801,10 @@ bw_action_set_string(BalsaWindow * window,
{
GAction *action;
- action = g_action_map_lookup_action(G_ACTION_MAP(window), action_name);
+ action = bw_get_action(window, action_name);
if (action)
g_simple_action_set_state(G_SIMPLE_ACTION(action),
g_variant_new_string(state));
- else
- g_print("%s action \"%s\" not found\n", __func__, action_name);
}
/*
@@ -801,42 +816,14 @@ bw_action_set_enabled(BalsaWindow * window,
const gchar * action_name,
gboolean enabled)
{
- GActionMap *action_map;
GAction *action;
if (g_object_get_data(G_OBJECT(window), "destroying"))
return;
- action_map = G_ACTION_MAP(window);
- action = g_action_map_lookup_action(action_map, action_name);
- /* FIXME Remove test when all actions are implemented! */
+ action = bw_get_action(window, action_name);
if (action)
g_simple_action_set_enabled(G_SIMPLE_ACTION(action), enabled);
- else
- g_print("%s action \"%s\" not found in menubar\n", __func__,
- action_name);
-}
-
-static void
-bw_app_action_set_enabled(BalsaWindow * window,
- const gchar * action_name,
- gboolean enabled)
-{
- GActionMap *action_map;
- GAction *action;
-
- if (g_object_get_data(G_OBJECT(window), "destroying"))
- return;
-
- action_map =
- G_ACTION_MAP(gtk_window_get_application(GTK_WINDOW(window)));
- action = g_action_map_lookup_action(action_map, action_name);
- /* FIXME Remove test when all actions are implemented! */
- if (action)
- g_simple_action_set_enabled(G_SIMPLE_ACTION(action), enabled);
- else
- g_print("%s action \"%s\" not found in appmenu\n", __func__,
- action_name);
}
/*
@@ -1832,8 +1819,12 @@ hide_change_state(GSimpleAction * action,
if (hide_states[states_idx].flag == hide_states[curr_idx].flag
&& hide_states[states_idx].set !=
hide_states[curr_idx].set) {
- bw_action_set_boolean(window, hide_states[i].action_name,
- FALSE);
+ GAction *coupled_action;
+
+ coupled_action =
+ bw_get_action(window, hide_states[i].action_name);
+ g_simple_action_set_state(G_SIMPLE_ACTION(coupled_action),
+ g_variant_new_boolean(FALSE));
}
}
}
@@ -2321,14 +2312,14 @@ balsa_window_new()
/* set the toolbar style */
balsa_window_refresh(window);
- action = g_action_map_lookup_action(G_ACTION_MAP(window), "headers");
+ action = bw_get_action(window, "headers");
g_simple_action_set_state(G_SIMPLE_ACTION(action),
g_variant_new_string(header_targets
[balsa_app.
shown_headers]));
#if !defined(ENABLE_TOUCH_UI)
- action = g_action_map_lookup_action(G_ACTION_MAP(window), "threading");
+ action = bw_get_action(window, "threading");
g_simple_action_set_state(G_SIMPLE_ACTION(action),
g_variant_new_string("flat"));
@@ -2490,7 +2481,7 @@ balsa_window_update_book_menus(BalsaWindow * window)
{
gboolean has_books = balsa_app.address_book_list != NULL;
- bw_app_action_set_enabled(window, "address-book", has_books);
+ bw_action_set_enabled(window, "address-book", has_books);
bw_action_set_enabled(window, "store-address", has_books &&
window->current_index &&
BALSA_INDEX(window->current_index)->current_msgno);
@@ -2675,8 +2666,7 @@ bw_set_filter_menu(BalsaWindow * window, int mask)
GAction *action;
gboolean state;
- action = g_action_map_lookup_action(G_ACTION_MAP(window),
- hide_states[i].action_name);
+ action = bw_get_action(window, hide_states[i].action_name);
state = (mask >> hide_states[i].states_index) & 1;
g_simple_action_set_state(G_SIMPLE_ACTION(action),
g_variant_new_boolean(state));
@@ -4943,8 +4933,6 @@ update_view_menu(BalsaWindow * window)
{
#if !defined(ENABLE_TOUCH_UI)
bw_action_set_boolean(window, "wrap", balsa_app.browse_wrap);
- balsa_message_set_wrap(BALSA_MESSAGE(window->preview),
- balsa_app.browse_wrap);
#endif /* ENABLE_TOUCH_UI */
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]