summaryrefslogtreecommitdiff
path: root/src/frontend/searchdialog/analysis/csearchanalysisitem.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/frontend/searchdialog/analysis/csearchanalysisitem.cpp')
-rw-r--r--src/frontend/searchdialog/analysis/csearchanalysisitem.cpp36
1 files changed, 22 insertions, 14 deletions
diff --git a/src/frontend/searchdialog/analysis/csearchanalysisitem.cpp b/src/frontend/searchdialog/analysis/csearchanalysisitem.cpp
index b2fc1ad..23b2962 100644
--- a/src/frontend/searchdialog/analysis/csearchanalysisitem.cpp
+++ b/src/frontend/searchdialog/analysis/csearchanalysisitem.cpp
@@ -2,7 +2,7 @@
*
* This file is part of BibleTime's source code, http://www.bibletime.info/.
*
-* Copyright 1999-2008 by the BibleTime developers.
+* Copyright 1999-2011 by the BibleTime developers.
* The BibleTime source code is licensed under the GNU General Public License version 2.0.
*
**********/
@@ -41,13 +41,17 @@ const int LEGEND_INNER_BORDER = 5;
const int LEGEND_DELTAY = 4;
const int LEGEND_WIDTH = 85;
-CSearchAnalysisItem::CSearchAnalysisItem(const int moduleCount, const QString &bookname, double *scaleFactor, QList<CSwordModuleInfo*>* modules)
- : QGraphicsRectItem(),
- m_moduleList( modules ),
- m_scaleFactor(scaleFactor),
- m_bookName(bookname),
- m_moduleCount(moduleCount),
- m_bufferPixmap(0) {
+CSearchAnalysisItem::CSearchAnalysisItem(
+ const int moduleCount,
+ const QString &bookname,
+ double *scaleFactor,
+ const CSwordModuleSearch::Results &results)
+ : m_results(results),
+ m_scaleFactor(scaleFactor),
+ m_bookName(bookname),
+ m_moduleCount(moduleCount),
+ m_bufferPixmap(0)
+{
m_resultCountArray.resize(m_moduleCount);
int index = 0;
for (index = 0; index < m_moduleCount; ++index) m_resultCountArray[index] = 0;
@@ -137,23 +141,27 @@ int CSearchAnalysisItem::width() {
/** Returns the tooltip for this item. */
const QString CSearchAnalysisItem::getToolTip() {
+ typedef CSwordModuleSearch::Results::const_iterator RCI;
+
QString toolTipString = QString("<center><b>%1</b></center><hr/>").arg(m_bookName);
toolTipString += "<table cellspacing=\"0\" cellpadding=\"3\" width=\"100%\" height=\"100%\" align=\"center\">";
/// \todo Fix that loop
int i = 0;
- QList<CSwordModuleInfo*>::iterator end_it = m_moduleList->end();
+ for (RCI it = m_results.begin(); it != m_results.end(); it++) {
+ const CSwordModuleInfo *info = it.key();
+
+ /// \warning This is a workaround for sword constness
+ sword::ListKey &results = const_cast<sword::ListKey &>(it.value());
- for (QList<CSwordModuleInfo*>::iterator it(m_moduleList->begin()); it != end_it; ++it) {
- CSwordModuleInfo* info = (*it);
const QColor c = CSearchAnalysisScene::getColor(i);
toolTipString.append(
- QString("<tr bgcolor=\"white\"><td><b><font color=\"#%1\">%2</font></b></td><td>%3 (%4%)</td></tr>")
- .arg(QString().sprintf("%02X%02X%02X", c.red(), c.green(), c.blue()))
+ QString("<tr bgcolor=\"white\"><td><b><font color=\"%1\">%2</font></b></td><td>%3 (%4%)</td></tr>")
+ .arg(c.name())
.arg(info ? info->name() : QString::null)
.arg( m_resultCountArray[i] )
- .arg( (info && m_resultCountArray[i]) ? ((double)m_resultCountArray[i] / (double)info->searchResult().Count())*(double)100 : 0.0, 0, 'g', 2)
+ .arg( (info && m_resultCountArray[i]) ? ((double)m_resultCountArray[i] / (double)results.Count())*(double)100 : 0.0, 0, 'g', 2)
);
++i;
}