diff options
author | fujiwarat <takao.fujiwara1@gmail.com> | 2015-05-21 14:12:22 +0900 |
---|---|---|
committer | fujiwarat <takao.fujiwara1@gmail.com> | 2015-05-21 14:12:22 +0900 |
commit | 7ecbccc7164e1ad1c1d46f51d29f7be9cbec5d13 (patch) | |
tree | 68477ece906331d5a1810adcf37d224b9387e0f1 | |
parent | 0f9ea3d82a95f557acbe0e538a12dfd2f4ecd9c1 (diff) | |
download | ibus-7ecbccc7164e1ad1c1d46f51d29f7be9cbec5d13.tar.gz |
Enable null return in gobject-introspection
TEST=src/IBus.gir bindings/vala/ibus.vapi
Review URL: https://codereview.appspot.com/236410043
-rw-r--r-- | engine/main.vala | 3 | ||||
-rw-r--r-- | src/ibusfactory.c | 6 | ||||
-rw-r--r-- | src/ibusservice.h | 47 | ||||
-rw-r--r-- | ui/gtk3/indicator.vala | 46 |
4 files changed, 74 insertions, 28 deletions
diff --git a/engine/main.vala b/engine/main.vala index 2077277d..4a915b75 100644 --- a/engine/main.vala +++ b/engine/main.vala @@ -46,6 +46,9 @@ public int main(string[] args) { int id = 0; factory.create_engine.connect((factory, name) => { + if (!name.has_prefix("xkb:")) + return null; + const string path = "/org/freedesktop/IBus/engine/simple/%d"; IBus.Engine engine = new IBus.Engine.with_type( diff --git a/src/ibusfactory.c b/src/ibusfactory.c index 2903d7e9..e915c931 100644 --- a/src/ibusfactory.c +++ b/src/ibusfactory.c @@ -1,8 +1,8 @@ /* -*- mode: C; c-basic-offset: 4; indent-tabs-mode: nil; -*- */ /* vim:set et sts=4: */ /* ibus - The Input Bus - * Copyright (C) 2008-2013 Peng Huang <shawn.p.huang@gmail.com> - * Copyright (C) 2008-2013 Red Hat, Inc. + * Copyright (C) 2008-2015 Peng Huang <shawn.p.huang@gmail.com> + * Copyright (C) 2008-2015 Red Hat, Inc. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -164,7 +164,7 @@ ibus_factory_class_init (IBusFactoryClass *class) * IBusFactory::create-engine: * @factory: the factory which received the signal * @engine_name: the engine_name which received the signal - * @returns: (transfer full): An IBusEngine + * @returns: (nullable) (transfer full): An IBusEngine * * The ::create-engine signal is a signal to create IBusEngine * with @engine_name, which gets emitted when IBusFactory diff --git a/src/ibusservice.h b/src/ibusservice.h index 2d37c746..829f5735 100644 --- a/src/ibusservice.h +++ b/src/ibusservice.h @@ -1,8 +1,8 @@ /* -*- mode: C; c-basic-offset: 4; indent-tabs-mode: nil; -*- */ /* vim:set et sts=4: */ /* ibus - The Input Bus - * Copyright (C) 2008-2013 Peng Huang <shawn.p.huang@gmail.com> - * Copyright (C) 2008-2013 Red Hat, Inc. + * Copyright (C) 2008-2015 Peng Huang <shawn.p.huang@gmail.com> + * Copyright (C) 2008-2015 Red Hat, Inc. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -79,6 +79,20 @@ struct _IBusServiceClass { /*< public >*/ /* virtual functions */ + /** + * IBusServiceClass::service_method_call: + * @service: An #IBusService. + * @connection: A dbus connection. + * @sender: A sender. + * @object_path: An object path. + * @interface_name: An interface name. + * @method_name: A method name. + * @parameters: A parameters. + * @invocation: A dbus method invocation. + * + * The ::service_method_call class method is to connect + * GDBusInterfaceMethodCallFunc(). + */ void (* service_method_call) (IBusService *service, GDBusConnection *connection, @@ -89,6 +103,20 @@ struct _IBusServiceClass { GVariant *parameters, GDBusMethodInvocation *invocation); + /** + * IBusServiceClass::service_get_property: + * @service: An #IBusService. + * @connection: A dbus connection. + * @sender: A sender. + * @object_path: An object path. + * @interface_name: An interface name. + * @property_name: A property name. + * @error: Return location for error or %NULL. + * @returns: (nullable) (transfer full): A variant. + * + * The ::service_get_property class method is to connect + * GDBusInterfaceGetPropertyFunc(). + */ GVariant * (* service_get_property) (IBusService *service, GDBusConnection *connection, @@ -97,6 +125,21 @@ struct _IBusServiceClass { const gchar *interface_name, const gchar *property_name, GError **error); + /** + * IBusServiceClass::service_set_property: + * @service: An #IBusService. + * @connection: A dbus connection. + * @sender: A sender. + * @object_path: An object path. + * @interface_name: An interface name. + * @property_name: An property name. + * @value: An property value. + * @error: Return location for error or %NULL. + * @returns: %TRUE if set the value else %FALSE. + * + * The ::service_set_property class method is to connect + * GDBusInterfaceSetPropertyFunc(). + */ gboolean (* service_set_property) (IBusService *service, GDBusConnection *connection, diff --git a/ui/gtk3/indicator.vala b/ui/gtk3/indicator.vala index a83fd63b..dac72b49 100644 --- a/ui/gtk3/indicator.vala +++ b/ui/gtk3/indicator.vala @@ -219,45 +219,45 @@ class Indicator : IBus.Service activate(); } - private GLib.Variant _get_id(GLib.DBusConnection connection) { + private GLib.Variant? _get_id(GLib.DBusConnection connection) { return new GLib.Variant.string(this.id); } - private GLib.Variant _get_category(GLib.DBusConnection connection) { + private GLib.Variant? _get_category(GLib.DBusConnection connection) { return new GLib.Variant.string(this.category_s); } - private GLib.Variant _get_status(GLib.DBusConnection connection) { + private GLib.Variant? _get_status(GLib.DBusConnection connection) { return new GLib.Variant.string(this.status_s); } - private GLib.Variant _get_icon_name(GLib.DBusConnection connection) { + private GLib.Variant? _get_icon_name(GLib.DBusConnection connection) { return new GLib.Variant.string(this.icon_name); } - private GLib.Variant _get_icon_vector(GLib.DBusConnection connection) { + private GLib.Variant? _get_icon_vector(GLib.DBusConnection connection) { return this.icon_vector; } - private GLib.Variant _get_icon_desc(GLib.DBusConnection connection) { + private GLib.Variant? _get_icon_desc(GLib.DBusConnection connection) { return new GLib.Variant.string(this.icon_desc); } - private GLib.Variant _get_attention_icon_name(GLib.DBusConnection - connection) { + private GLib.Variant? _get_attention_icon_name(GLib.DBusConnection + connection) { return new GLib.Variant.string(this.attention_icon_name); } - private GLib.Variant _get_attention_icon_desc(GLib.DBusConnection - connection) { + private GLib.Variant? _get_attention_icon_desc(GLib.DBusConnection + connection) { return new GLib.Variant.string(this.attention_icon_desc); } - private GLib.Variant _get_title(GLib.DBusConnection connection) { + private GLib.Variant? _get_title(GLib.DBusConnection connection) { return new GLib.Variant.string(this.title); } - private GLib.Variant _get_icon_theme_path(GLib.DBusConnection connection) { + private GLib.Variant? _get_icon_theme_path(GLib.DBusConnection connection) { return new GLib.Variant.string(this.icon_theme_path); } @@ -265,17 +265,17 @@ class Indicator : IBus.Service return null; } - private GLib.Variant _get_xayatana_label(GLib.DBusConnection connection) { + private GLib.Variant? _get_xayatana_label(GLib.DBusConnection connection) { return new GLib.Variant.string(this.label_s); } - private GLib.Variant _get_xayatana_label_guide(GLib.DBusConnection - connection) { + private GLib.Variant? _get_xayatana_label_guide(GLib.DBusConnection + connection) { return new GLib.Variant.string(this.label_guide_s); } - private GLib.Variant _get_xayatana_ordering_index(GLib.DBusConnection - connection) { + private GLib.Variant? _get_xayatana_ordering_index(GLib.DBusConnection + connection) { return new GLib.Variant.uint32(this.ordering_index); } @@ -304,12 +304,12 @@ class Indicator : IBus.Service method_name); } - public override GLib.Variant service_get_property(GLib.DBusConnection - connection, - string sender, - string object_path, - string interface_name, - string property_name) { + public override GLib.Variant? service_get_property(GLib.DBusConnection + connection, + string sender, + string object_path, + string interface_name, + string property_name) { GLib.return_val_if_fail (object_path == this.object_path, null); GLib.return_val_if_fail ( interface_name == NOTIFICATION_ITEM_DBUS_IFACE, |