1 #include "CmdMediator.h"
2 #include "CmdSettingsCurveProperties.h"
3 #include "ColorPalette.h"
4 #include "DlgSettingsCurveProperties.h"
5 #include "EngaugeAssert.h"
7 #include "GraphicsPoint.h"
8 #include "GraphicsPointFactory.h"
9 #include "GraphicsView.h"
11 #include "MainWindow.h"
15 #include <QGraphicsRectItem>
16 #include <QGraphicsScene>
17 #include <QGridLayout>
21 #include <QListWidget>
23 #include <QPushButton>
25 #include <QSpacerItem>
29 #include "SettingsForGraph.h"
31 #include "SplinePair.h"
33 #include "ViewPreview.h"
37 const QString CONNECT_AS_FUNCTION_SMOOTH_STR (
"Function - Smooth");
38 const QString CONNECT_AS_FUNCTION_STRAIGHT_STR (
"Function - Straight");
39 const QString CONNECT_AS_RELATION_SMOOTH_STR (
"Relation - Smooth");
40 const QString CONNECT_AS_RELATION_STRAIGHT_STR (
"Relation - Straight");
42 const double PREVIEW_WIDTH = 100.0;
43 const double PREVIEW_HEIGHT = 100.0;
45 const QPointF POS_LEFT (PREVIEW_WIDTH / 3.0,
46 PREVIEW_HEIGHT * 2.0 / 3.0);
47 const QPointF POS_CENTER (PREVIEW_WIDTH / 2.0,
48 PREVIEW_HEIGHT / 3.0);
49 const QPointF POS_RIGHT (2.0 * PREVIEW_WIDTH / 3.0,
50 PREVIEW_HEIGHT * 2.0 / 3.0);
54 "DlgSettingsCurveProperties",
58 m_modelCurveStylesBefore (0),
59 m_modelCurveStylesAfter (0)
61 LOG4CPP_INFO_S ((*mainCat)) <<
"DlgSettingsCurveProperties::DlgSettingsCurveProperties";
66 setMinimumWidth (740);
69 DlgSettingsCurveProperties::~DlgSettingsCurveProperties()
71 LOG4CPP_INFO_S ((*mainCat)) <<
"DlgSettingsCurveProperties::~DlgSettingsCurveProperties";
74 void DlgSettingsCurveProperties::createCurveName (QGridLayout *layout,
77 LOG4CPP_INFO_S ((*mainCat)) <<
"DlgSettingsCurveProperties::createCurveName";
79 QLabel *labelCurveName =
new QLabel (
"Curve Name:");
80 layout->addWidget (labelCurveName, row, 1);
82 m_cmbCurveName =
new QComboBox ();
83 m_cmbCurveName->setWhatsThis (tr (
"Name of the curve that is currently selected for editing"));
84 connect (m_cmbCurveName, SIGNAL (activated (
const QString &)),
this, SLOT (slotCurveName (
const QString &)));
85 layout->addWidget (m_cmbCurveName, row++, 2);
88 void DlgSettingsCurveProperties::createLine (QGridLayout *layout,
91 LOG4CPP_INFO_S ((*mainCat)) <<
"DlgSettingsCurveProperties::createLine";
93 m_groupLine =
new QGroupBox (
"Line");
94 layout->addWidget (m_groupLine, row++, 2);
96 QGridLayout *layoutGroup =
new QGridLayout;
97 m_groupLine->setLayout (layoutGroup);
99 QLabel *labelLineWidth =
new QLabel (
"Width:");
100 layoutGroup->addWidget (labelLineWidth, 0, 0);
102 m_spinLineWidth =
new QSpinBox (m_groupLine);
103 m_spinLineWidth->setWhatsThis (tr (
"Select a width for the lines drawn between points.\n\n"
104 "This applies only to graph curves. No lines are ever drawn between axis points."));
105 m_spinLineWidth->setMinimum(1);
106 connect (m_spinLineWidth, SIGNAL (valueChanged (
int)),
this, SLOT (slotLineWidth (
int)));
107 layoutGroup->addWidget (m_spinLineWidth, 0, 1);
109 QLabel *labelLineColor =
new QLabel (
"Color:");
110 layoutGroup->addWidget (labelLineColor, 1, 0);
112 m_cmbLineColor =
new QComboBox (m_groupLine);
113 m_cmbLineColor->setWhatsThis (tr (
"Select a color for the lines drawn between points.\n\n"
114 "This applies only to graph curves. No lines are ever drawn between axis points."));
116 connect (m_cmbLineColor, SIGNAL (activated (
const QString &)),
this, SLOT (slotLineColor (
const QString &)));
117 layoutGroup->addWidget (m_cmbLineColor, 1, 1);
119 QLabel *labelLineType =
new QLabel (
"Connect as:");
120 layoutGroup->addWidget (labelLineType, 2, 0);
122 m_cmbLineType =
new QComboBox (m_groupLine);
123 m_cmbLineType->addItem (CONNECT_AS_FUNCTION_STRAIGHT_STR, QVariant (CONNECT_AS_FUNCTION_STRAIGHT));
124 m_cmbLineType->addItem (CONNECT_AS_FUNCTION_SMOOTH_STR, QVariant (CONNECT_AS_FUNCTION_SMOOTH));
125 m_cmbLineType->addItem (CONNECT_AS_RELATION_STRAIGHT_STR, QVariant (CONNECT_AS_RELATION_STRAIGHT));
126 m_cmbLineType->addItem (CONNECT_AS_RELATION_SMOOTH_STR, QVariant (CONNECT_AS_RELATION_SMOOTH));
127 m_cmbLineType->setWhatsThis (tr (
"Select rule for connecting points with lines.\n\n"
128 "If the curve is connected as a single-valued function then the points are ordered by "
129 "increasing value of the independent variable.\n\n"
130 "If the curve is connected as a closed contour, then the points are ordered by age, except for "
131 "points placed along an existing line. Any point placed on top of any existing line is inserted "
132 "between the two endpoints of that line - as if its age was between the ages of the two "
134 "Lines are drawn between successively ordered points.\n\n"
135 "Straight curves are drawn with straight lines between successive points. Smooth curves are drawn "
136 "with smooth lines between successive points.\n\n"
137 "This applies only to graph curves. No lines are ever drawn between axis points."));
138 connect (m_cmbLineType, SIGNAL (activated (
const QString &)),
this, SLOT (slotLineType (
const QString &)));
139 layoutGroup->addWidget (m_cmbLineType, 2, 1);
142 void DlgSettingsCurveProperties::createPoint (QGridLayout *layout,
145 LOG4CPP_INFO_S ((*mainCat)) <<
"DlgSettingsCurveProperties::createPoint";
147 m_groupPoint =
new QGroupBox (
"Point");
148 layout->addWidget (m_groupPoint, row++, 1);
150 QGridLayout *layoutGroup =
new QGridLayout;
151 m_groupPoint->setLayout (layoutGroup);
153 QLabel *labelPointShape =
new QLabel(
"Shape:");
154 layoutGroup->addWidget (labelPointShape, 0, 0);
156 m_cmbPointShape =
new QComboBox (m_groupPoint);
157 m_cmbPointShape->setWhatsThis (tr (
"Select a shape for the points"));
158 m_cmbPointShape->addItem (pointShapeToString (POINT_SHAPE_CIRCLE),
160 m_cmbPointShape->addItem (pointShapeToString (POINT_SHAPE_CROSS),
162 m_cmbPointShape->addItem (pointShapeToString (POINT_SHAPE_DIAMOND),
163 POINT_SHAPE_DIAMOND);
164 m_cmbPointShape->addItem (pointShapeToString (POINT_SHAPE_SQUARE),
166 m_cmbPointShape->addItem (pointShapeToString (POINT_SHAPE_TRIANGLE),
167 POINT_SHAPE_TRIANGLE);
168 m_cmbPointShape->addItem (pointShapeToString (POINT_SHAPE_X),
170 connect (m_cmbPointShape, SIGNAL (activated (
const QString &)),
this, SLOT (slotPointShape (
const QString &)));
171 layoutGroup->addWidget (m_cmbPointShape, 0, 1);
173 QLabel *labelPointRadius =
new QLabel (
"Radius:");
174 layoutGroup->addWidget (labelPointRadius, 1, 0);
176 m_spinPointRadius =
new QSpinBox (m_groupPoint);
177 m_spinPointRadius->setWhatsThis (tr (
"Select a radius, in pixels, for the points"));
178 m_spinPointRadius->setMinimum (1);
179 connect (m_spinPointRadius, SIGNAL (valueChanged (
int)),
this, SLOT (slotPointRadius (
int)));
180 layoutGroup->addWidget (m_spinPointRadius, 1, 1);
182 QLabel *labelPointLineWidth =
new QLabel (
"Line width:");
183 layoutGroup->addWidget (labelPointLineWidth, 2, 0);
185 m_spinPointLineWidth =
new QSpinBox (m_groupPoint);
186 m_spinPointLineWidth->setWhatsThis (tr (
"Select a line width, in pixels, for the points.\n\n"
187 "A larger width results in a thicker line, with the exception of a value of zero "
188 "which always results in a line that is one pixel wide (which is easy to see even "
189 "when zoomed far out)"));
190 m_spinPointLineWidth->setMinimum (0);
191 connect (m_spinPointLineWidth, SIGNAL (valueChanged (
int)),
this, SLOT (slotPointLineWidth (
int)));
192 layoutGroup->addWidget (m_spinPointLineWidth, 2, 1);
194 QLabel *labelPointColor =
new QLabel (
"Color:");
195 layoutGroup->addWidget (labelPointColor, 3, 0);
197 m_cmbPointColor =
new QComboBox (m_groupPoint);
198 m_cmbPointColor->setWhatsThis (tr (
"Select a color for the line used to draw the point shapes"));
200 connect (m_cmbPointColor, SIGNAL (activated (
const QString &)),
this, SLOT (slotPointColor (
const QString &)));
201 layoutGroup->addWidget (m_cmbPointColor, 3, 1);
206 LOG4CPP_INFO_S ((*mainCat)) <<
"DlgSettingsCurveProperties::createOptionalSaveDefault";
208 m_btnSaveDefault =
new QPushButton (
"Save As Default");
209 m_btnSaveDefault->setWhatsThis (tr (
"Save the visible curve settings for use as future defaults, according to the curve name selection.\n\n"
210 "If the visible settings are for the axes curve, then they will be used for future "
211 "axes curves, until new settings are saved as the defaults.\n\n"
212 "If the visible settings are for the Nth graph curve in the curve list, then they will be used for future "
213 "graph curves that are also the Nth graph curve in their curve list, until new settings are saved as the defaults."));
214 connect (m_btnSaveDefault, SIGNAL (released ()),
this, SLOT (slotSaveDefault ()));
215 layout->addWidget (m_btnSaveDefault, 0, Qt::AlignLeft);
218 void DlgSettingsCurveProperties::createPreview (QGridLayout *layout,
221 LOG4CPP_INFO_S ((*mainCat)) <<
"DlgSettingsCurveProperties::createPreview";
223 QLabel *labelPreview =
new QLabel (
"Preview");
224 layout->addWidget (labelPreview, row++, 0, 1, 4);
226 m_scenePreview =
new QGraphicsScene (
this);
228 ViewPreview::VIEW_ASPECT_RATIO_ONE_TO_ONE,
230 m_viewPreview->setWhatsThis (tr (
"Preview window that shows how current settings affect the points and line of the selected curve.\n\n"
231 "The X coordinate is in the horizontal direction, and the Y coordinate is in the vertical direction. A "
232 "function can have only one Y value, at most, for any X value, but a relation can have multiple Y values "
233 "for one X value."));
234 m_viewPreview->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
235 m_viewPreview->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
237 m_viewPreview->setRenderHint (QPainter::Antialiasing);
239 layout->addWidget (m_viewPreview, row++, 0, 1, 4);
244 LOG4CPP_INFO_S ((*mainCat)) <<
"DlgSettingsCurveProperties::createSubPanel";
246 QWidget *subPanel =
new QWidget ();
247 QGridLayout *layout =
new QGridLayout (subPanel);
248 subPanel->setLayout (layout);
251 createCurveName (layout, row);
253 int rowLeft = row, rowRight = row++;
254 createPoint (layout, rowLeft);
255 createLine (layout, rowRight);
256 createPreview (layout, row);
258 layout->setColumnStretch(0, 1);
259 layout->setColumnStretch(1, 0);
260 layout->setColumnStretch(2, 0);
261 layout->setColumnStretch(3, 1);
263 layout->setRowStretch (0, 1);
268 void DlgSettingsCurveProperties::drawLine (
bool isRelation,
271 const double Z_LINE = -1.0;
275 QPointF p0 (POS_LEFT), p1 (POS_CENTER), p2 (POS_RIGHT);
288 vector<SplinePair> xy;
297 path.cubicTo (QPointF (spline.p1(0).x(),
299 QPointF (spline.p2(0).x(),
302 path.cubicTo (QPointF (spline.p1(1).x(),
304 QPointF (spline.p2(1).x(),
313 QGraphicsPathItem *line =
new QGraphicsPathItem (path);
314 line->setPen (QPen (QBrush (ColorPaletteToQColor (lineStyle.
paletteColor())),
316 line->setZValue (Z_LINE);
317 m_scenePreview->addItem (line);
320 void DlgSettingsCurveProperties::drawPoints (
const PointStyle &pointStyle)
322 const QString NULL_IDENTIFIER;
350 LOG4CPP_INFO_S ((*mainCat)) <<
"DlgSettingsCurveProperties::handleOk";
352 ENGAUGE_CHECK_PTR (m_modelCurveStylesBefore);
353 ENGAUGE_CHECK_PTR (m_modelCurveStylesAfter);
357 *m_modelCurveStylesBefore,
358 *m_modelCurveStylesAfter);
366 LOG4CPP_INFO_S ((*mainCat)) <<
"DlgSettingsCurveProperties::load";
371 if (m_modelCurveStylesBefore != 0) {
372 delete m_modelCurveStylesBefore;
374 if (m_modelCurveStylesAfter != 0) {
375 delete m_modelCurveStylesAfter;
383 m_cmbCurveName->clear ();
384 m_cmbCurveName->addItem (AXIS_CURVE_NAME);
386 QStringList::const_iterator itr;
387 for (itr = curveNames.begin (); itr != curveNames.end (); itr++) {
389 QString curveName = *itr;
390 m_cmbCurveName->addItem (curveName);
393 loadForCurveName (
mainWindow().selectedGraphCurve());
399 void DlgSettingsCurveProperties::loadForCurveName (
const QString &curveName)
401 int indexCurveName = m_cmbCurveName->findText(curveName);
402 ENGAUGE_ASSERT (indexCurveName >= 0);
403 m_cmbCurveName->setCurrentIndex(indexCurveName);
405 int indexPointShape = m_cmbPointShape->findData (QVariant (m_modelCurveStylesAfter->
pointShape (curveName)));
406 ENGAUGE_ASSERT (indexPointShape >= 0);
407 m_cmbPointShape->setCurrentIndex (indexPointShape);
409 m_spinPointRadius->setValue (m_modelCurveStylesAfter->
pointRadius(curveName));
410 m_spinPointLineWidth->setValue (m_modelCurveStylesAfter->
pointLineWidth(curveName));
412 int indexPointColor = m_cmbPointColor->findData (QVariant (m_modelCurveStylesAfter->
pointColor(curveName)));
413 ENGAUGE_ASSERT (indexPointColor >= 0);
414 m_cmbPointColor->setCurrentIndex (indexPointColor);
416 int indexLineColor = m_cmbLineColor->findData (QVariant (m_modelCurveStylesAfter->
lineColor(curveName)));
417 ENGAUGE_ASSERT (indexLineColor >= 0);
418 m_cmbLineColor->setCurrentIndex (indexLineColor);
420 m_spinLineWidth->setValue (m_modelCurveStylesAfter->
lineWidth(curveName));
422 int indexCurveConnectAs = m_cmbLineType->findData (QVariant (m_modelCurveStylesAfter->
lineConnectAs (curveName)));
423 if (indexCurveConnectAs >= 0) {
425 m_cmbLineType->setCurrentIndex (indexCurveConnectAs);
429 m_cmbLineColor->setEnabled (curveName != AXIS_CURVE_NAME);
430 m_spinLineWidth->setEnabled (curveName != AXIS_CURVE_NAME);
431 m_cmbLineType->setEnabled (curveName != AXIS_CURVE_NAME);
437 void DlgSettingsCurveProperties::resetSceneRectangle ()
445 QGraphicsRectItem *itemPerimeter =
new QGraphicsRectItem(rect);
446 itemPerimeter->setVisible(
false);
447 m_scenePreview->addItem (itemPerimeter);
448 m_viewPreview->centerOn (QPointF (0.0, 0.0));
453 m_cmbCurveName->setCurrentText (curveName);
454 loadForCurveName (curveName);
457 void DlgSettingsCurveProperties::slotCurveName(
const QString &curveName)
459 LOG4CPP_INFO_S ((*mainCat)) <<
"DlgSettingsCurveProperties::slotCurveName";
464 if (!curveName.isEmpty () && (m_modelCurveStylesAfter != 0)) {
466 loadForCurveName (curveName);
470 void DlgSettingsCurveProperties::slotLineColor(
const QString &lineColor)
472 LOG4CPP_INFO_S ((*mainCat)) <<
"DlgSettingsCurveProperties::slotLineColor color=" << lineColor.toLatin1().data();
476 m_modelCurveStylesAfter->
setLineColor(m_cmbCurveName->currentText(),
477 (ColorPalette) m_cmbLineColor->currentData().toInt());
482 void DlgSettingsCurveProperties::slotLineWidth(
int width)
484 LOG4CPP_INFO_S ((*mainCat)) <<
"DlgSettingsCurveProperties::slotLineWidth width=" << width;
488 m_modelCurveStylesAfter->
setLineWidth(m_cmbCurveName->currentText(),
494 void DlgSettingsCurveProperties::slotLineType(
const QString &lineType)
496 LOG4CPP_INFO_S ((*mainCat)) <<
"DlgSettingsCurveProperties::slotLineType lineType=" << lineType.toLatin1().data();
501 (CurveConnectAs) m_cmbLineType->currentData().toInt ());
506 void DlgSettingsCurveProperties::slotPointColor(
const QString &pointColor)
508 LOG4CPP_INFO_S ((*mainCat)) <<
"DlgSettingsCurveProperties::slotPointColor pointColor=" << pointColor.toLatin1().data();
512 m_modelCurveStylesAfter->
setPointColor(m_cmbCurveName->currentText(),
513 (ColorPalette) m_cmbPointColor->currentData().toInt ());
518 void DlgSettingsCurveProperties::slotPointLineWidth(
int lineWidth)
520 LOG4CPP_INFO_S ((*mainCat)) <<
"DlgSettingsCurveProperties::slotPointLineWidth lineWidth=" << lineWidth;
530 void DlgSettingsCurveProperties::slotPointRadius(
int radius)
532 LOG4CPP_INFO_S ((*mainCat)) <<
"DlgSettingsCurveProperties::slotPointRadius radius=" << radius;
536 m_modelCurveStylesAfter->
setPointRadius(m_cmbCurveName->currentText(),
542 void DlgSettingsCurveProperties::slotPointShape(
const QString &)
544 LOG4CPP_INFO_S ((*mainCat)) <<
"DlgSettingsCurveProperties::slotPointShape";
548 m_modelCurveStylesAfter->
setPointShape(m_cmbCurveName->currentText(),
549 (PointShape) m_cmbPointShape->currentData().toInt ());
554 void DlgSettingsCurveProperties::slotSaveDefault()
556 LOG4CPP_INFO_S ((*mainCat)) <<
"DlgSettingsCurveProperties::slotSaveDefault";
558 QString curve = m_cmbCurveName->currentText ();
560 QSettings settings (SETTINGS_ENGAUGE, SETTINGS_DIGITIZER);
561 if (curve == AXIS_CURVE_NAME) {
563 settings.beginGroup (SETTINGS_GROUP_CURVE_AXES);
569 settings.beginGroup (groupName);
573 settings.setValue (SETTINGS_CURVE_POINT_SHAPE,
575 settings.setValue (SETTINGS_CURVE_LINE_COLOR,
576 m_modelCurveStylesAfter->
lineColor(curve));
577 settings.setValue (SETTINGS_CURVE_LINE_CONNECT_AS,
579 settings.setValue (SETTINGS_CURVE_LINE_WIDTH,
580 m_modelCurveStylesAfter->
lineWidth(curve));
581 settings.setValue (SETTINGS_CURVE_POINT_COLOR,
583 settings.setValue (SETTINGS_CURVE_POINT_LINE_WIDTH,
585 settings.setValue (SETTINGS_CURVE_POINT_RADIUS,
587 settings.endGroup ();
590 void DlgSettingsCurveProperties::updateControls()
592 bool isGoodState = !m_spinPointRadius->text().isEmpty () &&
593 !m_spinPointLineWidth->text().isEmpty () &&
594 !m_spinLineWidth->text().isEmpty ();
595 m_cmbCurveName->setEnabled (isGoodState);
596 enableOk (isGoodState && m_isDirty);
599 void DlgSettingsCurveProperties::updatePreview()
601 m_scenePreview->clear();
603 QString currentCurve = m_cmbCurveName->currentText();
609 bool isRelation = (lineStyle.
curveConnectAs() == CONNECT_AS_RELATION_SMOOTH ||
612 drawPoints (pointStyle);
613 drawLine (isRelation,
616 resetSceneRectangle();
void setLineColor(const QString &curveName, ColorPalette lineColor)
Set method for line color in specified curve.
Manage storage and retrieval of the settings for the curves.
Factor for generating GraphicsPointAbstractBase class objects.
void setLineConnectAs(const QString &curveName, CurveConnectAs curveConnectAs)
Set method for connect as method for lines in specified curve.
void setCurveName(const QString &curveName)
Load information for the specified curve name. When called externally, the load method must have been...
void setLineWidth(const QString &curveName, int width)
Set method for line width in specified curve.
unsigned int width() const
Width of line.
Cubic interpolation given independent and dependent value vectors.
void setPointLineWidth(const QString &curveName, int width)
Set method for curve point perimeter line width.
Model for DlgSettingsCurveProperties and CmdSettingsCurveProperties.
GraphicsPoint * createPoint(QGraphicsScene &scene, const QString &identifier, const QPointF &posScreen, const PointStyle &pointStyle)
Create circle or polygon point according to the PointStyle.
void setCmdMediator(CmdMediator &cmdMediator)
Store CmdMediator for easy access by the leaf class.
LineStyle lineStyle() const
Get method for LineStyle.
int pointRadius(const QString &curveName) const
Get method for curve point radius.
virtual void load(CmdMediator &cmdMediator)
Load settings from Document.
Command for DlgSettingsCurveProperties.
PointStyle pointStyle() const
Get method for PointStyle.
DlgSettingsCurveProperties(MainWindow &mainWindow)
Single constructor.
virtual void handleOk()
Process slotOk.
void setPointStyle(const PointStyle &pointStyle)
Update the point style.
int lineWidth(const QString &curveName) const
Get method for line width in specified curve.
QString groupNameForNthCurve(int indexOneBased) const
Return the group name, that appears in the settings file/registry, for the specified curve index...
ColorPalette lineColor(const QString &curveName) const
Get method for line color in specified curve.
Class that modifies QGraphicsView to automatically expand/shrink the view to fit the window...
Details for a specific Point.
virtual QWidget * createSubPanel()
Create dialog-specific panel to which base class will add Ok and Cancel buttons.
CurveConnectAs lineConnectAs(const QString &curveName) const
Get method for connect as method for lines in specified curve.
virtual void createOptionalSaveDefault(QHBoxLayout *layout)
Let subclass define an optional Save As Default button.
void populateColorComboWithoutTransparent(QComboBox &combo)
Add colors in color palette to combobox, without transparent entry at end.
Details for a specific Line.
PointShape pointShape(const QString &curveName) const
Get method for curve point shape.
Graphics item for drawing a circular or polygonal Point.
ColorPalette pointColor(const QString &curveName) const
Get method for curve point color in specified curve.
void finishPanel(QWidget *subPanel)
Add Ok and Cancel buttons to subpanel to get the whole dialog.
void setPointRadius(const QString &curveName, int radius)
Set method for curve point radius.
static int MINIMUM_PREVIEW_HEIGHT
Dialog layout constant that guarantees preview has sufficent room.
int pointLineWidth(const QString &curveName) const
Get method for curve point line width.
void enableOk(bool enable)
Let leaf subclass control the Ok button.
ColorPalette paletteColor() const
Line color.
CurveStyle curveStyle(const QString &curveName) const
CurveStyle in specified curve.
void populateColorComboWithTransparent(QComboBox &combo)
Add colors in color palette to combobox, with transparent entry at end.
Abstract base class for all Settings dialogs.
CurveConnectAs curveConnectAs() const
Get method for connect type.
void setPointShape(const QString &curveName, PointShape shape)
Set method for curve point shape in specified curve.
MainWindow & mainWindow()
Get method for MainWindow.
Main window consisting of menu, graphics scene, status bar and optional toolbars as a Single Document...
Single X/Y pair for cubic spline interpolation initialization and calculations.
CmdMediator & cmdMediator()
Provide access to Document information wrapped inside CmdMediator.
void setPointColor(const QString &curveName, ColorPalette curveColor)
Set method curve point color in specified curve.