1 #include "ChecklistGuideBrowser.h"
2 #include "ChecklistTemplate.h"
3 #include "CmdMediator.h"
5 #include "EngaugeAssert.h"
9 const int MIN_WIDTH_BROWSER = 340;
14 setMinimumWidth(MIN_WIDTH_BROWSER);
16 connect (
this, SIGNAL (anchorClicked (
const QUrl &)),
this, SLOT (slotAnchorClicked (
const QUrl &)));
19 QString ChecklistGuideBrowser::ahref (QString &html,
20 const QString &name)
const
22 LOG4CPP_INFO_S ((*mainCat)) <<
"ChecklistGuideBrowser::bindToDocument";
24 QString expression = QString (
"%1%2%3")
25 .arg (TAG_AHREF_DELIMITER_START)
27 .arg (TAG_AHREF_DELIMITER_END);
30 if (name == m_anchor) {
33 link = QString (
"<a href=""#"">Less ...</a>");
38 link = QString (
"<a href=""#%1"">More ...</a>")
43 html.replace (expression, link);
48 void ChecklistGuideBrowser::check (QString &html,
49 const QString &anchor,
52 LOG4CPP_INFO_S ((*mainCat)) <<
"ChecklistGuideBrowser::check";
54 QString tag = QString (
"%1%2%3")
55 .arg (TAG_ANCHOR_DELIMITER_START)
57 .arg (TAG_ANCHOR_DELIMITER_END);
60 html.replace (tag,
"<img src="":/engauge/img/16-checked.png"">");
62 html.replace (tag,
"<img src="":/engauge/img/16-unchecked.png"">");
66 void ChecklistGuideBrowser::divHide (QString &html,
67 const QString &anchor)
const
69 LOG4CPP_INFO_S ((*mainCat)) <<
"ChecklistGuideBrowser::divHide"
70 <<
" anchor=" << anchor.toLatin1().data();
73 QString expression = QString (
"\\%1%2\\%3.*\\%4%5\\%6")
74 .arg (TAG_DIV_DELIMITER_START)
76 .arg (TAG_DIV_DELIMITER_END)
77 .arg (TAG_DIV_DELIMITER_START_SLASH)
79 .arg (TAG_DIV_DELIMITER_END);
80 QRegExp regExp (expression);
81 html.replace (regExp,
"");
84 void ChecklistGuideBrowser::divShow (QString &html,
85 const QString &anchor)
const
87 LOG4CPP_INFO_S ((*mainCat)) <<
"ChecklistGuideBrowser::divShow"
88 <<
" anchor=" << anchor.toLatin1().data();
90 if (!anchor.isEmpty ()) {
93 QString expressionStart = QString (
"\\%1%2\\%3")
94 .arg (TAG_DIV_DELIMITER_START)
96 .arg (TAG_DIV_DELIMITER_END);
97 QString expressionEnd = QString (
"\\%1%2\\%3")
98 .arg (TAG_DIV_DELIMITER_START_SLASH)
100 .arg (TAG_DIV_DELIMITER_END);
101 QRegExp regExpStart (expressionStart);
102 QRegExp regExpEnd (expressionEnd);
103 html.replace (regExpStart,
"");
104 html.replace (regExpEnd,
"");
108 QString ChecklistGuideBrowser::processAhrefs (
const QString &htmlBefore)
110 LOG4CPP_INFO_S ((*mainCat)) <<
"ChecklistGuideBrowser::processAhrefs";
112 QString html = htmlBefore;
115 ahref (html, NAME_BACKGROUND);
118 ahref (html, NAME_AXIS1);
119 ahref (html, NAME_AXIS2);
120 ahref (html, NAME_AXIS3);
123 QStringList::const_iterator itr;
124 for (itr = m_curveNames.begin(); itr != m_curveNames.end(); itr++) {
126 QString curveName = *itr;
127 ahref (html, curveName);
131 ahref (html, NAME_EXPORT);
136 QString ChecklistGuideBrowser::processCheckboxes (
const QString &htmlBefore)
138 LOG4CPP_INFO_S ((*mainCat)) <<
"ChecklistGuideBrowser::processCheckboxes";
140 QString html = htmlBefore;
142 check (html, NAME_BACKGROUND, m_checkedTags.contains (NAME_BACKGROUND));
144 check (html, NAME_AXIS1, m_checkedTags.contains (NAME_AXIS1));
145 check (html, NAME_AXIS2, m_checkedTags.contains (NAME_AXIS2));
146 check (html, NAME_AXIS3, m_checkedTags.contains (NAME_AXIS3));
149 QStringList::const_iterator itr;
150 for (itr = m_curveNames.begin(); itr != m_curveNames.end(); itr++) {
152 QString curveName = *itr;
153 check (html, curveName, m_checkedTags.contains (curveName));
156 check (html, NAME_EXPORT, m_checkedTags.contains (NAME_EXPORT));
161 QString ChecklistGuideBrowser::processDivs (
const QString &htmlBefore)
163 LOG4CPP_INFO_S ((*mainCat)) <<
"ChecklistGuideBrowser::processDivs";
165 QString html = htmlBefore;
169 divShow (html, m_anchor);
172 divHide (html, NAME_BACKGROUND);
175 divHide (html, NAME_AXIS1);
176 divHide (html, NAME_AXIS2);
177 divHide (html, NAME_AXIS3);
180 QStringList::const_iterator itr;
181 for (itr = m_curveNames.begin(); itr != m_curveNames.end(); itr++) {
183 QString curveName = *itr;
184 divHide (html, curveName);
187 divHide (html, NAME_EXPORT);
192 void ChecklistGuideBrowser::refresh ()
194 LOG4CPP_INFO_S ((*mainCat)) <<
"ChecklistGuideBrowser::refresh";
196 QString html = m_templateHtml;
198 html = processAhrefs (html);
199 html = processCheckboxes (html);
200 html = processDivs (html);
202 QTextBrowser::setHtml (html);
205 void ChecklistGuideBrowser::repopulateCheckedTags (
const CmdMediator &cmdMediator,
206 bool documentIsExported)
208 LOG4CPP_INFO_S ((*mainCat)) <<
"ChecklistGuideBrowser::repopulateCheckedTags";
210 m_checkedTags.clear();
213 m_checkedTags [NAME_AXIS1] =
true;
217 m_checkedTags [NAME_AXIS2] =
true;
221 m_checkedTags [NAME_AXIS3] =
true;
225 QStringList::const_iterator itr;
226 for (itr = m_curveNames.begin(); itr != m_curveNames.end(); itr++) {
228 QString curveName = *itr;
230 m_checkedTags [curveName] =
true;
238 if (documentIsExported) {
239 m_checkedTags [NAME_EXPORT] =
true;
244 const QStringList &curveNames)
246 m_templateHtml = html;
247 m_curveNames = curveNames;
252 void ChecklistGuideBrowser::slotAnchorClicked (
const QUrl &url)
254 LOG4CPP_INFO_S ((*mainCat)) <<
"ChecklistGuideBrowser::slotAnchorClicked";
257 if (url.hasFragment ()) {
258 m_anchor = url.fragment ();
265 bool documentIsExported)
267 LOG4CPP_INFO_S ((*mainCat)) <<
"ChecklistGuideBrowser::update";
269 repopulateCheckedTags(cmdMediator,
virtual void setTemplateHtml(const QString &html, const QStringList &curveNames)
Populate the browser with template html. The template html will be converted to real html...
int numPoints() const
Number of points.
const Curve & curveAxes() const
Get method for axis curve.
int curvesGraphsNumPoints(const QString &curveName) const
See CurvesGraphs::curvesGraphsNumPoints.
void update(const CmdMediator &cmdMediator, bool documentIsExported)
Update using current CmdMediator/Document state.
ChecklistGuideBrowser()
Single constructor.