[tracker/tracker-preferences-xdg-dirs] tracker-preferences: Add XDG dirs as toggle buttons



commit b425a503545f8488892c46e8b31e82251983c721
Author: Martyn Russell <martyn lanedo com>
Date:   Wed Sep 14 19:31:23 2011 +0100

    tracker-preferences: Add XDG dirs as toggle buttons

 src/tracker-preferences/tracker-preferences.ui   |  655 +++++++++++++++++-----
 src/tracker-preferences/tracker-preferences.vala |  137 ++++-
 2 files changed, 629 insertions(+), 163 deletions(-)
---
diff --git a/src/tracker-preferences/tracker-preferences.ui b/src/tracker-preferences/tracker-preferences.ui
index aac6b98..2972633 100644
--- a/src/tracker-preferences/tracker-preferences.ui
+++ b/src/tracker-preferences/tracker-preferences.ui
@@ -1,6 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <interface>
   <requires lib="gtk+" version="2.16"/>
+  <!-- interface-naming-policy toplevel-contextual -->
   <object class="GtkAdjustment" id="adjustment_delay">
     <property name="upper">1000</property>
     <property name="value">10</property>
@@ -24,11 +25,6 @@
     <property name="step_increment">1</property>
     <property name="page_increment">2</property>
   </object>
-  <object class="GtkImage" id="image1">
-    <property name="visible">True</property>
-    <property name="can_focus">False</property>
-    <property name="stock">gtk-missing-image</property>
-  </object>
   <object class="GtkListStore" id="liststore_gnored_directories_with_content">
     <columns>
       <!-- column-name Directory -->
@@ -70,13 +66,12 @@
     <signal name="delete-event" handler="gtk_main_quit" swapped="no"/>
     <signal name="response" handler="tracker_preferences_response_cb" swapped="no"/>
     <child internal-child="vbox">
-      <object class="GtkBox" id="dialog-vbox1">
+      <object class="GtkVBox" id="dialog-vbox1">
         <property name="visible">True</property>
         <property name="can_focus">False</property>
-        <property name="orientation">vertical</property>
         <property name="spacing">2</property>
         <child internal-child="action_area">
-          <object class="GtkButtonBox" id="dialog-action_area1">
+          <object class="GtkHButtonBox" id="dialog-action_area1">
             <property name="visible">True</property>
             <property name="can_focus">False</property>
             <property name="layout_style">end</property>
@@ -111,6 +106,12 @@
               </packing>
             </child>
           </object>
+          <packing>
+            <property name="expand">False</property>
+            <property name="fill">True</property>
+            <property name="pack_type">end</property>
+            <property name="position">0</property>
+          </packing>
         </child>
         <child>
           <object class="GtkNotebook" id="notebook">
@@ -167,6 +168,10 @@
                                         <property name="visible">True</property>
                                         <property name="can_focus">True</property>
                                         <property name="invisible_char">â</property>
+                                        <property name="primary_icon_activatable">False</property>
+                                        <property name="secondary_icon_activatable">False</property>
+                                        <property name="primary_icon_sensitive">True</property>
+                                        <property name="secondary_icon_sensitive">True</property>
                                         <property name="adjustment">adjustment_delay</property>
                                         <property name="climb_rate">1</property>
                                         <property name="snap_to_ticks">True</property>
@@ -419,158 +424,168 @@
                               <object class="GtkVBox" id="vbox11">
                                 <property name="visible">True</property>
                                 <property name="can_focus">False</property>
+                                <property name="spacing">18</property>
                                 <child>
-                                  <object class="GtkLabel" id="label_disk_space_limit">
+                                  <object class="GtkVBox" id="vbox13">
                                     <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>
-                                    <property name="mnemonic_widget">hscale_disk_space_limit</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="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>
-                                <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">2</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">
+                                      <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="label" translatable="yes">Slower</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="top_attach">1</property>
-                                        <property name="bottom_attach">2</property>
-                                        <property name="y_options"></property>
+                                        <property name="expand">False</property>
+                                        <property name="fill">True</property>
+                                        <property name="position">0</property>
                                       </packing>
                                     </child>
                                     <child>
-                                      <object class="GtkHScale" id="hscale_throttle">
+                                      <object class="GtkHScale" id="hscale_disk_space_limit">
                                         <property name="visible">True</property>
                                         <property name="can_focus">True</property>
-                                        <property name="adjustment">adjustment_throttle</property>
-                                        <property name="inverted">True</property>
+                                        <property name="adjustment">adjustment_disk_space_limit</property>
+                                        <property name="round_digits">0</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"/>
+                                        <signal name="format-value" handler="tracker_preferences_hscale_disk_space_limit_format_value_cb" swapped="no"/>
                                       </object>
                                       <packing>
-                                        <property name="right_attach">2</property>
+                                        <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">3</property>
+                                    <property name="position">0</property>
                                   </packing>
                                 </child>
                                 <child>
-                                  <object class="GtkLabel" id="label_device_drop_threshold1">
+                                  <object class="GtkVBox" id="vbox12">
                                     <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">Drop removable device from database after:</property>
-                                    <property name="use_underline">True</property>
-                                    <property name="mnemonic_widget">hscale_drop_device_threshold</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>
                                   </object>
                                   <packing>
-                                    <property name="expand">False</property>
+                                    <property name="expand">True</property>
                                     <property name="fill">True</property>
-                                    <property name="position">4</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>
                                     <child>
-                                      <object class="GtkHScale" id="hscale_drop_device_threshold">
+                                      <object class="GtkLabel" id="label_device_drop_threshold1">
                                         <property name="visible">True</property>
-                                        <property name="can_focus">True</property>
-                                        <property name="adjustment">adjustment_drop_device_threshold</property>
-                                        <property name="digits">0</property>
-                                        <signal name="format-value" handler="tracker_preferences_hscale_drop_device_threshold_format_value_cb" swapped="no"/>
+                                        <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">True</property>
+                                        <property name="expand">False</property>
                                         <property name="fill">True</property>
                                         <property name="position">0</property>
                                       </packing>
                                     </child>
                                     <child>
-                                      <object class="GtkLabel" id="label_days1">
+                                      <object class="GtkHScale" id="hscale_drop_device_threshold">
                                         <property name="visible">True</property>
-                                        <property name="can_focus">False</property>
-                                        <property name="xalign">1</property>
-                                        <property name="label" translatable="yes">Day(s)</property>
-                                        <property name="justify">right</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">False</property>
+                                        <property name="expand">True</property>
                                         <property name="fill">True</property>
                                         <property name="position">1</property>
                                       </packing>
@@ -579,7 +594,7 @@
                                   <packing>
                                     <property name="expand">True</property>
                                     <property name="fill">True</property>
-                                    <property name="position">5</property>
+                                    <property name="position">2</property>
                                   </packing>
                                 </child>
                               </object>
@@ -681,9 +696,6 @@
                                         <property name="headers_clickable">False</property>
                                         <property name="rules_hint">True</property>
                                         <property name="search_column">0</property>
-                                        <child internal-child="selection">
-                                          <object class="GtkTreeSelection" id="treeview-selection1"/>
-                                        </child>
                                       </object>
                                     </child>
                                   </object>
@@ -741,27 +753,7 @@
                                       </packing>
                                     </child>
                                     <child>
-                                      <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_text" translatable="yes">When toggled, this makes sure your home directory is included in the list.</property>
-                                        <property name="use_action_appearance">False</property>
-                                        <property name="active">True</property>
-                                        <signal name="toggled" handler="tracker_preferences_togglebutton_home_toggled_cb" swapped="no"/>
-                                        <child>
-                                          <object class="GtkImage" id="image11">
-                                            <property name="visible">True</property>
-                                            <property name="can_focus">False</property>
-                                            <property name="stock">gtk-home</property>
-                                          </object>
-                                        </child>
-                                      </object>
-                                      <packing>
-                                        <property name="expand">False</property>
-                                        <property name="fill">True</property>
-                                        <property name="position">2</property>
-                                      </packing>
+                                      <placeholder/>
                                     </child>
                                   </object>
                                   <packing>
@@ -777,6 +769,195 @@
                                 <property name="position">1</property>
                               </packing>
                             </child>
+                            <child>
+                              <object class="GtkHBox" id="hbox7">
+                                <property name="visible">True</property>
+                                <property name="can_focus">False</property>
+                                <property name="spacing">6</property>
+                                <child>
+                                  <object class="GtkToggleButton" id="togglebutton_recurse_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 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>
+                                  </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_recurse_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 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>
+                                  </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_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="position">2</property>
+                              </packing>
+                            </child>
                           </object>
                         </child>
                       </object>
@@ -847,9 +1028,6 @@
                                         <property name="headers_clickable">False</property>
                                         <property name="rules_hint">True</property>
                                         <property name="search_column">0</property>
-                                        <child internal-child="selection">
-                                          <object class="GtkTreeSelection" id="treeview-selection2"/>
-                                        </child>
                                       </object>
                                     </child>
                                   </object>
@@ -923,6 +1101,194 @@
                                 <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">
+                                        <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>
+                                      </object>
+                                    </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">
+                                        <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>
+                                      </object>
+                                    </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">
+                                        <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_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">
+                                        <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_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">
+                                        <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_single_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 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"/>
+                                    <child>
+                                      <object class="GtkImage" id="image23">
+                                        <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_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">
+                                        <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>
+                                      </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="position">2</property>
+                              </packing>
+                            </child>
                           </object>
                         </child>
                       </object>
@@ -1020,9 +1386,6 @@
                                             <property name="headers_visible">False</property>
                                             <property name="rules_hint">True</property>
                                             <property name="search_column">0</property>
-                                            <child internal-child="selection">
-                                              <object class="GtkTreeSelection" id="treeview-selection3"/>
-                                            </child>
                                           </object>
                                         </child>
                                       </object>
@@ -1159,9 +1522,6 @@
                                             <property name="headers_visible">False</property>
                                             <property name="rules_hint">True</property>
                                             <property name="search_column">0</property>
-                                            <child internal-child="selection">
-                                              <object class="GtkTreeSelection" id="treeview-selection4"/>
-                                            </child>
                                           </object>
                                         </child>
                                       </object>
@@ -1314,9 +1674,6 @@ Most commonly this is used to ignore directories like *~, *.o, *.la, etc</proper
                                         <property name="headers_clickable">False</property>
                                         <property name="rules_hint">True</property>
                                         <property name="search_column">0</property>
-                                        <child internal-child="selection">
-                                          <object class="GtkTreeSelection" id="treeview-selection5"/>
-                                        </child>
                                       </object>
                                     </child>
                                   </object>
diff --git a/src/tracker-preferences/tracker-preferences.vala b/src/tracker-preferences/tracker-preferences.vala
index f4b6007..42f6297 100644
--- a/src/tracker-preferences/tracker-preferences.vala
+++ b/src/tracker-preferences/tracker-preferences.vala
@@ -54,7 +54,20 @@ public class Tracker.Preferences {
 	private TreeView treeview_ignored_directories;
 	private TreeView treeview_ignored_directories_with_content;
 	private TreeView treeview_ignored_files;
-	private ToggleButton togglebutton_home;
+	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 Notebook notebook;
 
 	public Preferences () {
@@ -106,7 +119,20 @@ 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_home = builder.get_object ("togglebutton_home") as ToggleButton;
+		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;
@@ -146,7 +172,21 @@ public class Tracker.Preferences {
 		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"));
 
-		togglebutton_home.active = model_contains (liststore_index_recursively, HOME_STRING);
+		//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");
 
 		// We hide this page because it contains the start up
 		// delay which is not necessary to display for most people.
@@ -324,34 +364,103 @@ public class Tracker.Preferences {
 		del_dir (treeview_ignored_files);
 	}
 
-	[CCode (instance_pos = -1)]
-	public void togglebutton_home_toggled_cb (ToggleButton source) {
-		if (source.active && !model_contains (liststore_index_recursively, HOME_STRING)) {
+	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);
 			var v = Value (typeof (string));
-			v.set_string (HOME_STRING);
+			v.set_string (to_check);
 			liststore_index_recursively.set_value (iter, 0, v);
 		}
 
-		if (!source.active && model_contains (liststore_index_recursively, HOME_STRING)) {
+		if (!source.active && model_contains (store, to_check)) {
 			bool valid;
 			TreeIter iter;
 
-			valid = liststore_index_recursively.get_iter_first (out iter);
+			valid = store.get_iter_first (out iter);
 			while (valid) {
 				Value value;
-				liststore_index_recursively.get_value (iter, 0, out value);
-				if (value.get_string () == HOME_STRING) {
-					liststore_index_recursively.remove (iter);
-					valid = liststore_index_recursively.get_iter_first (out iter);
+				store.get_value (iter, 0, out value);
+				if (value.get_string () == to_check) {
+					store.remove (iter);
+					valid = store.get_iter_first (out iter);
 				} else {
-					valid = liststore_index_recursively.iter_next (ref iter);
+					valid = store.iter_next (ref iter);
 				}
 			}
 		}
 	}
 
+	[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));
+	}
+
+	[CCode (instance_pos = -1)]
+	public void togglebutton_single_home_toggled_cb (ToggleButton source) {
+		togglebutton_directory_update_model (source, liststore_index_single, HOME_STRING);
+	}
+
+	[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));
+	}
+
+	[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));
+	}
+
+	[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));
+	}
+
+	[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));
+	}
+
+	[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));
+	}
+
 	private void add_freevalue (ListStore model) {
 		Dialog dialog;
 		Entry entry;



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