[tracker/tracker-preferences-xdg-dirs] tracker-preferences: Use one list for single/recursive locations with a toggle



commit 9ece5b422d38991e9b334301d468e3d0f388907b
Author: Martyn Russell <martyn lanedo com>
Date:   Thu Sep 15 13:54:44 2011 +0100

    tracker-preferences: Use one list for single/recursive locations with a toggle
    
    Much cleaner approach now, this is not fully working yet, still some more bits
    and pieces to clean up

 src/tracker-preferences/tracker-preferences.ui   | 1031 ++++++++--------------
 src/tracker-preferences/tracker-preferences.vala |  303 ++++---
 2 files changed, 515 insertions(+), 819 deletions(-)
---
diff --git a/src/tracker-preferences/tracker-preferences.ui b/src/tracker-preferences/tracker-preferences.ui
index 2972633..36ab666 100644
--- a/src/tracker-preferences/tracker-preferences.ui
+++ b/src/tracker-preferences/tracker-preferences.ui
@@ -25,13 +25,13 @@
     <property name="step_increment">1</property>
     <property name="page_increment">2</property>
   </object>
-  <object class="GtkListStore" id="liststore_gnored_directories_with_content">
+  <object class="GtkListStore" id="liststore_ignored_directories">
     <columns>
       <!-- column-name Directory -->
       <column type="gchararray"/>
     </columns>
   </object>
-  <object class="GtkListStore" id="liststore_ignored_directories">
+  <object class="GtkListStore" id="liststore_ignored_directories_with_content">
     <columns>
       <!-- column-name Directory -->
       <column type="gchararray"/>
@@ -43,16 +43,12 @@
       <column type="gchararray"/>
     </columns>
   </object>
-  <object class="GtkListStore" id="liststore_index_recursively">
-    <columns>
-      <!-- column-name Directory -->
-      <column type="gchararray"/>
-    </columns>
-  </object>
-  <object class="GtkListStore" id="liststore_index_single">
+  <object class="GtkListStore" id="liststore_index">
     <columns>
       <!-- column-name Directory -->
       <column type="gchararray"/>
+      <!-- column-name Recurse -->
+      <column type="gboolean"/>
     </columns>
   </object>
   <object class="GtkDialog" id="tracker-preferences">
@@ -378,7 +374,7 @@
                                 </child>
                               </object>
                               <packing>
-                                <property name="expand">True</property>
+                                <property name="expand">False</property>
                                 <property name="fill">True</property>
                                 <property name="position">5</property>
                               </packing>
@@ -414,262 +410,48 @@
                       <object class="GtkAlignment" id="alignment7">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
-                        <property name="top_padding">2</property>
+                        <property name="top_padding">6</property>
                         <property name="left_padding">12</property>
                         <child>
-                          <object class="GtkVBox" id="vbox_general1">
+                          <object class="GtkVBox" id="vbox11">
                             <property name="visible">True</property>
                             <property name="can_focus">False</property>
+                            <property name="spacing">18</property>
                             <child>
-                              <object class="GtkVBox" id="vbox11">
+                              <object class="GtkVBox" id="vbox13">
                                 <property name="visible">True</property>
                                 <property name="can_focus">False</property>
-                                <property name="spacing">18</property>
                                 <child>
-                                  <object class="GtkVBox" id="vbox13">
+                                  <object class="GtkLabel" id="label_disk_space_limit">
                                     <property name="visible">True</property>
                                     <property name="can_focus">False</property>
-                                    <child>
-                                      <object class="GtkLabel" id="label_disk_space_limit">
-                                        <property name="visible">True</property>
-                                        <property name="can_focus">False</property>
-                                        <property name="xalign">0</property>
-                                        <property name="yalign">0</property>
-                                        <property name="ypad">4</property>
-                                        <property name="label" translatable="yes">Stop indexing when _disk space is below:</property>
-                                        <property name="use_underline">True</property>
-                                      </object>
-                                      <packing>
-                                        <property name="expand">False</property>
-                                        <property name="fill">True</property>
-                                        <property name="position">0</property>
-                                      </packing>
-                                    </child>
-                                    <child>
-                                      <object class="GtkHScale" id="hscale_disk_space_limit">
-                                        <property name="visible">True</property>
-                                        <property name="can_focus">True</property>
-                                        <property name="adjustment">adjustment_disk_space_limit</property>
-                                        <property name="round_digits">0</property>
-                                        <property name="digits">0</property>
-                                        <signal name="format-value" handler="tracker_preferences_hscale_disk_space_limit_format_value_cb" swapped="no"/>
-                                      </object>
-                                      <packing>
-                                        <property name="expand">True</property>
-                                        <property name="fill">True</property>
-                                        <property name="position">1</property>
-                                      </packing>
-                                    </child>
+                                    <property name="xalign">0</property>
+                                    <property name="yalign">0</property>
+                                    <property name="ypad">4</property>
+                                    <property name="label" translatable="yes">Stop indexing when _disk space is below:</property>
+                                    <property name="use_underline">True</property>
                                   </object>
                                   <packing>
-                                    <property name="expand">True</property>
+                                    <property name="expand">False</property>
                                     <property name="fill">True</property>
                                     <property name="position">0</property>
                                   </packing>
                                 </child>
                                 <child>
-                                  <object class="GtkVBox" id="vbox12">
+                                  <object class="GtkHScale" id="hscale_disk_space_limit">
                                     <property name="visible">True</property>
-                                    <property name="can_focus">False</property>
-                                    <child>
-                                      <object class="GtkLabel" id="label_throttle">
-                                        <property name="visible">True</property>
-                                        <property name="can_focus">False</property>
-                                        <property name="xalign">0</property>
-                                        <property name="yalign">0</property>
-                                        <property name="ypad">4</property>
-                                        <property name="label" translatable="yes">Indexing s_peed (faster consumes more resources):</property>
-                                        <property name="use_underline">True</property>
-                                        <property name="mnemonic_widget">hscale_throttle</property>
-                                      </object>
-                                      <packing>
-                                        <property name="expand">False</property>
-                                        <property name="fill">True</property>
-                                        <property name="position">0</property>
-                                      </packing>
-                                    </child>
-                                    <child>
-                                      <object class="GtkTable" id="table_throttle">
-                                        <property name="visible">True</property>
-                                        <property name="can_focus">False</property>
-                                        <property name="n_rows">2</property>
-                                        <property name="n_columns">2</property>
-                                        <property name="column_spacing">12</property>
-                                        <property name="row_spacing">4</property>
-                                        <child>
-                                          <object class="GtkLabel" id="label_slower">
-                                            <property name="visible">True</property>
-                                            <property name="can_focus">False</property>
-                                            <property name="xalign">1</property>
-                                            <property name="label" translatable="yes">Faster</property>
-                                            <property name="justify">right</property>
-                                          </object>
-                                          <packing>
-                                            <property name="left_attach">1</property>
-                                            <property name="right_attach">2</property>
-                                            <property name="top_attach">1</property>
-                                            <property name="bottom_attach">2</property>
-                                            <property name="y_options"></property>
-                                          </packing>
-                                        </child>
-                                        <child>
-                                          <object class="GtkLabel" id="label_faster">
-                                            <property name="visible">True</property>
-                                            <property name="can_focus">False</property>
-                                            <property name="xalign">0</property>
-                                            <property name="label" translatable="yes">Slower</property>
-                                          </object>
-                                          <packing>
-                                            <property name="top_attach">1</property>
-                                            <property name="bottom_attach">2</property>
-                                            <property name="y_options"></property>
-                                          </packing>
-                                        </child>
-                                        <child>
-                                          <object class="GtkHScale" id="hscale_throttle">
-                                            <property name="visible">True</property>
-                                            <property name="can_focus">True</property>
-                                            <property name="adjustment">adjustment_throttle</property>
-                                            <property name="inverted">True</property>
-                                            <property name="digits">0</property>
-                                            <property name="draw_value">False</property>
-                                            <signal name="format-value" handler="tracker_preferences_hscale_throttle_format_value_cb" swapped="no"/>
-                                          </object>
-                                          <packing>
-                                            <property name="right_attach">2</property>
-                                          </packing>
-                                        </child>
-                                      </object>
-                                      <packing>
-                                        <property name="expand">True</property>
-                                        <property name="fill">True</property>
-                                        <property name="position">1</property>
-                                      </packing>
-                                    </child>
+                                    <property name="can_focus">True</property>
+                                    <property name="adjustment">adjustment_disk_space_limit</property>
+                                    <property name="round_digits">0</property>
+                                    <property name="digits">0</property>
+                                    <signal name="format-value" handler="tracker_preferences_hscale_disk_space_limit_format_value_cb" swapped="no"/>
                                   </object>
                                   <packing>
-                                    <property name="expand">True</property>
+                                    <property name="expand">False</property>
                                     <property name="fill">True</property>
                                     <property name="position">1</property>
                                   </packing>
                                 </child>
-                                <child>
-                                  <object class="GtkVBox" id="vbox9">
-                                    <property name="visible">True</property>
-                                    <property name="can_focus">False</property>
-                                    <child>
-                                      <object class="GtkLabel" id="label_device_drop_threshold1">
-                                        <property name="visible">True</property>
-                                        <property name="can_focus">False</property>
-                                        <property name="xalign">0</property>
-                                        <property name="yalign">0</property>
-                                        <property name="xpad">3</property>
-                                        <property name="ypad">4</property>
-                                        <property name="label" translatable="yes">Days before deleting removable devices / files since last mounted:</property>
-                                        <property name="use_underline">True</property>
-                                        <property name="mnemonic_widget">hscale_drop_device_threshold</property>
-                                      </object>
-                                      <packing>
-                                        <property name="expand">False</property>
-                                        <property name="fill">True</property>
-                                        <property name="position">0</property>
-                                      </packing>
-                                    </child>
-                                    <child>
-                                      <object class="GtkHScale" id="hscale_drop_device_threshold">
-                                        <property name="visible">True</property>
-                                        <property name="can_focus">True</property>
-                                        <property name="adjustment">adjustment_drop_device_threshold</property>
-                                        <property name="round_digits">0</property>
-                                        <property name="digits">0</property>
-                                        <signal name="format-value" handler="tracker_preferences_hscale_drop_device_threshold_format_value_cb" swapped="no"/>
-                                      </object>
-                                      <packing>
-                                        <property name="expand">True</property>
-                                        <property name="fill">True</property>
-                                        <property name="position">1</property>
-                                      </packing>
-                                    </child>
-                                  </object>
-                                  <packing>
-                                    <property name="expand">True</property>
-                                    <property name="fill">True</property>
-                                    <property name="position">2</property>
-                                  </packing>
-                                </child>
-                              </object>
-                              <packing>
-                                <property name="expand">True</property>
-                                <property name="fill">True</property>
-                                <property name="position">0</property>
-                              </packing>
-                            </child>
-                          </object>
-                        </child>
-                      </object>
-                    </child>
-                    <child type="label">
-                      <object class="GtkLabel" id="label">
-                        <property name="visible">True</property>
-                        <property name="can_focus">False</property>
-                        <property name="label" translatable="yes">Limitations</property>
-                        <attributes>
-                          <attribute name="weight" value="bold"/>
-                        </attributes>
-                      </object>
-                    </child>
-                  </object>
-                  <packing>
-                    <property name="expand">False</property>
-                    <property name="fill">True</property>
-                    <property name="position">1</property>
-                  </packing>
-                </child>
-              </object>
-              <packing>
-                <property name="position">1</property>
-              </packing>
-            </child>
-            <child type="tab">
-              <object class="GtkLabel" id="label12">
-                <property name="visible">True</property>
-                <property name="can_focus">False</property>
-                <property name="label" translatable="yes">Indexing</property>
-              </object>
-              <packing>
-                <property name="position">1</property>
-                <property name="tab_fill">False</property>
-              </packing>
-            </child>
-            <child>
-              <object class="GtkVBox" id="vbox2">
-                <property name="visible">True</property>
-                <property name="can_focus">False</property>
-                <property name="border_width">12</property>
-                <property name="spacing">18</property>
-                <child>
-                  <object class="GtkFrame" id="frame_index_recursive_directories">
-                    <property name="visible">True</property>
-                    <property name="can_focus">False</property>
-                    <property name="label_xalign">0</property>
-                    <property name="shadow_type">none</property>
-                    <child>
-                      <object class="GtkAlignment" id="alignment5">
-                        <property name="visible">True</property>
-                        <property name="can_focus">False</property>
-                        <property name="top_padding">6</property>
-                        <property name="left_padding">12</property>
-                        <child>
-                          <object class="GtkVBox" id="vbox7">
-                            <property name="visible">True</property>
-                            <property name="can_focus">False</property>
-                            <property name="spacing">6</property>
-                            <child>
-                              <object class="GtkLabel" id="label_index_recursively">
-                                <property name="visible">True</property>
-                                <property name="can_focus">False</property>
-                                <property name="xalign">0</property>
-                                <property name="label" translatable="yes">Directories:</property>
                               </object>
                               <packing>
                                 <property name="expand">False</property>
@@ -678,121 +460,107 @@
                               </packing>
                             </child>
                             <child>
-                              <object class="GtkHBox" id="hbox1">
+                              <object class="GtkVBox" id="vbox12">
                                 <property name="visible">True</property>
                                 <property name="can_focus">False</property>
-                                <property name="spacing">6</property>
                                 <child>
-                                  <object class="GtkScrolledWindow" id="scrolledwindow1">
+                                  <object class="GtkLabel" id="label_throttle">
                                     <property name="visible">True</property>
-                                    <property name="can_focus">True</property>
-                                    <property name="shadow_type">in</property>
-                                    <child>
-                                      <object class="GtkTreeView" id="treeview_index_recursively">
-                                        <property name="visible">True</property>
-                                        <property name="can_focus">True</property>
-                                        <property name="model">liststore_index_recursively</property>
-                                        <property name="headers_visible">False</property>
-                                        <property name="headers_clickable">False</property>
-                                        <property name="rules_hint">True</property>
-                                        <property name="search_column">0</property>
-                                      </object>
-                                    </child>
+                                    <property name="can_focus">False</property>
+                                    <property name="xalign">0</property>
+                                    <property name="yalign">0</property>
+                                    <property name="ypad">4</property>
+                                    <property name="label" translatable="yes">Indexing s_peed (faster consumes more resources):</property>
+                                    <property name="use_underline">True</property>
+                                    <property name="mnemonic_widget">hscale_throttle</property>
                                   </object>
                                   <packing>
-                                    <property name="expand">True</property>
+                                    <property name="expand">False</property>
                                     <property name="fill">True</property>
                                     <property name="position">0</property>
                                   </packing>
                                 </child>
                                 <child>
-                                  <object class="GtkVBox" id="vbox23">
+                                  <object class="GtkTable" id="table_throttle">
                                     <property name="visible">True</property>
                                     <property name="can_focus">False</property>
-                                    <property name="spacing">6</property>
+                                    <property name="n_rows">2</property>
+                                    <property name="n_columns">2</property>
+                                    <property name="column_spacing">12</property>
+                                    <property name="row_spacing">4</property>
                                     <child>
-                                      <object class="GtkButton" id="button_index_recursively_add">
+                                      <object class="GtkLabel" id="label_slower">
                                         <property name="visible">True</property>
-                                        <property name="can_focus">True</property>
-                                        <property name="receives_default">True</property>
-                                        <property name="use_action_appearance">False</property>
-                                        <signal name="clicked" handler="tracker_preferences_button_index_recursively_add_clicked_cb" swapped="no"/>
-                                        <child>
-                                          <object class="GtkImage" id="image3">
-                                            <property name="visible">True</property>
-                                            <property name="can_focus">False</property>
-                                            <property name="stock">gtk-add</property>
-                                          </object>
-                                        </child>
+                                        <property name="can_focus">False</property>
+                                        <property name="xalign">1</property>
+                                        <property name="label" translatable="yes">Faster</property>
+                                        <property name="justify">right</property>
                                       </object>
                                       <packing>
-                                        <property name="expand">False</property>
-                                        <property name="fill">True</property>
-                                        <property name="position">0</property>
+                                        <property name="left_attach">1</property>
+                                        <property name="right_attach">2</property>
+                                        <property name="top_attach">1</property>
+                                        <property name="bottom_attach">2</property>
+                                        <property name="y_options"></property>
                                       </packing>
                                     </child>
                                     <child>
-                                      <object class="GtkButton" id="button_index_recursively_remove">
+                                      <object class="GtkLabel" id="label_faster">
                                         <property name="visible">True</property>
-                                        <property name="can_focus">True</property>
-                                        <property name="receives_default">True</property>
-                                        <property name="use_action_appearance">False</property>
-                                        <signal name="clicked" handler="tracker_preferences_button_index_recursively_remove_clicked_cb" swapped="no"/>
-                                        <child>
-                                          <object class="GtkImage" id="image4">
-                                            <property name="visible">True</property>
-                                            <property name="can_focus">False</property>
-                                            <property name="stock">gtk-remove</property>
-                                          </object>
-                                        </child>
+                                        <property name="can_focus">False</property>
+                                        <property name="xalign">0</property>
+                                        <property name="label" translatable="yes">Slower</property>
                                       </object>
                                       <packing>
-                                        <property name="expand">False</property>
-                                        <property name="fill">True</property>
-                                        <property name="position">1</property>
+                                        <property name="top_attach">1</property>
+                                        <property name="bottom_attach">2</property>
+                                        <property name="y_options"></property>
                                       </packing>
                                     </child>
                                     <child>
-                                      <placeholder/>
+                                      <object class="GtkHScale" id="hscale_throttle">
+                                        <property name="visible">True</property>
+                                        <property name="can_focus">True</property>
+                                        <property name="adjustment">adjustment_throttle</property>
+                                        <property name="inverted">True</property>
+                                        <property name="digits">0</property>
+                                        <property name="draw_value">False</property>
+                                        <signal name="format-value" handler="tracker_preferences_hscale_throttle_format_value_cb" swapped="no"/>
+                                      </object>
+                                      <packing>
+                                        <property name="right_attach">2</property>
+                                        <property name="y_options">GTK_FILL</property>
+                                      </packing>
                                     </child>
                                   </object>
                                   <packing>
                                     <property name="expand">False</property>
-                                    <property name="fill">False</property>
+                                    <property name="fill">True</property>
                                     <property name="position">1</property>
                                   </packing>
                                 </child>
                               </object>
                               <packing>
-                                <property name="expand">True</property>
+                                <property name="expand">False</property>
                                 <property name="fill">True</property>
                                 <property name="position">1</property>
                               </packing>
                             </child>
                             <child>
-                              <object class="GtkHBox" id="hbox7">
+                              <object class="GtkVBox" id="vbox9">
                                 <property name="visible">True</property>
                                 <property name="can_focus">False</property>
-                                <property name="spacing">6</property>
                                 <child>
-                                  <object class="GtkToggleButton" id="togglebutton_recurse_home">
+                                  <object class="GtkLabel" id="label_device_drop_threshold1">
                                     <property name="visible">True</property>
-                                    <property name="can_focus">True</property>
-                                    <property name="receives_default">True</property>
-                                    <property name="tooltip_markup">Index Home Directory Recursively</property>
-                                    <property name="use_action_appearance">False</property>
-                                    <property name="relief">none</property>
-                                    <signal name="toggled" handler="tracker_preferences_togglebutton_recurse_home_toggled_cb" swapped="no"/>
-                                    <child>
-                                      <object class="GtkImage" id="image1">
-                                        <property name="visible">True</property>
-                                        <property name="can_focus">False</property>
-                                        <property name="xpad">1</property>
-                                        <property name="ypad">1</property>
-                                        <property name="pixel_size">24</property>
-                                        <property name="icon_name">folder-home</property>
-                                      </object>
-                                    </child>
+                                    <property name="can_focus">False</property>
+                                    <property name="xalign">0</property>
+                                    <property name="yalign">0</property>
+                                    <property name="xpad">3</property>
+                                    <property name="ypad">4</property>
+                                    <property name="label" translatable="yes">Days before deleting removable devices / files since last mounted:</property>
+                                    <property name="use_underline">True</property>
+                                    <property name="mnemonic_widget">hscale_drop_device_threshold</property>
                                   </object>
                                   <packing>
                                     <property name="expand">False</property>
@@ -801,24 +569,13 @@
                                   </packing>
                                 </child>
                                 <child>
-                                  <object class="GtkToggleButton" id="togglebutton_recurse_desktop">
+                                  <object class="GtkHScale" id="hscale_drop_device_threshold">
                                     <property name="visible">True</property>
                                     <property name="can_focus">True</property>
-                                    <property name="receives_default">True</property>
-                                    <property name="tooltip_markup">Index Desktop Directory Recursively</property>
-                                    <property name="use_action_appearance">False</property>
-                                    <property name="relief">none</property>
-                                    <signal name="toggled" handler="tracker_preferences_togglebutton_recurse_desktop_toggled_cb" swapped="no"/>
-                                    <child>
-                                      <object class="GtkImage" id="image">
-                                        <property name="visible">True</property>
-                                        <property name="can_focus">False</property>
-                                        <property name="xpad">1</property>
-                                        <property name="ypad">1</property>
-                                        <property name="pixel_size">24</property>
-                                        <property name="icon_name">user-desktop</property>
-                                      </object>
-                                    </child>
+                                    <property name="adjustment">adjustment_drop_device_threshold</property>
+                                    <property name="round_digits">0</property>
+                                    <property name="digits">0</property>
+                                    <signal name="format-value" handler="tracker_preferences_hscale_drop_device_threshold_format_value_cb" swapped="no"/>
                                   </object>
                                   <packing>
                                     <property name="expand">False</property>
@@ -826,135 +583,10 @@
                                     <property name="position">1</property>
                                   </packing>
                                 </child>
-                                <child>
-                                  <object class="GtkToggleButton" id="togglebutton_recurse_documents">
-                                    <property name="visible">True</property>
-                                    <property name="can_focus">True</property>
-                                    <property name="receives_default">True</property>
-                                    <property name="tooltip_markup">Index Documents Directory Recursively</property>
-                                    <property name="use_action_appearance">False</property>
-                                    <property name="relief">none</property>
-                                    <signal name="toggled" handler="tracker_preferences_togglebutton_recurse_documents_toggled_cb" swapped="no"/>
-                                    <child>
-                                      <object class="GtkImage" id="image11">
-                                        <property name="visible">True</property>
-                                        <property name="can_focus">False</property>
-                                        <property name="xpad">1</property>
-                                        <property name="pixel_size">24</property>
-                                        <property name="icon_name">folder-documents</property>
-                                      </object>
-                                    </child>
-                                  </object>
-                                  <packing>
-                                    <property name="expand">False</property>
-                                    <property name="fill">True</property>
-                                    <property name="position">2</property>
-                                  </packing>
-                                </child>
-                                <child>
-                                  <object class="GtkToggleButton" id="togglebutton_recurse_music">
-                                    <property name="visible">True</property>
-                                    <property name="can_focus">True</property>
-                                    <property name="receives_default">True</property>
-                                    <property name="tooltip_markup">Index Music Directory Recursively</property>
-                                    <property name="use_action_appearance">False</property>
-                                    <property name="relief">none</property>
-                                    <signal name="toggled" handler="tracker_preferences_togglebutton_recurse_music_toggled_cb" swapped="no"/>
-                                    <child>
-                                      <object class="GtkImage" id="image14">
-                                        <property name="visible">True</property>
-                                        <property name="can_focus">False</property>
-                                        <property name="xpad">1</property>
-                                        <property name="pixel_size">24</property>
-                                        <property name="icon_name">folder-music</property>
-                                      </object>
-                                    </child>
-                                  </object>
-                                  <packing>
-                                    <property name="expand">False</property>
-                                    <property name="fill">True</property>
-                                    <property name="position">3</property>
-                                  </packing>
-                                </child>
-                                <child>
-                                  <object class="GtkToggleButton" id="togglebutton_recurse_pictures">
-                                    <property name="visible">True</property>
-                                    <property name="can_focus">True</property>
-                                    <property name="receives_default">True</property>
-                                    <property name="tooltip_markup">Index Pictures Directory Recursively</property>
-                                    <property name="use_action_appearance">False</property>
-                                    <property name="relief">none</property>
-                                    <signal name="toggled" handler="tracker_preferences_togglebutton_recurse_pictures_toggled_cb" swapped="no"/>
-                                    <child>
-                                      <object class="GtkImage" id="image15">
-                                        <property name="visible">True</property>
-                                        <property name="can_focus">False</property>
-                                        <property name="xpad">1</property>
-                                        <property name="pixel_size">24</property>
-                                        <property name="icon_name">folder-pictures</property>
-                                      </object>
-                                    </child>
-                                  </object>
-                                  <packing>
-                                    <property name="expand">False</property>
-                                    <property name="fill">True</property>
-                                    <property name="position">4</property>
-                                  </packing>
-                                </child>
-                                <child>
-                                  <object class="GtkToggleButton" id="togglebutton_recurse_videos">
-                                    <property name="visible">True</property>
-                                    <property name="can_focus">True</property>
-                                    <property name="receives_default">True</property>
-                                    <property name="tooltip_markup">Index Videos Directory Recursively</property>
-                                    <property name="use_action_appearance">False</property>
-                                    <property name="relief">none</property>
-                                    <signal name="toggled" handler="tracker_preferences_togglebutton_recurse_videos_toggled_cb" swapped="no"/>
-                                    <child>
-                                      <object class="GtkImage" id="image16">
-                                        <property name="visible">True</property>
-                                        <property name="can_focus">False</property>
-                                        <property name="xpad">1</property>
-                                        <property name="pixel_size">24</property>
-                                        <property name="icon_name">folder-videos</property>
-                                      </object>
-                                    </child>
-                                  </object>
-                                  <packing>
-                                    <property name="expand">False</property>
-                                    <property name="fill">True</property>
-                                    <property name="position">5</property>
-                                  </packing>
-                                </child>
-                                <child>
-                                  <object class="GtkToggleButton" id="togglebutton_recurse_download">
-                                    <property name="visible">True</property>
-                                    <property name="can_focus">True</property>
-                                    <property name="receives_default">True</property>
-                                    <property name="tooltip_markup">Index Download Directory Recursively</property>
-                                    <property name="use_action_appearance">False</property>
-                                    <property name="relief">none</property>
-                                    <signal name="toggled" handler="tracker_preferences_togglebutton_recurse_download_toggled_cb" swapped="no"/>
-                                    <child>
-                                      <object class="GtkImage" id="image17">
-                                        <property name="visible">True</property>
-                                        <property name="can_focus">False</property>
-                                        <property name="xpad">1</property>
-                                        <property name="pixel_size">24</property>
-                                        <property name="icon_name">folder-downloads</property>
-                                      </object>
-                                    </child>
-                                  </object>
-                                  <packing>
-                                    <property name="expand">False</property>
-                                    <property name="fill">True</property>
-                                    <property name="position">6</property>
-                                  </packing>
-                                </child>
                               </object>
                               <packing>
                                 <property name="expand">False</property>
-                                <property name="fill">False</property>
+                                <property name="fill">True</property>
                                 <property name="position">2</property>
                               </packing>
                             </child>
@@ -963,10 +595,10 @@
                       </object>
                     </child>
                     <child type="label">
-                      <object class="GtkLabel" id="label1">
+                      <object class="GtkLabel" id="label">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
-                        <property name="label" translatable="yes">Recursively Indexed</property>
+                        <property name="label" translatable="yes">Limitations</property>
                         <attributes>
                           <attribute name="weight" value="bold"/>
                         </attributes>
@@ -974,86 +606,100 @@
                     </child>
                   </object>
                   <packing>
-                    <property name="expand">True</property>
+                    <property name="expand">False</property>
                     <property name="fill">True</property>
-                    <property name="position">0</property>
+                    <property name="position">1</property>
                   </packing>
                 </child>
                 <child>
-                  <object class="GtkFrame" id="frame_index_single_directories">
+                  <placeholder/>
+                </child>
+              </object>
+              <packing>
+                <property name="position">1</property>
+              </packing>
+            </child>
+            <child type="tab">
+              <object class="GtkLabel" id="label12">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="label" translatable="yes">Indexing</property>
+              </object>
+              <packing>
+                <property name="position">1</property>
+                <property name="tab_fill">False</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkVBox" id="vbox2">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="border_width">12</property>
+                <property name="spacing">18</property>
+                <child>
+                  <object class="GtkFrame" id="frame1">
                     <property name="visible">True</property>
                     <property name="can_focus">False</property>
                     <property name="label_xalign">0</property>
                     <property name="shadow_type">none</property>
                     <child>
-                      <object class="GtkAlignment" id="alignment6">
+                      <object class="GtkAlignment" id="alignment2">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
                         <property name="top_padding">6</property>
-                        <property name="left_padding">12</property>
-                        <child>
-                          <object class="GtkVBox" id="vbox3">
-                            <property name="visible">True</property>
-                            <property name="can_focus">False</property>
-                            <property name="spacing">6</property>
-                            <child>
-                              <object class="GtkLabel" id="label_index_single">
-                                <property name="visible">True</property>
-                                <property name="can_focus">False</property>
-                                <property name="xalign">0</property>
-                                <property name="label" translatable="yes">Directories (no sub-directories are indexed):</property>
-                              </object>
-                              <packing>
-                                <property name="expand">False</property>
-                                <property name="fill">True</property>
-                                <property name="position">0</property>
-                              </packing>
-                            </child>
+                        <property name="left_padding">12</property>
+                        <child>
+                          <object class="GtkVBox" id="vbox14">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="spacing">18</property>
                             <child>
-                              <object class="GtkHBox" id="hbox4">
+                              <object class="GtkVBox" id="vbox5">
                                 <property name="visible">True</property>
                                 <property name="can_focus">False</property>
                                 <property name="spacing">6</property>
                                 <child>
-                                  <object class="GtkScrolledWindow" id="scrolledwindow4">
+                                  <object class="GtkLabel" id="label8">
                                     <property name="visible">True</property>
-                                    <property name="can_focus">True</property>
-                                    <property name="shadow_type">in</property>
-                                    <child>
-                                      <object class="GtkTreeView" id="treeview_index_single">
-                                        <property name="visible">True</property>
-                                        <property name="can_focus">True</property>
-                                        <property name="model">liststore_index_single</property>
-                                        <property name="headers_visible">False</property>
-                                        <property name="headers_clickable">False</property>
-                                        <property name="rules_hint">True</property>
-                                        <property name="search_column">0</property>
-                                      </object>
-                                    </child>
+                                    <property name="can_focus">False</property>
+                                    <property name="xalign">0</property>
+                                    <property name="label" translatable="yes">Special locations such as your &lt;b&gt;Home&lt;/b&gt;, &lt;b&gt;Desktop&lt;/b&gt; or &lt;b&gt;Documents&lt;/b&gt; directory, can be easily toggled below. This will add or remove their real paths from the list underneath.
+
+You can decide if you want to index the content recursively or not using the checkbuttons in the list next to each entry.
+
+If some special directories are not available, it may be because they're not defined or duplicate another special directory.</property>
+                                    <property name="use_markup">True</property>
+                                    <property name="justify">fill</property>
+                                    <property name="wrap">True</property>
                                   </object>
                                   <packing>
-                                    <property name="expand">True</property>
+                                    <property name="expand">False</property>
                                     <property name="fill">True</property>
                                     <property name="position">0</property>
                                   </packing>
                                 </child>
                                 <child>
-                                  <object class="GtkVBox" id="vbox5">
+                                  <object class="GtkHBox" id="hbox7">
                                     <property name="visible">True</property>
                                     <property name="can_focus">False</property>
                                     <property name="spacing">6</property>
                                     <child>
-                                      <object class="GtkButton" id="button_index_single_add">
+                                      <object class="GtkToggleButton" id="togglebutton_home">
                                         <property name="visible">True</property>
                                         <property name="can_focus">True</property>
                                         <property name="receives_default">True</property>
+                                        <property name="tooltip_markup">Index Home Directory</property>
                                         <property name="use_action_appearance">False</property>
-                                        <signal name="clicked" handler="tracker_preferences_button_index_single_add_clicked_cb" swapped="no"/>
+                                        <property name="relief">none</property>
+                                        <signal name="toggled" handler="tracker_preferences_togglebutton_home_toggled_cb" swapped="no"/>
                                         <child>
-                                          <object class="GtkImage" id="image5">
+                                          <object class="GtkImage" id="image1">
                                             <property name="visible">True</property>
                                             <property name="can_focus">False</property>
-                                            <property name="stock">gtk-add</property>
+                                            <property name="xpad">1</property>
+                                            <property name="ypad">1</property>
+                                            <property name="pixel_size">24</property>
+                                            <property name="icon_name">folder-home</property>
                                           </object>
                                         </child>
                                       </object>
@@ -1064,17 +710,22 @@
                                       </packing>
                                     </child>
                                     <child>
-                                      <object class="GtkButton" id="button_index_single_remove">
+                                      <object class="GtkToggleButton" id="togglebutton_desktop">
                                         <property name="visible">True</property>
                                         <property name="can_focus">True</property>
                                         <property name="receives_default">True</property>
+                                        <property name="tooltip_markup">Index Desktop Directory</property>
                                         <property name="use_action_appearance">False</property>
-                                        <signal name="clicked" handler="tracker_preferences_button_index_single_remove_clicked_cb" swapped="no"/>
+                                        <property name="relief">none</property>
+                                        <signal name="toggled" handler="tracker_preferences_togglebutton_desktop_toggled_cb" swapped="no"/>
                                         <child>
-                                          <object class="GtkImage" id="image10">
+                                          <object class="GtkImage" id="image">
                                             <property name="visible">True</property>
                                             <property name="can_focus">False</property>
-                                            <property name="stock">gtk-remove</property>
+                                            <property name="xpad">1</property>
+                                            <property name="ypad">1</property>
+                                            <property name="pixel_size">24</property>
+                                            <property name="icon_name">user-desktop</property>
                                           </object>
                                         </child>
                                       </object>
@@ -1085,208 +736,244 @@
                                       </packing>
                                     </child>
                                     <child>
-                                      <placeholder/>
-                                    </child>
-                                  </object>
-                                  <packing>
-                                    <property name="expand">False</property>
-                                    <property name="fill">False</property>
-                                    <property name="position">1</property>
-                                  </packing>
-                                </child>
-                              </object>
-                              <packing>
-                                <property name="expand">True</property>
-                                <property name="fill">True</property>
-                                <property name="position">1</property>
-                              </packing>
-                            </child>
-                            <child>
-                              <object class="GtkHBox" id="hbox8">
-                                <property name="visible">True</property>
-                                <property name="can_focus">False</property>
-                                <property name="spacing">6</property>
-                                <child>
-                                  <object class="GtkToggleButton" id="togglebutton_single_home">
-                                    <property name="visible">True</property>
-                                    <property name="can_focus">True</property>
-                                    <property name="receives_default">True</property>
-                                    <property name="tooltip_markup">Index Home Directory Only</property>
-                                    <property name="use_action_appearance">False</property>
-                                    <property name="relief">none</property>
-                                    <signal name="toggled" handler="tracker_preferences_togglebutton_single_home_toggled_cb" swapped="no"/>
-                                    <child>
-                                      <object class="GtkImage" id="image18">
+                                      <object class="GtkToggleButton" id="togglebutton_documents">
                                         <property name="visible">True</property>
-                                        <property name="can_focus">False</property>
-                                        <property name="xpad">1</property>
-                                        <property name="pixel_size">24</property>
-                                        <property name="icon_name">folder-home</property>
+                                        <property name="can_focus">True</property>
+                                        <property name="receives_default">True</property>
+                                        <property name="tooltip_markup">Index Documents Directory</property>
+                                        <property name="use_action_appearance">False</property>
+                                        <property name="relief">none</property>
+                                        <signal name="toggled" handler="tracker_preferences_togglebutton_documents_toggled_cb" swapped="no"/>
+                                        <child>
+                                          <object class="GtkImage" id="image11">
+                                            <property name="visible">True</property>
+                                            <property name="can_focus">False</property>
+                                            <property name="xpad">1</property>
+                                            <property name="pixel_size">24</property>
+                                            <property name="icon_name">folder-documents</property>
+                                          </object>
+                                        </child>
                                       </object>
+                                      <packing>
+                                        <property name="expand">False</property>
+                                        <property name="fill">True</property>
+                                        <property name="position">2</property>
+                                      </packing>
                                     </child>
-                                  </object>
-                                  <packing>
-                                    <property name="expand">False</property>
-                                    <property name="fill">True</property>
-                                    <property name="position">0</property>
-                                  </packing>
-                                </child>
-                                <child>
-                                  <object class="GtkToggleButton" id="togglebutton_single_desktop">
-                                    <property name="visible">True</property>
-                                    <property name="can_focus">True</property>
-                                    <property name="receives_default">True</property>
-                                    <property name="tooltip_markup">Index Desktop Directory Only</property>
-                                    <property name="use_action_appearance">False</property>
-                                    <property name="relief">none</property>
-                                    <signal name="toggled" handler="tracker_preferences_togglebutton_single_desktop_toggled_cb" swapped="no"/>
                                     <child>
-                                      <object class="GtkImage" id="image19">
+                                      <object class="GtkToggleButton" id="togglebutton_music">
                                         <property name="visible">True</property>
-                                        <property name="can_focus">False</property>
-                                        <property name="xpad">1</property>
-                                        <property name="pixel_size">24</property>
-                                        <property name="icon_name">user-desktop</property>
+                                        <property name="can_focus">True</property>
+                                        <property name="receives_default">True</property>
+                                        <property name="tooltip_markup">Index Music Directory</property>
+                                        <property name="use_action_appearance">False</property>
+                                        <property name="relief">none</property>
+                                        <signal name="toggled" handler="tracker_preferences_togglebutton_music_toggled_cb" swapped="no"/>
+                                        <child>
+                                          <object class="GtkImage" id="image14">
+                                            <property name="visible">True</property>
+                                            <property name="can_focus">False</property>
+                                            <property name="xpad">1</property>
+                                            <property name="pixel_size">24</property>
+                                            <property name="icon_name">folder-music</property>
+                                          </object>
+                                        </child>
                                       </object>
+                                      <packing>
+                                        <property name="expand">False</property>
+                                        <property name="fill">True</property>
+                                        <property name="position">3</property>
+                                      </packing>
                                     </child>
-                                  </object>
-                                  <packing>
-                                    <property name="expand">False</property>
-                                    <property name="fill">True</property>
-                                    <property name="position">1</property>
-                                  </packing>
-                                </child>
-                                <child>
-                                  <object class="GtkToggleButton" id="togglebutton_single_documents">
-                                    <property name="visible">True</property>
-                                    <property name="can_focus">True</property>
-                                    <property name="receives_default">True</property>
-                                    <property name="tooltip_markup">Index Documents Directory Only</property>
-                                    <property name="use_action_appearance">False</property>
-                                    <property name="relief">none</property>
-                                    <signal name="toggled" handler="tracker_preferences_togglebutton_single_documents_toggled_cb" swapped="no"/>
                                     <child>
-                                      <object class="GtkImage" id="image20">
+                                      <object class="GtkToggleButton" id="togglebutton_pictures">
                                         <property name="visible">True</property>
-                                        <property name="can_focus">False</property>
-                                        <property name="xpad">1</property>
-                                        <property name="pixel_size">24</property>
-                                        <property name="icon_name">folder-documents</property>
+                                        <property name="can_focus">True</property>
+                                        <property name="receives_default">True</property>
+                                        <property name="tooltip_markup">Index Pictures Directory</property>
+                                        <property name="use_action_appearance">False</property>
+                                        <property name="relief">none</property>
+                                        <signal name="toggled" handler="tracker_preferences_togglebutton_pictures_toggled_cb" swapped="no"/>
+                                        <child>
+                                          <object class="GtkImage" id="image15">
+                                            <property name="visible">True</property>
+                                            <property name="can_focus">False</property>
+                                            <property name="xpad">1</property>
+                                            <property name="pixel_size">24</property>
+                                            <property name="icon_name">folder-pictures</property>
+                                          </object>
+                                        </child>
                                       </object>
+                                      <packing>
+                                        <property name="expand">False</property>
+                                        <property name="fill">True</property>
+                                        <property name="position">4</property>
+                                      </packing>
                                     </child>
-                                  </object>
-                                  <packing>
-                                    <property name="expand">False</property>
-                                    <property name="fill">True</property>
-                                    <property name="position">2</property>
-                                  </packing>
-                                </child>
-                                <child>
-                                  <object class="GtkToggleButton" id="togglebutton_single_music">
-                                    <property name="visible">True</property>
-                                    <property name="can_focus">True</property>
-                                    <property name="receives_default">True</property>
-                                    <property name="tooltip_markup">Index Music Directory Only</property>
-                                    <property name="use_action_appearance">False</property>
-                                    <property name="relief">none</property>
-                                    <signal name="toggled" handler="tracker_preferences_togglebutton_single_music_toggled_cb" swapped="no"/>
                                     <child>
-                                      <object class="GtkImage" id="image21">
+                                      <object class="GtkToggleButton" id="togglebutton_videos">
                                         <property name="visible">True</property>
-                                        <property name="can_focus">False</property>
-                                        <property name="xpad">1</property>
-                                        <property name="pixel_size">24</property>
-                                        <property name="icon_name">folder-music</property>
+                                        <property name="can_focus">True</property>
+                                        <property name="receives_default">True</property>
+                                        <property name="tooltip_markup">Index Videos Directory</property>
+                                        <property name="use_action_appearance">False</property>
+                                        <property name="relief">none</property>
+                                        <signal name="toggled" handler="tracker_preferences_togglebutton_videos_toggled_cb" swapped="no"/>
+                                        <child>
+                                          <object class="GtkImage" id="image16">
+                                            <property name="visible">True</property>
+                                            <property name="can_focus">False</property>
+                                            <property name="xpad">1</property>
+                                            <property name="pixel_size">24</property>
+                                            <property name="icon_name">folder-videos</property>
+                                          </object>
+                                        </child>
                                       </object>
+                                      <packing>
+                                        <property name="expand">False</property>
+                                        <property name="fill">True</property>
+                                        <property name="position">5</property>
+                                      </packing>
                                     </child>
-                                  </object>
-                                  <packing>
-                                    <property name="expand">False</property>
-                                    <property name="fill">True</property>
-                                    <property name="position">3</property>
-                                  </packing>
-                                </child>
-                                <child>
-                                  <object class="GtkToggleButton" id="togglebutton_single_pictures">
-                                    <property name="visible">True</property>
-                                    <property name="can_focus">True</property>
-                                    <property name="receives_default">True</property>
-                                    <property name="tooltip_markup">Index Pictures Directory Only</property>
-                                    <property name="use_action_appearance">False</property>
-                                    <property name="relief">none</property>
-                                    <signal name="toggled" handler="tracker_preferences_togglebutton_single_pictures_toggled_cb" swapped="no"/>
                                     <child>
-                                      <object class="GtkImage" id="image22">
+                                      <object class="GtkToggleButton" id="togglebutton_download">
                                         <property name="visible">True</property>
-                                        <property name="can_focus">False</property>
-                                        <property name="xpad">1</property>
-                                        <property name="pixel_size">24</property>
-                                        <property name="icon_name">folder-pictures</property>
+                                        <property name="can_focus">True</property>
+                                        <property name="receives_default">True</property>
+                                        <property name="tooltip_markup">Index Download Directory</property>
+                                        <property name="use_action_appearance">False</property>
+                                        <property name="relief">none</property>
+                                        <signal name="toggled" handler="tracker_preferences_togglebutton_download_toggled_cb" swapped="no"/>
+                                        <child>
+                                          <object class="GtkImage" id="image17">
+                                            <property name="visible">True</property>
+                                            <property name="can_focus">False</property>
+                                            <property name="xpad">1</property>
+                                            <property name="pixel_size">24</property>
+                                            <property name="icon_name">folder-downloads</property>
+                                          </object>
+                                        </child>
                                       </object>
+                                      <packing>
+                                        <property name="expand">False</property>
+                                        <property name="fill">True</property>
+                                        <property name="position">6</property>
+                                      </packing>
                                     </child>
                                   </object>
                                   <packing>
                                     <property name="expand">False</property>
-                                    <property name="fill">True</property>
-                                    <property name="position">4</property>
+                                    <property name="fill">False</property>
+                                    <property name="position">1</property>
                                   </packing>
                                 </child>
+                              </object>
+                              <packing>
+                                <property name="expand">False</property>
+                                <property name="fill">True</property>
+                                <property name="position">0</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkVBox" id="vbox3">
+                                <property name="visible">True</property>
+                                <property name="can_focus">False</property>
                                 <child>
-                                  <object class="GtkToggleButton" id="togglebutton_single_videos">
+                                  <object class="GtkHBox" id="hbox1">
                                     <property name="visible">True</property>
-                                    <property name="can_focus">True</property>
-                                    <property name="receives_default">True</property>
-                                    <property name="tooltip_markup">Index Videos Directory Only</property>
-                                    <property name="use_action_appearance">False</property>
-                                    <property name="relief">none</property>
-                                    <signal name="toggled" handler="tracker_preferences_togglebutton_single_videos_toggled_cb" swapped="no"/>
+                                    <property name="can_focus">False</property>
+                                    <property name="spacing">6</property>
                                     <child>
-                                      <object class="GtkImage" id="image23">
+                                      <object class="GtkScrolledWindow" id="scrolledwindow1">
                                         <property name="visible">True</property>
-                                        <property name="can_focus">False</property>
-                                        <property name="xpad">1</property>
-                                        <property name="pixel_size">24</property>
-                                        <property name="icon_name">folder-videos</property>
+                                        <property name="can_focus">True</property>
+                                        <property name="shadow_type">in</property>
+                                        <child>
+                                          <object class="GtkTreeView" id="treeview_index">
+                                            <property name="visible">True</property>
+                                            <property name="can_focus">True</property>
+                                            <property name="model">liststore_index</property>
+                                            <property name="headers_clickable">False</property>
+                                            <property name="rules_hint">True</property>
+                                            <property name="search_column">0</property>
+                                          </object>
+                                        </child>
                                       </object>
+                                      <packing>
+                                        <property name="expand">True</property>
+                                        <property name="fill">True</property>
+                                        <property name="position">0</property>
+                                      </packing>
                                     </child>
-                                  </object>
-                                  <packing>
-                                    <property name="expand">False</property>
-                                    <property name="fill">True</property>
-                                    <property name="position">5</property>
-                                  </packing>
-                                </child>
-                                <child>
-                                  <object class="GtkToggleButton" id="togglebutton_single_download">
-                                    <property name="visible">True</property>
-                                    <property name="can_focus">True</property>
-                                    <property name="receives_default">True</property>
-                                    <property name="tooltip_markup">Index Download Directory Only</property>
-                                    <property name="use_action_appearance">False</property>
-                                    <property name="relief">none</property>
-                                    <signal name="toggled" handler="tracker_preferences_togglebutton_single_download_toggled_cb" swapped="no"/>
                                     <child>
-                                      <object class="GtkImage" id="image24">
+                                      <object class="GtkVBox" id="vbox23">
                                         <property name="visible">True</property>
                                         <property name="can_focus">False</property>
-                                        <property name="xpad">1</property>
-                                        <property name="ypad">1</property>
-                                        <property name="pixel_size">24</property>
-                                        <property name="icon_name">folder-downloads</property>
+                                        <property name="spacing">6</property>
+                                        <child>
+                                          <object class="GtkButton" id="button_index_add">
+                                            <property name="visible">True</property>
+                                            <property name="can_focus">True</property>
+                                            <property name="receives_default">True</property>
+                                            <property name="use_action_appearance">False</property>
+                                            <signal name="clicked" handler="tracker_preferences_button_index_add_clicked_cb" swapped="no"/>
+                                            <child>
+                                              <object class="GtkImage" id="image3">
+                                                <property name="visible">True</property>
+                                                <property name="can_focus">False</property>
+                                                <property name="stock">gtk-add</property>
+                                              </object>
+                                            </child>
+                                          </object>
+                                          <packing>
+                                            <property name="expand">False</property>
+                                            <property name="fill">True</property>
+                                            <property name="position">0</property>
+                                          </packing>
+                                        </child>
+                                        <child>
+                                          <object class="GtkButton" id="button_index_remove">
+                                            <property name="visible">True</property>
+                                            <property name="can_focus">True</property>
+                                            <property name="receives_default">True</property>
+                                            <property name="use_action_appearance">False</property>
+                                            <signal name="clicked" handler="tracker_preferences_button_index_remove_clicked_cb" swapped="no"/>
+                                            <child>
+                                              <object class="GtkImage" id="image4">
+                                                <property name="visible">True</property>
+                                                <property name="can_focus">False</property>
+                                                <property name="stock">gtk-remove</property>
+                                              </object>
+                                            </child>
+                                          </object>
+                                          <packing>
+                                            <property name="expand">False</property>
+                                            <property name="fill">True</property>
+                                            <property name="position">1</property>
+                                          </packing>
+                                        </child>
+                                        <child>
+                                          <placeholder/>
+                                        </child>
                                       </object>
+                                      <packing>
+                                        <property name="expand">False</property>
+                                        <property name="fill">False</property>
+                                        <property name="position">1</property>
+                                      </packing>
                                     </child>
                                   </object>
                                   <packing>
-                                    <property name="expand">False</property>
+                                    <property name="expand">True</property>
                                     <property name="fill">True</property>
-                                    <property name="position">6</property>
+                                    <property name="position">0</property>
                                   </packing>
                                 </child>
                               </object>
                               <packing>
-                                <property name="expand">False</property>
-                                <property name="fill">False</property>
-                                <property name="position">2</property>
+                                <property name="expand">True</property>
+                                <property name="fill">True</property>
+                                <property name="position">1</property>
                               </packing>
                             </child>
                           </object>
@@ -1294,20 +981,18 @@
                       </object>
                     </child>
                     <child type="label">
-                      <object class="GtkLabel" id="label7">
+                      <object class="GtkLabel" id="label1">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
-                        <property name="label" translatable="yes">Non-Recursively Indexed</property>
-                        <attributes>
-                          <attribute name="weight" value="bold"/>
-                        </attributes>
+                        <property name="label" translatable="yes">&lt;b&gt;Where is your content?&lt;/b&gt;</property>
+                        <property name="use_markup">True</property>
                       </object>
                     </child>
                   </object>
                   <packing>
                     <property name="expand">True</property>
                     <property name="fill">True</property>
-                    <property name="position">1</property>
+                    <property name="position">0</property>
                   </packing>
                 </child>
               </object>
@@ -1518,7 +1203,7 @@
                                           <object class="GtkTreeView" id="treeview_ignored_directories_with_content">
                                             <property name="visible">True</property>
                                             <property name="can_focus">True</property>
-                                            <property name="model">liststore_gnored_directories_with_content</property>
+                                            <property name="model">liststore_ignored_directories_with_content</property>
                                             <property name="headers_visible">False</property>
                                             <property name="rules_hint">True</property>
                                             <property name="search_column">0</property>
@@ -1786,7 +1471,7 @@ Most commonly this is used to ignore directories like *~, *.o, *.la, etc</proper
             </child>
           </object>
           <packing>
-            <property name="expand">False</property>
+            <property name="expand">True</property>
             <property name="fill">True</property>
             <property name="position">1</property>
           </packing>
diff --git a/src/tracker-preferences/tracker-preferences.vala b/src/tracker-preferences/tracker-preferences.vala
index 42f6297..1417f97 100644
--- a/src/tracker-preferences/tracker-preferences.vala
+++ b/src/tracker-preferences/tracker-preferences.vala
@@ -44,30 +44,23 @@ public class Tracker.Preferences {
 	private Scale hscale_disk_space_limit;
 	private Scale hscale_throttle;
 	private Scale hscale_drop_device_threshold;
-	private ListStore liststore_index_recursively;
-	private ListStore liststore_index_single;
+	private ListStore liststore_index;
 	private ListStore liststore_ignored_directories;
 	private ListStore liststore_ignored_files;
-	private ListStore liststore_gnored_directories_with_content;
-	private TreeView treeview_index_recursively;
-	private TreeView treeview_index_single;
+	private ListStore liststore_ignored_directories_with_content;
+	private TreeView treeview_index;
 	private TreeView treeview_ignored_directories;
 	private TreeView treeview_ignored_directories_with_content;
 	private TreeView treeview_ignored_files;
-	private ToggleButton togglebutton_recurse_home;
-	private ToggleButton togglebutton_recurse_desktop;
-	private ToggleButton togglebutton_recurse_documents;
-	private ToggleButton togglebutton_recurse_music;
-	private ToggleButton togglebutton_recurse_pictures;
-	private ToggleButton togglebutton_recurse_videos;
-	private ToggleButton togglebutton_recurse_download;
-	private ToggleButton togglebutton_single_home;
-	private ToggleButton togglebutton_single_desktop;
-	private ToggleButton togglebutton_single_documents;
-	private ToggleButton togglebutton_single_music;
-	private ToggleButton togglebutton_single_pictures;
-	private ToggleButton togglebutton_single_videos;
-	private ToggleButton togglebutton_single_download;
+	private TreeViewColumn treeviewcolumn_index1;
+	private TreeViewColumn treeviewcolumn_index2;
+	private ToggleButton togglebutton_home;
+	private ToggleButton togglebutton_desktop;
+	private ToggleButton togglebutton_documents;
+	private ToggleButton togglebutton_music;
+	private ToggleButton togglebutton_pictures;
+	private ToggleButton togglebutton_videos;
+	private ToggleButton togglebutton_download;
 	private Notebook notebook;
 
 	public Preferences () {
@@ -119,38 +112,31 @@ public class Tracker.Preferences {
 		hscale_disk_space_limit = builder.get_object ("hscale_disk_space_limit") as Scale;
 		hscale_throttle = builder.get_object ("hscale_throttle") as Scale;
 		hscale_drop_device_threshold = builder.get_object ("hscale_drop_device_threshold") as Scale;
-		togglebutton_recurse_home = builder.get_object ("togglebutton_recurse_home") as ToggleButton;
-		togglebutton_recurse_desktop = builder.get_object ("togglebutton_recurse_desktop") as ToggleButton;
-		togglebutton_recurse_documents = builder.get_object ("togglebutton_recurse_documents") as ToggleButton;
-		togglebutton_recurse_music = builder.get_object ("togglebutton_recurse_music") as ToggleButton;
-		togglebutton_recurse_pictures = builder.get_object ("togglebutton_recurse_pictures") as ToggleButton;
-		togglebutton_recurse_videos = builder.get_object ("togglebutton_recurse_videos") as ToggleButton;
-		togglebutton_recurse_download = builder.get_object ("togglebutton_recurse_download") as ToggleButton;
-		togglebutton_single_home = builder.get_object ("togglebutton_single_home") as ToggleButton;
-		togglebutton_single_desktop = builder.get_object ("togglebutton_single_desktop") as ToggleButton;
-		togglebutton_single_documents = builder.get_object ("togglebutton_single_documents") as ToggleButton;
-		togglebutton_single_music = builder.get_object ("togglebutton_single_music") as ToggleButton;
-		togglebutton_single_pictures = builder.get_object ("togglebutton_single_pictures") as ToggleButton;
-		togglebutton_single_videos = builder.get_object ("togglebutton_single_videos") as ToggleButton;
-		togglebutton_single_download = builder.get_object ("togglebutton_single_download") as ToggleButton;
-
-		treeview_index_recursively = builder.get_object ("treeview_index_recursively") as TreeView;
-		treeview_index_single = builder.get_object ("treeview_index_single") as TreeView;
+		togglebutton_home = builder.get_object ("togglebutton_home") as ToggleButton;
+		togglebutton_desktop = builder.get_object ("togglebutton_desktop") as ToggleButton;
+		togglebutton_documents = builder.get_object ("togglebutton_documents") as ToggleButton;
+		togglebutton_music = builder.get_object ("togglebutton_music") as ToggleButton;
+		togglebutton_pictures = builder.get_object ("togglebutton_pictures") as ToggleButton;
+		togglebutton_videos = builder.get_object ("togglebutton_videos") as ToggleButton;
+		togglebutton_download = builder.get_object ("togglebutton_download") as ToggleButton;
+
+		treeview_index = builder.get_object ("treeview_index") as TreeView;
+		treeviewcolumn_index1 = builder.get_object ("treeviewcolumn_index1") as TreeViewColumn;
+		treeviewcolumn_index2 = builder.get_object ("treeviewcolumn_index1") as TreeViewColumn;
 		treeview_ignored_directories = builder.get_object ("treeview_ignored_directories") as TreeView;
 		treeview_ignored_directories_with_content = builder.get_object ("treeview_ignored_directories_with_content") as TreeView;
 		treeview_ignored_files = builder.get_object ("treeview_ignored_files") as TreeView;
 
-		setup_standard_treeview (treeview_index_recursively, _("Directory"));
-		setup_standard_treeview (treeview_index_single, _("Directory"));
-		setup_standard_treeview (treeview_ignored_directories, _("Directory"));
-		setup_standard_treeview (treeview_ignored_directories_with_content, _("Directory"));
-		setup_standard_treeview (treeview_ignored_files, _("File"));
+		treeview_setup (treeview_index, _("Directory"), true);
+		treeview_setup (treeview_ignored_directories, _("Directory"), false);
+		treeview_setup (treeview_ignored_directories_with_content, _("Directory"), false);
+		treeview_setup (treeview_ignored_files, _("File"), false);
 
-		liststore_index_recursively = builder.get_object ("liststore_index_recursively") as ListStore;
-		liststore_index_single = builder.get_object ("liststore_index_single") as ListStore;
+		liststore_index = builder.get_object ("liststore_index") as ListStore;
+		liststore_index.set_sort_column_id (0, Gtk.SortType.ASCENDING);
 		liststore_ignored_directories = builder.get_object ("liststore_ignored_directories") as ListStore;
 		liststore_ignored_files = builder.get_object ("liststore_ignored_files") as ListStore;
-		liststore_gnored_directories_with_content = builder.get_object ("liststore_gnored_directories_with_content") as ListStore;
+		liststore_ignored_directories_with_content = builder.get_object ("liststore_ignored_directories_with_content") as ListStore;
 
 		// Set initial values
 		checkbutton_enable_index_on_battery.active = settings.get_boolean ("index-on-battery");
@@ -165,28 +151,20 @@ public class Tracker.Preferences {
 		hscale_throttle.set_value ((double) settings.get_int ("throttle"));
 		hscale_drop_device_threshold.set_value ((double) settings.get_int ("removable-days-threshold"));
 
-		// FIXME: Work out how to do this
-		fill_in_model (liststore_index_recursively, settings.get_strv ("index-recursive-directories"));
-		fill_in_model (liststore_index_single, settings.get_strv ("index-single-directories"));
-		fill_in_model (liststore_ignored_directories, settings.get_strv ("ignored-directories"));
-		fill_in_model (liststore_ignored_files, settings.get_strv ("ignored-files"));
-		fill_in_model (liststore_gnored_directories_with_content, settings.get_strv ("ignored-directories-with-content"));
+		fill_in_model (liststore_index, settings.get_strv ("index-recursive-directories"), true, true);
+		fill_in_model (liststore_index, settings.get_strv ("index-single-directories"), true, false);
+		fill_in_model (liststore_ignored_directories, settings.get_strv ("ignored-directories"), false, false);
+		fill_in_model (liststore_ignored_files, settings.get_strv ("ignored-files"), false, false);
+		fill_in_model (liststore_ignored_directories_with_content, settings.get_strv ("ignored-directories-with-content"), false, false);
 
 		//weak string = get_user_special_dir (DESKTOP)
-		togglebutton_recurse_home.active = model_contains (liststore_index_recursively, HOME_STRING);
-		togglebutton_recurse_desktop.active = model_contains (liststore_index_recursively, "&DESKTOP");
-		togglebutton_recurse_documents.active = model_contains (liststore_index_recursively, "&DOCUMENTS");
-		togglebutton_recurse_music.active = model_contains (liststore_index_recursively, "&MUSIC");
-		togglebutton_recurse_pictures.active = model_contains (liststore_index_recursively, "&PICTURES");
-		togglebutton_recurse_videos.active = model_contains (liststore_index_recursively, "&VIDEOS");
-		togglebutton_recurse_download.active = model_contains (liststore_index_recursively, "&DOWNLOAD");
-		togglebutton_single_home.active = model_contains (liststore_index_single, HOME_STRING);
-		togglebutton_single_desktop.active = model_contains (liststore_index_single, "&DESKTOP");
-		togglebutton_single_documents.active = model_contains (liststore_index_single, "&DOCUMENTS");
-		togglebutton_single_music.active = model_contains (liststore_index_single, "&MUSIC");
-		togglebutton_single_pictures.active = model_contains (liststore_index_single, "&PICTURES");
-		togglebutton_single_videos.active = model_contains (liststore_index_single, "&VIDEOS");
-		togglebutton_single_download.active = model_contains (liststore_index_single, "&DOWNLOAD");
+		togglebutton_home.active = model_contains (liststore_index, HOME_STRING);
+		togglebutton_desktop.active = model_contains (liststore_index, "&DESKTOP");
+		togglebutton_documents.active = model_contains (liststore_index, "&DOCUMENTS");
+		togglebutton_music.active = model_contains (liststore_index, "&MUSIC");
+		togglebutton_pictures.active = model_contains (liststore_index, "&PICTURES");
+		togglebutton_videos.active = model_contains (liststore_index, "&VIDEOS");
+		togglebutton_download.active = model_contains (liststore_index, "&DOWNLOAD");
 
 		// We hide this page because it contains the start up
 		// delay which is not necessary to display for most people.
@@ -230,11 +208,11 @@ public class Tracker.Preferences {
 			debug ("Converting directories for storage");
 
 			// FIXME: Work out how to do this.
-			settings.set_strv ("index-single-directories", model_to_strv (liststore_index_single));
-			settings.set_strv ("index-recursive-directories", model_to_strv (liststore_index_recursively));
+			settings.set_strv ("index-single-directories", model_to_strv (liststore_index));
+			settings.set_strv ("index-recursive-directories", model_to_strv (liststore_index));
 			settings.set_strv ("ignored-directories", model_to_strv (liststore_ignored_directories));
 			settings.set_strv ("ignored-files", model_to_strv (liststore_ignored_files));
-			settings.set_strv ("ignored-directories-with-content", model_to_strv (liststore_gnored_directories_with_content));
+			settings.set_strv ("ignored-directories-with-content", model_to_strv (liststore_ignored_directories_with_content));
 
 			settings.set_int ("low-disk-space-limit", (int) hscale_disk_space_limit.get_value ());
 			settings.set_int ("throttle", (int) hscale_throttle.get_value ());
@@ -310,23 +288,13 @@ public class Tracker.Preferences {
 	}
 
 	[CCode (instance_pos = -1)]
-	public void button_index_recursively_add_clicked_cb (Button source) {
-		add_dir (liststore_index_recursively);
+	public void button_index_add_clicked_cb (Button source) {
+		add_dir (liststore_index);
 	}
 
 	[CCode (instance_pos = -1)]
-	public void button_index_recursively_remove_clicked_cb (Button source) {
-		del_dir (treeview_index_recursively);
-	}
-
-	[CCode (instance_pos = -1)]
-	public void button_index_single_remove_clicked_cb (Button source) {
-		del_dir (treeview_index_single);
-	}
-
-	[CCode (instance_pos = -1)]
-	public void button_index_single_add_clicked_cb (Button source) {
-		add_dir (liststore_index_single);
+	public void button_index_remove_clicked_cb (Button source) {
+		del_dir (treeview_index);
 	}
 
 	[CCode (instance_pos = -1)]
@@ -346,7 +314,7 @@ public class Tracker.Preferences {
 
 	[CCode (instance_pos = -1)]
 	public void button_ignored_directories_with_content_add_clicked_cb (Button source) {
-		add_freevalue (liststore_gnored_directories_with_content);
+		add_freevalue (liststore_ignored_directories_with_content);
 	}
 
 	[CCode (instance_pos = -1)]
@@ -367,10 +335,13 @@ public class Tracker.Preferences {
 	private void togglebutton_directory_update_model (ToggleButton source, ListStore store, string to_check) {
 		if (source.active && !model_contains (store, to_check)) {
 			TreeIter iter;
-			liststore_index_recursively.append (out iter);
+			liststore_index.append (out iter);
 			var v = Value (typeof (string));
 			v.set_string (to_check);
-			liststore_index_recursively.set_value (iter, 0, v);
+
+			bool recurse = to_check != HOME_STRING;
+			liststore_index.set_value (iter, 0, v);
+			liststore_index.set_value (iter, 1, recurse);
 		}
 
 		if (!source.active && model_contains (store, to_check)) {
@@ -392,73 +363,38 @@ public class Tracker.Preferences {
 	}
 
 	[CCode (instance_pos = -1)]
-	public void togglebutton_recurse_home_toggled_cb (ToggleButton source) {
-		togglebutton_directory_update_model (source, liststore_index_recursively, HOME_STRING);
-	}
-
-	[CCode (instance_pos = -1)]
-	public void togglebutton_recurse_desktop_toggled_cb (ToggleButton source) {
-		togglebutton_directory_update_model (source, liststore_index_recursively, Environment.get_user_special_dir (UserDirectory.DESKTOP));
-	}
-
-	[CCode (instance_pos = -1)]
-	public void togglebutton_recurse_documents_toggled_cb (ToggleButton source) {
-		togglebutton_directory_update_model (source, liststore_index_recursively, Environment.get_user_special_dir (UserDirectory.DOCUMENTS));
-	}
-
-	[CCode (instance_pos = -1)]
-	public void togglebutton_recurse_music_toggled_cb (ToggleButton source) {
-		togglebutton_directory_update_model (source, liststore_index_recursively, Environment.get_user_special_dir (UserDirectory.MUSIC));
-	}
-
-	[CCode (instance_pos = -1)]
-	public void togglebutton_recurse_pictures_toggled_cb (ToggleButton source) {
-		togglebutton_directory_update_model (source, liststore_index_recursively, Environment.get_user_special_dir (UserDirectory.PICTURES));
-	}
-
-	[CCode (instance_pos = -1)]
-	public void togglebutton_recurse_videos_toggled_cb (ToggleButton source) {
-		togglebutton_directory_update_model (source, liststore_index_recursively, Environment.get_user_special_dir (UserDirectory.VIDEOS));
-	}
-
-	[CCode (instance_pos = -1)]
-	public void togglebutton_recurse_download_toggled_cb (ToggleButton source) {
-		togglebutton_directory_update_model (source, liststore_index_recursively, Environment.get_user_special_dir (UserDirectory.DOWNLOAD));
+	public void togglebutton_home_toggled_cb (ToggleButton source) {
+		togglebutton_directory_update_model (source, liststore_index, HOME_STRING);
 	}
 
 	[CCode (instance_pos = -1)]
-	public void togglebutton_single_home_toggled_cb (ToggleButton source) {
-		togglebutton_directory_update_model (source, liststore_index_single, HOME_STRING);
+	public void togglebutton_desktop_toggled_cb (ToggleButton source) {
+		togglebutton_directory_update_model (source, liststore_index, Environment.get_user_special_dir (UserDirectory.DESKTOP));
 	}
 
 	[CCode (instance_pos = -1)]
-	public void togglebutton_single_desktop_toggled_cb (ToggleButton source) {
-		togglebutton_directory_update_model (source, liststore_index_single, Environment.get_user_special_dir (UserDirectory.DESKTOP));
+	public void togglebutton_documents_toggled_cb (ToggleButton source) {
+		togglebutton_directory_update_model (source, liststore_index, Environment.get_user_special_dir (UserDirectory.DOCUMENTS));
 	}
 
 	[CCode (instance_pos = -1)]
-	public void togglebutton_single_documents_toggled_cb (ToggleButton source) {
-		togglebutton_directory_update_model (source, liststore_index_single, Environment.get_user_special_dir (UserDirectory.DOCUMENTS));
+	public void togglebutton_music_toggled_cb (ToggleButton source) {
+		togglebutton_directory_update_model (source, liststore_index, Environment.get_user_special_dir (UserDirectory.MUSIC));
 	}
 
 	[CCode (instance_pos = -1)]
-	public void togglebutton_single_music_toggled_cb (ToggleButton source) {
-		togglebutton_directory_update_model (source, liststore_index_single, Environment.get_user_special_dir (UserDirectory.MUSIC));
+	public void togglebutton_pictures_toggled_cb (ToggleButton source) {
+		togglebutton_directory_update_model (source, liststore_index, Environment.get_user_special_dir (UserDirectory.PICTURES));
 	}
 
 	[CCode (instance_pos = -1)]
-	public void togglebutton_single_pictures_toggled_cb (ToggleButton source) {
-		togglebutton_directory_update_model (source, liststore_index_single, Environment.get_user_special_dir (UserDirectory.PICTURES));
+	public void togglebutton_videos_toggled_cb (ToggleButton source) {
+		togglebutton_directory_update_model (source, liststore_index, Environment.get_user_special_dir (UserDirectory.VIDEOS));
 	}
 
 	[CCode (instance_pos = -1)]
-	public void togglebutton_single_videos_toggled_cb (ToggleButton source) {
-		togglebutton_directory_update_model (source, liststore_index_single, Environment.get_user_special_dir (UserDirectory.VIDEOS));
-	}
-
-	[CCode (instance_pos = -1)]
-	public void togglebutton_single_download_toggled_cb (ToggleButton source) {
-		togglebutton_directory_update_model (source, liststore_index_single, Environment.get_user_special_dir (UserDirectory.DOWNLOAD));
+	public void togglebutton_download_toggled_cb (ToggleButton source) {
+		togglebutton_directory_update_model (source, liststore_index, Environment.get_user_special_dir (UserDirectory.DOWNLOAD));
 	}
 
 	private void add_freevalue (ListStore model) {
@@ -552,8 +488,25 @@ public class Tracker.Preferences {
 
 	public bool model_contains (TreeModel model, string needle) {
 		TreeIter iter;
+		string needle_evaluated;
 		bool valid;
 
+		if (needle == "&DESKTOP") {
+			needle_evaluated = Environment.get_user_special_dir (UserDirectory.DESKTOP);
+		} else if (needle == "&DOCUMENTS") {
+			needle_evaluated = Environment.get_user_special_dir (UserDirectory.DOCUMENTS);
+		} else if (needle == "&MUSIC") {
+			needle_evaluated = Environment.get_user_special_dir (UserDirectory.MUSIC);
+		} else if (needle == "&PICTURES") {
+			needle_evaluated = Environment.get_user_special_dir (UserDirectory.PICTURES);
+		} else if (needle == "&VIDEOS") {
+			needle_evaluated = Environment.get_user_special_dir (UserDirectory.VIDEOS);
+		} else if (needle == "&DOWNLOAD") {
+			needle_evaluated = Environment.get_user_special_dir (UserDirectory.DOWNLOAD);
+		} else {
+			needle_evaluated = needle;
+		}
+
 		for (valid = model.get_iter_first (out iter);
 		     valid;
 		     valid = model.iter_next (ref iter)) {
@@ -561,7 +514,7 @@ public class Tracker.Preferences {
 
 			model.get_value (iter, 0, out value);
 
-			if (value.get_string () == needle) {
+			if (value.get_string () == needle_evaluated) {
 				return true;
 			}
 		}
@@ -569,29 +522,87 @@ public class Tracker.Preferences {
 		return false;
 	}
 
-	private void fill_in_model (ListStore model, string[] list) {
+	private void fill_in_model (ListStore model, string[] list, bool have_recurse, bool recurse) {
 		int position = 0;
 
 		foreach (string str in list) {
+			if (str == "&DESKTOP") {
+				str = Environment.get_user_special_dir (UserDirectory.DESKTOP);
+			} else if (str == "&DOCUMENTS") {
+				str = Environment.get_user_special_dir (UserDirectory.DOCUMENTS);
+			} else if (str == "&MUSIC") {
+				str = Environment.get_user_special_dir (UserDirectory.MUSIC);
+			} else if (str == "&PICTURES") {
+				str = Environment.get_user_special_dir (UserDirectory.PICTURES);
+			} else if (str == "&VIDEOS") {
+				str = Environment.get_user_special_dir (UserDirectory.VIDEOS);
+			} else if (str == "&DOWNLOAD") {
+				str = Environment.get_user_special_dir (UserDirectory.DOWNLOAD);
+			}
+
 			try {
-				model.insert_with_values (null,
-				                          position++,
-				                          0,
-				                          Filename.to_utf8 (str,
-				                                            -1,
-				                                            null,
-				                                            null));
+				if (have_recurse)
+					model.insert_with_values (null,
+					                          position++,
+					                          0,
+					                          Filename.to_utf8 (str,
+					                                            -1,
+					                                            null,
+					                                            null),
+					                          1,
+					                          recurse,
+					                          -1);
+				else
+					model.insert_with_values (null,
+					                          position++,
+					                          0,
+					                          Filename.to_utf8 (str,
+					                                            -1,
+					                                            null,
+					                                            null),
+					                          -1);
 			} catch (GLib.ConvertError e) {
 				print ("Could not convert filename to UTF8: %s", e.message);
 			}
 		}
 	}
 
-	private void setup_standard_treeview (TreeView view, string title) {
-		TreeViewColumn column = new TreeViewColumn.with_attributes (title,
-		                                                            new CellRendererText (),
-		                                                            "text", 0);
+	private void treeview_setup (TreeView view, string title, bool show_recurse_column) {
+		TreeViewColumn column;
+		GLib.List<weak TreeViewColumn> columns = view.get_columns ();
+
+		// Needed to fix glade mess
+		foreach (TreeViewColumn c in columns) {
+			view.remove_column (c);
+		}
+
+		column = new TreeViewColumn.with_attributes (title,
+		                                             new CellRendererText (),
+		                                             "text", 0,
+		                                             null);
+		column.set_expand (true);
 		view.append_column (column);
+
+		if (show_recurse_column) {
+			ListStore store = view.get_model () as ListStore;
+			CellRendererToggle cell = new CellRendererToggle ();
+
+			column = new TreeViewColumn.with_attributes ("Recurse",
+			                                             cell,
+			                                             "active", 1,
+			                                             null);
+			column.set_expand (false);
+			column.set_fixed_width (50);
+			view.append_column (column);
+
+			cell.toggled.connect ((toggle, path) => {
+				var tree_path = new TreePath.from_string (path);
+				TreeIter iter;
+
+				store.get_iter (out iter, tree_path);
+				store.set (iter, 1, !toggle.active);
+			});
+		}
 	}
 }
 



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