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
14class ButtonWhatsThis;
17class QComboBox;
18class QDoubleValidator;
19class QGridLayout;
20class QGroupBox;
21class QGraphicsScene;
22class QGraphicsView;
23class QLineEdit;
24class QRadioButton;
25class ViewPreview;
26
29{
30 Q_OBJECT;
31
32public:
35 virtual ~DlgSettingsCoords();
36
37 virtual void createOptionalSaveDefault (QHBoxLayout *layout);
38 virtual QWidget *createSubPanel ();
39 virtual void load (CmdMediator &cmdMediator);
40 virtual void setSmallDialogs (bool smallDialogs);
41
42private slots:
43 void slotCartesianPolar (bool);
44 void slotDate (const QString &);
45 void slotPolarOriginRadius(const QString &);
46 void slotTime (const QString &);
47 void slotUnitsXTheta(const QString &);
48 void slotUnitsYRadius(const QString &);
49 void slotWhatsThis();
50 void slotXThetaLinear();
51 void slotXThetaLog();
52 void slotYRadiusLinear();
53 void slotYRadiusLog();
54
55protected:
56 virtual void handleOk ();
57
58private:
59
60 void annotateAngles(const QFont &defaultFont);
61 void annotateRadiusAtOrigin(const QFont &defaultFont);
62 void boundingRectGraph (CmdMediator &cmdMediator,
63 bool &isEmpty,
64 QPointF &boundingRectGraphMin,
65 QPointF &boundingRectGraphMax) const;
66 void createDateTime(QGridLayout *layout,
67 int &row);
68 void createGroupCoordsType(QGridLayout *layout,
69 int &row);
70 void createGroupXTheta(QGridLayout *layout,
71 int &row);
72 void createGroupYRadius(QGridLayout *layout,
73 int &row);
74 void createPreview(QGridLayout *layout,
75 int &row);
76 void drawCartesianLinearX();
77 void drawCartesianLinearY();
78 void drawCartesianLogX();
79 void drawCartesianLogY();
80 void drawPolarLinearRadius();
81 void drawPolarLogRadius();
82 void drawPolarTheta();
83 void loadComboBoxDate();
84 void loadComboBoxTime();
85 void loadComboBoxUnitsNonPolar (QComboBox &cmb,
86 CoordUnitsNonPolarTheta coordUnits);
87 void loadComboBoxUnitsPolar (QComboBox &cmb,
88 CoordUnitsPolarTheta coordUnits);
89 void resetSceneRectangle();
90 void updateControls();
91 void updateCoordUnits();
92 void updatePreview();
93
94 ButtonWhatsThis *m_btnWhatsThis;
95
96 QGroupBox *m_boxCoordsType;
97 QRadioButton *m_btnCartesian;
98 QRadioButton *m_btnPolar;
99
100 QGroupBox *m_boxXTheta;
101 QRadioButton *m_xThetaLinear;
102 QRadioButton *m_xThetaLog;
103 QComboBox *m_cmbXThetaUnits;
104
105 QGroupBox *m_boxYRadius;
106 QRadioButton *m_yRadiusLinear;
107 QRadioButton *m_yRadiusLog;
108 QComboBox *m_cmbYRadiusUnits;
109 QLineEdit *m_editOriginRadius;
110 DlgValidatorAbstract *m_validatorOriginRadius;
111
112 QComboBox *m_cmbDate;
113 QComboBox *m_cmbTime;
114
115 QGraphicsScene *m_scenePreview;
116 ViewPreview *m_viewPreview;
117
118 DocumentModelCoords *m_modelCoordsBefore;
119 DocumentModelCoords *m_modelCoordsAfter;
120};
121
122#endif // DLG_SETTINGS_COORDS_H
CoordUnitsNonPolarTheta
CoordUnitsPolarTheta
Unobtrusive button to trigger QWhatsThis since some operating systems (Linux Mint) do not show WhatsT...
Command queue stack.
Definition CmdMediator.h:24
DlgSettingsAbstractBase(const QString &title, const QString &dialogName, MainWindow &mainWindow)
Single constructor.
CmdMediator & cmdMediator()
Provide access to Document information wrapped inside CmdMediator.
MainWindow & mainWindow()
Get method for MainWindow.
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:95
Class that modifies QGraphicsView to automatically expand/shrink the view to fit the window,...
Definition ViewPreview.h:15