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();