[gnome-games] gnotski: Use gsettings
- From: Robert Ancell <rancell src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-games] gnotski: Use gsettings
- Date: Tue, 3 Jan 2012 05:50:01 +0000 (UTC)
commit 8d8dfdbc82b02c002444cb1023802b273e1b412f
Author: Robert Ancell <robert ancell canonical com>
Date: Tue Jan 3 16:49:53 2012 +1100
gnotski: Use gsettings
gnotski/data/Makefile.am | 27 +++-------
gnotski/data/gnotski.schemas.in | 17 ------
gnotski/data/org.gnome.gnotski.gschema.xml.in | 9 +++
gnotski/src/Makefile.am | 5 --
gnotski/src/gnotski.c | 73 +++++++++++++++++--------
5 files changed, 65 insertions(+), 66 deletions(-)
---
diff --git a/gnotski/data/Makefile.am b/gnotski/data/Makefile.am
index 6b9f6b1..83cf951 100644
--- a/gnotski/data/Makefile.am
+++ b/gnotski/data/Makefile.am
@@ -4,11 +4,10 @@ pixmapdir = $(datadir)/gnotski
pixmap_DATA = \
gnotski.svg
-schema_in_files = gnotski.schemas.in
-if HAVE_GNOME
-schemadir = $(GCONF_SCHEMA_FILE_DIR)
-schema_DATA = $(schema_in_files:.schemas.in=.schemas)
-endif
+gsettings_in_file = org.gnome.gnotski.gschema.xml.in
+gsettings_SCHEMAS = $(gsettings_in_file:.xml.in=.xml)
+ INTLTOOL_XML_NOMERGE_RULE@
+ GSETTINGS_RULES@
man_MANS = gnotski.6
@@ -20,25 +19,13 @@ SCOREFILES = 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 2
EXTRA_DIST = \
$(pixmap_DATA) \
- $(schema_in_files) \
+ $(gsettings_in_file) \
$(man_MANS) \
$(desktop_in_files)
-CLEANFILES = $(desktop_DATA) $(schema_DATA)
-DISTCLEANFILES = $(desktop_DATA) $(schema_DATA)
+CLEANFILES = $(desktop_DATA) $(gsettings_SCHEMAS)
+DISTCLEANFILES = $(desktop_DATA) $(gsettings_SCHEMAS)
-install-schemas-local: $(schema_DATA)
-if GCONF_SCHEMAS_INSTALL
- if test -z "$(DESTDIR)" ; then \
- for p in $^ ; do \
- GCONF_CONFIG_SOURCE=$(GCONF_SCHEMA_CONFIG_SOURCE) $(GCONFTOOL) --makefile-install-rule $$p 2>&1 > /dev/null; \
- done \
- fi
-endif
-
-install-data-local: install-schemas-local
-
- INTLTOOL_SCHEMAS_RULE@
@INTLTOOL_DESKTOP_RULE@
-include $(top_srcdir)/git.mk
diff --git a/gnotski/data/org.gnome.gnotski.gschema.xml.in b/gnotski/data/org.gnome.gnotski.gschema.xml.in
new file mode 100644
index 0000000..48b40b0
--- /dev/null
+++ b/gnotski/data/org.gnome.gnotski.gschema.xml.in
@@ -0,0 +1,9 @@
+<schemalist>
+ <schema id="org.gnome.gnotski" path="/org/gnome/gnotski/" gettext-domain="gnome-games">
+ <key name="level" type="i">
+ <default>0</default>
+ <_summary>The puzzle in play</_summary>
+ <_description>The number of the puzzle being played.</_description>
+ </key>
+ </schema>
+</schemalist>
diff --git a/gnotski/src/Makefile.am b/gnotski/src/Makefile.am
index 0248ba4..0c708f1 100644
--- a/gnotski/src/Makefile.am
+++ b/gnotski/src/Makefile.am
@@ -18,11 +18,6 @@ gnotski_LDADD = \
$(GTK_LIBS) \
$(INTLLIBS)
-if HAVE_GNOME
-gnotski_CFLAGS += $(GNOME_CFLAGS)
-gnotski_LDADD += $(GNOME_LIBS)
-endif
-
if HAVE_RSVG
gnotski_CFLAGS += $(RSVG_CFLAGS)
gnotski_LDADD += $(RSVG_LIBS)
diff --git a/gnotski/src/gnotski.c b/gnotski/src/gnotski.c
index 3a614b7..57026e4 100644
--- a/gnotski/src/gnotski.c
+++ b/gnotski/src/gnotski.c
@@ -28,7 +28,6 @@
#include <gtk/gtk.h>
#include <gdk-pixbuf/gdk-pixbuf.h>
-#include <libgames-support/games-conf.h>
#include <libgames-support/games-gridframe.h>
#include <libgames-support/games-preimage.h>
#include <libgames-support/games-scores.h>
@@ -50,9 +49,7 @@
#define SPACE_PADDING 5
#define SPACE_OFFSET 4
-#define KEY_LEVEL "level"
-#define KEY_LEVEL_INFO_GROUP "level_info"
-
+GSettings *settings;
GtkWidget *window;
GtkWidget *statusbar;
GtkWidget *space;
@@ -477,12 +474,12 @@ main (int argc, char **argv)
g_set_application_name (_(APPNAME_LONG));
- games_conf_initialise (APPNAME);
-
games_stock_init ();
gtk_window_set_default_icon_name ("gnotski");
+ settings = g_settings_new ("org.gnome.gnotski");
+
highscores = games_scores_new ("gnotski",
scorecats, G_N_ELEMENTS (scorecats),
NULL, NULL,
@@ -493,9 +490,9 @@ main (int argc, char **argv)
gtk_window_set_title (GTK_WINDOW (window), _(APPNAME_LONG));
gtk_window_set_default_size (GTK_WINDOW (window), MINWIDTH, MINHEIGHT);
- games_conf_add_window (GTK_WINDOW (window), NULL);
+ //games_conf_add_window (GTK_WINDOW (window), NULL);
- startup_level = games_conf_get_integer (NULL, KEY_LEVEL, NULL);
+ startup_level = g_settings_get_int (settings, "level");
g_signal_connect (window, "delete_event",
G_CALLBACK (quit_game_cb), NULL);
@@ -524,8 +521,6 @@ main (int argc, char **argv)
gtk_main ();
- games_conf_shutdown ();
-
return 0;
}
@@ -805,12 +800,34 @@ void
game_score (void)
{
gint pos;
- gchar *key;
-
+ gchar *key, *filename;
+ GKeyFile *keyfile;
+ gchar *data;
+ gsize data_length;
+
+ filename = g_build_filename (g_get_user_data_dir (), "gnotski", NULL);
+ g_mkdir_with_parents (filename, 0775);
+ g_free (filename);
+
/* Level is complete */
key = get_level_key (current_level);
- games_conf_set_boolean (KEY_LEVEL_INFO_GROUP, key, TRUE);
+ keyfile = g_key_file_new ();
+ filename = g_build_filename (g_get_user_data_dir (), "gnotski", "levels", NULL);
+printf("%s\n", filename);
+ g_key_file_load_from_file (keyfile, filename, G_KEY_FILE_NONE, NULL);
+
+ g_key_file_set_boolean (keyfile, key, "solved", TRUE);
+
+ data = g_key_file_to_data (keyfile, &data_length, NULL);
+ if (data)
+ {
+ g_file_set_contents (filename, data, data_length, NULL);
+ g_free (data);
+ }
g_free (key);
+ g_key_file_unref (keyfile);
+ g_free (filename);
+
gtk_image_set_from_stock (GTK_IMAGE(level_image[current_level]), GTK_STOCK_YES, GTK_ICON_SIZE_MENU);
pos = games_scores_add_plain_score (highscores, (guint32) moves);
@@ -1049,21 +1066,29 @@ get_level_key (gint level_number)
}
}
- return g_strdup_printf ("%08X/solved", ~result);
+ return g_strdup_printf ("%08X", ~result);
}
void
load_solved_state (void)
{
- gint i;
- gchar *key;
-
- for (i = 0; i < max_level; i++) {
- key = get_level_key (i);
- if (games_conf_get_boolean (KEY_LEVEL_INFO_GROUP, key, NULL))
- gtk_image_set_from_stock (GTK_IMAGE(level_image[i]), GTK_STOCK_YES, GTK_ICON_SIZE_MENU);
- g_free (key);
- }
+ gint i;
+ gchar *key, *filename;
+ GKeyFile *keyfile;
+
+ keyfile = g_key_file_new ();
+ filename = g_build_filename (g_get_user_data_dir (), "gnotski", "levels", NULL);
+ g_key_file_load_from_file (keyfile, filename, G_KEY_FILE_NONE, NULL);
+ g_free (filename);
+
+ for (i = 0; i < max_level; i++) {
+ key = get_level_key (i);
+ if (g_key_file_get_boolean (keyfile, key, "solved", NULL))
+ gtk_image_set_from_stock (GTK_IMAGE(level_image[i]), GTK_STOCK_YES, GTK_ICON_SIZE_MENU);
+ g_free (key);
+ }
+
+ g_key_file_unref (keyfile);
}
void
@@ -1354,7 +1379,7 @@ new_game (gint requested_level)
games_scores_set_category (highscores, scorecats[current_level].key);
- games_conf_set_integer (NULL, KEY_LEVEL, current_level);
+ g_settings_get_int (settings, "level");
prepare_map ();
games_grid_frame_set (GAMES_GRID_FRAME (gameframe), width, height);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]