Engauge Digitizer
2
Dlg
DlgSettingsCoords.h
Go to the documentation of this file.
1
/******************************************************************************************************
2
* (C) 2014 markummitchell@github.com. This file is part of Engauge Digitizer, which is released *
3
* under GNU General Public License version 2 (GPLv2) or (at your option) any later version. See file *
4
* LICENSE or go to gnu.org/licenses for details. Distribution requires prior written permission. *
5
******************************************************************************************************/
6
7
#ifndef DLG_SETTINGS_COORDS_H
8
#define DLG_SETTINGS_COORDS_H
9
10
#include "
CoordUnitsNonPolarTheta.h
"
11
#include "
CoordUnitsPolarTheta.h
"
12
#include "
DlgSettingsAbstractBase.h
"
13
14
class
DlgValidatorAbstract
;
15
class
DocumentModelCoords
;
16
class
QComboBox;
17
class
QDoubleValidator;
18
class
QGridLayout;
19
class
QGroupBox;
20
class
QGraphicsScene;
21
class
QGraphicsView;
22
class
QLineEdit;
23
class
QRadioButton;
24
class
ViewPreview
;
25
27
class
DlgSettingsCoords
:
public
DlgSettingsAbstractBase
28
{
29
Q_OBJECT;
30
31
public
:
33
DlgSettingsCoords
(
MainWindow
&
mainWindow
);
34
virtual
~DlgSettingsCoords
();
35
36
virtual
void
createOptionalSaveDefault
(QHBoxLayout *layout);
37
virtual
QWidget *
createSubPanel
();
38
virtual
void
load
(
CmdMediator
&
cmdMediator
);
39
virtual
void
setSmallDialogs
(
bool
smallDialogs);
40
41
private
slots:
42
void
slotCartesianPolar (
bool
);
43
void
slotDate (
const
QString &);
44
void
slotPolarOriginRadius(
const
QString &);
45
void
slotTime (
const
QString &);
46
void
slotUnitsXTheta(
const
QString &);
47
void
slotUnitsYRadius(
const
QString &);
48
void
slotXThetaLinear();
49
void
slotXThetaLog();
50
void
slotYRadiusLinear();
51
void
slotYRadiusLog();
52
53
protected
:
54
virtual
void
handleOk
();
55
56
private
:
57
58
void
annotateAngles(
const
QFont &defaultFont);
59
void
annotateRadiusAtOrigin(
const
QFont &defaultFont);
60
void
boundingRectGraph (
CmdMediator
&
cmdMediator
,
61
bool
&isEmpty,
62
QPointF &boundingRectGraphMin,
63
QPointF &boundingRectGraphMax)
const
;
64
void
createDateTime(QGridLayout *layout,
65
int
&row);
66
void
createGroupCoordsType(QGridLayout *layout,
67
int
&row);
68
void
createGroupXTheta(QGridLayout *layout,
69
int
&row);
70
void
createGroupYRadius(QGridLayout *layout,
71
int
&row);
72
void
createPreview(QGridLayout *layout,
73
int
&row);
74
void
drawCartesianLinearX();
75
void
drawCartesianLinearY();
76
void
drawCartesianLogX();
77
void
drawCartesianLogY();
78
void
drawPolarLinearRadius();
79
void
drawPolarLogRadius();
80
void
drawPolarTheta();
81
void
loadComboBoxDate();
82
void
loadComboBoxTime();
83
void
loadComboBoxUnitsNonPolar (QComboBox &cmb,
84
CoordUnitsNonPolarTheta
coordUnits);
85
void
loadComboBoxUnitsPolar (QComboBox &cmb,
86
CoordUnitsPolarTheta
coordUnits);
87
void
resetSceneRectangle();
88
void
updateControls();
89
void
updateCoordUnits();
90
void
updatePreview();
91
92
QGroupBox *m_boxCoordsType;
93
QRadioButton *m_btnCartesian;
94
QRadioButton *m_btnPolar;
95
96
QGroupBox *m_boxXTheta;
97
QRadioButton *m_xThetaLinear;
98
QRadioButton *m_xThetaLog;
99
QComboBox *m_cmbXThetaUnits;
100
101
QGroupBox *m_boxYRadius;
102
QRadioButton *m_yRadiusLinear;
103
QRadioButton *m_yRadiusLog;
104
QComboBox *m_cmbYRadiusUnits;
105
QLineEdit *m_editOriginRadius;
106
DlgValidatorAbstract
*m_validatorOriginRadius;
107
108
QComboBox *m_cmbDate;
109
QComboBox *m_cmbTime;
110
111
QGraphicsScene *m_scenePreview;
112
ViewPreview
*m_viewPreview;
113
114
DocumentModelCoords
*m_modelCoordsBefore;
115
DocumentModelCoords
*m_modelCoordsAfter;
116
};
117
118
#endif // DLG_SETTINGS_COORDS_H
DlgSettingsCoords
Dialog for editing coordinates settings.
Definition:
DlgSettingsCoords.h:26
DlgSettingsAbstractBase::mainWindow
MainWindow & mainWindow()
Get method for MainWindow.
Definition:
DlgSettingsAbstractBase.cpp:122
DlgSettingsAbstractBase
Abstract base class for all Settings dialogs.
Definition:
DlgSettingsAbstractBase.h:19
DlgSettingsCoords::load
virtual void load(CmdMediator &cmdMediator)
Load settings from Document.
Definition:
DlgSettingsCoords.cpp:557
CoordUnitsNonPolarTheta
CoordUnitsNonPolarTheta
Definition:
CoordUnitsNonPolarTheta.h:13
DlgSettingsCoords::createSubPanel
virtual QWidget * createSubPanel()
Create dialog-specific panel to which base class will add Ok and Cancel buttons.
Definition:
DlgSettingsCoords.cpp:373
MainWindow
Main window consisting of menu, graphics scene, status bar and optional toolbars as a Single Document...
Definition:
MainWindow.h:90
CoordUnitsPolarTheta.h
DlgSettingsCoords::~DlgSettingsCoords
virtual ~DlgSettingsCoords()
Definition:
DlgSettingsCoords.cpp:96
CoordUnitsNonPolarTheta.h
DlgValidatorAbstract
Abstract validator for all numeric formats.
Definition:
DlgValidatorAbstract.h:13
DlgSettingsCoords::setSmallDialogs
virtual void setSmallDialogs(bool smallDialogs)
If false then dialogs have a minimum size so all controls are visible.
Definition:
DlgSettingsCoords.cpp:732
CmdMediator
Command queue stack.
Definition:
CmdMediator.h:22
CoordUnitsPolarTheta
CoordUnitsPolarTheta
Definition:
CoordUnitsPolarTheta.h:13
DocumentModelCoords
Model for DlgSettingsCoords and CmdSettingsCoords.
Definition:
DocumentModelCoords.h:19
DlgSettingsAbstractBase::cmdMediator
CmdMediator & cmdMediator()
Provide access to Document information wrapped inside CmdMediator.
Definition:
DlgSettingsAbstractBase.cpp:45
DlgSettingsCoords::DlgSettingsCoords
DlgSettingsCoords(MainWindow &mainWindow)
Single constructor.
Definition:
DlgSettingsCoords.cpp:75
DlgSettingsAbstractBase.h
ViewPreview
Class that modifies QGraphicsView to automatically expand/shrink the view to fit the window,...
Definition:
ViewPreview.h:13
DlgSettingsCoords::createOptionalSaveDefault
virtual void createOptionalSaveDefault(QHBoxLayout *layout)
Let subclass define an optional Save As Default button.
Definition:
DlgSettingsCoords.cpp:349
DlgSettingsCoords::handleOk
virtual void handleOk()
Process slotOk.
Definition:
DlgSettingsCoords.cpp:544
Generated on Sat Jan 4 2020 12:00:00 for Engauge Digitizer by
1.8.16