~ubuntu-branches/ubuntu/jaunty/file-browser-applet/jaunty

« back to all changes in this revision

Viewing changes to src/preferences.c

  • Committer: Bazaar Package Importer
  • Author(s): Andrew Starr-Bochicchio
  • Date: 2008-08-29 13:50:51 UTC
  • mfrom: (2.1.1 squeeze)
  • Revision ID: james.westby@ubuntu.com-20080829135051-bani7mwsfjdbs9fx
Tags: 0.5.9-1
* New upstream release. (Closes: #497078)
* debian/control:
 - Remove Build-Depend on libgnomevfs2-dev and add Build-Depend
   on libglib2.0-dev as upstream has moved to GIO. (Closes: #493878)
 - Remove depreciated Depends and Build Depends on libgnome-desktop{-dev}
* Fixes Lintian warning: timewarp-standards-version

Show diffs side-by-side

added added

removed removed

Lines of Context:
34
34
 
35
35
/******************************************************************************/
36
36
struct _AppletPreferencesPrivate {
37
 
        GtkWidget       *window;
38
 
        PanelApplet *applet;
39
 
        GtkWidget       *tree_view;
 
37
        GtkWidget*      window;
 
38
        PanelApplet*applet;
 
39
        GtkWidget*      tree_view;
40
40
};
41
41
/******************************************************************************/
42
42
#define APPLET_PREFERENCES_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_APPLET_PREFERENCES, AppletPreferencesPrivate))
65
65
/*static GtkWidget *revert_button = NULL;*/
66
66
/******************************************************************************/
67
67
static gpointer applet_preferences_parent_class = NULL;
68
 
static void applet_preferences_dispose (GObject *obj);
 
68
static void applet_preferences_dispose (GObject* obj);
69
69
/******************************************************************************/
70
70
static void
71
 
applet_preferences_on_show_icon_pressed (GtkWidget *widget, gpointer data) {
72
 
        AppletPreferences *self = (AppletPreferences *)data;
 
71
applet_preferences_on_show_icon_pressed (GtkWidget* widget, AppletPreferences* self) {
 
72
        if (DEBUG) g_printf ("In %s\n", __FUNCTION__);
 
73
 
 
74
        g_return_if_fail (self == NULL || IS_APPLET_PREFERENCES (self));
73
75
 
74
76
        /* get the new state from the widget and update the prefs structure */
75
77
        self->menu_bar_prefs->show_icon = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget));
76
78
 
77
 
        PrefsChangedSignalData *signal_data = g_new0 (PrefsChangedSignalData, 1);
 
79
        PrefsChangedSignalData* signal_data = g_new0 (PrefsChangedSignalData, 1);
78
80
        signal_data->signal_id = PREFS_SIGNAL_SHOW_ICON;
79
81
        signal_data->instance  = -1;
80
82
        signal_data->label        = NULL;
81
83
        signal_data->path         = NULL;
82
84
 
83
85
        /* emit the signal so the panel menu bar updates itself */
84
 
        g_signal_emit (G_OBJECT (data),
 
86
        g_signal_emit (G_OBJECT (self),
85
87
                                   applet_preferences_signals [PREFS_CHANGED],
86
88
                                   0,
87
89
                                   signal_data);
93
95
}
94
96
/******************************************************************************/
95
97
static void
96
 
applet_preferences_on_show_hidden_pressed (GtkWidget *widget, gpointer data) {
97
 
        AppletPreferences *self = (AppletPreferences *)data;
 
98
applet_preferences_on_show_hidden_pressed (GtkWidget* widget, AppletPreferences* self) {
 
99
        if (DEBUG) g_printf ("In %s\n", __FUNCTION__);
 
100
 
 
101
        g_return_if_fail (self == NULL || IS_APPLET_PREFERENCES (self));
 
102
 
98
103
        /* get the new state from the widget and update the prefs structure. No
99
104
         * need to let the menu bar or browser object know */
100
105
        self->menu_bar_prefs->browser_prefs->show_hidden = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget));
106
111
}
107
112
/******************************************************************************/
108
113
static void
109
 
applet_preferences_on_terminal_changed (GtkWidget *widget, gpointer data) {
 
114
applet_preferences_on_terminal_changed (GtkWidget* widget, AppletPreferences* self) {
 
115
        if (DEBUG) g_printf ("In %s\n", __FUNCTION__);
 
116
 
 
117
        g_return_if_fail (self == NULL || IS_APPLET_PREFERENCES (self));
 
118
 
110
119
        gchar *tmp = NULL;
111
 
        AppletPreferences *self = (AppletPreferences *)data;
112
 
        
 
120
 
113
121
        /* get the new state from the widget and update the prefs structure. No
114
122
         * need to let the menu bar or browser object know */
115
123
        tmp = self->menu_bar_prefs->browser_prefs->terminal;
119
127
        /* update the state of the revert button. A pref has changed so the button
120
128
         * should now be sensitive  */
121
129
        /*gtk_widget_set_sensitive (revert_button, TRUE);*/
122
 
}       
 
130
}
123
131
/******************************************************************************/
124
132
static void
125
 
applet_preferences_on_editor_changed (GtkWidget *widget, gpointer data) {
 
133
applet_preferences_on_editor_changed (GtkWidget* widget, AppletPreferences* self) {
 
134
        if (DEBUG) g_printf ("In %s\n", __FUNCTION__);
 
135
 
 
136
        g_return_if_fail (self == NULL || IS_APPLET_PREFERENCES (self));
 
137
 
126
138
        gchar *tmp = NULL;
127
 
        AppletPreferences *self = (AppletPreferences *)data;
128
 
        
 
139
 
129
140
        /* get the new state from the widget and update the prefs structure. No
130
141
         * need to let the menu bar or browser object know */
131
142
        tmp = self->menu_bar_prefs->browser_prefs->editor;
135
146
        /* update the state of the revert button. A pref has changed so the button
136
147
         * should now be sensitive  */
137
148
        /*gtk_widget_set_sensitive (revert_button, TRUE);*/
138
 
}       
 
149
}
139
150
/******************************************************************************/
140
151
static void
141
 
applet_preferences_on_icon_select (GtkWidget *button, gpointer data) {
 
152
applet_preferences_on_icon_select (GtkWidget* button, AppletPreferences* self) {
 
153
        if (DEBUG) g_printf ("In %s\n", __FUNCTION__);
 
154
 
 
155
        g_return_if_fail (self == NULL || IS_APPLET_PREFERENCES (self));
 
156
 
142
157
        GtkWidget *file_chooser_dialog;
143
158
        gchar *icon_path = DEFAULT_ICON_PATH;
144
 
        AppletPreferences *self = (AppletPreferences *)data;
 
159
 
145
160
        /* set up a file chooser dialog so we can choose the new icon. An icon
146
161
         * chooser would be better, but that widget is deprecated in the Gnome UI
147
162
         * lib and GTK equivalent doesn't exist yet */
161
176
                                                                   icon_path);
162
177
        /* check the reply */
163
178
        if (gtk_dialog_run (GTK_DIALOG (file_chooser_dialog)) == GTK_RESPONSE_ACCEPT) {
164
 
                gchar *new_icon;
 
179
                gchar* new_icon;
165
180
                new_icon = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (file_chooser_dialog));
166
 
                /* make sure the new icon is not the same as the old one */     
 
181
                /* make sure the new icon is not the same as the old one */
167
182
                if (g_ascii_strcasecmp (new_icon, self->menu_bar_prefs->icon)) {
168
183
                        /* update the prefs structure */
169
184
                        g_free (self->menu_bar_prefs->icon);
170
185
                        self->menu_bar_prefs->icon = new_icon;
171
186
 
172
187
                        /* update the button's icon */
173
 
                        GtkWidget *icon = gtk_button_get_image (GTK_BUTTON (button));
 
188
                        GtkWidget* icon = gtk_button_get_image (GTK_BUTTON (button));
174
189
                        gtk_widget_destroy (icon);
175
190
                        icon = utils_get_scaled_image_from_file (self->menu_bar_prefs->icon,
176
191
                                                                                                         ICON_BUTTON_SIZE);
179
194
                        }
180
195
                        gtk_button_set_image (GTK_BUTTON (button), icon);
181
196
 
182
 
                        PrefsChangedSignalData *signal_data = g_new0 (PrefsChangedSignalData, 1);
 
197
                        PrefsChangedSignalData* signal_data = g_new0 (PrefsChangedSignalData, 1);
183
198
                        signal_data->signal_id = PREFS_SIGNAL_ICON_CHANGED;
184
199
                        signal_data->instance  = -1;
185
200
                        signal_data->label         = NULL;
186
201
                        signal_data->path          = NULL;
187
202
 
188
203
                        /* emit the signal so the panel menu bar updates itself */
189
 
                        g_signal_emit (G_OBJECT (data),
 
204
                        g_signal_emit (G_OBJECT (self),
190
205
                                                   applet_preferences_signals [PREFS_CHANGED],
191
206
                                                   0,
192
207
                                                   signal_data);
205
220
/******************************************************************************/
206
221
static void
207
222
applet_preferences_save_to_gconf (AppletPreferences *self) {
 
223
        if (DEBUG) g_printf ("In %s\n", __FUNCTION__);
 
224
 
 
225
        g_return_if_fail (self == NULL || IS_APPLET_PREFERENCES (self));
 
226
 
208
227
        PanelApplet *applet = self->priv->applet;
209
 
        GError *error = NULL;
 
228
        GError* error = NULL;
210
229
        /* save the data in the prefs structure to the gconf schema (or whatever)*/
211
230
        /* show hidden files? */
212
231
        panel_applet_gconf_set_bool (applet,
256
275
}
257
276
/******************************************************************************/
258
277
static void
259
 
applet_preferences_dialog_response (GtkWidget *window, gint response, gpointer data) {
260
 
        AppletPreferences *self = (AppletPreferences *)data;
 
278
applet_preferences_dialog_response (GtkWidget* window, gint response, AppletPreferences* self) {
 
279
        if (DEBUG) g_printf ("In %s\n", __FUNCTION__);
 
280
 
 
281
        g_return_if_fail (self == NULL || IS_APPLET_PREFERENCES (self));
 
282
 
261
283
        /* figure out what button closed the dialog and take the appropriate action */
262
284
        switch (response) {
263
285
                case RESPONSE_REVERT:
284
306
applet_preferences_label_cell_edited (GtkCellRenderer   *cell,
285
307
                                                                          gchar                         *path_string,
286
308
                                                                          gchar                         *new_string,
287
 
                                                                          gpointer                      data){
288
 
 
289
 
        AppletPreferences       *self           = (AppletPreferences *)data;
 
309
                                                                          AppletPreferences* self){
 
310
        if (DEBUG) g_printf ("In %s\n", __FUNCTION__);
 
311
 
 
312
        g_return_if_fail (self == NULL || IS_APPLET_PREFERENCES (self));
 
313
 
290
314
        GtkWidget                       *tree_view      = self->priv->tree_view;
291
315
        GtkTreeModel            *model;
292
316
        GtkTreeIter                     iter;
311
335
                                                -1);
312
336
 
313
337
        /* create the data structure with the event info to pass to panel_menu_bar */
314
 
        PrefsChangedSignalData *signal_data = g_new0 (PrefsChangedSignalData, 1);
 
338
        PrefsChangedSignalData* signal_data = g_new0 (PrefsChangedSignalData, 1);
315
339
        signal_data->signal_id = PREFS_SIGNAL_DIR_CHANGED;
316
340
        signal_data->instance  = atoi (path_string);
317
341
        signal_data->label         = g_strdup (new_string);
324
348
        tmp->data = (gpointer)g_strdup (new_string);
325
349
 
326
350
        /* emit the signal so the panel menu bar updates itself */
327
 
        g_signal_emit (G_OBJECT (data),
 
351
        g_signal_emit (G_OBJECT (self),
328
352
                                   applet_preferences_signals [PREFS_CHANGED],
329
353
                                   0,
330
354
                                   signal_data);
338
362
applet_preferences_path_cell_activated (GtkTreeView               *tree_view,
339
363
                                                                                GtkTreePath               *path,
340
364
                                                                                GtkTreeViewColumn *col,
341
 
                                                                                gpointer                   data) {
342
 
        AppletPreferences       *self   = (AppletPreferences *)data;
343
 
        GtkTreeModel *model;
344
 
        GtkTreeIter      iter;
345
 
        GtkWidget        *file_chooser_dialog;
346
 
        gchar            *old_path = NULL;
 
365
                                                                                AppletPreferences* self) {
 
366
        if (DEBUG) g_printf ("In %s\n", __FUNCTION__);
 
367
 
 
368
        g_return_if_fail (self == NULL || IS_APPLET_PREFERENCES (self));
 
369
 
 
370
        GtkTreeModel* model;
 
371
        GtkTreeIter       iter;
 
372
        GtkWidget*        file_chooser_dialog;
 
373
        gchar*            old_path = NULL;
347
374
 
348
375
        model = gtk_tree_view_get_model (GTK_TREE_VIEW (tree_view));
349
376
 
373
400
        /* run the dialog */
374
401
        if (gtk_dialog_run (GTK_DIALOG (file_chooser_dialog)) == GTK_RESPONSE_ACCEPT) {
375
402
                /* get the new path*/
376
 
                gchar *new_path = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (file_chooser_dialog));
 
403
                gchar* new_path = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (file_chooser_dialog));
377
404
                /* only update data if it's not the same as the old one */
378
405
                if (g_ascii_strcasecmp (old_path, new_path)) {
379
406
                        gtk_list_store_set (GTK_LIST_STORE (model), &iter,
382
409
 
383
410
 
384
411
                        /* the label associated with the selection */
385
 
                        gchar *label = NULL;
 
412
                        gchar* label = NULL;
386
413
                        gtk_tree_model_get (model,
387
414
                                                                &iter,
388
415
                                                                LABEL_COLUMN, &label,
389
416
                                                                -1);
390
417
 
391
418
                        /* get the instance from the iterator */
392
 
                        gchar *instance = gtk_tree_model_get_string_from_iter (model, &iter);
 
419
                        gchar* instance = gtk_tree_model_get_string_from_iter (model, &iter);
393
420
 
394
421
                        /* create the data structure with the event info to pass to panel_menu_bar */
395
422
                        PrefsChangedSignalData *signal_data = g_new0 (PrefsChangedSignalData, 1);
400
427
                        g_free (instance);
401
428
 
402
429
                        /* update this item from the list holding the path prefs */
403
 
                        GSList *tmp = NULL;
 
430
                        GSList* tmp = NULL;
404
431
                        tmp = g_slist_nth (self->menu_bar_prefs->dirs, signal_data->instance);
405
432
                        g_free (tmp->data);
406
433
                        tmp->data = (gpointer)g_strdup (new_path);
407
 
                        
 
434
 
408
435
                        /* emit the signal so the panel menu bar updates itself */
409
 
                        g_signal_emit (G_OBJECT (data),
 
436
                        g_signal_emit (G_OBJECT (self),
410
437
                                                   applet_preferences_signals [PREFS_CHANGED],
411
438
                                                   0,
412
439
                                                   signal_data);
421
448
}
422
449
/******************************************************************************/
423
450
static void
424
 
applet_preferences_on_add_dir_clicked (GtkWidget *widget, gpointer data) {
425
 
        GtkTreeModel *model;
426
 
        GtkTreeIter   iter;
427
 
        GtkWidget *file_chooser_dialog;
428
 
        AppletPreferences *self = (AppletPreferences *)data;
429
 
        GtkWidget *tree_view = self->priv->tree_view;
 
451
applet_preferences_on_add_dir_clicked (GtkWidget* widget, AppletPreferences* self) {
 
452
        if (DEBUG) g_printf ("In %s\n", __FUNCTION__);
 
453
 
 
454
        g_return_if_fail (self == NULL || IS_APPLET_PREFERENCES (self));
 
455
 
 
456
        GtkTreeModel* model;
 
457
        GtkTreeIter       iter;
 
458
        GtkWidget*        file_chooser_dialog;
 
459
        GtkWidget*        tree_view = self->priv->tree_view;
430
460
 
431
461
        file_chooser_dialog = gtk_file_chooser_dialog_new ("Select Folder To Add",
432
462
                                                                                                           NULL,
437
467
                                                                                                           GTK_RESPONSE_ACCEPT,
438
468
                                                                                                           NULL);
439
469
        /* Set the starting path */
440
 
        gchar *start_path = g_strdup_printf ("%s/*", g_get_home_dir ());
 
470
        gchar* start_path = g_strdup_printf ("%s/*", g_get_home_dir ());
441
471
        gtk_file_chooser_set_filename (GTK_FILE_CHOOSER (file_chooser_dialog),
442
472
                                                                   start_path);
443
473
        g_free (start_path);
445
475
        /* check the reply */
446
476
        if (gtk_dialog_run (GTK_DIALOG (file_chooser_dialog)) == GTK_RESPONSE_ACCEPT) {
447
477
                /* get the new path, and make the label from it */
448
 
                gchar *dir = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (file_chooser_dialog));
449
 
                gchar *label = g_path_get_basename (dir);
 
478
                gchar* dir = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (file_chooser_dialog));
 
479
                gchar* label = g_path_get_basename (dir);
450
480
                /* get the view's model, add a row and set the values */
451
481
                model = gtk_tree_view_get_model (GTK_TREE_VIEW(tree_view));
452
482
                gtk_list_store_append (GTK_LIST_STORE(model), &iter);
456
486
                                                        -1);
457
487
 
458
488
                /* create the data structure with the event info to pass to panel_menu_bar */
459
 
                PrefsChangedSignalData *signal_data = g_new0 (PrefsChangedSignalData, 1);
 
489
                PrefsChangedSignalData* signal_data = g_new0 (PrefsChangedSignalData, 1);
460
490
                signal_data->signal_id = PREFS_SIGNAL_DIR_ADD;
461
491
                signal_data->instance  = -1;
462
492
                signal_data->label         = label;
467
497
                self->menu_bar_prefs->labels = g_slist_append (self->menu_bar_prefs->labels, g_strdup(label));
468
498
 
469
499
                /* emit the signal so the panel menu bar updates itself */
470
 
                g_signal_emit (G_OBJECT (data),
 
500
                g_signal_emit (G_OBJECT (self),
471
501
                                           applet_preferences_signals [PREFS_CHANGED],
472
502
                                           0,
473
503
                                           signal_data);
480
510
}
481
511
/******************************************************************************/
482
512
static void
483
 
applet_preferences_on_rem_dir_clicked (GtkWidget *widget, gpointer data) {
 
513
applet_preferences_on_rem_dir_clicked (GtkWidget* widget, AppletPreferences* self) {
 
514
        if (DEBUG) g_printf ("In %s\n", __FUNCTION__);
 
515
 
 
516
        g_return_if_fail (self == NULL || IS_APPLET_PREFERENCES (self));
 
517
 
484
518
        GtkTreeSelection        *selection;
485
519
        GtkTreeModel            *model;
486
520
        GtkTreeIter                     iter;
487
 
        AppletPreferences       *self = (AppletPreferences *)data;
488
521
        GtkWidget                       *tree_view = self->priv->tree_view;
489
522
 
490
523
        /* get the current selection */
495
528
        if (gtk_tree_selection_get_selected (selection, &model, &iter)) {
496
529
 
497
530
                /* get the instance from the iterator */
498
 
                gchar *instance = gtk_tree_model_get_string_from_iter (model, &iter);
 
531
                gchar* instance = gtk_tree_model_get_string_from_iter (model, &iter);
499
532
 
500
533
                gtk_list_store_remove (GTK_LIST_STORE (model), &iter);
501
534
 
502
535
                /* create the data structure with the event info to pass to panel_menu_bar */
503
 
                PrefsChangedSignalData *signal_data = g_new0 (PrefsChangedSignalData, 1);
 
536
                PrefsChangedSignalData* signal_data = g_new0 (PrefsChangedSignalData, 1);
504
537
                signal_data->signal_id = PREFS_SIGNAL_DIR_DEL;
505
538
                signal_data->instance  = atoi (instance);
506
539
                signal_data->label         = NULL;
508
541
                g_free (instance);
509
542
 
510
543
                /* remove this item from the list holding the path/label prefs */
511
 
                GSList *tmp = NULL;
 
544
                GSList* tmp = NULL;
512
545
                tmp = g_slist_nth (self->menu_bar_prefs->dirs, signal_data->instance);
513
546
                g_free (tmp->data);
514
547
                self->menu_bar_prefs->dirs = g_slist_delete_link (self->menu_bar_prefs->dirs, tmp);
517
550
                self->menu_bar_prefs->labels = g_slist_delete_link (self->menu_bar_prefs->labels, tmp);
518
551
 
519
552
                /* emit the signal so the panel menu bar updates itself */
520
 
                g_signal_emit (G_OBJECT (data),
 
553
                g_signal_emit (G_OBJECT (self),
521
554
                                applet_preferences_signals [PREFS_CHANGED],
522
555
                                0,
523
556
                                signal_data);
530
563
}
531
564
/******************************************************************************/
532
565
static void
533
 
applet_preferences_on_down_dir_clicked (GtkWidget *widget, gpointer data) {
 
566
applet_preferences_on_down_dir_clicked (GtkWidget* widget, AppletPreferences* self) {
 
567
        if (DEBUG) g_printf ("In %s\n", __FUNCTION__);
 
568
 
 
569
        g_return_if_fail (self == NULL || IS_APPLET_PREFERENCES (self));
 
570
 
534
571
        GtkTreeSelection        *selection = NULL;
535
572
        GtkTreeModel            *model = NULL;
536
573
        GtkTreeIter                     iter, iter_next;
537
 
        AppletPreferences       *self = (AppletPreferences *)data;
538
574
        GtkWidget                       *tree_view = self->priv->tree_view;
539
575
 
540
576
        /* get the current selection */
548
584
                if (gtk_tree_model_iter_next (GTK_TREE_MODEL (model), &iter_next)){
549
585
 
550
586
                        /* get the instance from the iterator */
551
 
                        gchar *instance = gtk_tree_model_get_string_from_iter (model, &iter);
 
587
                        gchar* instance = gtk_tree_model_get_string_from_iter (model, &iter);
552
588
 
553
589
                        gtk_list_store_swap (GTK_LIST_STORE (model),
554
590
                                                                 &iter,
555
591
                                                                 &iter_next);
556
592
 
557
593
                        /* create the data structure with the event info to pass to panel_menu_bar */
558
 
                        PrefsChangedSignalData *signal_data = g_new0 (PrefsChangedSignalData, 1);
 
594
                        PrefsChangedSignalData* signal_data = g_new0 (PrefsChangedSignalData, 1);
559
595
                        signal_data->signal_id = PREFS_SIGNAL_DIR_MOVE_DOWN;
560
596
                        signal_data->instance  = atoi (instance);
561
597
                        signal_data->label         = NULL;
567
603
                        g_slist_swap_data (self->menu_bar_prefs->labels, signal_data->instance);
568
604
 
569
605
                        /* emit the signal so the panel menu bar updates itself */
570
 
                        g_signal_emit (G_OBJECT (data),
 
606
                        g_signal_emit (G_OBJECT (self),
571
607
                                        applet_preferences_signals [PREFS_CHANGED],
572
608
                                        0,
573
609
                                        signal_data);
580
616
}
581
617
/******************************************************************************/
582
618
static void
583
 
applet_preferences_on_up_dir_clicked (GtkWidget *widget, gpointer data) {
 
619
applet_preferences_on_up_dir_clicked (GtkWidget* widget, AppletPreferences* self) {
 
620
        if (DEBUG) g_printf ("In %s\n", __FUNCTION__);
 
621
 
 
622
        g_return_if_fail (self == NULL || IS_APPLET_PREFERENCES (self));
 
623
 
584
624
        GtkTreeSelection        *selection      = NULL;
585
625
        GtkTreeModel            *model          = NULL;
586
626
        GtkTreeIter                     iter, iter_prev;
587
627
        GtkTreePath                     *path;
588
 
        AppletPreferences       *self           = (AppletPreferences *)data;
589
628
        GtkWidget                       *tree_view      = self->priv->tree_view;
590
629
 
591
630
        /* get the current selection */
603
642
                        gtk_tree_model_get_iter (model, &iter_prev, path);
604
643
 
605
644
                        /* get the instance from the iterator */
606
 
                        gchar *instance = gtk_tree_model_get_string_from_iter (model, &iter);
 
645
                        gchar* instance = gtk_tree_model_get_string_from_iter (model, &iter);
607
646
 
608
647
                        gtk_list_store_swap (GTK_LIST_STORE (model),
609
648
                                                                 &iter,
610
649
                                                                 &iter_prev);
611
650
 
612
651
                        /* create the data structure with the event info to pass to panel_menu_bar */
613
 
                        PrefsChangedSignalData *signal_data = g_new0 (PrefsChangedSignalData, 1);
 
652
                        PrefsChangedSignalData* signal_data = g_new0 (PrefsChangedSignalData, 1);
614
653
                        signal_data->signal_id = PREFS_SIGNAL_DIR_MOVE_UP;
615
654
                        signal_data->instance  = atoi (instance);
616
655
                        signal_data->label         = NULL;
622
661
                        g_slist_swap_data (self->menu_bar_prefs->labels, signal_data->instance - 1);
623
662
 
624
663
                        /* emit the signal so the panel menu bar updates itself */
625
 
                        g_signal_emit (G_OBJECT (data),
 
664
                        g_signal_emit (G_OBJECT (self),
626
665
                                                   applet_preferences_signals [PREFS_CHANGED],
627
666
                                                   0,
628
667
                                                   signal_data);
636
675
}
637
676
/******************************************************************************/
638
677
static void
639
 
applet_preferences_create_list_view (AppletPreferences *self) {
 
678
applet_preferences_create_list_view (AppletPreferences* self) {
 
679
        if (DEBUG) g_printf ("In %s\n", __FUNCTION__);
 
680
 
 
681
        g_return_if_fail (self == NULL || IS_APPLET_PREFERENCES (self));
 
682
 
640
683
        GtkTreeIter                     iter;
641
684
        GtkListStore            *store;
642
685
        GtkTreeViewColumn       *column;
650
693
                                                            G_TYPE_STRING);
651
694
 
652
695
        /* fill the model with data */
653
 
        GSList *tmp_dir   = self->menu_bar_prefs->dirs;
654
 
        GSList *tmp_label = self->menu_bar_prefs->labels;
 
696
        GSList* tmp_dir   = self->menu_bar_prefs->dirs;
 
697
        GSList* tmp_label = self->menu_bar_prefs->labels;
655
698
        while (tmp_label && tmp_dir) {
656
699
                gtk_list_store_append (store, &iter);
657
700
                gtk_list_store_set (store, &iter,
676
719
        g_signal_connect (G_OBJECT (renderer),
677
720
                                          "edited",
678
721
                                          G_CALLBACK (applet_preferences_label_cell_edited),
679
 
                                          (gpointer) self);
 
722
                                          self);
680
723
 
681
724
        /* Create a column, associating the "text" attribute of the
682
725
        * cell_renderer to the first column of the model */
691
734
        g_signal_connect (G_OBJECT (self->priv->tree_view),
692
735
                                          "row-activated",
693
736
                                          G_CALLBACK (applet_preferences_path_cell_activated),
694
 
                                          (gpointer) self);
 
737
                                          self);
695
738
        column = gtk_tree_view_column_new_with_attributes ("Path", renderer,
696
739
                                                                                                           "text", PATH_COLUMN,
697
740
                                                                                                           NULL);
700
743
        /*put the selection in SINGLE mode */
701
744
        selection = gtk_tree_view_get_selection (GTK_TREE_VIEW(self->priv->tree_view));
702
745
        gtk_tree_selection_set_mode (selection, GTK_SELECTION_SINGLE);
703
 
        
 
746
 
704
747
        return;
705
748
}
706
749
/******************************************************************************/
707
750
void
708
 
applet_preferences_make_dialog (AppletPreferences *self) {
 
751
applet_preferences_make_dialog (AppletPreferences* self) {
 
752
        if (DEBUG) g_printf ("In %s\n", __FUNCTION__);
 
753
 
709
754
        g_return_if_fail (self == NULL || IS_APPLET_PREFERENCES (self));
710
755
 
711
 
        GtkWidget *window;
712
 
    GtkWidget *show_icon;
713
 
    GtkWidget *icon_button;
714
 
    GtkWidget *show_hidden;
715
 
    GtkWidget *terminal;
716
 
    GtkWidget *editor;
717
 
        MenuBarPrefs *mb_prefs = self->menu_bar_prefs;
 
756
        GtkWidget* window;
 
757
    GtkWidget* show_icon;
 
758
    GtkWidget* icon_button;
 
759
    GtkWidget* show_hidden;
 
760
    GtkWidget* terminal;
 
761
    GtkWidget* editor;
 
762
        MenuBarPrefs* mb_prefs = self->menu_bar_prefs;
718
763
 
719
764
        if (self->priv->window == NULL) {
720
 
                GladeXML *xml = glade_xml_new (GLADEUI_PATH, NULL, NULL);
 
765
                GladeXML* xml = glade_xml_new (GLADEUI_PATH, NULL, NULL);
721
766
                g_return_if_fail (xml != NULL);
722
767
                window = glade_xml_get_widget (xml, "preferences_dialog");
723
768
 
724
769
                g_signal_connect (G_OBJECT (GTK_DIALOG (window)),
725
770
                                                  "response",
726
771
                                                  G_CALLBACK (applet_preferences_dialog_response),
727
 
                                                  (gpointer) self);
 
772
                                                  self);
728
773
 
729
774
                g_signal_connect (G_OBJECT (window),
730
775
                                                  "delete_event",
731
776
                                                  G_CALLBACK (gtk_widget_hide),
732
 
                                                  (gpointer) self);
 
777
                                                  self);
733
778
 
734
779
                /***** terminal *****/
735
780
                terminal = glade_xml_get_widget (xml, "terminal_entry");
736
781
                gtk_entry_set_width_chars (GTK_ENTRY (terminal), 10);
737
782
                gtk_entry_set_text (GTK_ENTRY (terminal),
738
783
                                                        mb_prefs->browser_prefs->terminal);
739
 
                g_signal_connect (G_OBJECT (terminal),                  
 
784
                g_signal_connect (G_OBJECT (terminal),
740
785
                                                  "changed",
741
786
                                                  G_CALLBACK (applet_preferences_on_terminal_changed),
742
 
                                                  (gpointer)self);
 
787
                                                  self);
743
788
 
744
789
                /***** editor *****/
745
790
                editor = glade_xml_get_widget (xml, "editor_entry");
746
791
                gtk_entry_set_width_chars (GTK_ENTRY (editor), 10);
747
792
                gtk_entry_set_text (GTK_ENTRY (editor),
748
793
                                                        mb_prefs->browser_prefs->editor);
749
 
                g_signal_connect (G_OBJECT (editor),                    
 
794
                g_signal_connect (G_OBJECT (editor),
750
795
                                                  "changed",
751
796
                                                  G_CALLBACK (applet_preferences_on_editor_changed),
752
 
                                                  (gpointer)self);
 
797
                                                  self);
753
798
 
754
799
                /***** show hidden *****/
755
800
                show_hidden = glade_xml_get_widget (xml, "show_hidden_check");
758
803
                g_signal_connect (G_OBJECT (show_hidden),
759
804
                                                  "toggled",
760
805
                                                  G_CALLBACK (applet_preferences_on_show_hidden_pressed),
761
 
                                                  (gpointer)self);
 
806
                                                  self);
762
807
 
763
808
                /***** icon *****/
764
809
                show_icon = glade_xml_get_widget (xml, "show_icon_check");
767
812
                g_signal_connect (G_OBJECT (show_icon),
768
813
                                                  "toggled",
769
814
                                                  G_CALLBACK (applet_preferences_on_show_icon_pressed),
770
 
                                                  (gpointer)self);
 
815
                                                  self);
771
816
 
772
817
                icon_button = glade_xml_get_widget (xml, "icon_button");
773
 
                GtkWidget *icon = utils_get_scaled_image_from_file (mb_prefs->icon, ICON_BUTTON_SIZE);
 
818
                GtkWidget* icon = utils_get_scaled_image_from_file (mb_prefs->icon, ICON_BUTTON_SIZE);
774
819
                if (icon == NULL) {
775
820
                        icon = gtk_image_new_from_icon_name ("user-home", GTK_ICON_SIZE_BUTTON);
776
821
                }
778
823
                g_signal_connect (G_OBJECT (icon_button),
779
824
                                                  "released",
780
825
                                                  G_CALLBACK (applet_preferences_on_icon_select),
781
 
                                                  (gpointer)self);
 
826
                                                  self);
782
827
 
783
828
                /***** dirs/labels **/
784
829
                self->priv->tree_view = glade_xml_get_widget (xml, "directories_tree");
785
830
                applet_preferences_create_list_view (self);
786
831
 
787
832
                /***** more buttons ******/
788
 
                GtkWidget *add_button  = glade_xml_get_widget (xml, "directory_add_button");
789
 
                GtkWidget *rem_button  = glade_xml_get_widget (xml, "directory_remove_button");
790
 
                GtkWidget *up_button   = glade_xml_get_widget (xml, "move_up_button");
791
 
                GtkWidget *down_button = glade_xml_get_widget (xml, "move_down_button");
 
833
                GtkWidget* add_button  = glade_xml_get_widget (xml, "directory_add_button");
 
834
                GtkWidget* rem_button  = glade_xml_get_widget (xml, "directory_remove_button");
 
835
                GtkWidget* up_button   = glade_xml_get_widget (xml, "move_up_button");
 
836
                GtkWidget* down_button = glade_xml_get_widget (xml, "move_down_button");
792
837
 
793
838
 
794
839
                g_signal_connect (G_OBJECT (add_button),
795
840
                                                  "released",
796
841
                                                  G_CALLBACK (applet_preferences_on_add_dir_clicked),
797
 
                                                  (gpointer) self);
 
842
                                                  self);
798
843
                g_signal_connect (G_OBJECT (rem_button),
799
844
                                                  "released",
800
845
                                                  G_CALLBACK (applet_preferences_on_rem_dir_clicked),
801
 
                                                  (gpointer) self);
 
846
                                                  self);
802
847
                g_signal_connect (G_OBJECT (up_button),
803
848
                                                  "released",
804
849
                                                  G_CALLBACK (applet_preferences_on_up_dir_clicked),
805
 
                                                  (gpointer) self);
 
850
                                                  self);
806
851
                g_signal_connect (G_OBJECT (down_button),
807
852
                                                  "released",
808
853
                                                  G_CALLBACK (applet_preferences_on_down_dir_clicked),
809
 
                                                  (gpointer) self);
 
854
                                                  self);
810
855
 
811
856
                /***** the end ******/
812
857
                self->priv->window = window;
818
863
        return;
819
864
}
820
865
/******************************************************************************/
821
 
static MenuBarPrefs *
822
 
applet_preferences_load_from_gconf (PanelApplet *applet) {
823
 
        GError *error = NULL;
824
 
 
825
 
        MenuBarPrefs *mb_prefs  = g_new0 (MenuBarPrefs, 1);
 
866
static MenuBarPrefs*
 
867
applet_preferences_load_from_gconf (PanelApplet* applet) {
 
868
        if (DEBUG) g_printf ("In %s\n", __FUNCTION__);
 
869
 
 
870
        g_return_val_if_fail (applet == NULL || PANEL_IS_APPLET (applet), NULL);
 
871
 
 
872
        GError* error = NULL;
 
873
 
 
874
        MenuBarPrefs* mb_prefs  = g_new0 (MenuBarPrefs, 1);
826
875
        mb_prefs->browser_prefs = g_new0 (BrowserPrefs, 1);
827
876
 
828
877
        /* this loads the default key's/values into the gconf entry for this applet
829
878
         * instance. It also check to make sure the values were retrieved properly
830
879
         * AND that they are valid */
831
880
        panel_applet_add_preferences (applet, "/schemas/apps/file-browser-applet/prefs", &error);
832
 
        if (utils_check_gerror (&error)) return NULL;   
 
881
        if (utils_check_gerror (&error)) return NULL;
833
882
 
834
883
        /* show hidden files? */
835
884
        mb_prefs->browser_prefs->show_hidden = panel_applet_gconf_get_bool (applet,
889
938
                                                                         &error);
890
939
        }
891
940
        /* directory list */
892
 
        GSList *dirs = panel_applet_gconf_get_list (applet,
 
941
        GSList* dirs = panel_applet_gconf_get_list (applet,
893
942
                                                                                           KEY_DIR,
894
943
                                                                                           GCONF_VALUE_STRING,
895
944
                                                                                           &error);
904
953
                                                                         &error);
905
954
        }
906
955
        /* labels list */
907
 
        GSList *labels = panel_applet_gconf_get_list (applet,
 
956
        GSList* labels = panel_applet_gconf_get_list (applet,
908
957
                                                                                             KEY_LABELS,
909
958
                                                                                             GCONF_VALUE_STRING,
910
959
                                                                                             &error);
926
975
/******************************************************************************/
927
976
AppletPreferences*
928
977
applet_preferences_new (PanelApplet* applet) {
929
 
        AppletPreferences *self;
 
978
        if (DEBUG) g_printf ("In %s\n", __FUNCTION__);
 
979
 
930
980
        g_return_val_if_fail (applet == NULL || PANEL_IS_APPLET (applet), NULL);
 
981
 
 
982
        AppletPreferences* self;
931
983
        self = g_object_newv (TYPE_APPLET_PREFERENCES, 0, NULL);
932
984
 
933
985
        self->menu_bar_prefs = applet_preferences_load_from_gconf (applet);
939
991
}
940
992
/******************************************************************************/
941
993
static void
942
 
applet_preferences_class_init (AppletPreferencesClass * klass) {
 
994
applet_preferences_class_init (AppletPreferencesClass* klass) {
 
995
        if (DEBUG) g_printf ("In %s\n", __FUNCTION__);
 
996
 
943
997
        applet_preferences_parent_class = g_type_class_peek_parent (klass);
944
998
        g_type_class_add_private (klass, sizeof (AppletPreferencesPrivate));
945
999
        G_OBJECT_CLASS (klass)->dispose = applet_preferences_dispose;
963
1017
}
964
1018
/******************************************************************************/
965
1019
static void
966
 
applet_preferences_init (AppletPreferences * self) {
 
1020
applet_preferences_init (AppletPreferences* self) {
 
1021
        if (DEBUG) g_printf ("In %s\n", __FUNCTION__);
 
1022
 
967
1023
        self->priv = APPLET_PREFERENCES_GET_PRIVATE (self);
968
1024
}
969
1025
/******************************************************************************/
970
1026
static void
971
 
applet_preferences_dispose (GObject * obj) {
972
 
        AppletPreferences * self;
 
1027
applet_preferences_dispose (GObject* obj) {
 
1028
        AppletPreferences* self;
973
1029
        self = APPLET_PREFERENCES (obj);
974
1030
        (self->priv->window == NULL ? NULL : (self->priv->window = (g_object_unref (self->priv->window), NULL)));
975
1031
        G_OBJECT_CLASS (applet_preferences_parent_class)->dispose (obj);
977
1033
/******************************************************************************/
978
1034
GType
979
1035
applet_preferences_get_type (void) {
 
1036
        if (DEBUG) g_printf ("In %s\n", __FUNCTION__);
 
1037
 
980
1038
        static GType applet_preferences_type_id = 0;
981
1039
        if (G_UNLIKELY (applet_preferences_type_id == 0)) {
982
1040
                static const GTypeInfo g_define_type_info = { sizeof (AppletPreferencesClass),