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 "GeometryWindow.h" 14 #include "GraphicsPoint.h" 15 #include "GraphicsPointFactory.h" 16 #include "GraphicsView.h" 18 #include "MainWindow.h" 22 #include <QGraphicsRectItem> 23 #include <QGraphicsScene> 24 #include <QGridLayout> 28 #include <QListWidget> 30 #include <QPushButton> 32 #include <QSpacerItem> 36 #include "SettingsForGraph.h" 38 #include "SplinePair.h" 40 #include "ViewPreview.h" 44 const QString CONNECT_AS_FUNCTION_SMOOTH_STR (
"Function - Smooth");
45 const QString CONNECT_AS_FUNCTION_STRAIGHT_STR (
"Function - Straight");
46 const QString CONNECT_AS_RELATION_SMOOTH_STR (
"Relation - Smooth");
47 const QString CONNECT_AS_RELATION_STRAIGHT_STR (
"Relation - Straight");
49 const double PREVIEW_WIDTH = 100.0;
50 const double PREVIEW_HEIGHT = 100.0;
51 const int MINIMUM_HEIGHT = 500;
53 const QPointF POS_LEFT (PREVIEW_WIDTH / 3.0,
54 PREVIEW_HEIGHT * 2.0 / 3.0);
55 const QPointF POS_CENTER (PREVIEW_WIDTH / 2.0,
56 PREVIEW_HEIGHT / 3.0);
57 const QPointF POS_RIGHT (2.0 * PREVIEW_WIDTH / 3.0,
58 PREVIEW_HEIGHT * 2.0 / 3.0);
62 "DlgSettingsCurveProperties",
64 m_modelMainWindow (mainWindow.modelMainWindow()),
67 m_modelCurveStylesBefore (0),
68 m_modelCurveStylesAfter (0)
70 LOG4CPP_INFO_S ((*mainCat)) <<
"DlgSettingsCurveProperties::DlgSettingsCurveProperties";
75 setMinimumWidth (740);
78 DlgSettingsCurveProperties::~DlgSettingsCurveProperties()
80 LOG4CPP_INFO_S ((*mainCat)) <<
"DlgSettingsCurveProperties::~DlgSettingsCurveProperties";
83 void DlgSettingsCurveProperties::createCurveName (QGridLayout *layout,
86 LOG4CPP_INFO_S ((*mainCat)) <<
"DlgSettingsCurveProperties::createCurveName";
88 QLabel *labelCurveName =
new QLabel (QString (
"%1:").arg (tr (
"Curve Name")));
89 layout->addWidget (labelCurveName, row, 1);
91 m_cmbCurveName =
new QComboBox ();
92 m_cmbCurveName->setWhatsThis (tr (
"Name of the curve that is currently selected for editing"));
93 connect (m_cmbCurveName, SIGNAL (activated (
const QString &)),
this, SLOT (slotCurveName (
const QString &)));
94 layout->addWidget (m_cmbCurveName, row++, 2);
97 void DlgSettingsCurveProperties::createLine (QGridLayout *layout,
100 LOG4CPP_INFO_S ((*mainCat)) <<
"DlgSettingsCurveProperties::createLine";
102 m_groupLine =
new QGroupBox (tr (
"Line"));
103 layout->addWidget (m_groupLine, row++, 2);
105 QGridLayout *layoutGroup =
new QGridLayout;
106 m_groupLine->setLayout (layoutGroup);
108 QLabel *labelLineWidth =
new QLabel (QString (
"%1:").arg (tr (
"Width")));
109 layoutGroup->addWidget (labelLineWidth, 0, 0);
111 m_spinLineWidth =
new QSpinBox (m_groupLine);
112 m_spinLineWidth->setWhatsThis (tr (
"Select a width for the lines drawn between points.\n\n" 113 "This applies only to graph curves. No lines are ever drawn between axis points."));
114 m_spinLineWidth->setMinimum(1);
115 connect (m_spinLineWidth, SIGNAL (valueChanged (
int)),
this, SLOT (slotLineWidth (
int)));
116 layoutGroup->addWidget (m_spinLineWidth, 0, 1);
118 QLabel *labelLineColor =
new QLabel (QString (
"%1:").arg (tr (
"Color")));
119 layoutGroup->addWidget (labelLineColor, 1, 0);
121 m_cmbLineColor =
new QComboBox (m_groupLine);
122 m_cmbLineColor->setWhatsThis (tr (
"Select a color for the lines drawn between points.\n\n" 123 "This applies only to graph curves. No lines are ever drawn between axis points."));
125 connect (m_cmbLineColor, SIGNAL (activated (
const QString &)),
this, SLOT (slotLineColor (
const QString &)));
126 layoutGroup->addWidget (m_cmbLineColor, 1, 1);
128 QLabel *labelLineType =
new QLabel (QString (
"%1:").arg (tr (
"Connect as")));
129 layoutGroup->addWidget (labelLineType, 2, 0);
131 m_cmbLineType =
new QComboBox (m_groupLine);
132 m_cmbLineType->addItem (CONNECT_AS_FUNCTION_STRAIGHT_STR, QVariant (CONNECT_AS_FUNCTION_STRAIGHT));
133 m_cmbLineType->addItem (CONNECT_AS_FUNCTION_SMOOTH_STR, QVariant (CONNECT_AS_FUNCTION_SMOOTH));
134 m_cmbLineType->addItem (CONNECT_AS_RELATION_STRAIGHT_STR, QVariant (CONNECT_AS_RELATION_STRAIGHT));
135 m_cmbLineType->addItem (CONNECT_AS_RELATION_SMOOTH_STR, QVariant (CONNECT_AS_RELATION_SMOOTH));
136 m_cmbLineType->setWhatsThis (tr (
"Select rule for connecting points with lines.\n\n" 137 "If the curve is connected as a single-valued function then the points are ordered by " 138 "increasing value of the independent variable.\n\n" 139 "If the curve is connected as a closed contour, then the points are ordered by age, except for " 140 "points placed along an existing line. Any point placed on top of any existing line is inserted " 141 "between the two endpoints of that line - as if its age was between the ages of the two " 143 "Lines are drawn between successively ordered points.\n\n" 144 "Straight curves are drawn with straight lines between successive points. Smooth curves are drawn " 145 "with smooth lines between successive points, using natural cubic splines of (x,y) pairs versus " 146 "scalar ordinal (t) values.\n\n" 147 "This applies only to graph curves. No lines are ever drawn between axis points."));
148 connect (m_cmbLineType, SIGNAL (activated (
const QString &)),
this, SLOT (slotLineType (
const QString &)));
149 layoutGroup->addWidget (m_cmbLineType, 2, 1);
152 void DlgSettingsCurveProperties::createPoint (QGridLayout *layout,
155 LOG4CPP_INFO_S ((*mainCat)) <<
"DlgSettingsCurveProperties::createPoint";
157 m_groupPoint =
new QGroupBox (tr (
"Point"));
158 layout->addWidget (m_groupPoint, row++, 1);
160 QGridLayout *layoutGroup =
new QGridLayout;
161 m_groupPoint->setLayout (layoutGroup);
163 QLabel *labelPointShape =
new QLabel(QString (
"%1:").arg (tr (
"Shape")));
164 layoutGroup->addWidget (labelPointShape, 0, 0);
166 m_cmbPointShape =
new QComboBox (m_groupPoint);
167 m_cmbPointShape->setWhatsThis (tr (
"Select a shape for the points"));
168 m_cmbPointShape->addItem (pointShapeToString (POINT_SHAPE_CIRCLE),
170 m_cmbPointShape->addItem (pointShapeToString (POINT_SHAPE_CROSS),
172 m_cmbPointShape->addItem (pointShapeToString (POINT_SHAPE_DIAMOND),
173 POINT_SHAPE_DIAMOND);
174 m_cmbPointShape->addItem (pointShapeToString (POINT_SHAPE_SQUARE),
176 m_cmbPointShape->addItem (pointShapeToString (POINT_SHAPE_TRIANGLE),
177 POINT_SHAPE_TRIANGLE);
178 m_cmbPointShape->addItem (pointShapeToString (POINT_SHAPE_X),
180 connect (m_cmbPointShape, SIGNAL (activated (
const QString &)),
this, SLOT (slotPointShape (
const QString &)));
181 layoutGroup->addWidget (m_cmbPointShape, 0, 1);
183 QLabel *labelPointRadius =
new QLabel (QString (
"%1:").arg (tr (
"Radius")));
184 layoutGroup->addWidget (labelPointRadius, 1, 0);
186 m_spinPointRadius =
new QSpinBox (m_groupPoint);
187 m_spinPointRadius->setWhatsThis (tr (
"Select a radius, in pixels, for the points"));
188 m_spinPointRadius->setMinimum (1);
189 connect (m_spinPointRadius, SIGNAL (valueChanged (
int)),
this, SLOT (slotPointRadius (
int)));
190 layoutGroup->addWidget (m_spinPointRadius, 1, 1);
192 QLabel *labelPointLineWidth =
new QLabel (QString (
"%1:").arg (tr (
"Line width")));
193 layoutGroup->addWidget (labelPointLineWidth, 2, 0);
195 m_spinPointLineWidth =
new QSpinBox (m_groupPoint);
196 m_spinPointLineWidth->setWhatsThis (tr (
"Select a line width, in pixels, for the points.\n\n" 197 "A larger width results in a thicker line, with the exception of a value of zero " 198 "which always results in a line that is one pixel wide (which is easy to see even " 199 "when zoomed far out)"));
200 m_spinPointLineWidth->setMinimum (0);
201 connect (m_spinPointLineWidth, SIGNAL (valueChanged (
int)),
this, SLOT (slotPointLineWidth (
int)));
202 layoutGroup->addWidget (m_spinPointLineWidth, 2, 1);
204 QLabel *labelPointColor =
new QLabel (QString (
"%1:").arg (tr (
"Color")));
205 layoutGroup->addWidget (labelPointColor, 3, 0);
207 m_cmbPointColor =
new QComboBox (m_groupPoint);
208 m_cmbPointColor->setWhatsThis (tr (
"Select a color for the line used to draw the point shapes"));
210 connect (m_cmbPointColor, SIGNAL (activated (
const QString &)),
this, SLOT (slotPointColor (
const QString &)));
211 layoutGroup->addWidget (m_cmbPointColor, 3, 1);
216 LOG4CPP_INFO_S ((*mainCat)) <<
"DlgSettingsCurveProperties::createOptionalSaveDefault";
218 m_btnSaveDefault =
new QPushButton (
"Save As Default");
219 m_btnSaveDefault->setWhatsThis (tr (
"Save the visible curve settings for use as future defaults, according to the curve name selection.\n\n" 220 "If the visible settings are for the axes curve, then they will be used for future " 221 "axes curves, until new settings are saved as the defaults.\n\n" 222 "If the visible settings are for the Nth graph curve in the curve list, then they will be used for future " 223 "graph curves that are also the Nth graph curve in their curve list, until new settings are saved as the defaults."));
224 connect (m_btnSaveDefault, SIGNAL (released ()),
this, SLOT (slotSaveDefault ()));
225 layout->addWidget (m_btnSaveDefault, 0, Qt::AlignLeft);
228 void DlgSettingsCurveProperties::createPreview (QGridLayout *layout,
231 LOG4CPP_INFO_S ((*mainCat)) <<
"DlgSettingsCurveProperties::createPreview";
233 QLabel *labelPreview =
new QLabel (tr (
"Preview"));
234 layout->addWidget (labelPreview, row++, 0, 1, 4);
236 m_scenePreview =
new QGraphicsScene (
this);
238 ViewPreview::VIEW_ASPECT_RATIO_ONE_TO_ONE,
240 m_viewPreview->setWhatsThis (tr (
"Preview window that shows how current settings affect the points and line of the selected curve.\n\n" 241 "The X coordinate is in the horizontal direction, and the Y coordinate is in the vertical direction. A " 242 "function can have only one Y value, at most, for any X value, but a relation can have multiple Y values " 243 "for one X value."));
244 m_viewPreview->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
245 m_viewPreview->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
247 m_viewPreview->setRenderHint (QPainter::Antialiasing);
249 layout->addWidget (m_viewPreview, row++, 0, 1, 4);
254 LOG4CPP_INFO_S ((*mainCat)) <<
"DlgSettingsCurveProperties::createSubPanel";
256 QWidget *subPanel =
new QWidget ();
257 QGridLayout *layout =
new QGridLayout (subPanel);
258 subPanel->setLayout (layout);
261 createCurveName (layout, row);
263 int rowLeft = row, rowRight = row++;
264 createPoint (layout, rowLeft);
265 createLine (layout, rowRight);
266 createPreview (layout, row);
268 layout->setColumnStretch(0, 1);
269 layout->setColumnStretch(1, 0);
270 layout->setColumnStretch(2, 0);
271 layout->setColumnStretch(3, 1);
273 layout->setRowStretch (0, 1);
278 void DlgSettingsCurveProperties::drawLine (
bool isRelation,
281 const double Z_LINE = -1.0;
285 QPointF p0 (POS_LEFT), p1 (POS_CENTER), p2 (POS_RIGHT);
298 vector<SplinePair> xy;
307 path.cubicTo (QPointF (spline.p1(0).x(),
309 QPointF (spline.p2(0).x(),
312 path.cubicTo (QPointF (spline.p1(1).x(),
314 QPointF (spline.p2(1).x(),
323 QGraphicsPathItem *line =
new QGraphicsPathItem (path);
324 line->setPen (QPen (QBrush (ColorPaletteToQColor (lineStyle.
paletteColor())),
326 line->setZValue (Z_LINE);
327 m_scenePreview->addItem (line);
330 void DlgSettingsCurveProperties::drawPoints (
const PointStyle &pointStyle)
332 const QString NULL_IDENTIFIER;
342 NULL_GEOMETRY_WINDOW);
350 NULL_GEOMETRY_WINDOW);
358 NULL_GEOMETRY_WINDOW);
364 LOG4CPP_INFO_S ((*mainCat)) <<
"DlgSettingsCurveProperties::handleOk";
366 ENGAUGE_CHECK_PTR (m_modelCurveStylesBefore);
367 ENGAUGE_CHECK_PTR (m_modelCurveStylesAfter);
371 *m_modelCurveStylesBefore,
372 *m_modelCurveStylesAfter);
380 LOG4CPP_INFO_S ((*mainCat)) <<
"DlgSettingsCurveProperties::load";
385 delete m_modelCurveStylesBefore;
386 delete m_modelCurveStylesAfter;
393 m_cmbCurveName->clear ();
394 m_cmbCurveName->addItem (AXIS_CURVE_NAME);
396 QStringList::const_iterator itr;
397 for (itr = curveNames.begin (); itr != curveNames.end (); itr++) {
399 QString curveName = *itr;
400 m_cmbCurveName->addItem (curveName);
403 loadForCurveName (
mainWindow().selectedGraphCurve());
409 void DlgSettingsCurveProperties::loadForCurveName (
const QString &curveName)
411 int indexCurveName = m_cmbCurveName->findText(curveName);
412 ENGAUGE_ASSERT (indexCurveName >= 0);
413 m_cmbCurveName->setCurrentIndex(indexCurveName);
415 int indexPointShape = m_cmbPointShape->findData (QVariant (m_modelCurveStylesAfter->
pointShape (curveName)));
416 ENGAUGE_ASSERT (indexPointShape >= 0);
417 m_cmbPointShape->setCurrentIndex (indexPointShape);
419 m_spinPointRadius->setValue (m_modelCurveStylesAfter->
pointRadius(curveName));
420 m_spinPointLineWidth->setValue (m_modelCurveStylesAfter->
pointLineWidth(curveName));
422 int indexPointColor = m_cmbPointColor->findData (QVariant (m_modelCurveStylesAfter->
pointColor(curveName)));
423 ENGAUGE_ASSERT (indexPointColor >= 0);
424 m_cmbPointColor->setCurrentIndex (indexPointColor);
426 int indexLineColor = m_cmbLineColor->findData (QVariant (m_modelCurveStylesAfter->
lineColor(curveName)));
427 ENGAUGE_ASSERT (indexLineColor >= 0);
428 m_cmbLineColor->setCurrentIndex (indexLineColor);
430 m_spinLineWidth->setValue (m_modelCurveStylesAfter->
lineWidth(curveName));
432 int indexCurveConnectAs = m_cmbLineType->findData (QVariant (m_modelCurveStylesAfter->
lineConnectAs (curveName)));
433 if (indexCurveConnectAs >= 0) {
435 m_cmbLineType->setCurrentIndex (indexCurveConnectAs);
439 m_cmbLineColor->setEnabled (curveName != AXIS_CURVE_NAME);
440 m_spinLineWidth->setEnabled (curveName != AXIS_CURVE_NAME);
441 m_cmbLineType->setEnabled (curveName != AXIS_CURVE_NAME);
447 void DlgSettingsCurveProperties::resetSceneRectangle ()
455 QGraphicsRectItem *itemPerimeter =
new QGraphicsRectItem(rect);
456 itemPerimeter->setVisible(
false);
457 m_scenePreview->addItem (itemPerimeter);
458 m_viewPreview->centerOn (QPointF (0.0, 0.0));
463 m_cmbCurveName->setCurrentText (curveName);
464 loadForCurveName (curveName);
470 setMinimumHeight (MINIMUM_HEIGHT);
474 void DlgSettingsCurveProperties::slotCurveName(
const QString &curveName)
476 LOG4CPP_INFO_S ((*mainCat)) <<
"DlgSettingsCurveProperties::slotCurveName";
481 if (!curveName.isEmpty () && (m_modelCurveStylesAfter != 0)) {
483 loadForCurveName (curveName);
487 void DlgSettingsCurveProperties::slotLineColor(
const QString &lineColor)
489 LOG4CPP_INFO_S ((*mainCat)) <<
"DlgSettingsCurveProperties::slotLineColor color=" << lineColor.toLatin1().data();
493 m_modelCurveStylesAfter->
setLineColor(m_cmbCurveName->currentText(),
494 (ColorPalette) m_cmbLineColor->currentData().toInt());
499 void DlgSettingsCurveProperties::slotLineWidth(
int width)
501 LOG4CPP_INFO_S ((*mainCat)) <<
"DlgSettingsCurveProperties::slotLineWidth width=" << width;
505 m_modelCurveStylesAfter->
setLineWidth(m_cmbCurveName->currentText(),
511 void DlgSettingsCurveProperties::slotLineType(
const QString &lineType)
513 LOG4CPP_INFO_S ((*mainCat)) <<
"DlgSettingsCurveProperties::slotLineType lineType=" << lineType.toLatin1().data();
518 (CurveConnectAs) m_cmbLineType->currentData().toInt ());
523 void DlgSettingsCurveProperties::slotPointColor(
const QString &pointColor)
525 LOG4CPP_INFO_S ((*mainCat)) <<
"DlgSettingsCurveProperties::slotPointColor pointColor=" << pointColor.toLatin1().data();
529 m_modelCurveStylesAfter->
setPointColor(m_cmbCurveName->currentText(),
530 (ColorPalette) m_cmbPointColor->currentData().toInt ());
535 void DlgSettingsCurveProperties::slotPointLineWidth(
int lineWidth)
537 LOG4CPP_INFO_S ((*mainCat)) <<
"DlgSettingsCurveProperties::slotPointLineWidth lineWidth=" << lineWidth;
547 void DlgSettingsCurveProperties::slotPointRadius(
int radius)
549 LOG4CPP_INFO_S ((*mainCat)) <<
"DlgSettingsCurveProperties::slotPointRadius radius=" << radius;
553 m_modelCurveStylesAfter->
setPointRadius(m_cmbCurveName->currentText(),
559 void DlgSettingsCurveProperties::slotPointShape(
const QString &)
561 LOG4CPP_INFO_S ((*mainCat)) <<
"DlgSettingsCurveProperties::slotPointShape";
565 m_modelCurveStylesAfter->
setPointShape(m_cmbCurveName->currentText(),
566 (PointShape) m_cmbPointShape->currentData().toInt ());
571 void DlgSettingsCurveProperties::slotSaveDefault()
573 LOG4CPP_INFO_S ((*mainCat)) <<
"DlgSettingsCurveProperties::slotSaveDefault";
575 QString curve = m_cmbCurveName->currentText ();
577 QSettings settings (SETTINGS_ENGAUGE, SETTINGS_DIGITIZER);
578 if (curve == AXIS_CURVE_NAME) {
580 settings.beginGroup (SETTINGS_GROUP_CURVE_AXES);
586 settings.beginGroup (groupName);
590 settings.setValue (SETTINGS_CURVE_POINT_SHAPE,
592 settings.setValue (SETTINGS_CURVE_LINE_COLOR,
593 m_modelCurveStylesAfter->
lineColor(curve));
594 settings.setValue (SETTINGS_CURVE_LINE_CONNECT_AS,
596 settings.setValue (SETTINGS_CURVE_LINE_WIDTH,
597 m_modelCurveStylesAfter->
lineWidth(curve));
598 settings.setValue (SETTINGS_CURVE_POINT_COLOR,
600 settings.setValue (SETTINGS_CURVE_POINT_LINE_WIDTH,
602 settings.setValue (SETTINGS_CURVE_POINT_RADIUS,
604 settings.endGroup ();
607 void DlgSettingsCurveProperties::updateControls()
609 bool isGoodState = !m_spinPointRadius->text().isEmpty () &&
610 !m_spinPointLineWidth->text().isEmpty () &&
611 !m_spinLineWidth->text().isEmpty ();
612 m_cmbCurveName->setEnabled (isGoodState);
613 enableOk (isGoodState && m_isDirty);
616 void DlgSettingsCurveProperties::updatePreview()
618 m_scenePreview->clear();
620 QString currentCurve = m_cmbCurveName->currentText();
626 bool isRelation = (lineStyle.
curveConnectAs() == CONNECT_AS_RELATION_SMOOTH ||
629 drawPoints (pointStyle);
630 drawLine (isRelation,
633 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.
CurveStyle curveStyle(const QString &curveName) const
CurveStyle in specified curve.
Factor for generating GraphicsPointAbstractBase class objects.
CurveConnectAs curveConnectAs() const
Get method for connect type.
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.
Cubic interpolation given independent and dependent value vectors.
void setPointLineWidth(const QString &curveName, int width)
Set method for curve point perimeter line width.
unsigned int width() const
Width of line.
Model for DlgSettingsCurveProperties and CmdSettingsCurveProperties.
int lineWidth(const QString &curveName) const
Get method for line width in specified curve.
PointStyle pointStyle() const
Get method for PointStyle.
void setCmdMediator(CmdMediator &cmdMediator)
Store CmdMediator for easy access by the leaf class.
virtual void load(CmdMediator &cmdMediator)
Load settings from Document.
Command for DlgSettingsCurveProperties.
DlgSettingsCurveProperties(MainWindow &mainWindow)
Single constructor.
Window that displays the geometry information, as a table, for the current curve. ...
virtual void handleOk()
Process slotOk.
void finishPanel(QWidget *subPanel, int minimumWidth=MINIMUM_DIALOG_WIDTH, int minimumHeightOrZero=0)
Add Ok and Cancel buttons to subpanel to get the whole dialog.
void setPointStyle(const PointStyle &pointStyle)
Update the point style.
GraphicsPoint * createPoint(QGraphicsScene &scene, const QString &identifier, const QPointF &posScreen, const PointStyle &pointStyle, GeometryWindow *geometryWindow)
Create circle or polygon point according to the PointStyle.
PointShape pointShape(const QString &curveName) const
Get method for curve point shape.
ColorPalette pointColor(const QString &curveName) const
Get method for curve point color in specified curve.
ColorPalette paletteColor() const
Line color.
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.
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.
LineStyle lineStyle() const
Get method for LineStyle.
int pointRadius(const QString &curveName) const
Get method for curve point radius.
Details for a specific Line.
Graphics item for drawing a circular or polygonal Point.
void setPointRadius(const QString &curveName, int radius)
Set method for curve point radius.
CurveConnectAs lineConnectAs(const QString &curveName) const
Get method for connect as method for lines in specified curve.
static int MINIMUM_PREVIEW_HEIGHT
Dialog layout constant that guarantees preview has sufficent room.
void enableOk(bool enable)
Let leaf subclass control the Ok button.
QString groupNameForNthCurve(int indexOneBased) const
Return the group name, that appears in the settings file/registry, for the specified curve index...
void populateColorComboWithTransparent(QComboBox &combo)
Add colors in color palette to combobox, with transparent entry at end.
virtual void setSmallDialogs(bool smallDialogs)
If false then dialogs have a minimum size so all controls are visible.
Abstract base class for all Settings dialogs.
ColorPalette lineColor(const QString &curveName) const
Get method for line color in specified curve.
int pointLineWidth(const QString &curveName) const
Get method for curve point line width.
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.