static gboolean terminal_app_dbus_register (GApplication *application, GDBusConnection *connection, const gchar *object_path, GError **error) { TerminalApp *app = TERMINAL_APP (application); gs_unref_object TerminalObjectSkeleton *object = NULL; gs_unref_object TerminalFactory *factory = NULL; if (!G_APPLICATION_CLASS (terminal_app_parent_class)->dbus_register (application, connection, object_path, error)) return FALSE; object = terminal_object_skeleton_new (TERMINAL_FACTORY_OBJECT_PATH); factory = terminal_factory_impl_new (); terminal_object_skeleton_set_factory (object, factory); app->object_manager = g_dbus_object_manager_server_new (TERMINAL_OBJECT_PATH_PREFIX); g_dbus_object_manager_server_export (app->object_manager, G_DBUS_OBJECT_SKELETON (object)); /* And export the object */ g_dbus_object_manager_server_set_connection (app->object_manager, connection); return TRUE; }
static gboolean terminal_app_dbus_register (GApplication *application, GDBusConnection *connection, const gchar *object_path, GError **error) { TerminalApp *app = TERMINAL_APP (application); gs_unref_object TerminalObjectSkeleton *object = NULL; gs_unref_object TerminalFactory *factory = NULL; if (!G_APPLICATION_CLASS (terminal_app_parent_class)->dbus_register (application, connection, object_path, error)) return FALSE; #ifdef ENABLE_SEARCH_PROVIDER if (g_settings_get_boolean (app->global_settings, TERMINAL_SETTING_SHELL_INTEGRATION_KEY)) { gs_unref_object TerminalSearchProvider *search_provider; search_provider = terminal_search_provider_new (); if (!terminal_search_provider_dbus_register (search_provider, connection, TERMINAL_SEARCH_PROVIDER_PATH, error)) return FALSE; gs_transfer_out_value (&app->search_provider, &search_provider); } #endif /* ENABLE_SEARCH_PROVIDER */ object = terminal_object_skeleton_new (TERMINAL_FACTORY_OBJECT_PATH); factory = terminal_factory_impl_new (); terminal_object_skeleton_set_factory (object, factory); app->object_manager = g_dbus_object_manager_server_new (TERMINAL_OBJECT_PATH_PREFIX); g_dbus_object_manager_server_export (app->object_manager, G_DBUS_OBJECT_SKELETON (object)); /* And export the object */ g_dbus_object_manager_server_set_connection (app->object_manager, connection); return TRUE; }