~ubuntu-branches/ubuntu/vivid/liferea/vivid-proposed

« back to all changes in this revision

Viewing changes to .pc/www-browser/src/ui/ui_prefs.c

  • Committer: Package Import Robot
  • Author(s): bojo42
  • Date: 2012-03-29 14:17:21 UTC
  • mfrom: (1.3.9) (3.2.5 sid)
  • Revision ID: package-import@ubuntu.com-20120329141721-tbfopcrc5797wxt7
Tags: 1.8.3-0.1ubuntu1
* New upstream release (LP: #290666, #371754, #741543, #716688)
* Merge from Debian unstable (LP: #935147), remaining changes:
* debian/patches:
  - drop gtk-status-icon.patch & notification-append as in upstream
  - drop fix_systray_behavior as mostly upstreamed and rest seems unused
  - 01_ubuntu_feedlists: update & rename, move planets to "Open Source"  
  - add_X-Ubuntu-Gettext-Domain: rebase
  - libunity.patch: rebase, apply before indicator patch (liferea_shell.c)
  - libindicate_increase_version.patch: exclude from libindicate.patch
  - deactivate libindicate.patch, seems partly upstreamed and needs rework
* debian/control: libindicate-dev, libindicate-gtk-dev & libunity-dev
* debian/liferea.indicate & liferea.install: ship indicator desktop file
* debian/rules: enable libindicate

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/**
2
 
 * @file ui_prefs.c program preferences
3
 
 *
4
 
 * Copyright (C) 2004-2006 Nathan J. Conrad <t98502@users.sourceforge.net>
5
 
 * Copyright (C) 2004-2009 Lars Lindner <lars.lindner@gmail.com>
6
 
 *
7
 
 * This program is free software; you can redistribute it and/or modify
8
 
 * it under the terms of the GNU General Public License as published by
9
 
 * the Free Software Foundation; either version 2 of the License, or
10
 
 * (at your option) any later version.
11
 
 *
12
 
 * This program is distributed in the hope that it will be useful,
13
 
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14
 
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15
 
 * GNU General Public License for more details.
16
 
 *
17
 
 * You should have received a copy of the GNU General Public License
18
 
 * along with this program; if not, write to the Free Software
19
 
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
20
 
 */
21
 
 
22
 
#include "ui/ui_prefs.h"
23
 
 
24
 
#ifdef HAVE_CONFIG_H
25
 
#  include <config.h>
26
 
#endif
27
 
 
28
 
#include <stdlib.h>
29
 
#include <string.h>
30
 
 
31
 
#include "common.h"
32
 
#include "conf.h"
33
 
#include "enclosure.h"
34
 
#include "favicon.h"
35
 
#include "feedlist.h"
36
 
#include "itemlist.h"
37
 
#include "social.h"
38
 
#include "ui/enclosure_list_view.h"
39
 
#include "ui/liferea_dialog.h"
40
 
#include "ui/liferea_shell.h"
41
 
#include "ui/ui_common.h"
42
 
#include "ui/ui_itemlist.h"
43
 
#include "ui/ui_tray.h"
44
 
#include "notification/notification.h"
45
 
 
46
 
/* file type tree store column ids */
47
 
enum fts_columns {
48
 
        FTS_TYPE,       /* file type name */
49
 
        FTS_CMD,        /* file cmd name */
50
 
        FTS_PTR,        /* pointer to config entry */
51
 
        FTS_LEN
52
 
};
53
 
 
54
 
extern GSList *htmlviewPlugins;
55
 
extern GSList *bookmarkSites;   /* from social.c */
56
 
extern GSList *linkSearchSites; /* from social.c */
57
 
 
58
 
static GtkWidget *prefdialog = NULL;
59
 
 
60
 
/** tool commands need to take an absolute file path as first %s and an URL as second %s */
61
 
static struct enclosureDownloadTool enclosure_download_commands[] = {
62
 
        { "wget -q -O %s %s", TRUE },
63
 
        { "curl -s -o %s %s", TRUE },
64
 
        { "dbus-send --session --print-reply --dest=org.gnome.gwget.ApplicationService /org/gnome/gwget/Gwget org.gnome.gwget.Application.OpenURI string:%s uint32:0", FALSE },
65
 
        { "kget %s", FALSE },
66
 
};
67
 
 
68
 
/** order must match enclosure_download_commands[] */
69
 
static gchar *enclosure_download_tool_options[] = { "wget", "curl", "gwget", "kget", NULL };
70
 
 
71
 
static struct browser browsers[] = {
72
 
        {
73
 
                "gnome", N_("GNOME Default Browser"), "gnome-open %s", 
74
 
                NULL, NULL,
75
 
                NULL, NULL,
76
 
                NULL, NULL
77
 
        },
78
 
        {
79
 
                /* tested with SeaMonkey 1.0.6 */
80
 
                "mozilla", "Mozilla", "mozilla %s",
81
 
                NULL, "mozilla -remote openURL(%s)",
82
 
                NULL, "mozilla -remote 'openURL(%s,new-window)'",
83
 
                NULL, "mozilla -remote 'openURL(%s,new-tab)'"
84
 
        },
85
 
        {
86
 
                /* tested with Firefox 1.5 and 2.0 */
87
 
                "firefox", "Firefox","firefox \"%s\"",
88
 
                NULL, "firefox -a firefox -remote \"openURL(%s)\"",
89
 
                NULL, "firefox -a firefox -remote 'openURL(%s,new-window)'",
90
 
                NULL, "firefox -a firefox -remote 'openURL(%s,new-tab)'"
91
 
        },
92
 
        {
93
 
                "opera", "Opera","opera \"%s\"",
94
 
                "opera \"%s\"", "opera -remote \"openURL(%s)\"",
95
 
                "opera -newwindow \"%s\"", NULL,
96
 
                "opera -newpage \"%s\"", NULL
97
 
        },
98
 
        {
99
 
                "epiphany", "Epiphany","epiphany \"%s\"",
100
 
                NULL, NULL,
101
 
                "epiphany \"%s\"", NULL,
102
 
                "epiphany -n \"%s\"", NULL
103
 
        },
104
 
        {
105
 
                "konqueror", "Konqueror", "kfmclient openURL \"%s\"",
106
 
                NULL, NULL,
107
 
                NULL, NULL,
108
 
                NULL, NULL
109
 
        },
110
 
        {       NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL }
111
 
};
112
 
 
113
 
/** GConf representation of toolbar styles */
114
 
static gchar * gui_toolbar_style_values[] = { "", "both", "both-horiz", "icons", "text", NULL };
115
 
 
116
 
static gchar * gui_toolbar_style_options[] = {
117
 
        N_("GNOME default"),
118
 
        N_("Text below icons"),
119
 
        N_("Text beside icons"),
120
 
        N_("Icons only"),
121
 
        N_("Text only"),
122
 
        NULL
123
 
};
124
 
 
125
 
static gchar * startup_update_options[] = {
126
 
        N_("Update out-dated feeds"),
127
 
        N_("Force update of all feeds"),
128
 
        N_("No feed update at all"),
129
 
        NULL
130
 
};
131
 
 
132
 
/* Note: these update interval literal should be kept in sync with the 
133
 
   ones in ui_subscription.c! */
134
 
    
135
 
static gchar * default_update_interval_unit_options[] = {
136
 
        N_("minutes"),
137
 
        N_("hours"),
138
 
        N_("days"),
139
 
        NULL
140
 
};
141
 
 
142
 
static gchar * browser_skim_key_options[] = {
143
 
        N_("Space"),
144
 
        N_("<Ctrl> Space"),
145
 
        N_("<Alt> Space"),
146
 
        NULL
147
 
};
148
 
 
149
 
gchar *
150
 
prefs_get_browser_command (struct browser *browser, gboolean remote, gboolean fallback)
151
 
{
152
 
        gchar   *cmd = NULL;
153
 
        gchar   *libname;
154
 
        gint    place = conf_get_int_value (BROWSER_PLACE);
155
 
 
156
 
        /* check for manual browser command */
157
 
        libname = conf_get_str_value (BROWSER_ID);
158
 
        if (g_str_equal (libname, "manual")) {
159
 
                /* retrieve user defined command... */
160
 
                cmd = conf_get_str_value (BROWSER_COMMAND);
161
 
        } else {
162
 
                /* non manual browser definitions... */
163
 
                if (browser) {
164
 
                        if (remote) {
165
 
                                switch (place) {
166
 
                                        case 1:
167
 
                                                cmd = browser->existingwinremote;
168
 
                                                break;
169
 
                                        case 2:
170
 
                                                cmd = browser->newwinremote;
171
 
                                                break;
172
 
                                        case 3:
173
 
                                                cmd = browser->newtabremote;
174
 
                                                break;
175
 
                                }
176
 
                        } else {
177
 
                                switch (place) {
178
 
                                        case 1:
179
 
                                                cmd = browser->existingwin;
180
 
                                                break;
181
 
                                        case 2:
182
 
                                                cmd = browser->newwin;
183
 
                                                break;
184
 
                                        case 3:
185
 
                                                cmd = browser->newtab;
186
 
                                                break;
187
 
                                }
188
 
                        }
189
 
 
190
 
                        if (fallback && !cmd)   /* Default when no special mode defined */
191
 
                                cmd = browser->defaultplace;
192
 
                }
193
 
 
194
 
                if (fallback && !cmd)   /* Last fallback: first browser default */
195
 
                        cmd = browsers[0].defaultplace;
196
 
        }
197
 
        g_free (libname);
198
 
                
199
 
        return cmd?g_strdup (cmd):NULL;
200
 
}
201
 
 
202
 
struct browser *
203
 
prefs_get_browser (void)
204
 
{
205
 
        gchar           *libname;
206
 
        struct browser  *browser = NULL;
207
 
        
208
 
        libname = conf_get_str_value (BROWSER_ID);
209
 
        if (!g_str_equal (libname, "manual")) {
210
 
                struct browser *iter;
211
 
                for (iter = browsers; iter->id != NULL; iter++) {
212
 
                        if (g_str_equal (libname, iter->id))
213
 
                                browser = iter;
214
 
                }
215
 
        }
216
 
        g_free (libname);
217
 
 
218
 
        return browser;
219
 
}
220
 
 
221
 
enclosureDownloadToolPtr
222
 
prefs_get_download_tool (void)
223
 
{
224
 
        /* FIXME: array boundary check */
225
 
        return &(enclosure_download_commands[conf_get_int_value (ENCLOSURE_DOWNLOAD_TOOL)]);
226
 
}
227
 
 
228
 
/*------------------------------------------------------------------------------*/
229
 
/* preference callbacks                                                         */
230
 
/*------------------------------------------------------------------------------*/
231
 
 
232
 
void
233
 
on_folderdisplaybtn_toggled (GtkToggleButton *togglebutton, gpointer user_data)
234
 
{
235
 
        gboolean enabled = gtk_toggle_button_get_active(togglebutton);
236
 
        conf_set_int_value(FOLDER_DISPLAY_MODE, (TRUE == enabled)?1:0);
237
 
}
238
 
 
239
 
void
240
 
on_folderhidereadbtn_toggled (GtkToggleButton *togglebutton, gpointer user_data)
241
 
{
242
 
        nodePtr displayedNode;
243
 
 
244
 
        gboolean enabled = gtk_toggle_button_get_active (togglebutton);
245
 
        conf_set_bool_value (FOLDER_DISPLAY_HIDE_READ, enabled);
246
 
        displayedNode = itemlist_get_displayed_node ();
247
 
        if (displayedNode) {
248
 
                itemlist_unload (FALSE);
249
 
                itemlist_load (displayedNode);
250
 
        }
251
 
}
252
 
 
253
 
void
254
 
on_trayiconoptionbtn_clicked (GtkButton *button, gpointer user_data)
255
 
{
256
 
        gboolean enabled = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(button));
257
 
        conf_set_bool_value (SHOW_TRAY_ICON, enabled);
258
 
        gtk_widget_set_sensitive (liferea_dialog_lookup (prefdialog, "newcountintraybtn"), enabled);
259
 
        gtk_widget_set_sensitive (liferea_dialog_lookup (prefdialog, "minimizetotraybtn"), enabled);
260
 
        gtk_widget_set_sensitive (liferea_dialog_lookup (prefdialog, "startintraybtn"), enabled);
261
 
}
262
 
 
263
 
void
264
 
on_popupwindowsoptionbtn_clicked (GtkButton *button, gpointer user_data)
265
 
{
266
 
        gboolean enabled = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (button));
267
 
        conf_set_bool_value (SHOW_POPUP_WINDOWS, enabled);
268
 
        notification_enable (conf_get_bool_value (SHOW_POPUP_WINDOWS));
269
 
}
270
 
 
271
 
static void
272
 
on_feed_startup_update_changed (gpointer user_data)
273
 
{
274
 
        conf_set_int_value (STARTUP_FEED_ACTION, gtk_combo_box_get_active (GTK_COMBO_BOX (liferea_dialog_lookup (prefdialog, "startupActionCombo"))));
275
 
}
276
 
 
277
 
void
278
 
on_browsercmd_changed (GtkEditable *editable, gpointer user_data)
279
 
{
280
 
        conf_set_str_value (BROWSER_COMMAND, gtk_editable_get_chars (editable,0,-1));
281
 
}
282
 
 
283
 
static void
284
 
on_browser_changed (GtkOptionMenu *optionmenu, gpointer user_data)
285
 
{
286
 
        gint num = GPOINTER_TO_INT (user_data);
287
 
 
288
 
        gtk_widget_set_sensitive (liferea_dialog_lookup (prefdialog, "browsercmd"), browsers[num].id == NULL);  
289
 
        gtk_widget_set_sensitive (liferea_dialog_lookup (prefdialog, "manuallabel"), browsers[num].id == NULL); 
290
 
 
291
 
        if (browsers[num].id == NULL)
292
 
                conf_set_str_value (BROWSER_ID, "manual");
293
 
        else
294
 
                conf_set_str_value (BROWSER_ID, browsers[num].id);
295
 
}
296
 
 
297
 
static void
298
 
on_browser_place_changed (GtkOptionMenu *optionmenu, gpointer user_data)
299
 
{
300
 
        int num = GPOINTER_TO_INT (user_data);
301
 
        
302
 
        conf_set_int_value (BROWSER_PLACE, num);
303
 
}
304
 
 
305
 
void
306
 
on_openlinksinsidebtn_clicked (GtkToggleButton *button, gpointer user_data)
307
 
{
308
 
        conf_set_bool_value (BROWSE_INSIDE_APPLICATION, gtk_toggle_button_get_active (button));
309
 
}
310
 
 
311
 
void
312
 
on_disablejavascript_toggled (GtkToggleButton *togglebutton, gpointer user_data)
313
 
{
314
 
        conf_set_bool_value (DISABLE_JAVASCRIPT, gtk_toggle_button_get_active (togglebutton));
315
 
}
316
 
 
317
 
void
318
 
on_enableplugins_toggled (GtkToggleButton *togglebutton, gpointer user_data)
319
 
{
320
 
        conf_set_bool_value (ENABLE_PLUGINS, gtk_toggle_button_get_active (togglebutton));
321
 
}
322
 
 
323
 
static void
324
 
on_socialsite_changed (GtkOptionMenu *optionmenu, gpointer user_data)
325
 
{
326
 
        social_set_bookmark_site ((gchar *)user_data);
327
 
}
328
 
 
329
 
static void
330
 
on_linksearchsite_changed (GtkOptionMenu *optionmenu, gpointer user_data)
331
 
{
332
 
        social_set_link_search_site ((gchar *)user_data);
333
 
}
334
 
 
335
 
static void
336
 
on_gui_toolbar_style_changed (gpointer user_data)
337
 
{
338
 
        gchar *style;
339
 
        gint value = gtk_combo_box_get_active (GTK_COMBO_BOX (user_data));
340
 
        conf_set_str_value (TOOLBAR_STYLE, gui_toolbar_style_values[value]);
341
 
 
342
 
        style = conf_get_toolbar_style ();
343
 
        liferea_shell_set_toolbar_style (style);
344
 
        g_free (style);
345
 
}
346
 
 
347
 
void
348
 
on_itemCountBtn_value_changed (GtkSpinButton *spinbutton, gpointer user_data)
349
 
{
350
 
        GtkAdjustment   *itemCount;
351
 
        
352
 
        itemCount = gtk_spin_button_get_adjustment (spinbutton);
353
 
        conf_set_int_value (DEFAULT_MAX_ITEMS, gtk_adjustment_get_value (itemCount));
354
 
}
355
 
 
356
 
void
357
 
on_default_update_interval_value_changed (GtkSpinButton *spinbutton, gpointer user_data)
358
 
{
359
 
        gint            updateInterval, intervalUnit;
360
 
        GtkWidget       *unitWidget, *valueWidget;
361
 
 
362
 
        unitWidget = liferea_dialog_lookup (prefdialog, "globalRefreshIntervalUnitComboBox");
363
 
        valueWidget = liferea_dialog_lookup (prefdialog, "globalRefreshIntervalSpinButton");
364
 
        intervalUnit = gtk_combo_box_get_active (GTK_COMBO_BOX (unitWidget));
365
 
        updateInterval = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (valueWidget));
366
 
 
367
 
        if (intervalUnit == 1)
368
 
                updateInterval *= 60;           /* hours */
369
 
        else if (intervalUnit == 2)
370
 
                updateInterval *= 1440;         /* days */
371
 
 
372
 
        conf_set_int_value (DEFAULT_UPDATE_INTERVAL, updateInterval);
373
 
}
374
 
 
375
 
static void
376
 
on_default_update_interval_unit_changed (gpointer user_data)
377
 
{
378
 
        on_default_update_interval_value_changed (NULL, NULL);
379
 
}
380
 
 
381
 
/*
382
 
void
383
 
on_menuselection_clicked (GtkButton *button, gpointer user_data)
384
 
{
385
 
        gint active_button;
386
 
        
387
 
        active_button = GPOINTER_TO_INT (gtk_object_get_data (GTK_OBJECT(button), "option_number"));
388
 
        switch (active_button) {
389
 
                case 1:
390
 
                        conf_set_bool_value (DISABLE_MENUBAR, FALSE);
391
 
                        conf_set_bool_value (DISABLE_TOOLBAR, FALSE);
392
 
                        break;
393
 
                case 2:
394
 
                        conf_set_bool_value (DISABLE_MENUBAR, FALSE);
395
 
                        conf_set_bool_value (DISABLE_TOOLBAR, TRUE);
396
 
                        break;
397
 
                case 3:
398
 
                        conf_set_bool_value (DISABLE_MENUBAR, TRUE);
399
 
                        conf_set_bool_value (DISABLE_TOOLBAR, FALSE);
400
 
                        break;
401
 
                default:
402
 
                        break;
403
 
        }
404
 
        
405
 
        liferea_shell_update_menubar ();
406
 
        liferea_shell_update_toolbar ();
407
 
}*/
408
 
 
409
 
static void
410
 
on_updateallfavicons_clicked (GtkButton *button, gpointer user_data)
411
 
{
412
 
        feedlist_foreach (node_update_favicon);
413
 
}
414
 
 
415
 
static void
416
 
on_proxyAutoDetect_clicked (GtkButton *button, gpointer user_data)
417
 
{
418
 
        conf_set_int_value (PROXY_DETECT_MODE, 0);
419
 
        gtk_widget_set_sensitive (GTK_WIDGET (liferea_dialog_lookup (prefdialog, "proxybox")), FALSE);
420
 
}
421
 
 
422
 
static void
423
 
on_noProxy_clicked (GtkButton *button, gpointer user_data)
424
 
{
425
 
        conf_set_int_value (PROXY_DETECT_MODE, 1);
426
 
        gtk_widget_set_sensitive (GTK_WIDGET (liferea_dialog_lookup (prefdialog, "proxybox")), FALSE);
427
 
}
428
 
 
429
 
static void
430
 
on_manualProxy_clicked (GtkButton *button, gpointer user_data)
431
 
{
432
 
        conf_set_int_value (PROXY_DETECT_MODE, 2);
433
 
        gtk_widget_set_sensitive (GTK_WIDGET (liferea_dialog_lookup (prefdialog, "proxybox")), TRUE);
434
 
}
435
 
 
436
 
void
437
 
on_useProxyAuth_toggled (GtkToggleButton *button, gpointer user_data)
438
 
{
439
 
        gboolean enabled = gtk_toggle_button_get_active (button);
440
 
        gtk_widget_set_sensitive (GTK_WIDGET (liferea_dialog_lookup (prefdialog, "proxyauthtable")), enabled);
441
 
        conf_set_bool_value (PROXY_USEAUTH, enabled);
442
 
}
443
 
 
444
 
void
445
 
on_proxyhostentry_changed (GtkEditable *editable, gpointer user_data)
446
 
{
447
 
        conf_set_str_value (PROXY_HOST, gtk_editable_get_chars (editable,0,-1));
448
 
}
449
 
 
450
 
void
451
 
on_proxyportentry_changed (GtkEditable *editable, gpointer user_data)
452
 
{
453
 
        conf_set_int_value (PROXY_PORT, atoi (gtk_editable_get_chars (editable,0,-1)));
454
 
}
455
 
 
456
 
void
457
 
on_proxyusernameentry_changed (GtkEditable *editable, gpointer user_data)
458
 
{
459
 
        conf_set_str_value (PROXY_USER, gtk_editable_get_chars (editable,0,-1));
460
 
}
461
 
 
462
 
void
463
 
on_proxypasswordentry_changed (GtkEditable *editable, gpointer user_data)
464
 
{
465
 
        conf_set_str_value (PROXY_PASSWD, gtk_editable_get_chars (editable,0,-1));
466
 
}
467
 
 
468
 
static void
469
 
on_skim_key_changed (gpointer user_data) 
470
 
{
471
 
        conf_set_int_value (BROWSE_KEY_SETTING, gtk_combo_box_get_active (GTK_COMBO_BOX (user_data)));
472
 
}
473
 
 
474
 
static void
475
 
on_enclosure_download_tool_changed (gpointer user_data)
476
 
{
477
 
        conf_set_int_value (ENCLOSURE_DOWNLOAD_TOOL, gtk_combo_box_get_active (GTK_COMBO_BOX (user_data)));
478
 
}
479
 
 
480
 
void on_enc_action_change_btn_clicked(GtkButton *button, gpointer user_data) {
481
 
        GtkTreeModel            *model;
482
 
        GtkTreeSelection        *selection;
483
 
        GtkTreeIter             iter;
484
 
        gpointer                type;
485
 
 
486
 
        selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(liferea_dialog_lookup(prefdialog, "enc_action_view")));
487
 
        if(gtk_tree_selection_get_selected(selection, &model, &iter)) {
488
 
                gtk_tree_model_get(model, &iter, FTS_PTR, &type, -1);
489
 
                ui_enclosure_change_type(type);
490
 
                gtk_tree_store_set(GTK_TREE_STORE(model), &iter, 
491
 
                                   FTS_CMD, ((encTypePtr)type)->cmd, -1);
492
 
        }
493
 
}
494
 
 
495
 
void
496
 
on_enc_action_remove_btn_clicked (GtkButton *button, gpointer user_data)
497
 
{
498
 
        GtkTreeModel            *model;
499
 
        GtkTreeSelection        *selection;
500
 
        GtkTreeIter             iter;
501
 
        gpointer                type;
502
 
 
503
 
        selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (liferea_dialog_lookup (prefdialog, "enc_action_view")));
504
 
        if (gtk_tree_selection_get_selected (selection, &model, &iter)) {
505
 
                gtk_tree_model_get (model, &iter, FTS_PTR, &type, -1);
506
 
                gtk_tree_store_remove (GTK_TREE_STORE (model), &iter);
507
 
                enclosure_mime_type_remove (type);
508
 
        }
509
 
}
510
 
 
511
 
void on_save_download_entry_changed(GtkEditable *editable, gpointer user_data) {
512
 
 
513
 
        conf_set_str_value(ENCLOSURE_DOWNLOAD_PATH, gtk_editable_get_chars(editable , 0, -1));
514
 
}
515
 
 
516
 
static void on_save_download_finished(const gchar *filename, gpointer user_data) {
517
 
        GtkWidget       *dialog = (GtkWidget *)user_data;
518
 
        gchar           *utfname;
519
 
        
520
 
        if(filename == NULL)
521
 
                return;
522
 
        
523
 
        utfname = g_filename_to_utf8(filename, -1, NULL, NULL, NULL);
524
 
 
525
 
        if(utfname != NULL) {
526
 
                gtk_entry_set_text(GTK_ENTRY(liferea_dialog_lookup(dialog, "save_download_entry")), utfname);
527
 
                conf_set_str_value(ENCLOSURE_DOWNLOAD_PATH, utfname);
528
 
        }
529
 
        
530
 
        g_free(utfname);
531
 
}
532
 
 
533
 
void on_save_download_select_btn_clicked(GtkButton *button, gpointer user_data) {
534
 
        const gchar *path = gtk_editable_get_chars(GTK_EDITABLE(liferea_dialog_lookup(prefdialog, "save_download_entry")), 0, -1);
535
 
        
536
 
        ui_choose_directory(_("Choose download directory"), GTK_STOCK_OPEN, on_save_download_finished, path, prefdialog);
537
 
}
538
 
 
539
 
void on_newcountintraybtn_clicked(GtkButton *button, gpointer user_data) {
540
 
 
541
 
        conf_set_bool_value(SHOW_NEW_COUNT_IN_TRAY, gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(button)));
542
 
}
543
 
 
544
 
void on_minimizetotraybtn_clicked(GtkButton *button, gpointer user_data) {
545
 
 
546
 
        conf_set_bool_value(DONT_MINIMIZE_TO_TRAY, gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(button)));
547
 
}
548
 
 
549
 
void
550
 
on_startintraybtn_clicked (GtkButton *button, gpointer user_data)
551
 
{
552
 
        conf_set_bool_value (START_IN_TRAY, gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (button)));
553
 
}
554
 
 
555
 
void
556
 
on_useAvahiSync_toggled (GtkToggleButton *button, gpointer user_data)
557
 
{
558
 
        gboolean enabled = gtk_toggle_button_get_active (button);
559
 
        gtk_widget_set_sensitive (GTK_WIDGET (liferea_dialog_lookup (prefdialog, "avahiServiceNameEntry")), enabled);
560
 
        gtk_widget_set_sensitive (GTK_WIDGET (liferea_dialog_lookup (prefdialog, "avahiServicePasswordEntry")), enabled);
561
 
        conf_set_bool_value (SYNC_AVAHI_ENABLED, enabled);
562
 
}
563
 
 
564
 
void
565
 
on_hidetoolbar_toggled (GtkToggleButton *button, gpointer user_data)
566
 
{
567
 
        conf_set_bool_value (DISABLE_TOOLBAR, gtk_toggle_button_get_active (button));
568
 
        liferea_shell_update_toolbar ();
569
 
}
570
 
 
571
 
/*------------------------------------------------------------------------------*/
572
 
/* preferences dialog callbacks                                                 */
573
 
/*------------------------------------------------------------------------------*/
574
 
 
575
 
static void ui_pref_destroyed_cb(GtkWidget *widget, void *data) {
576
 
 
577
 
        prefdialog = NULL;
578
 
}
579
 
 
580
 
void on_prefbtn_clicked(void) {
581
 
        GtkWidget               *widget, *entry, *menu;
582
 
        GtkAdjustment           *itemCount;
583
 
        GtkTreeStore            *treestore;
584
 
        GtkTreeViewColumn       *column;
585
 
        GSList                  *list;
586
 
        gchar                   *proxyport;
587
 
        gchar                   *configuredBrowser, *name;
588
 
        gboolean                enabled;
589
 
        int                     tmp, i;
590
 
        static int              manual;
591
 
        struct browser                  *iter;
592
 
        
593
 
        if (!prefdialog) {
594
 
                prefdialog = liferea_dialog_new (NULL, "prefdialog");
595
 
                g_signal_connect (G_OBJECT (prefdialog), "destroy", G_CALLBACK (ui_pref_destroyed_cb), NULL);
596
 
 
597
 
                /* Set up browser selection popup */
598
 
                menu = gtk_menu_new();
599
 
                for(i=0, iter = browsers; iter->id != NULL; iter++, i++) {
600
 
                        entry = gtk_menu_item_new_with_label(_(iter->display));
601
 
                        gtk_widget_show(entry);
602
 
                        gtk_container_add(GTK_CONTAINER(menu), entry);
603
 
                        g_signal_connect(G_OBJECT(entry), "activate", G_CALLBACK(on_browser_changed), GINT_TO_POINTER(i));
604
 
                }
605
 
                manual = i;
606
 
                /* This allows the user to choose their own browser by typing in the command. */
607
 
                entry = gtk_menu_item_new_with_label(_("Manual"));
608
 
                gtk_widget_show(entry);
609
 
                gtk_container_add(GTK_CONTAINER(menu), entry);
610
 
                g_signal_connect(G_OBJECT(entry), "activate", G_CALLBACK(on_browser_changed), GINT_TO_POINTER(i));
611
 
 
612
 
                gtk_option_menu_set_menu(GTK_OPTION_MENU(liferea_dialog_lookup(prefdialog, "browserpopup")), menu);
613
 
 
614
 
                /* Create location menu */
615
 
                menu = gtk_menu_new();
616
 
 
617
 
                entry = gtk_menu_item_new_with_label(_("Browser default"));
618
 
                gtk_widget_show(entry);
619
 
                gtk_container_add(GTK_CONTAINER(menu), entry);
620
 
                g_signal_connect(G_OBJECT(entry), "activate", G_CALLBACK(on_browser_place_changed), GINT_TO_POINTER(0));
621
 
 
622
 
                entry = gtk_menu_item_new_with_label(_("Existing window"));
623
 
                gtk_widget_show(entry);
624
 
                gtk_container_add(GTK_CONTAINER(menu), entry);
625
 
                g_signal_connect(G_OBJECT(entry), "activate", G_CALLBACK(on_browser_place_changed), GINT_TO_POINTER(1));
626
 
 
627
 
                entry = gtk_menu_item_new_with_label(_("New window"));
628
 
                gtk_widget_show(entry);
629
 
                gtk_container_add(GTK_CONTAINER(menu), entry);
630
 
                g_signal_connect(G_OBJECT(entry), "activate", G_CALLBACK(on_browser_place_changed), GINT_TO_POINTER(2));
631
 
 
632
 
                entry = gtk_menu_item_new_with_label(_("New tab"));
633
 
                gtk_widget_show(entry);
634
 
                gtk_container_add(GTK_CONTAINER(menu), entry);
635
 
                g_signal_connect(G_OBJECT(entry), "activate", G_CALLBACK(on_browser_place_changed), GINT_TO_POINTER(3));
636
 
 
637
 
                gtk_option_menu_set_menu(GTK_OPTION_MENU(liferea_dialog_lookup(prefdialog, "browserlocpopup")), menu);
638
 
 
639
 
                /* ================== panel 1 "feeds" ==================== */
640
 
 
641
 
                /* menu for feed startup update action */
642
 
                ui_common_setup_combo_menu (liferea_dialog_lookup (prefdialog, "startupActionCombo"),
643
 
                                            startup_update_options, 
644
 
                                            G_CALLBACK (on_feed_startup_update_changed),
645
 
                                            conf_get_int_value(STARTUP_FEED_ACTION));
646
 
 
647
 
                /* cache size setting */
648
 
                widget = liferea_dialog_lookup (prefdialog, "itemCountBtn");
649
 
                itemCount = gtk_spin_button_get_adjustment (GTK_SPIN_BUTTON (widget));
650
 
                gtk_adjustment_set_value (itemCount, conf_get_int_value (DEFAULT_MAX_ITEMS));
651
 
 
652
 
                /* set default update interval spin button and unit combo box */
653
 
                ui_common_setup_combo_menu (liferea_dialog_lookup (prefdialog, "globalRefreshIntervalUnitComboBox"),
654
 
                                            default_update_interval_unit_options,
655
 
                                            G_CALLBACK (on_default_update_interval_unit_changed),
656
 
                                            -1);
657
 
                                           
658
 
                widget = liferea_dialog_lookup (prefdialog, "globalRefreshIntervalUnitComboBox");
659
 
                tmp = conf_get_int_value (DEFAULT_UPDATE_INTERVAL);
660
 
                if (tmp % 1440 == 0) {          /* days */
661
 
                        gtk_combo_box_set_active (GTK_COMBO_BOX (widget), 2);
662
 
                        tmp /= 1440;
663
 
                } else if (tmp % 60 == 0) {     /* hours */
664
 
                        gtk_combo_box_set_active (GTK_COMBO_BOX (widget), 1);
665
 
                        tmp /= 60;
666
 
                } else {                        /* minutes */
667
 
                        gtk_combo_box_set_active (GTK_COMBO_BOX (widget), 0);
668
 
                }
669
 
                widget = liferea_dialog_lookup (prefdialog,"globalRefreshIntervalSpinButton");
670
 
                gtk_spin_button_set_value (GTK_SPIN_BUTTON (widget), tmp);
671
 
                g_signal_connect (G_OBJECT (widget), "changed", G_CALLBACK (on_default_update_interval_value_changed), NULL);
672
 
 
673
 
                /* ================== panel 2 "folders" ==================== */
674
 
 
675
 
                g_signal_connect(GTK_OBJECT(liferea_dialog_lookup(prefdialog, "updateAllFavicons")), "clicked", G_CALLBACK(on_updateallfavicons_clicked), NULL);        
676
 
                gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(liferea_dialog_lookup(prefdialog, "folderdisplaybtn")), (0 == conf_get_int_value(FOLDER_DISPLAY_MODE)?FALSE:TRUE));
677
 
                gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(liferea_dialog_lookup(prefdialog, "hidereadbtn")), (0 == conf_get_bool_value(FOLDER_DISPLAY_HIDE_READ)?FALSE:TRUE));
678
 
 
679
 
                /* ================== panel 3 "headlines" ==================== */
680
 
 
681
 
                ui_common_setup_combo_menu (liferea_dialog_lookup (prefdialog, "skimKeyCombo"),
682
 
                                            browser_skim_key_options,
683
 
                                            G_CALLBACK (on_skim_key_changed),
684
 
                                            conf_get_int_value (BROWSE_KEY_SETTING));
685
 
                                          
686
 
                /* Setup social bookmarking list */
687
 
                i = 0;
688
 
                name = conf_get_str_value (SOCIAL_BM_SITE);
689
 
                menu = gtk_menu_new ();
690
 
                list = bookmarkSites;
691
 
                while (list) {
692
 
                        socialSitePtr siter = list->data;
693
 
                        if (name && !strcmp (siter->name, name))
694
 
                                tmp = i;
695
 
                        entry = gtk_menu_item_new_with_label (siter->name);
696
 
                        gtk_widget_show (entry);
697
 
                        gtk_container_add (GTK_CONTAINER (menu), entry);
698
 
                        g_signal_connect (G_OBJECT (entry), "activate", G_CALLBACK (on_socialsite_changed), (gpointer)siter->name);
699
 
                        list = g_slist_next (list);
700
 
                        i++;
701
 
                }
702
 
                gtk_option_menu_set_menu (GTK_OPTION_MENU (liferea_dialog_lookup (prefdialog, "socialpopup")), menu);
703
 
                gtk_option_menu_set_history (GTK_OPTION_MENU (liferea_dialog_lookup (prefdialog, "socialpopup")), tmp);
704
 
                
705
 
                /* Setup link cosmos search engine list */
706
 
                i = 0;
707
 
                name = conf_get_str_value (SOCIAL_LINK_SEARCH_SITE);
708
 
                menu = gtk_menu_new ();
709
 
                list = linkSearchSites;
710
 
                while (list) {
711
 
                        socialSitePtr siter = list->data;
712
 
                        if (name && !strcmp (siter->name, name))
713
 
                                tmp = i;
714
 
                        entry = gtk_menu_item_new_with_label (siter->name);
715
 
                        gtk_widget_show (entry);
716
 
                        gtk_container_add (GTK_CONTAINER (menu), entry);
717
 
                        g_signal_connect (G_OBJECT (entry), "activate", G_CALLBACK (on_linksearchsite_changed), (gpointer)siter->name);
718
 
                        list = g_slist_next (list);
719
 
                        i++;
720
 
                }
721
 
                gtk_option_menu_set_menu (GTK_OPTION_MENU (liferea_dialog_lookup (prefdialog, "searchpopup")), menu);
722
 
                gtk_option_menu_set_history (GTK_OPTION_MENU (liferea_dialog_lookup (prefdialog, "searchpopup")), tmp);
723
 
                
724
 
 
725
 
                /* ================== panel 4 "browser" ==================== */
726
 
 
727
 
                /* set the inside browsing flag */
728
 
                widget = liferea_dialog_lookup(prefdialog, "browseinwindow");
729
 
                gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), conf_get_bool_value(BROWSE_INSIDE_APPLICATION));
730
 
 
731
 
                /* set the javascript-disabled flag */
732
 
                widget = liferea_dialog_lookup(prefdialog, "disablejavascript");
733
 
                gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), conf_get_bool_value(DISABLE_JAVASCRIPT));
734
 
                
735
 
                /* set the enable Plugins flag */
736
 
                widget = liferea_dialog_lookup(prefdialog, "enableplugins");
737
 
                gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), conf_get_bool_value(ENABLE_PLUGINS));
738
 
 
739
 
                tmp = 0;
740
 
                configuredBrowser = conf_get_str_value(BROWSER_ID);
741
 
 
742
 
                if(!strcmp(configuredBrowser, "manual"))
743
 
                        tmp = manual;
744
 
                else
745
 
                        for(i=0, iter = browsers; iter->id != NULL; iter++, i++)
746
 
                                if(!strcmp(configuredBrowser, iter->id))
747
 
                                        tmp = i;
748
 
 
749
 
                gtk_option_menu_set_history(GTK_OPTION_MENU(liferea_dialog_lookup(prefdialog, "browserpopup")), tmp);
750
 
                g_free(configuredBrowser);
751
 
 
752
 
                gtk_option_menu_set_history(GTK_OPTION_MENU(liferea_dialog_lookup(prefdialog, "browserlocpopup")), conf_get_int_value(BROWSER_PLACE));
753
 
 
754
 
                entry = liferea_dialog_lookup(prefdialog, "browsercmd");
755
 
                gtk_entry_set_text(GTK_ENTRY(entry), conf_get_str_value(BROWSER_COMMAND));
756
 
                gtk_widget_set_sensitive(GTK_WIDGET(entry), tmp==manual);
757
 
                gtk_widget_set_sensitive(liferea_dialog_lookup(prefdialog, "manuallabel"), tmp==manual);        
758
 
 
759
 
                /* ================== panel 4 "GUI" ================ */
760
 
 
761
 
                widget = liferea_dialog_lookup (prefdialog, "popupwindowsoptionbtn");
762
 
                gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), conf_get_bool_value (SHOW_POPUP_WINDOWS));
763
 
                
764
 
                widget = liferea_dialog_lookup (prefdialog, "trayiconoptionbtn");
765
 
                gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), conf_get_bool_value (SHOW_TRAY_ICON));
766
 
 
767
 
                widget = liferea_dialog_lookup (prefdialog, "newcountintraybtn");
768
 
                gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), conf_get_bool_value (SHOW_NEW_COUNT_IN_TRAY));
769
 
                gtk_widget_set_sensitive (liferea_dialog_lookup (prefdialog, "newcountintraybtn"), conf_get_bool_value (SHOW_TRAY_ICON));
770
 
 
771
 
                widget = liferea_dialog_lookup (prefdialog, "minimizetotraybtn");
772
 
                gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), conf_get_bool_value (DONT_MINIMIZE_TO_TRAY));
773
 
                gtk_widget_set_sensitive (liferea_dialog_lookup (prefdialog, "minimizetotraybtn"), conf_get_bool_value (SHOW_TRAY_ICON));
774
 
                
775
 
                widget = liferea_dialog_lookup (prefdialog, "startintraybtn");
776
 
                gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), conf_get_bool_value (START_IN_TRAY));
777
 
                gtk_widget_set_sensitive (liferea_dialog_lookup (prefdialog, "startintraybtn"), conf_get_bool_value (SHOW_TRAY_ICON));
778
 
 
779
 
                /* tool bar settings */ 
780
 
                widget = liferea_dialog_lookup (prefdialog, "hidetoolbarbtn");
781
 
                gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), conf_get_bool_value(DISABLE_TOOLBAR));
782
 
 
783
 
                /* select currently active toolbar style option */
784
 
                name = conf_get_str_value (TOOLBAR_STYLE);
785
 
                for (i = 0; gui_toolbar_style_values[i] != NULL; ++i) {
786
 
                        if (strcmp (name, gui_toolbar_style_values[i]) == 0)
787
 
                                break;
788
 
                }
789
 
                g_free (name);
790
 
 
791
 
                /* On invalid key value: revert to default */
792
 
                if (gui_toolbar_style_values[i] == NULL)
793
 
                        i = 0;
794
 
 
795
 
                /* create toolbar style menu */
796
 
                ui_common_setup_combo_menu (liferea_dialog_lookup (prefdialog, "toolbarCombo"),
797
 
                                            gui_toolbar_style_options,
798
 
                                            G_CALLBACK (on_gui_toolbar_style_changed),
799
 
                                            i);
800
 
 
801
 
                /* ================= panel 5 "proxy" ======================== */
802
 
                proxyport = g_strdup_printf ("%d", conf_get_int_value (PROXY_PORT));
803
 
                gtk_entry_set_text (GTK_ENTRY (liferea_dialog_lookup (prefdialog, "proxyhostentry")), conf_get_str_value(PROXY_HOST));
804
 
                gtk_entry_set_text (GTK_ENTRY (liferea_dialog_lookup (prefdialog, "proxyportentry")), proxyport);
805
 
                g_free (proxyport);
806
 
 
807
 
                enabled = conf_get_bool_value (PROXY_USEAUTH);
808
 
                gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (liferea_dialog_lookup (prefdialog, "useProxyAuth")), enabled);
809
 
                gtk_entry_set_text (GTK_ENTRY (liferea_dialog_lookup (prefdialog, "proxyusernameentry")), conf_get_str_value (PROXY_USER));
810
 
                gtk_entry_set_text (GTK_ENTRY (liferea_dialog_lookup (prefdialog, "proxypasswordentry")), conf_get_str_value (PROXY_PASSWD));
811
 
                gtk_widget_set_sensitive (GTK_WIDGET (liferea_dialog_lookup(prefdialog, "proxyauthtable")), enabled);
812
 
                        
813
 
                i = conf_get_int_value (PROXY_DETECT_MODE);
814
 
                switch (i) {
815
 
                        default:
816
 
                        case 0: /* proxy auto detect */
817
 
                                gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (liferea_dialog_lookup (prefdialog, "proxyAutoDetectRadio")), TRUE);
818
 
                                enabled = FALSE;
819
 
                                break;
820
 
                        case 1: /* no proxy */
821
 
                                gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (liferea_dialog_lookup (prefdialog, "noProxyRadio")), TRUE);
822
 
                                enabled = FALSE;
823
 
                                break;
824
 
                        case 2: /* manual proxy */
825
 
                                gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (liferea_dialog_lookup (prefdialog, "manualProxyRadio")), TRUE);
826
 
                                enabled = TRUE;
827
 
                                break;
828
 
                }
829
 
                gtk_widget_set_sensitive (GTK_WIDGET (liferea_dialog_lookup (prefdialog, "proxybox")), enabled);
830
 
                g_signal_connect (G_OBJECT (liferea_dialog_lookup (prefdialog, "proxyAutoDetectRadio")), "clicked", G_CALLBACK (on_proxyAutoDetect_clicked), NULL);
831
 
                g_signal_connect (G_OBJECT (liferea_dialog_lookup (prefdialog, "noProxyRadio")), "clicked", G_CALLBACK (on_noProxy_clicked), NULL);
832
 
                g_signal_connect (G_OBJECT (liferea_dialog_lookup (prefdialog, "manualProxyRadio")), "clicked", G_CALLBACK (on_manualProxy_clicked), NULL);
833
 
                g_signal_connect (G_OBJECT (liferea_dialog_lookup (prefdialog, "proxyhostentry")), "changed", G_CALLBACK (on_proxyhostentry_changed), NULL);
834
 
                g_signal_connect (G_OBJECT (liferea_dialog_lookup (prefdialog, "proxyportentry")), "changed", G_CALLBACK (on_proxyportentry_changed), NULL);
835
 
                g_signal_connect (G_OBJECT (liferea_dialog_lookup (prefdialog, "proxyusernameentry")), "changed", G_CALLBACK (on_proxyusernameentry_changed), NULL);
836
 
                g_signal_connect (G_OBJECT (liferea_dialog_lookup (prefdialog, "proxypasswordentry")), "changed", G_CALLBACK (on_proxypasswordentry_changed), NULL);
837
 
 
838
 
                /* ================= panel 6 "enclosures" ======================== */
839
 
 
840
 
                /* menu for download tool */
841
 
                ui_common_setup_combo_menu (liferea_dialog_lookup (prefdialog, "downloadToolCombo"),
842
 
                                            enclosure_download_tool_options,
843
 
                                            G_CALLBACK (on_enclosure_download_tool_changed),
844
 
                                            conf_get_int_value (ENCLOSURE_DOWNLOAD_TOOL));
845
 
 
846
 
                /* set enclosure download path entry */ 
847
 
                gtk_entry_set_text(GTK_ENTRY(liferea_dialog_lookup(prefdialog, "save_download_entry")), conf_get_str_value(ENCLOSURE_DOWNLOAD_PATH));
848
 
 
849
 
                /* set up list of configured enclosure types */
850
 
                treestore = gtk_tree_store_new(FTS_LEN, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_POINTER);
851
 
                list = (GSList *)enclosure_mime_types_get ();
852
 
                while (list) {
853
 
                        GtkTreeIter *newIter = g_new0(GtkTreeIter, 1);
854
 
                        gtk_tree_store_append(treestore, newIter, NULL);
855
 
                        gtk_tree_store_set(treestore, newIter,
856
 
                                           FTS_TYPE, (NULL != ((encTypePtr)(list->data))->mime)?((encTypePtr)(list->data))->mime:((encTypePtr)(list->data))->extension, 
857
 
                                           FTS_CMD, ((encTypePtr)(list->data))->cmd,
858
 
                                           FTS_PTR, list->data, 
859
 
                                           -1);
860
 
                        list = g_slist_next(list);
861
 
                }
862
 
 
863
 
                widget = liferea_dialog_lookup(prefdialog, "enc_action_view");
864
 
                gtk_tree_view_set_model(GTK_TREE_VIEW(widget), GTK_TREE_MODEL(treestore));
865
 
 
866
 
                column = gtk_tree_view_column_new_with_attributes(_("Type"), gtk_cell_renderer_text_new(), "text", FTS_TYPE, NULL);
867
 
                gtk_tree_view_append_column(GTK_TREE_VIEW(widget), column);
868
 
                gtk_tree_view_column_set_sort_column_id(column, FTS_TYPE);
869
 
                column = gtk_tree_view_column_new_with_attributes(_("Program"), gtk_cell_renderer_text_new(), "text", FTS_CMD, NULL);
870
 
                gtk_tree_view_column_set_sort_column_id(column, FTS_CMD);
871
 
                gtk_tree_view_append_column(GTK_TREE_VIEW(widget), column);
872
 
 
873
 
                gtk_tree_selection_set_mode(gtk_tree_view_get_selection(GTK_TREE_VIEW(widget)), GTK_SELECTION_SINGLE);
874
 
 
875
 
                /* ================= panel 7 "sync" ======================== */
876
 
 
877
 
                gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (liferea_dialog_lookup (prefdialog, "useAvahiSync")), conf_get_bool_value (SYNC_AVAHI_ENABLED));
878
 
                gtk_entry_set_text (GTK_ENTRY (liferea_dialog_lookup (prefdialog, "avahiServiceNameEntry")), conf_get_str_value (SYNC_AVAHI_SERVICE_NAME));             
879
 
                gtk_entry_set_text (GTK_ENTRY (liferea_dialog_lookup (prefdialog, "avahiServicePasswordEntry")), conf_get_str_value (SYNC_AVAHI_PASSWORD));
880
 
                gtk_widget_set_sensitive (GTK_WIDGET (liferea_dialog_lookup (prefdialog, "avahiServiceNameEntry")), conf_get_bool_value (SYNC_AVAHI_ENABLED));
881
 
                gtk_widget_set_sensitive (GTK_WIDGET (liferea_dialog_lookup (prefdialog, "avahiServicePasswordEntry")), conf_get_bool_value (SYNC_AVAHI_ENABLED));
882
 
        }       
883
 
        gtk_window_present(GTK_WINDOW(prefdialog));
884
 
}