This commit is contained in:
Jean-Francois Dockes 2013-05-14 10:21:58 +02:00
commit f2aa650d89
10 changed files with 76 additions and 36 deletions

View File

@ -126,3 +126,4 @@ e44205c256063d6388682c1dfc62b4db6184db0d help
0000000000000000000000000000000000000000 RECOLL_1_19_0 0000000000000000000000000000000000000000 RECOLL_1_19_0
0000000000000000000000000000000000000000 RECOLL_1_19_0 0000000000000000000000000000000000000000 RECOLL_1_19_0
3207b030989d19bdec25fdd2b500c3bbec3ebe97 RECOLL_1_19_0 3207b030989d19bdec25fdd2b500c3bbec3ebe97 RECOLL_1_19_0
599179076d53eb87604c97e0adf391e304bcf377 RECOLL_1_19_1

View File

@ -1 +1 @@
1.19.0 1.19.1

View File

@ -46,15 +46,21 @@ IF(PTHREAD_IN_LIBPTHREAD)
LIST(APPEND EXTRA_LIBS pthread) LIST(APPEND EXTRA_LIBS pthread)
ENDIF(PTHREAD_IN_LIBPTHREAD) ENDIF(PTHREAD_IN_LIBPTHREAD)
# Had the idea to add e.g. /usr/lib/recoll to the rpath so that the dyn lib
# will be found at run time. But this does not seem to work with debian
# which strips RPATH by default (I think there is a way for libs in app-specific
# paths but I did not find it. Link with the .a instead.
#SET(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib/recoll")
kde4_add_plugin(kio_recoll ${kio_recoll_SRCS}) kde4_add_plugin(kio_recoll ${kio_recoll_SRCS})
add_custom_target(rcllib add_custom_target(rcllib
COMMAND make COMMAND make librecoll.a
WORKING_DIRECTORY ${rcltop}/lib WORKING_DIRECTORY ${rcltop}/lib
) )
add_dependencies(kio_recoll rcllib) add_dependencies(kio_recoll rcllib)
target_link_libraries(kio_recoll recoll ${EXTRA_LIBS} ${KDE4_KIO_LIBS}) target_link_libraries(kio_recoll recoll xapian z ${EXTRA_LIBS} ${KDE4_KIO_LIBS})
install(TARGETS kio_recoll DESTINATION ${PLUGIN_INSTALL_DIR}) install(TARGETS kio_recoll DESTINATION ${PLUGIN_INSTALL_DIR})

View File

@ -315,6 +315,12 @@ public:
m_haveWildCards = m_haveWildCards =
(txt.find_first_of(cstr_minwilds) != std::string::npos); (txt.find_first_of(cstr_minwilds) != std::string::npos);
} }
SearchDataClauseSimple(const std::string& txt, SClType tp)
: SearchDataClause(tp), m_text(txt), m_curcl(0)
{
m_haveWildCards =
(txt.find_first_of(cstr_minwilds) != std::string::npos);
}
virtual ~SearchDataClauseSimple() virtual ~SearchDataClauseSimple()
{ {
@ -365,10 +371,10 @@ protected:
* field, especially for file names, because this makes searches for * field, especially for file names, because this makes searches for
* "*xx" much faster (no need to scan the whole main index). * "*xx" much faster (no need to scan the whole main index).
*/ */
class SearchDataClauseFilename : public SearchDataClause { class SearchDataClauseFilename : public SearchDataClauseSimple {
public: public:
SearchDataClauseFilename(const std::string& txt) SearchDataClauseFilename(const std::string& txt)
: SearchDataClause(SCLT_FILENAME), m_text(txt) : SearchDataClauseSimple(txt, SCLT_FILENAME)
{ {
// File name searches don't count when looking for wild cards. // File name searches don't count when looking for wild cards.
m_haveWildCards = false; m_haveWildCards = false;
@ -383,9 +389,6 @@ public:
} }
virtual bool toNativeQuery(Rcl::Db &, void *); virtual bool toNativeQuery(Rcl::Db &, void *);
protected:
std::string m_text;
}; };

View File

@ -56,18 +56,20 @@ string SearchData::asXML()
// Clause list // Clause list
os << "<CL>" << endl; os << "<CL>" << endl;
// List conjunction: default is AND, else print it.
if (m_tp != SCLT_AND) if (m_tp != SCLT_AND)
os << "<CLT>" << tpToString(m_tp) << "</CLT>" << endl; os << "<CLT>" << tpToString(m_tp) << "</CLT>" << endl;
for (unsigned int i = 0; i < m_query.size(); i++) { for (unsigned int i = 0; i < m_query.size(); i++) {
SearchDataClause *c = m_query[i]; SearchDataClause *c = m_query[i];
if (c->getTp() == SCLT_SUB) { if (c->getTp() == SCLT_SUB) {
LOGERR(("SearchData::asXML: can't do subclauses !\n")); LOGERR(("SearchData::asXML: can't do subclauses !\n"));
continue; continue;
} }
if (c->getexclude())
os << "<NEG/>" << endl;
if (c->getTp() == SCLT_PATH) { if (c->getTp() == SCLT_PATH) {
// Keep these apart, for compat with the older history format // Keep these apart, for compat with the older history format. NEG
// is ignored here, we have 2 different tags instead.
SearchDataClausePath *cl = SearchDataClausePath *cl =
dynamic_cast<SearchDataClausePath*>(c); dynamic_cast<SearchDataClausePath*>(c);
if (cl->getexclude()) { if (cl->getexclude()) {
@ -76,24 +78,36 @@ string SearchData::asXML()
os << "<YD>" << base64_encode(cl->gettext()) << "</YD>" << endl; os << "<YD>" << base64_encode(cl->gettext()) << "</YD>" << endl;
} }
continue; continue;
} } else {
SearchDataClauseSimple *cl = os << "<C>" << endl;
dynamic_cast<SearchDataClauseSimple*>(c);
os << "<C>" << endl; if (c->getexclude())
if (cl->getTp() != SCLT_AND) { os << "<NEG/>" << endl;
os << "<CT>" << tpToString(cl->getTp()) << "</CT>" << endl;
if (c->getTp() != SCLT_AND) {
os << "<CT>" << tpToString(c->getTp()) << "</CT>" << endl;
}
if (c->getTp() == SCLT_FILENAME) {
SearchDataClauseFilename *cl =
dynamic_cast<SearchDataClauseFilename*>(c);
os << "<T>" << base64_encode(cl->gettext()) << "</T>" << endl;
} else {
SearchDataClauseSimple *cl =
dynamic_cast<SearchDataClauseSimple*>(c);
if (!cl->getfield().empty()) {
os << "<F>" << base64_encode(cl->getfield()) << "</F>" <<
endl;
}
os << "<T>" << base64_encode(cl->gettext()) << "</T>" << endl;
if (cl->getTp() == SCLT_NEAR || cl->getTp() == SCLT_PHRASE) {
SearchDataClauseDist *cld =
dynamic_cast<SearchDataClauseDist*>(cl);
os << "<S>" << cld->getslack() << "</S>" << endl;
}
}
os << "</C>" << endl;
} }
if (cl->getTp() != SCLT_FILENAME && !cl->getfield().empty()) {
os << "<F>" << base64_encode(cl->getfield()) << "</F>" << endl;
}
os << "<T>" << base64_encode(cl->gettext()) << "</T>" << endl;
if (cl->getTp() == SCLT_NEAR || cl->getTp() == SCLT_PHRASE) {
SearchDataClauseDist *cld =
dynamic_cast<SearchDataClauseDist*>(cl);
os << "<S>" << cld->getslack() << "</S>" << endl;
}
os << "</C>" << endl;
} }
os << "</CL>" << endl; os << "</CL>" << endl;

View File

@ -29,7 +29,7 @@
later versions. Bugs listed in the topmost section may also exist in older later versions. Bugs listed in the topmost section may also exist in older
versions.</i></p> versions.</i></p>
<h2><a name="b_latest">recoll 1.19.0</a></h2> <h2><a name="b_latest">recoll 1.19.1</a></h2>
<ul> <ul>
<li>On systems such as Debian Stable which use Evince version 2.x (not 3.x) <li>On systems such as Debian Stable which use Evince version 2.x (not 3.x)
as PDF viewer, the default "Open" command for PDF files will not work. You as PDF viewer, the default "Open" command for PDF files will not work. You
@ -51,6 +51,12 @@ versions.</i></p>
~/.config/Recoll.org/recoll.conf, the QSettings storage for recoll.</li> ~/.config/Recoll.org/recoll.conf, the QSettings storage for recoll.</li>
</ul> </ul>
<h2><a name="b_1_19_0">recoll 1.19.0</a></h2>
<ul>
<li>Using a "file name" clause inside advanced search crashes the
GUI because of a bug in the search history feature.</li>
</ul>
<h2><a name="b_1_18_2">recoll 1.18.2</a></h2> <h2><a name="b_1_18_2">recoll 1.18.2</a></h2>
<ul> <ul>
<li>When no indexing helper applications are actually missing, an ennoying <li>When no indexing helper applications are actually missing, an ennoying

View File

@ -45,7 +45,7 @@
<h2><a>General information</a></h2> <h2><a>General information</a></h2>
<p>The current version is 1.19.0. <a href="release-1.19.html">Release <p>The current version is 1.19.1. <a href="release-1.19.html">Release
notes</a>.</p> notes</a>.</p>
<p>The download page for Recoll 1.18 is <a href="download-1.18.html">still <p>The download page for Recoll 1.18 is <a href="download-1.18.html">still
@ -87,12 +87,12 @@ is probably no necessity to upgrade anyway.</p>
<h2><a name="source">Source</a></h2> <h2><a name="source">Source</a></h2>
<h3>Current release distribution: 1.19.0:</h3> <h3>Current release distribution: 1.19.1:</h3>
<!-- Attention: source packages must remain here, not in a <!-- Attention: source packages must remain here, not in a
subdirectory, because of all the places they're referred from subdirectory, because of all the places they're referred from
(package watches) --> (package watches) -->
<p><a href="recoll-1.19.0.tar.gz">recoll-1.19.0.tar.gz</a>. </p> <p><a href="recoll-1.19.1.tar.gz">recoll-1.19.1.tar.gz</a>. </p>
<!-- <!--
<h3>Snapshot</h3> <h3>Snapshot</h3>
<p>I sometimes release a source tarfile when I consider that the <p>I sometimes release a source tarfile when I consider that the

View File

@ -52,7 +52,7 @@
<li><a href="features.html">Detailed features</a>. <li><a href="features.html">Detailed features</a>.
</ul> </ul>
<p>The current <span class="application">Recoll</span> version is <p>The current <span class="application">Recoll</span> version is
<a href="download.html">1.19.0</a> <a href="download.html">1.19.1</a>
(<a href="release-1.19.html">Release notes</a>, (<a href="release-1.19.html">Release notes</a>,
<a href="BUGS.html">known bugs</a>).</p> <a href="BUGS.html">known bugs</a>).</p>
@ -87,7 +87,7 @@
<div class="news"> <div class="news">
<dl> <dl>
<dt>2013-05-12</dt><dd>Recoll 1.19.0 is out. See the <dt>2013-05-12</dt><dd>Recoll 1.19.1 is out. See the
<a href="release-1.19.html">release notes</a> for a description <a href="release-1.19.html">release notes</a> for a description
of the changes.</dd> of the changes.</dd>
</dd> </dd>

View File

@ -48,7 +48,7 @@
<p><span class="application">Recoll</span> est un logiciel libre <p><span class="application">Recoll</span> est un logiciel libre
gratuit, dont le code source est disponible sous licence GPL. gratuit, dont le code source est disponible sous licence GPL.
La dernière version est La dernière version est
<a class="important" href="download.html">1.19.0</a> <a class="important" href="download.html">1.19.1</a>
(<a href="release-1.19.html">notes sur la version, en (<a href="release-1.19.html">notes sur la version, en
anglais</a>)</p> anglais</a>)</p>
@ -102,7 +102,7 @@
<h2>Nouvelles: </h2> <h2>Nouvelles: </h2>
<dl> <dl>
<dt>2013-05-12</dt><dd>La version 1.19.0 est disponible.</dd> <dt>2013-05-12</dt><dd>La version 1.19.1 est disponible.</dd>
<dt>2012-11-05</dt><dd>Recoll 1.18.1 est disponible. Cette <dt>2012-11-05</dt><dd>Recoll 1.18.1 est disponible. Cette
version peut faire des recherches sensibles aux majuscules et version peut faire des recherches sensibles aux majuscules et

View File

@ -61,6 +61,13 @@ previous behaviour (losing the page number functionality), you need to prune
the list after installation . This can be done from the <em>Preferences-&gt;Gui the list after installation . This can be done from the <em>Preferences-&gt;Gui
Configuration</em> menu.</p> Configuration</em> menu.</p>
<h2>Minor releases at a glance</h2>
<ul>
<li>1.19.1 was released 2 hours after 1.19.0 (book of records anyone?)
because of a bug in the advanced search history feature which crashed
the GUI as soon as a <i>filename</i> search was performed.</li>
</ul>
<h2>Changes in Recoll 1.19.0</h2> <h2>Changes in Recoll 1.19.0</h2>
<ul> <ul>
<li>Indexing can use multiple threads. This can be a major performance boost <li>Indexing can use multiple threads. This can be a major performance boost
@ -79,7 +86,10 @@ Configuration</em> menu.</p>
<li>It is now possible to use OR with "dir:" clauses, and wildcards have been <li>It is now possible to use OR with "dir:" clauses, and wildcards have been
enabled.</li> enabled.</li>
<li>When the option to follow symbolic links is not set -which is the <li>When the option to follow symbolic links is not set -which is the
default- symbolic links are now indexed as such (name and content).</li> default- symbolic links are now indexed as such (name and
content).</li>
<li>The advanced search panel now has a history feature. Use the
up/down arrows to walk the search history list.</li>
<li>There are new GUI configuration options to run in "search as you type" <li>There are new GUI configuration options to run in "search as you type"
mode (which I don't find useful at all...), and to disable the Qt mode (which I don't find useful at all...), and to disable the Qt
auto-completion inside the simple search string. The completion was often auto-completion inside the simple search string. The completion was often