73
73
void QtGActionGroup::TriggerAction( QString action_name, bool checked )
75
QString prefix = action_name.left( action_name.indexOf( '.' ) );
75
QPair<QString, QString> split = QtGMenuUtils::splitPrefixAndName(action_name);
76
const QString& prefix(split.first);
76
78
if( prefix != m_action_prefix )
81
action_name = action_name.right( action_name.size() - action_name.indexOf( '.' ) - 1 );
82
std::string action = action_name.toStdString();
83
const QString& action(split.second);
84
QByteArray action_utf = action.toUtf8();
84
86
const GVariantType* type = g_action_group_get_action_parameter_type( m_action_group,
87
action_utf.constData() );
87
89
if( type == nullptr )
89
g_action_group_activate_action( m_action_group, action.c_str(), nullptr );
91
g_action_group_activate_action( m_action_group, action_utf.constData(), nullptr );
93
95
///! need to evaluate and send parameter value
94
96
if( g_variant_type_equal( type, G_VARIANT_TYPE_STRING ) )
96
GVariant* param = g_variant_new_string( action.c_str() );
97
g_action_group_activate_action( m_action_group, action.c_str(), param );
98
GVariant* param = g_variant_new_string( action_utf.constData() );
99
g_action_group_activate_action( m_action_group, action_utf.constData(), param );
98
100
g_variant_unref( param );