7 #include "CmdMediator.h" 8 #include "CmdSettingsCurveProperties.h" 9 #include "ColorPalette.h" 10 #include "DlgSettingsCurveProperties.h" 11 #include "EngaugeAssert.h" 12 #include "EnumsToQt.h" 13 #include "GraphicsPoint.h" 14 #include "GraphicsPointFactory.h" 15 #include "GraphicsView.h" 17 #include "MainWindow.h" 21 #include <QGraphicsRectItem> 22 #include <QGraphicsScene> 23 #include <QGridLayout> 27 #include <QListWidget> 29 #include <QPushButton> 31 #include <QSpacerItem> 35 #include "SettingsForGraph.h" 37 #include "SplinePair.h" 39 #include "ViewPreview.h" 43 const QString CONNECT_AS_FUNCTION_SMOOTH_STR (
"Function - Smooth");
44 const QString CONNECT_AS_FUNCTION_STRAIGHT_STR (
"Function - Straight");
45 const QString CONNECT_AS_RELATION_SMOOTH_STR (
"Relation - Smooth");
46 const QString CONNECT_AS_RELATION_STRAIGHT_STR (
"Relation - Straight");
48 const double PREVIEW_WIDTH = 100.0;
49 const double PREVIEW_HEIGHT = 100.0;
51 const QPointF POS_LEFT (PREVIEW_WIDTH / 3.0,
52 PREVIEW_HEIGHT * 2.0 / 3.0);
53 const QPointF POS_CENTER (PREVIEW_WIDTH / 2.0,
54 PREVIEW_HEIGHT / 3.0);
55 const QPointF POS_RIGHT (2.0 * PREVIEW_WIDTH / 3.0,
56 PREVIEW_HEIGHT * 2.0 / 3.0);
60 "DlgSettingsCurveProperties",
64 m_modelCurveStylesBefore (0),
65 m_modelCurveStylesAfter (0)
67 LOG4CPP_INFO_S ((*mainCat)) <<
"DlgSettingsCurveProperties::DlgSettingsCurveProperties";
72 setMinimumWidth (740);
75 DlgSettingsCurveProperties::~DlgSettingsCurveProperties()
77 LOG4CPP_INFO_S ((*mainCat)) <<
"DlgSettingsCurveProperties::~DlgSettingsCurveProperties";
80 void DlgSettingsCurveProperties::createCurveName (QGridLayout *layout,
83 LOG4CPP_INFO_S ((*mainCat)) <<
"DlgSettingsCurveProperties::createCurveName";
85 QLabel *labelCurveName =
new QLabel (tr (
"Curve Name:"));
86 layout->addWidget (labelCurveName, row, 1);
88 m_cmbCurveName =
new QComboBox ();
89 m_cmbCurveName->setWhatsThis (tr (
"Name of the curve that is currently selected for editing"));
90 connect (m_cmbCurveName, SIGNAL (activated (
const QString &)),
this, SLOT (slotCurveName (
const QString &)));
91 layout->addWidget (m_cmbCurveName, row++, 2);
94 void DlgSettingsCurveProperties::createLine (QGridLayout *layout,
97 LOG4CPP_INFO_S ((*mainCat)) <<
"DlgSettingsCurveProperties::createLine";
99 m_groupLine =
new QGroupBox (tr (
"Line"));
100 layout->addWidget (m_groupLine, row++, 2);
102 QGridLayout *layoutGroup =
new QGridLayout;
103 m_groupLine->setLayout (layoutGroup);
105 QLabel *labelLineWidth =
new QLabel (tr (
"Width:"));
106 layoutGroup->addWidget (labelLineWidth, 0, 0);
108 m_spinLineWidth =
new QSpinBox (m_groupLine);
109 m_spinLineWidth->setWhatsThis (tr (
"Select a width for the lines drawn between points.\n\n" 110 "This applies only to graph curves. No lines are ever drawn between axis points."));
111 m_spinLineWidth->setMinimum(1);
112 connect (m_spinLineWidth, SIGNAL (valueChanged (
int)),
this, SLOT (slotLineWidth (
int)));
113 layoutGroup->addWidget (m_spinLineWidth, 0, 1);
115 QLabel *labelLineColor =
new QLabel (tr (
"Color:"));
116 layoutGroup->addWidget (labelLineColor, 1, 0);
118 m_cmbLineColor =
new QComboBox (m_groupLine);
119 m_cmbLineColor->setWhatsThis (tr (
"Select a color for the lines drawn between points.\n\n" 120 "This applies only to graph curves. No lines are ever drawn between axis points."));
122 connect (m_cmbLineColor, SIGNAL (activated (
const QString &)),
this, SLOT (slotLineColor (
const QString &)));
123 layoutGroup->addWidget (m_cmbLineColor, 1, 1);
125 QLabel *labelLineType =
new QLabel (tr (
"Connect as:"));
126 layoutGroup->addWidget (labelLineType, 2, 0);
128 m_cmbLineType =
new QComboBox (m_groupLine);
129 m_cmbLineType->addItem (CONNECT_AS_FUNCTION_STRAIGHT_STR, QVariant (CONNECT_AS_FUNCTION_STRAIGHT));
130 m_cmbLineType->addItem (CONNECT_AS_FUNCTION_SMOOTH_STR, QVariant (CONNECT_AS_FUNCTION_SMOOTH));
131 m_cmbLineType->addItem (CONNECT_AS_RELATION_STRAIGHT_STR, QVariant (CONNECT_AS_RELATION_STRAIGHT));
132 m_cmbLineType->addItem (CONNECT_AS_RELATION_SMOOTH_STR, QVariant (CONNECT_AS_RELATION_SMOOTH));
133 m_cmbLineType->setWhatsThis (tr (
"Select rule for connecting points with lines.\n\n" 134 "If the curve is connected as a single-valued function then the points are ordered by " 135 "increasing value of the independent variable.\n\n" 136 "If the curve is connected as a closed contour, then the points are ordered by age, except for " 137 "points placed along an existing line. Any point placed on top of any existing line is inserted " 138 "between the two endpoints of that line - as if its age was between the ages of the two " 140 "Lines are drawn between successively ordered points.\n\n" 141 "Straight curves are drawn with straight lines between successive points. Smooth curves are drawn " 142 "with smooth lines between successive points.\n\n" 143 "This applies only to graph curves. No lines are ever drawn between axis points."));
144 connect (m_cmbLineType, SIGNAL (activated (
const QString &)),
this, SLOT (slotLineType (
const QString &)));
145 layoutGroup->addWidget (m_cmbLineType, 2, 1);
148 void DlgSettingsCurveProperties::createPoint (QGridLayout *layout,
151 LOG4CPP_INFO_S ((*mainCat)) <<
"DlgSettingsCurveProperties::createPoint";
153 m_groupPoint =
new QGroupBox (tr (
"Point"));
154 layout->addWidget (m_groupPoint, row++, 1);
156 QGridLayout *layoutGroup =
new QGridLayout;
157 m_groupPoint->setLayout (layoutGroup);
159 QLabel *labelPointShape =
new QLabel(tr (
"Shape:"));
160 layoutGroup->addWidget (labelPointShape, 0, 0);
162 m_cmbPointShape =
new QComboBox (m_groupPoint);
163 m_cmbPointShape->setWhatsThis (tr (
"Select a shape for the points"));
164 m_cmbPointShape->addItem (pointShapeToString (POINT_SHAPE_CIRCLE),
166 m_cmbPointShape->addItem (pointShapeToString (POINT_SHAPE_CROSS),
168 m_cmbPointShape->addItem (pointShapeToString (POINT_SHAPE_DIAMOND),
169 POINT_SHAPE_DIAMOND);
170 m_cmbPointShape->addItem (pointShapeToString (POINT_SHAPE_SQUARE),
172 m_cmbPointShape->addItem (pointShapeToString (POINT_SHAPE_TRIANGLE),
173 POINT_SHAPE_TRIANGLE);
174 m_cmbPointShape->addItem (pointShapeToString (POINT_SHAPE_X),
176 connect (m_cmbPointShape, SIGNAL (activated (
const QString &)),
this, SLOT (slotPointShape (
const QString &)));
177 layoutGroup->addWidget (m_cmbPointShape, 0, 1);
179 QLabel *labelPointRadius =
new QLabel (tr (
"Radius:"));
180 layoutGroup->addWidget (labelPointRadius, 1, 0);
182 m_spinPointRadius =
new QSpinBox (m_groupPoint);
183 m_spinPointRadius->setWhatsThis (tr (
"Select a radius, in pixels, for the points"));
184 m_spinPointRadius->setMinimum (1);
185 connect (m_spinPointRadius, SIGNAL (valueChanged (
int)),
this, SLOT (slotPointRadius (
int)));
186 layoutGroup->addWidget (m_spinPointRadius, 1, 1);
188 QLabel *labelPointLineWidth =
new QLabel (tr (
"Line width:"));
189 layoutGroup->addWidget (labelPointLineWidth, 2, 0);
191 m_spinPointLineWidth =
new QSpinBox (m_groupPoint);
192 m_spinPointLineWidth->setWhatsThis (tr (
"Select a line width, in pixels, for the points.\n\n" 193 "A larger width results in a thicker line, with the exception of a value of zero " 194 "which always results in a line that is one pixel wide (which is easy to see even " 195 "when zoomed far out)"));
196 m_spinPointLineWidth->setMinimum (0);
197 connect (m_spinPointLineWidth, SIGNAL (valueChanged (
int)),
this, SLOT (slotPointLineWidth (
int)));
198 layoutGroup->addWidget (m_spinPointLineWidth, 2, 1);
200 QLabel *labelPointColor =
new QLabel (tr (
"Color:"));
201 layoutGroup->addWidget (labelPointColor, 3, 0);
203 m_cmbPointColor =
new QComboBox (m_groupPoint);
204 m_cmbPointColor->setWhatsThis (tr (
"Select a color for the line used to draw the point shapes"));
206 connect (m_cmbPointColor, SIGNAL (activated (
const QString &)),
this, SLOT (slotPointColor (
const QString &)));
207 layoutGroup->addWidget (m_cmbPointColor, 3, 1);
212 LOG4CPP_INFO_S ((*mainCat)) <<
"DlgSettingsCurveProperties::createOptionalSaveDefault";
214 m_btnSaveDefault =
new QPushButton (
"Save As Default");
215 m_btnSaveDefault->setWhatsThis (tr (
"Save the visible curve settings for use as future defaults, according to the curve name selection.\n\n" 216 "If the visible settings are for the axes curve, then they will be used for future " 217 "axes curves, until new settings are saved as the defaults.\n\n" 218 "If the visible settings are for the Nth graph curve in the curve list, then they will be used for future " 219 "graph curves that are also the Nth graph curve in their curve list, until new settings are saved as the defaults."));
220 connect (m_btnSaveDefault, SIGNAL (released ()),
this, SLOT (slotSaveDefault ()));
221 layout->addWidget (m_btnSaveDefault, 0, Qt::AlignLeft);
224 void DlgSettingsCurveProperties::createPreview (QGridLayout *layout,
227 LOG4CPP_INFO_S ((*mainCat)) <<
"DlgSettingsCurveProperties::createPreview";
229 QLabel *labelPreview =
new QLabel (tr (
"Preview"));
230 layout->addWidget (labelPreview, row++, 0, 1, 4);
232 m_scenePreview =
new QGraphicsScene (
this);
234 ViewPreview::VIEW_ASPECT_RATIO_ONE_TO_ONE,
236 m_viewPreview->setWhatsThis (tr (
"Preview window that shows how current settings affect the points and line of the selected curve.\n\n" 237 "The X coordinate is in the horizontal direction, and the Y coordinate is in the vertical direction. A " 238 "function can have only one Y value, at most, for any X value, but a relation can have multiple Y values " 239 "for one X value."));
240 m_viewPreview->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
241 m_viewPreview->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
243 m_viewPreview->setRenderHint (QPainter::Antialiasing);
245 layout->addWidget (m_viewPreview, row++, 0, 1, 4);
250 LOG4CPP_INFO_S ((*mainCat)) <<
"DlgSettingsCurveProperties::createSubPanel";
252 QWidget *subPanel =
new QWidget ();
253 QGridLayout *layout =
new QGridLayout (subPanel);
254 subPanel->setLayout (layout);
257 createCurveName (layout, row);
259 int rowLeft = row, rowRight = row++;
260 createPoint (layout, rowLeft);
261 createLine (layout, rowRight);
262 createPreview (layout, row);
264 layout->setColumnStretch(0, 1);
265 layout->setColumnStretch(1, 0);
266 layout->setColumnStretch(2, 0);
267 layout->setColumnStretch(3, 1);
269 layout->setRowStretch (0, 1);
274 void DlgSettingsCurveProperties::drawLine (
bool isRelation,
277 const double Z_LINE = -1.0;
281 QPointF p0 (POS_LEFT), p1 (POS_CENTER), p2 (POS_RIGHT);
294 vector<SplinePair> xy;
303 path.cubicTo (QPointF (spline.
p1(0).
x(),
305 QPointF (spline.
p2(0).
x(),
308 path.cubicTo (QPointF (spline.
p1(1).
x(),
310 QPointF (spline.
p2(1).
x(),
319 QGraphicsPathItem *line =
new QGraphicsPathItem (path);
320 line->setPen (QPen (QBrush (ColorPaletteToQColor (lineStyle.
paletteColor())),
322 line->setZValue (Z_LINE);
323 m_scenePreview->addItem (line);
326 void DlgSettingsCurveProperties::drawPoints (
const PointStyle &pointStyle)
328 const QString NULL_IDENTIFIER;
356 LOG4CPP_INFO_S ((*mainCat)) <<
"DlgSettingsCurveProperties::handleOk";
358 ENGAUGE_CHECK_PTR (m_modelCurveStylesBefore);
359 ENGAUGE_CHECK_PTR (m_modelCurveStylesAfter);
363 *m_modelCurveStylesBefore,
364 *m_modelCurveStylesAfter);
372 LOG4CPP_INFO_S ((*mainCat)) <<
"DlgSettingsCurveProperties::load";
377 if (m_modelCurveStylesBefore != 0) {
378 delete m_modelCurveStylesBefore;
380 if (m_modelCurveStylesAfter != 0) {
381 delete m_modelCurveStylesAfter;
389 m_cmbCurveName->clear ();
390 m_cmbCurveName->addItem (AXIS_CURVE_NAME);
392 QStringList::const_iterator itr;
393 for (itr = curveNames.begin (); itr != curveNames.end (); itr++) {
395 QString curveName = *itr;
396 m_cmbCurveName->addItem (curveName);
399 loadForCurveName (
mainWindow().selectedGraphCurve());
405 void DlgSettingsCurveProperties::loadForCurveName (
const QString &curveName)
407 int indexCurveName = m_cmbCurveName->findText(curveName);
408 ENGAUGE_ASSERT (indexCurveName >= 0);
409 m_cmbCurveName->setCurrentIndex(indexCurveName);
411 int indexPointShape = m_cmbPointShape->findData (QVariant (m_modelCurveStylesAfter->
pointShape (curveName)));
412 ENGAUGE_ASSERT (indexPointShape >= 0);
413 m_cmbPointShape->setCurrentIndex (indexPointShape);
415 m_spinPointRadius->setValue (m_modelCurveStylesAfter->
pointRadius(curveName));
416 m_spinPointLineWidth->setValue (m_modelCurveStylesAfter->
pointLineWidth(curveName));
418 int indexPointColor = m_cmbPointColor->findData (QVariant (m_modelCurveStylesAfter->
pointColor(curveName)));
419 ENGAUGE_ASSERT (indexPointColor >= 0);
420 m_cmbPointColor->setCurrentIndex (indexPointColor);
422 int indexLineColor = m_cmbLineColor->findData (QVariant (m_modelCurveStylesAfter->
lineColor(curveName)));
423 ENGAUGE_ASSERT (indexLineColor >= 0);
424 m_cmbLineColor->setCurrentIndex (indexLineColor);
426 m_spinLineWidth->setValue (m_modelCurveStylesAfter->
lineWidth(curveName));
428 int indexCurveConnectAs = m_cmbLineType->findData (QVariant (m_modelCurveStylesAfter->
lineConnectAs (curveName)));
429 if (indexCurveConnectAs >= 0) {
431 m_cmbLineType->setCurrentIndex (indexCurveConnectAs);
435 m_cmbLineColor->setEnabled (curveName != AXIS_CURVE_NAME);
436 m_spinLineWidth->setEnabled (curveName != AXIS_CURVE_NAME);
437 m_cmbLineType->setEnabled (curveName != AXIS_CURVE_NAME);
443 void DlgSettingsCurveProperties::resetSceneRectangle ()
451 QGraphicsRectItem *itemPerimeter =
new QGraphicsRectItem(rect);
452 itemPerimeter->setVisible(
false);
453 m_scenePreview->addItem (itemPerimeter);
454 m_viewPreview->centerOn (QPointF (0.0, 0.0));
459 m_cmbCurveName->setCurrentText (curveName);
460 loadForCurveName (curveName);
463 void DlgSettingsCurveProperties::slotCurveName(
const QString &curveName)
465 LOG4CPP_INFO_S ((*mainCat)) <<
"DlgSettingsCurveProperties::slotCurveName";
470 if (!curveName.isEmpty () && (m_modelCurveStylesAfter != 0)) {
472 loadForCurveName (curveName);
476 void DlgSettingsCurveProperties::slotLineColor(
const QString &lineColor)
478 LOG4CPP_INFO_S ((*mainCat)) <<
"DlgSettingsCurveProperties::slotLineColor color=" << lineColor.toLatin1().data();
482 m_modelCurveStylesAfter->
setLineColor(m_cmbCurveName->currentText(),
483 (ColorPalette) m_cmbLineColor->currentData().toInt());
488 void DlgSettingsCurveProperties::slotLineWidth(
int width)
490 LOG4CPP_INFO_S ((*mainCat)) <<
"DlgSettingsCurveProperties::slotLineWidth width=" << width;
494 m_modelCurveStylesAfter->
setLineWidth(m_cmbCurveName->currentText(),
500 void DlgSettingsCurveProperties::slotLineType(
const QString &lineType)
502 LOG4CPP_INFO_S ((*mainCat)) <<
"DlgSettingsCurveProperties::slotLineType lineType=" << lineType.toLatin1().data();
507 (CurveConnectAs) m_cmbLineType->currentData().toInt ());
512 void DlgSettingsCurveProperties::slotPointColor(
const QString &pointColor)
514 LOG4CPP_INFO_S ((*mainCat)) <<
"DlgSettingsCurveProperties::slotPointColor pointColor=" << pointColor.toLatin1().data();
518 m_modelCurveStylesAfter->
setPointColor(m_cmbCurveName->currentText(),
519 (ColorPalette) m_cmbPointColor->currentData().toInt ());
524 void DlgSettingsCurveProperties::slotPointLineWidth(
int lineWidth)
526 LOG4CPP_INFO_S ((*mainCat)) <<
"DlgSettingsCurveProperties::slotPointLineWidth lineWidth=" << lineWidth;
536 void DlgSettingsCurveProperties::slotPointRadius(
int radius)
538 LOG4CPP_INFO_S ((*mainCat)) <<
"DlgSettingsCurveProperties::slotPointRadius radius=" << radius;
542 m_modelCurveStylesAfter->
setPointRadius(m_cmbCurveName->currentText(),
548 void DlgSettingsCurveProperties::slotPointShape(
const QString &)
550 LOG4CPP_INFO_S ((*mainCat)) <<
"DlgSettingsCurveProperties::slotPointShape";
554 m_modelCurveStylesAfter->
setPointShape(m_cmbCurveName->currentText(),
555 (PointShape) m_cmbPointShape->currentData().toInt ());
560 void DlgSettingsCurveProperties::slotSaveDefault()
562 LOG4CPP_INFO_S ((*mainCat)) <<
"DlgSettingsCurveProperties::slotSaveDefault";
564 QString curve = m_cmbCurveName->currentText ();
566 QSettings settings (SETTINGS_ENGAUGE, SETTINGS_DIGITIZER);
567 if (curve == AXIS_CURVE_NAME) {
569 settings.beginGroup (SETTINGS_GROUP_CURVE_AXES);
575 settings.beginGroup (groupName);
579 settings.setValue (SETTINGS_CURVE_POINT_SHAPE,
581 settings.setValue (SETTINGS_CURVE_LINE_COLOR,
582 m_modelCurveStylesAfter->
lineColor(curve));
583 settings.setValue (SETTINGS_CURVE_LINE_CONNECT_AS,
585 settings.setValue (SETTINGS_CURVE_LINE_WIDTH,
586 m_modelCurveStylesAfter->
lineWidth(curve));
587 settings.setValue (SETTINGS_CURVE_POINT_COLOR,
589 settings.setValue (SETTINGS_CURVE_POINT_LINE_WIDTH,
591 settings.setValue (SETTINGS_CURVE_POINT_RADIUS,
593 settings.endGroup ();
596 void DlgSettingsCurveProperties::updateControls()
598 bool isGoodState = !m_spinPointRadius->text().isEmpty () &&
599 !m_spinPointLineWidth->text().isEmpty () &&
600 !m_spinLineWidth->text().isEmpty ();
601 m_cmbCurveName->setEnabled (isGoodState);
602 enableOk (isGoodState && m_isDirty);
605 void DlgSettingsCurveProperties::updatePreview()
607 m_scenePreview->clear();
609 QString currentCurve = m_cmbCurveName->currentText();
615 bool isRelation = (lineStyle.
curveConnectAs() == CONNECT_AS_RELATION_SMOOTH ||
618 drawPoints (pointStyle);
619 drawLine (isRelation,
622 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.
double y() const
Get method for y.
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...
SplinePair p1(unsigned int i) const
Bezier p1 control point for specified interval. P0 is m_xy[i] and P3 is m_xy[i+1].
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.
double x() const
Get method for x.
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.
SplinePair p2(unsigned int i) const
Bezier p2 control point for specified interval. P0 is m_xy[i] and P3 is m_xy[i+1].
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.