Integrate GSettings, remember View settings.

The org.logdiag ID has been chosen as I haven't found any specific rules
and com.github.logdiag seems not to be future-proof. This domain remains
available so far, anyway.

The schemas are compiled only when installed directly to CMAKE_INSTALL_PREFIX
to the root filesystem. When invoking `make install` with DESTDIR, only
the XML files are copied over as the schemas would have to be recompiled
later anyway.
This commit is contained in:
2011-06-10 18:18:58 +02:00
parent e1e9a6d319
commit b2223d6595
7 changed files with 80 additions and 3 deletions

View File

@@ -18,6 +18,7 @@
struct _LdWindowMainPrivate
{
GSettings *settings;
GtkUIManager *ui_manager;
GtkActionGroup *action_group;
@@ -353,6 +354,19 @@ ld_window_main_init (LdWindowMain *self)
/* Realize the window. */
gtk_widget_show_all (GTK_WIDGET (self));
/* Set up GSettings. */
priv->settings = g_settings_new ("org." PROJECT_NAME);
g_settings_bind (priv->settings, "show-main-toolbar",
gtk_action_group_get_action (priv->action_group,
"MainToolbar"), "active", G_SETTINGS_BIND_DEFAULT);
g_settings_bind (priv->settings, "show-library-toolbar",
gtk_action_group_get_action (priv->action_group,
"LibraryToolbar"), "active", G_SETTINGS_BIND_DEFAULT);
g_settings_bind (priv->settings, "show-grid",
gtk_action_group_get_action (priv->action_group,
"ShowGrid"), "active", G_SETTINGS_BIND_DEFAULT);
}
static void
@@ -369,6 +383,7 @@ ld_window_main_finalize (GObject *gobject)
g_object_unref (self->priv->diagram);
g_object_unref (self->priv->ui_manager);
g_object_unref (self->priv->action_group);
g_object_unref (self->priv->settings);
if (self->priv->filename)
g_free (self->priv->filename);