defined data structure to pass around the search term description used for highlighting and other
This commit is contained in:
@@ -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)
|
||||
{
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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"),
|
||||
|
||||
@@ -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
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user