83
90
GtkWidget *rating_check;
84
91
GtkWidget *play_count_check;
85
92
GtkWidget *last_played_check;
93
GtkWidget *first_seen_check;
86
94
GtkWidget *quality_check;
95
GtkWidget *year_check;
91
static GObjectClass *parent_class = NULL;
94
rb_shell_preferences_get_type (void)
96
static GType rb_shell_preferences_type = 0;
98
if (rb_shell_preferences_type == 0)
100
static const GTypeInfo our_info =
102
sizeof (RBShellPreferencesClass),
105
(GClassInitFunc) rb_shell_preferences_class_init,
108
sizeof (RBShellPreferences),
110
(GInstanceInitFunc) rb_shell_preferences_init
113
rb_shell_preferences_type = g_type_register_static (GTK_TYPE_DIALOG,
114
"RBShellPreferences",
118
return rb_shell_preferences_type;
100
G_DEFINE_TYPE (RBShellPreferences, rb_shell_preferences, GTK_TYPE_DIALOG)
122
103
rb_shell_preferences_class_init (RBShellPreferencesClass *klass)
124
105
GObjectClass *object_class = G_OBJECT_CLASS (klass);
126
parent_class = g_type_class_peek_parent (klass);
128
107
object_class->finalize = rb_shell_preferences_finalize;
256
241
RBSource *source)
258
243
GtkWidget *widget;
260
247
g_return_if_fail (RB_IS_SHELL_PREFERENCES (prefs));
261
248
g_return_if_fail (RB_IS_SOURCE (source));
263
250
widget = rb_source_get_config_widget (source);
253
label = gtk_label_new (name);
254
g_object_get (source, "visibility", &visible, NULL);
256
gtk_widget_set_sensitive (label, FALSE);
257
gtk_notebook_append_page (GTK_NOTEBOOK (prefs->priv->notebook),
262
#ifdef WITH_DAAP_SUPPORT
264
#define CONF_ENABLE_SHARING "/apps/rhythmbox/sharing/enable_sharing"
265
#define CONF_NAME "/apps/rhythmbox/sharing/share_name"
268
share_check_button_toggled_cb (GtkToggleButton *button, GtkWidget *hbox)
272
b = gtk_toggle_button_get_active (button);
274
eel_gconf_set_boolean (CONF_ENABLE_SHARING, b);
276
gtk_widget_set_sensitive (hbox, b);
282
share_name_entry_focus_out_event_cb (GtkEntry *entry, GdkEventFocus *event, gpointer data)
287
name = gtk_entry_get_text (entry);
288
old_name = eel_gconf_get_string (CONF_NAME);
290
if (strcmp (name, old_name) != 0)
291
eel_gconf_set_string (CONF_NAME, name);
299
add_daap_preferences (RBShellPreferences *shell_preferences)
309
xml = rb_glade_xml_new ("daap-prefs.glade",
313
check = glade_xml_get_widget (xml, "daap_enable_check");
314
entry = glade_xml_get_widget (xml, "daap_name_entry");
315
hbox = glade_xml_get_widget (xml, "daap_hbox");
317
b = eel_gconf_get_boolean (CONF_ENABLE_SHARING);
318
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (check), b);
319
g_signal_connect (G_OBJECT (check), "toggled", G_CALLBACK (share_check_button_toggled_cb), hbox);
321
name = eel_gconf_get_string (CONF_NAME);
322
gtk_entry_set_text (GTK_ENTRY (entry), name);
323
g_signal_connect (G_OBJECT (entry), "focus-out-event", G_CALLBACK (share_name_entry_focus_out_event_cb), NULL);
325
gtk_widget_set_sensitive (hbox, b);
327
gtk_notebook_append_page (GTK_NOTEBOOK (shell_preferences->priv->notebook),
328
glade_xml_get_widget (xml, "daap_vbox"),
329
gtk_label_new (_("Sharing")));
331
#endif /* WITH_DAAP_SUPPORT */
333
#ifdef WITH_AUDIOSCROBBLER
335
rb_shell_preferences_append_audioscrobbler_config (RBShellPreferences *prefs,
336
RBAudioscrobbler *audioscrobbler)
340
g_return_if_fail (RB_IS_SHELL_PREFERENCES (prefs));
342
widget = rb_audioscrobbler_get_config_widget (audioscrobbler);
344
rb_debug ("got widget!");
265
345
gtk_notebook_append_page (GTK_NOTEBOOK (prefs->priv->notebook),
267
gtk_label_new (name));
269
rb_debug ("No config widget for source %s", name);
347
gtk_label_new (_("Audioscrobbler")));
349
rb_debug ("No config widget for Audioscrobbler");
354
rb_shell_preferences_new (GList *views,
355
RBAudioscrobbler *audioscrobbler)
357
RBShellPreferences *shell_preferences;
359
shell_preferences = g_object_new (RB_TYPE_SHELL_PREFERENCES,
362
g_return_val_if_fail (shell_preferences->priv != NULL, NULL);
364
for (; views; views = views->next)
366
const char *name = NULL;
367
g_object_get (G_OBJECT (views->data), "name", &name, NULL);
368
g_assert (name != NULL);
369
rb_shell_preferences_append_view_page (shell_preferences,
371
RB_SOURCE (views->data));
374
rb_shell_preferences_append_audioscrobbler_config (shell_preferences,
273
378
rb_shell_preferences_new (GList *views)
275
380
RBShellPreferences *shell_preferences;
277
382
shell_preferences = g_object_new (RB_TYPE_SHELL_PREFERENCES,
280
385
g_return_val_if_fail (shell_preferences->priv != NULL, NULL);
387
520
columns = eel_gconf_get_string (CONF_UI_COLUMNS_SETUP);
388
521
if (columns != NULL)
390
gtk_toggle_button_set_active
391
(GTK_TOGGLE_BUTTON (shell_preferences->priv->artist_check),
392
strstr (columns, "RHYTHMDB_PROP_ARTIST") != NULL);
393
gtk_toggle_button_set_active
394
(GTK_TOGGLE_BUTTON (shell_preferences->priv->album_check),
395
strstr (columns, "RHYTHMDB_PROP_ALBUM") != NULL);
396
gtk_toggle_button_set_active
397
(GTK_TOGGLE_BUTTON (shell_preferences->priv->genre_check),
398
strstr (columns, "RHYTHMDB_PROP_GENRE") != NULL);
399
gtk_toggle_button_set_active
400
(GTK_TOGGLE_BUTTON (shell_preferences->priv->duration_check),
401
strstr (columns, "RHYTHMDB_PROP_DURATION") != NULL);
402
gtk_toggle_button_set_active
403
(GTK_TOGGLE_BUTTON (shell_preferences->priv->track_check),
404
strstr (columns, "RHYTHMDB_PROP_TRACK_NUMBER") != NULL);
405
gtk_toggle_button_set_active
406
(GTK_TOGGLE_BUTTON (shell_preferences->priv->rating_check),
407
strstr (columns, "RHYTHMDB_PROP_RATING") != NULL);
408
gtk_toggle_button_set_active
409
(GTK_TOGGLE_BUTTON (shell_preferences->priv->play_count_check),
410
strstr (columns, "RHYTHMDB_PROP_PLAY_COUNT") != NULL);
411
gtk_toggle_button_set_active
412
(GTK_TOGGLE_BUTTON (shell_preferences->priv->last_played_check),
413
strstr (columns, "RHYTHMDB_PROP_LAST_PLAYED") != NULL);
523
rb_shell_preferences_sync_column_button (shell_preferences,
524
shell_preferences->priv->artist_check,
525
columns, "RHYTHMDB_PROP_ARTIST");
526
rb_shell_preferences_sync_column_button (shell_preferences,
527
shell_preferences->priv->album_check,
528
columns, "RHYTHMDB_PROP_ALBUM");
529
rb_shell_preferences_sync_column_button (shell_preferences,
530
shell_preferences->priv->genre_check,
531
columns, "RHYTHMDB_PROP_GENRE");
532
rb_shell_preferences_sync_column_button (shell_preferences,
533
shell_preferences->priv->duration_check,
534
columns, "RHYTHMDB_PROP_DURATION");
535
rb_shell_preferences_sync_column_button (shell_preferences,
536
shell_preferences->priv->track_check,
537
columns, "RHYTHMDB_PROP_TRACK_NUMBER");
538
rb_shell_preferences_sync_column_button (shell_preferences,
539
shell_preferences->priv->rating_check,
540
columns, "RHYTHMDB_PROP_RATING");
541
rb_shell_preferences_sync_column_button (shell_preferences,
542
shell_preferences->priv->play_count_check,
543
columns, "RHYTHMDB_PROP_PLAY_COUNT");
544
rb_shell_preferences_sync_column_button (shell_preferences,
545
shell_preferences->priv->last_played_check,
546
columns, "RHYTHMDB_PROP_LAST_PLAYED");
547
rb_shell_preferences_sync_column_button (shell_preferences,
548
shell_preferences->priv->year_check,
549
columns, "RHYTHMDB_PROP_DATE");
550
rb_shell_preferences_sync_column_button (shell_preferences,
551
shell_preferences->priv->first_seen_check,
552
columns, "RHYTHMDB_PROP_FIRST_SEEN");
414
553
if (shell_preferences->priv->quality_check)
415
gtk_toggle_button_set_active
416
(GTK_TOGGLE_BUTTON (shell_preferences->priv->quality_check),
417
strstr (columns, "RHYTHMDB_PROP_BITRATE") != NULL);
554
rb_shell_preferences_sync_column_button (shell_preferences,
555
shell_preferences->priv->quality_check,
556
columns, "RHYTHMDB_PROP_BITRATE");
420
559
g_free (columns);