/gpump/trunk

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/gpump/trunk

« back to all changes in this revision

Viewing changes to src/GPumpSettingsData.c

  • Committer: Gustav Hatvigsson
  • Date: 2014-04-18 21:29:00 UTC
  • Revision ID: gustav.hartvigsson@gmail.com-20140418212900-1rvb6v2n5r4tkz0p
*fixed a bunch of errors
* fixed function names
* much more

  TODO: 
    * add --debug option to use with g_debug ()

Show diffs side-by-side

added added

removed removed

Lines of Context:
40
40
 
41
41
 
42
42
 
43
 
/* * Override the default constructor *****************************************/
44
 
GObject * _constructor (GType type,
 
43
/* * Override the default constructor and destructor **************************/
 
44
GObject * gpump_settings_data_construct (GType type,
45
45
                        guint n_construct_params,
46
46
                        GObjectConstructParam * construct_params);
47
47
 
 
48
void gpump_settings_data_dispose (GObject * object);
 
49
 
48
50
/* * internal private functions ***********************************************/
49
51
void _print_errors (GError ** err_arr);
50
52
 
94
96
    
95
97
    g_print ("Constructing path!\n");
96
98
    
97
 
    gchar * base_config_dir = g_get_user_config_dir ();
 
99
    const gchar * base_config_dir = g_get_user_config_dir ();
98
100
    
99
101
    settings_basedir = g_strdup_printf ("%s/%s",
100
102
                                                base_config_dir,
101
103
                                                "gpump");
102
 
    g_free (base_config_dir);
 
104
    g_free ((gchar*)base_config_dir);
103
105
    
104
106
    gpump_settings_file_uri = g_strdup_printf ("%s/%s",
105
107
                                               settings_basedir,
112
114
  /* Dose the file exist? */
113
115
  if (!g_file_test (gpump_settings_file_uri, G_FILE_TEST_EXISTS )) {
114
116
    /* Nope, it did not exist */
115
 
    g_print ("Config file does not exist, creating it.\n");
 
117
    g_debug ("Config file does not exist, creating it.\n");
116
118
    
117
119
    g_mkdir_with_parents (settings_basedir, 0700);
118
120
    
162
164
    g_object_unref (file_stream);
163
165
  } else {
164
166
    /* yes, the file did exit */
 
167
    
 
168
    g_debug ("Reading data from file:\n");
165
169
    g_key_file_load_from_file (self->priv->gpump_settings,
166
170
                               gpump_settings_file_uri,
167
171
                               G_KEY_FILE_NONE,
168
172
                               err_arr);
 
173
    g_debug ("%s\n", g_key_file_to_data (self->priv->gpump_settings,NULL, NULL));
169
174
    _print_errors (err_arr);
170
175
    
171
176
  }
176
181
void gpump_settings_data_class_init (GPumpSettingsDataClass * klass) {
177
182
  GObjectClass * parent = G_OBJECT_CLASS (klass);
178
183
  
179
 
  parent->constructor = _constructor;
 
184
  parent->constructor = gpump_settings_data_construct;
 
185
  parent->dispose = gpump_settings_data_dispose;
180
186
  
181
187
  parent->get_property = gpump_settings_data_get_property;
182
188
  parent->set_property = gpump_settings_data_set_property;
237
243
  g_type_class_add_private (klass, sizeof (GPumpSettingsDataPrivate));
238
244
}
239
245
 
240
 
 
241
246
void gpump_settings_data_set (GPumpSettingsData * self,
242
247
                              gchar * name,
243
248
                              GValue * data) {
249
254
 
250
255
GValue * gpump_settings_data_get (GPumpSettingsData * self,
251
256
                                    gchar * name) {
252
 
  GValue * data = G_VALUE_INIT;
 
257
  GValue * data = NULL;
253
258
  g_object_set_property (G_OBJECT (self),
254
259
                         name,
255
260
                         data);
265
270
  return TRUE;
266
271
#else
267
272
  
268
 
  g_print ("Committing data to file!\n");
269
 
  g_assert ( err_arr == NULL || *err_arr == NULL);
 
273
  g_debug ("Committing data to file!\n");
 
274
  g_assert ( err_arr == NULL);
270
275
  
271
276
  GFileOutputStream * out_stream = g_file_replace (
272
277
                                                self->priv->gpump_settings_file,
275
280
                                                G_FILE_CREATE_PRIVATE,
276
281
                                                NULL,
277
282
                                                err_arr);
278
 
  if (err_arr[0]) {
 
283
  if (err_arr) {
279
284
    g_object_unref (out_stream);
280
285
    return FALSE;
281
286
  }
282
287
  
283
 
  gsize * len = NULL;
284
 
  gchar * buff = g_key_file_to_data (self->priv->gpump_settings, len, err_arr);
 
288
  gchar * buff = g_key_file_to_data (self->priv->gpump_settings, NULL, err_arr);
285
289
  
286
290
  if (err_arr) {
287
291
   g_object_unref (out_stream);
288
 
   g_free (len);
289
292
   g_free (buff);
290
293
   return FALSE;
291
294
  }
292
 
  
293
 
  g_output_stream_write (G_OUTPUT_STREAM (out_stream),
 
295
  gssize buff_size = strlen (buff);
 
296
  gssize out_size = g_output_stream_write (G_OUTPUT_STREAM (out_stream),
294
297
                         buff,
295
 
                         (gsize) len,
 
298
                         buff_size,
296
299
                         NULL,
297
300
                         err_arr);
298
301
  
 
302
  
299
303
  if (err_arr) {
300
304
    g_object_unref (out_stream);
301
 
    g_free (len);
302
305
    g_free (buff);
303
306
    return FALSE;
304
307
  }
305
308
  
306
309
  g_object_unref (out_stream);
307
 
  g_free (len);
308
310
  g_free (buff);
309
311
  
 
312
  g_debug ("Data commited: %i of %i bytes written!\n", (int)out_size, (int)buff_size);
 
313
  
310
314
  return TRUE;
311
315
#endif
312
316
  g_object_unref (G_OBJECT (self));
318
322
 * See: blogs.gnome.org/xclaesse/2010/02/11/how-to-make-a-gobject-singleton/
319
323
 * for more information.
320
324
 */
321
 
GObject * _constructor (GType type,
 
325
GObject *gpump_settings_data_construct (GType type,
322
326
                        guint n_construct_params,
323
327
                        GObjectConstructParam * construct_params) {
324
328
  static GObject * self = NULL;
336
340
  return g_object_ref (self);
337
341
}
338
342
 
 
343
/* Destructor */
 
344
void gpump_settings_data_dispose (GObject * object) {
 
345
  GPumpSettingsData * self  = GPUMP_SETTINGS_DATA (object);
 
346
#if GPUMP_USE_GSETTIGS
 
347
  /* do nothing, not implemented yet */
 
348
#else
 
349
  gpump_settings_data_commit (self, NULL);
 
350
  
 
351
  g_key_file_free (self->priv->gpump_settings);
 
352
  g_object_unref (G_OBJECT(self->priv->gpump_settings_file));
 
353
  
 
354
  
 
355
  G_OBJECT_CLASS (gpump_settings_data_parent_class)->dispose (object);
 
356
#endif
 
357
}
 
358
 
339
359
/* * Internal private functions ***********************************************/
340
360
void _print_errors (GError ** err_arr) {
341
361
  if (err_arr) {
356
376
 
357
377
/* * declarations of setting functions */
358
378
void _set_ui_x (GPumpSettingsData * self,
359
 
                GValue * value);
 
379
                const GValue * value);
360
380
void _set_ui_y (GPumpSettingsData * self,
361
 
                GValue * value);
 
381
                const GValue * value);
362
382
void _set_ui_h (GPumpSettingsData * self,
363
 
                GValue * value);
 
383
                const GValue * value);
364
384
void _set_ui_w (GPumpSettingsData * self,
365
 
                GValue * value);
 
385
                const GValue * value);
366
386
 
367
387
void _set_main_use_dark (GPumpSettingsData * self,
368
 
                         GValue * value);
 
388
                         const GValue * value);
369
389
void _set_main_first_run (GPumpSettingsData * self,
370
 
                          GValue * value);
 
390
                          const GValue * value);
371
391
 
372
392
 
373
393
/* * declarations of getting functions */
474
494
 
475
495
/* * implimentations of setting functions *************************************/
476
496
void _set_ui_x (GPumpSettingsData * self,
477
 
                GValue * value) {
 
497
                const GValue * value) {
478
498
#if GPUMP_USE_GSETTINGS
479
499
  /* TODO */
480
500
#else
486
506
}
487
507
 
488
508
void _set_ui_y (GPumpSettingsData * self,
489
 
                GValue * value) {
 
509
                const GValue * value) {
490
510
#if GPUMP_USE_GSETTINGS
491
511
  /* TODO */
492
512
#else
498
518
}
499
519
 
500
520
void _set_ui_h (GPumpSettingsData * self,
501
 
                GValue * value) {
 
521
                const GValue * value) {
502
522
#if GPUMP_USE_GSETTINGS
503
523
  /* TODO */
504
524
#else
510
530
}
511
531
 
512
532
void _set_ui_w (GPumpSettingsData * self,
513
 
                GValue * value) {
 
533
                const GValue * value) {
514
534
#if GPUMP_USE_GSETTINGS
515
535
  /* TODO */
516
536
#else
522
542
}
523
543
 
524
544
void _set_main_use_dark (GPumpSettingsData * self,
525
 
                         GValue * value) {
 
545
                         const GValue * value) {
526
546
#if GPUMP_USE_GSETTINGS
527
547
  /* TODO */
528
548
#else
534
554
}
535
555
 
536
556
void _set_main_first_run (GPumpSettingsData * self,
537
 
                          GValue * value)  {
 
557
                          const GValue * value)  {
538
558
#if GPUMP_USE_GSETTINGS
539
559
  /* TODO */
540
560
#else