diff --git a/src/qtgui/guiutils.cpp b/src/qtgui/guiutils.cpp
index 5e806c40..7b51f6b6 100644
--- a/src/qtgui/guiutils.cpp
+++ b/src/qtgui/guiutils.cpp
@@ -1,5 +1,5 @@
#ifndef lint
-static char rcsid[] = "@(#$Id: guiutils.cpp,v 1.17 2006-09-13 13:53:35 dockes Exp $ (C) 2005 Jean-Francois Dockes";
+static char rcsid[] = "@(#$Id: guiutils.cpp,v 1.18 2006-09-13 15:31:06 dockes Exp $ (C) 2005 Jean-Francois Dockes";
#endif
/*
* This program is free software; you can redistribute it and/or modify
@@ -139,6 +139,8 @@ void rwSettings(bool writing)
SETTING_RW(prefs.showicons, "/Recoll/prefs/reslist/showicons", Bool, true);
SETTING_RW(prefs.autoSearchOnWS, "/Recoll/prefs/reslist/autoSearchOnWS",
Bool, false);
+ SETTING_RW(prefs.ssearchAutoPhrase,
+ "/Recoll/prefs/startWithSortToolOpen", Bool, false);
SETTING_RW(prefs.respagesize, "/Recoll/prefs/reslist/pagelen", Num, 8);
SETTING_RW(prefs.reslistfontfamily, "/Recoll/prefs/reslist/fontFamily", ,
"");
@@ -164,6 +166,8 @@ void rwSettings(bool writing)
prefs.ssearchHistory =
settings.readListEntry("/Recoll/prefs/query/ssearchHistory");
}
+ SETTING_RW(prefs.ssearchAutoPhrase,
+ "/Recoll/prefs/query/ssearchAutoPhrase", Bool, false);
// Ssearch combobox history list
if (writing) {
diff --git a/src/qtgui/guiutils.h b/src/qtgui/guiutils.h
index ad940071..a0d0fdd7 100644
--- a/src/qtgui/guiutils.h
+++ b/src/qtgui/guiutils.h
@@ -17,7 +17,7 @@
#ifndef _GUIUTILS_H_INCLUDED_
#define _GUIUTILS_H_INCLUDED_
/*
- * @(#$Id: guiutils.h,v 1.9 2006-09-13 13:53:35 dockes Exp $ (C) 2005 Jean-Francois Dockes
+ * @(#$Id: guiutils.h,v 1.10 2006-09-13 15:31:06 dockes Exp $ (C) 2005 Jean-Francois Dockes
* jean-francois.dockes@wanadoo.fr
*
* This program is free software; you can redistribute it and/or modify
@@ -75,9 +75,12 @@ class PrefsPack {
QStringList asearchSubdirHist;
// Textual history of simple searches (this is just the combobox list)
QStringList ssearchHistory;
+ // Make phrase out of search terms and add to search in simple search
+ bool ssearchAutoPhrase;
// Ignored file types in adv search (startup default)
QStringList asearchIgnFilTyps;
-
+
+ // Synthetized abstract length and word context size
int syntAbsLen;
int syntAbsCtx;
diff --git a/src/qtgui/ssearch_w.cpp b/src/qtgui/ssearch_w.cpp
index 4f685188..1066b07b 100644
--- a/src/qtgui/ssearch_w.cpp
+++ b/src/qtgui/ssearch_w.cpp
@@ -1,5 +1,5 @@
#ifndef lint
-static char rcsid[] = "@(#$Id: ssearch_w.cpp,v 1.5 2006-09-13 13:53:35 dockes Exp $ (C) 2006 J.F.Dockes";
+static char rcsid[] = "@(#$Id: ssearch_w.cpp,v 1.6 2006-09-13 15:31:06 dockes Exp $ (C) 2006 J.F.Dockes";
#endif
/*
* This program is free software; you can redistribute it and/or modify
@@ -72,8 +72,17 @@ void SSearch::startSimpleSearch()
QCString u8 = queryText->currentText().utf8();
switch (searchTypCMB->currentItem()) {
case 0:
- default:
+ default: {
+ QString comp = queryText->currentText();
+ // If this is an or and we're set for autophrase and there are
+ // no quotes in the query, add a phrase search
+ if (prefs.ssearchAutoPhrase && comp.find('"', 0) == -1) {
+ comp += QString::fromAscii(" \"") + comp +
+ QString::fromAscii("\"");
+ u8 = comp.utf8();
+ }
sdata.orwords = u8;
+ }
break;
case 1:
sdata.allwords = u8;
diff --git a/src/qtgui/uiprefs.ui b/src/qtgui/uiprefs.ui
index 73f7fb0c..0dba266b 100644
--- a/src/qtgui/uiprefs.ui
+++ b/src/qtgui/uiprefs.ui
@@ -249,6 +249,17 @@
+
+
+ autoPhraseCB
+
+
+ Automatically add phrase to simple searchs
+
+
+ A search for [rolling stones] (2 terms) will be changed to [rolling or stones or (rolling phrase 2 stones)].
+
+
buildAbsCB
diff --git a/src/qtgui/uiprefs_w.cpp b/src/qtgui/uiprefs_w.cpp
index f1c1984f..9b07078b 100644
--- a/src/qtgui/uiprefs_w.cpp
+++ b/src/qtgui/uiprefs_w.cpp
@@ -1,5 +1,5 @@
#ifndef lint
-static char rcsid[] = "@(#$Id: uiprefs_w.cpp,v 1.4 2006-09-13 13:53:35 dockes Exp $ (C) 2005 J.F.Dockes";
+static char rcsid[] = "@(#$Id: uiprefs_w.cpp,v 1.5 2006-09-13 15:31:07 dockes Exp $ (C) 2005 J.F.Dockes";
#endif
/*
* This program is free software; you can redistribute it and/or modify
@@ -97,6 +97,8 @@ void UIPrefsDialog::init()
cur = 0;
stemLangCMB->setCurrentItem(cur);
+ autoPhraseCB->setChecked(prefs.ssearchAutoPhrase);
+
buildAbsCB->setChecked(prefs.queryBuildAbstract);
if (!prefs.queryBuildAbstract) {
replAbsCB->setEnabled(false);
@@ -151,6 +153,7 @@ void UIPrefsDialog::accept()
} else {
prefs.queryStemLang = stemLangCMB->currentText();
}
+ prefs.ssearchAutoPhrase = autoPhraseCB->isChecked();
prefs.queryBuildAbstract = buildAbsCB->isChecked();
prefs.queryReplaceAbstract = buildAbsCB->isChecked() &&
replAbsCB->isChecked();