[tracker] tracker-preferences: Added 'control' tab giving more control of what is indexed



commit a95c503dad76f7e67d9a543eb08bd6fca58b041a
Author: Martyn Russell <martyn lanedo com>
Date:   Fri May 9 12:57:09 2014 +0100

    tracker-preferences: Added 'control' tab giving more control of what is indexed
    
    Specifically:
    - allowing people to disable indexing file content
    - allowing indexing of numbers

 src/tracker-preferences/tracker-preferences.ui   |   69 +---------------------
 src/tracker-preferences/tracker-preferences.vala |   35 +++++++++++
 2 files changed, 38 insertions(+), 66 deletions(-)
---
diff --git a/src/tracker-preferences/tracker-preferences.ui b/src/tracker-preferences/tracker-preferences.ui
index 637c8d7..2310721 100644
--- a/src/tracker-preferences/tracker-preferences.ui
+++ b/src/tracker-preferences/tracker-preferences.ui
@@ -1489,6 +1489,7 @@ Most commonly this is used to ignore directories like *~, *.o, *.la, etc</proper
                                     <property name="use_underline">True</property>
                                     <property name="xalign">0</property>
                                     <property name="draw_indicator">True</property>
+                                    <signal name="toggled" 
handler="tracker_preferences_checkbutton_index_file_content_toggled_cb" swapped="no"/>
                                   </object>
                                   <packing>
                                     <property name="expand">False</property>
@@ -1505,6 +1506,7 @@ Most commonly this is used to ignore directories like *~, *.o, *.la, etc</proper
                                     <property name="use_underline">True</property>
                                     <property name="xalign">0</property>
                                     <property name="draw_indicator">True</property>
+                                    <signal name="toggled" 
handler="tracker_preferences_checkbutton_index_numbers_toggled_cb" swapped="no"/>
                                   </object>
                                   <packing>
                                     <property name="expand">False</property>
@@ -1541,72 +1543,7 @@ Most commonly this is used to ignore directories like *~, *.o, *.la, etc</proper
                   </packing>
                 </child>
                 <child>
-                  <object class="GtkFrame" id="frame_control">
-                    <property name="visible">True</property>
-                    <property name="can_focus">False</property>
-                    <property name="resize_mode">queue</property>
-                    <property name="label_xalign">0</property>
-                    <property name="shadow_type">none</property>
-                    <child>
-                      <object class="GtkAlignment" id="alignment10">
-                        <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="GtkBox" id="vbox15">
-                            <property name="visible">True</property>
-                            <property name="can_focus">False</property>
-                            <property name="orientation">vertical</property>
-                            <property name="spacing">18</property>
-                            <child>
-                              <object class="GtkBox" id="vbox16">
-                                <property name="visible">True</property>
-                                <property name="can_focus">False</property>
-                                <property name="orientation">vertical</property>
-                                <child>
-                                  <object class="GtkCheckButton" id="checkbutton_start_on_login">
-                                    <property name="label" translatable="yes">_Start monitoring and updating 
index on login</property>
-                                    <property name="visible">True</property>
-                                    <property name="can_focus">True</property>
-                                    <property name="receives_default">False</property>
-                                    <property name="use_underline">True</property>
-                                    <property name="xalign">0</property>
-                                    <property name="draw_indicator">True</property>
-                                  </object>
-                                  <packing>
-                                    <property name="expand">False</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">0</property>
-                              </packing>
-                            </child>
-                          </object>
-                        </child>
-                      </object>
-                    </child>
-                    <child type="label">
-                      <object class="GtkLabel" id="label18">
-                        <property name="visible">True</property>
-                        <property name="can_focus">False</property>
-                        <property name="label" translatable="yes">When is indexer running?</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>
+                  <placeholder/>
                 </child>
               </object>
               <packing>
diff --git a/src/tracker-preferences/tracker-preferences.vala 
b/src/tracker-preferences/tracker-preferences.vala
index 3f072cc..f0e9c4f 100644
--- a/src/tracker-preferences/tracker-preferences.vala
+++ b/src/tracker-preferences/tracker-preferences.vala
@@ -29,6 +29,7 @@ extern static const string UIDIR;
 extern static const string SRCDIR;
 
 public class Tracker.Preferences {
+       private GLib.Settings settings_fts = null;
        private GLib.Settings settings_miner_fs = null;
        private GLib.Settings settings_extract = null;
 
@@ -67,6 +68,8 @@ public class Tracker.Preferences {
        private ToggleButton togglebutton_pictures;
        private ToggleButton togglebutton_videos;
        private ToggleButton togglebutton_download;
+       private CheckButton checkbutton_index_file_content;
+       private CheckButton checkbutton_index_numbers;
        private Box hbox_duplicate_warning;
        private Button button_reindex;
        private Notebook notebook;
@@ -76,10 +79,20 @@ public class Tracker.Preferences {
 
                HOME_STRING_EVALUATED = dir_from_config (HOME_STRING);
 
+               settings_fts = new GLib.Settings ("org.freedesktop.Tracker.FTS");
+               /* settings_fts.delay(); */
+
                settings_miner_fs = new GLib.Settings ("org.freedesktop.Tracker.Miner.Files");
+               /* settings_miner_fs.delay(); */
+
                settings_extract = new GLib.Settings ("org.freedesktop.Tracker.Extract");
+               /* settings_extract.delay(); */
 
                // Change notification for any key in the schema
+               settings_fts.changed.connect ((key) => {
+                     print ("tracker-fts: Key '%s' changed\n", key);
+               });
+
                settings_miner_fs.changed.connect ((key) => {
                      print ("tracker-miner-fs: Key '%s' changed\n", key);
                });
@@ -135,6 +148,8 @@ public class Tracker.Preferences {
                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;
+               checkbutton_index_file_content = builder.get_object ("checkbutton_index_file_content") as 
CheckButton;
+               checkbutton_index_numbers = builder.get_object ("checkbutton_index_numbers") as CheckButton;
                hbox_duplicate_warning = builder.get_object ("hbox_duplicate_warning") as Box;
 
                button_reindex = builder.get_object ("button_reindex") as Button;
@@ -211,6 +226,9 @@ public class Tracker.Preferences {
                togglebutton_videos.active = model_contains (liststore_index, "&VIDEOS");
                togglebutton_download.active = model_contains (liststore_index, "&DOWNLOAD");
 
+               checkbutton_index_file_content.active = settings_fts.get_int ("max-words-to-index") > 0;
+               checkbutton_index_numbers.active = settings_fts.get_boolean ("ignore-numbers") != true;
+
                // Connect signals
                // builder.connect_signals (null);
                builder.connect_signals_full (connect_signals);
@@ -276,6 +294,8 @@ public class Tracker.Preferences {
                        settings_extract.set_enum ("sched-idle", sched_idle);
 
                        debug ("Saving settings...");
+                       settings_fts.apply ();
+                       debug ("  tracker-fts: Done");
                        settings_miner_fs.apply ();
                        debug ("  tracker-miner-fs: Done");
                        settings_extract.apply ();
@@ -459,6 +479,21 @@ public class Tracker.Preferences {
        }
 
        [CCode (instance_pos = -1)]
+       public void checkbutton_index_file_content_toggled_cb (CheckButton source) {
+               // FIXME: Should make number configurable, 10000 is the default.
+               if (source.active) {
+                       settings_fts.reset ("max-words-to-index");
+               } else {
+                       settings_fts.set_int ("max-words-to-index", 0);
+               }
+       }
+
+       [CCode (instance_pos = -1)]
+       public void checkbutton_index_numbers_toggled_cb (CheckButton source) {
+               settings_fts.set_boolean ("ignore-numbers", !source.active);
+       }
+
+       [CCode (instance_pos = -1)]
        public void button_reindex_clicked_cb (Button source) {
                stdout.printf ("Reindexing...\n");
 


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