22#include <QDoubleValidator>
30#include <QRadioButton>
59 "DlgSettingsExportFormat",
61 m_validatorFunctionsPointsEvenlySpacing (
nullptr),
62 m_validatorRelationsPointsEvenlySpacing (
nullptr),
65 m_haveFunction (
false),
66 m_haveRelation (
false)
79 delete m_validatorFunctionsPointsEvenlySpacing;
80 delete m_validatorRelationsPointsEvenlySpacing;
94 m_listIncluded->setSortingEnabled (
false);
95 m_listIncluded->setWhatsThis (
tr (
"List of curves to be included in the exported file.\n\n"
96 "The order of the curves here does not affect the order in the exported file. That "
97 "order is determined by the Curves settings."));
98 m_listIncluded->setSelectionMode (QAbstractItemView::MultiSelection);
99 layout->addWidget (m_listIncluded,
row, 0, 4, 1);
103 m_listExcluded->setSortingEnabled (
false);
104 m_listExcluded->setWhatsThis (
tr (
"List of curves to be excluded from the exported file"));
105 m_listExcluded->setSelectionMode (QAbstractItemView::MultiSelection);
106 layout->addWidget (m_listExcluded,
row++, 2, 4, 1);
110 m_btnInclude->setEnabled (
false);
111 m_btnInclude->setWhatsThis (
tr (
"Move the currently selected curve(s) from the excluded list"));
112 layout->addWidget (m_btnInclude,
row++, 1);
116 m_btnExclude->setEnabled (
false);
117 m_btnExclude->setWhatsThis (
tr (
"Move the currently selected curve(s) from the included list"));
118 layout->addWidget (m_btnExclude,
row++, 1);
135 m_btnDelimitersCommas->setWhatsThis (
tr (
"Exported file will have commas between adjacent values, unless overridden by tabs in TSV files."));
140 m_btnDelimitersSpaces->setWhatsThis (
tr (
"Exported file will have spaces between adjacent values, unless overridden by commas in CSV files, "
141 "or tabs in TSV files."));
146 m_btnDelimitersTabs->setWhatsThis (
tr (
"Exported file will have tabs between adjacent values, unless overridden by commas in CSV files."));
151 m_btnDelimitersSemicolons->setWhatsThis (
tr (
"Exported file will have semicolons between adjacent values, unless overridden by commas in CSV files."));
155 m_chkOverrideCsvTsv =
new QCheckBox (
tr (
"Override in CSV/TSV files"));
156 m_chkOverrideCsvTsv->setWhatsThis (
tr (
"Comma-separated value (CSV) files and tab-separated value (TSV) files will use commas and tabs "
157 "respectively, unless this setting is selected. Selecting this setting will apply the delimiter setting "
173 m_btnCurvesLayoutAllCurves =
new QRadioButton (
tr (
"All curves on each line"));
174 m_btnCurvesLayoutAllCurves->setWhatsThis (
tr (
"Exported file will have, on each line, "
175 "an X value, the Y value for the first curve, the Y value for the second curve,..."));
179 m_btnCurvesLayoutOneCurve =
new QRadioButton (
tr (
"One curve on each line"));
180 m_btnCurvesLayoutOneCurve->setWhatsThis (
tr (
"Exported file will have all the points for "
181 "the first curve, with one X-Y pair on each line, then the points for the second curve,..."));
186void DlgSettingsExportFormat::createFunctionsPointsSelection (
QHBoxLayout *layoutFunctions)
205 m_btnFunctionsPointsAllCurves =
new QRadioButton (
tr (
"Interpolate Ys at Xs from all curves"));
206 m_btnFunctionsPointsAllCurves->setWhatsThis (
tr (
"Exported file will have values at every unique X "
207 "value from every curve. Y values will be linearly interpolated if necessary"));
212 m_chkExtrapolateOutsideEndpoints =
new QCheckBox (
tr (
"Extrapolate outside endpoints"));
213 m_chkExtrapolateOutsideEndpoints->setWhatsThis (
tr (
"Enable or disable extrapolation outside of endpoints of each curve. If disabled, "
214 "only points between the endpoints of each curve are exported"));
218 m_btnFunctionsPointsFirstCurve =
new QRadioButton (
tr (
"Interpolate Ys at Xs from first curve"));
219 m_btnFunctionsPointsFirstCurve->setWhatsThis (
tr (
"Exported file will have values at every unique X "
220 "value from the first curve. Y values will be linearly interpolated if necessary"));
224 m_btnFunctionsPointsEvenlySpaced =
new QRadioButton (
tr (
"Interpolate Ys at evenly spaced X values that are automatically selected"));
225 m_btnFunctionsPointsEvenlySpaced->setWhatsThis (
tr (
"Exported file will have values at evenly spaced X values, separated by the interval selected below."));
232 m_editFunctionsPointsEvenlySpacing =
new QLineEdit;
233 m_validatorFunctionsPointsEvenlySpacing =
new QDoubleValidator;
234 m_editFunctionsPointsEvenlySpacing->setValidator (m_validatorFunctionsPointsEvenlySpacing);
235 m_editFunctionsPointsEvenlySpacing->setMinimumWidth (
MIN_EDIT_WIDTH);
236 m_editFunctionsPointsEvenlySpacing->setMaximumWidth (
MAX_EDIT_WIDTH);
237 m_editFunctionsPointsEvenlySpacing->setWhatsThis (
tr (
"Interval, in the units of X, between successive points in the X direction.\n\n"
238 "If the scale is linear, then this interval is added to successive X values. If the scale is "
239 "logarithmic, then this interval is multiplied to successive X values.\n\n"
240 "The X values will be automatically aligned along simple numbers. If the first and/or last "
241 "points are not along the aligned X values, then one or two additional points are added "
246 m_cmbFunctionsPointsEvenlySpacingUnits =
new QComboBox;
247 m_cmbFunctionsPointsEvenlySpacingUnits->setWhatsThis (
tr (
"Units for spacing interval.\n\n"
248 "Pixel units are preferred when the spacing is to be independent of the X scale. The spacing will be "
249 "consistent across the graph, even if the X scale is logarithmic.\n\n"
250 "Graph units are preferred when the spacing is to depend on the X scale."));
256 this,
SLOT (slotFunctionsPointsEvenlySpacedIntervalUnits (
const QString &)));
259 m_lblOverflowFunctions =
new QLabel (
tr (
"Too many points"));
260 m_lblOverflowFunctions->setStyleSheet (
"QLabel { color : red; }");
261 m_lblOverflowFunctions->setWhatsThis (
tr (
"Warning that interval is too small. Adjust interval or increase point limit in Main Window settings"));
264 m_btnFunctionsPointsGridLines =
new QRadioButton (
tr (
"Interpolate Ys at evenly spaced X values on grid lines"));
265 m_btnFunctionsPointsGridLines->setWhatsThis (
tr (
"Exported file will have values at evenly spaced X values at the vertical grid lines."));
269 m_btnFunctionsPointsRaw =
new QRadioButton (
tr (
"Raw Xs and Ys"));
270 m_btnFunctionsPointsRaw->setWhatsThis (
tr (
"Exported file will have only original X and Y values"));
291 m_btnHeaderNone->setWhatsThis (
tr (
"Exported file will have no header line"));
296 m_btnHeaderSimple->setWhatsThis (
tr (
"Exported file will have simple header line"));
301 m_btnHeaderGnuplot->setWhatsThis (
tr (
"Exported file will have gnuplot header line"));
314 m_btnSaveDefault->setWhatsThis (
tr (
"Save the settings for use as future defaults."));
316 layout->addWidget (m_btnSaveDefault, 0, Qt::AlignLeft);
319 m_btnLoadDefault->setWhatsThis (
tr (
"Load the default settings."));
321 layout->addWidget (m_btnLoadDefault, 0, Qt::AlignLeft);
331 m_cmbFileExtension->setWhatsThis (
tr (
"File extension used for preview. The CSV and TSV file extensions "
332 "normally use commas and tabs respectively, but that can be changed "
342 layout->addWidget (m_cmbFileExtension,
row, 0, 1, 1, Qt::AlignLeft);
349 "<span style=\"background-color: %2\"> Relations </span>")
356 m_editPreview->setReadOnly (
true);
357 m_editPreview->setWhatsThis (
tr (
"Preview window shows how current settings affect the exported file.\n\n"
358 "Functions (shown here in blue) are output first, followed by relations "
359 "(shown here in green) if any exist."));
361 m_editPreview->document()->setDefaultStyleSheet(
"div { padding-left: 20px; }");
363 p.setColor (QPalette::Base,
QColor (240, 240, 240));
364 m_editPreview->setPalette (
p);
366 layout->addWidget (m_editPreview,
row++, 0, 1, 3);
388 m_btnRelationsPointsEvenlySpaced =
new QRadioButton (
tr (
"Interpolate Xs and Ys at evenly spaced intervals."));
389 m_btnRelationsPointsEvenlySpaced->setWhatsThis (
tr (
"Exported file will have points evenly spaced along each relation, separated by the interval "
390 "selected below. If the last interval does not end at the last point, then a shorter last interval "
391 "is added that ends on the last point."));
398 m_editRelationsPointsEvenlySpacing =
new QLineEdit;
399 m_validatorRelationsPointsEvenlySpacing =
new QDoubleValidator;
400 m_editRelationsPointsEvenlySpacing->setValidator (m_validatorRelationsPointsEvenlySpacing);
401 m_editRelationsPointsEvenlySpacing->setMinimumWidth (
MIN_EDIT_WIDTH);
402 m_editRelationsPointsEvenlySpacing->setMaximumWidth (
MAX_EDIT_WIDTH);
403 m_editRelationsPointsEvenlySpacing->setWhatsThis (
tr (
"Interval between successive points when "
404 "exporting at evenly spaced (X,Y) coordinates."));
408 m_cmbRelationsPointsEvenlySpacingUnits =
new QComboBox;
409 m_cmbRelationsPointsEvenlySpacingUnits->setWhatsThis (
tr (
"Units for spacing interval.\n\n"
410 "Pixel units are preferred when the spacing is to be independent of the X and Y scales. The spacing will be "
411 "consistent across the graph, even if a scale is logarithmic or the X and Y scales are different.\n\n"
412 "Graph units are usually preferred when the X and Y scales are identical."));
418 this,
SLOT (slotRelationsPointsEvenlySpacedIntervalUnits (
const QString &)));
421 m_lblOverflowRelations =
new QLabel (
tr (
"Too many points"));
422 m_lblOverflowRelations->setStyleSheet (
"QLabel { color : red; }");
423 m_lblOverflowRelations->setWhatsThis (
tr (
"Warning that interval is too small. Adjust interval or increase point limit in Main Window settings"));
426 m_btnRelationsPointsRaw =
new QRadioButton (
tr (
"Raw Xs and Ys"));
427 m_btnRelationsPointsRaw->setWhatsThis (
tr (
"Exported file will have only original X and Y values"));
467 layout->addWidget (m_tabWidget,
row++, 0, 1, 3);
473 "Controls for specifying the format of functions during export"));
481 "Controls for specifying the format of relations during export"));
488 createFunctionsPointsSelection (layoutFunctions);
502 m_editXLabel =
new QLineEdit;
503 m_editXLabel->setWhatsThis (
tr (
"Label in the header for x values"));
515 .replace (
"\n",
"<br>")
516 .replace (
" ",
" ")
518 .replace (
"\t",
" ");
520 QString html =
QString (
"<div style=\"display: inline; background-color: %1\">%2</div>")
527bool DlgSettingsExportFormat::goodIntervalFunctions()
const
538 <<
" good=" << (
isGood ?
"true" :
"false")
539 <<
" bottom=" << m_validatorFunctionsPointsEvenlySpacing->bottom()
540 <<
" top=" << m_validatorFunctionsPointsEvenlySpacing->top();
545bool DlgSettingsExportFormat::goodIntervalRelations()
const
556 <<
" good=" << (
isGood ?
"true" :
"false")
557 <<
" bottom=" << m_validatorRelationsPointsEvenlySpacing->bottom()
558 <<
" top=" << m_validatorRelationsPointsEvenlySpacing->top();
569 *m_modelExportBefore,
570 *m_modelExportAfter);
576void DlgSettingsExportFormat::initializeIntervalConstraints ()
594 double maxSizeGraph = boundingRectGraphMax.x() - boundingRectGraphMin.x();
607 delete m_modelExportBefore;
608 delete m_modelExportAfter;
615 m_listExcluded->clear();
617 QStringList::const_iterator
itr;
624 m_listIncluded->clear();
629 m_listIncluded->addItem (curveName);
656 m_chkOverrideCsvTsv->setChecked (m_modelExportAfter->
overrideCsvTsv());
663 m_editXLabel->setText (m_modelExportAfter->
xLabel());
670 int indexFunctions = m_cmbFunctionsPointsEvenlySpacingUnits->findData (
QVariant (pointsIntervalUnitsFunctions));
671 int indexRelations = m_cmbRelationsPointsEvenlySpacingUnits->findData (
QVariant (pointsIntervalUnitsRelations));
672 m_cmbFunctionsPointsEvenlySpacingUnits->setCurrentIndex (
indexFunctions);
673 m_cmbRelationsPointsEvenlySpacingUnits->setCurrentIndex (
indexRelations);
677 initializeIntervalConstraints ();
679 updateControlsUponLoad ();
681 updateIntervalConstraints();
693void DlgSettingsExportFormat::slotDelimitersCommas()
702void DlgSettingsExportFormat::slotDelimitersSemicolons()
711void DlgSettingsExportFormat::slotDelimitersSpaces()
720void DlgSettingsExportFormat::slotDelimitersTabs()
729void DlgSettingsExportFormat::slotExclude ()
736 for (
i = 0;
i < m_listIncluded->count();
i++) {
737 if (m_listIncluded->item(
i)->isSelected()) {
738 excluded += m_listIncluded->item(
i)->text();
745 m_listExcluded->addItem (curveName);
749 for (
i = m_listIncluded->count() - 1;
i>= 0;
i--) {
750 QString curveName = m_listIncluded->item(
i)->text();
751 if (
excluded.contains (curveName)) {
753 m_listIncluded->removeItemWidget (item);
763void DlgSettingsExportFormat::slotFileExtension (
const QString &)
768void DlgSettingsExportFormat::slotFunctionsExtrapolateOutsideEndpoints(
int)
777void DlgSettingsExportFormat::slotFunctionsLayoutAllCurves()
786void DlgSettingsExportFormat::slotFunctionsLayoutOneCurve()
795void DlgSettingsExportFormat::slotFunctionsPointsAllCurves()
804void DlgSettingsExportFormat::slotFunctionsPointsEvenlySpaced()
813void DlgSettingsExportFormat::slotFunctionsPointsEvenlySpacedInterval(
const QString &)
817 if (m_editFunctionsPointsEvenlySpacing->text().trimmed() ==
"") {
819 m_lblOverflowFunctions->hide ();
823 if (goodIntervalFunctions()) {
824 m_lblOverflowFunctions->hide ();
829 m_lblOverflowFunctions->show ();
835void DlgSettingsExportFormat::slotFunctionsPointsEvenlySpacedIntervalUnits(
const QString &)
837 LOG4CPP_INFO_S ((*
mainCat)) <<
"DlgSettingsExportFormat::slotFunctionsPointsEvenlySpacedIntervalUnits";
839 int index = m_cmbFunctionsPointsEvenlySpacingUnits->currentIndex();
843 if (goodIntervalFunctions()) {
844 m_lblOverflowFunctions->hide ();
846 updateIntervalConstraints();
850 m_lblOverflowFunctions->show ();
855void DlgSettingsExportFormat::slotFunctionsPointsFirstCurve()
864void DlgSettingsExportFormat::slotFunctionsPointsGridLines()
873void DlgSettingsExportFormat::slotFunctionsPointsRaw()
882void DlgSettingsExportFormat::slotHeaderGnuplot()
891void DlgSettingsExportFormat::slotHeaderNone()
900void DlgSettingsExportFormat::slotHeaderSimple()
909void DlgSettingsExportFormat::slotInclude ()
916 for (
i = 0;
i < m_listExcluded->count();
i++) {
917 if (m_listExcluded->item(
i)->isSelected()) {
918 included += m_listExcluded->item(
i)->text();
925 m_listIncluded->addItem (curveName);
930 for (
i = m_listExcluded->count() - 1;
i>= 0;
i--) {
931 QString curveName = m_listExcluded->item(
i)->text();
933 if (
included.contains (curveName)) {
934 m_listExcluded->removeItemWidget (item);
946void DlgSettingsExportFormat::slotListExcluded()
954void DlgSettingsExportFormat::slotListIncluded()
962void DlgSettingsExportFormat::slotLoadDefault()
987 m_editFunctionsPointsEvenlySpacing->setText (QString::number (
modelExportDefaults.pointsIntervalFunctions ()));
988 m_editRelationsPointsEvenlySpacing->setText (QString::number (
modelExportDefaults.pointsIntervalRelations ()));
999 m_chkExtrapolateOutsideEndpoints->setChecked (
modelExportDefaults.extrapolateOutsideEndpoints());
1003 m_cmbFunctionsPointsEvenlySpacingUnits->setCurrentIndex (
indexFunctions);
1004 m_cmbRelationsPointsEvenlySpacingUnits->setCurrentIndex (
indexRelations);
1013void DlgSettingsExportFormat::slotOverrideCsvTsv(
int)
1022void DlgSettingsExportFormat::slotRelationsPointsEvenlySpaced()
1031void DlgSettingsExportFormat::slotRelationsPointsEvenlySpacedInterval(
const QString &)
1035 if (m_editRelationsPointsEvenlySpacing->text().trimmed() ==
"") {
1037 m_lblOverflowRelations->hide ();
1040 if (goodIntervalRelations()) {
1041 m_lblOverflowRelations->hide ();
1046 m_lblOverflowRelations->show ();
1052void DlgSettingsExportFormat::slotRelationsPointsEvenlySpacedIntervalUnits(
const QString &)
1054 LOG4CPP_INFO_S ((*
mainCat)) <<
"DlgSettingsExportFormat::slotRelationsPointsEvenlySpacedIntervalUnits";
1056 int index = m_cmbRelationsPointsEvenlySpacingUnits->currentIndex();
1059 if (goodIntervalRelations()) {
1060 m_lblOverflowRelations->hide ();
1062 updateIntervalConstraints();
1066 m_lblOverflowRelations->show ();
1071void DlgSettingsExportFormat::slotRelationsPointsRaw()
1080void DlgSettingsExportFormat::slotSaveDefault()
1117void DlgSettingsExportFormat::slotTabChanged (
int)
1124void DlgSettingsExportFormat::slotXLabel(
const QString &)
1128 m_modelExportAfter->
setXLabel (m_editXLabel->text());
1133void DlgSettingsExportFormat::updateControls ()
1136 goodIntervalRelations();
1140 m_chkExtrapolateOutsideEndpoints->setEnabled (!m_btnFunctionsPointsRaw->isChecked ());
1144 int inInclude = m_listIncluded->count();
1149 m_editFunctionsPointsEvenlySpacing->setEnabled (m_haveFunction && m_btnFunctionsPointsEvenlySpaced->isChecked ());
1150 m_editRelationsPointsEvenlySpacing->setEnabled (m_haveRelation && m_btnRelationsPointsEvenlySpaced->isChecked ());
1152 m_editXLabel->setEnabled (!m_btnHeaderNone->isChecked());
1155void DlgSettingsExportFormat::updateControlsUponLoad ()
1159 m_haveFunction =
false;
1160 m_haveRelation =
false;
1164 QStringList::const_iterator
itr;
1165 for (
itr = curveNames.begin();
itr != curveNames.end ();
itr++) {
1170 m_haveFunction =
true;
1172 m_haveRelation =
true;
1177 m_btnFunctionsPointsAllCurves->setEnabled (m_haveFunction);
1178 m_btnFunctionsPointsFirstCurve->setEnabled (m_haveFunction);
1179 m_btnFunctionsPointsEvenlySpaced->setEnabled (m_haveFunction);
1180 m_editFunctionsPointsEvenlySpacing->setEnabled (m_haveFunction);
1181 m_cmbFunctionsPointsEvenlySpacingUnits->setEnabled (m_haveFunction);
1182 m_btnFunctionsPointsRaw->setEnabled (m_haveFunction);
1185 m_btnRelationsPointsEvenlySpaced->setEnabled (m_haveRelation);
1186 m_editRelationsPointsEvenlySpacing->setEnabled (m_haveRelation);
1187 m_cmbRelationsPointsEvenlySpacingUnits->setEnabled (m_haveRelation);
1188 m_btnRelationsPointsRaw->setEnabled (m_haveRelation);
1191 if (!m_haveRelation) {
1193 }
else if (!m_haveFunction) {
1198void DlgSettingsExportFormat::updateIntervalConstraints ()
1201 m_minIntervalGraph :
1202 m_minIntervalScreen);
1204 m_minIntervalGraph :
1205 m_minIntervalScreen);
1217 m_editFunctionsPointsEvenlySpacing->setText (QString::number (
functionsMin));
1221 m_validatorFunctionsPointsEvenlySpacing->setBottom (
functionsMin);
1227 m_editRelationsPointsEvenlySpacing->setText (QString::number (
relationsMin));
1231 m_validatorRelationsPointsEvenlySpacing->setBottom (
relationsMin);
1235void DlgSettingsExportFormat::updatePreview()
1238 int scrollPosition = m_editPreview->verticalScrollBar()->value();
1244 if (
mainWindow().transformation().transformIsDefined()) {
1292 exportedHtml =
tr (
"Preview is unavailable until axis points are defined.");
@ CONNECT_AS_FUNCTION_STRAIGHT
@ CONNECT_AS_RELATION_STRAIGHT
@ CONNECT_AS_RELATION_SMOOTH
@ CONNECT_AS_FUNCTION_SMOOTH
const int INNER_RADIUS_MIN
QString exportDelimiterToString(ExportDelimiter exportDelimiter)
ExportDelimiter
Delimiter values that may or may not be overridden by DOCUMENT_SERIALIZE_EXPORT_DELIMITER_OVERRIDE_CS...
@ EXPORT_DELIMITER_SEMICOLON
QString exportFileExtensionToFilename(ExportFileExtension exportFileExtension)
Internally-used sample file name for each ExportFileExtension value.
QString exportFileExtensionToPreviewString(ExportFileExtension exportFileExtension)
Displayed text for each ExportFileExtension value.
@ EXPORT_FILE_EXTENSION_NOT_CSV_TSV
@ EXPORT_FILE_EXTENSION_CSV
@ EXPORT_FILE_EXTENSION_TSV
@ EXPORT_LAYOUT_ALL_PER_LINE
@ EXPORT_LAYOUT_ONE_PER_LINE
QString exportPointsIntervalUnitsToString(ExportPointsIntervalUnits exportPointsIntervalUnits)
ExportPointsIntervalUnits
@ EXPORT_POINTS_INTERVAL_UNITS_GRAPH
@ EXPORT_POINTS_INTERVAL_UNITS_SCREEN
ExportPointsSelectionFunctions
@ EXPORT_POINTS_SELECTION_FUNCTIONS_RAW
@ EXPORT_POINTS_SELECTION_FUNCTIONS_INTERPOLATE_FIRST_CURVE
@ EXPORT_POINTS_SELECTION_FUNCTIONS_INTERPOLATE_PERIODIC
@ EXPORT_POINTS_SELECTION_FUNCTIONS_INTERPOLATE_ALL_CURVES
@ EXPORT_POINTS_SELECTION_FUNCTIONS_INTERPOLATE_GRID_LINES
ExportPointsSelectionRelations
@ EXPORT_POINTS_SELECTION_RELATIONS_INTERPOLATE
@ EXPORT_POINTS_SELECTION_RELATIONS_RAW
log4cpp::Category * mainCat
const QString SETTINGS_EXPORT_POINTS_INTERVAL_UNITS_RELATIONS
const QString SETTINGS_EXPORT_POINTS_SELECTION_FUNCTIONS
const QString SETTINGS_ENGAUGE
const QString SETTINGS_EXPORT_POINTS_INTERVAL_FUNCTIONS
const QString SETTINGS_EXPORT_X_LABEL
const QString SETTINGS_EXPORT_DELIMITER
const QString SETTINGS_GROUP_EXPORT
const QString SETTINGS_EXPORT_POINTS_INTERVAL_RELATIONS
const QString SETTINGS_EXPORT_LAYOUT_FUNCTIONS
const QString SETTINGS_EXPORT_POINTS_SELECTION_RELATIONS
const QString SETTINGS_EXPORT_EXTRAPOLATE_OUTSIDE_ENDPOINTS
const QString SETTINGS_EXPORT_HEADER
const QString SETTINGS_EXPORT_POINTS_INTERVAL_UNITS_FUNCTIONS
const QString SETTINGS_EXPORT_DELIMITER_OVERRIDE_CSV_TSV
const QString SETTINGS_DIGITIZER
Callback for computing the bounding rectangles of the screen and graph coordinates of the points in t...
CallbackSearchReturn callback(const QString &curveName, const Point &point)
Callback method.
Container for LineStyle and PointStyle for one Curve.
LineStyle lineStyle() const
Get method for LineStyle.
Model for DlgSettingsCurveProperties and CmdSettingsCurveProperties.
Abstract base class for all Settings dialogs.
void setCmdMediator(CmdMediator &cmdMediator)
Store CmdMediator for easy access by the leaf class.
void finishPanel(QWidget *subPanel, int minimumWidth=MINIMUM_DIALOG_WIDTH, int minimumHeightOrZero=0)
Add Ok and Cancel buttons to subpanel to get the whole dialog.
CmdMediator & cmdMediator()
Provide access to Document information wrapped inside CmdMediator.
void enableOk(bool enable)
Let leaf subclass control the Ok button.
static int MINIMUM_PREVIEW_HEIGHT
Dialog layout constant that guarantees preview has sufficent room.
MainWindow & mainWindow()
Get method for MainWindow.
CoordScale coordScaleYRadius() const
Get method for linear/log scale on y/radius.
QStringList curvesGraphsNames() const
See CurvesGraphs::curvesGraphsNames.
DocumentModelCoords modelCoords() const
Get method for DocumentModelCoords.
CurveStyles modelCurveStyles() const
Get method for CurveStyles.
Utility class for adjusting export settings given filename extension.
Strategy class for exporting to a file. This strategy is external to the Document class so that class...
void exportToFile(const DocumentModelExportFormat &modelExportOverride, const Document &document, const MainWindowModel &modelMainWindow, const Transformation &transformation, QTextStream &str, unsigned int &numWritesSoFar) const
Export Document points according to the settings.
Strategy class for exporting to a file. This strategy is external to the Document class so that class...
void exportToFile(const DocumentModelExportFormat &modelExportOverride, const Document &document, const MainWindowModel &modelMainWindow, const Transformation &transformation, QTextStream &str, unsigned int &numWritesSoFar) const
Export Document points according to the settings.
Strategy class for exporting to a file. This strategy is external to the Document class so that class...
CurveConnectAs curveConnectAs() const
Get method for connect type.
int maximumExportedPointsPerCurve() const
Get method for maximum number of exported points per curve.
Main window consisting of menu, graphics scene, status bar and optional toolbars as a Single Document...
MainWindowModel modelMainWindow() const
Get method for main window model.
#define LOG4CPP_INFO_S(logger)