[gtk+] app: share function to normalise detailed action name



commit 3b988ce5239252b0a6c64e0a77eb8ed666f081b2
Author: Sébastien Wilmet <swilmet gnome org>
Date:   Wed Apr 20 17:13:26 2016 +0200

    app: share function to normalise detailed action name
    
    Put the function in gtkactionmuxer.c, where
    gtk_print_action_and_target() is implemented.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=764879

 gtk/gtkactionmuxer.c       |   20 ++++++++++++++++++++
 gtk/gtkactionmuxer.h       |    4 +++-
 gtk/gtkapplication.c       |   23 +----------------------
 gtk/gtkapplicationaccels.c |   25 ++-----------------------
 4 files changed, 26 insertions(+), 46 deletions(-)
---
diff --git a/gtk/gtkactionmuxer.c b/gtk/gtkactionmuxer.c
index d8edef0..df51524 100644
--- a/gtk/gtkactionmuxer.c
+++ b/gtk/gtkactionmuxer.c
@@ -930,3 +930,23 @@ gtk_print_action_and_target (const gchar *action_namespace,
   return g_string_free (result, FALSE);
 }
 
+gchar *
+gtk_normalise_detailed_action_name (const gchar *detailed_action_name)
+{
+  GError *error = NULL;
+  gchar *action_and_target;
+  gchar *action_name;
+  GVariant *target;
+
+  g_action_parse_detailed_name (detailed_action_name, &action_name, &target, &error);
+  g_assert_no_error (error);
+
+  action_and_target = gtk_print_action_and_target (NULL, action_name, target);
+
+  if (target)
+    g_variant_unref (target);
+
+  g_free (action_name);
+
+  return action_and_target;
+}
diff --git a/gtk/gtkactionmuxer.h b/gtk/gtkactionmuxer.h
index 39e9bf2..b696fff 100644
--- a/gtk/gtkactionmuxer.h
+++ b/gtk/gtkactionmuxer.h
@@ -56,11 +56,13 @@ void                    gtk_action_muxer_set_primary_accel              (GtkActi
 const gchar *           gtk_action_muxer_get_primary_accel              (GtkActionMuxer *muxer,
                                                                          const gchar    *action_and_target);
 
-/* No better place for this... */
+/* No better place for these... */
 gchar *                 gtk_print_action_and_target                     (const gchar    *action_namespace,
                                                                          const gchar    *action_name,
                                                                          GVariant       *target);
 
+gchar *                 gtk_normalise_detailed_action_name              (const gchar *detailed_action_name);
+
 G_END_DECLS
 
 #endif /* __GTK_ACTION_MUXER_H__ */
diff --git a/gtk/gtkapplication.c b/gtk/gtkapplication.c
index 667e731..b514e99 100644
--- a/gtk/gtkapplication.c
+++ b/gtk/gtkapplication.c
@@ -1308,27 +1308,6 @@ gtk_application_list_action_descriptions (GtkApplication *application)
   return gtk_application_accels_list_action_descriptions (application->priv->accels);
 }
 
-static gchar *
-normalise_detailed_name (const gchar *detailed_action_name)
-{
-  GError *error = NULL;
-  gchar *action_and_target;
-  gchar *action_name;
-  GVariant *target;
-
-  g_action_parse_detailed_name (detailed_action_name, &action_name, &target, &error);
-  g_assert_no_error (error);
-
-  action_and_target = gtk_print_action_and_target (NULL, action_name, target);
-
-  if (target)
-    g_variant_unref (target);
-
-  g_free (action_name);
-
-  return action_and_target;
-}
-
 /**
  * gtk_application_set_accels_for_action:
  * @application: a #GtkApplication
@@ -1364,7 +1343,7 @@ gtk_application_set_accels_for_action (GtkApplication      *application,
                                                 detailed_action_name,
                                                 accels);
 
-  action_and_target = normalise_detailed_name (detailed_action_name);
+  action_and_target = gtk_normalise_detailed_action_name (detailed_action_name);
   gtk_action_muxer_set_primary_accel (application->priv->muxer, action_and_target, accels[0]);
   g_free (action_and_target);
 
diff --git a/gtk/gtkapplicationaccels.c b/gtk/gtkapplicationaccels.c
index afbac9a..7809940 100644
--- a/gtk/gtkapplicationaccels.c
+++ b/gtk/gtkapplicationaccels.c
@@ -40,27 +40,6 @@ struct _GtkApplicationAccels
 
 G_DEFINE_TYPE (GtkApplicationAccels, gtk_application_accels, G_TYPE_OBJECT)
 
-static gchar *
-normalise_detailed_name (const gchar *detailed_action_name)
-{
-  GError *error = NULL;
-  gchar *action_and_target;
-  gchar *action_name;
-  GVariant *target;
-
-  g_action_parse_detailed_name (detailed_action_name, &action_name, &target, &error);
-  g_assert_no_error (error);
-
-  action_and_target = gtk_print_action_and_target (NULL, action_name, target);
-
-  if (target)
-    g_variant_unref (target);
-
-  g_free (action_name);
-
-  return action_and_target;
-}
-
 static AccelKey *
 accel_key_copy (const AccelKey *source)
 {
@@ -205,7 +184,7 @@ gtk_application_accels_set_accels_for_action (GtkApplicationAccels *accels,
   AccelKey *keys, *old_keys;
   gint i, n;
 
-  action_and_target = normalise_detailed_name (detailed_action_name);
+  action_and_target = gtk_normalise_detailed_action_name (detailed_action_name);
 
   n = accelerators ? g_strv_length ((gchar **) accelerators) : 0;
 
@@ -261,7 +240,7 @@ gtk_application_accels_get_accels_for_action (GtkApplicationAccels *accels,
   gchar **result;
   gint n, i = 0;
 
-  action_and_target = normalise_detailed_name (detailed_action_name);
+  action_and_target = gtk_normalise_detailed_action_name (detailed_action_name);
 
   keys = g_hash_table_lookup (accels->action_to_accels, action_and_target);
   if (!keys)


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