[tracker] fixes GB#620354 make TST history persistent
- From: Martyn James Russell <mr src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [tracker] fixes GB#620354 make TST history persistent
- Date: Thu, 24 Jun 2010 08:17:10 +0000 (UTC)
commit 2e640f9aeae7447813b48fbdcad9ce39b5068e31
Author: Tshepang Lekhonkhobe <tshepang gmail com>
Date: Wed Jun 2 14:29:59 2010 +0200
fixes GB#620354 make TST history persistent
src/tracker-search-tool/tracker-entry.gs | 38 ++++++++++++++++++++----
src/tracker-search-tool/tracker-result-grid.gs | 9 ++----
2 files changed, 35 insertions(+), 12 deletions(-)
---
diff --git a/src/tracker-search-tool/tracker-entry.gs b/src/tracker-search-tool/tracker-entry.gs
index 4ea9c3c..00b0633 100644
--- a/src/tracker-search-tool/tracker-entry.gs
+++ b/src/tracker-search-tool/tracker-entry.gs
@@ -27,10 +27,15 @@ uses
/* wait 0.5s after each keystroke before performing a search */
const static RUN_DELAY : int = 500
+/* acceptable length of string for history */
+const static TOO_SHORT : int = 2
+
class TrackerSearchEntry : ComboBoxEntry implements Gtk.Activatable
id_invoker : uint = 0
entry : Entry
history : list of string
+ histfilename : string
+ histfile : FileStream
prop Query : TrackerQuery
@@ -56,8 +61,21 @@ class TrackerSearchEntry : ComboBoxEntry implements Gtk.Activatable
if p0 is EntryIconPosition.SECONDARY
entry.text = ""
+ histfilename = Path.build_filename (Environment.get_user_data_dir(),
+ "tracker", "history", null)
+ var temp = ""
history = new list of string
+ /* load history from file */
+ try
+ FileUtils.get_contents(histfilename, out temp)
+ for item in temp.split("\n")
+ if item.len() > TOO_SHORT
+ prepend_text(item)
+ history.add(item)
+ except e : FileError
+ print (e.message)
+
def private entry_changed ()
if entry.text is null
Query.SearchTerms = ""
@@ -80,26 +98,34 @@ class TrackerSearchEntry : ComboBoxEntry implements Gtk.Activatable
Query.SearchTerms = EscapeSparql (txt, true)
+ history_handler(txt)
+ return false
+
+ def history_handler (text : string)
/* remove leading and trailing whitespace before inserting items into
* history; this avoids having both "term" and " term " in there;
*/
- txt = txt.strip()
+ var txt = text.strip()
/* ensure that accented chars are represented the same way to
* avoid duplicated entries in history
*/
txt = txt.normalize(-1, NormalizeMode.NFC)
- if txt.len() > 2
- /* do not store items in history */
+ if txt.len() > TOO_SHORT
+
+ /* do not store duplicate items in history */
for item in history
if txt == item
- return false
+ return
history.add(txt)
prepend_text(txt)
-
- return false
+ histfile = FileStream.open(histfilename, "a")
+ if (FileStream.open(histfilename, "a") != null)
+ histfile.printf("%s\n", txt)
+ else
+ print("error: '%s' is not writable", histfilename)
def sync_action_properties (action : Action)
return
diff --git a/src/tracker-search-tool/tracker-result-grid.gs b/src/tracker-search-tool/tracker-result-grid.gs
index f1ee1ff..0941844 100644
--- a/src/tracker-search-tool/tracker-result-grid.gs
+++ b/src/tracker-search-tool/tracker-result-grid.gs
@@ -59,6 +59,7 @@ class TrackerResultGrid : ScrolledWindow
_query.ClearSearchResults += def ()
store.clear ()
+
def GetSelectedPath () : TreePath?
if iconview.get_selected_items () is not null
return (Gtk.TreePath) iconview.get_selected_items ().data
@@ -69,8 +70,8 @@ class TrackerResultGrid : ScrolledWindow
def GetSelectedUri () : weak string
iter : TreeIter
uri : weak string
-
var path = GetSelectedPath ()
+
if path is not null
store.get_iter (out iter, path)
store.get (iter, ResultColumns.Uri, out uri);
@@ -131,9 +132,7 @@ class TrackerResultGrid : ScrolledWindow
var id = results[i]
var mime = results[i+2]
i += 3
-
-
-
+
if uri.has_prefix ("file://")
has_results = true
@@ -160,8 +159,6 @@ class TrackerResultGrid : ScrolledWindow
iconview.select_path (path)
-
-
def ActivateUri (path : TreePath)
iter : TreeIter
is_dir : bool = false
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]