defined data structure to pass around the search term description used for highlighting and other

This commit is contained in:
"Jean-Francois Dockes ext:(%22)
2012-08-17 10:45:00 +02:00
parent ebdd6faaf5
commit dc7b3420a0
16 changed files with 409 additions and 351 deletions
+2 -2
View File
@@ -686,12 +686,12 @@ class LoadThread : public QThread {
/* A thread to convert to rich text (mark search terms) */
class ToRichThread : public QThread {
string ∈
const HiliteData &hdata;
const HighlightData &hdata;
list<string> &out;
int loglevel;
PlainToRichQtPreview *ptr;
public:
ToRichThread(string &i, const HiliteData& hd, list<string> &o,
ToRichThread(string &i, const HighlightData& hd, list<string> &o,
PlainToRichQtPreview *_ptr)
: in(i), hdata(hd), out(o), ptr(_ptr)
{
+2 -2
View File
@@ -91,7 +91,7 @@ class Preview : public QWidget {
public:
Preview(int sid, // Search Id
const HiliteData& hdata) // Search terms etc. for highlighting
const HighlightData& hdata) // Search terms etc. for highlighting
: QWidget(0), m_searchId(sid), m_hData(hdata)
{
init();
@@ -141,7 +141,7 @@ private:
bool m_canBeep;
bool m_loading;
QWidget *m_currentW;
HiliteData m_hData;
HighlightData m_hData;
bool m_justCreated; // First tab create is different
bool m_haveAnchors; // Search terms are marked in text
int m_lastAnchor; // Number of last anchor. Then rewind to 1
+3 -3
View File
@@ -1220,8 +1220,8 @@ void RclMain::startPreview(int docnum, Rcl::Doc doc, int mod)
curPreview = 0;
}
if (curPreview == 0) {
HiliteData hdata;
m_source->getTerms(hdata.terms, hdata.groups, hdata.gslks);
HighlightData hdata;
m_source->getTerms(hdata);
curPreview = new Preview(reslist->listId(), hdata);
if (curPreview == 0) {
@@ -1284,7 +1284,7 @@ void RclMain::updateIdxForDocs(vector<Rcl::Doc>& docs)
*/
void RclMain::startPreview(Rcl::Doc doc)
{
Preview *preview = new Preview(0, HiliteData());
Preview *preview = new Preview(0, HighlightData());
if (preview == 0) {
QMessageBox::warning(0, tr("Warning"),
tr("Can't create preview window"),
+2 -2
View File
@@ -299,8 +299,8 @@ void RecollModel::setDocSource(RefCntr<DocSequence> nsource)
m_source = RefCntr<DocSequence>();
} else {
m_source = RefCntr<DocSequence>(new DocSource(theconfig, nsource));
m_hdata.reset();
m_source->getTerms(m_hdata.terms, m_hdata.groups, m_hdata.gslks);
m_hdata.clear();
m_source->getTerms(m_hdata);
}
}
+14 -10
View File
@@ -19,6 +19,10 @@
#include <Qt>
#include <string>
#include <map>
#include <vector>
#include "ui_restable.h"
#include "refcntr.h"
#include "docseq.h"
@@ -26,7 +30,7 @@
class ResTable;
typedef string (FieldGetter)(const string& fldname, const Rcl::Doc& doc);
typedef std::string (FieldGetter)(const std::string& fldname, const Rcl::Doc& doc);
class RecollModel : public QAbstractTableModel {
@@ -49,15 +53,15 @@ public:
virtual void setDocSource(RefCntr<DocSequence> nsource);
virtual RefCntr<DocSequence> getDocSource() {return m_source;}
virtual void deleteColumn(int);
virtual const vector<string>& getFields() {return m_fields;}
virtual const map<string, QString>& getAllFields()
virtual const std::vector<std::string>& getFields() {return m_fields;}
virtual const std::map<std::string, QString>& getAllFields()
{
return o_displayableFields;
}
virtual void addColumn(int, const string&);
virtual void addColumn(int, const std::string&);
// Some column name are aliases/translator for base document field
// (ie: date, datetime->mtime). Help deal with this:
virtual string baseField(const string&);
virtual std::string baseField(const std::string&);
// Ignore sort() call because
virtual void setIgnoreSort(bool onoff) {m_ignoreSort = onoff;}
@@ -69,12 +73,12 @@ signals:
private:
mutable RefCntr<DocSequence> m_source;
vector<string> m_fields;
vector<FieldGetter*> m_getters;
static map<string, QString> o_displayableFields;
std::vector<std::string> m_fields;
std::vector<FieldGetter*> m_getters;
static std::map<std::string, QString> o_displayableFields;
bool m_ignoreSort;
FieldGetter* chooseGetter(const string&);
HiliteData m_hdata;
FieldGetter* chooseGetter(const std::string&);
HighlightData m_hdata;
};
class ResTable;