[gnome-games] gtali: Use gsettings



commit ec1f733b9f8633234f86a282e909edc208ab2ee3
Author: Robert Ancell <robert ancell canonical com>
Date:   Mon Jan 2 22:35:08 2012 +1100

    gtali: Use gsettings

 gtali/data/Makefile.am                    |   20 ++-----
 gtali/data/gtali.schemas.in               |   77 -----------------------------
 gtali/data/org.gnome.gtali.gschema.xml.in |   29 +++++++++++
 gtali/src/Makefile.am                     |    5 --
 gtali/src/gyahtzee.c                      |   26 +++++-----
 gtali/src/gyahtzee.h                      |    8 ---
 gtali/src/setup.c                         |   19 +++----
 7 files changed, 56 insertions(+), 128 deletions(-)
---
diff --git a/gtali/data/Makefile.am b/gtali/data/Makefile.am
index d4f28cb..cdd79fa 100644
--- a/gtali/data/Makefile.am
+++ b/gtali/data/Makefile.am
@@ -17,28 +17,20 @@ pixmap_DATA = \
 	kismet6.svg \
 	kismet-none.svg
 
-schema_in_files = gtali.schemas.in
-if HAVE_GNOME
-schemadir = $(GCONF_SCHEMA_FILE_DIR)
-schema_DATA = $(schema_in_files:.schemas.in=.schemas)
-endif
-
- INTLTOOL_SCHEMAS_RULE@
+gsettings_in_file = org.gnome.gtali.gschema.xml.in
+gsettings_SCHEMAS = $(gsettings_in_file:.xml.in=.xml)
+ INTLTOOL_XML_NOMERGE_RULE@
+ GSETTINGS_RULES@
 
 man_MANS = gtali.6
 
-EXTRA_DIST = $(schema_in_files) $(man_MANS) $(pixmap_DATA)
+EXTRA_DIST = $(gsettings_in_file) $(man_MANS) $(pixmap_DATA)
 
 gamesdir = $(datadir)/applications
 games_in_files = gtali.desktop.in.in
 games_DATA = $(games_in_files:.desktop.in.in=.desktop)
 @INTLTOOL_DESKTOP_RULE@
 
-install-data-local:
-if GCONF_SCHEMAS_INSTALL
-	-GCONF_CONFIG_SOURCE=$(GCONF_SCHEMA_CONFIG_SOURCE) $(GCONFTOOL) --makefile-install-rule $(top_builddir)/gtali/$(schema_DATA)
-endif
-
-DISTCLEANFILES = $(games_DATA) $(schema_DATA)
+DISTCLEANFILES = $(games_DATA) $(gsettings_SCHEMAS)
 
 -include $(top_srcdir)/git.mk
diff --git a/gtali/data/org.gnome.gtali.gschema.xml.in b/gtali/data/org.gnome.gtali.gschema.xml.in
new file mode 100644
index 0000000..2e6b09d
--- /dev/null
+++ b/gtali/data/org.gnome.gtali.gschema.xml.in
@@ -0,0 +1,29 @@
+<schemalist gettext-domain="gnome-games">
+  <schema id="org.gnome.gtali" path="/org/gnome/gtali/">
+    <key name="number-of-computer-opponents" type="i">
+      <default>3</default>
+    </key>
+    <key name="number-of-human-opponents" type="i">
+      <default>1</default>
+    </key>
+    <key name="delay-between-rolls" type="b">
+      <default>false</default>
+      <_summary>Delay between rolls</_summary>
+      <_description>Choose whether or not to insert a delay between the computer's dice rolls so the player can follow what it is doing.</_description>
+    </key>
+    <key name="display-computer-thoughts" type="b">
+      <default>false</default>
+      <_summary>Display the computer's thoughts</_summary>
+      <_description>If set to true, a dump of the AI's working will be done to standard output.</_description>
+    </key>
+    <key name="player-names" type="as">
+      <default l10n="messages" context="PlayerNames">[ 'Human', 'Wilber', 'Bill', 'Monica', 'Kenneth', 'Janet' ]</default>
+    </key>
+    <key name="game-type" type="s">
+      <default l10n="messages" context="GameType">'Regular'</default>
+    </key>
+    <key name="monte-carlo-trials" type="i">
+      <default>0</default>
+    </key>
+  </schema>
+</schemalist>
diff --git a/gtali/src/Makefile.am b/gtali/src/Makefile.am
index 57ca9fe..52f9e42 100644
--- a/gtali/src/Makefile.am
+++ b/gtali/src/Makefile.am
@@ -23,11 +23,6 @@ gtali_LDADD = \
 	$(GTK_LIBS)	\
 	$(INTLLIBS)
 
-if HAVE_GNOME
-gtali_CFLAGS += $(GNOME_CFLAGS)
-gtali_LDADD += $(GNOME_LIBS)
-endif
-
 if HAVE_RSVG
 gtali_CFLAGS += $(RSVG_CFLAGS)
 gtali_LDADD += $(RSVG_LIBS)
diff --git a/gtali/src/gyahtzee.c b/gtali/src/gyahtzee.c
index be26f44..8efeeb3 100644
--- a/gtali/src/gyahtzee.c
+++ b/gtali/src/gyahtzee.c
@@ -47,14 +47,12 @@
 #include <libgames-support/games-stock.h>
 #include <libgames-support/games-scores.h>
 #include <libgames-support/games-scores-dialog.h>
-#include <libgames-support/games-conf.h>
 
 #include "yahtzee.h"
 #include "gyahtzee.h"
 
 #define DELAY_MS 600
 
-static char *appID = "gtali";
 static char *appName = N_("Tali");
 static guint last_timeout = 0;
 static gboolean ready_to_advance_player;
@@ -84,6 +82,7 @@ static char *kdicefiles[NUMBER_OF_PIXMAPS] = { "kismet1.svg",
 
 static GtkWidget *dicePixmaps[NUMBER_OF_DICE][NUMBER_OF_PIXMAPS][GAME_TYPES];
 
+GSettings *settings;
 GtkWidget *window;
 GtkWidget *ScoreList;
 static GtkWidget *statusbar;
@@ -779,7 +778,7 @@ GyahtzeeCreateMainWindow (void)
   window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
   gtk_window_set_title (GTK_WINDOW (window), _(appName));
 
-  games_conf_add_window (GTK_WINDOW (window), NULL);
+  //games_conf_add_window (GTK_WINDOW (window), NULL);
 
   g_signal_connect (G_OBJECT (window), "delete_event",
 		    G_CALLBACK (quit_game), NULL);
@@ -894,9 +893,9 @@ main (int argc, char *argv[])
     exit (1);
   }
 
-  g_set_application_name (_(appName));
+  settings = g_settings_new ("org.gnome.gtali");
 
-  games_conf_initialise (appID);
+  g_set_application_name (_(appName));
 
   games_stock_init ();
 
@@ -948,10 +947,10 @@ main (int argc, char *argv[])
   gtk_window_set_default_icon_name ("gtali");
 
   if (NumberOfComputers == 0)	/* Not set on the command-line. */
-    NumberOfComputers = games_conf_get_integer (NULL, KEY_NUMBER_OF_COMPUTERS, NULL);
+    NumberOfComputers = g_settings_get_int (settings, "number-of-computer-opponents");
 
   if (NumberOfHumans == 0)	/* Not set on the command-line. */
-    NumberOfHumans = games_conf_get_integer (NULL, KEY_NUMBER_OF_HUMANS, NULL);
+    NumberOfHumans = g_settings_get_int (settings, "number-of-human-opponents");
 
   if (NumberOfHumans < 1)
     NumberOfHumans = 1;
@@ -968,22 +967,23 @@ main (int argc, char *argv[])
   else {
     char *type;
 
-    type = games_conf_get_string (NULL, KEY_GAME_TYPE, NULL);
+    type = g_settings_get_string (settings, "game-type");
     game_type = game_type_from_string(type);
   }
 
   set_new_game_type(game_type);
 
   if (NUM_TRIALS <= 0)
-      NUM_TRIALS = games_conf_get_integer (NULL, KEY_NUMTRIALS, NULL);
+      NUM_TRIALS = g_settings_get_int (settings, "monte-carlo-trials");
 
   if (DoDelay == 0)		/* Not set on the command-line */
-    DoDelay = games_conf_get_boolean (NULL, KEY_DELAY_BETWEEN_ROLLS, NULL);
+    DoDelay = g_settings_get_boolean (settings, "delay-between-rolls");
   if (DisplayComputerThoughts == 0)	/* Not set on the command-line */
-    DisplayComputerThoughts = games_conf_get_boolean (NULL, KEY_DISPLAY_COMPUTER_THOUGHTS, NULL);
+    DisplayComputerThoughts = g_settings_get_boolean (settings, "display-computer-thoughts");
   
   /* Read in new player names */
-  player_names = games_conf_get_string_list (NULL, KEY_PLAYER_NAMES, &n_player_names, NULL);
+  player_names = g_settings_get_strv (settings, "player-names");
+  n_player_names = g_strv_length (player_names);
   if (player_names) {
     n_player_names = MIN (n_player_names, MAX_NUMBER_OF_PLAYERS);
 
@@ -1013,8 +1013,6 @@ main (int argc, char *argv[])
 
   gtk_main ();
 
-  games_conf_shutdown ();
-
   exit(0);
 }
 
diff --git a/gtali/src/gyahtzee.h b/gtali/src/gyahtzee.h
index 014330a..a9f4297 100644
--- a/gtali/src/gyahtzee.h
+++ b/gtali/src/gyahtzee.h
@@ -18,14 +18,6 @@
 #define R_GTOTAL (SCOREROWS-1)
 #define R_LTOTAL (R_GTOTAL-1)
 
-#define KEY_NUMBER_OF_COMPUTERS       "NumberOfComputerOpponents"
-#define KEY_NUMBER_OF_HUMANS          "NumberOfHumanOpponents"
-#define KEY_GAME_TYPE                 "GameType"
-#define KEY_NUMTRIALS                 "MonteCarloTrials"
-#define KEY_DELAY_BETWEEN_ROLLS       "DelayBetweenRolls"
-#define KEY_DISPLAY_COMPUTER_THOUGHTS "DisplayComputerThoughts"
-#define KEY_PLAYER_NAMES              "PlayerNames"
-
 /* clist.c */
 extern GtkWidget *create_score_list (void);
 extern void setup_score_list (GtkWidget * scorelist);
diff --git a/gtali/src/setup.c b/gtali/src/setup.c
index 756ac7d..0e44708 100644
--- a/gtali/src/setup.c
+++ b/gtali/src/setup.c
@@ -34,7 +34,6 @@
 #include <gtk/gtk.h>
 
 #include <libgames-support/games-frame.h>
-#include <libgames-support/games-conf.h>
 
 #include "yahtzee.h"
 #include "gyahtzee.h"
@@ -53,6 +52,7 @@ static int tmpDoDelay = -1, tmpDisplayComputerThoughts;
 static int skill_level;
 extern int NUM_TRIALS;
 
+extern GSettings *settings;
 extern GtkWidget *window;
 typedef struct game_type_table_t {
     GameType type;
@@ -161,27 +161,26 @@ do_setup (GtkWidget * widget, gpointer data)
   setupdialog_destroy (setupdialog, 1);
 
   n_player_names = MAX_NUMBER_OF_PLAYERS;
-  player_names = g_newa (char *, n_player_names);
+  player_names = g_newa (char *, n_player_names + 1);
   for (i = 0; i < MAX_NUMBER_OF_PLAYERS; ++i) {
     player_names[i] = players[i].name;
   }
+  player_names[i] = NULL;
 
-  games_conf_set_string_list (NULL, KEY_PLAYER_NAMES,
-                              (const char * const *) player_names,
-                              n_player_names);
+  g_settings_set_strv (settings, "player-names", (const gchar *const *) player_names);
 
-  games_conf_set_integer (NULL, KEY_NUMBER_OF_COMPUTERS, NumberOfComputers);
+  g_settings_set_int (settings, "number-of-computer-opponents", NumberOfComputers);
 
-  games_conf_set_integer (NULL, KEY_NUMBER_OF_HUMANS, NumberOfHumans);
+  g_settings_set_int (settings, "number-of-human-opponents", NumberOfHumans);
 
-  games_conf_set_boolean (NULL, KEY_DELAY_BETWEEN_ROLLS, DoDelay);
+  g_settings_set_boolean (settings, "delay-between-rolls", DoDelay);
 
   type_name = game_type_name(NewGameType);
   if (type_name) {
-    games_conf_set_string (NULL, KEY_GAME_TYPE, type_name);
+    g_settings_set_string (settings, "game-type", type_name);
   }
 
-  games_conf_set_integer (NULL, KEY_NUMTRIALS, NUM_TRIALS);
+  g_settings_set_int (settings, "monte-carlo-trials", NUM_TRIALS);
 
   if (((NumberOfComputers != OriginalNumberOfComputers)
        || (NumberOfHumans != OriginalNumberOfHumans) 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]