[easytag/wip/for-2.3.7: 18/20] Convert EtPreferencesDialog to a template widget



commit 9f7230d8c973ba08d29b5b30a4c6304ff5b593bb
Author: David King <amigadave amigadave com>
Date:   Wed May 13 20:00:20 2015 +0700

    Convert EtPreferencesDialog to a template widget

 data/preferences_dialog.ui | 2851 ++++++++++++++++++++++----------------------
 src/preferences_dialog.c   | 1098 +++++++++--------
 2 files changed, 2017 insertions(+), 1932 deletions(-)
---
diff --git a/data/preferences_dialog.ui b/data/preferences_dialog.ui
index 193a8f2..941a40a 100644
--- a/data/preferences_dialog.ui
+++ b/data/preferences_dialog.ui
@@ -1,5 +1,5 @@
 <interface domain="easytag">
-    <requires lib="gtk+" version="3.4"/>
+    <requires lib="gtk+" version="3.10"/>
     <object class="GtkAdjustment" id="cddb_automatic_host1_adjustment">
         <property name="lower">0.0</property>
         <property name="step-increment">1.0</property>
@@ -30,1494 +30,1509 @@
         <property name="step-increment">1.0</property>
         <property name="upper">6.0</property>
     </object>
-    <object class="GtkNotebook" id="preferences_notebook">
-        <property name="enable-popup">True</property>
-        <property name="scrollable">True</property>
-        <property name="visible">True</property>
-        <child>
-            <object class="GtkGrid" id="ui_grid">
-                <property name="border-width">12</property>
-                <property name="orientation">vertical</property>
-                <property name="row-spacing">6</property>
-                <property name="visible">True</property>
-                <child>
-                    <object class="GtkLabel" id="browser_label">
-                        <property name="halign">start</property>
-                        <property name="label" translatable="yes">Browser</property>
-                        <property name="visible">True</property>
-                        <attributes>
-                            <attribute name="weight" value="bold"/>
-                        </attributes>
-                    </object>
-                </child>
-                <child>
-                    <object class="GtkBox" id="default_path_box">
-                        <property name="margin-left">12</property>
-                        <property name="spacing">12</property>
-                        <property name="visible">True</property>
-                        <child>
-                            <object class="GtkLabel" id="default_path_label">
-                                <property name="label" translatable="yes">Default Directory:</property>
-                                <property name="visible">True</property>
-                            </object>
-                        </child>
-                        <child>
-                            <object class="GtkFileChooserButton" id="default_path_button">
-                                <property name="action">select-folder</property>
-                                <property name="tooltip-text" translatable="yes">The default path to search 
for music files</property>
-                                <property name="width-chars">30</property>
-                                <property name="visible">True</property>
-                            </object>
-                        </child>
-                    </object>
-                </child>
-                <child>
-                    <object class="GtkCheckButton" id="browser_startup_check">
-                        <property name="label" translatable="yes">Load on startup the default directory or 
the directory passed as argument</property>
-                        <property name="margin-left">12</property>
-                        <property name="tooltip-text" translatable="yes">Whether to load the default path 
(or the path passed as an argument) on application startup</property>
-                        <property name="visible">True</property>
-                    </object>
-                </child>
-                <child>
-                    <object class="GtkCheckButton" id="browser_subdirs_check">
-                        <property name="label" translatable="yes">Browse subdirectories</property>
-                        <property name="margin-left">12</property>
-                        <property name="tooltip-text" translatable="yes">Whether to search subdirectories 
for audio files when reading a directory in the browser</property>
-                        <property name="visible">True</property>
-                    </object>
-                </child>
-                <child>
-                    <object class="GtkCheckButton" id="browser_expand_subdirs_check">
-                        <property name="label" translatable="yes">Expand the subdirectories of the selected 
directory</property>
-                        <property name="margin-left">12</property>
-                        <property name="tooltip-text" translatable="yes">Whether to expand the 
subdirectories of a node in the directory browser when selecting it</property>
-                        <property name="visible">True</property>
-                    </object>
-                </child>
-                <child>
-                    <object class="GtkCheckButton" id="browser_hidden_check">
-                        <property name="label" translatable="yes">Search hidden directories</property>
-                        <property name="margin-left">12</property>
-                        <property name="tooltip-text" translatable="yes">Whether to show hidden directories 
when showing a directory in the browser</property>
-                        <property name="visible">True</property>
-                    </object>
-                </child>
-                <child>
-                    <object class="GtkCheckButton" id="browser_case_check">
-                        <property name="label" translatable="yes">Sort files case-sensitively</property>
-                        <property name="margin-left">12</property>
-                        <property name="tooltip-text" translatable="yes">Whether file sorting is 
case-sensitive</property>
-                        <property name="visible">True</property>
-                    </object>
-                </child>
-                <child>
-                    <object class="GtkLabel" id="log_label">
-                        <property name="halign">start</property>
-                        <property name="label" translatable="yes">Log</property>
-                        <property name="visible">True</property>
-                        <attributes>
-                            <attribute name="weight" value="bold"/>
-                        </attributes>
-                    </object>
-                </child>
-                <child>
-                    <object class="GtkCheckButton" id="log_show_check">
-                        <property name="label" translatable="yes">Show the log</property>
-                        <property name="margin-left">12</property>
-                        <property name="tooltip-text" translatable="yes">Whether to show the log in the main 
window</property>
-                        <property name="visible">True</property>
-                    </object>
-                </child>
-                <child>
-                    <object class="GtkLabel" id="general_label">
-                        <property name="halign">start</property>
-                        <property name="label" translatable="yes">General</property>
-                        <property name="visible">True</property>
-                        <attributes>
-                            <attribute name="weight" value="bold"/>
-                        </attributes>
-                    </object>
-                </child>
-                <child>
-                    <object class="GtkCheckButton" id="header_show_check">
-                        <property name="label" translatable="yes">Show audio file header summary</property>
-                        <property name="margin-left">12</property>
-                        <property name="tooltip-text" translatable="yes">Whether to show header information, 
such as bit rate and duration, for audio files</property>
-                        <property name="visible">True</property>
-                    </object>
-                </child>
-                <child>
-                    <object class="GtkBox" id="general_list_box">
-                        <property name="margin-left">12</property>
-                        <property name="spacing">12</property>
-                        <property name="visible">True</property>
-                        <child>
-                            <object class="GtkLabel" id="list_label">
-                                <property name="label" translatable="yes">Display changed files in list 
using:</property>
-                                <property name="visible">True</property>
-                            </object>
-                        </child>
-                        <child>
-                            <object class="GtkRadioButton" id="list_red_radio">
-                                <property name="label" translatable="yes">Red color</property>
-                                <property name="visible">True</property>
-                            </object>
-                        </child>
-                        <child>
-                            <object class="GtkRadioButton" id="list_bold_radio">
-                                <property name="group">list_red_radio</property>
-                                <property name="label" translatable="yes">Bold style</property>
-                                <property name="visible">True</property>
-                            </object>
-                        </child>
-                    </object>
-                </child>
-            </object>
-        </child>
-        <child type="tab">
-            <object class="GtkLabel" id="interface_tab_label">
-                <property name="label" translatable="yes">Interface</property>
-            </object>
-        </child>
-        <child>
-            <object class="GtkGrid" id="file_grid">
-                <property name="border-width">12</property>
-                <property name="orientation">vertical</property>
-                <property name="row-spacing">6</property>
-                <property name="visible">True</property>
-                <child>
-                    <object class="GtkLabel" id="file_label">
-                        <property name="halign">start</property>
-                        <property name="label" translatable="yes">File Settings</property>
-                        <property name="visible">True</property>
-                        <attributes>
-                            <attribute name="weight" value="bold"/>
-                        </attributes>
-                    </object>
-                </child>
-                <child>
-                    <object class="GtkCheckButton" id="file_preserve_check">
-                        <property name="label" translatable="yes">Preserve modification time when writing 
files</property>
-                        <property name="margin-left">12</property>
-                        <property name="tooltip-text" translatable="yes">Whether to preserve the existing 
modification time when editing files</property>
-                        <property name="visible">True</property>
-                    </object>
-                </child>
-                <child>
-                    <object class="GtkCheckButton" id="file_parent_check">
-                        <property name="label" translatable="yes">Update parent directory modification time 
when writing files</property>
-                        <property name="margin-left">12</property>
-                        <property name="tooltip-text" translatable="yes">Whether to update the modification 
time on the parent directory when editing files</property>
-                        <property name="visible">True</property>
-                    </object>
-                </child>
-                <child>
-                    <object class="GtkLabel" id="file_name_label">
-                        <property name="halign">start</property>
-                        <property name="label" translatable="yes" comments="Translators: a section header in 
the Files tab of the preferences dialog.">Filenames</property>
-                        <property name="margin-top">12</property>
-                        <property name="visible">True</property>
-                        <attributes>
-                            <attribute name="weight" value="bold"/>
-                        </attributes>
-                    </object>
-                </child>
-                <child>
-                    <object class="GtkCheckButton" id="file_name_replace_check">
-                        <property name="label" translatable="yes">Replace illegal characters when 
renaming</property>
-                        <property name="margin-left">12</property>
-                        <property name="tooltip-text" translatable="yes">Convert characters which cannot be 
represented in filenames on the FAT32/16 and Joliet filesystems (‘\’, ‘:’, ‘;’, ‘*’, ‘?’, ‘"’, ‘&lt;’, 
‘&gt;’, ‘|’)</property>
-                        <property name="visible">True</property>
-                    </object>
-                </child>
-                <child>
-                    <object class="GtkBox" id="file_name_convert_box">
-                        <property name="margin-left">12</property>
-                        <property name="spacing">12</property>
-                        <property name="visible">True</property>
-                        <child>
-                            <object class="GtkLabel" id="name_convert_label">
-                                <property name="label" translatable="yes">Convert filename extension 
to:</property>
-                                <property name="visible">True</property>
-                            </object>
-                        </child>
-                        <child>
-                            <object class="GtkRadioButton" id="name_lower_radio">
-                                <property name="label" translatable="yes">Lower Case</property>
-                                <property name="name">lower-case</property>
-                                <property name="tooltip-text" translatable="yes">For example, the extension 
will be converted to ‘.mp3’</property>
-                                <property name="visible">True</property>
-                            </object>
-                        </child>
-                        <child>
-                            <object class="GtkRadioButton" id="name_upper_radio">
-                                <property name="group">name_lower_radio</property>
-                                <property name="label" translatable="yes">Upper Case</property>
-                                <property name="name">upper-case</property>
-                                <property name="tooltip-text" translatable="yes">For example, the extension 
will be converted to ‘.MP3’</property>
-                                <property name="visible">True</property>
-                            </object>
-                        </child>
-                        <child>
-                            <object class="GtkRadioButton" id="name_no_change_radio">
-                                <property name="group">name_lower_radio</property>
-                                <property name="label" translatable="yes">No Change</property>
-                                <property name="name">no-change</property>
-                                <property name="tooltip-text" translatable="yes">The extension will not be 
modified</property>
-                                <property name="visible">True</property>
-                            </object>
-                        </child>
-                    </object>
-                </child>
-                <child>
-                    <object class="GtkLabel" id="file_encoding_label">
-                        <property name="halign">start</property>
-                        <property name="label" translatable="yes">Filename Encoding</property>
-                        <property name="margin-left">12</property>
-                        <property name="margin-top">12</property>
-                        <property name="visible">True</property>
-                        <attributes>
-                            <attribute name="weight" value="bold"/>
-                        </attributes>
-                    </object>
-                </child>
-                <child>
-                    <object class="GtkRadioButton" id="file_encoding_try_alternative_radio">
-                        <property name="label" translatable="yes">Try another character encoding</property>
-                        <property name="margin-left">24</property>
-                        <property name="name">try-alternative</property>
-                        <property name="tooltip-text" translatable="yes">Try to use the encoding associated 
with your locale and if this fails, try the ISO-8859-1 character encoding</property>
-                        <property name="visible">True</property>
-                    </object>
-                </child>
-                <child>
-                    <object class="GtkRadioButton" id="file_encoding_transliterate_radio">
-                        <property name="group">file_encoding_try_alternative_radio</property>
-                        <property name="label" translatable="yes">Transliterate characters into the system 
character encoding</property>
-                        <property name="margin-left">24</property>
-                        <property name="name">transliterate</property>
-                        <property name="tooltip-text" translatable="yes">Replace unsupported characters with 
a similar character from the target character encoding</property>
-                        <property name="visible">True</property>
-                    </object>
-                </child>
-                <child>
-                    <object class="GtkRadioButton" id="file_encoding_ignore_radio">
-                        <property name="group">file_encoding_try_alternative_radio</property>
-                        <property name="label" translatable="yes">Use the system character encoding and 
silently discard unsupported characters</property>
-                        <property name="margin-left">24</property>
-                        <property name="name">ignore</property>
-                        <property name="tooltip-text" translatable="yes">Discard characters which cannot be 
represented in the target character encoding</property>
-                        <property name="visible">True</property>
-                    </object>
-                </child>
-            </object>
-        </child>
-        <child type="tab">
-            <object class="GtkLabel" id="files_tab_label">
-                <property name="label" translatable="yes">Files</property>
-            </object>
-        </child>
-        <child>
-            <object class="GtkGrid" id="tags_grid">
-                <property name="border-width">12</property>
-                <property name="orientation">vertical</property>
-                <property name="row-spacing">6</property>
-                <property name="visible">True</property>
-                <child>
-                    <object class="GtkLabel" id="tags_label">
-                        <property name="halign">start</property>
-                        <property name="label" translatable="yes">General</property>
-                        <property name="visible">True</property>
-                        <attributes>
-                            <attribute name="weight" value="bold"/>
-                        </attributes>
-                    </object>
-                </child>
-                <child>
-                    <object class="GtkCheckButton" id="tags_auto_date_check">
-                        <property name="label" translatable="yes">Automatically complete date 
field</property>
-                        <property name="margin-left">12</property>
-                        <property name="tooltip-text" translatable="yes">Whether to automatically complete 
the date tag</property>
-                        <property name="visible">True</property>
-                    </object>
-                </child>
-                <child>
-                    <object class="GtkCheckButton" id="tags_auto_image_type_check">
-                        <property name="label" translatable="yes">Automatically select the type of the image 
based on its filename</property>
-                        <property name="margin-left">12</property>
-                        <property name="tooltip-text" translatable="yes">Whether to, when adding cover art, 
automatically select a type for an image based on its filename</property>
-                        <property name="visible">True</property>
-                    </object>
-                </child>
-                <child>
-                    <object class="GtkCheckButton" id="tags_preserve_focus_check">
-                        <property name="label" translatable="yes">Preserve the tag field focus</property>
-                        <property name="margin-left">12</property>
-                        <property name="tooltip-text" translatable="yes">Whether to preserve focus on the 
current tag field when switching file</property>
-                        <property name="visible">True</property>
-                    </object>
-                </child>
-                <child>
-                    <object class="GtkGrid" id="tags_padding_grid">
-                        <property name="column-spacing">12</property>
-                        <property name="margin-left">12</property>
-                        <property name="row-spacing">6</property>
-                        <property name="visible">True</property>
-                        <child>
-                            <object class="GtkCheckButton" id="tags_disc_check">
-                                <property name="label" translatable="yes">Pad the number of digits in the 
disc field to:</property>
-                                <property name="tooltip-text" translatable="yes">Whether the disc number tag 
field should be padded with leading zeroes</property>
-                                <property name="visible">True</property>
-                            </object>
-                            <packing>
-                                <property name="left_attach">0</property>
-                                <property name="top_attach">0</property>
-                            </packing>
-                        </child>
-                        <child>
-                            <object class="GtkSpinButton" id="tags_disc_button">
-                                <property name="adjustment">tags_disc_adjustment</property>
-                                <property name="visible">True</property>
-                            </object>
-                            <packing>
-                                <property name="left_attach">1</property>
-                                <property name="top_attach">0</property>
-                            </packing>
-                        </child>
-                        <child>
-                            <object class="GtkCheckButton" id="tags_track_check">
-                                <property name="label" translatable="yes">Pad the number of digits in the 
track field to:</property>
-                                <property name="tooltip-text" translatable="yes">Whether the track number 
tag field should be padded with leading zeroes</property>
-                                <property name="visible">True</property>
-                            </object>
-                            <packing>
-                                <property name="left_attach">0</property>
-                                <property name="top_attach">1</property>
-                            </packing>
-                        </child>
-                        <child>
-                            <object class="GtkSpinButton" id="tags_track_button">
-                                <property name="adjustment">tags_track_adjustment</property>
-                                <property name="visible">True</property>
-                            </object>
-                            <packing>
-                                <property name="left_attach">1</property>
-                                <property name="top_attach">1</property>
-                            </packing>
-                        </child>
-                    </object>
-                </child>
-                <child>
-                    <object class="GtkLabel" id="tags_splitting_label">
-                        <property name="halign">start</property>
-                        <property name="label" translatable="yes">Splitting</property>
-                        <property name="margin-top">12</property>
-                        <property name="visible">True</property>
-                        <attributes>
-                            <attribute name="weight" value="bold"/>
-                        </attributes>
-                    </object>
-                </child>
-                <child>
-                    <object class="GtkLabel" id="tags_splitting_description_label">
-                        <property name="halign">start</property>
-                        <property name="label" translatable="yes">For Vorbis tags, selected fields will be 
split at dashes and saved as separate tags</property>
-                        <property name="margin-left">12</property>
-                        <property name="visible">True</property>
-                    </object>
-                </child>
-                <child>
-                    <object class="GtkGrid" id="tags_splitting_grid">
-                        <property name="column-spacing">18</property>
-                        <property name="margin-left">12</property>
-                        <property name="row-spacing">6</property>
-                        <property name="visible">True</property>
-                        <child>
-                            <object class="GtkCheckButton" id="split_title_check">
-                                <property name="label" translatable="yes">Title</property>
-                                <property name="tooltip-text" translatable="yes">Whether to split title 
fields at a “ - ” separator in Ogg comments</property>
-                                <property name="visible">True</property>
-                            </object>
-                            <packing>
-                                <property name="left_attach">0</property>
-                                <property name="top_attach">0</property>
-                            </packing>
-                        </child>
-                        <child>
-                            <object class="GtkCheckButton" id="split_artist_check">
-                                <property name="label" translatable="yes">Artist</property>
-                                <property name="tooltip-text" translatable="yes">Whether to split artist 
fields at a “ - ” separator in Ogg comments</property>
-                                <property name="visible">True</property>
-                            </object>
-                            <packing>
-                                <property name="left_attach">0</property>
-                                <property name="top_attach">1</property>
-                            </packing>
-                        </child>
-                        <child>
-                            <object class="GtkCheckButton" id="split_album_check">
-                                <property name="label" translatable="yes">Album</property>
-                                <property name="tooltip-text" translatable="yes">Whether to split album 
fields at a “ - ” separator in Ogg comments</property>
-                                <property name="visible">True</property>
-                            </object>
-                            <packing>
-                                <property name="left_attach">0</property>
-                                <property name="top_attach">2</property>
-                            </packing>
-                        </child>
-                        <child>
-                            <object class="GtkCheckButton" id="split_genre_check">
-                                <property name="label" translatable="yes">Genre</property>
-                                <property name="tooltip-text" translatable="yes">Whether to split genre 
fields at a “ - ” separator in Ogg comments</property>
-                                <property name="visible">True</property>
-                            </object>
-                            <packing>
-                                <property name="left_attach">0</property>
-                                <property name="top_attach">3</property>
-                            </packing>
-                        </child>
-                        <child>
-                            <object class="GtkCheckButton" id="split_comment_check">
-                                <property name="label" translatable="yes">Comment</property>
-                                <property name="tooltip-text" translatable="yes">Whether to split comment 
fields at a “ - ” separator in Ogg comments</property>
-                                <property name="visible">True</property>
-                            </object>
-                            <packing>
-                                <property name="left_attach">1</property>
-                                <property name="top_attach">0</property>
-                            </packing>
-                        </child>
-                        <child>
-                            <object class="GtkCheckButton" id="split_composer_check">
-                                <property name="label" translatable="yes">Composer</property>
-                                <property name="tooltip-text" translatable="yes">Whether to split composer 
fields at a “ - ” separator in Ogg comments</property>
+    <template class="EtPreferencesDialog" parent="GtkDialog">
+        <property name="border-width">6</property>
+        <property name="destroy-with-parent">True</property>
+        <property name="title" translatable="yes">Preferences</property>
+        <signal name="delete-event" handler="gtk_widget_hide_on_delete"/>
+        <signal name="response" handler="et_preferences_on_response"/>
+        <child internal-child="vbox">
+            <object class="GtkBox" id="preferences_vbox">
+                <property name="spacing">6</property>
+                <child>
+                    <object class="GtkNotebook" id="preferences_notebook">
+                        <property name="enable-popup">True</property>
+                        <property name="scrollable">True</property>
+                        <property name="visible">True</property>
+                        <child>
+                            <object class="GtkGrid" id="ui_grid">
+                                <property name="border-width">12</property>
+                                <property name="orientation">vertical</property>
+                                <property name="row-spacing">6</property>
                                 <property name="visible">True</property>
-                            </object>
-                            <packing>
-                                <property name="left_attach">1</property>
-                                <property name="top_attach">1</property>
-                            </packing>
-                        </child>
-                        <child>
-                            <object class="GtkCheckButton" id="split_orig_artist_check">
-                                <property name="label" translatable="yes">Original artist</property>
-                                <property name="tooltip-text" translatable="yes">Whether to split original 
artist fields at a “ - ” separator in Ogg comments</property>
-                                <property name="visible">True</property>
-                            </object>
-                            <packing>
-                                <property name="left_attach">1</property>
-                                <property name="top_attach">2</property>
-                            </packing>
-                        </child>
-                    </object>
-                </child>
-            </object>
-        </child>
-        <child type="tab">
-            <object class="GtkLabel" id="tags_tab_label">
-                <property name="label" translatable="yes">Tags</property>
-            </object>
-        </child>
-        <child>
-            <object class="GtkGrid" id="id3_tags_grid">
-                <property name="border-width">12</property>
-                <property name="orientation">vertical</property>
-                <property name="row-spacing">6</property>
-                <property name="visible">True</property>
-                <child>
-                    <object class="GtkLabel" id="id3_tags_label">
-                        <property name="halign">start</property>
-                        <property name="label" translatable="yes">General</property>
-                        <property name="visible">True</property>
-                        <attributes>
-                            <attribute name="weight" value="bold"/>
-                        </attributes>
-                    </object>
-                </child>
-                <child>
-                    <object class="GtkCheckButton" id="id3_strip_check">
-                        <property name="label" translatable="yes">Strip ID3 tags if all ID3 tags are 
empty</property>
-                        <property name="margin-left">12</property>
-                        <property name="tooltip-text" translatable="yes">Whether to remove the ID3 tag from 
the audio file if all the individual tag fields are empty</property>
-                        <property name="visible">True</property>
-                    </object>
-                </child>
-                <child>
-                    <object class="GtkBox" id="id3_read_encoding_box">
-                        <property name="margin-left">12</property>
-                        <property name="spacing">12</property>
-                        <property name="visible">True</property>
-                        <child>
-                            <object class="GtkCheckButton" id="id3_read_encoding_check">
-                                <property name="label" translatable="yes">Non-standard encoding for reading 
ID3 tags:</property>
-                                <property name="tooltip-text" translatable="yes">Whether to use a 
non-standard character encoding when reading ID3 tags</property>
-                                <property name="visible">True</property>
-                            </object>
-                        </child>
-                        <child>
-                            <object class="GtkComboBoxText" id="id3_read_encoding_combo">
-                                <property name="tooltip-text" translatable="yes">Choose the character set to 
be used when reading ID3v1 and ID3v2 tags</property>
-                                <property name="visible">True</property>
-                            </object>
-                        </child>
-                    </object>
-                </child>
-                <child>
-                    <object class="GtkLabel" id="id3_v2_label">
-                        <property name="halign">start</property>
-                        <property name="label" translatable="yes">ID3v2</property>
-                        <property name="margin-top">12</property>
-                        <property name="visible">True</property>
-                        <attributes>
-                            <attribute name="weight" value="bold"/>
-                        </attributes>
-                    </object>
-                </child>
-                <child>
-                    <object class="GtkGrid" id="id3_v2_encoding_grid">
-                        <property name="column-spacing">12</property>
-                        <property name="margin-left">12</property>
-                        <property name="row-spacing">6</property>
-                        <property name="visible">True</property>
-                        <child>
-                            <object class="GtkCheckButton" id="id3_v2_check">
-                                <property name="label" translatable="yes">Write ID3v2 tag</property>
-                                <property name="tooltip-text" translatable="yes">Whether to write ID3v2 tags 
when writing ID3 tags into audio files</property>
-                                <property name="visible">True</property>
-                            </object>
-                            <packing>
-                                <property name="left_attach">0</property>
-                                <property name="top_attach">0</property>
-                            </packing>
-                        </child>
-                        <child>
-                            <object class="GtkLabel" id="id3_v2_version_label">
-                                <property name="halign">start</property>
-                                <property name="label" translatable="yes">Version:</property>
-                                <property name="margin-left">12</property>
-                                <property name="tooltip-text" translatable="yes">Whether to write ID3v2 tags 
when writing ID3 tags into audio files</property>
-                                <property name="visible">True</property>
-                            </object>
-                            <packing>
-                                <property name="left_attach">1</property>
-                                <property name="top_attach">0</property>
-                            </packing>
-                        </child>
-                        <child>
-                            <object class="GtkComboBoxText" id="id3_v2_version_combo">
-                                <items>
-                                    <item id="id3v2.3">ID3v2.3</item>
-                                    <item id="id3v2.4">ID3v2.4</item>
-                                </items>
-                                <property name="tooltip-text" translatable="yes">Select the ID3v2 tag 
version to write:
- • ID3v2.3 is written using id3lib,
- • ID3v2.4 is written using libid3tag (recommended)</property>
-                                <property name="visible">True</property>
-                            </object>
-                            <packing>
-                                <property name="left_attach">2</property>
-                                <property name="top_attach">0</property>
-                            </packing>
-                        </child>
-                        <child>
-                            <object class="GtkLabel" id="id3_v2_encoding_label">
-                                <property name="halign">start</property>
-                                <property name="label" translatable="yes">Character encoding:</property>
-                                <property name="visible">True</property>
-                            </object>
-                            <packing>
-                                <property name="left_attach">0</property>
-                                <property name="top_attach">1</property>
-                            </packing>
-                        </child>
-                        <child>
-                            <object class="GtkRadioButton" id="id3_v2_unicode_radio">
-                                <property name="label" translatable="yes">Unicode</property>
-                                <property name="visible">True</property>
-                            </object>
-                            <packing>
-                                <property name="left_attach">1</property>
-                                <property name="top_attach">1</property>
-                            </packing>
-                        </child>
-                        <child>
-                            <object class="GtkComboBoxText" id="id3_v2_unicode_encoding_combo">
-                                <items>
-                                    <item id="utf-8">UTF-8</item>
-                                    <item id="utf-16">UTF-16</item>
-                                </items>
-                                <property name="tooltip-text" translatable="yes">Choose the Unicode 
character encoding to be used when writing ID3v2 tags</property>
-                                <property name="visible">True</property>
-                            </object>
-                            <packing>
-                                <property name="left_attach">2</property>
-                                <property name="top_attach">1</property>
-                            </packing>
-                        </child>
-                        <child>
-                            <object class="GtkRadioButton" id="id3_v2_other_radio">
-                                <property name="group">id3_v2_unicode_radio</property>
-                                <property name="label" translatable="yes">Other</property>
-                                <property name="visible">True</property>
-                            </object>
-                            <packing>
-                                <property name="left_attach">1</property>
-                                <property name="top_attach">2</property>
-                            </packing>
-                        </child>
-                        <child>
-                            <object class="GtkComboBoxText" id="id3_v2_override_encoding_combo">
-                                <property name="tooltip-text" translatable="yes">Override the standard 
Unicode character encoding to be used when writing ID3v2 tags</property>
-                                <property name="visible">True</property>
-                            </object>
-                            <packing>
-                                <property name="left_attach">2</property>
-                                <property name="top_attach">2</property>
-                            </packing>
-                        </child>
-                        <child>
-                            <object class="GtkLabel" id="id3_v2_iconv_label">
-                                <property name="halign">start</property>
-                                <property name="label" translatable="yes">When encoding conversion 
fails:</property>
-                                <property name="visible">True</property>
-                            </object>
-                            <packing>
-                                <property name="left_attach">0</property>
-                                <property name="top_attach">3</property>
-                                <property name="width">2</property>
-                            </packing>
-                        </child>
-                        <child>
-                            <object class="GtkBox" id="id3_v2_iconv_box">
-                                <property name="spacing">12</property>
                                 <child>
-                                    <object class="GtkRadioButton" id="id3_v2_none_radio">
-                                        <property name="label" translatable="yes">Report error</property>
-                                        <property name="name">none</property>
-                                        <property name="tooltip-text" translatable="yes">Display an error 
message when a character cannot be represented in the target character encoding and keep the original 
character</property>
+                                    <object class="GtkLabel" id="browser_label">
+                                        <property name="halign">start</property>
+                                        <property name="label" translatable="yes">Browser</property>
                                         <property name="visible">True</property>
+                                        <attributes>
+                                            <attribute name="weight" value="bold"/>
+                                        </attributes>
                                     </object>
                                 </child>
                                 <child>
-                                    <object class="GtkRadioButton" id="id3_v2_transliterate_radio">
-                                        <property name="group">id3_v1_none_radio</property>
-                                        <property name="label" translatable="yes">Transliterate</property>
-                                        <property name="name">transliterate</property>
-                                        <property name="tooltip-text" translatable="yes">Replace unsupported 
characters with a similar character from the target character encoding</property>
+                                    <object class="GtkBox" id="default_path_box">
+                                        <property name="margin-left">12</property>
+                                        <property name="spacing">12</property>
                                         <property name="visible">True</property>
+                                        <child>
+                                            <object class="GtkLabel" id="default_path_label">
+                                                <property name="label" translatable="yes">Default 
Directory:</property>
+                                                <property name="visible">True</property>
+                                            </object>
+                                        </child>
+                                        <child>
+                                            <object class="GtkFileChooserButton" id="default_path_button">
+                                                <property name="action">select-folder</property>
+                                                <property name="tooltip-text" translatable="yes">The default 
path to search for music files</property>
+                                                <property name="width-chars">30</property>
+                                                <property name="visible">True</property>
+                                                <signal name="file-set" 
handler="et_prefs_current_folder_changed" swapped="yes"/>
+                                            </object>
+                                        </child>
                                     </object>
                                 </child>
                                 <child>
-                                    <object class="GtkRadioButton" id="id3_v2_ignore_radio">
-                                        <property name="group">id3_v1_none_radio</property>
-                                        <property name="label" translatable="yes">Discard</property>
-                                        <property name="name">ignore</property>
-                                        <property name="tooltip-text" translatable="yes">Discard characters 
which cannot be represented in the target character encoding</property>
+                                    <object class="GtkCheckButton" id="browser_startup_check">
+                                        <property name="label" translatable="yes">Load on startup the 
default directory or the directory passed as argument</property>
+                                        <property name="margin-left">12</property>
+                                        <property name="tooltip-text" translatable="yes">Whether to load the 
default path (or the path passed as an argument) on application startup</property>
                                         <property name="visible">True</property>
                                     </object>
                                 </child>
+                                <child>
+                                    <object class="GtkCheckButton" id="browser_subdirs_check">
+                                        <property name="label" translatable="yes">Browse 
subdirectories</property>
+                                        <property name="margin-left">12</property>
+                                        <property name="tooltip-text" translatable="yes">Whether to search 
subdirectories for audio files when reading a directory in the browser</property>
+                                        <property name="visible">True</property>
+                                    </object>
+                                </child>
+                                <child>
+                                    <object class="GtkCheckButton" id="browser_expand_subdirs_check">
+                                        <property name="label" translatable="yes">Expand the subdirectories 
of the selected directory</property>
+                                        <property name="margin-left">12</property>
+                                        <property name="tooltip-text" translatable="yes">Whether to expand 
the subdirectories of a node in the directory browser when selecting it</property>
+                                        <property name="visible">True</property>
+                                    </object>
+                                </child>
+                                <child>
+                                    <object class="GtkCheckButton" id="browser_hidden_check">
+                                        <property name="label" translatable="yes">Search hidden 
directories</property>
+                                        <property name="margin-left">12</property>
+                                        <property name="tooltip-text" translatable="yes">Whether to show 
hidden directories when showing a directory in the browser</property>
+                                        <property name="visible">True</property>
+                                    </object>
+                                </child>
+                                <child>
+                                    <object class="GtkCheckButton" id="browser_case_check">
+                                        <property name="label" translatable="yes">Sort files 
case-sensitively</property>
+                                        <property name="margin-left">12</property>
+                                        <property name="tooltip-text" translatable="yes">Whether file 
sorting is case-sensitive</property>
+                                        <property name="visible">True</property>
+                                    </object>
+                                </child>
+                                <child>
+                                    <object class="GtkLabel" id="log_label">
+                                        <property name="halign">start</property>
+                                        <property name="label" translatable="yes">Log</property>
+                                        <property name="visible">True</property>
+                                        <attributes>
+                                            <attribute name="weight" value="bold"/>
+                                        </attributes>
+                                    </object>
+                                </child>
+                                <child>
+                                    <object class="GtkCheckButton" id="log_show_check">
+                                        <property name="label" translatable="yes">Show the log</property>
+                                        <property name="margin-left">12</property>
+                                        <property name="tooltip-text" translatable="yes">Whether to show the 
log in the main window</property>
+                                        <property name="visible">True</property>
+                                    </object>
+                                </child>
+                                <child>
+                                    <object class="GtkLabel" id="general_label">
+                                        <property name="halign">start</property>
+                                        <property name="label" translatable="yes">General</property>
+                                        <property name="visible">True</property>
+                                        <attributes>
+                                            <attribute name="weight" value="bold"/>
+                                        </attributes>
+                                    </object>
+                                </child>
+                                <child>
+                                    <object class="GtkCheckButton" id="header_show_check">
+                                        <property name="label" translatable="yes">Show audio file header 
summary</property>
+                                        <property name="margin-left">12</property>
+                                        <property name="tooltip-text" translatable="yes">Whether to show 
header information, such as bit rate and duration, for audio files</property>
+                                        <property name="visible">True</property>
+                                    </object>
+                                </child>
+                                <child>
+                                    <object class="GtkBox" id="general_list_box">
+                                        <property name="margin-left">12</property>
+                                        <property name="spacing">12</property>
+                                        <property name="visible">True</property>
+                                        <child>
+                                            <object class="GtkLabel" id="list_label">
+                                                <property name="label" translatable="yes">Display changed 
files in list using:</property>
+                                                <property name="visible">True</property>
+                                            </object>
+                                        </child>
+                                        <child>
+                                            <object class="GtkRadioButton" id="list_red_radio">
+                                                <property name="label" translatable="yes">Red 
color</property>
+                                                <property name="visible">True</property>
+                                            </object>
+                                        </child>
+                                        <child>
+                                            <object class="GtkRadioButton" id="list_bold_radio">
+                                                <property name="group">list_red_radio</property>
+                                                <property name="label" translatable="yes">Bold 
style</property>
+                                                <property name="visible">True</property>
+                                            </object>
+                                        </child>
+                                    </object>
+                                </child>
                             </object>
-                            <packing>
-                                <property name="left_attach">2</property>
-                                <property name="top_attach">3</property>
-                                <property name="width">2</property>
-                            </packing>
-                        </child>
-                    </object>
-                </child>
-                <child>
-                    <object class="GtkGrid" id="id3_v2_check_grid">
-                        <property name="column-spacing">12</property>
-                        <property name="margin-left">12</property>
-                        <property name="row-spacing">6</property>
-                        <property name="visible">True</property>
-                        <child>
-                            <object class="GtkCheckButton" id="id3_v2_convert_check">
-                                <property name="label" translatable="yes">Automatically convert old ID3v2 
tag versions</property>
-                                <property name="tooltip-text" translatable="yes">Whether to convert ID3 tags 
written against old version of the specification, such as ID3v2.2, to newer ones, such as ID3v2.3 or 
ID3v2.4</property>
-                                <property name="visible">True</property>
-                            </object>
-                            <packing>
-                                <property name="left_attach">0</property>
-                                <property name="top_attach">0</property>
-                            </packing>
-                        </child>
-                        <child>
-                            <object class="GtkCheckButton" id="id3_v2_crc32_check">
-                                <property name="label" translatable="yes">Use CRC-32</property>
-                                <property name="tooltip-text" translatable="yes">Whether to embed a CRC-32 
checksum of the audio file data in ID3v2 tags</property>
-                                <property name="visible">True</property>
-                            </object>
-                            <packing>
-                                <property name="left_attach">1</property>
-                                <property name="top_attach">0</property>
-                            </packing>
-                        </child>
-                        <child>
-                            <object class="GtkCheckButton" id="id3_v2_compression_check">
-                                <property name="label" translatable="yes">Compress data in ID3v2 
tags</property>
-                                <property name="tooltip-text" translatable="yes">Whether to compress data in 
ID3v2 tags</property>
-                                <property name="visible">True</property>
-                            </object>
-                            <packing>
-                                <property name="left_attach">0</property>
-                                <property name="top_attach">1</property>
-                            </packing>
-                        </child>
-                        <child>
-                            <object class="GtkCheckButton" id="id3_v2_genre_check">
-                                <property name="label" translatable="yes">Use text-only genre in ID3v2 
tags</property>
-                                <property name="tooltip-text" translatable="yes">Whether to use only a 
string, and not the integer-base ID3v1 genre field, when writing a genre field to ID3v2 tags</property>
-                                <property name="visible">True</property>
-                            </object>
-                            <packing>
-                                <property name="left_attach">1</property>
-                                <property name="top_attach">1</property>
-                            </packing>
-                        </child>
-                    </object>
-                </child>
-                <child>
-                    <object class="GtkLabel" id="id3_v1_label">
-                        <property name="halign">start</property>
-                        <property name="label" translatable="yes">ID3v1</property>
-                        <property name="margin-top">12</property>
-                        <property name="visible">True</property>
-                        <attributes>
-                            <attribute name="weight" value="bold"/>
-                        </attributes>
-                    </object>
-                </child>
-                <child>
-                    <object class="GtkCheckButton" id="id3_v1_check">
-                        <property name="label" translatable="yes">Write ID3v1 tag</property>
-                        <property name="margin-left">12</property>
-                        <property name="tooltip-text" translatable="yes">Whether to write ID3v1 tags when 
writing ID3 tags into audio files</property>
-                        <property name="visible">True</property>
-                    </object>
-                </child>
-                <child>
-                    <object class="GtkGrid" id="id3_v1_encoding_grid">
-                        <property name="column-spacing">12</property>
-                        <property name="margin-left">12</property>
-                        <property name="row-spacing">6</property>
-                        <property name="visible">True</property>
-                        <child>
-                            <object class="GtkLabel" id="id3_v1_encoding_label">
-                                <property name="halign">start</property>
-                                <property name="label" translatable="yes">Character encoding:</property>
-                                <property name="visible">True</property>
-                            </object>
-                            <packing>
-                                <property name="left_attach">0</property>
-                                <property name="top_attach">0</property>
-                            </packing>
                         </child>
-                        <child>
-                            <object class="GtkComboBoxText" id="id3_v1_encoding_combo">
-                                <property name="tooltip-text" translatable="yes">Choose the character set to 
be used when writing ID3v1 tag</property>
-                                <property name="visible">True</property>
+                        <child type="tab">
+                            <object class="GtkLabel" id="interface_tab_label">
+                                <property name="label" translatable="yes">Interface</property>
                             </object>
-                            <packing>
-                                <property name="left_attach">1</property>
-                                <property name="top_attach">0</property>
-                            </packing>
                         </child>
                         <child>
-                            <object class="GtkLabel" id="id3_v1_iconv_label">
-                                <property name="halign">start</property>
-                                <property name="label" translatable="yes">When encoding conversion 
fails:</property>
+                            <object class="GtkGrid" id="file_grid">
+                                <property name="border-width">12</property>
+                                <property name="orientation">vertical</property>
+                                <property name="row-spacing">6</property>
                                 <property name="visible">True</property>
-                            </object>
-                            <packing>
-                                <property name="left_attach">0</property>
-                                <property name="top_attach">1</property>
-                            </packing>
-                        </child>
-                        <child>
-                            <object class="GtkBox" id="id3_v1_iconv_box">
-                                <property name="spacing">12</property>
                                 <child>
-                                    <object class="GtkRadioButton" id="id3_v1_none_radio">
-                                        <property name="label" translatable="yes">Report error</property>
-                                        <property name="name">none</property>
-                                        <property name="tooltip-text" translatable="yes">Display an error 
message when a character cannot be represented in the target character encoding and keep the original 
character</property>
+                                    <object class="GtkLabel" id="file_label">
+                                        <property name="halign">start</property>
+                                        <property name="label" translatable="yes">File Settings</property>
                                         <property name="visible">True</property>
+                                        <attributes>
+                                            <attribute name="weight" value="bold"/>
+                                        </attributes>
                                     </object>
                                 </child>
                                 <child>
-                                    <object class="GtkRadioButton" id="id3_v1_transliterate_radio">
-                                        <property name="group">id3_v1_none_radio</property>
-                                        <property name="label" translatable="yes">Transliterate</property>
+                                    <object class="GtkCheckButton" id="file_preserve_check">
+                                        <property name="label" translatable="yes">Preserve modification time 
when writing files</property>
+                                        <property name="margin-left">12</property>
+                                        <property name="tooltip-text" translatable="yes">Whether to preserve 
the existing modification time when editing files</property>
+                                        <property name="visible">True</property>
+                                    </object>
+                                </child>
+                                <child>
+                                    <object class="GtkCheckButton" id="file_parent_check">
+                                        <property name="label" translatable="yes">Update parent directory 
modification time when writing files</property>
+                                        <property name="margin-left">12</property>
+                                        <property name="tooltip-text" translatable="yes">Whether to update 
the modification time on the parent directory when editing files</property>
+                                        <property name="visible">True</property>
+                                    </object>
+                                </child>
+                                <child>
+                                    <object class="GtkLabel" id="file_name_label">
+                                        <property name="halign">start</property>
+                                        <property name="label" translatable="yes" comments="Translators: a 
section header in the Files tab of the preferences dialog.">Filenames</property>
+                                        <property name="margin-top">12</property>
+                                        <property name="visible">True</property>
+                                        <attributes>
+                                            <attribute name="weight" value="bold"/>
+                                        </attributes>
+                                    </object>
+                                </child>
+                                <child>
+                                    <object class="GtkCheckButton" id="file_name_replace_check">
+                                        <property name="label" translatable="yes">Replace illegal characters 
when renaming</property>
+                                        <property name="margin-left">12</property>
+                                        <property name="tooltip-text" translatable="yes">Convert characters 
which cannot be represented in filenames on the FAT32/16 and Joliet filesystems (‘\’, ‘:’, ‘;’, ‘*’, ‘?’, 
‘"’, ‘&lt;’, ‘&gt;’, ‘|’)</property>
+                                        <property name="visible">True</property>
+                                    </object>
+                                </child>
+                                <child>
+                                    <object class="GtkBox" id="file_name_convert_box">
+                                        <property name="margin-left">12</property>
+                                        <property name="spacing">12</property>
+                                        <property name="visible">True</property>
+                                        <child>
+                                            <object class="GtkLabel" id="name_convert_label">
+                                                <property name="label" translatable="yes">Convert filename 
extension to:</property>
+                                                <property name="visible">True</property>
+                                            </object>
+                                        </child>
+                                        <child>
+                                            <object class="GtkRadioButton" id="name_lower_radio">
+                                                <property name="label" translatable="yes">Lower 
Case</property>
+                                                <property name="name">lower-case</property>
+                                                <property name="tooltip-text" translatable="yes">For 
example, the extension will be converted to ‘.mp3’</property>
+                                                <property name="visible">True</property>
+                                            </object>
+                                        </child>
+                                        <child>
+                                            <object class="GtkRadioButton" id="name_upper_radio">
+                                                <property name="group">name_lower_radio</property>
+                                                <property name="label" translatable="yes">Upper 
Case</property>
+                                                <property name="name">upper-case</property>
+                                                <property name="tooltip-text" translatable="yes">For 
example, the extension will be converted to ‘.MP3’</property>
+                                                <property name="visible">True</property>
+                                            </object>
+                                        </child>
+                                        <child>
+                                            <object class="GtkRadioButton" id="name_no_change_radio">
+                                                <property name="group">name_lower_radio</property>
+                                                <property name="label" translatable="yes">No 
Change</property>
+                                                <property name="name">no-change</property>
+                                                <property name="tooltip-text" translatable="yes">The 
extension will not be modified</property>
+                                                <property name="visible">True</property>
+                                            </object>
+                                        </child>
+                                    </object>
+                                </child>
+                                <child>
+                                    <object class="GtkLabel" id="file_encoding_label">
+                                        <property name="halign">start</property>
+                                        <property name="label" translatable="yes">Filename 
Encoding</property>
+                                        <property name="margin-left">12</property>
+                                        <property name="margin-top">12</property>
+                                        <property name="visible">True</property>
+                                        <attributes>
+                                            <attribute name="weight" value="bold"/>
+                                        </attributes>
+                                    </object>
+                                </child>
+                                <child>
+                                    <object class="GtkRadioButton" id="file_encoding_try_alternative_radio">
+                                        <property name="label" translatable="yes">Try another character 
encoding</property>
+                                        <property name="margin-left">24</property>
+                                        <property name="name">try-alternative</property>
+                                        <property name="tooltip-text" translatable="yes">Try to use the 
encoding associated with your locale and if this fails, try the ISO-8859-1 character encoding</property>
+                                        <property name="visible">True</property>
+                                    </object>
+                                </child>
+                                <child>
+                                    <object class="GtkRadioButton" id="file_encoding_transliterate_radio">
+                                        <property name="group">file_encoding_try_alternative_radio</property>
+                                        <property name="label" translatable="yes">Transliterate characters 
into the system character encoding</property>
+                                        <property name="margin-left">24</property>
                                         <property name="name">transliterate</property>
                                         <property name="tooltip-text" translatable="yes">Replace unsupported 
characters with a similar character from the target character encoding</property>
                                         <property name="visible">True</property>
                                     </object>
                                 </child>
                                 <child>
-                                    <object class="GtkRadioButton" id="id3_v1_ignore_radio">
-                                        <property name="group">id3_v1_none_radio</property>
-                                        <property name="label" translatable="yes">Discard</property>
+                                    <object class="GtkRadioButton" id="file_encoding_ignore_radio">
+                                        <property name="group">file_encoding_try_alternative_radio</property>
+                                        <property name="label" translatable="yes">Use the system character 
encoding and silently discard unsupported characters</property>
+                                        <property name="margin-left">24</property>
                                         <property name="name">ignore</property>
                                         <property name="tooltip-text" translatable="yes">Discard characters 
which cannot be represented in the target character encoding</property>
                                         <property name="visible">True</property>
                                     </object>
                                 </child>
                             </object>
-                            <packing>
-                                <property name="left_attach">1</property>
-                                <property name="top_attach">1</property>
-                                <property name="width">2</property>
-                            </packing>
-                        </child>
-                    </object>
-                </child>
-            </object>
-        </child>
-        <child type="tab">
-            <object class="GtkLabel" id="id3_tags_tab_label">
-                <property name="label" translatable="yes">ID3 Tags</property>
-            </object>
-        </child>
-        <child>
-            <object class="GtkGrid" id="scanner_grid">
-                <property name="border-width">12</property>
-                <property name="orientation">vertical</property>
-                <property name="row-spacing">6</property>
-                <property name="visible">True</property>
-                <child>
-                    <object class="GtkLabel" id="character_conversion_label">
-                        <property name="halign">start</property>
-                        <property name="label" translatable="yes">Character Conversion</property>
-                        <property name="visible">True</property>
-                        <attributes>
-                            <attribute name="weight" value="bold"/>
-                        </attributes>
-                    </object>
-                </child>
-                <child>
-                    <object class="GtkLabel" id="fill_tag_scanner_label">
-                        <property name="halign">start</property>
-                        <property name="label" translatable="yes" comments="Translators: a section header in 
the Scanner section of the preferences dialog.">Fill Tag Scanner</property>
-                        <property name="margin-left">12</property>
-                        <property name="margin-top">12</property>
-                        <property name="visible">True</property>
-                        <attributes>
-                            <attribute name="weight" value="bold"/>
-                        </attributes>
-                    </object>
-                </child>
-                <child>
-                    <object class="GtkRadioButton" id="fts_underscore_p20_radio">
-                        <property name="label" translatable="yes">Convert underscores and ‘%20’ to 
spaces</property>
-                        <property name="margin-left">24</property>
-                        <property name="name">spaces</property>
-                        <property name="visible">True</property>
-                    </object>
-                </child>
-                <child>
-                    <object class="GtkRadioButton" id="fts_spaces_radio">
-                        <property name="group">fts_underscore_p20_radio</property>
-                        <property name="label" translatable="yes">Convert spaces and ‘%20’ to 
underscores</property>
-                        <property name="margin-left">24</property>
-                        <property name="name">underscores</property>
-                        <property name="visible">True</property>
-                    </object>
-                </child>
-                <child>
-                    <object class="GtkRadioButton" id="fts_none_radio">
-                        <property name="group">fts_underscore_p20_radio</property>
-                        <property name="label" translatable="yes">No conversion</property>
-                        <property name="margin-left">24</property>
-                        <property name="name">no-change</property>
-                        <property name="visible">True</property>
-                    </object>
-                </child>
-                <child>
-                    <object class="GtkLabel" id="rename_file_directory_scanner_label">
-                        <property name="halign">start</property>
-                        <property name="label" translatable="yes" comments="Translators: a section header in 
the Scanner section of the preferences dialog.">Rename File and Directory Scanner</property>
-                        <property name="margin-left">12</property>
-                        <property name="margin-top">12</property>
-                        <property name="visible">True</property>
-                        <attributes>
-                            <attribute name="weight" value="bold"/>
-                        </attributes>
-                    </object>
-                </child>
-                <child>
-                    <object class="GtkRadioButton" id="rfs_underscore_p20_radio">
-                        <property name="label" translatable="yes">Convert underscores and ‘%20’ to 
spaces</property>
-                        <property name="margin-left">24</property>
-                        <property name="name">spaces</property>
-                        <property name="visible">True</property>
-                    </object>
-                </child>
-                <child>
-                    <object class="GtkRadioButton" id="rfs_spaces_radio">
-                        <property name="group">rfs_underscore_p20_radio</property>
-                        <property name="label" translatable="yes">Convert spaces and ‘%20’ to 
underscores</property>
-                        <property name="margin-left">24</property>
-                        <property name="name">underscores</property>
-                        <property name="visible">True</property>
-                    </object>
-                </child>
-                <child>
-                    <object class="GtkRadioButton" id="rfs_remove_radio">
-                        <property name="group">rfs_underscore_p20_radio</property>
-                        <property name="label" translatable="yes">No conversion</property>
-                        <property name="margin-left">24</property>
-                        <property name="name">remove</property>
-                        <property name="visible">True</property>
-                    </object>
-                </child>
-                <child>
-                    <object class="GtkLabel" id="process_fields_scanner_label">
-                        <property name="halign">start</property>
-                        <property name="label" translatable="yes" comments="Translators: a section header in 
the Scanner section of the preferences dialog.">Process Fields Scanner</property>
-                        <property name="margin-left">12</property>
-                        <property name="margin-top">12</property>
-                        <property name="visible">True</property>
-                        <attributes>
-                            <attribute name="weight" value="bold"/>
-                        </attributes>
-                    </object>
-                </child>
-                <child>
-                    <object class="GtkCheckButton" id="pfs_uppercase_prep_check">
-                        <property name="label" translatable="yes">Upper-case the first letters of all 
words</property>
-                        <property name="margin-left">24</property>
-                        <property name="tooltip-text" translatable="yes">Whether to upper-case the first 
letter of all words, including prepositions and other short words such as “feat.”, when processing tag 
fields</property>
-                        <property name="visible">True</property>
-                    </object>
-                </child>
-                <child>
-                    <object class="GtkLabel" id="fields_label">
-                        <property name="halign">start</property>
-                        <property name="label" translatable="yes">Fields</property>
-                        <property name="margin-top">12</property>
-                        <property name="visible">True</property>
-                        <attributes>
-                            <attribute name="weight" value="bold"/>
-                        </attributes>
-                    </object>
-                </child>
-                <child>
-                    <object class="GtkCheckButton" id="overwrite_fields_check">
-                        <property name="label" translatable="yes">Overwrite fields when scanning 
tags</property>
-                        <property name="margin-left">12</property>
-                        <property name="tooltip-text" translatable="yes">Whether to overwrite the tag field 
values when filling tags. Otherwise, only blank tag fields will be filled</property>
-                        <property name="visible">True</property>
-                    </object>
-                </child>
-                <child>
-                    <object class="GtkBox" id="default_comment_box">
-                        <property name="margin-left">12</property>
-                        <property name="spacing">12</property>
-                        <property name="visible">True</property>
-                        <child>
-                            <object class="GtkCheckButton" id="default_comment_check">
-                                <property name="label" translatable="yes">Set this text as default 
comment:</property>
-                                <property name="tooltip-text" translatable="yes">Whether to set the comment 
tag field to the provided default value when filling tags</property>
-                                <property name="visible">True</property>
-                            </object>
                         </child>
-                        <child>
-                            <object class="GtkEntry" id="default_comment_entry">
-                                <property name="visible">True</property>
-                            </object>
-                        </child>
-                    </object>
-                </child>
-                <child>
-                    <object class="GtkCheckButton" id="crc32_default_check">
-                        <property name="label" translatable="yes">Use CRC-32 as the default comment (for 
files with ID3 tags only)</property>
-                        <property name="margin-left">12</property>
-                        <property name="tooltip-text" translatable="yes">Whether to use the CRC-32 of the 
audio file data as the default comment, for files with ID3 tags only</property>
-                        <property name="visible">True</property>
-                    </object>
-                </child>
-            </object>
-        </child>
-        <child type="tab">
-            <object class="GtkLabel" id="scanner_tab_label">
-                <property name="label" translatable="yes">Scanner</property>
-            </object>
-        </child>
-        <child>
-            <object class="GtkGrid" id="cddb_grid">
-                <property name="border-width">12</property>
-                <property name="orientation">vertical</property>
-                <property name="row-spacing">6</property>
-                <property name="visible">True</property>
-                <child>
-                    <object class="GtkGrid" id="cddb_search_grid">
-                        <property name="column-spacing">12</property>
-                        <property name="orientation">vertical</property>
-                        <property name="row-spacing">6</property>
-                        <property name="visible">True</property>
-                        <child>
-                            <object class="GtkLabel" id="automatic_search_label">
-                                <property name="halign">start</property>
-                                <property name="label" translatable="yes">Automatic Search Servers</property>
-                                <property name="visible">True</property>
-                                <attributes>
-                                    <attribute name="weight" value="bold"/>
-                                </attributes>
-                            </object>
-                            <packing>
-                                <property name="width">6</property>
-                            </packing>
-                        </child>
-                        <child>
-                            <object class="GtkLabel" id="cddb_automatic_host1_label">
-                                <property name="halign">start</property>
-                                <property name="label" translatable="yes">Host:</property>
-                                <property name="visible">True</property>
-                            </object>
-                            <packing>
-                                <property name="left_attach">0</property>
-                                <property name="top_attach">1</property>
-                            </packing>
-                        </child>
-                        <child>
-                            <object class="GtkComboBoxText" id="cddb_automatic_host1_combo">
-                                <property name="has-entry">True</property>
-                                <property name="visible">True</property>
-                                <items>
-                                    <item id="host_a">freedb.freedb.org</item>
-                                    <item id="host_b">www.gnudb.org</item>
-                                    <item id="host_c">at.freedb.org</item>
-                                    <item id="host_d">au.freedb.org</item>
-                                    <item id="host_e">ca.freedb.org</item>
-                                    <item id="host_f">es.freedb.org</item>
-                                    <item id="host_g">fi.freedb.org</item>
-                                    <item id="host_h">ru.freedb.org</item>
-                                    <item id="host_i">uk.freedb.org</item>
-                                    <item id="host_j">us.freedb.org</item>
-                                </items>
-                            </object>
-                            <packing>
-                                <property name="left_attach">1</property>
-                                <property name="top_attach">1</property>
-                            </packing>
-                        </child>
-                        <child>
-                            <object class="GtkLabel" id="cddb_automatic_port1_label">
-                                <property name="halign">start</property>
-                                <property name="label" translatable="yes">Port:</property>
-                                <property name="visible">True</property>
-                            </object>
-                            <packing>
-                                <property name="left_attach">2</property>
-                                <property name="top_attach">1</property>
-                            </packing>
-                        </child>
-                        <child>
-                            <object class="GtkSpinButton" id="cddb_automatic_port1_button">
-                                <property name="adjustment">cddb_automatic_host1_adjustment</property>
-                                <property name="visible">True</property>
-                            </object>
-                            <packing>
-                                <property name="left_attach">3</property>
-                                <property name="top_attach">1</property>
-                            </packing>
-                        </child>
-                        <child>
-                            <object class="GtkLabel" id="cddb_automatic_path1_label">
-                                <property name="halign">start</property>
-                                <property name="label" translatable="yes">CGI Path:</property>
-                                <property name="visible">True</property>
-                            </object>
-                            <packing>
-                                <property name="left_attach">4</property>
-                                <property name="top_attach">1</property>
-                            </packing>
-                        </child>
-                        <child>
-                            <object class="GtkEntry" id="cddb_automatic_path1_entry">
-                                <property name="visible">True</property>
-                            </object>
-                            <packing>
-                                <property name="left_attach">5</property>
-                                <property name="top_attach">1</property>
-                            </packing>
-                        </child>
-                        <child>
-                            <object class="GtkLabel" id="cddb_automatic_host2_label">
-                                <property name="halign">start</property>
-                                <property name="label" translatable="yes">Host:</property>
-                                <property name="visible">True</property>
-                            </object>
-                            <packing>
-                                <property name="left_attach">0</property>
-                                <property name="top_attach">2</property>
-                            </packing>
-                        </child>
-                        <child>
-                            <object class="GtkComboBoxText" id="cddb_automatic_host2_combo">
-                                <property name="has-entry">True</property>
-                                <property name="visible">True</property>
-                                <items>
-                                    <item id="host_musicbrainz">freedb.musicbrainz.org</item>
-                                </items>
+                        <child type="tab">
+                            <object class="GtkLabel" id="files_tab_label">
+                                <property name="label" translatable="yes">Files</property>
                             </object>
-                            <packing>
-                                <property name="left_attach">1</property>
-                                <property name="top_attach">2</property>
-                            </packing>
                         </child>
                         <child>
-                            <object class="GtkLabel" id="cddb_automatic_port2_label">
-                                <property name="halign">start</property>
-                                <property name="label" translatable="yes">Port:</property>
-                                <property name="visible">True</property>
-                            </object>
-                            <packing>
-                                <property name="left_attach">2</property>
-                                <property name="top_attach">2</property>
-                            </packing>
-                        </child>
-                        <child>
-                            <object class="GtkSpinButton" id="cddb_automatic_port2_button">
-                                <property name="adjustment">cddb_automatic_host2_adjustment</property>
-                                <property name="visible">True</property>
-                            </object>
-                            <packing>
-                                <property name="left_attach">3</property>
-                                <property name="top_attach">2</property>
-                            </packing>
-                        </child>
-                        <child>
-                            <object class="GtkLabel" id="cddb_automatic_path2_label">
-                                <property name="halign">start</property>
-                                <property name="label" translatable="yes">CGI Path:</property>
-                                <property name="visible">True</property>
-                            </object>
-                            <packing>
-                                <property name="left_attach">4</property>
-                                <property name="top_attach">2</property>
-                            </packing>
-                        </child>
-                        <child>
-                            <object class="GtkEntry" id="cddb_automatic_path2_entry">
-                                <property name="visible">True</property>
-                            </object>
-                            <packing>
-                                <property name="left_attach">5</property>
-                                <property name="top_attach">2</property>
-                            </packing>
-                        </child>
-                        <child>
-                            <object class="GtkLabel" id="manual_search_label">
-                                <property name="halign">start</property>
-                                <property name="label" translatable="yes">Manual Search Server</property>
-                                <property name="margin-top">12</property>
-                                <property name="visible">True</property>
-                                <attributes>
-                                    <attribute name="weight" value="bold"/>
-                                </attributes>
-                            </object>
-                            <packing>
-                                <property name="width">6</property>
-                            </packing>
-                        </child>
-                        <child>
-                            <object class="GtkLabel" id="cddb_manual_host_label">
-                                <property name="halign">start</property>
-                                <property name="label" translatable="yes">Host:</property>
-                                <property name="visible">True</property>
-                            </object>
-                            <packing>
-                                <property name="left_attach">0</property>
-                                <property name="top_attach">4</property>
-                            </packing>
-                        </child>
-                        <child>
-                            <object class="GtkComboBoxText" id="cddb_manual_host_combo">
-                                <property name="has-entry">True</property>
-                                <property name="visible">True</property>
-                                <items>
-                                    <item id="host_freedb">www.freedb.org</item>
-                                    <item id="host_gnudb">www.gnudb.org</item>
-                                </items>
-                            </object>
-                            <packing>
-                                <property name="left_attach">1</property>
-                                <property name="top_attach">4</property>
-                            </packing>
-                        </child>
-                        <child>
-                            <object class="GtkLabel" id="cddb_manual_port_label">
-                                <property name="halign">start</property>
-                                <property name="label" translatable="yes">Port:</property>
-                                <property name="visible">True</property>
-                            </object>
-                            <packing>
-                                <property name="left_attach">2</property>
-                                <property name="top_attach">4</property>
-                            </packing>
-                        </child>
-                        <child>
-                            <object class="GtkSpinButton" id="cddb_manual_port_button">
-                                <property name="adjustment">cddb_manual_host_adjustment</property>
-                                <property name="visible">True</property>
-                            </object>
-                            <packing>
-                                <property name="left_attach">3</property>
-                                <property name="top_attach">4</property>
-                            </packing>
-                        </child>
-                        <child>
-                            <object class="GtkLabel" id="cddb_manual_path_label">
-                                <property name="halign">start</property>
-                                <property name="label" translatable="yes">CGI Path:</property>
+                            <object class="GtkGrid" id="tags_grid">
+                                <property name="border-width">12</property>
+                                <property name="orientation">vertical</property>
+                                <property name="row-spacing">6</property>
                                 <property name="visible">True</property>
+                                <child>
+                                    <object class="GtkLabel" id="tags_label">
+                                        <property name="halign">start</property>
+                                        <property name="label" translatable="yes">General</property>
+                                        <property name="visible">True</property>
+                                        <attributes>
+                                            <attribute name="weight" value="bold"/>
+                                        </attributes>
+                                    </object>
+                                </child>
+                                <child>
+                                    <object class="GtkCheckButton" id="tags_auto_date_check">
+                                        <property name="label" translatable="yes">Automatically complete 
date field</property>
+                                        <property name="margin-left">12</property>
+                                        <property name="tooltip-text" translatable="yes">Whether to 
automatically complete the date tag</property>
+                                        <property name="visible">True</property>
+                                    </object>
+                                </child>
+                                <child>
+                                    <object class="GtkCheckButton" id="tags_auto_image_type_check">
+                                        <property name="label" translatable="yes">Automatically select the 
type of the image based on its filename</property>
+                                        <property name="margin-left">12</property>
+                                        <property name="tooltip-text" translatable="yes">Whether to, when 
adding cover art, automatically select a type for an image based on its filename</property>
+                                        <property name="visible">True</property>
+                                    </object>
+                                </child>
+                                <child>
+                                    <object class="GtkCheckButton" id="tags_preserve_focus_check">
+                                        <property name="label" translatable="yes">Preserve the tag field 
focus</property>
+                                        <property name="margin-left">12</property>
+                                        <property name="tooltip-text" translatable="yes">Whether to preserve 
focus on the current tag field when switching file</property>
+                                        <property name="visible">True</property>
+                                    </object>
+                                </child>
+                                <child>
+                                    <object class="GtkGrid" id="tags_padding_grid">
+                                        <property name="column-spacing">12</property>
+                                        <property name="margin-left">12</property>
+                                        <property name="row-spacing">6</property>
+                                        <property name="visible">True</property>
+                                        <child>
+                                            <object class="GtkCheckButton" id="tags_disc_check">
+                                                <property name="label" translatable="yes">Pad the number of 
digits in the disc field to:</property>
+                                                <property name="tooltip-text" translatable="yes">Whether the 
disc number tag field should be padded with leading zeroes</property>
+                                                <property name="visible">True</property>
+                                            </object>
+                                            <packing>
+                                                <property name="left_attach">0</property>
+                                                <property name="top_attach">0</property>
+                                            </packing>
+                                        </child>
+                                        <child>
+                                            <object class="GtkSpinButton" id="tags_disc_button">
+                                                <property name="adjustment">tags_disc_adjustment</property>
+                                                <property name="visible">True</property>
+                                            </object>
+                                            <packing>
+                                                <property name="left_attach">1</property>
+                                                <property name="top_attach">0</property>
+                                            </packing>
+                                        </child>
+                                        <child>
+                                            <object class="GtkCheckButton" id="tags_track_check">
+                                                <property name="label" translatable="yes">Pad the number of 
digits in the track field to:</property>
+                                                <property name="tooltip-text" translatable="yes">Whether the 
track number tag field should be padded with leading zeroes</property>
+                                                <property name="visible">True</property>
+                                            </object>
+                                            <packing>
+                                                <property name="left_attach">0</property>
+                                                <property name="top_attach">1</property>
+                                            </packing>
+                                        </child>
+                                        <child>
+                                            <object class="GtkSpinButton" id="tags_track_button">
+                                                <property name="adjustment">tags_track_adjustment</property>
+                                                <property name="visible">True</property>
+                                            </object>
+                                            <packing>
+                                                <property name="left_attach">1</property>
+                                                <property name="top_attach">1</property>
+                                            </packing>
+                                        </child>
+                                    </object>
+                                </child>
+                                <child>
+                                    <object class="GtkLabel" id="tags_splitting_label">
+                                        <property name="halign">start</property>
+                                        <property name="label" translatable="yes">Splitting</property>
+                                        <property name="margin-top">12</property>
+                                        <property name="visible">True</property>
+                                        <attributes>
+                                            <attribute name="weight" value="bold"/>
+                                        </attributes>
+                                    </object>
+                                </child>
+                                <child>
+                                    <object class="GtkLabel" id="tags_splitting_description_label">
+                                        <property name="halign">start</property>
+                                        <property name="label" translatable="yes">For Vorbis tags, selected 
fields will be split at dashes and saved as separate tags</property>
+                                        <property name="margin-left">12</property>
+                                        <property name="visible">True</property>
+                                    </object>
+                                </child>
+                                <child>
+                                    <object class="GtkGrid" id="tags_splitting_grid">
+                                        <property name="column-spacing">18</property>
+                                        <property name="margin-left">12</property>
+                                        <property name="row-spacing">6</property>
+                                        <property name="visible">True</property>
+                                        <child>
+                                            <object class="GtkCheckButton" id="split_title_check">
+                                                <property name="label" translatable="yes">Title</property>
+                                                <property name="tooltip-text" translatable="yes">Whether to 
split title fields at a “ - ” separator in Ogg comments</property>
+                                                <property name="visible">True</property>
+                                            </object>
+                                            <packing>
+                                                <property name="left_attach">0</property>
+                                                <property name="top_attach">0</property>
+                                            </packing>
+                                        </child>
+                                        <child>
+                                            <object class="GtkCheckButton" id="split_artist_check">
+                                                <property name="label" translatable="yes">Artist</property>
+                                                <property name="tooltip-text" translatable="yes">Whether to 
split artist fields at a “ - ” separator in Ogg comments</property>
+                                                <property name="visible">True</property>
+                                            </object>
+                                            <packing>
+                                                <property name="left_attach">0</property>
+                                                <property name="top_attach">1</property>
+                                            </packing>
+                                        </child>
+                                        <child>
+                                            <object class="GtkCheckButton" id="split_album_check">
+                                                <property name="label" translatable="yes">Album</property>
+                                                <property name="tooltip-text" translatable="yes">Whether to 
split album fields at a “ - ” separator in Ogg comments</property>
+                                                <property name="visible">True</property>
+                                            </object>
+                                            <packing>
+                                                <property name="left_attach">0</property>
+                                                <property name="top_attach">2</property>
+                                            </packing>
+                                        </child>
+                                        <child>
+                                            <object class="GtkCheckButton" id="split_genre_check">
+                                                <property name="label" translatable="yes">Genre</property>
+                                                <property name="tooltip-text" translatable="yes">Whether to 
split genre fields at a “ - ” separator in Ogg comments</property>
+                                                <property name="visible">True</property>
+                                            </object>
+                                            <packing>
+                                                <property name="left_attach">0</property>
+                                                <property name="top_attach">3</property>
+                                            </packing>
+                                        </child>
+                                        <child>
+                                            <object class="GtkCheckButton" id="split_comment_check">
+                                                <property name="label" translatable="yes">Comment</property>
+                                                <property name="tooltip-text" translatable="yes">Whether to 
split comment fields at a “ - ” separator in Ogg comments</property>
+                                                <property name="visible">True</property>
+                                            </object>
+                                            <packing>
+                                                <property name="left_attach">1</property>
+                                                <property name="top_attach">0</property>
+                                            </packing>
+                                        </child>
+                                        <child>
+                                            <object class="GtkCheckButton" id="split_composer_check">
+                                                <property name="label" translatable="yes">Composer</property>
+                                                <property name="tooltip-text" translatable="yes">Whether to 
split composer fields at a “ - ” separator in Ogg comments</property>
+                                                <property name="visible">True</property>
+                                            </object>
+                                            <packing>
+                                                <property name="left_attach">1</property>
+                                                <property name="top_attach">1</property>
+                                            </packing>
+                                        </child>
+                                        <child>
+                                            <object class="GtkCheckButton" id="split_orig_artist_check">
+                                                <property name="label" translatable="yes">Original 
artist</property>
+                                                <property name="tooltip-text" translatable="yes">Whether to 
split original artist fields at a “ - ” separator in Ogg comments</property>
+                                                <property name="visible">True</property>
+                                            </object>
+                                            <packing>
+                                                <property name="left_attach">1</property>
+                                                <property name="top_attach">2</property>
+                                            </packing>
+                                        </child>
+                                    </object>
+                                </child>
                             </object>
-                            <packing>
-                                <property name="left_attach">4</property>
-                                <property name="top_attach">4</property>
-                            </packing>
                         </child>
-                        <child>
-                            <object class="GtkEntry" id="cddb_manual_path_entry">
-                                <property name="visible">True</property>
+                        <child type="tab">
+                            <object class="GtkLabel" id="tags_tab_label">
+                                <property name="label" translatable="yes">Tags</property>
                             </object>
-                            <packing>
-                                <property name="left_attach">5</property>
-                                <property name="top_attach">4</property>
-                            </packing>
                         </child>
-                    </object>
-                </child>
-                <child>
-                    <object class="GtkLabel" id="cddb_proxy_label">
-                        <property name="halign">start</property>
-                        <property name="label" translatable="yes">Proxy</property>
-                        <property name="margin-top">12</property>
-                        <property name="visible">True</property>
-                        <attributes>
-                            <attribute name="weight" value="bold"/>
-                        </attributes>
-                    </object>
-                </child>
-                <child>
-                    <object class="GtkCheckButton" id="cddb_proxy_check">
-                        <property name="label" translatable="yes">Use a proxy server</property>
-                        <property name="margin-left">12</property>
-                        <property name="tooltip-text" translatable="yes">Whether to access remote CDDB 
through a proxy</property>
-                        <property name="visible">True</property>
-                    </object>
-                </child>
-                <child>
-                    <object class="GtkGrid" id="cddb_proxy_grid">
-                        <property name="column-spacing">12</property>
-                        <property name="row-spacing">6</property>
-                        <property name="visible">True</property>
                         <child>
-                            <object class="GtkLabel" id="cddb_host_label">
-                                <property name="halign">start</property>
-                                <property name="label" translatable="yes">Host:</property>
+                            <object class="GtkGrid" id="id3_tags_grid">
+                                <property name="border-width">12</property>
+                                <property name="orientation">vertical</property>
+                                <property name="row-spacing">6</property>
                                 <property name="visible">True</property>
+                                <child>
+                                    <object class="GtkLabel" id="id3_tags_label">
+                                        <property name="halign">start</property>
+                                        <property name="label" translatable="yes">General</property>
+                                        <property name="visible">True</property>
+                                        <attributes>
+                                            <attribute name="weight" value="bold"/>
+                                        </attributes>
+                                    </object>
+                                </child>
+                                <child>
+                                    <object class="GtkCheckButton" id="id3_strip_check">
+                                        <property name="label" translatable="yes">Strip ID3 tags if all ID3 
tags are empty</property>
+                                        <property name="margin-left">12</property>
+                                        <property name="tooltip-text" translatable="yes">Whether to remove 
the ID3 tag from the audio file if all the individual tag fields are empty</property>
+                                        <property name="visible">True</property>
+                                    </object>
+                                </child>
+                                <child>
+                                    <object class="GtkBox" id="id3_read_encoding_box">
+                                        <property name="margin-left">12</property>
+                                        <property name="spacing">12</property>
+                                        <property name="visible">True</property>
+                                        <child>
+                                            <object class="GtkCheckButton" id="id3_read_encoding_check">
+                                                <property name="label" translatable="yes">Non-standard 
encoding for reading ID3 tags:</property>
+                                                <property name="tooltip-text" translatable="yes">Whether to 
use a non-standard character encoding when reading ID3 tags</property>
+                                                <property name="visible">True</property>
+                                            </object>
+                                        </child>
+                                        <child>
+                                            <object class="GtkComboBoxText" id="id3_read_encoding_combo">
+                                                <property name="tooltip-text" translatable="yes">Choose the 
character set to be used when reading ID3v1 and ID3v2 tags</property>
+                                                <property name="visible">True</property>
+                                            </object>
+                                        </child>
+                                    </object>
+                                </child>
+                                <child>
+                                    <object class="GtkLabel" id="id3_v2_label">
+                                        <property name="halign">start</property>
+                                        <property name="label" translatable="yes">ID3v2</property>
+                                        <property name="margin-top">12</property>
+                                        <property name="visible">True</property>
+                                        <attributes>
+                                            <attribute name="weight" value="bold"/>
+                                        </attributes>
+                                    </object>
+                                </child>
+                                <child>
+                                    <object class="GtkGrid" id="id3_v2_encoding_grid">
+                                        <property name="column-spacing">12</property>
+                                        <property name="margin-left">12</property>
+                                        <property name="row-spacing">6</property>
+                                        <property name="visible">True</property>
+                                        <child>
+                                            <object class="GtkCheckButton" id="id3_v2_check">
+                                                <property name="label" translatable="yes">Write ID3v2 
tag</property>
+                                                <property name="tooltip-text" translatable="yes">Whether to 
write ID3v2 tags when writing ID3 tags into audio files</property>
+                                                <property name="visible">True</property>
+                                            </object>
+                                            <packing>
+                                                <property name="left_attach">0</property>
+                                                <property name="top_attach">0</property>
+                                            </packing>
+                                        </child>
+                                        <child>
+                                            <object class="GtkLabel" id="id3_v2_version_label">
+                                                <property name="halign">start</property>
+                                                <property name="label" translatable="yes">Version:</property>
+                                                <property name="margin-left">12</property>
+                                                <property name="tooltip-text" translatable="yes">Whether to 
write ID3v2 tags when writing ID3 tags into audio files</property>
+                                                <property name="visible">True</property>
+                                            </object>
+                                            <packing>
+                                                <property name="left_attach">1</property>
+                                                <property name="top_attach">0</property>
+                                            </packing>
+                                        </child>
+                                        <child>
+                                            <object class="GtkComboBoxText" id="id3_v2_version_combo">
+                                                <items>
+                                                    <item id="id3v2.3">ID3v2.3</item>
+                                                    <item id="id3v2.4">ID3v2.4</item>
+                                                </items>
+                                                <property name="tooltip-text" translatable="yes">Select the 
ID3v2 tag version to write:
+                 • ID3v2.3 is written using id3lib,
+                 • ID3v2.4 is written using libid3tag (recommended)</property>
+                                                <property name="visible">True</property>
+                                            </object>
+                                            <packing>
+                                                <property name="left_attach">2</property>
+                                                <property name="top_attach">0</property>
+                                            </packing>
+                                        </child>
+                                        <child>
+                                            <object class="GtkLabel" id="id3_v2_encoding_label">
+                                                <property name="halign">start</property>
+                                                <property name="label" translatable="yes">Character 
encoding:</property>
+                                                <property name="visible">True</property>
+                                            </object>
+                                            <packing>
+                                                <property name="left_attach">0</property>
+                                                <property name="top_attach">1</property>
+                                            </packing>
+                                        </child>
+                                        <child>
+                                            <object class="GtkRadioButton" id="id3_v2_unicode_radio">
+                                                <property name="label" translatable="yes">Unicode</property>
+                                                <property name="visible">True</property>
+                                            </object>
+                                            <packing>
+                                                <property name="left_attach">1</property>
+                                                <property name="top_attach">1</property>
+                                            </packing>
+                                        </child>
+                                        <child>
+                                            <object class="GtkComboBoxText" 
id="id3_v2_unicode_encoding_combo">
+                                                <items>
+                                                    <item id="utf-8">UTF-8</item>
+                                                    <item id="utf-16">UTF-16</item>
+                                                </items>
+                                                <property name="tooltip-text" translatable="yes">Choose the 
Unicode character encoding to be used when writing ID3v2 tags</property>
+                                                <property name="visible">True</property>
+                                            </object>
+                                            <packing>
+                                                <property name="left_attach">2</property>
+                                                <property name="top_attach">1</property>
+                                            </packing>
+                                        </child>
+                                        <child>
+                                            <object class="GtkRadioButton" id="id3_v2_other_radio">
+                                                <property name="group">id3_v2_unicode_radio</property>
+                                                <property name="label" translatable="yes">Other</property>
+                                                <property name="visible">True</property>
+                                            </object>
+                                            <packing>
+                                                <property name="left_attach">1</property>
+                                                <property name="top_attach">2</property>
+                                            </packing>
+                                        </child>
+                                        <child>
+                                            <object class="GtkComboBoxText" 
id="id3_v2_override_encoding_combo">
+                                                <property name="tooltip-text" translatable="yes">Override 
the standard Unicode character encoding to be used when writing ID3v2 tags</property>
+                                                <property name="visible">True</property>
+                                            </object>
+                                            <packing>
+                                                <property name="left_attach">2</property>
+                                                <property name="top_attach">2</property>
+                                            </packing>
+                                        </child>
+                                        <child>
+                                            <object class="GtkLabel" id="id3_v2_iconv_label">
+                                                <property name="halign">start</property>
+                                                <property name="label" translatable="yes">When encoding 
conversion fails:</property>
+                                                <property name="visible">True</property>
+                                            </object>
+                                            <packing>
+                                                <property name="left_attach">0</property>
+                                                <property name="top_attach">3</property>
+                                                <property name="width">2</property>
+                                            </packing>
+                                        </child>
+                                        <child>
+                                            <object class="GtkBox" id="id3_v2_iconv_box">
+                                                <property name="spacing">12</property>
+                                                <child>
+                                                    <object class="GtkRadioButton" id="id3_v2_none_radio">
+                                                        <property name="label" translatable="yes">Report 
error</property>
+                                                        <property name="name">none</property>
+                                                        <property name="tooltip-text" 
translatable="yes">Display an error message when a character cannot be represented in the target character 
encoding and keep the original character</property>
+                                                        <property name="visible">True</property>
+                                                    </object>
+                                                </child>
+                                                <child>
+                                                    <object class="GtkRadioButton" 
id="id3_v2_transliterate_radio">
+                                                        <property name="group">id3_v1_none_radio</property>
+                                                        <property name="label" 
translatable="yes">Transliterate</property>
+                                                        <property name="name">transliterate</property>
+                                                        <property name="tooltip-text" 
translatable="yes">Replace unsupported characters with a similar character from the target character 
encoding</property>
+                                                        <property name="visible">True</property>
+                                                    </object>
+                                                </child>
+                                                <child>
+                                                    <object class="GtkRadioButton" id="id3_v2_ignore_radio">
+                                                        <property name="group">id3_v1_none_radio</property>
+                                                        <property name="label" 
translatable="yes">Discard</property>
+                                                        <property name="name">ignore</property>
+                                                        <property name="tooltip-text" 
translatable="yes">Discard characters which cannot be represented in the target character encoding</property>
+                                                        <property name="visible">True</property>
+                                                    </object>
+                                                </child>
+                                            </object>
+                                            <packing>
+                                                <property name="left_attach">2</property>
+                                                <property name="top_attach">3</property>
+                                                <property name="width">2</property>
+                                            </packing>
+                                        </child>
+                                    </object>
+                                </child>
+                                <child>
+                                    <object class="GtkGrid" id="id3_v2_check_grid">
+                                        <property name="column-spacing">12</property>
+                                        <property name="margin-left">12</property>
+                                        <property name="row-spacing">6</property>
+                                        <property name="visible">True</property>
+                                        <child>
+                                            <object class="GtkCheckButton" id="id3_v2_convert_check">
+                                                <property name="label" translatable="yes">Automatically 
convert old ID3v2 tag versions</property>
+                                                <property name="tooltip-text" translatable="yes">Whether to 
convert ID3 tags written against old version of the specification, such as ID3v2.2, to newer ones, such as 
ID3v2.3 or ID3v2.4</property>
+                                                <property name="visible">True</property>
+                                            </object>
+                                            <packing>
+                                                <property name="left_attach">0</property>
+                                                <property name="top_attach">0</property>
+                                            </packing>
+                                        </child>
+                                        <child>
+                                            <object class="GtkCheckButton" id="id3_v2_crc32_check">
+                                                <property name="label" translatable="yes">Use 
CRC-32</property>
+                                                <property name="tooltip-text" translatable="yes">Whether to 
embed a CRC-32 checksum of the audio file data in ID3v2 tags</property>
+                                                <property name="visible">True</property>
+                                            </object>
+                                            <packing>
+                                                <property name="left_attach">1</property>
+                                                <property name="top_attach">0</property>
+                                            </packing>
+                                        </child>
+                                        <child>
+                                            <object class="GtkCheckButton" id="id3_v2_compression_check">
+                                                <property name="label" translatable="yes">Compress data in 
ID3v2 tags</property>
+                                                <property name="tooltip-text" translatable="yes">Whether to 
compress data in ID3v2 tags</property>
+                                                <property name="visible">True</property>
+                                            </object>
+                                            <packing>
+                                                <property name="left_attach">0</property>
+                                                <property name="top_attach">1</property>
+                                            </packing>
+                                        </child>
+                                        <child>
+                                            <object class="GtkCheckButton" id="id3_v2_genre_check">
+                                                <property name="label" translatable="yes">Use text-only 
genre in ID3v2 tags</property>
+                                                <property name="tooltip-text" translatable="yes">Whether to 
use only a string, and not the integer-base ID3v1 genre field, when writing a genre field to ID3v2 
tags</property>
+                                                <property name="visible">True</property>
+                                            </object>
+                                            <packing>
+                                                <property name="left_attach">1</property>
+                                                <property name="top_attach">1</property>
+                                            </packing>
+                                        </child>
+                                    </object>
+                                </child>
+                                <child>
+                                    <object class="GtkLabel" id="id3_v1_label">
+                                        <property name="halign">start</property>
+                                        <property name="label" translatable="yes">ID3v1</property>
+                                        <property name="margin-top">12</property>
+                                        <property name="visible">True</property>
+                                        <attributes>
+                                            <attribute name="weight" value="bold"/>
+                                        </attributes>
+                                    </object>
+                                </child>
+                                <child>
+                                    <object class="GtkCheckButton" id="id3_v1_check">
+                                        <property name="label" translatable="yes">Write ID3v1 tag</property>
+                                        <property name="margin-left">12</property>
+                                        <property name="tooltip-text" translatable="yes">Whether to write 
ID3v1 tags when writing ID3 tags into audio files</property>
+                                        <property name="visible">True</property>
+                                    </object>
+                                </child>
+                                <child>
+                                    <object class="GtkGrid" id="id3_v1_encoding_grid">
+                                        <property name="column-spacing">12</property>
+                                        <property name="margin-left">12</property>
+                                        <property name="row-spacing">6</property>
+                                        <property name="visible">True</property>
+                                        <child>
+                                            <object class="GtkLabel" id="id3_v1_encoding_label">
+                                                <property name="halign">start</property>
+                                                <property name="label" translatable="yes">Character 
encoding:</property>
+                                                <property name="visible">True</property>
+                                            </object>
+                                            <packing>
+                                                <property name="left_attach">0</property>
+                                                <property name="top_attach">0</property>
+                                            </packing>
+                                        </child>
+                                        <child>
+                                            <object class="GtkComboBoxText" id="id3_v1_encoding_combo">
+                                                <property name="tooltip-text" translatable="yes">Choose the 
character set to be used when writing ID3v1 tag</property>
+                                                <property name="visible">True</property>
+                                            </object>
+                                            <packing>
+                                                <property name="left_attach">1</property>
+                                                <property name="top_attach">0</property>
+                                            </packing>
+                                        </child>
+                                        <child>
+                                            <object class="GtkLabel" id="id3_v1_iconv_label">
+                                                <property name="halign">start</property>
+                                                <property name="label" translatable="yes">When encoding 
conversion fails:</property>
+                                                <property name="visible">True</property>
+                                            </object>
+                                            <packing>
+                                                <property name="left_attach">0</property>
+                                                <property name="top_attach">1</property>
+                                            </packing>
+                                        </child>
+                                        <child>
+                                            <object class="GtkBox" id="id3_v1_iconv_box">
+                                                <property name="spacing">12</property>
+                                                <child>
+                                                    <object class="GtkRadioButton" id="id3_v1_none_radio">
+                                                        <property name="label" translatable="yes">Report 
error</property>
+                                                        <property name="name">none</property>
+                                                        <property name="tooltip-text" 
translatable="yes">Display an error message when a character cannot be represented in the target character 
encoding and keep the original character</property>
+                                                        <property name="visible">True</property>
+                                                    </object>
+                                                </child>
+                                                <child>
+                                                    <object class="GtkRadioButton" 
id="id3_v1_transliterate_radio">
+                                                        <property name="group">id3_v1_none_radio</property>
+                                                        <property name="label" 
translatable="yes">Transliterate</property>
+                                                        <property name="name">transliterate</property>
+                                                        <property name="tooltip-text" 
translatable="yes">Replace unsupported characters with a similar character from the target character 
encoding</property>
+                                                        <property name="visible">True</property>
+                                                    </object>
+                                                </child>
+                                                <child>
+                                                    <object class="GtkRadioButton" id="id3_v1_ignore_radio">
+                                                        <property name="group">id3_v1_none_radio</property>
+                                                        <property name="label" 
translatable="yes">Discard</property>
+                                                        <property name="name">ignore</property>
+                                                        <property name="tooltip-text" 
translatable="yes">Discard characters which cannot be represented in the target character encoding</property>
+                                                        <property name="visible">True</property>
+                                                    </object>
+                                                </child>
+                                            </object>
+                                            <packing>
+                                                <property name="left_attach">1</property>
+                                                <property name="top_attach">1</property>
+                                                <property name="width">2</property>
+                                            </packing>
+                                        </child>
+                                    </object>
+                                </child>
                             </object>
-                            <packing>
-                                <property name="left-attach">0</property>
-                                <property name="top-attach">0</property>
-                            </packing>
                         </child>
-                        <child>
-                            <object class="GtkEntry" id="cddb_host_entry">
-                                <property name="tooltip-text" translatable="yes">Hostname for a proxy to 
access remote CDDB</property>
-                                <property name="visible">True</property>
+                        <child type="tab">
+                            <object class="GtkLabel" id="id3_tags_tab_label">
+                                <property name="label" translatable="yes">ID3 Tags</property>
                             </object>
-                            <packing>
-                                <property name="left-attach">1</property>
-                                <property name="top-attach">0</property>
-                            </packing>
                         </child>
                         <child>
-                            <object class="GtkLabel" id="cddb_port_label">
-                                <property name="halign">start</property>
-                                <property name="label" translatable="yes">Port:</property>
+                            <object class="GtkGrid" id="scanner_grid">
+                                <property name="border-width">12</property>
+                                <property name="orientation">vertical</property>
+                                <property name="row-spacing">6</property>
                                 <property name="visible">True</property>
+                                <child>
+                                    <object class="GtkLabel" id="character_conversion_label">
+                                        <property name="halign">start</property>
+                                        <property name="label" translatable="yes">Character 
Conversion</property>
+                                        <property name="visible">True</property>
+                                        <attributes>
+                                            <attribute name="weight" value="bold"/>
+                                        </attributes>
+                                    </object>
+                                </child>
+                                <child>
+                                    <object class="GtkLabel" id="fill_tag_scanner_label">
+                                        <property name="halign">start</property>
+                                        <property name="label" translatable="yes" comments="Translators: a 
section header in the Scanner section of the preferences dialog.">Fill Tag Scanner</property>
+                                        <property name="margin-left">12</property>
+                                        <property name="margin-top">12</property>
+                                        <property name="visible">True</property>
+                                        <attributes>
+                                            <attribute name="weight" value="bold"/>
+                                        </attributes>
+                                    </object>
+                                </child>
+                                <child>
+                                    <object class="GtkRadioButton" id="fts_underscore_p20_radio">
+                                        <property name="label" translatable="yes">Convert underscores and 
‘%20’ to spaces</property>
+                                        <property name="margin-left">24</property>
+                                        <property name="name">spaces</property>
+                                        <property name="visible">True</property>
+                                    </object>
+                                </child>
+                                <child>
+                                    <object class="GtkRadioButton" id="fts_spaces_radio">
+                                        <property name="group">fts_underscore_p20_radio</property>
+                                        <property name="label" translatable="yes">Convert spaces and ‘%20’ 
to underscores</property>
+                                        <property name="margin-left">24</property>
+                                        <property name="name">underscores</property>
+                                        <property name="visible">True</property>
+                                    </object>
+                                </child>
+                                <child>
+                                    <object class="GtkRadioButton" id="fts_none_radio">
+                                        <property name="group">fts_underscore_p20_radio</property>
+                                        <property name="label" translatable="yes">No conversion</property>
+                                        <property name="margin-left">24</property>
+                                        <property name="name">no-change</property>
+                                        <property name="visible">True</property>
+                                    </object>
+                                </child>
+                                <child>
+                                    <object class="GtkLabel" id="rename_file_directory_scanner_label">
+                                        <property name="halign">start</property>
+                                        <property name="label" translatable="yes" comments="Translators: a 
section header in the Scanner section of the preferences dialog.">Rename File and Directory Scanner</property>
+                                        <property name="margin-left">12</property>
+                                        <property name="margin-top">12</property>
+                                        <property name="visible">True</property>
+                                        <attributes>
+                                            <attribute name="weight" value="bold"/>
+                                        </attributes>
+                                    </object>
+                                </child>
+                                <child>
+                                    <object class="GtkRadioButton" id="rfs_underscore_p20_radio">
+                                        <property name="label" translatable="yes">Convert underscores and 
‘%20’ to spaces</property>
+                                        <property name="margin-left">24</property>
+                                        <property name="name">spaces</property>
+                                        <property name="visible">True</property>
+                                    </object>
+                                </child>
+                                <child>
+                                    <object class="GtkRadioButton" id="rfs_spaces_radio">
+                                        <property name="group">rfs_underscore_p20_radio</property>
+                                        <property name="label" translatable="yes">Convert spaces and ‘%20’ 
to underscores</property>
+                                        <property name="margin-left">24</property>
+                                        <property name="name">underscores</property>
+                                        <property name="visible">True</property>
+                                    </object>
+                                </child>
+                                <child>
+                                    <object class="GtkRadioButton" id="rfs_remove_radio">
+                                        <property name="group">rfs_underscore_p20_radio</property>
+                                        <property name="label" translatable="yes">No conversion</property>
+                                        <property name="margin-left">24</property>
+                                        <property name="name">remove</property>
+                                        <property name="visible">True</property>
+                                    </object>
+                                </child>
+                                <child>
+                                    <object class="GtkLabel" id="process_fields_scanner_label">
+                                        <property name="halign">start</property>
+                                        <property name="label" translatable="yes" comments="Translators: a 
section header in the Scanner section of the preferences dialog.">Process Fields Scanner</property>
+                                        <property name="margin-left">12</property>
+                                        <property name="margin-top">12</property>
+                                        <property name="visible">True</property>
+                                        <attributes>
+                                            <attribute name="weight" value="bold"/>
+                                        </attributes>
+                                    </object>
+                                </child>
+                                <child>
+                                    <object class="GtkCheckButton" id="pfs_uppercase_prep_check">
+                                        <property name="label" translatable="yes">Upper-case the first 
letters of all words</property>
+                                        <property name="margin-left">24</property>
+                                        <property name="tooltip-text" translatable="yes">Whether to 
upper-case the first letter of all words, including prepositions and other short words such as “feat.”, when 
processing tag fields</property>
+                                        <property name="visible">True</property>
+                                    </object>
+                                </child>
+                                <child>
+                                    <object class="GtkLabel" id="fields_label">
+                                        <property name="halign">start</property>
+                                        <property name="label" translatable="yes">Fields</property>
+                                        <property name="margin-top">12</property>
+                                        <property name="visible">True</property>
+                                        <attributes>
+                                            <attribute name="weight" value="bold"/>
+                                        </attributes>
+                                    </object>
+                                </child>
+                                <child>
+                                    <object class="GtkCheckButton" id="overwrite_fields_check">
+                                        <property name="label" translatable="yes">Overwrite fields when 
scanning tags</property>
+                                        <property name="margin-left">12</property>
+                                        <property name="tooltip-text" translatable="yes">Whether to 
overwrite the tag field values when filling tags. Otherwise, only blank tag fields will be filled</property>
+                                        <property name="visible">True</property>
+                                    </object>
+                                </child>
+                                <child>
+                                    <object class="GtkBox" id="default_comment_box">
+                                        <property name="margin-left">12</property>
+                                        <property name="spacing">12</property>
+                                        <property name="visible">True</property>
+                                        <child>
+                                            <object class="GtkCheckButton" id="default_comment_check">
+                                                <property name="label" translatable="yes">Set this text as 
default comment:</property>
+                                                <property name="tooltip-text" translatable="yes">Whether to 
set the comment tag field to the provided default value when filling tags</property>
+                                                <property name="visible">True</property>
+                                            </object>
+                                        </child>
+                                        <child>
+                                            <object class="GtkEntry" id="default_comment_entry">
+                                                <property name="visible">True</property>
+                                            </object>
+                                        </child>
+                                    </object>
+                                </child>
+                                <child>
+                                    <object class="GtkCheckButton" id="crc32_default_check">
+                                        <property name="label" translatable="yes">Use CRC-32 as the default 
comment (for files with ID3 tags only)</property>
+                                        <property name="margin-left">12</property>
+                                        <property name="tooltip-text" translatable="yes">Whether to use the 
CRC-32 of the audio file data as the default comment, for files with ID3 tags only</property>
+                                        <property name="visible">True</property>
+                                    </object>
+                                </child>
                             </object>
-                            <packing>
-                                <property name="left-attach">2</property>
-                                <property name="top-attach">0</property>
-                            </packing>
                         </child>
-                        <child>
-                            <object class="GtkSpinButton" id="cddb_port_button">
-                                <property name="adjustment">cddb_proxy_adjustment</property>
-                                <property name="tooltip-text" translatable="yes">Port for a proxy to access 
remote CDDB</property>
-                                <property name="visible">True</property>
+                        <child type="tab">
+                            <object class="GtkLabel" id="scanner_tab_label">
+                                <property name="label" translatable="yes">Scanner</property>
                             </object>
-                            <packing>
-                                <property name="left-attach">3</property>
-                                <property name="top-attach">0</property>
-                            </packing>
                         </child>
                         <child>
-                            <object class="GtkLabel" id="cddb_user_label">
-                                <property name="halign">start</property>
-                                <property name="label" translatable="yes">User:</property>
+                            <object class="GtkGrid" id="cddb_grid">
+                                <property name="border-width">12</property>
+                                <property name="orientation">vertical</property>
+                                <property name="row-spacing">6</property>
                                 <property name="visible">True</property>
+                                <child>
+                                    <object class="GtkGrid" id="cddb_search_grid">
+                                        <property name="column-spacing">12</property>
+                                        <property name="orientation">vertical</property>
+                                        <property name="row-spacing">6</property>
+                                        <property name="visible">True</property>
+                                        <child>
+                                            <object class="GtkLabel" id="automatic_search_label">
+                                                <property name="halign">start</property>
+                                                <property name="label" translatable="yes">Automatic Search 
Servers</property>
+                                                <property name="visible">True</property>
+                                                <attributes>
+                                                    <attribute name="weight" value="bold"/>
+                                                </attributes>
+                                            </object>
+                                            <packing>
+                                                <property name="width">6</property>
+                                            </packing>
+                                        </child>
+                                        <child>
+                                            <object class="GtkLabel" id="cddb_automatic_host1_label">
+                                                <property name="halign">start</property>
+                                                <property name="label" translatable="yes">Host:</property>
+                                                <property name="visible">True</property>
+                                            </object>
+                                            <packing>
+                                                <property name="left_attach">0</property>
+                                                <property name="top_attach">1</property>
+                                            </packing>
+                                        </child>
+                                        <child>
+                                            <object class="GtkComboBoxText" id="cddb_automatic_host1_combo">
+                                                <property name="has-entry">True</property>
+                                                <property name="visible">True</property>
+                                                <items>
+                                                    <item id="host_a">freedb.freedb.org</item>
+                                                    <item id="host_b">www.gnudb.org</item>
+                                                    <item id="host_c">at.freedb.org</item>
+                                                    <item id="host_d">au.freedb.org</item>
+                                                    <item id="host_e">ca.freedb.org</item>
+                                                    <item id="host_f">es.freedb.org</item>
+                                                    <item id="host_g">fi.freedb.org</item>
+                                                    <item id="host_h">ru.freedb.org</item>
+                                                    <item id="host_i">uk.freedb.org</item>
+                                                    <item id="host_j">us.freedb.org</item>
+                                                </items>
+                                            </object>
+                                            <packing>
+                                                <property name="left_attach">1</property>
+                                                <property name="top_attach">1</property>
+                                            </packing>
+                                        </child>
+                                        <child>
+                                            <object class="GtkLabel" id="cddb_automatic_port1_label">
+                                                <property name="halign">start</property>
+                                                <property name="label" translatable="yes">Port:</property>
+                                                <property name="visible">True</property>
+                                            </object>
+                                            <packing>
+                                                <property name="left_attach">2</property>
+                                                <property name="top_attach">1</property>
+                                            </packing>
+                                        </child>
+                                        <child>
+                                            <object class="GtkSpinButton" id="cddb_automatic_port1_button">
+                                                <property 
name="adjustment">cddb_automatic_host1_adjustment</property>
+                                                <property name="visible">True</property>
+                                            </object>
+                                            <packing>
+                                                <property name="left_attach">3</property>
+                                                <property name="top_attach">1</property>
+                                            </packing>
+                                        </child>
+                                        <child>
+                                            <object class="GtkLabel" id="cddb_automatic_path1_label">
+                                                <property name="halign">start</property>
+                                                <property name="label" translatable="yes">CGI 
Path:</property>
+                                                <property name="visible">True</property>
+                                            </object>
+                                            <packing>
+                                                <property name="left_attach">4</property>
+                                                <property name="top_attach">1</property>
+                                            </packing>
+                                        </child>
+                                        <child>
+                                            <object class="GtkEntry" id="cddb_automatic_path1_entry">
+                                                <property name="visible">True</property>
+                                            </object>
+                                            <packing>
+                                                <property name="left_attach">5</property>
+                                                <property name="top_attach">1</property>
+                                            </packing>
+                                        </child>
+                                        <child>
+                                            <object class="GtkLabel" id="cddb_automatic_host2_label">
+                                                <property name="halign">start</property>
+                                                <property name="label" translatable="yes">Host:</property>
+                                                <property name="visible">True</property>
+                                            </object>
+                                            <packing>
+                                                <property name="left_attach">0</property>
+                                                <property name="top_attach">2</property>
+                                            </packing>
+                                        </child>
+                                        <child>
+                                            <object class="GtkComboBoxText" id="cddb_automatic_host2_combo">
+                                                <property name="has-entry">True</property>
+                                                <property name="visible">True</property>
+                                                <items>
+                                                    <item id="host_musicbrainz">freedb.musicbrainz.org</item>
+                                                </items>
+                                            </object>
+                                            <packing>
+                                                <property name="left_attach">1</property>
+                                                <property name="top_attach">2</property>
+                                            </packing>
+                                        </child>
+                                        <child>
+                                            <object class="GtkLabel" id="cddb_automatic_port2_label">
+                                                <property name="halign">start</property>
+                                                <property name="label" translatable="yes">Port:</property>
+                                                <property name="visible">True</property>
+                                            </object>
+                                            <packing>
+                                                <property name="left_attach">2</property>
+                                                <property name="top_attach">2</property>
+                                            </packing>
+                                        </child>
+                                        <child>
+                                            <object class="GtkSpinButton" id="cddb_automatic_port2_button">
+                                                <property 
name="adjustment">cddb_automatic_host2_adjustment</property>
+                                                <property name="visible">True</property>
+                                            </object>
+                                            <packing>
+                                                <property name="left_attach">3</property>
+                                                <property name="top_attach">2</property>
+                                            </packing>
+                                        </child>
+                                        <child>
+                                            <object class="GtkLabel" id="cddb_automatic_path2_label">
+                                                <property name="halign">start</property>
+                                                <property name="label" translatable="yes">CGI 
Path:</property>
+                                                <property name="visible">True</property>
+                                            </object>
+                                            <packing>
+                                                <property name="left_attach">4</property>
+                                                <property name="top_attach">2</property>
+                                            </packing>
+                                        </child>
+                                        <child>
+                                            <object class="GtkEntry" id="cddb_automatic_path2_entry">
+                                                <property name="visible">True</property>
+                                            </object>
+                                            <packing>
+                                                <property name="left_attach">5</property>
+                                                <property name="top_attach">2</property>
+                                            </packing>
+                                        </child>
+                                        <child>
+                                            <object class="GtkLabel" id="manual_search_label">
+                                                <property name="halign">start</property>
+                                                <property name="label" translatable="yes">Manual Search 
Server</property>
+                                                <property name="margin-top">12</property>
+                                                <property name="visible">True</property>
+                                                <attributes>
+                                                    <attribute name="weight" value="bold"/>
+                                                </attributes>
+                                            </object>
+                                            <packing>
+                                                <property name="width">6</property>
+                                            </packing>
+                                        </child>
+                                        <child>
+                                            <object class="GtkLabel" id="cddb_manual_host_label">
+                                                <property name="halign">start</property>
+                                                <property name="label" translatable="yes">Host:</property>
+                                                <property name="visible">True</property>
+                                            </object>
+                                            <packing>
+                                                <property name="left_attach">0</property>
+                                                <property name="top_attach">4</property>
+                                            </packing>
+                                        </child>
+                                        <child>
+                                            <object class="GtkComboBoxText" id="cddb_manual_host_combo">
+                                                <property name="has-entry">True</property>
+                                                <property name="visible">True</property>
+                                                <items>
+                                                    <item id="host_freedb">www.freedb.org</item>
+                                                    <item id="host_gnudb">www.gnudb.org</item>
+                                                </items>
+                                            </object>
+                                            <packing>
+                                                <property name="left_attach">1</property>
+                                                <property name="top_attach">4</property>
+                                            </packing>
+                                        </child>
+                                        <child>
+                                            <object class="GtkLabel" id="cddb_manual_port_label">
+                                                <property name="halign">start</property>
+                                                <property name="label" translatable="yes">Port:</property>
+                                                <property name="visible">True</property>
+                                            </object>
+                                            <packing>
+                                                <property name="left_attach">2</property>
+                                                <property name="top_attach">4</property>
+                                            </packing>
+                                        </child>
+                                        <child>
+                                            <object class="GtkSpinButton" id="cddb_manual_port_button">
+                                                <property 
name="adjustment">cddb_manual_host_adjustment</property>
+                                                <property name="visible">True</property>
+                                            </object>
+                                            <packing>
+                                                <property name="left_attach">3</property>
+                                                <property name="top_attach">4</property>
+                                            </packing>
+                                        </child>
+                                        <child>
+                                            <object class="GtkLabel" id="cddb_manual_path_label">
+                                                <property name="halign">start</property>
+                                                <property name="label" translatable="yes">CGI 
Path:</property>
+                                                <property name="visible">True</property>
+                                            </object>
+                                            <packing>
+                                                <property name="left_attach">4</property>
+                                                <property name="top_attach">4</property>
+                                            </packing>
+                                        </child>
+                                        <child>
+                                            <object class="GtkEntry" id="cddb_manual_path_entry">
+                                                <property name="visible">True</property>
+                                            </object>
+                                            <packing>
+                                                <property name="left_attach">5</property>
+                                                <property name="top_attach">4</property>
+                                            </packing>
+                                        </child>
+                                    </object>
+                                </child>
+                                <child>
+                                    <object class="GtkLabel" id="cddb_proxy_label">
+                                        <property name="halign">start</property>
+                                        <property name="label" translatable="yes">Proxy</property>
+                                        <property name="margin-top">12</property>
+                                        <property name="visible">True</property>
+                                        <attributes>
+                                            <attribute name="weight" value="bold"/>
+                                        </attributes>
+                                    </object>
+                                </child>
+                                <child>
+                                    <object class="GtkCheckButton" id="cddb_proxy_check">
+                                        <property name="label" translatable="yes">Use a proxy 
server</property>
+                                        <property name="margin-left">12</property>
+                                        <property name="tooltip-text" translatable="yes">Whether to access 
remote CDDB through a proxy</property>
+                                        <property name="visible">True</property>
+                                    </object>
+                                </child>
+                                <child>
+                                    <object class="GtkGrid" id="cddb_proxy_grid">
+                                        <property name="column-spacing">12</property>
+                                        <property name="row-spacing">6</property>
+                                        <property name="visible">True</property>
+                                        <child>
+                                            <object class="GtkLabel" id="cddb_host_label">
+                                                <property name="halign">start</property>
+                                                <property name="label" translatable="yes">Host:</property>
+                                                <property name="visible">True</property>
+                                            </object>
+                                            <packing>
+                                                <property name="left-attach">0</property>
+                                                <property name="top-attach">0</property>
+                                            </packing>
+                                        </child>
+                                        <child>
+                                            <object class="GtkEntry" id="cddb_host_entry">
+                                                <property name="tooltip-text" translatable="yes">Hostname 
for a proxy to access remote CDDB</property>
+                                                <property name="visible">True</property>
+                                            </object>
+                                            <packing>
+                                                <property name="left-attach">1</property>
+                                                <property name="top-attach">0</property>
+                                            </packing>
+                                        </child>
+                                        <child>
+                                            <object class="GtkLabel" id="cddb_port_label">
+                                                <property name="halign">start</property>
+                                                <property name="label" translatable="yes">Port:</property>
+                                                <property name="visible">True</property>
+                                            </object>
+                                            <packing>
+                                                <property name="left-attach">2</property>
+                                                <property name="top-attach">0</property>
+                                            </packing>
+                                        </child>
+                                        <child>
+                                            <object class="GtkSpinButton" id="cddb_port_button">
+                                                <property name="adjustment">cddb_proxy_adjustment</property>
+                                                <property name="tooltip-text" translatable="yes">Port for a 
proxy to access remote CDDB</property>
+                                                <property name="visible">True</property>
+                                            </object>
+                                            <packing>
+                                                <property name="left-attach">3</property>
+                                                <property name="top-attach">0</property>
+                                            </packing>
+                                        </child>
+                                        <child>
+                                            <object class="GtkLabel" id="cddb_user_label">
+                                                <property name="halign">start</property>
+                                                <property name="label" translatable="yes">User:</property>
+                                                <property name="visible">True</property>
+                                            </object>
+                                            <packing>
+                                                <property name="left-attach">0</property>
+                                                <property name="top-attach">1</property>
+                                            </packing>
+                                        </child>
+                                        <child>
+                                            <object class="GtkEntry" id="cddb_user_entry">
+                                                <property name="tooltip-text" translatable="yes">Username 
for a proxy to access remote CDDB</property>
+                                                <property name="visible">True</property>
+                                            </object>
+                                            <packing>
+                                                <property name="left-attach">1</property>
+                                                <property name="top-attach">1</property>
+                                            </packing>
+                                        </child>
+                                        <child>
+                                            <object class="GtkLabel" id="cddb_password_label">
+                                                <property name="halign">start</property>
+                                                <property name="label" 
translatable="yes">Password:</property>
+                                                <property name="visible">True</property>
+                                            </object>
+                                            <packing>
+                                                <property name="left-attach">2</property>
+                                                <property name="top-attach">1</property>
+                                            </packing>
+                                        </child>
+                                        <child>
+                                            <object class="GtkEntry" id="cddb_password_entry">
+                                                <property name="tooltip-text" translatable="yes">Password 
for a proxy to access remote CDDB</property>
+                                                <property name="visibility">False</property>
+                                                <property name="visible">True</property>
+                                            </object>
+                                            <packing>
+                                                <property name="left-attach">3</property>
+                                                <property name="top-attach">1</property>
+                                            </packing>
+                                        </child>
+                                    </object>
+                                </child>
+                                <child>
+                                    <object class="GtkLabel" id="cddb_list_label">
+                                        <property name="halign">start</property>
+                                        <property name="label" translatable="yes">Results List</property>
+                                        <property name="margin-top">12</property>
+                                        <property name="visible">True</property>
+                                        <attributes>
+                                            <attribute name="weight" value="bold"/>
+                                        </attributes>
+                                    </object>
+                                </child>
+                                <child>
+                                    <object class="GtkCheckButton" id="cddb_follow_check">
+                                        <property name="label" translatable="yes">Select corresponding file 
(according to position or DLM if activated below)</property>
+                                        <property name="margin-left">12</property>
+                                        <property name="tooltip-text" translatable="yes">Whether to select 
the file in the file list which matches the position in the CDDB results list</property>
+                                        <property name="visible">True</property>
+                                    </object>
+                                </child>
+                                <child>
+                                    <object class="GtkCheckButton" id="cddb_dlm_check">
+                                        <property name="label" translatable="yes">Use the Levenshtein 
algorithm (DLM) to match results (using title) with audio files (using filename)</property>
+                                        <property name="margin-left">12</property>
+                                        <property name="tooltip-text" translatable="yes">Whether to use the 
DLM algorithm to match CDDB results to files</property>
+                                        <property name="visible">True</property>
+                                    </object>
+                                </child>
                             </object>
-                            <packing>
-                                <property name="left-attach">0</property>
-                                <property name="top-attach">1</property>
-                            </packing>
                         </child>
-                        <child>
-                            <object class="GtkEntry" id="cddb_user_entry">
-                                <property name="tooltip-text" translatable="yes">Username for a proxy to 
access remote CDDB</property>
-                                <property name="visible">True</property>
+                        <child type="tab">
+                            <object class="GtkLabel" id="cddb_tab_label">
+                                <property name="label" translatable="yes">CDDB</property>
                             </object>
-                            <packing>
-                                <property name="left-attach">1</property>
-                                <property name="top-attach">1</property>
-                            </packing>
                         </child>
                         <child>
-                            <object class="GtkLabel" id="cddb_password_label">
-                                <property name="halign">start</property>
-                                <property name="label" translatable="yes">Password:</property>
+                            <object class="GtkGrid" id="application_grid">
+                                <property name="border-width">12</property>
+                                <property name="orientation">vertical</property>
+                                <property name="row-spacing">6</property>
                                 <property name="visible">True</property>
+                                <child>
+                                    <object class="GtkLabel" id="confirmation_label">
+                                        <property name="halign">start</property>
+                                        <property name="label" translatable="yes">Confirmation</property>
+                                        <property name="visible">True</property>
+                                        <attributes>
+                                            <attribute name="weight" value="bold"/>
+                                        </attributes>
+                                    </object>
+                                </child>
+                                <child>
+                                    <object class="GtkCheckButton" id="confirm_write_check">
+                                        <property name="label" translatable="yes">Confirm before writing 
tags</property>
+                                        <property name="margin-left">12</property>
+                                        <property name="tooltip-text" translatable="yes">Whether to ask for 
confirmation from the user before writing tags to audio files</property>
+                                        <property name="visible">True</property>
+                                    </object>
+                                </child>
+                                <child>
+                                    <object class="GtkCheckButton" id="confirm_rename_check">
+                                        <property name="label" translatable="yes">Confirm before renaming a 
file</property>
+                                        <property name="margin-left">12</property>
+                                        <property name="tooltip-text" translatable="yes">Whether to ask for 
confirmation from the user before renaming a file</property>
+                                        <property name="visible">True</property>
+                                    </object>
+                                </child>
+                                <child>
+                                    <object class="GtkCheckButton" id="confirm_delete_check">
+                                        <property name="label" translatable="yes">Confirm before deleting a 
file</property>
+                                        <property name="margin-left">12</property>
+                                        <property name="tooltip-text" translatable="yes">Whether to ask for 
confirmation from the user before deleting a file</property>
+                                        <property name="visible">True</property>
+                                    </object>
+                                </child>
+                                <child>
+                                    <object class="GtkCheckButton" id="confirm_write_playlist_check">
+                                        <property name="label" translatable="yes">Confirm before writing a 
playlist</property>
+                                        <property name="margin-left">12</property>
+                                        <property name="tooltip-text" translatable="yes">Whether to ask for 
confirmation from the user before writing a playlist</property>
+                                        <property name="visible">True</property>
+                                    </object>
+                                </child>
+                                <child>
+                                    <object class="GtkCheckButton" id="confirm_unsaved_files_check">
+                                        <property name="label" translatable="yes">Confirm before losing 
unsaved changes to files</property>
+                                        <property name="margin-left">12</property>
+                                        <property name="tooltip-text" translatable="yes">Whether to ask for 
confirmation from the user before performing an operation that would lose unsaved changes on files</property>
+                                        <property name="visible">True</property>
+                                    </object>
+                                </child>
+                                <child>
+                                    <object class="GtkLabel" id="scanner_dialog_label">
+                                        <property name="halign">start</property>
+                                        <property name="label" translatable="yes">Scanner Dialog</property>
+                                        <property name="margin-top">12</property>
+                                        <property name="visible">True</property>
+                                        <attributes>
+                                            <attribute name="weight" value="bold"/>
+                                        </attributes>
+                                    </object>
+                                </child>
+                                <child>
+                                    <object class="GtkCheckButton" id="scanner_dialog_startup_check">
+                                        <property name="label" translatable="yes">Show the scanner dialog on 
startup</property>
+                                        <property name="margin-left">12</property>
+                                        <property name="tooltip-text" translatable="yes">Whether to show the 
scanner window on application startup</property>
+                                        <property name="visible">True</property>
+                                    </object>
+                                </child>
                             </object>
-                            <packing>
-                                <property name="left-attach">2</property>
-                                <property name="top-attach">1</property>
-                            </packing>
                         </child>
-                        <child>
-                            <object class="GtkEntry" id="cddb_password_entry">
-                                <property name="tooltip-text" translatable="yes">Password for a proxy to 
access remote CDDB</property>
-                                <property name="visibility">False</property>
-                                <property name="visible">True</property>
+                        <child type="tab">
+                            <object class="GtkLabel" id="application_tab_label">
+                                <property name="label" translatable="yes">Application</property>
                             </object>
-                            <packing>
-                                <property name="left-attach">3</property>
-                                <property name="top-attach">1</property>
-                            </packing>
                         </child>
                     </object>
                 </child>
-                <child>
-                    <object class="GtkLabel" id="cddb_list_label">
-                        <property name="halign">start</property>
-                        <property name="label" translatable="yes">Results List</property>
-                        <property name="margin-top">12</property>
-                        <property name="visible">True</property>
-                        <attributes>
-                            <attribute name="weight" value="bold"/>
-                        </attributes>
-                    </object>
-                </child>
-                <child>
-                    <object class="GtkCheckButton" id="cddb_follow_check">
-                        <property name="label" translatable="yes">Select corresponding file (according to 
position or DLM if activated below)</property>
-                        <property name="margin-left">12</property>
-                        <property name="tooltip-text" translatable="yes">Whether to select the file in the 
file list which matches the position in the CDDB results list</property>
-                        <property name="visible">True</property>
-                    </object>
-                </child>
-                <child>
-                    <object class="GtkCheckButton" id="cddb_dlm_check">
-                        <property name="label" translatable="yes">Use the Levenshtein algorithm (DLM) to 
match results (using title) with audio files (using filename)</property>
-                        <property name="margin-left">12</property>
-                        <property name="tooltip-text" translatable="yes">Whether to use the DLM algorithm to 
match CDDB results to files</property>
-                        <property name="visible">True</property>
-                    </object>
-                </child>
             </object>
         </child>
-        <child type="tab">
-            <object class="GtkLabel" id="cddb_tab_label">
-                <property name="label" translatable="yes">CDDB</property>
-            </object>
-        </child>
-        <child>
-            <object class="GtkGrid" id="application_grid">
-                <property name="border-width">12</property>
-                <property name="orientation">vertical</property>
-                <property name="row-spacing">6</property>
-                <property name="visible">True</property>
-                <child>
-                    <object class="GtkLabel" id="confirmation_label">
-                        <property name="halign">start</property>
-                        <property name="label" translatable="yes">Confirmation</property>
-                        <property name="visible">True</property>
-                        <attributes>
-                            <attribute name="weight" value="bold"/>
-                        </attributes>
-                    </object>
-                </child>
-                <child>
-                    <object class="GtkCheckButton" id="confirm_write_check">
-                        <property name="label" translatable="yes">Confirm before writing tags</property>
-                        <property name="margin-left">12</property>
-                        <property name="tooltip-text" translatable="yes">Whether to ask for confirmation 
from the user before writing tags to audio files</property>
-                        <property name="visible">True</property>
-                    </object>
-                </child>
-                <child>
-                    <object class="GtkCheckButton" id="confirm_rename_check">
-                        <property name="label" translatable="yes">Confirm before renaming a file</property>
-                        <property name="margin-left">12</property>
-                        <property name="tooltip-text" translatable="yes">Whether to ask for confirmation 
from the user before renaming a file</property>
-                        <property name="visible">True</property>
-                    </object>
-                </child>
-                <child>
-                    <object class="GtkCheckButton" id="confirm_delete_check">
-                        <property name="label" translatable="yes">Confirm before deleting a file</property>
-                        <property name="margin-left">12</property>
-                        <property name="tooltip-text" translatable="yes">Whether to ask for confirmation 
from the user before deleting a file</property>
-                        <property name="visible">True</property>
-                    </object>
-                </child>
-                <child>
-                    <object class="GtkCheckButton" id="confirm_write_playlist_check">
-                        <property name="label" translatable="yes">Confirm before writing a 
playlist</property>
-                        <property name="margin-left">12</property>
-                        <property name="tooltip-text" translatable="yes">Whether to ask for confirmation 
from the user before writing a playlist</property>
-                        <property name="visible">True</property>
-                    </object>
-                </child>
-                <child>
-                    <object class="GtkCheckButton" id="confirm_unsaved_files_check">
-                        <property name="label" translatable="yes">Confirm before losing unsaved changes to 
files</property>
-                        <property name="margin-left">12</property>
-                        <property name="tooltip-text" translatable="yes">Whether to ask for confirmation 
from the user before performing an operation that would lose unsaved changes on files</property>
-                        <property name="visible">True</property>
-                    </object>
-                </child>
-                <child>
-                    <object class="GtkLabel" id="scanner_dialog_label">
-                        <property name="halign">start</property>
-                        <property name="label" translatable="yes">Scanner Dialog</property>
-                        <property name="margin-top">12</property>
-                        <property name="visible">True</property>
-                        <attributes>
-                            <attribute name="weight" value="bold"/>
-                        </attributes>
-                    </object>
-                </child>
-                <child>
-                    <object class="GtkCheckButton" id="scanner_dialog_startup_check">
-                        <property name="label" translatable="yes">Show the scanner dialog on 
startup</property>
-                        <property name="margin-left">12</property>
-                        <property name="tooltip-text" translatable="yes">Whether to show the scanner window 
on application startup</property>
-                        <property name="visible">True</property>
-                    </object>
-                </child>
-            </object>
-        </child>
-        <child type="tab">
-            <object class="GtkLabel" id="application_tab_label">
-                <property name="label" translatable="yes">Application</property>
-            </object>
-        </child>
-    </object>
+    </template>
 </interface>
diff --git a/src/preferences_dialog.c b/src/preferences_dialog.c
index 427e176..467f5af 100644
--- a/src/preferences_dialog.c
+++ b/src/preferences_dialog.c
@@ -39,42 +39,107 @@
 
 typedef struct
 {
+    GtkWidget *default_path_button;
+    GtkWidget *browser_startup_check;
+    GtkWidget *browser_subdirs_check;
+    GtkWidget *browser_expand_subdirs_check;
+    GtkWidget *browser_hidden_check;
+    GtkWidget *browser_case_check;
+    GtkWidget *log_show_check;
+    GtkWidget *header_show_check;
+    GtkWidget *list_bold_radio;
+    GtkWidget *file_name_replace_check;
+    GtkWidget *name_lower_radio;
+    GtkWidget *name_upper_radio;
+    GtkWidget *name_no_change_radio;
+    GtkWidget *file_preserve_check;
+    GtkWidget *file_parent_check;
+    GtkWidget *file_encoding_try_alternative_radio;
+    GtkWidget *file_encoding_transliterate_radio;
+    GtkWidget *file_encoding_ignore_radio;
+    GtkWidget *tags_auto_date_check;
+    GtkWidget *tags_auto_image_type_check;
+    GtkWidget *tags_track_check;
+    GtkWidget *tags_track_button;
+    GtkWidget *tags_disc_check;
+    GtkWidget *tags_disc_button;
+    GtkWidget *tags_preserve_focus_check;
+    GtkWidget *split_title_check;
+    GtkWidget *split_artist_check;
+    GtkWidget *split_album_check;
+    GtkWidget *split_genre_check;
+    GtkWidget *split_comment_check;
+    GtkWidget *split_composer_check;
+    GtkWidget *split_orig_artist_check;
+    GtkWidget *id3_strip_check;
+    GtkWidget *id3_v2_convert_check;
+    GtkWidget *id3_v2_crc32_check;
+    GtkWidget *id3_v2_compression_check;
+    GtkWidget *id3_v2_genre_check;
+    GtkWidget *id3_v2_check;
+    GtkWidget *id3_v2_version_label;
+    GtkWidget *id3_v2_version_combo;
+    GtkWidget *id3_v2_encoding_label;
+    GtkWidget *id3_v2_unicode_radio;
+    GtkWidget *id3_v2_unicode_encoding_combo;
+    GtkWidget *id3_v2_other_radio;
+    GtkWidget *id3_v2_override_encoding_combo;
+    GtkWidget *id3_v2_iconv_label;
+    GtkWidget *id3_v2_none_radio;
+    GtkWidget *id3_v2_transliterate_radio;
+    GtkWidget *id3_v2_ignore_radio;
+    GtkWidget *id3_v1_check;
+    GtkWidget *id3_v1_encoding_grid;
+    GtkWidget *id3_v1_encoding_combo;
+    GtkWidget *id3_v1_none_radio;
+    GtkWidget *id3_v1_transliterate_radio;
+    GtkWidget *id3_v1_ignore_radio;
+    GtkWidget *id3_read_encoding_check;
+    GtkWidget *id3_read_encoding_combo;
+    GtkWidget *preferences_notebook;
+    GtkWidget *scanner_grid;
+    GtkWidget *fts_underscore_p20_radio;
+    GtkWidget *fts_spaces_radio;
+    GtkWidget *fts_none_radio;
+    GtkWidget *rfs_underscore_p20_radio;
+    GtkWidget *rfs_spaces_radio;
+    GtkWidget *rfs_remove_radio;
+    GtkWidget *pfs_uppercase_prep_check;
+    GtkWidget *overwrite_fields_check;
+    GtkWidget *default_comment_check;
+    GtkWidget *default_comment_entry;
+    GtkWidget *crc32_default_check;
+    GtkWidget *cddb_automatic_host1_combo;
+    GtkWidget *cddb_automatic_port1_button;
+    GtkWidget *cddb_automatic_path1_entry;
+    GtkWidget *cddb_automatic_host2_combo;
+    GtkWidget *cddb_automatic_port2_button;
+    GtkWidget *cddb_automatic_path2_entry;
+    GtkWidget *cddb_manual_host_combo;
+    GtkWidget *cddb_manual_port_button;
+    GtkWidget *cddb_manual_path_entry;
+    GtkWidget *cddb_proxy_check;
+    GtkWidget *cddb_host_entry;
+    GtkWidget *cddb_port_button;
+    GtkWidget *cddb_password_entry;
+    GtkWidget *cddb_user_entry;
+    GtkWidget *cddb_follow_check;
+    GtkWidget *cddb_dlm_check;
+    GtkWidget *confirm_write_check;
+    GtkWidget *confirm_rename_check;
+    GtkWidget *confirm_delete_check;
+    GtkWidget *confirm_write_playlist_check;
+    GtkWidget *confirm_unsaved_files_check;
+    GtkWidget *scanner_dialog_startup_check;
+
     GtkListStore *default_path_model;
     GtkListStore *file_player_model;
 
-    GtkWidget *id3_v1_encoding_grid;
-
-    GtkWidget *LabelAdditionalId3v2IconvOptions;
-    GtkWidget *LabelId3v2Charset;
-    GtkWidget *LabelId3v2Version;
-    GtkWidget *FileWritingId3v2VersionCombo;
-    GtkWidget *FileWritingId3v2UseUnicodeCharacterSet;
-    GtkWidget *FileWritingId3v2UseNoUnicodeCharacterSet;
-
-    GtkWidget *FileWritingId3v2UnicodeCharacterSetCombo;
-    GtkWidget *FileWritingId3v2NoUnicodeCharacterSetCombo;
-    GtkWidget *FileWritingId3v1CharacterSetCombo;
-    GtkWidget *FileReadingId3v1v2CharacterSetCombo;
-
-    GtkWidget *ConvertOldId3v2TagVersion;
-    GtkWidget *FileWritingId3v2UseCrc32;
-    GtkWidget *FileWritingId3v2UseCompression;
-    GtkWidget *FileWritingId3v2TextOnlyGenre;
-    GtkWidget *FileWritingId3v2IconvOptionsNo;
-    GtkWidget *FileWritingId3v2IconvOptionsTranslit;
-    GtkWidget *FileWritingId3v2IconvOptionsIgnore;
-    GtkWidget *FileWritingId3v1IconvOptionsNo;
-    GtkWidget *FileWritingId3v1IconvOptionsTranslit;
-    GtkWidget *FileWritingId3v1IconvOptionsIgnore;
-
-    GtkWidget *options_notebook;
     gint options_notebook_scanner;
 } EtPreferencesDialogPrivate;
 
 G_DEFINE_TYPE_WITH_PRIVATE (EtPreferencesDialog, et_preferences_dialog, GTK_TYPE_DIALOG)
 
-static const guint BOX_SPACING = 6;
-
 /**************
  * Prototypes *
  **************/
@@ -207,183 +272,58 @@ static void
 create_preferences_dialog (EtPreferencesDialog *self)
 {
     EtPreferencesDialogPrivate *priv;
-    GtkWidget *vbox;
-    GtkWidget *LoadOnStartup;
-    GtkWidget *BrowseSubdir;
-    GtkWidget *OpenSelectedBrowserNode;
-    GtkWidget *BrowseHiddendir;
-    GtkWidget *ShowHeaderInfos;
-    GtkWidget *ChangedFilesDisplayedToBold;
-    GtkWidget *SortingFileCaseSensitive;
-    GtkWidget *ShowLogView;
-    GtkWidget *ReplaceIllegalCharactersInFilename;
-    GtkWidget *PreserveModificationTime;
-    GtkWidget *UpdateParentDirectoryModificationTime;
-    GtkWidget *FilenameCharacterSetOther;
-    GtkWidget *FilenameCharacterSetApproximate;
-    GtkWidget *FilenameCharacterSetDiscard;
-    GtkWidget *DateAutoCompletion;
-    GtkWidget *widget;
-    GtkWidget *NumberTrackFormated;
-    GtkWidget *NumberTrackFormatedSpinButton;
-    GtkWidget *pad_disc_number;
-    GtkWidget *pad_disc_number_spinbutton;
-    GtkWidget *SetFocusToSameTagField;
-    GtkWidget *VorbisSplitFieldTitle;
-    GtkWidget *VorbisSplitFieldArtist;
-    GtkWidget *VorbisSplitFieldAlbum;
-    GtkWidget *VorbisSplitFieldGenre;
-    GtkWidget *VorbisSplitFieldComment;
-    GtkWidget *VorbisSplitFieldComposer;
-    GtkWidget *VorbisSplitFieldOrigArtist;
-    GtkWidget *StripTagWhenEmptyFields;
-    GtkWidget *FileWritingId3v2WriteTag;
-    GtkWidget *FileWritingId3v1WriteTag;
-    GtkWidget *UseNonStandardId3ReadingCharacterSet;
-    GtkWidget *FTSConvertUnderscoreAndP20IntoSpace;
-    GtkWidget *FTSConvertSpaceIntoUnderscore;
-    GtkWidget *FTSConvertSpaceNoChange;
-    GtkWidget *RFSConvertUnderscoreAndP20IntoSpace;
-    GtkWidget *RFSConvertSpaceIntoUnderscore;
-    GtkWidget *RFSRemoveSpaces;
-    GtkWidget *PFSDontUpperSomeWords;
-    GtkWidget *OpenScannerWindowOnStartup;
-    GtkWidget *OverwriteTagField;
-    GtkWidget *SetDefaultComment;
-    GtkWidget *DefaultComment;
-    GtkWidget *Crc32Comment;
-    GtkWidget *CddbServerNameAutomaticSearch;
-    GtkWidget *CddbServerPortAutomaticSearch;
-    GtkWidget *CddbServerCgiPathAutomaticSearch;
-    GtkWidget *CddbServerNameAutomaticSearch2;
-    GtkWidget *CddbServerPortAutomaticSearch2;
-    GtkWidget *CddbServerCgiPathAutomaticSearch2;
-    GtkWidget *CddbServerNameManualSearch;
-    GtkWidget *CddbServerPortManualSearch;
-    GtkWidget *CddbServerCgiPathManualSearch;
-    GtkWidget *CddbUseProxy;
-    GtkWidget *CddbProxyName;
-    GtkWidget *CddbProxyPort;
-    GtkWidget *CddbProxyUserName;
-    GtkWidget *CddbProxyUserPassword;
-    GtkWidget *CddbFollowFile;
-    GtkWidget *CddbUseDLM;
-    GtkWidget *ConfirmWriteTag;
-    GtkWidget *ConfirmRenameFile;
-    GtkWidget *ConfirmDeleteFile;
-    GtkWidget *ConfirmWritePlayList;
-    GtkWidget *ConfirmWhenUnsavedFiles;
-    GtkWidget *FilenameExtensionNoChange;
-    GtkWidget *FilenameExtensionLowerCase;
-    GtkWidget *FilenameExtensionUpperCase;
-    GtkWidget *default_path_button;
-    GtkBuilder *builder;
-    GError *error = NULL;
 
     priv = et_preferences_dialog_get_instance_private (self);
 
     /* The window */
-    gtk_window_set_title (GTK_WINDOW (self), _("Preferences"));
-    gtk_window_set_destroy_with_parent (GTK_WINDOW (self), TRUE);
     gtk_dialog_add_buttons (GTK_DIALOG (self), _("_Close"), GTK_RESPONSE_CLOSE,
                             NULL);
     gtk_dialog_set_default_response (GTK_DIALOG (self), GTK_RESPONSE_CLOSE);
-    g_signal_connect (self, "response",
-                      G_CALLBACK (et_preferences_on_response), NULL);
-    g_signal_connect (self, "delete-event",
-                      G_CALLBACK (gtk_widget_hide_on_delete), NULL);
-
-    gtk_container_set_border_width (GTK_CONTAINER (self), BOX_SPACING);
-
-     /* Options */
-     /* The vbox */
-    vbox = gtk_dialog_get_content_area (GTK_DIALOG (self));
-    gtk_box_set_spacing (GTK_BOX (vbox), BOX_SPACING);
 
-     /* Options NoteBook */
-    builder = gtk_builder_new ();
-    gtk_builder_add_from_resource (builder,
-                                   "/org/gnome/EasyTAG/preferences_dialog.ui",
-                                   &error);
-
-    if (error != NULL)
-    {
-        g_error ("Unable to get scanner page from resource: %s",
-                 error->message);
-    }
-
-    priv->options_notebook = GTK_WIDGET (gtk_builder_get_object (builder,
-                                                                 "preferences_notebook"));
-    gtk_box_pack_start (GTK_BOX (vbox), priv->options_notebook, TRUE, TRUE, 0);
-
-    /*
-     * Browser
-     */
-    default_path_button = GTK_WIDGET (gtk_builder_get_object (builder,
-                                                              "default_path_button"));
+    /* Browser. */
     on_default_path_changed (MainSettings, "default-path",
-                             GTK_FILE_CHOOSER_BUTTON (default_path_button));
-    /* Connecting to current-folder-changed does not work if the user selects
-     * a directory from the combo box list provided by the file chooser button.
-     */
-    g_signal_connect_swapped (default_path_button, "file-set",
-                              G_CALLBACK (et_prefs_current_folder_changed),
-                              self);
+                             GTK_FILE_CHOOSER_BUTTON (priv->default_path_button));
     g_signal_connect (MainSettings, "changed::default-path",
                       G_CALLBACK (on_default_path_changed),
-                      default_path_button);
+                      priv->default_path_button);
 
     /* Load directory on startup */
-    LoadOnStartup = GTK_WIDGET (gtk_builder_get_object (builder,
-                                                        "browser_startup_check"));
-    g_settings_bind (MainSettings, "load-on-startup", LoadOnStartup, "active",
+    g_settings_bind (MainSettings, "load-on-startup",
+                     priv->browser_startup_check, "active",
                      G_SETTINGS_BIND_DEFAULT);
 
     /* Browse subdirectories */
-    BrowseSubdir = GTK_WIDGET (gtk_builder_get_object (builder,
-                                                       "browser_subdirs_check"));
-    g_settings_bind (MainSettings, "browse-subdir", BrowseSubdir, "active",
+    g_settings_bind (MainSettings, "browse-subdir",
+                     priv->browser_subdirs_check, "active",
                      G_SETTINGS_BIND_DEFAULT);
 
     /* Open the node to show subdirectories */
-    OpenSelectedBrowserNode = GTK_WIDGET (gtk_builder_get_object (builder,
-                                                                  "browser_expand_subdirs_check"));
     g_settings_bind (MainSettings, "browse-expand-children",
-                     OpenSelectedBrowserNode, "active",
+                     priv->browser_expand_subdirs_check, "active",
                      G_SETTINGS_BIND_DEFAULT);
 
     /* Browse hidden directories */
-    BrowseHiddendir = GTK_WIDGET (gtk_builder_get_object (builder,
-                                                          "browser_hidden_check"));
-    g_settings_bind (MainSettings, "browse-show-hidden", BrowseHiddendir,
-                     "active", G_SETTINGS_BIND_DEFAULT);
+    g_settings_bind (MainSettings, "browse-show-hidden",
+                     priv->browser_hidden_check, "active",
+                     G_SETTINGS_BIND_DEFAULT);
 
-    SortingFileCaseSensitive = GTK_WIDGET (gtk_builder_get_object (builder,
-                                                                   "browser_case_check"));
     g_settings_bind (MainSettings, "sort-case-sensitive",
-                     SortingFileCaseSensitive, "active",
+                     priv->browser_case_check, "active",
                      G_SETTINGS_BIND_DEFAULT);
 
     /* Show / hide log view. */
-    ShowLogView = GTK_WIDGET (gtk_builder_get_object (builder,
-                                                      "log_show_check"));
-    g_settings_bind (MainSettings, "log-show", ShowLogView, "active",
+    g_settings_bind (MainSettings, "log-show", priv->log_show_check, "active",
                      G_SETTINGS_BIND_DEFAULT);
    
     /* Show header information. */
-    ShowHeaderInfos = GTK_WIDGET (gtk_builder_get_object (builder,
-                                                          "header_show_check"));
-    g_settings_bind (MainSettings, "file-show-header", ShowHeaderInfos,
+    g_settings_bind (MainSettings, "file-show-header", priv->header_show_check,
                      "active", G_SETTINGS_BIND_DEFAULT);
 
     /* Display color mode for changed files in list. */
     /* Set "new" Gtk+-2.0ish black/bold style for changed items. */
-    ChangedFilesDisplayedToBold = GTK_WIDGET (gtk_builder_get_object (builder,
-                                                                      "list_bold_radio"));
-    g_settings_bind (MainSettings, "file-changed-bold",
-                     ChangedFilesDisplayedToBold, "active",
-                     G_SETTINGS_BIND_DEFAULT);
-    g_signal_connect_swapped (ChangedFilesDisplayedToBold, "notify::active",
+    g_settings_bind (MainSettings, "file-changed-bold", priv->list_bold_radio,
+                     "active", G_SETTINGS_BIND_DEFAULT);
+    g_signal_connect_swapped (priv->list_bold_radio, "notify::active",
                               G_CALLBACK (et_application_window_browser_refresh_list),
                               MainWindow);
 
@@ -391,216 +331,156 @@ create_preferences_dialog (EtPreferencesDialog *self)
      * File Settings
      */
     /* File (name) Options */
-    ReplaceIllegalCharactersInFilename = GTK_WIDGET (gtk_builder_get_object (builder,
-                                                                             "file_name_replace_check"));
     g_settings_bind (MainSettings, "rename-replace-illegal-chars",
-                     ReplaceIllegalCharactersInFilename, "active",
+                     priv->file_name_replace_check, "active",
                      G_SETTINGS_BIND_DEFAULT);
 
     /* Extension case (lower/upper?) */
-    FilenameExtensionLowerCase = GTK_WIDGET (gtk_builder_get_object (builder,
-                                                                     "name_lower_radio"));
-    FilenameExtensionUpperCase = GTK_WIDGET (gtk_builder_get_object (builder,
-                                                                     "name_upper_radio"));
-    FilenameExtensionNoChange = GTK_WIDGET (gtk_builder_get_object (builder,
-                                                                    "name_no_change_radio"));
-
     g_settings_bind_with_mapping (MainSettings, "rename-extension-mode",
-                                  FilenameExtensionLowerCase, "active",
+                                  priv->name_lower_radio, "active",
                                   G_SETTINGS_BIND_DEFAULT,
                                   et_settings_enum_radio_get,
                                   et_settings_enum_radio_set,
-                                  FilenameExtensionLowerCase, NULL);
+                                  priv->name_lower_radio, NULL);
     g_settings_bind_with_mapping (MainSettings, "rename-extension-mode",
-                                  FilenameExtensionUpperCase, "active",
+                                  priv->name_upper_radio, "active",
                                   G_SETTINGS_BIND_DEFAULT,
                                   et_settings_enum_radio_get,
                                   et_settings_enum_radio_set,
-                                  FilenameExtensionUpperCase, NULL);
+                                  priv->name_upper_radio, NULL);
     g_settings_bind_with_mapping (MainSettings, "rename-extension-mode",
-                                  FilenameExtensionNoChange, "active",
+                                  priv->name_no_change_radio, "active",
                                   G_SETTINGS_BIND_DEFAULT,
                                   et_settings_enum_radio_get,
                                   et_settings_enum_radio_set,
-                                  FilenameExtensionNoChange, NULL);
+                                  priv->name_no_change_radio, NULL);
 
     /* Preserve modification time */
-    PreserveModificationTime = GTK_WIDGET (gtk_builder_get_object (builder,
-                                                                   "file_preserve_check"));
     g_settings_bind (MainSettings, "file-preserve-modification-time",
-                     PreserveModificationTime, "active",
+                     priv->file_preserve_check, "active",
                      G_SETTINGS_BIND_DEFAULT);
 
     /* Change directory modification time */
-    UpdateParentDirectoryModificationTime = GTK_WIDGET (gtk_builder_get_object (builder,
-                                                                                "file_parent_check"));
     g_settings_bind (MainSettings, "file-update-parent-modification-time",
-                     UpdateParentDirectoryModificationTime, "active",
+                     priv->file_parent_check, "active",
                      G_SETTINGS_BIND_DEFAULT);
 
     /* Character Set for Filename */
-    FilenameCharacterSetOther = GTK_WIDGET (gtk_builder_get_object (builder,
-                                                                    "file_encoding_try_alternative_radio"));
-    FilenameCharacterSetApproximate = GTK_WIDGET (gtk_builder_get_object (builder,
-                                                                          
"file_encoding_transliterate_radio"));
-    FilenameCharacterSetDiscard = GTK_WIDGET (gtk_builder_get_object (builder,
-                                                                      "file_encoding_ignore_radio"));
-
     g_settings_bind_with_mapping (MainSettings, "rename-encoding",
-                                  FilenameCharacterSetOther, "active",
-                                  G_SETTINGS_BIND_DEFAULT,
+                                  priv->file_encoding_try_alternative_radio,
+                                  "active", G_SETTINGS_BIND_DEFAULT,
                                   et_settings_enum_radio_get,
                                   et_settings_enum_radio_set,
-                                  FilenameCharacterSetOther, NULL);
+                                  priv->file_encoding_try_alternative_radio,
+                                  NULL);
     g_settings_bind_with_mapping (MainSettings, "rename-encoding",
-                                  FilenameCharacterSetApproximate,
+                                  priv->file_encoding_transliterate_radio,
                                   "active", G_SETTINGS_BIND_DEFAULT,
                                   et_settings_enum_radio_get,
                                   et_settings_enum_radio_set,
-                                  FilenameCharacterSetApproximate, NULL);
+                                  priv->file_encoding_transliterate_radio,
+                                  NULL);
     g_settings_bind_with_mapping (MainSettings, "rename-encoding",
-                                  FilenameCharacterSetDiscard, "active",
+                                  priv->file_encoding_ignore_radio, "active",
                                   G_SETTINGS_BIND_DEFAULT,
                                   et_settings_enum_radio_get,
                                   et_settings_enum_radio_set,
-                                  FilenameCharacterSetDiscard, NULL);
+                                  priv->file_encoding_ignore_radio, NULL);
 
     /*
      * Tag Settings
      */
     /* Tag Options */
-    DateAutoCompletion = GTK_WIDGET (gtk_builder_get_object (builder,
-                                                             "tags_auto_date_check"));
-    g_settings_bind (MainSettings, "tag-date-autocomplete", DateAutoCompletion,
-                     "active", G_SETTINGS_BIND_DEFAULT);
+    g_settings_bind (MainSettings, "tag-date-autocomplete",
+                     priv->tags_auto_date_check, "active",
+                     G_SETTINGS_BIND_DEFAULT);
 
-    widget = GTK_WIDGET (gtk_builder_get_object (builder,
-                                                 "tags_auto_image_type_check"));
-    g_settings_bind (MainSettings, "tag-image-type-automatic", widget,
-                     "active", G_SETTINGS_BIND_DEFAULT);
+    g_settings_bind (MainSettings, "tag-image-type-automatic",
+                     priv->tags_auto_image_type_check, "active",
+                     G_SETTINGS_BIND_DEFAULT);
 
     /* Track formatting. */
-    NumberTrackFormated = GTK_WIDGET (gtk_builder_get_object (builder,
-                                                              "tags_track_check"));
-    g_settings_bind (MainSettings, "tag-number-padded", NumberTrackFormated,
+    g_settings_bind (MainSettings, "tag-number-padded", priv->tags_track_check,
                      "active", G_SETTINGS_BIND_DEFAULT);
-
-    NumberTrackFormatedSpinButton = GTK_WIDGET (gtk_builder_get_object (builder,
-                                                                        "tags_track_button"));
     g_settings_bind (MainSettings, "tag-number-length",
-                     NumberTrackFormatedSpinButton, "value",
+                     priv->tags_track_button, "value",
                      G_SETTINGS_BIND_DEFAULT);
     g_settings_bind (MainSettings, "tag-number-padded",
-                     NumberTrackFormatedSpinButton, "sensitive",
+                     priv->tags_track_button, "sensitive",
                      G_SETTINGS_BIND_GET);
 
     /* Disc formatting. */
-    pad_disc_number = GTK_WIDGET (gtk_builder_get_object (builder,
-                                                          "tags_disc_check"));
-    g_settings_bind (MainSettings, "tag-disc-padded", pad_disc_number,
+    g_settings_bind (MainSettings, "tag-disc-padded", priv->tags_disc_check,
                      "active", G_SETTINGS_BIND_DEFAULT);
 
-    pad_disc_number_spinbutton = GTK_WIDGET (gtk_builder_get_object (builder,
-                                                                     "tags_disc_button"));
     g_settings_bind (MainSettings, "tag-disc-length",
-                     pad_disc_number_spinbutton, "value",
+                     priv->tags_disc_button, "value",
                      G_SETTINGS_BIND_DEFAULT);
     g_settings_bind (MainSettings, "tag-disc-padded",
-                     pad_disc_number_spinbutton, "sensitive",
+                     priv->tags_disc_button, "sensitive",
                      G_SETTINGS_BIND_GET);
-    g_signal_emit_by_name (G_OBJECT (pad_disc_number), "toggled");
+    g_signal_emit_by_name (G_OBJECT (priv->tags_disc_check), "toggled");
 
     /* Tag field focus */
-    SetFocusToSameTagField = GTK_WIDGET (gtk_builder_get_object (builder,
-                                                                 "tags_preserve_focus_check"));
-    g_settings_bind (MainSettings, "tag-preserve-focus", SetFocusToSameTagField,
-                     "active", G_SETTINGS_BIND_DEFAULT);
+    g_settings_bind (MainSettings, "tag-preserve-focus",
+                     priv->tags_preserve_focus_check, "active",
+                     G_SETTINGS_BIND_DEFAULT);
 
     /* Tag Splitting */
-    VorbisSplitFieldTitle = GTK_WIDGET (gtk_builder_get_object (builder,
-                                                                "split_title_check"));
-    VorbisSplitFieldArtist = GTK_WIDGET (gtk_builder_get_object (builder,
-                                                                 "split_artist_check"));
-    VorbisSplitFieldAlbum = GTK_WIDGET (gtk_builder_get_object (builder,
-                                                                "split_album_check"));
-    VorbisSplitFieldGenre = GTK_WIDGET (gtk_builder_get_object (builder,
-                                                                "split_genre_check"));
-    VorbisSplitFieldComment = GTK_WIDGET (gtk_builder_get_object (builder,
-                                                                  "split_comment_check"));
-    VorbisSplitFieldComposer = GTK_WIDGET (gtk_builder_get_object (builder,
-                                                                   "split_composer_check"));
-    VorbisSplitFieldOrigArtist = GTK_WIDGET (gtk_builder_get_object (builder,
-                                                                     "split_orig_artist_check"));
-
-    g_settings_bind (MainSettings, "ogg-split-title", VorbisSplitFieldTitle,
+    g_settings_bind (MainSettings, "ogg-split-title", priv->split_title_check,
                      "active", G_SETTINGS_BIND_DEFAULT);
-    g_settings_bind (MainSettings, "ogg-split-artist", VorbisSplitFieldArtist,
+    g_settings_bind (MainSettings, "ogg-split-artist", priv->split_artist_check,
                      "active", G_SETTINGS_BIND_DEFAULT);
-    g_settings_bind (MainSettings, "ogg-split-album", VorbisSplitFieldAlbum,
+    g_settings_bind (MainSettings, "ogg-split-album", priv->split_album_check,
                      "active", G_SETTINGS_BIND_DEFAULT);
-    g_settings_bind (MainSettings, "ogg-split-genre", VorbisSplitFieldGenre,
-                     "active", G_SETTINGS_BIND_DEFAULT);
-    g_settings_bind (MainSettings, "ogg-split-comment", VorbisSplitFieldComment,
+    g_settings_bind (MainSettings, "ogg-split-genre", priv->split_genre_check,
                      "active", G_SETTINGS_BIND_DEFAULT);
+    g_settings_bind (MainSettings, "ogg-split-comment",
+                     priv->split_comment_check, "active",
+                     G_SETTINGS_BIND_DEFAULT);
     g_settings_bind (MainSettings, "ogg-split-composer",
-                     VorbisSplitFieldComposer, "active",
+                     priv->split_composer_check, "active",
                      G_SETTINGS_BIND_DEFAULT);
     g_settings_bind (MainSettings, "ogg-split-original-artist",
-                     VorbisSplitFieldOrigArtist, "active",
+                     priv->split_orig_artist_check, "active",
                      G_SETTINGS_BIND_DEFAULT);
 
     /*
      * ID3 Tag Settings
      */
     /* Strip tag when fields (managed by EasyTAG) are empty */
-    StripTagWhenEmptyFields = GTK_WIDGET (gtk_builder_get_object (builder,
-                                                                  "id3_strip_check"));
-    g_settings_bind (MainSettings, "id3-strip-empty", StripTagWhenEmptyFields,
+    g_settings_bind (MainSettings, "id3-strip-empty", priv->id3_strip_check,
                      "active", G_SETTINGS_BIND_DEFAULT);
 
     /* Convert old ID3v2 tag version */
-    priv->ConvertOldId3v2TagVersion = GTK_WIDGET (gtk_builder_get_object (builder,
-                                                                          "id3_v2_convert_check"));
     g_settings_bind (MainSettings, "id3v2-convert-old",
-                     priv->ConvertOldId3v2TagVersion, "active",
+                     priv->id3_v2_convert_check, "active",
                      G_SETTINGS_BIND_DEFAULT);
 
     /* Use CRC32 */
-    priv->FileWritingId3v2UseCrc32 = GTK_WIDGET (gtk_builder_get_object (builder,
-                                                                         "id3_v2_crc32_check"));
-    g_settings_bind (MainSettings, "id3v2-crc32", priv->FileWritingId3v2UseCrc32,
+    g_settings_bind (MainSettings, "id3v2-crc32", priv->id3_v2_crc32_check,
                      "active", G_SETTINGS_BIND_DEFAULT);
 
     /* Use Compression */
-    priv->FileWritingId3v2UseCompression = GTK_WIDGET (gtk_builder_get_object (builder,
-                                                                               "id3_v2_compression_check"));
     g_settings_bind (MainSettings, "id3v2-compression",
-                     priv->FileWritingId3v2UseCompression, "active",
+                     priv->id3_v2_compression_check, "active",
                      G_SETTINGS_BIND_DEFAULT);
        
     /* Write Genre in text */
-    priv->FileWritingId3v2TextOnlyGenre = GTK_WIDGET (gtk_builder_get_object (builder,
-                                                                              "id3_v2_genre_check"));
     g_settings_bind (MainSettings, "id3v2-text-only-genre",
-                     priv->FileWritingId3v2TextOnlyGenre, "active",
+                     priv->id3_v2_genre_check, "active",
                      G_SETTINGS_BIND_DEFAULT);
 
     /* Write ID3v2 tag */
-    FileWritingId3v2WriteTag = GTK_WIDGET (gtk_builder_get_object (builder,
-                                                                   "id3_v2_check"));
-    g_settings_bind (MainSettings, "id3v2-enabled", FileWritingId3v2WriteTag,
+    g_settings_bind (MainSettings, "id3v2-enabled", priv->id3_v2_check,
                      "active", G_SETTINGS_BIND_DEFAULT);
-    g_signal_connect (FileWritingId3v2WriteTag, "notify::active",
+    g_signal_connect (priv->id3_v2_check, "notify::active",
                       G_CALLBACK (notify_id3_settings_active), self);
 
 #ifdef ENABLE_ID3LIB
     /* ID3v2 tag version */
-    priv->LabelId3v2Version = GTK_WIDGET (gtk_builder_get_object (builder,
-                                                                  "id3_v2_version_label"));
-    priv->FileWritingId3v2VersionCombo = GTK_WIDGET (gtk_builder_get_object (builder,
-                                                                             "id3_v2_version_combo"));
     g_settings_bind_with_mapping (MainSettings, "id3v2-version-4",
-                                  priv->FileWritingId3v2VersionCombo, "active",
+                                  priv->id3_v2_version_combo, "active",
                                   G_SETTINGS_BIND_DEFAULT,
                                   et_preferences_id3v2_version_get,
                                   et_preferences_id3v2_version_set, self,
@@ -610,131 +490,106 @@ create_preferences_dialog (EtPreferencesDialog *self)
 #endif
 
     /* Charset */
-    priv->LabelId3v2Charset = GTK_WIDGET (gtk_builder_get_object (builder,
-                                                                  "id3_v2_encoding_label"));
     /* Unicode. */
-    priv->FileWritingId3v2UseUnicodeCharacterSet = GTK_WIDGET (gtk_builder_get_object (builder, 
"id3_v2_unicode_radio"));
     g_settings_bind (MainSettings, "id3v2-enable-unicode",
-                     priv->FileWritingId3v2UseUnicodeCharacterSet, "active",
+                     priv->id3_v2_unicode_radio, "active",
                      G_SETTINGS_BIND_DEFAULT);
 
-    priv->FileWritingId3v2UnicodeCharacterSetCombo = GTK_WIDGET (gtk_builder_get_object (builder, 
"id3_v2_unicode_encoding_combo"));
     g_settings_bind_with_mapping (MainSettings, "id3v2-unicode-charset",
-                                  priv->FileWritingId3v2UnicodeCharacterSetCombo,
+                                  priv->id3_v2_unicode_encoding_combo,
                                   "active", G_SETTINGS_BIND_DEFAULT,
                                   et_preferences_id3v2_unicode_charset_get,
                                   et_preferences_id3v2_unicode_charset_set,
                                   NULL, NULL);
-    g_signal_connect (priv->FileWritingId3v2UseUnicodeCharacterSet,
+    g_signal_connect (priv->id3_v2_unicode_radio,
                       "notify::active",
                       G_CALLBACK (notify_id3_settings_active), self);
 
     /* Non-Unicode. */
-    priv->FileWritingId3v2UseNoUnicodeCharacterSet = GTK_WIDGET (gtk_builder_get_object (builder, 
"id3_v2_other_radio"));
-    priv->FileWritingId3v2NoUnicodeCharacterSetCombo = GTK_WIDGET (gtk_builder_get_object (builder, 
"id3_v2_override_encoding_combo"));
-    Charset_Populate_Combobox (GTK_COMBO_BOX (priv->FileWritingId3v2NoUnicodeCharacterSetCombo), 
+    Charset_Populate_Combobox (GTK_COMBO_BOX (priv->id3_v2_override_encoding_combo),
                                g_settings_get_enum (MainSettings,
                                                     "id3v2-no-unicode-charset"));
     g_settings_bind_with_mapping (MainSettings, "id3v2-no-unicode-charset",
-                                  priv->FileWritingId3v2NoUnicodeCharacterSetCombo,
+                                  priv->id3_v2_override_encoding_combo,
                                   "active", G_SETTINGS_BIND_DEFAULT,
                                   et_settings_enum_get, et_settings_enum_set,
                                   GSIZE_TO_POINTER (ET_TYPE_CHARSET), NULL);
-    g_signal_connect (priv->FileWritingId3v2UseNoUnicodeCharacterSet,
+    g_signal_connect (priv->id3_v2_other_radio,
                       "notify::active",
                       G_CALLBACK (notify_id3_settings_active), self);
 
     /* ID3v2 Additional iconv() options. */
-    priv->LabelAdditionalId3v2IconvOptions = GTK_WIDGET (gtk_builder_get_object (builder, 
"id3_v2_iconv_label"));
-    priv->FileWritingId3v2IconvOptionsNo = GTK_WIDGET (gtk_builder_get_object (builder,
-                                                                               "id3_v2_none_radio"));
-    priv->FileWritingId3v2IconvOptionsTranslit = GTK_WIDGET (gtk_builder_get_object (builder, 
"id3_v2_transliterate_radio")),
-    priv->FileWritingId3v2IconvOptionsIgnore = GTK_WIDGET (gtk_builder_get_object (builder, 
"id3_v2_ignore_radio"));
-
     g_settings_bind_with_mapping (MainSettings, "id3v2-encoding-option",
-                                  priv->FileWritingId3v2IconvOptionsNo, "active",
+                                  priv->id3_v2_none_radio, "active",
                                   G_SETTINGS_BIND_DEFAULT,
                                   et_settings_enum_radio_get,
                                   et_settings_enum_radio_set,
-                                  priv->FileWritingId3v2IconvOptionsNo, NULL);
+                                  priv->id3_v2_none_radio, NULL);
     g_settings_bind_with_mapping (MainSettings, "id3v2-encoding-option",
-                                  priv->FileWritingId3v2IconvOptionsTranslit,
+                                  priv->id3_v2_transliterate_radio,
                                   "active", G_SETTINGS_BIND_DEFAULT,
                                   et_settings_enum_radio_get,
                                   et_settings_enum_radio_set,
-                                  priv->FileWritingId3v2IconvOptionsTranslit, NULL);
+                                  priv->id3_v2_transliterate_radio, NULL);
     g_settings_bind_with_mapping (MainSettings, "id3v2-encoding-option",
-                                  priv->FileWritingId3v2IconvOptionsIgnore, "active",
+                                  priv->id3_v2_ignore_radio, "active",
                                   G_SETTINGS_BIND_DEFAULT,
                                   et_settings_enum_radio_get,
                                   et_settings_enum_radio_set,
-                                  priv->FileWritingId3v2IconvOptionsIgnore, NULL);
+                                  priv->id3_v2_ignore_radio, NULL);
 
     /* Write ID3v1 tag */
-    FileWritingId3v1WriteTag = GTK_WIDGET (gtk_builder_get_object (builder,
-                                                                   "id3_v1_check"));
-    g_settings_bind (MainSettings, "id3v1-enabled", FileWritingId3v1WriteTag,
+    g_settings_bind (MainSettings, "id3v1-enabled", priv->id3_v1_check,
                      "active", G_SETTINGS_BIND_DEFAULT);
-    g_signal_connect (FileWritingId3v1WriteTag, "notify::active",
+    g_signal_connect (priv->id3_v1_check, "notify::active",
                       G_CALLBACK (notify_id3_settings_active), self);
 
-    priv->id3_v1_encoding_grid = GTK_WIDGET (gtk_builder_get_object (builder,
-                                                                     "id3_v1_encoding_grid"));
     /* Id3V1 writing character set */
-    priv->FileWritingId3v1CharacterSetCombo = GTK_WIDGET (gtk_builder_get_object (builder, 
"id3_v1_encoding_combo"));
-    Charset_Populate_Combobox (GTK_COMBO_BOX (priv->FileWritingId3v1CharacterSetCombo),
+    Charset_Populate_Combobox (GTK_COMBO_BOX (priv->id3_v1_encoding_combo),
                                g_settings_get_enum (MainSettings,
                                                     "id3v1-charset"));
     g_settings_bind_with_mapping (MainSettings, "id3v1-charset",
-                                  priv->FileWritingId3v1CharacterSetCombo,
+                                  priv->id3_v1_encoding_combo,
                                   "active", G_SETTINGS_BIND_DEFAULT,
                                   et_settings_enum_get, et_settings_enum_set,
                                   GSIZE_TO_POINTER (ET_TYPE_CHARSET), NULL);
 
     /* ID3V1 Additional iconv() options*/
-    priv->FileWritingId3v1IconvOptionsNo = GTK_WIDGET (gtk_builder_get_object (builder,
-                                                                               "id3_v1_none_radio"));
-    priv->FileWritingId3v1IconvOptionsTranslit = GTK_WIDGET (gtk_builder_get_object (builder, 
"id3_v1_transliterate_radio"));
-    priv->FileWritingId3v1IconvOptionsIgnore = GTK_WIDGET (gtk_builder_get_object (builder, 
"id3_v1_ignore_radio"));
-
     g_settings_bind_with_mapping (MainSettings, "id3v1-encoding-option",
-                                  priv->FileWritingId3v1IconvOptionsNo, "active",
+                                  priv->id3_v1_none_radio, "active",
                                   G_SETTINGS_BIND_DEFAULT,
                                   et_settings_enum_radio_get,
                                   et_settings_enum_radio_set,
-                                  priv->FileWritingId3v1IconvOptionsNo, NULL);
+                                  priv->id3_v1_none_radio, NULL);
     g_settings_bind_with_mapping (MainSettings, "id3v1-encoding-option",
-                                  priv->FileWritingId3v1IconvOptionsTranslit,
+                                  priv->id3_v1_transliterate_radio,
                                   "active", G_SETTINGS_BIND_DEFAULT,
                                   et_settings_enum_radio_get,
                                   et_settings_enum_radio_set,
-                                  priv->FileWritingId3v1IconvOptionsTranslit, NULL);
+                                  priv->id3_v1_transliterate_radio, NULL);
     g_settings_bind_with_mapping (MainSettings, "id3v1-encoding-option",
-                                  priv->FileWritingId3v1IconvOptionsIgnore, "active",
+                                  priv->id3_v1_ignore_radio, "active",
                                   G_SETTINGS_BIND_DEFAULT,
                                   et_settings_enum_radio_get,
                                   et_settings_enum_radio_set,
-                                  priv->FileWritingId3v1IconvOptionsIgnore, NULL);
+                                  priv->id3_v1_ignore_radio, NULL);
 
     /* Character Set for reading tag */
     /* "File Reading Charset" Check Button + Combo. */
-    UseNonStandardId3ReadingCharacterSet = GTK_WIDGET (gtk_builder_get_object (builder,
-                                                                               "id3_read_encoding_check"));
     g_settings_bind (MainSettings, "id3-override-read-encoding",
-                     UseNonStandardId3ReadingCharacterSet, "active",
+                     priv->id3_read_encoding_check, "active",
                      G_SETTINGS_BIND_DEFAULT);
 
-    priv->FileReadingId3v1v2CharacterSetCombo = GTK_WIDGET (gtk_builder_get_object (builder, 
"id3_read_encoding_combo"));
-    Charset_Populate_Combobox (GTK_COMBO_BOX (priv->FileReadingId3v1v2CharacterSetCombo),
+    Charset_Populate_Combobox (GTK_COMBO_BOX (priv->id3_read_encoding_combo),
                                g_settings_get_enum (MainSettings,
                                                     "id3v1v2-charset"));
     g_settings_bind_with_mapping (MainSettings, "id3v1v2-charset",
-                                  priv->FileReadingId3v1v2CharacterSetCombo,
+                                  priv->id3_read_encoding_combo,
                                   "active", G_SETTINGS_BIND_DEFAULT,
                                   et_settings_enum_get, et_settings_enum_set,
                                   GSIZE_TO_POINTER (ET_TYPE_CHARSET), NULL);
     g_settings_bind (MainSettings, "id3-override-read-encoding",
-                     priv->FileReadingId3v1v2CharacterSetCombo, "sensitive",
+                     priv->id3_read_encoding_combo, "sensitive",
                      G_SETTINGS_BIND_GET);
     notify_id3_settings_active (NULL, NULL, self);
 
@@ -742,236 +597,168 @@ create_preferences_dialog (EtPreferencesDialog *self)
      * Scanner
      */
     /* Save the number of the page. Asked in Scanner window */
-    vbox = GTK_WIDGET (gtk_builder_get_object (builder, "scanner_grid"));
-    priv->options_notebook_scanner = gtk_notebook_page_num (GTK_NOTEBOOK (priv->options_notebook),
-                                                            vbox);
+    priv->options_notebook_scanner = gtk_notebook_page_num (GTK_NOTEBOOK (priv->preferences_notebook),
+                                                            priv->scanner_grid);
 
     /* Character conversion for the 'Fill Tag' scanner (=> FTS...) */
-    FTSConvertUnderscoreAndP20IntoSpace = GTK_WIDGET (gtk_builder_get_object (builder, 
"fts_underscore_p20_radio"));
-    FTSConvertSpaceIntoUnderscore = GTK_WIDGET (gtk_builder_get_object (builder,
-                                                                        "fts_spaces_radio"));
-    FTSConvertSpaceNoChange = GTK_WIDGET (gtk_builder_get_object (builder,
-                                                                  "fts_none_radio"));
     g_settings_bind_with_mapping (MainSettings, "fill-convert-spaces",
-                                  FTSConvertUnderscoreAndP20IntoSpace,
+                                  priv->fts_underscore_p20_radio,
                                   "active", G_SETTINGS_BIND_DEFAULT,
                                   et_settings_enum_radio_get,
                                   et_settings_enum_radio_set,
-                                  FTSConvertUnderscoreAndP20IntoSpace, NULL);
+                                  priv->fts_underscore_p20_radio, NULL);
     g_settings_bind_with_mapping (MainSettings, "fill-convert-spaces",
-                                  FTSConvertSpaceIntoUnderscore, "active",
+                                  priv->fts_spaces_radio, "active",
                                   G_SETTINGS_BIND_DEFAULT,
                                   et_settings_enum_radio_get,
                                   et_settings_enum_radio_set,
-                                  FTSConvertSpaceIntoUnderscore, NULL);
+                                  priv->fts_spaces_radio, NULL);
     g_settings_bind_with_mapping (MainSettings, "fill-convert-spaces",
-                                  FTSConvertSpaceNoChange, "active",
+                                  priv->fts_none_radio, "active",
                                   G_SETTINGS_BIND_DEFAULT,
                                   et_settings_enum_radio_get,
                                   et_settings_enum_radio_set,
-                                  FTSConvertSpaceNoChange, NULL);
+                                  priv->fts_none_radio, NULL);
     /* TODO: No change tooltip. */
 
     /* Character conversion for the 'Rename File' scanner (=> RFS...) */
-    RFSConvertUnderscoreAndP20IntoSpace = GTK_WIDGET (gtk_builder_get_object (builder, 
"rfs_underscore_p20_radio"));
-    RFSConvertSpaceIntoUnderscore = GTK_WIDGET (gtk_builder_get_object (builder,
-                                                                        "rfs_spaces_radio"));
-    RFSRemoveSpaces = GTK_WIDGET (gtk_builder_get_object (builder,
-                                                          "rfs_remove_radio"));
     g_settings_bind_with_mapping (MainSettings, "rename-convert-spaces",
-                                  RFSConvertUnderscoreAndP20IntoSpace,
+                                  priv->rfs_underscore_p20_radio,
                                   "active", G_SETTINGS_BIND_DEFAULT,
                                   et_settings_enum_radio_get,
                                   et_settings_enum_radio_set,
-                                  RFSConvertUnderscoreAndP20IntoSpace, NULL);
+                                  priv->rfs_underscore_p20_radio, NULL);
     g_settings_bind_with_mapping (MainSettings, "rename-convert-spaces",
-                                  RFSConvertSpaceIntoUnderscore, "active",
+                                  priv->rfs_spaces_radio, "active",
                                   G_SETTINGS_BIND_DEFAULT,
                                   et_settings_enum_radio_get,
                                   et_settings_enum_radio_set,
-                                  RFSConvertSpaceIntoUnderscore, NULL);
+                                  priv->rfs_spaces_radio, NULL);
     g_settings_bind_with_mapping (MainSettings, "rename-convert-spaces",
-                                  RFSRemoveSpaces, "active",
+                                  priv->rfs_remove_radio, "active",
                                   G_SETTINGS_BIND_DEFAULT,
                                   et_settings_enum_radio_get,
-                                  et_settings_enum_radio_set, RFSRemoveSpaces,
+                                  et_settings_enum_radio_set,
+                                  priv->rfs_remove_radio,
                                   NULL);
 
     /* Character conversion for the 'Process Fields' scanner (=> PFS...) */
-    PFSDontUpperSomeWords = GTK_WIDGET (gtk_builder_get_object (builder,
-                                                                "pfs_uppercase_prep_check"));
     g_settings_bind (MainSettings, "process-uppercase-prepositions",
-                     PFSDontUpperSomeWords, "active",
+                     priv->pfs_uppercase_prep_check, "active",
                      G_SETTINGS_BIND_DEFAULT);
 
     /* Other options */
-    OverwriteTagField = GTK_WIDGET (gtk_builder_get_object (builder,
-                                                            "overwrite_fields_check"));
     g_settings_bind (MainSettings, "fill-overwrite-tag-fields",
-                     OverwriteTagField, "active", G_SETTINGS_BIND_DEFAULT);
+                     priv->overwrite_fields_check, "active",
+                     G_SETTINGS_BIND_DEFAULT);
 
     /* Set a default comment text or CRC-32 checksum. */
-    SetDefaultComment = GTK_WIDGET (gtk_builder_get_object (builder,
-                                                            "default_comment_check"));
-    DefaultComment = GTK_WIDGET (gtk_builder_get_object (builder,
-                                                         "default_comment_entry"));
     g_settings_bind (MainSettings, "fill-set-default-comment",
-                     SetDefaultComment, "active", G_SETTINGS_BIND_DEFAULT);
-    g_settings_bind (MainSettings, "fill-set-default-comment", DefaultComment,
-                     "sensitive", G_SETTINGS_BIND_GET);
-    g_settings_bind (MainSettings, "fill-default-comment", DefaultComment,
-                     "text", G_SETTINGS_BIND_DEFAULT);
+                     priv->default_comment_check, "active",
+                     G_SETTINGS_BIND_DEFAULT);
+    g_settings_bind (MainSettings, "fill-set-default-comment",
+                     priv->default_comment_entry, "sensitive",
+                     G_SETTINGS_BIND_GET);
+    g_settings_bind (MainSettings, "fill-default-comment",
+                     priv->default_comment_entry, "text",
+                     G_SETTINGS_BIND_DEFAULT);
 
     /* CRC32 comment. */
-    Crc32Comment = GTK_WIDGET (gtk_builder_get_object (builder,
-                                                       "crc32_default_check"));
-    g_settings_bind (MainSettings, "fill-crc32-comment", Crc32Comment,
-                     "active", G_SETTINGS_BIND_DEFAULT);
+    g_settings_bind (MainSettings, "fill-crc32-comment",
+                     priv->crc32_default_check, "active",
+                     G_SETTINGS_BIND_DEFAULT);
 
-    /*
-     * CDDB
-     */
+    /* CDDB */
     /* 1st automatic search server. */
-    CddbServerNameAutomaticSearch = GTK_WIDGET (gtk_builder_get_object (builder,
-                                                                        "cddb_automatic_host1_combo"));
     g_settings_bind (MainSettings, "cddb-automatic-search-hostname",
-                     gtk_bin_get_child (GTK_BIN (CddbServerNameAutomaticSearch)),
+                     gtk_bin_get_child (GTK_BIN (priv->cddb_automatic_host1_combo)),
                      "text", G_SETTINGS_BIND_DEFAULT);
-
-    CddbServerPortAutomaticSearch = GTK_WIDGET (gtk_builder_get_object (builder,
-                                                                        "cddb_automatic_port1_button"));
     g_settings_bind (MainSettings, "cddb-automatic-search-port",
-                     CddbServerPortAutomaticSearch, "value",
+                     priv->cddb_automatic_port1_button, "value",
                      G_SETTINGS_BIND_DEFAULT);
-
-    CddbServerCgiPathAutomaticSearch = GTK_WIDGET (gtk_builder_get_object (builder,
-                                                                           "cddb_automatic_path1_entry"));
     g_settings_bind (MainSettings, "cddb-automatic-search-path",
-                     CddbServerCgiPathAutomaticSearch, "text",
+                     priv->cddb_automatic_path1_entry, "text",
                      G_SETTINGS_BIND_DEFAULT);
 
     /* 2nd automatic search server. */
-    CddbServerNameAutomaticSearch2 = GTK_WIDGET (gtk_builder_get_object (builder,
-                                                                         "cddb_automatic_host2_combo"));
     g_settings_bind (MainSettings, "cddb-automatic-search-hostname2",
-                     gtk_bin_get_child (GTK_BIN (CddbServerNameAutomaticSearch2)),
+                     gtk_bin_get_child (GTK_BIN (priv->cddb_automatic_host2_combo)),
                      "text", G_SETTINGS_BIND_DEFAULT);
-
-    CddbServerPortAutomaticSearch2 = GTK_WIDGET (gtk_builder_get_object (builder,
-                                                                         "cddb_automatic_port2_button"));
     g_settings_bind (MainSettings, "cddb-automatic-search-port2",
-                     CddbServerPortAutomaticSearch2, "value",
+                     priv->cddb_automatic_port2_button, "value",
                      G_SETTINGS_BIND_DEFAULT);
-
-    CddbServerCgiPathAutomaticSearch2 = GTK_WIDGET (gtk_builder_get_object (builder,
-                                                                            "cddb_automatic_path2_entry"));
     g_settings_bind (MainSettings, "cddb-automatic-search-path2",
-                     CddbServerCgiPathAutomaticSearch2, "text",
+                     priv->cddb_automatic_path2_entry, "text",
                      G_SETTINGS_BIND_DEFAULT);
 
     /* CDDB Server Settings (Manual Search). */
-    CddbServerNameManualSearch = GTK_WIDGET (gtk_builder_get_object (builder,
-                                                                     "cddb_manual_host_combo"));
     g_settings_bind (MainSettings, "cddb-manual-search-hostname",
-                     gtk_bin_get_child (GTK_BIN (CddbServerNameManualSearch)),
+                     gtk_bin_get_child (GTK_BIN (priv->cddb_manual_host_combo)),
                      "text", G_SETTINGS_BIND_DEFAULT);
-
-    CddbServerPortManualSearch = GTK_WIDGET (gtk_builder_get_object (builder,
-                                                                     "cddb_manual_port_button"));
     g_settings_bind (MainSettings, "cddb-manual-search-port",
-                     CddbServerPortManualSearch, "value",
+                     priv->cddb_manual_port_button, "value",
                      G_SETTINGS_BIND_DEFAULT);
-
-    CddbServerCgiPathManualSearch = GTK_WIDGET (gtk_builder_get_object (builder,
-                                                                        "cddb_manual_path_entry"));
     g_settings_bind (MainSettings, "cddb-manual-search-path",
-                     CddbServerCgiPathManualSearch, "text",
+                     priv->cddb_manual_path_entry, "text",
                      G_SETTINGS_BIND_DEFAULT);
 
     /* CDDB Proxy Settings. */
-    CddbUseProxy = GTK_WIDGET (gtk_builder_get_object (builder,
-                                                       "cddb_proxy_check"));
-    g_settings_bind (MainSettings, "cddb-proxy-enabled", CddbUseProxy, "active",
+    g_settings_bind (MainSettings, "cddb-proxy-enabled",
+                     priv->cddb_proxy_check, "active",
                      G_SETTINGS_BIND_DEFAULT);
-
-    CddbProxyName = GTK_WIDGET (gtk_builder_get_object (builder,
-                                                        "cddb_host_entry"));
     g_settings_bind (MainSettings, "cddb-proxy-hostname",
-                     CddbProxyName, "text", G_SETTINGS_BIND_DEFAULT);
-    g_settings_bind (MainSettings, "cddb-proxy-enabled", CddbProxyName,
+                     priv->cddb_host_entry, "text", G_SETTINGS_BIND_DEFAULT);
+    g_settings_bind (MainSettings, "cddb-proxy-enabled", priv->cddb_host_entry,
                      "sensitive", G_SETTINGS_BIND_GET);
-    CddbProxyPort = GTK_WIDGET (gtk_builder_get_object (builder,
-                                                        "cddb_port_button"));
-    g_settings_bind (MainSettings, "cddb-proxy-port", CddbProxyPort, "value",
-                     G_SETTINGS_BIND_DEFAULT);
-    g_settings_bind (MainSettings, "cddb-proxy-enabled", CddbProxyPort,
-                     "sensitive", G_SETTINGS_BIND_GET);
-    CddbProxyUserName = GTK_WIDGET (gtk_builder_get_object (builder,
-                                                            "cddb_user_entry"));
-    g_settings_bind (MainSettings, "cddb-proxy-username", CddbProxyUserName,
-                     "text", G_SETTINGS_BIND_DEFAULT);
-    g_settings_bind (MainSettings, "cddb-proxy-enabled", CddbProxyUserName,
-                     "sensitive", G_SETTINGS_BIND_GET);
-    CddbProxyUserPassword = GTK_WIDGET (gtk_builder_get_object (builder,
-                                                                "cddb_password_entry"));
-    g_settings_bind (MainSettings, "cddb-proxy-password", CddbProxyUserPassword,
-                     "text", G_SETTINGS_BIND_DEFAULT);
-    g_settings_bind (MainSettings, "cddb-proxy-enabled", CddbProxyUserPassword,
+    g_settings_bind (MainSettings, "cddb-proxy-port", priv->cddb_port_button,
+                     "value", G_SETTINGS_BIND_DEFAULT);
+    g_settings_bind (MainSettings, "cddb-proxy-enabled",
+                     priv->cddb_port_button, "sensitive", G_SETTINGS_BIND_GET);
+    g_settings_bind (MainSettings, "cddb-proxy-username",
+                     priv->cddb_user_entry, "text", G_SETTINGS_BIND_DEFAULT);
+    g_settings_bind (MainSettings, "cddb-proxy-enabled", priv->cddb_user_entry,
                      "sensitive", G_SETTINGS_BIND_GET);
+    g_settings_bind (MainSettings, "cddb-proxy-password",
+                     priv->cddb_password_entry, "text",
+                     G_SETTINGS_BIND_DEFAULT);
+    g_settings_bind (MainSettings, "cddb-proxy-enabled",
+                     priv->cddb_password_entry, "sensitive",
+                     G_SETTINGS_BIND_GET);
 
     /* Track Name list (CDDB results). */
-    CddbFollowFile = GTK_WIDGET (gtk_builder_get_object (builder,
-                                                         "cddb_follow_check"));
-    g_settings_bind (MainSettings, "cddb-follow-file", CddbFollowFile,
+    g_settings_bind (MainSettings, "cddb-follow-file", priv->cddb_follow_check,
                      "active", G_SETTINGS_BIND_DEFAULT);
 
     /* Check box to use DLM. */
-    CddbUseDLM = GTK_WIDGET (gtk_builder_get_object (builder,
-                                                     "cddb_dlm_check"));
-    g_settings_bind (MainSettings, "cddb-dlm-enabled", CddbUseDLM, "active",
-                     G_SETTINGS_BIND_DEFAULT);
-
-
-    /*
-     * Confirmation
-     */
-    ConfirmWriteTag = GTK_WIDGET (gtk_builder_get_object (builder,
-                                                          "confirm_write_check"));
-    g_settings_bind (MainSettings, "confirm-write-tags", ConfirmWriteTag,
-                     "active", G_SETTINGS_BIND_DEFAULT);
-
-    ConfirmRenameFile = GTK_WIDGET (gtk_builder_get_object (builder,
-                                                            "confirm_rename_check"));
-    g_settings_bind (MainSettings, "confirm-rename-file", ConfirmRenameFile,
-                     "active", G_SETTINGS_BIND_DEFAULT);
-
-    ConfirmDeleteFile = GTK_WIDGET (gtk_builder_get_object (builder,
-                                                            "confirm_delete_check"));
-    g_settings_bind (MainSettings, "confirm-delete-file", ConfirmDeleteFile,
+    g_settings_bind (MainSettings, "cddb-dlm-enabled", priv->cddb_dlm_check,
                      "active", G_SETTINGS_BIND_DEFAULT);
 
-    ConfirmWritePlayList = GTK_WIDGET (gtk_builder_get_object (builder,
-                                                               "confirm_write_playlist_check"));
+    /* Confirmation */
+    g_settings_bind (MainSettings, "confirm-write-tags",
+                     priv->confirm_write_check, "active",
+                     G_SETTINGS_BIND_DEFAULT);
+    g_settings_bind (MainSettings, "confirm-rename-file",
+                     priv->confirm_rename_check, "active",
+                     G_SETTINGS_BIND_DEFAULT);
+    g_settings_bind (MainSettings, "confirm-delete-file",
+                     priv->confirm_delete_check, "active",
+                     G_SETTINGS_BIND_DEFAULT);
     g_settings_bind (MainSettings, "confirm-write-playlist",
-                     ConfirmWritePlayList, "active", G_SETTINGS_BIND_DEFAULT);
-
-    ConfirmWhenUnsavedFiles = GTK_WIDGET (gtk_builder_get_object (builder,
-                                                                  "confirm_unsaved_files_check"));
+                     priv->confirm_write_playlist_check, "active",
+                     G_SETTINGS_BIND_DEFAULT);
     g_settings_bind (MainSettings, "confirm-when-unsaved-files",
-                     ConfirmWhenUnsavedFiles, "active",
+                     priv->confirm_unsaved_files_check, "active",
                      G_SETTINGS_BIND_DEFAULT);
 
     /* Properties of the scanner window */
-    OpenScannerWindowOnStartup = GTK_WIDGET (gtk_builder_get_object (builder,
-                                                                     "scanner_dialog_startup_check"));
-    g_settings_bind (MainSettings, "scan-startup", OpenScannerWindowOnStartup,
-                     "active", G_SETTINGS_BIND_DEFAULT);
-
-    g_object_unref (builder);
+    g_settings_bind (MainSettings, "scan-startup",
+                     priv->scanner_dialog_startup_check, "active",
+                     G_SETTINGS_BIND_DEFAULT);
 
     /* Load the default page */
-    g_settings_bind (MainSettings, "preferences-page", priv->options_notebook,
-                     "page", G_SETTINGS_BIND_DEFAULT);
+    g_settings_bind (MainSettings, "preferences-page",
+                     priv->preferences_notebook, "page",
+                     G_SETTINGS_BIND_DEFAULT);
 }
 
 static void
@@ -988,65 +775,63 @@ notify_id3_settings_active (GObject *object,
 
     if (g_settings_get_boolean (MainSettings, "id3v2-enabled"))
     {
-        gtk_widget_set_sensitive (priv->LabelId3v2Charset, TRUE);
+        gtk_widget_set_sensitive (priv->id3_v2_encoding_label, TRUE);
 
 #ifdef ENABLE_ID3LIB
-        gtk_widget_set_sensitive (priv->LabelId3v2Version, TRUE);
-        gtk_widget_set_sensitive (priv->FileWritingId3v2VersionCombo, TRUE);
+        gtk_widget_set_sensitive (priv->id3_v2_version_label, TRUE);
+        gtk_widget_set_sensitive (priv->id3_v2_version_combo, TRUE);
 
         if (!g_settings_get_boolean (MainSettings, "id3v2-version-4"))
         {
             /* When "ID3v2.3" is selected. */
-            gtk_combo_box_set_active (GTK_COMBO_BOX (priv->FileWritingId3v2UnicodeCharacterSetCombo), 1);
-            gtk_widget_set_sensitive (priv->FileWritingId3v2UnicodeCharacterSetCombo,
+            gtk_combo_box_set_active (GTK_COMBO_BOX (priv->id3_v2_unicode_encoding_combo), 1);
+            gtk_widget_set_sensitive (priv->id3_v2_unicode_encoding_combo,
                                       FALSE);
         }
         else
         {
             /* When "ID3v2.4" is selected, set "UTF-8" as default value. */
-            gtk_combo_box_set_active (GTK_COMBO_BOX (priv->FileWritingId3v2UnicodeCharacterSetCombo),
+            gtk_combo_box_set_active (GTK_COMBO_BOX (priv->id3_v2_unicode_encoding_combo),
                                       0);
-            gtk_widget_set_sensitive (priv->FileWritingId3v2UnicodeCharacterSetCombo,
+            gtk_widget_set_sensitive (priv->id3_v2_unicode_encoding_combo,
                                       active);
         }
 #else 
-        gtk_widget_set_sensitive (priv->FileWritingId3v2UnicodeCharacterSetCombo,
+        gtk_widget_set_sensitive (priv->id3_v2_unicode_encoding_combo,
                                   active);
 #endif
-        gtk_widget_set_sensitive(priv->FileWritingId3v2UseUnicodeCharacterSet, TRUE);
-        gtk_widget_set_sensitive(priv->FileWritingId3v2UseNoUnicodeCharacterSet, TRUE);
-        gtk_widget_set_sensitive (priv->FileWritingId3v2NoUnicodeCharacterSetCombo,
+        gtk_widget_set_sensitive(priv->id3_v2_unicode_radio, TRUE);
+        gtk_widget_set_sensitive(priv->id3_v2_other_radio, TRUE);
+        gtk_widget_set_sensitive (priv->id3_v2_override_encoding_combo,
                                   !active);
-        gtk_widget_set_sensitive (priv->LabelAdditionalId3v2IconvOptions, !active);
-        gtk_widget_set_sensitive (priv->FileWritingId3v2IconvOptionsNo, !active);
-        gtk_widget_set_sensitive (priv->FileWritingId3v2IconvOptionsTranslit, !active);
-        gtk_widget_set_sensitive (priv->FileWritingId3v2IconvOptionsIgnore, !active);
-        gtk_widget_set_sensitive (priv->FileWritingId3v2UseCrc32, TRUE);
-        gtk_widget_set_sensitive (priv->FileWritingId3v2UseCompression, TRUE);
-        gtk_widget_set_sensitive (priv->FileWritingId3v2TextOnlyGenre, TRUE);
-        gtk_widget_set_sensitive (priv->ConvertOldId3v2TagVersion, TRUE);
+        gtk_widget_set_sensitive (priv->id3_v2_iconv_label, !active);
+        gtk_widget_set_sensitive (priv->id3_v2_none_radio, !active);
+        gtk_widget_set_sensitive (priv->id3_v2_transliterate_radio, !active);
+        gtk_widget_set_sensitive (priv->id3_v2_ignore_radio, !active);
+        gtk_widget_set_sensitive (priv->id3_v2_crc32_check, TRUE);
+        gtk_widget_set_sensitive (priv->id3_v2_compression_check, TRUE);
+        gtk_widget_set_sensitive (priv->id3_v2_genre_check, TRUE);
+        gtk_widget_set_sensitive (priv->id3_v2_convert_check, TRUE);
 
     }else
     {
-        gtk_widget_set_sensitive (priv->LabelId3v2Charset, FALSE);
+        gtk_widget_set_sensitive (priv->id3_v2_encoding_label, FALSE);
 #ifdef ENABLE_ID3LIB
-        gtk_widget_set_sensitive (priv->LabelId3v2Version, FALSE);
-        gtk_widget_set_sensitive (priv->FileWritingId3v2VersionCombo, FALSE);
+        gtk_widget_set_sensitive (priv->id3_v2_version_label, FALSE);
+        gtk_widget_set_sensitive (priv->id3_v2_version_combo, FALSE);
 #endif
-        gtk_widget_set_sensitive (priv->FileWritingId3v2UseUnicodeCharacterSet, FALSE);
-        gtk_widget_set_sensitive (priv->FileWritingId3v2UseNoUnicodeCharacterSet, FALSE);
-        gtk_widget_set_sensitive (priv->FileWritingId3v2UnicodeCharacterSetCombo,
-                                  FALSE);
-        gtk_widget_set_sensitive (priv->FileWritingId3v2NoUnicodeCharacterSetCombo,
-                                  FALSE);
-        gtk_widget_set_sensitive (priv->LabelAdditionalId3v2IconvOptions, FALSE);
-        gtk_widget_set_sensitive (priv->FileWritingId3v2IconvOptionsNo, FALSE);
-        gtk_widget_set_sensitive (priv->FileWritingId3v2IconvOptionsTranslit, FALSE);
-        gtk_widget_set_sensitive (priv->FileWritingId3v2IconvOptionsIgnore, FALSE);
-        gtk_widget_set_sensitive (priv->FileWritingId3v2UseCrc32, FALSE);
-        gtk_widget_set_sensitive (priv->FileWritingId3v2UseCompression, FALSE);
-        gtk_widget_set_sensitive (priv->FileWritingId3v2TextOnlyGenre, FALSE);
-        gtk_widget_set_sensitive (priv->ConvertOldId3v2TagVersion, 0);
+        gtk_widget_set_sensitive (priv->id3_v2_unicode_radio, FALSE);
+        gtk_widget_set_sensitive (priv->id3_v2_other_radio, FALSE);
+        gtk_widget_set_sensitive (priv->id3_v2_unicode_encoding_combo, FALSE);
+        gtk_widget_set_sensitive (priv->id3_v2_override_encoding_combo, FALSE);
+        gtk_widget_set_sensitive (priv->id3_v2_iconv_label, FALSE);
+        gtk_widget_set_sensitive (priv->id3_v2_none_radio, FALSE);
+        gtk_widget_set_sensitive (priv->id3_v2_transliterate_radio, FALSE);
+        gtk_widget_set_sensitive (priv->id3_v2_ignore_radio, FALSE);
+        gtk_widget_set_sensitive (priv->id3_v2_crc32_check, FALSE);
+        gtk_widget_set_sensitive (priv->id3_v2_compression_check, FALSE);
+        gtk_widget_set_sensitive (priv->id3_v2_genre_check, FALSE);
+        gtk_widget_set_sensitive (priv->id3_v2_convert_check, FALSE);
     }
 
     active = g_settings_get_boolean (MainSettings, "id3v1-enabled");
@@ -1154,7 +939,7 @@ et_preferences_dialog_show_scanner (EtPreferencesDialog *self)
 
     priv = et_preferences_dialog_get_instance_private (self);
 
-    gtk_notebook_set_current_page (GTK_NOTEBOOK (priv->options_notebook),
+    gtk_notebook_set_current_page (GTK_NOTEBOOK (priv->preferences_notebook),
                                    priv->options_notebook_scanner);
     gtk_window_present (GTK_WINDOW (self));
 }
@@ -1187,12 +972,297 @@ et_preferences_on_response (GtkDialog *dialog, gint response_id,
 static void
 et_preferences_dialog_init (EtPreferencesDialog *self)
 {
+    gtk_widget_init_template (GTK_WIDGET (self));
     create_preferences_dialog (self);
 }
 
 static void
 et_preferences_dialog_class_init (EtPreferencesDialogClass *klass)
 {
+    GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass);
+
+    gtk_widget_class_set_template_from_resource (widget_class,
+                                                 "/org/gnome/EasyTAG/preferences_dialog.ui");
+    gtk_widget_class_bind_template_child_private (widget_class,
+                                                  EtPreferencesDialog,
+                                                  default_path_button);
+    gtk_widget_class_bind_template_child_private (widget_class,
+                                                  EtPreferencesDialog,
+                                                  browser_startup_check);
+    gtk_widget_class_bind_template_child_private (widget_class,
+                                                  EtPreferencesDialog,
+                                                  browser_subdirs_check);
+    gtk_widget_class_bind_template_child_private (widget_class,
+                                                  EtPreferencesDialog,
+                                                  browser_expand_subdirs_check);
+    gtk_widget_class_bind_template_child_private (widget_class,
+                                                  EtPreferencesDialog,
+                                                  browser_hidden_check);
+    gtk_widget_class_bind_template_child_private (widget_class,
+                                                  EtPreferencesDialog,
+                                                  browser_case_check);
+    gtk_widget_class_bind_template_child_private (widget_class,
+                                                  EtPreferencesDialog,
+                                                  log_show_check);
+    gtk_widget_class_bind_template_child_private (widget_class,
+                                                  EtPreferencesDialog,
+                                                  header_show_check);
+    gtk_widget_class_bind_template_child_private (widget_class,
+                                                  EtPreferencesDialog,
+                                                  list_bold_radio);
+    gtk_widget_class_bind_template_child_private (widget_class,
+                                                  EtPreferencesDialog,
+                                                  file_name_replace_check);
+    gtk_widget_class_bind_template_child_private (widget_class,
+                                                  EtPreferencesDialog,
+                                                  name_lower_radio);
+    gtk_widget_class_bind_template_child_private (widget_class,
+                                                  EtPreferencesDialog,
+                                                  name_upper_radio);
+    gtk_widget_class_bind_template_child_private (widget_class,
+                                                  EtPreferencesDialog,
+                                                  name_no_change_radio);
+    gtk_widget_class_bind_template_child_private (widget_class,
+                                                  EtPreferencesDialog,
+                                                  file_preserve_check);
+    gtk_widget_class_bind_template_child_private (widget_class,
+                                                  EtPreferencesDialog,
+                                                  file_parent_check);
+    gtk_widget_class_bind_template_child_private (widget_class,
+                                                  EtPreferencesDialog,
+                                                  file_encoding_try_alternative_radio);
+    gtk_widget_class_bind_template_child_private (widget_class,
+                                                  EtPreferencesDialog,
+                                                  file_encoding_transliterate_radio);
+    gtk_widget_class_bind_template_child_private (widget_class,
+                                                  EtPreferencesDialog,
+                                                  file_encoding_ignore_radio);
+    gtk_widget_class_bind_template_child_private (widget_class,
+                                                  EtPreferencesDialog,
+                                                  tags_auto_date_check);
+    gtk_widget_class_bind_template_child_private (widget_class,
+                                                  EtPreferencesDialog,
+                                                  tags_auto_image_type_check);
+    gtk_widget_class_bind_template_child_private (widget_class,
+                                                  EtPreferencesDialog,
+                                                  tags_track_check);
+    gtk_widget_class_bind_template_child_private (widget_class,
+                                                  EtPreferencesDialog,
+                                                  tags_track_button);
+    gtk_widget_class_bind_template_child_private (widget_class,
+                                                  EtPreferencesDialog,
+                                                  tags_disc_check);
+    gtk_widget_class_bind_template_child_private (widget_class,
+                                                  EtPreferencesDialog,
+                                                  tags_disc_button);
+    gtk_widget_class_bind_template_child_private (widget_class,
+                                                  EtPreferencesDialog,
+                                                  tags_preserve_focus_check);
+    gtk_widget_class_bind_template_child_private (widget_class,
+                                                  EtPreferencesDialog,
+                                                  split_title_check);
+    gtk_widget_class_bind_template_child_private (widget_class,
+                                                  EtPreferencesDialog,
+                                                  split_artist_check);
+    gtk_widget_class_bind_template_child_private (widget_class,
+                                                  EtPreferencesDialog,
+                                                  split_album_check);
+    gtk_widget_class_bind_template_child_private (widget_class,
+                                                  EtPreferencesDialog,
+                                                  split_genre_check);
+    gtk_widget_class_bind_template_child_private (widget_class,
+                                                  EtPreferencesDialog,
+                                                  split_comment_check);
+    gtk_widget_class_bind_template_child_private (widget_class,
+                                                  EtPreferencesDialog,
+                                                  split_composer_check);
+    gtk_widget_class_bind_template_child_private (widget_class,
+                                                  EtPreferencesDialog,
+                                                  split_orig_artist_check);
+    gtk_widget_class_bind_template_child_private (widget_class,
+                                                  EtPreferencesDialog,
+                                                  id3_strip_check);
+    gtk_widget_class_bind_template_child_private (widget_class,
+                                                  EtPreferencesDialog,
+                                                  id3_v2_convert_check);
+    gtk_widget_class_bind_template_child_private (widget_class,
+                                                  EtPreferencesDialog,
+                                                  id3_v2_crc32_check);
+    gtk_widget_class_bind_template_child_private (widget_class,
+                                                  EtPreferencesDialog,
+                                                  id3_v2_compression_check);
+    gtk_widget_class_bind_template_child_private (widget_class,
+                                                  EtPreferencesDialog,
+                                                  id3_v2_genre_check);
+    gtk_widget_class_bind_template_child_private (widget_class,
+                                                  EtPreferencesDialog,
+                                                  id3_v2_check);
+    gtk_widget_class_bind_template_child_private (widget_class,
+                                                  EtPreferencesDialog,
+                                                  id3_v2_version_label);
+    gtk_widget_class_bind_template_child_private (widget_class,
+                                                  EtPreferencesDialog,
+                                                  id3_v2_version_combo);
+    gtk_widget_class_bind_template_child_private (widget_class,
+                                                  EtPreferencesDialog,
+                                                  id3_v2_encoding_label);
+    gtk_widget_class_bind_template_child_private (widget_class,
+                                                  EtPreferencesDialog,
+                                                  id3_v2_unicode_radio);
+    gtk_widget_class_bind_template_child_private (widget_class,
+                                                  EtPreferencesDialog,
+                                                  id3_v2_unicode_encoding_combo);
+    gtk_widget_class_bind_template_child_private (widget_class,
+                                                  EtPreferencesDialog,
+                                                  id3_v2_other_radio);
+    gtk_widget_class_bind_template_child_private (widget_class,
+                                                  EtPreferencesDialog,
+                                                  id3_v2_override_encoding_combo);
+    gtk_widget_class_bind_template_child_private (widget_class,
+                                                  EtPreferencesDialog,
+                                                  id3_v2_iconv_label);
+    gtk_widget_class_bind_template_child_private (widget_class,
+                                                  EtPreferencesDialog,
+                                                  id3_v2_none_radio);
+    gtk_widget_class_bind_template_child_private (widget_class,
+                                                  EtPreferencesDialog,
+                                                  id3_v2_transliterate_radio);
+    gtk_widget_class_bind_template_child_private (widget_class,
+                                                  EtPreferencesDialog,
+                                                  id3_v2_ignore_radio);
+    gtk_widget_class_bind_template_child_private (widget_class,
+                                                  EtPreferencesDialog,
+                                                  id3_v1_check);
+    gtk_widget_class_bind_template_child_private (widget_class,
+                                                  EtPreferencesDialog,
+                                                  id3_v1_encoding_grid);
+    gtk_widget_class_bind_template_child_private (widget_class,
+                                                  EtPreferencesDialog,
+                                                  id3_v1_encoding_combo);
+    gtk_widget_class_bind_template_child_private (widget_class,
+                                                  EtPreferencesDialog,
+                                                  id3_v1_none_radio);
+    gtk_widget_class_bind_template_child_private (widget_class,
+                                                  EtPreferencesDialog,
+                                                  id3_v1_transliterate_radio);
+    gtk_widget_class_bind_template_child_private (widget_class,
+                                                  EtPreferencesDialog,
+                                                  id3_v1_ignore_radio);
+    gtk_widget_class_bind_template_child_private (widget_class,
+                                                  EtPreferencesDialog,
+                                                  id3_read_encoding_check);
+    gtk_widget_class_bind_template_child_private (widget_class,
+                                                  EtPreferencesDialog,
+                                                  id3_read_encoding_combo);
+    gtk_widget_class_bind_template_child_private (widget_class,
+                                                  EtPreferencesDialog,
+                                                  preferences_notebook);
+    gtk_widget_class_bind_template_child_private (widget_class,
+                                                  EtPreferencesDialog,
+                                                  scanner_grid);
+    gtk_widget_class_bind_template_child_private (widget_class,
+                                                  EtPreferencesDialog,
+                                                  fts_underscore_p20_radio);
+    gtk_widget_class_bind_template_child_private (widget_class,
+                                                  EtPreferencesDialog,
+                                                  fts_spaces_radio);
+    gtk_widget_class_bind_template_child_private (widget_class,
+                                                  EtPreferencesDialog,
+                                                  fts_none_radio);
+    gtk_widget_class_bind_template_child_private (widget_class,
+                                                  EtPreferencesDialog,
+                                                  rfs_underscore_p20_radio);
+    gtk_widget_class_bind_template_child_private (widget_class,
+                                                  EtPreferencesDialog,
+                                                  rfs_spaces_radio);
+    gtk_widget_class_bind_template_child_private (widget_class,
+                                                  EtPreferencesDialog,
+                                                  rfs_remove_radio);
+    gtk_widget_class_bind_template_child_private (widget_class,
+                                                  EtPreferencesDialog,
+                                                  pfs_uppercase_prep_check);
+    gtk_widget_class_bind_template_child_private (widget_class,
+                                                  EtPreferencesDialog,
+                                                  overwrite_fields_check);
+    gtk_widget_class_bind_template_child_private (widget_class,
+                                                  EtPreferencesDialog,
+                                                  default_comment_check);
+    gtk_widget_class_bind_template_child_private (widget_class,
+                                                  EtPreferencesDialog,
+                                                  default_comment_entry);
+    gtk_widget_class_bind_template_child_private (widget_class,
+                                                  EtPreferencesDialog,
+                                                  crc32_default_check);
+    gtk_widget_class_bind_template_child_private (widget_class,
+                                                  EtPreferencesDialog,
+                                                  cddb_automatic_host1_combo);
+    gtk_widget_class_bind_template_child_private (widget_class,
+                                                  EtPreferencesDialog,
+                                                  cddb_automatic_port1_button);
+    gtk_widget_class_bind_template_child_private (widget_class,
+                                                  EtPreferencesDialog,
+                                                  cddb_automatic_path1_entry);
+    gtk_widget_class_bind_template_child_private (widget_class,
+                                                  EtPreferencesDialog,
+                                                  cddb_automatic_host2_combo);
+    gtk_widget_class_bind_template_child_private (widget_class,
+                                                  EtPreferencesDialog,
+                                                  cddb_automatic_port2_button);
+    gtk_widget_class_bind_template_child_private (widget_class,
+                                                  EtPreferencesDialog,
+                                                  cddb_automatic_path2_entry);
+    gtk_widget_class_bind_template_child_private (widget_class,
+                                                  EtPreferencesDialog,
+                                                  cddb_manual_host_combo);
+    gtk_widget_class_bind_template_child_private (widget_class,
+                                                  EtPreferencesDialog,
+                                                  cddb_manual_port_button);
+    gtk_widget_class_bind_template_child_private (widget_class,
+                                                  EtPreferencesDialog,
+                                                  cddb_manual_path_entry);
+    gtk_widget_class_bind_template_child_private (widget_class,
+                                                  EtPreferencesDialog,
+                                                  cddb_proxy_check);
+    gtk_widget_class_bind_template_child_private (widget_class,
+                                                  EtPreferencesDialog,
+                                                  cddb_host_entry);
+    gtk_widget_class_bind_template_child_private (widget_class,
+                                                  EtPreferencesDialog,
+                                                  cddb_port_button);
+    gtk_widget_class_bind_template_child_private (widget_class,
+                                                  EtPreferencesDialog,
+                                                  cddb_user_entry);
+    gtk_widget_class_bind_template_child_private (widget_class,
+                                                  EtPreferencesDialog,
+                                                  cddb_password_entry);
+    gtk_widget_class_bind_template_child_private (widget_class,
+                                                  EtPreferencesDialog,
+                                                  cddb_follow_check);
+    gtk_widget_class_bind_template_child_private (widget_class,
+                                                  EtPreferencesDialog,
+                                                  cddb_dlm_check);
+    gtk_widget_class_bind_template_child_private (widget_class,
+                                                  EtPreferencesDialog,
+                                                  confirm_write_check);
+    gtk_widget_class_bind_template_child_private (widget_class,
+                                                  EtPreferencesDialog,
+                                                  confirm_rename_check);
+    gtk_widget_class_bind_template_child_private (widget_class,
+                                                  EtPreferencesDialog,
+                                                  confirm_delete_check);
+    gtk_widget_class_bind_template_child_private (widget_class,
+                                                  EtPreferencesDialog,
+                                                  confirm_write_playlist_check);
+    gtk_widget_class_bind_template_child_private (widget_class,
+                                                  EtPreferencesDialog,
+                                                  confirm_unsaved_files_check);
+    gtk_widget_class_bind_template_child_private (widget_class,
+                                                  EtPreferencesDialog,
+                                                  scanner_dialog_startup_check);
+    gtk_widget_class_bind_template_callback (widget_class,
+                                             et_preferences_on_response);
+    gtk_widget_class_bind_template_callback (widget_class,
+                                             et_prefs_current_folder_changed);
 }
 
 /*


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]