app: don't implement GtkAction activate() anymore.

All action types work fine with GAction activate() now.
This commit is contained in:
Jehan 2023-02-26 20:23:16 +01:00
parent 4776b092bd
commit 83c466bdec
4 changed files with 20 additions and 93 deletions

View File

@ -70,7 +70,7 @@ static void gimp_action_impl_get_property (GObject *object,
/* XXX Implementations for our GimpAction are widely inspired by GSimpleAction
* implementations.
*/
static void gimp_action_impl_g_activate (GAction *action,
static void gimp_action_impl_activate (GAction *action,
GVariant *parameter);
static void gimp_action_impl_change_state (GAction *action,
GVariant *value);
@ -84,8 +84,6 @@ static GVariant *
static GVariant *
gimp_action_impl_get_state_hint (GAction *action);
static void gimp_action_impl_activate (GtkAction *action);
static void gimp_action_impl_set_state (GimpAction *gimp_action,
GVariant *value);
@ -102,8 +100,7 @@ static guint gimp_action_impl_signals[LAST_SIGNAL] = { 0 };
static void
gimp_action_impl_class_init (GimpActionImplClass *klass)
{
GObjectClass *object_class = G_OBJECT_CLASS (klass);
GtkActionClass *action_class = GTK_ACTION_CLASS (klass);
GObjectClass *object_class = G_OBJECT_CLASS (klass);
gimp_action_impl_signals[CHANGE_STATE] =
g_signal_new ("change-state",
@ -118,8 +115,6 @@ gimp_action_impl_class_init (GimpActionImplClass *klass)
object_class->set_property = gimp_action_impl_set_property;
object_class->get_property = gimp_action_impl_get_property;
action_class->activate = gimp_action_impl_activate;
gimp_action_install_properties (object_class);
/**
@ -179,7 +174,7 @@ gimp_action_impl_class_init (GimpActionImplClass *klass)
static void
gimp_action_g_action_iface_init (GActionInterface *iface)
{
iface->activate = gimp_action_impl_g_activate;
iface->activate = gimp_action_impl_activate;
iface->change_state = gimp_action_impl_change_state;
iface->get_enabled = gimp_action_impl_get_enabled;
iface->get_name = (const gchar* (*) (GAction*)) gimp_action_get_name;
@ -285,8 +280,8 @@ gimp_action_impl_set_property (GObject *object,
}
static void
gimp_action_impl_g_activate (GAction *action,
GVariant *parameter)
gimp_action_impl_activate (GAction *action,
GVariant *parameter)
{
gimp_action_emit_activate (GIMP_ACTION (action), parameter);
@ -351,17 +346,6 @@ gimp_action_impl_get_state_hint (GAction *action)
return NULL;
}
static void
gimp_action_impl_activate (GtkAction *action)
{
if (GTK_ACTION_CLASS (parent_class)->activate)
GTK_ACTION_CLASS (parent_class)->activate (action);
gimp_action_emit_activate (GIMP_ACTION (action), NULL);
gimp_action_history_action_activated (GIMP_ACTION (action));
}
/* public functions */

View File

@ -49,9 +49,7 @@ static void gimp_double_action_get_property (GObject *object,
GValue *value,
GParamSpec *pspec);
static void gimp_double_action_activate (GtkAction *action);
static void gimp_double_action_g_activate (GAction *action,
static void gimp_double_action_activate (GAction *action,
GVariant *parameter);
@ -64,14 +62,11 @@ G_DEFINE_TYPE_WITH_CODE (GimpDoubleAction, gimp_double_action, GIMP_TYPE_ACTION_
static void
gimp_double_action_class_init (GimpDoubleActionClass *klass)
{
GObjectClass *object_class = G_OBJECT_CLASS (klass);
GtkActionClass *action_class = GTK_ACTION_CLASS (klass);
GObjectClass *object_class = G_OBJECT_CLASS (klass);
object_class->set_property = gimp_double_action_set_property;
object_class->get_property = gimp_double_action_get_property;
action_class->activate = gimp_double_action_activate;
g_object_class_install_property (object_class, PROP_VALUE,
g_param_spec_double ("value",
NULL, NULL,
@ -88,7 +83,7 @@ gimp_double_action_init (GimpDoubleAction *action)
static void
gimp_double_action_g_action_iface_init (GActionInterface *iface)
{
iface->activate = gimp_double_action_g_activate;
iface->activate = gimp_double_action_activate;
}
static void
@ -155,19 +150,8 @@ gimp_double_action_new (const gchar *name,
}
static void
gimp_double_action_activate (GtkAction *action)
{
GimpDoubleAction *double_action = GIMP_DOUBLE_ACTION (action);
gimp_action_emit_activate (GIMP_ACTION (action),
g_variant_new_double (double_action->value));
gimp_action_history_action_activated (GIMP_ACTION (action));
}
static void
gimp_double_action_g_activate (GAction *action,
GVariant *parameter)
gimp_double_action_activate (GAction *action,
GVariant *parameter)
{
GimpDoubleAction *double_action = GIMP_DOUBLE_ACTION (action);

View File

@ -54,9 +54,7 @@ static void gimp_procedure_action_get_property (GObject *objec
GValue *value,
GParamSpec *pspec);
static void gimp_procedure_action_activate (GtkAction *action);
static void gimp_procedure_action_g_activate (GAction *action,
static void gimp_procedure_action_activate (GAction *action,
GVariant *parameter);
@ -69,15 +67,12 @@ G_DEFINE_TYPE_WITH_CODE (GimpProcedureAction, gimp_procedure_action, GIMP_TYPE_A
static void
gimp_procedure_action_class_init (GimpProcedureActionClass *klass)
{
GObjectClass *object_class = G_OBJECT_CLASS (klass);
GtkActionClass *action_class = GTK_ACTION_CLASS (klass);
GObjectClass *object_class = G_OBJECT_CLASS (klass);
object_class->finalize = gimp_procedure_action_finalize;
object_class->set_property = gimp_procedure_action_set_property;
object_class->get_property = gimp_procedure_action_get_property;
action_class->activate = gimp_procedure_action_activate;
g_object_class_install_property (object_class, PROP_PROCEDURE,
g_param_spec_object ("procedure",
NULL, NULL,
@ -88,7 +83,7 @@ gimp_procedure_action_class_init (GimpProcedureActionClass *klass)
static void
gimp_procedure_action_g_action_iface_init (GActionInterface *iface)
{
iface->activate = gimp_procedure_action_g_activate;
iface->activate = gimp_procedure_action_activate;
}
static void
@ -149,28 +144,8 @@ gimp_procedure_action_set_property (GObject *object,
}
static void
gimp_procedure_action_activate (GtkAction *action)
{
GimpProcedureAction *procedure_action = GIMP_PROCEDURE_ACTION (action);
/* Not all actions have procedures associated with them, for example
* unused "filters-recent-[N]" actions, so check for NULL before we
* invoke the action
*/
if (procedure_action->procedure)
{
gsize hack = GPOINTER_TO_SIZE (procedure_action->procedure);
gimp_action_emit_activate (GIMP_ACTION (action),
g_variant_new_uint64 (hack));
gimp_action_history_action_activated (GIMP_ACTION (action));
}
}
static void
gimp_procedure_action_g_activate (GAction *action,
GVariant *parameter)
gimp_procedure_action_activate (GAction *action,
GVariant *parameter)
{
GimpProcedureAction *procedure_action = GIMP_PROCEDURE_ACTION (action);

View File

@ -50,9 +50,7 @@ static void gimp_string_action_get_property (GObject *object,
GValue *value,
GParamSpec *pspec);
static void gimp_string_action_activate (GtkAction *action);
static void gimp_string_action_g_activate (GimpAction *action,
static void gimp_string_action_activate (GAction *action,
GVariant *parameter);
@ -65,15 +63,12 @@ G_DEFINE_TYPE_WITH_CODE (GimpStringAction, gimp_string_action, GIMP_TYPE_ACTION_
static void
gimp_string_action_class_init (GimpStringActionClass *klass)
{
GObjectClass *object_class = G_OBJECT_CLASS (klass);
GtkActionClass *action_class = GTK_ACTION_CLASS (klass);
GObjectClass *object_class = G_OBJECT_CLASS (klass);
object_class->finalize = gimp_string_action_finalize;
object_class->set_property = gimp_string_action_set_property;
object_class->get_property = gimp_string_action_get_property;
action_class->activate = gimp_string_action_activate;
g_object_class_install_property (object_class, PROP_VALUE,
g_param_spec_string ("value",
NULL, NULL,
@ -84,7 +79,7 @@ gimp_string_action_class_init (GimpStringActionClass *klass)
static void
gimp_string_action_g_action_iface_init (GActionInterface *iface)
{
iface->activate = gimp_string_action_g_activate;
iface->activate = gimp_string_action_activate;
}
static void
@ -167,19 +162,8 @@ gimp_string_action_new (const gchar *name,
}
static void
gimp_string_action_activate (GtkAction *action)
{
GimpStringAction *string_action = GIMP_STRING_ACTION (action);
gimp_action_emit_activate (GIMP_ACTION (action),
g_variant_new_string (string_action->value));
gimp_action_history_action_activated (GIMP_ACTION (action));
}
static void
gimp_string_action_g_activate (GimpAction *action,
GVariant *parameter)
gimp_string_action_activate (GAction *action,
GVariant *parameter)
{
GimpStringAction *string_action = GIMP_STRING_ACTION (action);