static void terminal_app_dbus_unregister (GApplication *application, GDBusConnection *connection, const gchar *object_path) { TerminalApp *app = TERMINAL_APP (application); if (app->object_manager) { g_dbus_object_manager_server_unexport (app->object_manager, TERMINAL_FACTORY_OBJECT_PATH); g_object_unref (app->object_manager); app->object_manager = NULL; } #ifdef ENABLE_SEARCH_PROVIDER if (app->search_provider) { terminal_search_provider_dbus_unregister (app->search_provider, connection, TERMINAL_SEARCH_PROVIDER_PATH); g_object_unref (app->search_provider); app->search_provider = NULL; } #endif /* ENABLE_SEARCH_PROVIDER */ G_APPLICATION_CLASS (terminal_app_parent_class)->dbus_unregister (application, connection, object_path); }
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 void terminal_app_dbus_unregister (GApplication *application, GDBusConnection *connection, const gchar *object_path) { TerminalApp *app = TERMINAL_APP (application); if (app->object_manager) { g_dbus_object_manager_server_unexport (app->object_manager, TERMINAL_FACTORY_OBJECT_PATH); g_object_unref (app->object_manager); app->object_manager = NULL; } G_APPLICATION_CLASS (terminal_app_parent_class)->dbus_unregister (application, connection, object_path); }
static void terminal_app_finalize (GObject *object) { TerminalApp *app = TERMINAL_APP (object); g_signal_handlers_disconnect_by_func (app->global_settings, G_CALLBACK (terminal_app_encoding_list_notify_cb), app); g_hash_table_destroy (app->encodings); g_object_unref (app->global_settings); g_object_unref (app->desktop_interface_settings); g_object_unref (app->system_proxy_settings); terminal_accels_shutdown (); G_OBJECT_CLASS (terminal_app_parent_class)->finalize (object); }
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; }