[easytag/wip/future-gtk: 2/2] Convert EtLoadFilesDialog to a template widget



commit 0c18ad6f7f2b21237a07a79717b4b6723e62b184
Author: David King <amigadave amigadave com>
Date:   Sun May 3 22:05:19 2015 +0100

    Convert EtLoadFilesDialog to a template widget

 data/load_files_dialog.ui |  510 ++++++++++++++++++++++++---------------------
 src/load_files_dialog.c   |  428 ++++++++++++++++++++------------------
 2 files changed, 505 insertions(+), 433 deletions(-)
---
diff --git a/data/load_files_dialog.ui b/data/load_files_dialog.ui
index aded0e1..f10f1aa 100644
--- a/data/load_files_dialog.ui
+++ b/data/load_files_dialog.ui
@@ -1,5 +1,5 @@
 <interface domain="easytag">
-    <requires lib="gtk+" version="3.4"/>
+    <requires lib="gtk+" version="3.10"/>
     <object class="GtkListStore" id="file_content_model">
         <columns>
             <column type="gchararray"/>
@@ -11,270 +11,310 @@
             <column type="gpointer"/>
         </columns>
     </object>
-    <object class="GtkGrid" id="file_grid">
-        <property name="column-spacing">6</property>
-        <property name="row-spacing">6</property>
-        <child>
-            <object class="GtkLabel" id="file_label">
-                <property name="halign">end</property>
-                <property name="label" translatable="yes">File:</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="GtkFileChooserButton" id="file_chooser">
-                <property name="hexpand">True</property>
-                <property name="title" translatable="yes">Choose a Text File</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="GtkButton" id="file_load_button">
-                <property name="can-default">True</property>
-                <property name="label" translatable="yes">_Load</property>
-                <property name="use-underline">True</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="GtkPaned" id="file_paned">
-                <property name="orientation">horizontal</property>
-                <property name="visible">True</property>
+    <template class="EtLoadFilesDialog" parent="GtkDialog">
+        <property name="destroy-with-parent">True</property>
+        <property name="title" translatable="yes">Load Filenames From a Text File</property>
+        <signal name="delete-event" handler="gtk_widget_hide_on_delete"/>
+        <signal name="response" handler="on_response"/>
+        <child internal-child="vbox">
+            <object class="GtkBox" id="load_files_vbox">
+                <property name="border-width">6</property>
+                <property name="spacing">6</property>
                 <child>
-                    <object class="GtkGrid" id="file_content_grid">
-                        <property name="orientation">vertical</property>
-                        <property name="visible">True</property>
+                    <object class="GtkGrid" id="file_grid">
+                        <property name="column-spacing">6</property>
+                        <property name="row-spacing">6</property>
+                        <child>
+                            <object class="GtkLabel" id="file_label">
+                                <property name="halign">end</property>
+                                <property name="label" translatable="yes">File:</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="GtkFileChooserButton" id="file_chooser">
+                                <property name="hexpand">True</property>
+                                <property name="title" translatable="yes">Choose a Text File</property>
+                                <property name="visible">True</property>
+                                <signal name="file-set" handler="set_load_button_sensitivity" 
swapped="true"/>
+                            </object>
+                            <packing>
+                                <property name="left-attach">1</property>
+                                <property name="top-attach">0</property>
+                            </packing>
+                        </child>
+                        <child>
+                            <object class="GtkButton" id="file_load_button">
+                                <property name="can-default">True</property>
+                                <property name="label" translatable="yes">_Load</property>
+                                <property name="use-underline">True</property>
+                                <property name="visible">True</property>
+                                <signal name="clicked" handler="Load_File_Content"/>
+                            </object>
+                            <packing>
+                                <property name="left-attach">2</property>
+                                <property name="top-attach">0</property>
+                            </packing>
+                        </child>
                         <child>
-                            <object class="GtkScrolledWindow" id="file_content_scrolled">
-                                <property name="expand">True</property>
-                                <property name="min-content-height">275</property>
-                                <property name="min-content-width">275</property>
+                            <object class="GtkPaned" id="file_paned">
+                                <property name="orientation">horizontal</property>
                                 <property name="visible">True</property>
                                 <child>
-                                    <object class="GtkTreeView" id="file_content_view">
-                                        <property name="model">file_content_model</property>
-                                        <property name="reorderable">True</property>
+                                    <object class="GtkGrid" id="file_content_grid">
+                                        <property name="orientation">vertical</property>
                                         <property name="visible">True</property>
                                         <child>
-                                            <object class="GtkTreeViewColumn" id="file_content_column">
-                                                <property name="title" translatable="yes">Content of Text 
File</property>
+                                            <object class="GtkScrolledWindow" id="file_content_scrolled">
+                                                <property name="expand">True</property>
+                                                <property name="min-content-height">275</property>
+                                                <property name="min-content-width">275</property>
+                                                <property name="visible">True</property>
                                                 <child>
-                                                    <object class="GtkCellRendererText" 
id="filecontent_renderer"/>
-                                                    <attributes>
-                                                        <attribute name="text">0</attribute>
-                                                    </attributes>
+                                                    <object class="GtkTreeView" id="file_content_view">
+                                                        <property name="model">file_content_model</property>
+                                                        <property name="reorderable">True</property>
+                                                        <property name="visible">True</property>
+                                                        <signal name="button-press-event" 
handler="on_content_view_button_press_event"/>
+                                                        <signal name="key-press-event" 
handler="Load_Filename_List_Key_Press"/>
+                                                        <signal name="popup-menu" 
handler="on_content_view_popup_menu"/>
+                                                        <child>
+                                                            <object class="GtkTreeViewColumn" 
id="file_content_column">
+                                                                <property name="title" 
translatable="yes">Content of Text File</property>
+                                                                <child>
+                                                                    <object class="GtkCellRendererText" 
id="filecontent_renderer"/>
+                                                                    <attributes>
+                                                                        <attribute name="text">0</attribute>
+                                                                    </attributes>
+                                                                </child>
+                                                            </object>
+                                                        </child>
+                                                        <child internal-child="selection">
+                                                            <object class="GtkTreeSelection" 
id="file_content_selection">
+                                                                <signal name="changed" 
handler="Load_Filename_Edit_Text_Line" swapped="yes"/>
+                                                            </object>
+                                                        </child>
+                                                    </object>
+                                                </child>
+                                            </object>
+                                        </child>
+                                        <child>
+                                            <object class="GtkToolbar" id="file_content_bar">
+                                                <property name="visible">True</property>
+                                                <style>
+                                                    <class name="inline-toolbar"/>
+                                                </style>
+                                                <child>
+                                                    <object class="GtkToolButton" id="content_insert_blank">
+                                                        <property name="icon-name">list-add</property>
+                                                        <property name="tooltip-text" 
translatable="yes">Insert a blank line before the selected line</property>
+                                                        <property name="visible">True</property>
+                                                        <signal name="clicked" 
handler="on_content_insert_blank_clicked" swapped="yes"/>
+                                                    </object>
+                                                </child>
+                                                <child>
+                                                    <object class="GtkToolButton" id="content_remove">
+                                                        <property name="icon-name">list-remove</property>
+                                                        <property name="tooltip-text" 
translatable="yes">Delete the selected line</property>
+                                                        <property name="visible">True</property>
+                                                        <signal name="clicked" 
handler="on_content_remove_clicked" swapped="yes"/>
+                                                    </object>
+                                                </child>
+                                                <child>
+                                                    <object class="GtkToolButton" id="content_remove_blank">
+                                                        <property name="icon-name">edit-delete</property>
+                                                        <property name="tooltip-text" 
translatable="yes">Delete all blank lines</property>
+                                                        <property name="visible">True</property>
+                                                        <signal name="clicked" 
handler="on_content_delete_all_blank_clicked" swapped="yes"/>
+                                                    </object>
+                                                </child>
+                                                <child>
+                                                    <object class="GtkToolButton" id="content_up">
+                                                        <property name="icon-name">go-up</property>
+                                                        <property name="tooltip-text" 
translatable="yes">Move the selected line up</property>
+                                                        <property name="visible">True</property>
+                                                        <signal name="clicked" 
handler="on_content_move_up_clicked" swapped="yes"/>
+                                                    </object>
+                                                </child>
+                                                <child>
+                                                    <object class="GtkToolButton" id="content_down">
+                                                        <property name="icon-name">go-down</property>
+                                                        <property name="tooltip-text" 
translatable="yes">Move the selected line down</property>
+                                                        <property name="visible">True</property>
+                                                        <signal name="clicked" 
handler="on_content_move_down_clicked" swapped="yes"/>
+                                                    </object>
+                                                </child>
+                                                <child>
+                                                    <object class="GtkToolButton" id="content_reload">
+                                                        <property name="icon-name">view-refresh</property>
+                                                        <property name="tooltip-text" 
translatable="yes">Reload</property>
+                                                        <property name="visible">True</property>
+                                                        <signal name="clicked" 
handler="on_load_file_content_view_reload_clicked"/>
+                                                    </object>
                                                 </child>
                                             </object>
                                         </child>
                                     </object>
+                                    <packing>
+                                        <property name="resize">True</property>
+                                        <property name="shrink">False</property>
+                                    </packing>
                                 </child>
-                            </object>
-                        </child>
-                        <child>
-                            <object class="GtkToolbar" id="file_content_bar">
-                                <property name="visible">True</property>
-                                <style>
-                                    <class name="inline-toolbar"/>
-                                </style>
-                                <child>
-                                    <object class="GtkToolButton" id="content_insert_blank">
-                                        <property name="icon-name">list-add</property>
-                                        <property name="tooltip-text" translatable="yes">Insert a blank line 
before the selected line</property>
-                                        <property name="visible">True</property>
-                                    </object>
-                                </child>
-                                <child>
-                                    <object class="GtkToolButton" id="content_remove">
-                                        <property name="icon-name">list-remove</property>
-                                        <property name="tooltip-text" translatable="yes">Delete the selected 
line</property>
-                                        <property name="visible">True</property>
-                                    </object>
-                                </child>
-                                <child>
-                                    <object class="GtkToolButton" id="content_remove_blank">
-                                        <property name="icon-name">edit-delete</property>
-                                        <property name="tooltip-text" translatable="yes">Delete all blank 
lines</property>
-                                        <property name="visible">True</property>
-                                    </object>
-                                </child>
-                                <child>
-                                    <object class="GtkToolButton" id="content_up">
-                                        <property name="icon-name">go-up</property>
-                                        <property name="tooltip-text" translatable="yes">Move the selected 
line up</property>
-                                        <property name="visible">True</property>
-                                    </object>
-                                </child>
-                                <child>
-                                    <object class="GtkToolButton" id="content_down">
-                                        <property name="icon-name">go-down</property>
-                                        <property name="tooltip-text" translatable="yes">Move the selected 
line down</property>
-                                        <property name="visible">True</property>
-                                    </object>
-                                </child>
-                                <child>
-                                    <object class="GtkToolButton" id="content_reload">
-                                        <property name="icon-name">view-refresh</property>
-                                        <property name="tooltip-text" translatable="yes">Reload</property>
-                                        <property name="visible">True</property>
-                                    </object>
-                                </child>
-                            </object>
-                        </child>
-                    </object>
-                    <packing>
-                        <property name="resize">True</property>
-                        <property name="shrink">False</property>
-                    </packing>
-                </child>
-                <child>
-                    <object class="GtkGrid" id="file_name_grid">
-                        <property name="orientation">vertical</property>
-                        <property name="visible">True</property>
-                        <child>
-                            <object class="GtkScrolledWindow" id="file_name_scrolled">
-                                <property name="expand">True</property>
-                                <property name="min-content-height">275</property>
-                                <property name="min-content-width">275</property>
-                                <property name="visible">True</property>
                                 <child>
-                                    <object class="GtkTreeView" id="file_name_view">
-                                        <property name="model">file_name_model</property>
-                                        <property name="reorderable">True</property>
+                                    <object class="GtkGrid" id="file_name_grid">
+                                        <property name="orientation">vertical</property>
                                         <property name="visible">True</property>
                                         <child>
-                                            <object class="GtkTreeViewColumn" id="file_name_column">
-                                                <property name="title" translatable="yes">List of 
Files</property>
+                                            <object class="GtkScrolledWindow" id="file_name_scrolled">
+                                                <property name="expand">True</property>
+                                                <property name="min-content-height">275</property>
+                                                <property name="min-content-width">275</property>
+                                                <property name="visible">True</property>
+                                                <child>
+                                                    <object class="GtkTreeView" id="file_name_view">
+                                                        <property name="model">file_name_model</property>
+                                                        <property name="reorderable">True</property>
+                                                        <property name="visible">True</property>
+                                                        <signal name="button-press-event" 
handler="on_name_view_button_press_event"/>
+                                                        <signal name="key-press-event" 
handler="Load_Filename_List_Key_Press"/>
+                                                        <signal name="popup-menu" 
handler="on_name_view_popup_menu"/>
+                                                        <child>
+                                                            <object class="GtkTreeViewColumn" 
id="file_name_column">
+                                                                <property name="title" 
translatable="yes">List of Files</property>
+                                                                <child>
+                                                                    <object class="GtkCellRendererText" 
id="file_name_renderer"/>
+                                                                    <attributes>
+                                                                        <attribute name="text">0</attribute>
+                                                                    </attributes>
+                                                                </child>
+                                                            </object>
+                                                        </child>
+                                                    </object>
+                                                </child>
+                                            </object>
+                                        </child>
+                                        <child>
+                                            <object class="GtkToolbar" id="file_name_bar">
+                                                <property name="visible">True</property>
+                                                <style>
+                                                    <class name="inline-toolbar"/>
+                                                </style>
+                                                <child>
+                                                    <object class="GtkToolButton" id="name_insert_blank">
+                                                        <property name="icon-name">list-add</property>
+                                                        <property name="tooltip-text" 
translatable="yes">Insert a blank line before the selected line</property>
+                                                        <property name="visible">True</property>
+                                                        <signal name="clicked" 
handler="on_name_insert_blank_clicked" swapped="yes"/>
+                                                    </object>
+                                                </child>
+                                                <child>
+                                                    <object class="GtkToolButton" id="name_remove">
+                                                        <property name="icon-name">list-remove</property>
+                                                        <property name="tooltip-text" 
translatable="yes">Delete the selected line</property>
+                                                        <property name="visible">True</property>
+                                                        <signal name="clicked" 
handler="on_name_remove_clicked" swapped="yes"/>
+                                                    </object>
+                                                </child>
+                                                <child>
+                                                    <object class="GtkToolButton" id="name_remove_blank">
+                                                        <property name="icon-name">edit-delete</property>
+                                                        <property name="tooltip-text" 
translatable="yes">Delete all blank lines</property>
+                                                        <property name="visible">True</property>
+                                                        <signal name="clicked" 
handler="on_name_delete_all_blank_clicked" swapped="yes"/>
+                                                    </object>
+                                                </child>
+                                                <child>
+                                                    <object class="GtkToolButton" id="name_up">
+                                                        <property name="icon-name">go-up</property>
+                                                        <property name="tooltip-text" 
translatable="yes">Move the selected line up</property>
+                                                        <property name="visible">True</property>
+                                                        <signal name="clicked" 
handler="on_name_move_up_clicked" swapped="yes"/>
+                                                    </object>
+                                                </child>
+                                                <child>
+                                                    <object class="GtkToolButton" id="name_down">
+                                                        <property name="icon-name">go-down</property>
+                                                        <property name="tooltip-text" 
translatable="yes">Move the selected line down</property>
+                                                        <property name="visible">True</property>
+                                                        <signal name="clicked" 
handler="on_name_move_down_clicked" swapped="yes"/>
+                                                    </object>
+                                                </child>
                                                 <child>
-                                                    <object class="GtkCellRendererText" 
id="file_name_renderer"/>
-                                                    <attributes>
-                                                        <attribute name="text">0</attribute>
-                                                    </attributes>
+                                                    <object class="GtkToolButton" id="name_reload">
+                                                        <property name="icon-name">view-refresh</property>
+                                                        <property name="tooltip-text" 
translatable="yes">Reload</property>
+                                                        <property name="visible">True</property>
+                                                        <signal name="clicked" 
handler="on_load_file_name_view_reload_clicked" swapped="yes"/>
+                                                    </object>
                                                 </child>
                                             </object>
                                         </child>
                                     </object>
+                                    <packing>
+                                        <property name="resize">True</property>
+                                        <property name="shrink">False</property>
+                                    </packing>
                                 </child>
                             </object>
+                            <packing>
+                                <property name="left-attach">0</property>
+                                <property name="top-attach">1</property>
+                                <property name="width">3</property>
+                            </packing>
                         </child>
                         <child>
-                            <object class="GtkToolbar" id="file_name_bar">
+                            <object class="GtkLabel" id="file_entry_label">
+                                <property name="halign">end</property>
+                                <property name="label" translatable="yes">Selected line:</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="GtkEntry" id="file_entry">
+                                <property name="visible">True</property>
+                                <signal name="changed" handler="Load_Filename_Update_Text_Line" 
swapped="yes"/>
+                            </object>
+                            <packing>
+                                <property name="left-attach">1</property>
+                                <property name="top-attach">2</property>
+                                <property name="width">2</property>
+                            </packing>
+                        </child>
+                        <child>
+                            <object class="GtkSeparator" id="file_separator">
+                                <property name="orientation">horizontal</property>
+                                <property name="visible">True</property>
+                            </object>
+                            <packing>
+                                <property name="left-attach">0</property>
+                                <property name="top-attach">3</property>
+                                <property name="width">3</property>
+                            </packing>
+                        </child>
+                        <child>
+                            <object class="GtkCheckButton" id="file_scanner_check">
+                                <property name="label" translatable="yes">Run the current scanner for each 
file</property>
+                                <property name="tooltip-text" translatable="yes">Whether to run the 
currently selected scanner on filenames loaded from a text file</property>
                                 <property name="visible">True</property>
-                                <style>
-                                    <class name="inline-toolbar"/>
-                                </style>
-                                <child>
-                                    <object class="GtkToolButton" id="name_insert_blank">
-                                        <property name="icon-name">list-add</property>
-                                        <property name="tooltip-text" translatable="yes">Insert a blank line 
before the selected line</property>
-                                        <property name="visible">True</property>
-                                    </object>
-                                </child>
-                                <child>
-                                    <object class="GtkToolButton" id="name_remove">
-                                        <property name="icon-name">list-remove</property>
-                                        <property name="tooltip-text" translatable="yes">Delete the selected 
line</property>
-                                        <property name="visible">True</property>
-                                    </object>
-                                </child>
-                                <child>
-                                    <object class="GtkToolButton" id="name_remove_blank">
-                                        <property name="icon-name">edit-delete</property>
-                                        <property name="tooltip-text" translatable="yes">Delete all blank 
lines</property>
-                                        <property name="visible">True</property>
-                                    </object>
-                                </child>
-                                <child>
-                                    <object class="GtkToolButton" id="name_up">
-                                        <property name="icon-name">go-up</property>
-                                        <property name="tooltip-text" translatable="yes">Move the selected 
line up</property>
-                                        <property name="visible">True</property>
-                                    </object>
-                                </child>
-                                <child>
-                                    <object class="GtkToolButton" id="name_down">
-                                        <property name="icon-name">go-down</property>
-                                        <property name="tooltip-text" translatable="yes">Move the selected 
line down</property>
-                                        <property name="visible">True</property>
-                                    </object>
-                                </child>
-                                <child>
-                                    <object class="GtkToolButton" id="name_reload">
-                                        <property name="icon-name">view-refresh</property>
-                                        <property name="tooltip-text" translatable="yes">Reload</property>
-                                        <property name="visible">True</property>
-                                    </object>
-                                </child>
                             </object>
+                            <packing>
+                                <property name="left-attach">0</property>
+                                <property name="top-attach">4</property>
+                                <property name="width">3</property>
+                            </packing>
                         </child>
                     </object>
-                    <packing>
-                        <property name="resize">True</property>
-                        <property name="shrink">False</property>
-                    </packing>
                 </child>
             </object>
-            <packing>
-                <property name="left-attach">0</property>
-                <property name="top-attach">1</property>
-                <property name="width">3</property>
-            </packing>
-        </child>
-        <child>
-            <object class="GtkLabel" id="file_entry_label">
-                <property name="halign">end</property>
-                <property name="label" translatable="yes">Selected line:</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="GtkEntry" id="file_entry">
-                <property name="visible">True</property>
-            </object>
-            <packing>
-                <property name="left-attach">1</property>
-                <property name="top-attach">2</property>
-                <property name="width">2</property>
-            </packing>
-        </child>
-        <child>
-            <object class="GtkSeparator" id="file_separator">
-                <property name="orientation">horizontal</property>
-                <property name="visible">True</property>
-            </object>
-            <packing>
-                <property name="left-attach">0</property>
-                <property name="top-attach">3</property>
-                <property name="width">3</property>
-            </packing>
-        </child>
-        <child>
-            <object class="GtkCheckButton" id="file_scanner_check">
-                <property name="label" translatable="yes">Run the current scanner for each file</property>
-                <property name="tooltip-text" translatable="yes">Whether to run the currently selected 
scanner on filenames loaded from a text file</property>
-                <property name="visible">True</property>
-            </object>
-            <packing>
-                <property name="left-attach">0</property>
-                <property name="top-attach">4</property>
-                <property name="width">3</property>
-            </packing>
         </child>
-    </object>
+    </template>
 </interface>
 
diff --git a/src/load_files_dialog.c b/src/load_files_dialog.c
index 87d1942..a070d51 100644
--- a/src/load_files_dialog.c
+++ b/src/load_files_dialog.c
@@ -1,5 +1,5 @@
 /* EasyTAG - tag editor for audio files
- * Copyright (C) 2013,2014  David King <amigadave amigadave com>
+ * Copyright (C) 2013-2015  David King <amigadave amigadave com>
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License as published by the Free
@@ -36,21 +36,21 @@
 typedef struct
 {
     GtkWidget *file_chooser;
-    GtkWidget *load_file_content_view;
-    GtkListStore *load_file_content_model;
+    GtkWidget *file_load_button;
+    GtkWidget *file_content_view;
+    GtkListStore *file_content_model;
     GtkWidget *load_file_content_menu;
-    GtkWidget *load_file_name_view;
-    GtkListStore *load_file_name_model;
+    GtkWidget *file_name_view;
+    GtkListStore *file_name_model;
     GtkWidget *load_file_name_menu;
+    GtkWidget *file_scanner_check;
 
-    GtkWidget *selected_line_entry;
+    GtkWidget *file_entry;
 } EtLoadFilesDialogPrivate;
 
 
 G_DEFINE_TYPE_WITH_PRIVATE (EtLoadFilesDialog, et_load_files_dialog, GTK_TYPE_DIALOG)
 
-static const guint BOX_SPACING = 6;
-
 enum
 {
     LOAD_FILE_CONTENT_TEXT,
@@ -66,7 +66,7 @@ enum
 
 /*
  * Set the new filename of each file.
- * Associate lines from priv->load_file_content_view with priv->load_file_name_view
+ * Associate lines from priv->file_content_view with priv->file_name_view
  */
 static void
 Load_Filename_Set_Filenames (EtLoadFilesDialog *self)
@@ -85,13 +85,13 @@ Load_Filename_Set_Filenames (EtLoadFilesDialog *self)
 
     priv = et_load_files_dialog_get_instance_private (self);
 
-    if ( !ETCore->ETFileList || !priv->load_file_content_view || !priv->load_file_name_view)
+    if ( !ETCore->ETFileList || !priv->file_content_view || !priv->file_name_view)
         return;
 
     et_application_window_update_et_file_from_ui (ET_APPLICATION_WINDOW (MainWindow));
 
-    rowcount = MIN(gtk_tree_model_iter_n_children(GTK_TREE_MODEL(priv->load_file_name_model), NULL),
-                   gtk_tree_model_iter_n_children(GTK_TREE_MODEL(priv->load_file_content_model), NULL));
+    rowcount = MIN(gtk_tree_model_iter_n_children(GTK_TREE_MODEL(priv->file_name_model), NULL),
+                   gtk_tree_model_iter_n_children(GTK_TREE_MODEL(priv->file_content_model), NULL));
 
     for (row=0; row < rowcount; row++)
     {
@@ -100,14 +100,14 @@ Load_Filename_Set_Filenames (EtLoadFilesDialog *self)
         else
             gtk_tree_path_next(currentPath);
 
-        found = gtk_tree_model_get_iter(GTK_TREE_MODEL(priv->load_file_name_model), &iter_name, currentPath);
+        found = gtk_tree_model_get_iter(GTK_TREE_MODEL(priv->file_name_model), &iter_name, currentPath);
         if (found)
-            gtk_tree_model_get(GTK_TREE_MODEL(priv->load_file_name_model), &iter_name, 
+            gtk_tree_model_get(GTK_TREE_MODEL(priv->file_name_model), &iter_name, 
                                LOAD_FILE_NAME_POINTER, &ETFile, -1);
 
-        found = gtk_tree_model_get_iter(GTK_TREE_MODEL(priv->load_file_content_model), &iter_content, 
currentPath);
+        found = gtk_tree_model_get_iter(GTK_TREE_MODEL(priv->file_content_model), &iter_content, 
currentPath);
         if (found)
-            gtk_tree_model_get(GTK_TREE_MODEL(priv->load_file_content_model), &iter_content, 
+            gtk_tree_model_get(GTK_TREE_MODEL(priv->file_content_model), &iter_content, 
                                LOAD_FILE_CONTENT_TEXT, &list_text, -1);
 
         if (ETFile && !et_str_empty (list_text))
@@ -187,19 +187,23 @@ on_response (GtkDialog *dialog, gint response_id, gpointer user_data)
  * To enable/disable sensitivity of the button 'Load'
  */
 static void
-set_load_button_sensitivity (GtkWidget *button, GtkWidget *chooser)
+set_load_button_sensitivity (EtLoadFilesDialog *self,
+                             GtkWidget *chooser)
 {
+    EtLoadFilesDialogPrivate *priv;
     GFile *file;
     GFileInfo *info;
     GError *error = NULL;
 
-    g_return_if_fail (button != NULL && chooser != NULL);
+    g_return_if_fail (self != NULL && chooser != NULL);
+
+    priv = et_load_files_dialog_get_instance_private (self);
 
     file = gtk_file_chooser_get_file (GTK_FILE_CHOOSER (chooser));
 
     if (!file)
     {
-        gtk_widget_set_sensitive (GTK_WIDGET (button), FALSE);
+        gtk_widget_set_sensitive (priv->file_load_button, FALSE);
         return;
     }
 
@@ -209,11 +213,11 @@ set_load_button_sensitivity (GtkWidget *button, GtkWidget *chooser)
 
     if (info && G_FILE_TYPE_REGULAR == g_file_info_get_file_type (info))
     {
-        gtk_widget_set_sensitive (GTK_WIDGET (button), TRUE);
+        gtk_widget_set_sensitive (GTK_WIDGET (priv->file_load_button), TRUE);
     }
     else
     {
-        gtk_widget_set_sensitive (GTK_WIDGET (button), FALSE);
+        gtk_widget_set_sensitive (GTK_WIDGET (priv->file_load_button), FALSE);
 
         if (!info)
         {
@@ -228,7 +232,7 @@ set_load_button_sensitivity (GtkWidget *button, GtkWidget *chooser)
 }
 
 /*
- * Load content of the file into the priv->load_file_content_view list
+ * Load content of the file into the priv->file_content_view list
  */
 static void
 Load_File_Content (G_GNUC_UNUSED GtkButton *button, gpointer user_data)
@@ -270,7 +274,7 @@ Load_File_Content (G_GNUC_UNUSED GtkButton *button, gpointer user_data)
     /* TODO: Find a safer alternative to _ANY. */
     g_data_input_stream_set_newline_type (data,
                                           G_DATA_STREAM_NEWLINE_TYPE_ANY);
-    gtk_list_store_clear (priv->load_file_content_model);
+    gtk_list_store_clear (priv->file_content_model);
 
     while ((line = g_data_input_stream_read_line (data, &size_read, NULL,
                                                   &error)))
@@ -279,7 +283,7 @@ Load_File_Content (G_GNUC_UNUSED GtkButton *button, gpointer user_data)
         valid = Try_To_Validate_Utf8_String (line);
         g_free (line);
 
-        gtk_list_store_insert_with_values (priv->load_file_content_model, NULL,
+        gtk_list_store_insert_with_values (priv->file_content_model, NULL,
                                            G_MAXINT, LOAD_FILE_CONTENT_TEXT,
                                            valid, -1);
         g_free (valid);
@@ -326,6 +330,26 @@ Load_Filename_List_Delete_Line (GtkWidget *treeview)
         gtk_tree_selection_select_iter(selection, &itercopy);
 }
 
+static void
+on_name_remove_clicked (EtLoadFilesDialog *self,
+                        GtkToolButton *button)
+{
+    EtLoadFilesDialogPrivate *priv;
+
+    priv = et_load_files_dialog_get_instance_private (self);
+    Load_Filename_List_Delete_Line (priv->file_name_view);
+}
+
+static void
+on_content_remove_clicked (EtLoadFilesDialog *self,
+                           GtkToolButton *button)
+{
+    EtLoadFilesDialogPrivate *priv;
+
+    priv = et_load_files_dialog_get_instance_private (self);
+    Load_Filename_List_Delete_Line (priv->file_content_view);
+}
+
 /*
  * Insert a blank line before the selected line in the treeview passed as parameter
  */
@@ -348,6 +372,26 @@ Load_Filename_List_Insert_Blank_Line (GtkWidget *treeview)
     gtk_list_store_insert_before(GTK_LIST_STORE(model), temp, &selectedIter);
 }
 
+static void
+on_name_insert_blank_clicked (EtLoadFilesDialog *self,
+                              GtkToolButton *button)
+{
+    EtLoadFilesDialogPrivate *priv;
+
+    priv = et_load_files_dialog_get_instance_private (self);
+    Load_Filename_List_Insert_Blank_Line (priv->file_name_view);
+}
+
+static void
+on_content_insert_blank_clicked (EtLoadFilesDialog *self,
+                                 GtkToolButton *button)
+{
+    EtLoadFilesDialogPrivate *priv;
+
+    priv = et_load_files_dialog_get_instance_private (self);
+    Load_Filename_List_Insert_Blank_Line (priv->file_content_view);
+}
+
 static gboolean
 Load_Filename_List_Key_Press (GtkWidget *treeview, GdkEvent *event)
 {
@@ -411,6 +455,26 @@ Load_Filename_List_Delete_All_Blank_Lines (GtkWidget *treeview)
     }
 }
 
+static void
+on_content_delete_all_blank_clicked (EtLoadFilesDialog *self,
+                                     GtkToolButton *button)
+{
+    EtLoadFilesDialogPrivate *priv;
+
+    priv = et_load_files_dialog_get_instance_private (self);
+    Load_Filename_List_Delete_All_Blank_Lines (priv->file_content_view);
+}
+
+static void
+on_name_delete_all_blank_clicked (EtLoadFilesDialog *self,
+                                  GtkToolButton *button)
+{
+    EtLoadFilesDialogPrivate *priv;
+
+    priv = et_load_files_dialog_get_instance_private (self);
+    Load_Filename_List_Delete_All_Blank_Lines (priv->file_name_view);
+}
+
 /*
  * Move up the selected line in the treeview passed as parameter
  */
@@ -455,6 +519,26 @@ Load_Filename_List_Move_Up (GtkWidget *treeview)
     g_list_free_full (selectedRows, (GDestroyNotify)gtk_tree_path_free);
 }
 
+static void
+on_content_move_up_clicked (EtLoadFilesDialog *self,
+                            GtkToolButton *button)
+{
+    EtLoadFilesDialogPrivate *priv;
+
+    priv = et_load_files_dialog_get_instance_private (self);
+    Load_Filename_List_Move_Up (priv->file_content_view);
+}
+
+static void
+on_name_move_up_clicked (EtLoadFilesDialog *self,
+                         GtkToolButton *button)
+{
+    EtLoadFilesDialogPrivate *priv;
+
+    priv = et_load_files_dialog_get_instance_private (self);
+    Load_Filename_List_Move_Up (priv->file_name_view);
+}
+
 /*
  * Move down the selected line in the treeview passed as parameter
  */
@@ -496,6 +580,26 @@ Load_Filename_List_Move_Down (GtkWidget *treeview)
     g_list_free_full (selectedRows, (GDestroyNotify)gtk_tree_path_free);
 }
 
+static void
+on_content_move_down_clicked (EtLoadFilesDialog *self,
+                              GtkToolButton *button)
+{
+    EtLoadFilesDialogPrivate *priv;
+
+    priv = et_load_files_dialog_get_instance_private (self);
+    Load_Filename_List_Move_Down (priv->file_content_view);
+}
+
+static void
+on_name_move_down_clicked (EtLoadFilesDialog *self,
+                           GtkToolButton *button)
+{
+    EtLoadFilesDialogPrivate *priv;
+
+    priv = et_load_files_dialog_get_instance_private (self);
+    Load_Filename_List_Move_Down (priv->file_name_view);
+}
+
 /*
  * Load the names of the current list of files
  */
@@ -510,7 +614,7 @@ Load_File_List (EtLoadFilesDialog *self)
 
     priv = et_load_files_dialog_get_instance_private (self);
 
-    gtk_list_store_clear(priv->load_file_name_model);
+    gtk_list_store_clear(priv->file_name_model);
 
     for (l = ETCore->ETFileList; l != NULL; l = g_list_next (l))
     {
@@ -519,7 +623,7 @@ Load_File_List (EtLoadFilesDialog *self)
         // Remove the extension ('filename' must be allocated to don't affect the initial value)
         if ((pos=strrchr(filename_utf8,'.'))!=NULL)
             *pos = 0;
-        gtk_list_store_insert_with_values (priv->load_file_name_model, NULL,
+        gtk_list_store_insert_with_values (priv->file_name_model, NULL,
                                            G_MAXINT, LOAD_FILE_NAME_TEXT,
                                            filename_utf8,
                                            LOAD_FILE_NAME_POINTER, l->data,
@@ -529,17 +633,17 @@ Load_File_List (EtLoadFilesDialog *self)
 }
 
 static void
-on_load_file_name_view_reload_clicked (G_GNUC_UNUSED GtkButton *button,
-                                       gpointer user_data)
+on_load_file_name_view_reload_clicked (EtLoadFilesDialog *self,
+                                       G_GNUC_UNUSED GtkButton *button)
 {
-    Load_File_List (ET_LOAD_FILES_DIALOG (user_data));
+    Load_File_List (self);
 }
 
 static void
-on_load_file_content_view_reload_clicked (G_GNUC_UNUSED GtkButton *button,
-                                          gpointer user_data)
+on_load_file_content_view_reload_clicked (EtLoadFilesDialog *self,
+                                          G_GNUC_UNUSED GtkButton *button)
 {
-    Load_File_Content (NULL, ET_LOAD_FILES_DIALOG (user_data));
+    Load_File_Content (NULL, self);
 }
 
 /*
@@ -622,7 +726,7 @@ create_load_file_content_view_popup (EtLoadFilesDialog *self)
     GtkWidget *MenuItem;
 
     priv = et_load_files_dialog_get_instance_private (self);
-    list = priv->load_file_name_view;
+    list = priv->file_name_view;
 
     BrowserPopupMenu = gtk_menu_new();
     gtk_menu_attach_to_widget (GTK_MENU (BrowserPopupMenu), list, NULL);
@@ -725,7 +829,7 @@ create_load_file_name_view_popup (EtLoadFilesDialog *self)
     GtkWidget *MenuItem;
 
     priv = et_load_files_dialog_get_instance_private (self);
-    list = priv->load_file_content_view;
+    list = priv->file_content_view;
 
     BrowserPopupMenu = gtk_menu_new();
     gtk_menu_attach_to_widget (GTK_MENU (BrowserPopupMenu), list, NULL);
@@ -823,16 +927,20 @@ on_content_view_button_press_event (GtkWidget *treeview,
  * Update the text of the selected line into the list, with the text entered into the entry
  */
 static void
-Load_Filename_Update_Text_Line(GtkWidget *entry, GtkWidget *list)
+Load_Filename_Update_Text_Line (EtLoadFilesDialog *self,
+                                GtkWidget *entry)
 {
+    EtLoadFilesDialogPrivate *priv;
     GtkTreeIter SelectedRow;
     GtkTreeSelection *selection;
     GtkTreeModel *model;
     gboolean hasSelectedRows;
 
-    g_return_if_fail (entry != NULL || list != NULL);
+    g_return_if_fail (self != NULL && entry != NULL);
 
-    selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(list));
+    priv = et_load_files_dialog_get_instance_private (self);
+
+    selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (priv->file_content_view));
     hasSelectedRows = gtk_tree_selection_get_selected(selection, &model, &SelectedRow);
     if (hasSelectedRows)
     {
@@ -845,7 +953,8 @@ Load_Filename_Update_Text_Line(GtkWidget *entry, GtkWidget *list)
  * Set the text of the selected line of the list into the entry
  */
 static void
-Load_Filename_Edit_Text_Line (GtkTreeSelection *selection, gpointer user_data)
+Load_Filename_Edit_Text_Line (EtLoadFilesDialog *self,
+                              GtkTreeSelection *selection)
 {
     EtLoadFilesDialogPrivate *priv;
     gchar *text;
@@ -853,14 +962,14 @@ Load_Filename_Edit_Text_Line (GtkTreeSelection *selection, gpointer user_data)
     GtkEntry *entry;
     gulong handler;
 
-    priv = et_load_files_dialog_get_instance_private (ET_LOAD_FILES_DIALOG (user_data));
+    priv = et_load_files_dialog_get_instance_private (self);
 
-    entry = GTK_ENTRY (priv->selected_line_entry);
+    entry = GTK_ENTRY (priv->file_entry);
 
     if (gtk_tree_selection_get_selected(selection, NULL, &selectedIter) != TRUE)
         return;
 
-    gtk_tree_model_get(GTK_TREE_MODEL(priv->load_file_content_model), &selectedIter, LOAD_FILE_NAME_TEXT, 
&text, -1);
+    gtk_tree_model_get(GTK_TREE_MODEL(priv->file_content_model), &selectedIter, LOAD_FILE_NAME_TEXT, &text, 
-1);
 
     handler = g_signal_handler_find(entry, G_SIGNAL_MATCH_FUNC, 0, 0, NULL, Load_Filename_Update_Text_Line, 
NULL);
     g_signal_handler_block(entry, handler);
@@ -881,193 +990,43 @@ static void
 create_load_files_dialog (EtLoadFilesDialog *self)
 {
     EtLoadFilesDialogPrivate *priv;
-    GtkWidget *content_area;
-    GtkBuilder *builder;
-    GError *error = NULL;
-    GtkWidget *grid;
-    GtkWidget *button;
-    GtkWidget *load_file_run_scanner;
     const gchar *path;
 
     priv = et_load_files_dialog_get_instance_private (self);
 
-    gtk_window_set_title (GTK_WINDOW (self),
-                          _("Load Filenames From a Text File"));
-    gtk_window_set_destroy_with_parent (GTK_WINDOW (self), TRUE);
     gtk_dialog_add_buttons (GTK_DIALOG (self), _("_Close"),
                             GTK_RESPONSE_CANCEL, _("_Apply"),
                             GTK_RESPONSE_APPLY, NULL);
     gtk_dialog_set_default_response (GTK_DIALOG (self), GTK_RESPONSE_APPLY);
-    g_signal_connect (self, "response", G_CALLBACK (on_response), NULL);
-    g_signal_connect (self, "delete-event",
-                      G_CALLBACK (gtk_widget_hide_on_delete), NULL);
-
-    content_area = gtk_dialog_get_content_area (GTK_DIALOG (self));
-    gtk_container_set_border_width (GTK_CONTAINER (self), BOX_SPACING);
-    gtk_box_set_spacing (GTK_BOX (content_area), BOX_SPACING);
-
-    builder = gtk_builder_new ();
-    gtk_builder_add_from_resource (builder,
-                                   "/org/gnome/EasyTAG/load_files_dialog.ui",
-                                   &error);
 
-    if (error != NULL)
-    {
-        g_error ("Unable to get scanner page from resource: %s",
-                 error->message);
-    }
-
-    grid = GTK_WIDGET (gtk_builder_get_object (builder, "file_grid"));
-    gtk_container_add (GTK_CONTAINER (content_area), grid);
-
-    /* File to load. */
-    priv->file_chooser = GTK_WIDGET (gtk_builder_get_object (builder,
-                                                             "file_chooser"));
     /* Initial value. */
     if ((path = et_application_window_get_current_path (ET_APPLICATION_WINDOW (MainWindow))) != NULL)
     {
         gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER (priv->file_chooser),
                                              path);
     }
-    // the 'changed' signal is attached below to enable/disable the button to load
-    /* Button 'load'
-     * the signal attached to this button, to load the file, is placed after
-     * the priv->load_file_content_view definition. */
-    button = GTK_WIDGET (gtk_builder_get_object (builder, "file_load_button"));
-    g_signal_connect_swapped (priv->file_chooser, "file-set",
-                              G_CALLBACK (set_load_button_sensitivity),
-                              button);
-
-    /* Content of the loaded file. */
-    priv->load_file_content_model = GTK_LIST_STORE (gtk_builder_get_object (builder,
-                                                                            "file_content_model"));
-    priv->load_file_content_view = GTK_WIDGET (gtk_builder_get_object (builder,
-                                                                       "file_content_view"));
-    
-    /* Signal to automatically load the file. */
-    g_signal_connect (button, "clicked", G_CALLBACK (Load_File_Content), self);
-    g_signal_connect (priv->load_file_content_view, "key-press-event",
-                      G_CALLBACK (Load_Filename_List_Key_Press), NULL);
-
-    /* Commands (like the popup menu). */
-    button = GTK_WIDGET (gtk_builder_get_object (builder,
-                                                 "content_insert_blank"));
-    g_signal_connect_swapped (button, "clicked",
-                              G_CALLBACK (Load_Filename_List_Insert_Blank_Line),
-                              G_OBJECT (priv->load_file_content_view));
-
-    button = GTK_WIDGET (gtk_builder_get_object (builder, "content_remove"));
-    g_signal_connect_swapped (button, "clicked",
-                              G_CALLBACK (Load_Filename_List_Delete_Line),
-                              G_OBJECT (priv->load_file_content_view));
-    
-    button = GTK_WIDGET (gtk_builder_get_object (builder,
-                                                 "content_remove_blank"));
-    g_signal_connect_swapped (button, "clicked",
-                              G_CALLBACK (Load_Filename_List_Delete_All_Blank_Lines),
-                              G_OBJECT (priv->load_file_content_view));
     
-    button = GTK_WIDGET (gtk_builder_get_object (builder, "content_up"));
-    g_signal_connect_swapped (button, "clicked",
-                              G_CALLBACK (Load_Filename_List_Move_Up),
-                              G_OBJECT (priv->load_file_content_view));
-
-    button = GTK_WIDGET (gtk_builder_get_object (builder, "content_down"));
-    g_signal_connect_swapped (button, "clicked",
-                              G_CALLBACK (Load_Filename_List_Move_Down),
-                              G_OBJECT (priv->load_file_content_view));
-
-    button = GTK_WIDGET (gtk_builder_get_object (builder, "content_reload"));
-    g_signal_connect (button, "clicked",
-                      G_CALLBACK (on_load_file_content_view_reload_clicked),
-                      self);
-    
-    /* List of current filenames. */
-    priv->load_file_name_model = GTK_LIST_STORE (gtk_builder_get_object (builder,
-                                                                         "file_name_model"));
-    priv->load_file_name_view = GTK_WIDGET (gtk_builder_get_object (builder,
-                                                                    "file_name_view"));
-    
-    g_signal_connect (priv->load_file_name_view, "key-press-event",
-                      G_CALLBACK (Load_Filename_List_Key_Press), NULL);
-
     /* Signals to 'select' the same row into the other list (to show the
      * corresponding filenames). */
-    g_signal_connect_swapped (gtk_tree_view_get_selection (GTK_TREE_VIEW (priv->load_file_content_view)),
+    g_signal_connect_swapped (gtk_tree_view_get_selection (GTK_TREE_VIEW (priv->file_content_view)),
                               "changed",
                               G_CALLBACK (Load_Filename_Select_Row_In_Other_List),
-                              priv->load_file_name_view);
-    g_signal_connect_swapped (gtk_tree_view_get_selection (GTK_TREE_VIEW (priv->load_file_name_view)),
+                              priv->file_name_view);
+    g_signal_connect_swapped (gtk_tree_view_get_selection (GTK_TREE_VIEW (priv->file_name_view)),
                               "changed",
                               G_CALLBACK (Load_Filename_Select_Row_In_Other_List),
-                              priv->load_file_content_view);
-
-    /* Commands (like the popup menu). */
-    button = GTK_WIDGET (gtk_builder_get_object (builder,
-                                                 "name_insert_blank"));
-    g_signal_connect_swapped (button, "clicked",
-                              G_CALLBACK (Load_Filename_List_Insert_Blank_Line),
-                              priv->load_file_name_view);
-
-    button = GTK_WIDGET (gtk_builder_get_object (builder, "name_remove"));
-    g_signal_connect_swapped (button, "clicked",
-                              G_CALLBACK (Load_Filename_List_Delete_Line),
-                              priv->load_file_name_view);
-
-    button = GTK_WIDGET (gtk_builder_get_object (builder,
-                                                 "name_remove_blank"));
-    g_signal_connect_swapped (button, "clicked",
-                              G_CALLBACK (Load_Filename_List_Delete_All_Blank_Lines),
-                              priv->load_file_name_view);
-    
-    button = GTK_WIDGET (gtk_builder_get_object (builder, "name_up"));
-    g_signal_connect_swapped (button, "clicked",
-                              G_CALLBACK (Load_Filename_List_Move_Up),
-                              priv->load_file_name_view);
-
-    button = GTK_WIDGET (gtk_builder_get_object (builder, "name_down"));
-    g_signal_connect_swapped (button, "clicked",
-                              G_CALLBACK (Load_Filename_List_Move_Down),
-                              priv->load_file_name_view);
-
-    button = GTK_WIDGET (gtk_builder_get_object (builder, "name_reload"));
-    g_signal_connect (button, "clicked",
-                      G_CALLBACK (on_load_file_name_view_reload_clicked),
-                      self);
-    
+                              priv->file_content_view);
+
     /* Load the list of files in the list widget. */
     Load_File_List (self);
 
     /* Create popup menus. */
     create_load_file_content_view_popup (self);
     create_load_file_name_view_popup (self);
-    g_signal_connect (priv->load_file_content_view, "button-press-event",
-                      G_CALLBACK (on_content_view_button_press_event), self);
-    g_signal_connect (priv->load_file_content_view, "popup-menu",
-                      G_CALLBACK (on_content_view_popup_menu), self);
-    g_signal_connect (priv->load_file_name_view, "button-press-event",
-                      G_CALLBACK (on_name_view_button_press_event), self);
-    g_signal_connect (priv->load_file_name_view, "popup-menu",
-                      G_CALLBACK (on_name_view_popup_menu), self);
-
-    /* Entry to edit a line in the list. */
-    priv->selected_line_entry = GTK_WIDGET (gtk_builder_get_object (builder,
-                                                                    "file_entry"));
-    g_signal_connect (priv->selected_line_entry, "changed",
-                      G_CALLBACK (Load_Filename_Update_Text_Line),
-                      G_OBJECT (priv->load_file_content_view));
-
-    /* Signal to load the line text in the editing entry. */
-    g_signal_connect (gtk_tree_view_get_selection (GTK_TREE_VIEW (priv->load_file_content_view)),
-                      "changed", G_CALLBACK (Load_Filename_Edit_Text_Line),
-                      self);
 
-    load_file_run_scanner = GTK_WIDGET (gtk_builder_get_object (builder,
-                                                                "file_scanner_check"));
     g_settings_bind (MainSettings, "load-filenames-run-scanner",
-                     load_file_run_scanner, "active", G_SETTINGS_BIND_DEFAULT);
-
-    g_object_unref (builder);
+                     priv->file_scanner_check, "active",
+                     G_SETTINGS_BIND_DEFAULT);
 
     /* To initialize load button sensitivity. */
     g_signal_emit_by_name (G_OBJECT (priv->file_chooser), "file-set");
@@ -1076,12 +1035,85 @@ create_load_files_dialog (EtLoadFilesDialog *self)
 static void
 et_load_files_dialog_init (EtLoadFilesDialog *self)
 {
+    gtk_widget_init_template (GTK_WIDGET (self));
     create_load_files_dialog (self);
 }
 
 static void
 et_load_files_dialog_class_init (EtLoadFilesDialogClass *klass)
 {
+    GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass);
+
+    gtk_widget_class_set_template_from_resource (widget_class,
+                                                 "/org/gnome/EasyTAG/load_files_dialog.ui");
+    gtk_widget_class_bind_template_child_private (widget_class,
+                                                  EtLoadFilesDialog,
+                                                  file_chooser);
+    gtk_widget_class_bind_template_child_private (widget_class,
+                                                  EtLoadFilesDialog,
+                                                  file_load_button);
+    gtk_widget_class_bind_template_child_private (widget_class,
+                                                  EtLoadFilesDialog,
+                                                  file_content_view);
+    gtk_widget_class_bind_template_child_private (widget_class,
+                                                  EtLoadFilesDialog,
+                                                  file_content_model);
+    gtk_widget_class_bind_template_child_private (widget_class,
+                                                  EtLoadFilesDialog,
+                                                  file_name_view);
+    gtk_widget_class_bind_template_child_private (widget_class,
+                                                  EtLoadFilesDialog,
+                                                  file_name_model);
+    gtk_widget_class_bind_template_child_private (widget_class,
+                                                  EtLoadFilesDialog,
+                                                  file_scanner_check);
+    gtk_widget_class_bind_template_child_private (widget_class,
+                                                  EtLoadFilesDialog,
+                                                  file_entry);
+    gtk_widget_class_bind_template_callback (widget_class,
+                                             on_content_view_button_press_event);
+    gtk_widget_class_bind_template_callback (widget_class,
+                                             on_content_view_popup_menu);
+    gtk_widget_class_bind_template_callback (widget_class,
+                                             on_load_file_content_view_reload_clicked);
+    gtk_widget_class_bind_template_callback (widget_class,
+                                             on_load_file_name_view_reload_clicked);
+    gtk_widget_class_bind_template_callback (widget_class,
+                                             on_name_view_button_press_event);
+    gtk_widget_class_bind_template_callback (widget_class,
+                                             on_name_view_popup_menu);
+    gtk_widget_class_bind_template_callback (widget_class, on_response);
+    gtk_widget_class_bind_template_callback (widget_class,
+                                             set_load_button_sensitivity);
+    gtk_widget_class_bind_template_callback (widget_class, Load_File_Content);
+    gtk_widget_class_bind_template_callback (widget_class,
+                                             Load_Filename_Edit_Text_Line);
+    gtk_widget_class_bind_template_callback (widget_class,
+                                             on_content_insert_blank_clicked);
+    gtk_widget_class_bind_template_callback (widget_class,
+                                             on_name_insert_blank_clicked);
+    gtk_widget_class_bind_template_callback (widget_class,
+                                             on_content_delete_all_blank_clicked);
+    gtk_widget_class_bind_template_callback (widget_class,
+                                             on_name_delete_all_blank_clicked);
+    gtk_widget_class_bind_template_callback (widget_class,
+                                             on_content_remove_clicked);
+    gtk_widget_class_bind_template_callback (widget_class,
+                                             on_name_remove_clicked);
+    gtk_widget_class_bind_template_callback (widget_class,
+                                             on_content_move_up_clicked);
+    gtk_widget_class_bind_template_callback (widget_class,
+                                             on_name_move_up_clicked);
+    gtk_widget_class_bind_template_callback (widget_class,
+                                             on_content_move_down_clicked);
+    gtk_widget_class_bind_template_callback (widget_class,
+                                             on_name_move_down_clicked);
+    gtk_widget_class_bind_template_callback (widget_class,
+                                             Load_Filename_List_Move_Down);
+    gtk_widget_class_bind_template_callback (widget_class,
+                                             Load_Filename_List_Key_Press);
+    gtk_widget_class_bind_template_callback (widget_class,
+                                             Load_Filename_Update_Text_Line);
 }
 
 /*


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