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;
52 const QPointF POS_LEFT (PREVIEW_WIDTH / 3.0,
53 PREVIEW_HEIGHT * 2.0 / 3.0);
54 const QPointF POS_CENTER (PREVIEW_WIDTH / 2.0,
55 PREVIEW_HEIGHT / 3.0);
56 const QPointF POS_RIGHT (2.0 * PREVIEW_WIDTH / 3.0,
57 PREVIEW_HEIGHT * 2.0 / 3.0);
61 "DlgSettingsCurveProperties",
63 m_modelMainWindow (mainWindow.modelMainWindow()),
66 m_modelCurveStylesBefore (0),
67 m_modelCurveStylesAfter (0)
69 LOG4CPP_INFO_S ((*mainCat)) <<
"DlgSettingsCurveProperties::DlgSettingsCurveProperties";
74 setMinimumWidth (740);
77 DlgSettingsCurveProperties::~DlgSettingsCurveProperties()
79 LOG4CPP_INFO_S ((*mainCat)) <<
"DlgSettingsCurveProperties::~DlgSettingsCurveProperties";
82 void DlgSettingsCurveProperties::createCurveName (QGridLayout *layout,
85 LOG4CPP_INFO_S ((*mainCat)) <<
"DlgSettingsCurveProperties::createCurveName";
87 QLabel *labelCurveName =
new QLabel (tr (
"Curve Name:"));
88 layout->addWidget (labelCurveName, row, 1);
90 m_cmbCurveName =
new QComboBox ();
91 m_cmbCurveName->setWhatsThis (tr (
"Name of the curve that is currently selected for editing"));
92 connect (m_cmbCurveName, SIGNAL (activated (
const QString &)),
this, SLOT (slotCurveName (
const QString &)));
93 layout->addWidget (m_cmbCurveName, row++, 2);
96 void DlgSettingsCurveProperties::createLine (QGridLayout *layout,
99 LOG4CPP_INFO_S ((*mainCat)) <<
"DlgSettingsCurveProperties::createLine";
101 m_groupLine =
new QGroupBox (tr (
"Line"));
102 layout->addWidget (m_groupLine, row++, 2);
104 QGridLayout *layoutGroup =
new QGridLayout;
105 m_groupLine->setLayout (layoutGroup);
107 QLabel *labelLineWidth =
new QLabel (tr (
"Width:"));
108 layoutGroup->addWidget (labelLineWidth, 0, 0);
110 m_spinLineWidth =
new QSpinBox (m_groupLine);
111 m_spinLineWidth->setWhatsThis (tr (
"Select a width for the lines drawn between points.\n\n"
112 "This applies only to graph curves. No lines are ever drawn between axis points."));
113 m_spinLineWidth->setMinimum(1);
114 connect (m_spinLineWidth, SIGNAL (valueChanged (
int)),
this, SLOT (slotLineWidth (
int)));
115 layoutGroup->addWidget (m_spinLineWidth, 0, 1);
117 QLabel *labelLineColor =
new QLabel (tr (
"Color:"));
118 layoutGroup->addWidget (labelLineColor, 1, 0);
120 m_cmbLineColor =
new QComboBox (m_groupLine);
121 m_cmbLineColor->setWhatsThis (tr (
"Select a color for the lines drawn between points.\n\n"
122 "This applies only to graph curves. No lines are ever drawn between axis points."));
124 connect (m_cmbLineColor, SIGNAL (activated (
const QString &)),
this, SLOT (slotLineColor (
const QString &)));
125 layoutGroup->addWidget (m_cmbLineColor, 1, 1);
127 QLabel *labelLineType =
new QLabel (tr (
"Connect as:"));
128 layoutGroup->addWidget (labelLineType, 2, 0);
130 m_cmbLineType =
new QComboBox (m_groupLine);
131 m_cmbLineType->addItem (CONNECT_AS_FUNCTION_STRAIGHT_STR, QVariant (CONNECT_AS_FUNCTION_STRAIGHT));
132 m_cmbLineType->addItem (CONNECT_AS_FUNCTION_SMOOTH_STR, QVariant (CONNECT_AS_FUNCTION_SMOOTH));
133 m_cmbLineType->addItem (CONNECT_AS_RELATION_STRAIGHT_STR, QVariant (CONNECT_AS_RELATION_STRAIGHT));
134 m_cmbLineType->addItem (CONNECT_AS_RELATION_SMOOTH_STR, QVariant (CONNECT_AS_RELATION_SMOOTH));
135 m_cmbLineType->setWhatsThis (tr (
"Select rule for connecting points with lines.\n\n"
136 "If the curve is connected as a single-valued function then the points are ordered by "
137 "increasing value of the independent variable.\n\n"
138 "If the curve is connected as a closed contour, then the points are ordered by age, except for "
139 "points placed along an existing line. Any point placed on top of any existing line is inserted "
140 "between the two endpoints of that line - as if its age was between the ages of the two "
142 "Lines are drawn between successively ordered points.\n\n"
143 "Straight curves are drawn with straight lines between successive points. Smooth curves are drawn "
144 "with smooth lines between successive points.\n\n"
145 "This applies only to graph curves. No lines are ever drawn between axis points."));
146 connect (m_cmbLineType, SIGNAL (activated (
const QString &)),
this, SLOT (slotLineType (
const QString &)));
147 layoutGroup->addWidget (m_cmbLineType, 2, 1);
150 void DlgSettingsCurveProperties::createPoint (QGridLayout *layout,
153 LOG4CPP_INFO_S ((*mainCat)) <<
"DlgSettingsCurveProperties::createPoint";
155 m_groupPoint =
new QGroupBox (tr (
"Point"));
156 layout->addWidget (m_groupPoint, row++, 1);
158 QGridLayout *layoutGroup =
new QGridLayout;
159 m_groupPoint->setLayout (layoutGroup);
161 QLabel *labelPointShape =
new QLabel(tr (
"Shape:"));
162 layoutGroup->addWidget (labelPointShape, 0, 0);
164 m_cmbPointShape =
new QComboBox (m_groupPoint);
165 m_cmbPointShape->setWhatsThis (tr (
"Select a shape for the points"));
166 m_cmbPointShape->addItem (pointShapeToString (POINT_SHAPE_CIRCLE),
168 m_cmbPointShape->addItem (pointShapeToString (POINT_SHAPE_CROSS),
170 m_cmbPointShape->addItem (pointShapeToString (POINT_SHAPE_DIAMOND),
171 POINT_SHAPE_DIAMOND);
172 m_cmbPointShape->addItem (pointShapeToString (POINT_SHAPE_SQUARE),
174 m_cmbPointShape->addItem (pointShapeToString (POINT_SHAPE_TRIANGLE),
175 POINT_SHAPE_TRIANGLE);
176 m_cmbPointShape->addItem (pointShapeToString (POINT_SHAPE_X),
178 connect (m_cmbPointShape, SIGNAL (activated (
const QString &)),
this, SLOT (slotPointShape (
const QString &)));
179 layoutGroup->addWidget (m_cmbPointShape, 0, 1);
181 QLabel *labelPointRadius =
new QLabel (tr (
"Radius:"));
182 layoutGroup->addWidget (labelPointRadius, 1, 0);
184 m_spinPointRadius =
new QSpinBox (m_groupPoint);
185 m_spinPointRadius->setWhatsThis (tr (
"Select a radius, in pixels, for the points"));
186 m_spinPointRadius->setMinimum (1);
187 connect (m_spinPointRadius, SIGNAL (valueChanged (
int)),
this, SLOT (slotPointRadius (
int)));
188 layoutGroup->addWidget (m_spinPointRadius, 1, 1);
190 QLabel *labelPointLineWidth =
new QLabel (tr (
"Line width:"));
191 layoutGroup->addWidget (labelPointLineWidth, 2, 0);
193 m_spinPointLineWidth =
new QSpinBox (m_groupPoint);
194 m_spinPointLineWidth->setWhatsThis (tr (
"Select a line width, in pixels, for the points.\n\n"
195 "A larger width results in a thicker line, with the exception of a value of zero "
196 "which always results in a line that is one pixel wide (which is easy to see even "
197 "when zoomed far out)"));
198 m_spinPointLineWidth->setMinimum (0);
199 connect (m_spinPointLineWidth, SIGNAL (valueChanged (
int)),
this, SLOT (slotPointLineWidth (
int)));
200 layoutGroup->addWidget (m_spinPointLineWidth, 2, 1);
202 QLabel *labelPointColor =
new QLabel (tr (
"Color:"));
203 layoutGroup->addWidget (labelPointColor, 3, 0);
205 m_cmbPointColor =
new QComboBox (m_groupPoint);
206 m_cmbPointColor->setWhatsThis (tr (
"Select a color for the line used to draw the point shapes"));
208 connect (m_cmbPointColor, SIGNAL (activated (
const QString &)),
this, SLOT (slotPointColor (
const QString &)));
209 layoutGroup->addWidget (m_cmbPointColor, 3, 1);
214 LOG4CPP_INFO_S ((*mainCat)) <<
"DlgSettingsCurveProperties::createOptionalSaveDefault";
216 m_btnSaveDefault =
new QPushButton (
"Save As Default");
217 m_btnSaveDefault->setWhatsThis (tr (
"Save the visible curve settings for use as future defaults, according to the curve name selection.\n\n"
218 "If the visible settings are for the axes curve, then they will be used for future "
219 "axes curves, until new settings are saved as the defaults.\n\n"
220 "If the visible settings are for the Nth graph curve in the curve list, then they will be used for future "
221 "graph curves that are also the Nth graph curve in their curve list, until new settings are saved as the defaults."));
222 connect (m_btnSaveDefault, SIGNAL (released ()),
this, SLOT (slotSaveDefault ()));
223 layout->addWidget (m_btnSaveDefault, 0, Qt::AlignLeft);
226 void DlgSettingsCurveProperties::createPreview (QGridLayout *layout,
229 LOG4CPP_INFO_S ((*mainCat)) <<
"DlgSettingsCurveProperties::createPreview";
231 QLabel *labelPreview =
new QLabel (tr (
"Preview"));
232 layout->addWidget (labelPreview, row++, 0, 1, 4);
234 m_scenePreview =
new QGraphicsScene (
this);
236 ViewPreview::VIEW_ASPECT_RATIO_ONE_TO_ONE,
238 m_viewPreview->setWhatsThis (tr (
"Preview window that shows how current settings affect the points and line of the selected curve.\n\n"
239 "The X coordinate is in the horizontal direction, and the Y coordinate is in the vertical direction. A "
240 "function can have only one Y value, at most, for any X value, but a relation can have multiple Y values "
241 "for one X value."));
242 m_viewPreview->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
243 m_viewPreview->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
245 m_viewPreview->setRenderHint (QPainter::Antialiasing);
247 layout->addWidget (m_viewPreview, row++, 0, 1, 4);
252 LOG4CPP_INFO_S ((*mainCat)) <<
"DlgSettingsCurveProperties::createSubPanel";
254 QWidget *subPanel =
new QWidget ();
255 QGridLayout *layout =
new QGridLayout (subPanel);
256 subPanel->setLayout (layout);
259 createCurveName (layout, row);
261 int rowLeft = row, rowRight = row++;
262 createPoint (layout, rowLeft);
263 createLine (layout, rowRight);
264 createPreview (layout, row);
266 layout->setColumnStretch(0, 1);
267 layout->setColumnStretch(1, 0);
268 layout->setColumnStretch(2, 0);
269 layout->setColumnStretch(3, 1);
271 layout->setRowStretch (0, 1);
276 void DlgSettingsCurveProperties::drawLine (
bool isRelation,
279 const double Z_LINE = -1.0;
283 QPointF p0 (POS_LEFT), p1 (POS_CENTER), p2 (POS_RIGHT);
296 vector<SplinePair> xy;
305 path.cubicTo (QPointF (spline.p1(0).x(),
307 QPointF (spline.p2(0).x(),
310 path.cubicTo (QPointF (spline.p1(1).x(),
312 QPointF (spline.p2(1).x(),
321 QGraphicsPathItem *line =
new QGraphicsPathItem (path);
322 line->setPen (QPen (QBrush (ColorPaletteToQColor (lineStyle.
paletteColor())),
324 line->setZValue (Z_LINE);
325 m_scenePreview->addItem (line);
328 void DlgSettingsCurveProperties::drawPoints (
const PointStyle &pointStyle)
330 const QString NULL_IDENTIFIER;
340 NULL_GEOMETRY_WINDOW);
348 NULL_GEOMETRY_WINDOW);
356 NULL_GEOMETRY_WINDOW);
362 LOG4CPP_INFO_S ((*mainCat)) <<
"DlgSettingsCurveProperties::handleOk";
364 ENGAUGE_CHECK_PTR (m_modelCurveStylesBefore);
365 ENGAUGE_CHECK_PTR (m_modelCurveStylesAfter);
369 *m_modelCurveStylesBefore,
370 *m_modelCurveStylesAfter);
378 LOG4CPP_INFO_S ((*mainCat)) <<
"DlgSettingsCurveProperties::load";
383 if (m_modelCurveStylesBefore != 0) {
384 delete m_modelCurveStylesBefore;
386 if (m_modelCurveStylesAfter != 0) {
387 delete m_modelCurveStylesAfter;
395 m_cmbCurveName->clear ();
396 m_cmbCurveName->addItem (AXIS_CURVE_NAME);
398 QStringList::const_iterator itr;
399 for (itr = curveNames.begin (); itr != curveNames.end (); itr++) {
401 QString curveName = *itr;
402 m_cmbCurveName->addItem (curveName);
405 loadForCurveName (
mainWindow().selectedGraphCurve());
411 void DlgSettingsCurveProperties::loadForCurveName (
const QString &curveName)
413 int indexCurveName = m_cmbCurveName->findText(curveName);
414 ENGAUGE_ASSERT (indexCurveName >= 0);
415 m_cmbCurveName->setCurrentIndex(indexCurveName);
417 int indexPointShape = m_cmbPointShape->findData (QVariant (m_modelCurveStylesAfter->
pointShape (curveName)));
418 ENGAUGE_ASSERT (indexPointShape >= 0);
419 m_cmbPointShape->setCurrentIndex (indexPointShape);
421 m_spinPointRadius->setValue (m_modelCurveStylesAfter->
pointRadius(curveName));
422 m_spinPointLineWidth->setValue (m_modelCurveStylesAfter->
pointLineWidth(curveName));
424 int indexPointColor = m_cmbPointColor->findData (QVariant (m_modelCurveStylesAfter->
pointColor(curveName)));
425 ENGAUGE_ASSERT (indexPointColor >= 0);
426 m_cmbPointColor->setCurrentIndex (indexPointColor);
428 int indexLineColor = m_cmbLineColor->findData (QVariant (m_modelCurveStylesAfter->
lineColor(curveName)));
429 ENGAUGE_ASSERT (indexLineColor >= 0);
430 m_cmbLineColor->setCurrentIndex (indexLineColor);
432 m_spinLineWidth->setValue (m_modelCurveStylesAfter->
lineWidth(curveName));
434 int indexCurveConnectAs = m_cmbLineType->findData (QVariant (m_modelCurveStylesAfter->
lineConnectAs (curveName)));
435 if (indexCurveConnectAs >= 0) {
437 m_cmbLineType->setCurrentIndex (indexCurveConnectAs);
441 m_cmbLineColor->setEnabled (curveName != AXIS_CURVE_NAME);
442 m_spinLineWidth->setEnabled (curveName != AXIS_CURVE_NAME);
443 m_cmbLineType->setEnabled (curveName != AXIS_CURVE_NAME);
449 void DlgSettingsCurveProperties::resetSceneRectangle ()
457 QGraphicsRectItem *itemPerimeter =
new QGraphicsRectItem(rect);
458 itemPerimeter->setVisible(
false);
459 m_scenePreview->addItem (itemPerimeter);
460 m_viewPreview->centerOn (QPointF (0.0, 0.0));
465 m_cmbCurveName->setCurrentText (curveName);
466 loadForCurveName (curveName);
469 void DlgSettingsCurveProperties::slotCurveName(
const QString &curveName)
471 LOG4CPP_INFO_S ((*mainCat)) <<
"DlgSettingsCurveProperties::slotCurveName";
476 if (!curveName.isEmpty () && (m_modelCurveStylesAfter != 0)) {
478 loadForCurveName (curveName);
482 void DlgSettingsCurveProperties::slotLineColor(
const QString &lineColor)
484 LOG4CPP_INFO_S ((*mainCat)) <<
"DlgSettingsCurveProperties::slotLineColor color=" << lineColor.toLatin1().data();
488 m_modelCurveStylesAfter->
setLineColor(m_cmbCurveName->currentText(),
489 (ColorPalette) m_cmbLineColor->currentData().toInt());
494 void DlgSettingsCurveProperties::slotLineWidth(
int width)
496 LOG4CPP_INFO_S ((*mainCat)) <<
"DlgSettingsCurveProperties::slotLineWidth width=" << width;
500 m_modelCurveStylesAfter->
setLineWidth(m_cmbCurveName->currentText(),
506 void DlgSettingsCurveProperties::slotLineType(
const QString &lineType)
508 LOG4CPP_INFO_S ((*mainCat)) <<
"DlgSettingsCurveProperties::slotLineType lineType=" << lineType.toLatin1().data();
513 (CurveConnectAs) m_cmbLineType->currentData().toInt ());
518 void DlgSettingsCurveProperties::slotPointColor(
const QString &pointColor)
520 LOG4CPP_INFO_S ((*mainCat)) <<
"DlgSettingsCurveProperties::slotPointColor pointColor=" << pointColor.toLatin1().data();
524 m_modelCurveStylesAfter->
setPointColor(m_cmbCurveName->currentText(),
525 (ColorPalette) m_cmbPointColor->currentData().toInt ());
530 void DlgSettingsCurveProperties::slotPointLineWidth(
int lineWidth)
532 LOG4CPP_INFO_S ((*mainCat)) <<
"DlgSettingsCurveProperties::slotPointLineWidth lineWidth=" << lineWidth;
542 void DlgSettingsCurveProperties::slotPointRadius(
int radius)
544 LOG4CPP_INFO_S ((*mainCat)) <<
"DlgSettingsCurveProperties::slotPointRadius radius=" << radius;
548 m_modelCurveStylesAfter->
setPointRadius(m_cmbCurveName->currentText(),
554 void DlgSettingsCurveProperties::slotPointShape(
const QString &)
556 LOG4CPP_INFO_S ((*mainCat)) <<
"DlgSettingsCurveProperties::slotPointShape";
560 m_modelCurveStylesAfter->
setPointShape(m_cmbCurveName->currentText(),
561 (PointShape) m_cmbPointShape->currentData().toInt ());
566 void DlgSettingsCurveProperties::slotSaveDefault()
568 LOG4CPP_INFO_S ((*mainCat)) <<
"DlgSettingsCurveProperties::slotSaveDefault";
570 QString curve = m_cmbCurveName->currentText ();
572 QSettings settings (SETTINGS_ENGAUGE, SETTINGS_DIGITIZER);
573 if (curve == AXIS_CURVE_NAME) {
575 settings.beginGroup (SETTINGS_GROUP_CURVE_AXES);
581 settings.beginGroup (groupName);
585 settings.setValue (SETTINGS_CURVE_POINT_SHAPE,
587 settings.setValue (SETTINGS_CURVE_LINE_COLOR,
588 m_modelCurveStylesAfter->
lineColor(curve));
589 settings.setValue (SETTINGS_CURVE_LINE_CONNECT_AS,
591 settings.setValue (SETTINGS_CURVE_LINE_WIDTH,
592 m_modelCurveStylesAfter->
lineWidth(curve));
593 settings.setValue (SETTINGS_CURVE_POINT_COLOR,
595 settings.setValue (SETTINGS_CURVE_POINT_LINE_WIDTH,
597 settings.setValue (SETTINGS_CURVE_POINT_RADIUS,
599 settings.endGroup ();
602 void DlgSettingsCurveProperties::updateControls()
604 bool isGoodState = !m_spinPointRadius->text().isEmpty () &&
605 !m_spinPointLineWidth->text().isEmpty () &&
606 !m_spinLineWidth->text().isEmpty ();
607 m_cmbCurveName->setEnabled (isGoodState);
608 enableOk (isGoodState && m_isDirty);
611 void DlgSettingsCurveProperties::updatePreview()
613 m_scenePreview->clear();
615 QString currentCurve = m_cmbCurveName->currentText();
621 bool isRelation = (lineStyle.
curveConnectAs() == CONNECT_AS_RELATION_SMOOTH ||
624 drawPoints (pointStyle);
625 drawLine (isRelation,
628 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.
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.
Window that displays the geometry information, as a table, for the current curve. ...
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...
GraphicsPoint * createPoint(QGraphicsScene &scene, const QString &identifier, const QPointF &posScreen, const PointStyle &pointStyle, GeometryWindow *geometryWindow)
Create circle or polygon point according to the PointStyle.
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 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 finishPanel(QWidget *subPanel, int minimumWidth=MINIMUM_DIALOG_WIDTH)
Add Ok and Cancel buttons to subpanel to get the whole dialog.
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.