Engauge Digitizer  2
Public Member Functions | List of all members
ChecklistGuideWizard Class Reference

Wizard for setting up the checklist guide. More...

#include <ChecklistGuideWizard.h>

Inheritance diagram for ChecklistGuideWizard:
Inheritance graph
Collaboration diagram for ChecklistGuideWizard:
Collaboration graph

Public Member Functions

 ChecklistGuideWizard (MainWindow &mainWindow, unsigned int numberCoordSystem)
 Single constructor. More...
 
QStringList curveNames (CoordSystemIndex coordSystemIndex) const
 Curve names to be placed into Document. More...
 
void populateCurvesGraphs (CoordSystemIndex coordSystemIndex, CurvesGraphs &curvesGraphs)
 Create entries in CurvesGraphs for each curve name that user provided. More...
 
QString templateHtml (CoordSystemIndex coordSystemIndex) const
 Template html comprising the checklist for display. More...
 

Detailed Description

Wizard for setting up the checklist guide.

Definition at line 23 of file ChecklistGuideWizard.h.

Constructor & Destructor Documentation

◆ ChecklistGuideWizard()

ChecklistGuideWizard::ChecklistGuideWizard ( MainWindow mainWindow,
unsigned int  numberCoordSystem 
)

Single constructor.

Definition at line 24 of file ChecklistGuideWizard.cpp.

25  :
26  m_mainWindow (mainWindow),
27  m_dialogName (tr ("Checklist Guide"))
28 {
29  setWindowTitle (tr ("Checklist Guide Wizard"));
30  setModal (true);
31  QPixmap splash (":/engauge/img/SpreadsheetsForDoc.png");
32  setPixmap (QWizard::WatermarkPixmap, splash); // For ClassicStyle and ModernStyle
33  setPixmap (QWizard::BackgroundPixmap, splash); // For MacStyle
34 
35  m_pageIntro = new ChecklistGuidePageIntro();
36  addPage(m_pageIntro);
37 
38  for (CoordSystemIndex coordSystemIndex = 0; coordSystemIndex < numberCoordSystem; coordSystemIndex++) {
39  m_pageCurves.push_back (new ChecklistGuidePageCurves(pageCurvesTitle (coordSystemIndex, numberCoordSystem)));
40  addPage(m_pageCurves.last());
41  }
42 
43  m_pageConclusion = new ChecklistGuidePageConclusion();
44  addPage(m_pageConclusion);
45 }
This class sets up the introduction page.
unsigned int CoordSystemIndex
Zero-based index for identifying CoordSystem instantiations.
This class adds validation to the Curves page.
This class uses the validation method of the Conclusion page to perform final processing for Checklis...

Member Function Documentation

◆ curveNames()

QStringList ChecklistGuideWizard::curveNames ( CoordSystemIndex  coordSystemIndex) const

Curve names to be placed into Document.

Definition at line 47 of file ChecklistGuideWizard.cpp.

48 {
49  return m_pageCurves [signed (coordSystemIndex)]->curveNames();
50 }

◆ populateCurvesGraphs()

void ChecklistGuideWizard::populateCurvesGraphs ( CoordSystemIndex  coordSystemIndex,
CurvesGraphs curvesGraphs 
)

Create entries in CurvesGraphs for each curve name that user provided.

Definition at line 75 of file ChecklistGuideWizard.cpp.

77 {
78  LOG4CPP_INFO_S ((*mainCat)) << "ChecklistGuideWizard::populateCurvesGraphs";
79 
80  QStringList curveNames = m_pageCurves [signed (coordSystemIndex)]->curveNames();
81  QStringList::const_iterator itr;
82  for (itr = curveNames.begin(); itr != curveNames.end(); itr++) {
83 
84  QString curveName = *itr;
85 
86  curvesGraphs.addGraphCurveAtEnd(Curve (curveName,
89  PointStyle::defaultGraphCurve (curvesGraphs.numCurves ()))));
90  }
91 }
static LineStyle defaultGraphCurve(int index)
Initial default for index'th graph curve.
Definition: LineStyle.cpp:84
#define LOG4CPP_INFO_S(logger)
Definition: convenience.h:18
void addGraphCurveAtEnd(const Curve &curve)
Append new graph Curve to end of Curve list.
static ColorFilterSettings defaultFilter()
Initial default for any Curve.
int numCurves() const
Current number of graphs curves.
Container for LineStyle and PointStyle for one Curve.
Definition: CurveStyle.h:18
Container for one set of digitized Points.
Definition: Curve.h:33
log4cpp::Category * mainCat
Definition: Logger.cpp:14
QStringList curveNames(CoordSystemIndex coordSystemIndex) const
Curve names to be placed into Document.
static PointStyle defaultGraphCurve(int index)
Initial default for index'th graph curve.
Definition: PointStyle.cpp:88

◆ templateHtml()

QString ChecklistGuideWizard::templateHtml ( CoordSystemIndex  coordSystemIndex) const

Template html comprising the checklist for display.

Definition at line 93 of file ChecklistGuideWizard.cpp.

94 {
95  LOG4CPP_INFO_S ((*mainCat)) << "ChecklistGuideWizard::templateHtml";
96 
97  QStringList curveNames = m_pageCurves [signed (coordSystemIndex)]->curveNames();
98  bool withLines = m_pageCurves [signed (coordSystemIndex)]->withLines();
99 
100  QString html;
101  QTextStream str (&html);
102 
103  // Insert additional space between successive list items, using stylesheet
104  str << "<style type='text/css'>li { margin-top: 10px 0; }</style>";
105 
106  str << "<p>" << tr ("Follow this checklist of steps to digitize your image. Each step will show a check when it has been completed.");
107  str << "<p>" << tr ("The coordinates are defined by creating axis points") << ":</p>\n";
108  str << "<p>" << TAG_ANCHOR_AXIS_1 << "&nbsp;" << tr ("Add first of three axis points.") << " " << TAG_AHREF_AXIS_1 << "</p>\n";
109  str << TAG_DIV_AXIS_START_1;
110  str << "<ul>\n";
111  str << "<li>" << tr ("Click on") << " <img src="":/engauge/img/16-DigitAxis""> " << tr ("for Axis Points mode") << "</li>\n";
112  str << "<li>" << tr ("Click on an axis tick mark, or intersection of two grid lines, with labeled coordinates") << "</li>\n";
113  str << "<li>" << tr ("Enter the coordinates of the axis point") << "</li>\n";
114  str << "<li>" << tr ("Click on Ok") << "</li>\n";
115  str << "</ul>\n";
116  str << TAG_DIV_AXIS_END_1;
117  str << "<p>" << TAG_ANCHOR_AXIS_2 << "&nbsp;" << tr ("Add second of three axis points.") << " " << TAG_AHREF_AXIS_2 << "</p>\n";
118  str << TAG_DIV_AXIS_START_2;
119  str << "<ul>\n";
120  str << "<li>" << tr ("Click on") << " <img src="":/engauge/img/16-DigitAxis""> " << tr ("for Axis Points mode") << "</li>\n";
121  str << "<li>" << tr ("Click on an axis tick mark, or intersection of two grid lines, with labeled coordinates, away from the other axis point") << "</li>\n";
122  str << "<li>" << tr ("Enter the coordinates of the axis point") << "</li>\n";
123  str << "<li>" << tr ("Click on Ok") << "</li>\n";
124  str << "</ul>\n";
125  str << TAG_DIV_AXIS_END_2;
126  str << "<p>" << TAG_ANCHOR_AXIS_3 << "&nbsp;" << tr ("Add third of three axis points.") << " " << TAG_AHREF_AXIS_3 << "</p>\n";
127  str << TAG_DIV_AXIS_START_3;
128  str << "<ul>\n";
129  str << "<li>" << tr ("Click on") << " <img src="":/engauge/img/16-DigitAxis""> " << tr ("for Axis Points mode") << "</li>\n";
130  str << "<li>" << tr ("Click on an axis tick mark, or intersection of two grid lines, with labeled coordinates, away from the other axis points") << "</li>\n";
131  str << "<li>" << tr ("Enter the coordinates of the axis point") << "</li>\n";
132  str << "<li>" << tr ("Click on Ok") << "</li>\n";
133  str << "</ul>\n";
134  str << TAG_DIV_AXIS_END_3;
135 
136  str << "<p>&nbsp;</p>\n";
137  str << "<p>" << tr ("Points are digitized along each curve") << ":</p>\n";
138  QStringList::const_iterator itr;
139  for (itr = curveNames.begin(); itr != curveNames.end(); itr++) {
140 
141  QString curveName = *itr;
142 
143  QString tagACurve = QString ("%1%2%3")
145  .arg (curveName)
147 
148  str << "<p>" << TAG_ANCHOR_DELIMITER_START << curveName << TAG_ANCHOR_DELIMITER_END
149  << "&nbsp;" << tr ("Add points for curve") << " <b>" << curveName << "</b>. " << tagACurve << "</p>\n";
150  str << TAG_DIV_DELIMITER_START << curveName << TAG_DIV_DELIMITER_END;
151  str << "<ul>\n";
152 
153  if (withLines) {
154 
155  str << "<li>" << tr ("Click on") << " <img src="":/engauge/img/16-DigitSegment""> " << tr ("for Segment Fill mode") << "</li>\n";
156  str << "<li>" << tr ("Select curve") << " <b>" << curveName << "</b> " << tr ("in the drop-down list") << "</li>\n";
157  str << "<li>" << tr ("Move the cursor over the curve. If a line does not appear then adjust the Color Filter settings for this curve") << ":\n";
158  str << templateHtmlToAdjustColorFilterSettings () << "</li>\n";
159  str << "<li>" << tr ("Move the cursor over the curve again. When the Segment Fill line appears, click on it to generate points") << "</li>\n";
160  str << "</ul>\n";
161 
162  } else {
163 
164  str << "<li>" << tr ("Click on") << " <img src="":/engauge/img/16-DigitPointMatch""> " << tr ("for Point Match mode") << "</li>\n";
165  str << "<li>" << tr ("Select curve") << " <b>" << curveName << "</b> " << tr ("in the drop-down list") << "</li>\n";
166  str << "<li>" << tr ("Move the cursor over a typical point in the curve. If the cursor circle does not change color then adjust "
167  "the Color Filter settings for this curve") << ":\n";
168  str << templateHtmlToAdjustColorFilterSettings () << "</li>\n";
169  str << "<li>" << tr ("Move the cursor over a typical point in the curve again. Click on the point to start point matching") << "</li>\n";
170  str << "<li>" << tr ("Engauge will display a candidate point. To accept that candidate point, press the right arrow key") << "</li>\n";
171  str << "<li>" << tr ("The previous step repeats until you select a different mode") << "</li>\n";
172  str << "</ul>\n";
173  }
174 
176  }
177 
178  str << "<p>&nbsp;</p>\n";
179  str << "<p>" << tr ("The digitized points can be exported") << ":</p>\n";
180  str << "<p>" << TAG_ANCHOR_EXPORT << "&nbsp;" << tr ("Export the points to a file") << ". " << TAG_AHREF_EXPORT << "</p>\n";
181  str << TAG_DIV_EXPORT_START;
182  str << "<ul>\n";
183  str << "<li>" << tr ("Select menu option File / Export") << "</li>\n";
184  str << "<li>" << tr ("Enter the file name") << "</li>\n";
185  str << "<li>" << tr ("Click on Ok") << "</li>\n";
186  str << "<li>" << tr ("Congratulations!") << "</li>\n";
187  str << "</ul>\n";
188  str << TAG_DIV_EXPORT_END;
189 
190  str << "<p>&nbsp;</p>\n";
191  str << "<p>" << tr ("Hint - The background image can be switched between the original image and filtered image.") << " " << TAG_AHREF_BACKGROUND << "</p>\n";
193  str << "<ul>\n";
194  str << "<li>" << tr ("Select menu option View / Background / Show Original Image to see the original image") << "</li>\n";
195  str << "<li>" << tr ("Select menu option View / Background / Show Filtered Image to see the image from Color Filter") << "</li>\n";
196  str << "</ul>\n";
197  str << TAG_DIV_BACKGROUND_END;
198 
199  return html;
200 }
const QString TAG_AHREF_AXIS_1
const QString TAG_ANCHOR_DELIMITER_END
const QString TAG_AHREF_AXIS_2
const QString TAG_DIV_DELIMITER_END
const QString TAG_AHREF_DELIMITER_END
const QString TAG_ANCHOR_DELIMITER_START
const QString TAG_DIV_DELIMITER_START
const QString TAG_DIV_DELIMITER_START_SLASH
const QString TAG_DIV_AXIS_START_2
const QString TAG_AHREF_EXPORT
#define LOG4CPP_INFO_S(logger)
Definition: convenience.h:18
const QString TAG_AHREF_AXIS_3
const QString TAG_DIV_AXIS_END_2
const QString TAG_ANCHOR_AXIS_3
const QString TAG_DIV_EXPORT_END
const QString TAG_ANCHOR_AXIS_1
const QString TAG_DIV_EXPORT_START
const QString TAG_DIV_AXIS_END_1
const QString TAG_DIV_BACKGROUND_START
const QString TAG_AHREF_DELIMITER_START
log4cpp::Category * mainCat
Definition: Logger.cpp:14
const QString TAG_ANCHOR_AXIS_2
const QString TAG_AHREF_BACKGROUND
QStringList curveNames(CoordSystemIndex coordSystemIndex) const
Curve names to be placed into Document.
const QString TAG_DIV_AXIS_START_1
const QString TAG_DIV_AXIS_END_3
const QString TAG_ANCHOR_EXPORT
const QString TAG_DIV_BACKGROUND_END
const QString TAG_DIV_AXIS_START_3

The documentation for this class was generated from the following files: