7 #include "ChecklistGuideBrowser.h" 8 #include "ChecklistTemplate.h" 9 #include "CmdMediator.h" 11 #include "EngaugeAssert.h" 15 const int MIN_WIDTH_BROWSER = 340;
20 setMinimumWidth(MIN_WIDTH_BROWSER);
22 connect (
this, SIGNAL (anchorClicked (
const QUrl &)),
this, SLOT (slotAnchorClicked (
const QUrl &)));
25 QString ChecklistGuideBrowser::ahref (QString &html,
26 const QString &name)
const 28 LOG4CPP_INFO_S ((*mainCat)) <<
"ChecklistGuideBrowser::bindToDocument";
30 QString expression = QString (
"%1%2%3")
31 .arg (TAG_AHREF_DELIMITER_START)
33 .arg (TAG_AHREF_DELIMITER_END);
36 if (name == m_anchor) {
39 link = QString (
"<a href=""#"">Less ...</a>");
44 link = QString (
"<a href=""#%1"">More ...</a>")
49 html.replace (expression, link);
54 void ChecklistGuideBrowser::check (QString &html,
55 const QString &anchor,
58 LOG4CPP_INFO_S ((*mainCat)) <<
"ChecklistGuideBrowser::check";
60 QString tag = QString (
"%1%2%3")
61 .arg (TAG_ANCHOR_DELIMITER_START)
63 .arg (TAG_ANCHOR_DELIMITER_END);
66 html.replace (tag,
"<img src="":/engauge/img/16-checked.png"">");
68 html.replace (tag,
"<img src="":/engauge/img/16-unchecked.png"">");
72 void ChecklistGuideBrowser::divHide (QString &html,
73 const QString &anchor)
const 75 LOG4CPP_INFO_S ((*mainCat)) <<
"ChecklistGuideBrowser::divHide" 76 <<
" anchor=" << anchor.toLatin1().data();
79 QString expression = QString (
"\\%1%2\\%3.*\\%4%5\\%6")
80 .arg (TAG_DIV_DELIMITER_START)
82 .arg (TAG_DIV_DELIMITER_END)
83 .arg (TAG_DIV_DELIMITER_START_SLASH)
85 .arg (TAG_DIV_DELIMITER_END);
86 QRegExp regExp (expression);
87 html.replace (regExp,
"");
90 void ChecklistGuideBrowser::divShow (QString &html,
91 const QString &anchor)
const 93 LOG4CPP_INFO_S ((*mainCat)) <<
"ChecklistGuideBrowser::divShow" 94 <<
" anchor=" << anchor.toLatin1().data();
96 if (!anchor.isEmpty ()) {
99 QString expressionStart = QString (
"\\%1%2\\%3")
100 .arg (TAG_DIV_DELIMITER_START)
102 .arg (TAG_DIV_DELIMITER_END);
103 QString expressionEnd = QString (
"\\%1%2\\%3")
104 .arg (TAG_DIV_DELIMITER_START_SLASH)
106 .arg (TAG_DIV_DELIMITER_END);
107 QRegExp regExpStart (expressionStart);
108 QRegExp regExpEnd (expressionEnd);
109 html.replace (regExpStart,
"");
110 html.replace (regExpEnd,
"");
114 QString ChecklistGuideBrowser::processAhrefs (
const QString &htmlBefore)
116 LOG4CPP_INFO_S ((*mainCat)) <<
"ChecklistGuideBrowser::processAhrefs";
118 QString html = htmlBefore;
121 ahref (html, NAME_BACKGROUND);
124 ahref (html, NAME_AXIS1);
125 ahref (html, NAME_AXIS2);
126 ahref (html, NAME_AXIS3);
129 QStringList::const_iterator itr;
130 for (itr = m_curveNames.begin(); itr != m_curveNames.end(); itr++) {
132 QString curveName = *itr;
133 ahref (html, curveName);
137 ahref (html, NAME_EXPORT);
142 QString ChecklistGuideBrowser::processCheckboxes (
const QString &htmlBefore)
144 LOG4CPP_INFO_S ((*mainCat)) <<
"ChecklistGuideBrowser::processCheckboxes";
146 QString html = htmlBefore;
148 check (html, NAME_BACKGROUND, m_checkedTags.contains (NAME_BACKGROUND));
150 check (html, NAME_AXIS1, m_checkedTags.contains (NAME_AXIS1));
151 check (html, NAME_AXIS2, m_checkedTags.contains (NAME_AXIS2));
152 check (html, NAME_AXIS3, m_checkedTags.contains (NAME_AXIS3));
155 QStringList::const_iterator itr;
156 for (itr = m_curveNames.begin(); itr != m_curveNames.end(); itr++) {
158 QString curveName = *itr;
159 check (html, curveName, m_checkedTags.contains (curveName));
162 check (html, NAME_EXPORT, m_checkedTags.contains (NAME_EXPORT));
167 QString ChecklistGuideBrowser::processDivs (
const QString &htmlBefore)
169 LOG4CPP_INFO_S ((*mainCat)) <<
"ChecklistGuideBrowser::processDivs";
171 QString html = htmlBefore;
175 divShow (html, m_anchor);
178 divHide (html, NAME_BACKGROUND);
181 divHide (html, NAME_AXIS1);
182 divHide (html, NAME_AXIS2);
183 divHide (html, NAME_AXIS3);
186 QStringList::const_iterator itr;
187 for (itr = m_curveNames.begin(); itr != m_curveNames.end(); itr++) {
189 QString curveName = *itr;
190 divHide (html, curveName);
193 divHide (html, NAME_EXPORT);
198 void ChecklistGuideBrowser::refresh ()
200 LOG4CPP_INFO_S ((*mainCat)) <<
"ChecklistGuideBrowser::refresh";
202 QString html = m_templateHtml;
204 html = processAhrefs (html);
205 html = processCheckboxes (html);
206 html = processDivs (html);
208 QTextBrowser::setHtml (html);
211 void ChecklistGuideBrowser::repopulateCheckedTags (
const CmdMediator &cmdMediator,
212 bool documentIsExported)
214 LOG4CPP_INFO_S ((*mainCat)) <<
"ChecklistGuideBrowser::repopulateCheckedTags";
216 m_checkedTags.clear();
219 m_checkedTags [NAME_AXIS1] =
true;
223 m_checkedTags [NAME_AXIS2] =
true;
227 m_checkedTags [NAME_AXIS3] =
true;
231 QStringList::const_iterator itr;
232 for (itr = m_curveNames.begin(); itr != m_curveNames.end(); itr++) {
234 QString curveName = *itr;
236 m_checkedTags [curveName] =
true;
244 if (documentIsExported) {
245 m_checkedTags [NAME_EXPORT] =
true;
250 const QStringList &curveNames)
252 m_templateHtml = html;
253 m_curveNames = curveNames;
258 void ChecklistGuideBrowser::slotAnchorClicked (
const QUrl &url)
260 LOG4CPP_INFO_S ((*mainCat)) <<
"ChecklistGuideBrowser::slotAnchorClicked";
263 if (url.hasFragment ()) {
264 m_anchor = url.fragment ();
271 bool documentIsExported)
273 LOG4CPP_INFO_S ((*mainCat)) <<
"ChecklistGuideBrowser::update";
275 repopulateCheckedTags(cmdMediator,
int curvesGraphsNumPoints(const QString &curveName) const
See CurvesGraphs::curvesGraphsNumPoints.
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.
void update(const CmdMediator &cmdMediator, bool documentIsExported)
Update using current CmdMediator/Document state.
ChecklistGuideBrowser()
Single constructor.
const Curve & curveAxes() const
Get method for axis curve.