76
/* Do not want to re-create this object every time, now do we? */
77
self->priv->gpump_settings_file = g_file_new_for_path (gpump_settings_file_uri);
78
self->priv->gpump_settings_file = g_file_new_for_path (
79
gpump_settings_file_uri);
79
80
GError ** err_arr = NULL;
81
if (!( g_key_file_load_from_file (self->priv->gpump_settings,
82
gpump_settings_file_uri,
85
/* File does not exist or something else might be wrong. */
86
if (err_arr != NULL || *err_arr != NULL) {
87
/* Did the file exist? */
88
gboolean file_exists_error = FALSE;
89
for (int i = 0; err_arr[i] != NULL; i++) {
90
if (g_error_matches(err_arr[i],
92
G_KEY_FILE_ERROR_NOT_FOUND)) {
93
file_exists_error = TRUE;
95
g_print ("GPumpSettingsData:\nAn %s error occured:\n\t%s\n\n",
96
g_quark_to_string (err->domain),
100
if (!file_exists_error) { /* It was some other error... (IDK). */
103
/* The file did not exist, thus we must create a key-file and store it.
105
g_clear_error (err_arr);
106
GFileOutputStream * out_stream = g_file_create (
107
self->priv->gpump_settings_file,
108
G_FILE_CREATE_PRIVATE,
111
g_object_unref (out_stream);
113
if ( err_arr != NULL || *err_arr != NULL ) {
114
g_error ("GPumpSettingsData: %s\n\t%s\n\n",
115
g_quark_to_string (err->domain),
117
g_clear_error (err_arr);
121
/* -1 is undefined, these are set when the main window is displayed */
122
g_key_file_set_integer (self->priv->gpump_settings, "ui","x", -1);
123
g_key_file_set_integer (self->priv->gpump_settings, "ui","y", -1);
124
/* 500x500 is the default window size */
125
g_key_file_set_integer (self->priv->gpump_settings, "ui","h", 500);
126
g_key_file_set_integer (self->priv->gpump_settings, "ui","x", 500);
128
g_key_file_set_boolean (self->priv->gpump_settings,
133
/* commit data to file. */
134
if (!(gpump_settings_data_commit (self, err_arr))) {
135
for (gint i = 0; err_arr[i] != NULL; i++) {
137
g_print ("GPumpSettingsData:\n An %s error occured:\n\t%s\n\n",
138
g_quark_to_string (err->domain),
143
g_clear_error (err_arr);
81
/* Dose the file exist? */
82
if (!g_file_test (gpump_settings_file_uri, G_FILE_TEST_EXISTS )) {
83
/* Nope, it did not exist */
84
g_print ("Config file does not exist, creating it.\n");
86
g_mkdir_with_parents (settings_basedir, 0700);
88
GFileOutputStream * file_stream = g_file_create (
89
self->priv->gpump_settings_file,
90
G_FILE_CREATE_PRIVATE,
94
for (int i = 0; err_arr[i] != NULL; i++) {
95
g_print ("GPumpSettingsData:\n An %s error occured:\n\t%s\n\n",
96
g_quark_to_string (err_arr[i]->domain),
101
/* Construct a set of default settings */
104
/* -1 is undefined, these are set when the main window is displayed */
105
g_key_file_set_integer (self->priv->gpump_settings, "ui","x", -1);
106
g_key_file_set_integer (self->priv->gpump_settings, "ui","y", -1);
107
/* 500x500 is the default window size */
108
g_key_file_set_integer (self->priv->gpump_settings, "ui","h", 500);
109
g_key_file_set_integer (self->priv->gpump_settings, "ui","w", 500);
111
g_key_file_set_boolean (self->priv->gpump_settings,
115
g_key_file_set_boolean (self->priv->gpump_settings,
120
g_assert (err_arr == NULL);
122
gchar * buff = g_key_file_to_data (self->priv->gpump_settings,
127
for (int i = 0; err_arr[i] != NULL; i++) {
128
g_print ("GPumpSettingsData:\n An %s error occured:\n\t%s\n\n",
129
g_quark_to_string (err_arr[i]->domain),
130
err_arr[i]->message);
135
gint written = g_output_stream_write (G_OUTPUT_STREAM (file_stream),
137
g_utf8_strlen (buff, -1),
142
for (int i = 0; err_arr[i] != NULL; i++) {
143
g_print ("GPumpSettingsData:\n An %s error occured:\n\t%s\n\n",
144
g_quark_to_string (err_arr[i]->domain),
145
err_arr[i]->message);
151
g_object_unref (file_stream);
153
/* yes, the file did exit */
154
g_key_file_load_from_file (self->priv->gpump_settings,
155
gpump_settings_file_uri,
159
for (int i = 0; err_arr[i] != NULL; i++) {
160
g_print ("GPumpSettingsData:\n An %s error occured:\n\t%s\n\n",
161
g_quark_to_string (err_arr[i]->domain),
162
err_arr[i]->message);
147
#endif /* GPUMP_USE_GSETTINGS */