14#include <QRegularExpression>
23 connect (
this, SIGNAL (anchorClicked (
const QUrl &)),
this, SLOT (slotAnchorClicked (
const QUrl &)));
26QString ChecklistGuideBrowser::ahref (QString &html,
27 const QString &name)
const
37 if (name == m_anchor) {
39 link = QString(
"<a href="
45 link = QString(
"<a href="
51 html.replace (expression, link);
56void ChecklistGuideBrowser::check (QString &html,
57 const QString &anchor,
69 ":/engauge/img/16-checked.png"
74 ":/engauge/img/16-unchecked.png"
79void ChecklistGuideBrowser::divHide (QString &html,
80 const QString &anchor)
const
83 <<
" anchor=" << anchor.toLatin1().data();
86 QString expression = QString(
"\\%1%2\\%3.*\\%4%5\\%6")
93 QRegularExpression regExp(expression);
94 html.replace(regExp,
"");
97void ChecklistGuideBrowser::divShow(QString &html,
const QString &anchor)
const
100 <<
" anchor=" << anchor.toLatin1().data();
102 if (!anchor.isEmpty ()) {
105 QString expressionStart = QString(
"\\%1%2\\%3")
107 QString expressionEnd = QString(
"\\%1%2\\%3")
109 QRegularExpression regExpStart(expressionStart);
110 QRegularExpression regExpEnd(expressionEnd);
111 html.replace (regExpStart,
"");
112 html.replace (regExpEnd,
"");
116QString ChecklistGuideBrowser::processAhrefs (
const QString &htmlBefore)
120 QString html = htmlBefore;
131 QStringList::const_iterator itr;
132 for (itr = m_curveNames.begin(); itr != m_curveNames.end(); itr++) {
134 QString curveName = *itr;
135 ahref (html, curveName);
144QString ChecklistGuideBrowser::processCheckboxes (
const QString &htmlBefore)
148 QString html = htmlBefore;
157 QStringList::const_iterator itr;
158 for (itr = m_curveNames.begin(); itr != m_curveNames.end(); itr++) {
160 QString curveName = *itr;
161 check (html, curveName, m_checkedTags.contains (curveName));
169QString ChecklistGuideBrowser::processDivs (
const QString &htmlBefore)
173 QString html = htmlBefore;
177 divShow (html, m_anchor);
188 QStringList::const_iterator itr;
189 for (itr = m_curveNames.begin(); itr != m_curveNames.end(); itr++) {
191 QString curveName = *itr;
192 divHide (html, curveName);
200void ChecklistGuideBrowser::refresh ()
204 QString html = m_templateHtml;
206 html = processAhrefs (html);
207 html = processCheckboxes (html);
208 html = processDivs (html);
210 QTextBrowser::setHtml (html);
213void ChecklistGuideBrowser::repopulateCheckedTags (
const CmdMediator &cmdMediator,
214 bool documentIsExported)
218 m_checkedTags.clear();
233 QStringList::const_iterator itr;
234 for (itr = m_curveNames.begin(); itr != m_curveNames.end(); itr++) {
236 QString curveName = *itr;
238 m_checkedTags [curveName] =
true;
246 if (documentIsExported) {
252 const QStringList &curveNames)
254 m_templateHtml = html;
255 m_curveNames = curveNames;
260void ChecklistGuideBrowser::slotAnchorClicked (
const QUrl &url)
265 if (url.hasFragment ()) {
266 m_anchor = url.fragment ();
273 bool documentIsExported)
277 repopulateCheckedTags(cmdMediator,
const int MIN_WIDTH_BROWSER
const QString TAG_DIV_DELIMITER_END
const QString NAME_EXPORT
const QString TAG_AHREF_DELIMITER_END
const QString NAME_BACKGROUND
const QString TAG_DIV_DELIMITER_START_SLASH
const QString TAG_ANCHOR_DELIMITER_END
const QString TAG_AHREF_DELIMITER_START
const QString TAG_DIV_DELIMITER_START
const QString TAG_ANCHOR_DELIMITER_START
log4cpp::Category * mainCat
ChecklistGuideBrowser()
Single constructor.
void update(const CmdMediator &cmdMediator, bool documentIsExported)
Update using current CmdMediator/Document state.
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.
#define LOG4CPP_INFO_S(logger)