[gnome-games] gtali: Use gsettings
- From: Robert Ancell <rancell src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-games] gtali: Use gsettings
- Date: Mon, 2 Jan 2012 11:35:17 +0000 (UTC)
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]