GUI: display estimated result count in status line
This commit is contained in:
parent
afde2f9c2a
commit
ae6d758b34
@ -1 +1 @@
|
|||||||
1.15.7
|
1.15.8pre
|
||||||
|
|||||||
@ -241,7 +241,9 @@ void RclMain::init()
|
|||||||
this, SLOT(showUIPrefs()));
|
this, SLOT(showUIPrefs()));
|
||||||
connect(extIdxAction, SIGNAL(activated()),
|
connect(extIdxAction, SIGNAL(activated()),
|
||||||
this, SLOT(showExtIdxDialog()));
|
this, SLOT(showExtIdxDialog()));
|
||||||
|
connect(this, SIGNAL(applyFiltSortData()),
|
||||||
|
this, SLOT(onResultsChanged()));
|
||||||
|
|
||||||
if (prefs.catgToolBar && catgCMB)
|
if (prefs.catgToolBar && catgCMB)
|
||||||
connect(catgCMB, SIGNAL(activated(int)),
|
connect(catgCMB, SIGNAL(activated(int)),
|
||||||
this, SLOT(catgFilter(int)));
|
this, SLOT(catgFilter(int)));
|
||||||
@ -621,6 +623,22 @@ void RclMain::startSearch(RefCntr<Rcl::SearchData> sdata)
|
|||||||
QApplication::restoreOverrideCursor();
|
QApplication::restoreOverrideCursor();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void RclMain::onResultsChanged()
|
||||||
|
{
|
||||||
|
if (m_source.isNotNull()) {
|
||||||
|
int cnt = m_source->getResCnt();
|
||||||
|
QString msg;
|
||||||
|
if (cnt > 0) {
|
||||||
|
QString str;
|
||||||
|
msg = tr("Result count (est.)") + ": " +
|
||||||
|
str.setNum(cnt);
|
||||||
|
} else {
|
||||||
|
msg = tr("No results found");
|
||||||
|
}
|
||||||
|
statusBar()->showMessage(msg, 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void RclMain::resetSearch()
|
void RclMain::resetSearch()
|
||||||
{
|
{
|
||||||
emit searchReset();
|
emit searchReset();
|
||||||
|
|||||||
@ -100,6 +100,7 @@ public slots:
|
|||||||
virtual void onResTableSortBy(DocSeqSortSpec);
|
virtual void onResTableSortBy(DocSeqSortSpec);
|
||||||
virtual void resultCount(int);
|
virtual void resultCount(int);
|
||||||
virtual void showQueryDetails();
|
virtual void showQueryDetails();
|
||||||
|
virtual void onResultsChanged();
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
void docSourceChanged(RefCntr<DocSequence>);
|
void docSourceChanged(RefCntr<DocSequence>);
|
||||||
|
|||||||
@ -90,7 +90,7 @@ private:
|
|||||||
|
|
||||||
Query::Query(Db *db)
|
Query::Query(Db *db)
|
||||||
: m_nq(new Native(this)), m_db(db), m_sorter(0), m_sortAscending(true),
|
: m_nq(new Native(this)), m_db(db), m_sorter(0), m_sortAscending(true),
|
||||||
m_collapseDuplicates(false)
|
m_collapseDuplicates(false), m_resCnt(-1)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -136,6 +136,7 @@ bool Query::setQuery(RefCntr<SearchData> sdata)
|
|||||||
LOGERR(("Query::setQuery: not initialised!\n"));
|
LOGERR(("Query::setQuery: not initialised!\n"));
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
m_resCnt = -1;
|
||||||
m_reason.erase();
|
m_reason.erase();
|
||||||
|
|
||||||
m_nq->clear();
|
m_nq->clear();
|
||||||
@ -258,23 +259,25 @@ int Query::getResCnt()
|
|||||||
LOGERR(("Query::getResCnt: no query opened\n"));
|
LOGERR(("Query::getResCnt: no query opened\n"));
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
if (m_resCnt >= 0)
|
||||||
|
return m_resCnt;
|
||||||
|
|
||||||
int ret = -1;
|
m_resCnt = -1;
|
||||||
if (m_nq->xmset.size() <= 0) {
|
if (m_nq->xmset.size() <= 0) {
|
||||||
Chrono chron;
|
Chrono chron;
|
||||||
|
|
||||||
XAPTRY(m_nq->xmset =
|
XAPTRY(m_nq->xmset =
|
||||||
m_nq->xenquire->get_mset(0, qquantum, (const Xapian::RSet *)0);
|
m_nq->xenquire->get_mset(0, qquantum, 1000);
|
||||||
ret = m_nq->xmset.get_matches_lower_bound(),
|
m_resCnt = m_nq->xmset.get_matches_lower_bound(),
|
||||||
m_db->m_ndb->xrdb, m_reason);
|
m_db->m_ndb->xrdb, m_reason);
|
||||||
|
|
||||||
LOGDEB(("Query::getResCnt: %d mS\n", chron.millis()));
|
LOGDEB(("Query::getResCnt: %d mS\n", chron.millis()));
|
||||||
if (!m_reason.empty())
|
if (!m_reason.empty())
|
||||||
LOGERR(("xenquire->get_mset: exception: %s\n", m_reason.c_str()));
|
LOGERR(("xenquire->get_mset: exception: %s\n", m_reason.c_str()));
|
||||||
} else {
|
} else {
|
||||||
ret = m_nq->xmset.get_matches_lower_bound();
|
m_resCnt = m_nq->xmset.get_matches_lower_bound();
|
||||||
}
|
}
|
||||||
return ret;
|
return m_resCnt;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -96,6 +96,8 @@ private:
|
|||||||
string m_sortField;
|
string m_sortField;
|
||||||
bool m_sortAscending;
|
bool m_sortAscending;
|
||||||
bool m_collapseDuplicates;
|
bool m_collapseDuplicates;
|
||||||
|
int m_resCnt;
|
||||||
|
|
||||||
/* Copyconst and assignement private and forbidden */
|
/* Copyconst and assignement private and forbidden */
|
||||||
Query(const Query &) {}
|
Query(const Query &) {}
|
||||||
Query & operator=(const Query &) {return *this;};
|
Query & operator=(const Query &) {return *this;};
|
||||||
|
|||||||
@ -74,9 +74,9 @@
|
|||||||
relatively minor, features (ie: duplicates collapsing) depend
|
relatively minor, features (ie: duplicates collapsing) depend
|
||||||
on a full index rebuild. The 1.14 date search feature
|
on a full index rebuild. The 1.14 date search feature
|
||||||
does <i>not</i> need an index rebuild, the data was already in
|
does <i>not</i> need an index rebuild, the data was already in
|
||||||
the index. The new 1.15 table will not be able to display
|
the index. <i>The new 1.15 table will not be able to display
|
||||||
filenames without a full reindex (it does display the urls),
|
filenames without a full reindex (it does display the urls),
|
||||||
except for some previous custom field configurations.</p>
|
except for some previous custom field configurations</i>.</p>
|
||||||
|
|
||||||
<br />If installing over 1.10 or older, you need a full
|
<br />If installing over 1.10 or older, you need a full
|
||||||
rebuild. The best way to do this is to just delete the old
|
rebuild. The best way to do this is to just delete the old
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user