static void panel_properties_dialog_setup_image_chooser (PanelPropertiesDialog *dialog, GtkBuilder *gui) { char *image; dialog->image_chooser = PANEL_GTK_BUILDER_GET (gui, "image_chooser"); panel_gtk_file_chooser_add_image_preview (GTK_FILE_CHOOSER (dialog->image_chooser)); image = panel_profile_get_background_image (dialog->toplevel); if (PANEL_GLIB_STR_EMPTY (image)) gtk_file_chooser_unselect_all (GTK_FILE_CHOOSER (dialog->image_chooser)); else gtk_file_chooser_set_filename (GTK_FILE_CHOOSER (dialog->image_chooser), image); if (image) g_free (image); dialog->selection_emitted = 0; g_signal_connect_swapped (dialog->image_chooser, "selection-changed", G_CALLBACK (panel_properties_dialog_image_changed), dialog); if ( ! panel_profile_background_key_is_writable (dialog->toplevel, "image")) { gtk_widget_set_sensitive (dialog->image_chooser, FALSE); gtk_widget_show (dialog->writability_warn_background); } }
static void panel_properties_dialog_image_chooser_setup (PanelPropertiesDialog *dialog, GtkBuilder *gui) { dialog->image_chooser = PANEL_GTK_BUILDER_GET (gui, "image_chooser"); panel_gtk_file_chooser_add_image_preview (GTK_FILE_CHOOSER (dialog->image_chooser)); panel_properties_dialog_background_image_update (dialog); g_signal_connect_swapped (dialog->image_chooser, "file-set", G_CALLBACK (panel_properties_dialog_image_chooser_changed), dialog); g_settings_bind_writable (dialog->settings_background, PANEL_BACKGROUND_IMAGE_URI_KEY, dialog->image_chooser, "sensitive", FALSE); if (!g_settings_is_writable (dialog->settings_background, PANEL_BACKGROUND_IMAGE_URI_KEY)) gtk_widget_show (dialog->writability_warn_background); }