Engauge Digitizer 2
Loading...
Searching...
No Matches
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
13
16class QComboBox;
17class QDoubleValidator;
18class QGridLayout;
19class QGroupBox;
20class QGraphicsScene;
21class QGraphicsView;
22class QLineEdit;
23class QRadioButton;
24class ViewPreview;
25
28{
29 Q_OBJECT;
30
31public:
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
41private 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
53protected:
54 virtual void handleOk ();
55
56private:
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
CoordUnitsNonPolarTheta
CoordUnitsPolarTheta
Command queue stack.
Definition CmdMediator.h:24
Abstract base class for all Settings dialogs.
CmdMediator & cmdMediator()
Provide access to Document information wrapped inside CmdMediator.
MainWindow & mainWindow()
Get method for MainWindow.
Dialog for editing coordinates settings.
virtual QWidget * createSubPanel()
Create dialog-specific panel to which base class will add Ok and Cancel buttons.
DlgSettingsCoords(MainWindow &mainWindow)
Single constructor.
virtual void setSmallDialogs(bool smallDialogs)
If false then dialogs have a minimum size so all controls are visible.
virtual void createOptionalSaveDefault(QHBoxLayout *layout)
Let subclass define an optional Save As Default button.
virtual void load(CmdMediator &cmdMediator)
Load settings from Document.
virtual void handleOk()
Process slotOk.
Abstract validator for all numeric formats.
Model for DlgSettingsCoords and CmdSettingsCoords.
Main window consisting of menu, graphics scene, status bar and optional toolbars as a Single Document...
Definition MainWindow.h:92
Class that modifies QGraphicsView to automatically expand/shrink the view to fit the window,...
Definition ViewPreview.h:15