Engauge Digitizer 2
Loading...
Searching...
No Matches
DlgSettingsCoords.h
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
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
40private slots:
41 void slotCartesianPolar (bool);
42 void slotDate (const QString &);
43 void slotPolarOriginRadius(const QString &);
44 void slotTime (const QString &);
45 void slotUnitsXTheta(const QString &);
46 void slotUnitsYRadius(const QString &);
47 void slotXThetaLinear();
48 void slotXThetaLog();
49 void slotYRadiusLinear();
50 void slotYRadiusLog();
51
52protected:
53 virtual void handleOk ();
54
55private:
56
57 void annotateAngles(const QFont &defaultFont);
58 void annotateRadiusAtOrigin(const QFont &defaultFont);
59 QRectF boundingRectGraph (CmdMediator &cmdMediator,
60 bool &isEmpty) const;
61 void createDateTime(QGridLayout *layout,
62 int &row);
63 void createGroupCoordsType(QGridLayout *layout,
64 int &row);
65 void createGroupXTheta(QGridLayout *layout,
66 int &row);
67 void createGroupYRadius(QGridLayout *layout,
68 int &row);
69 void createPreview(QGridLayout *layout,
70 int &row);
71 void drawCartesianLinearX();
72 void drawCartesianLinearY();
73 void drawCartesianLogX();
74 void drawCartesianLogY();
75 void drawPolarLinearRadius();
76 void drawPolarLogRadius();
77 void drawPolarTheta();
78 void loadComboBoxDate();
79 void loadComboBoxTime();
80 void loadComboBoxUnitsNonPolar (QComboBox &cmb,
81 CoordUnitsNonPolarTheta coordUnits);
82 void loadComboBoxUnitsPolar (QComboBox &cmb,
83 CoordUnitsPolarTheta coordUnits);
84 void resetSceneRectangle();
85 void updateControls();
86 void updateCoordUnits();
87 void updatePreview();
88
89 QGroupBox *m_boxCoordsType;
90 QRadioButton *m_btnCartesian;
91 QRadioButton *m_btnPolar;
92
93 QGroupBox *m_boxXTheta;
94 QRadioButton *m_xThetaLinear;
95 QRadioButton *m_xThetaLog;
96 QComboBox *m_cmbXThetaUnits;
97
98 QGroupBox *m_boxYRadius;
99 QRadioButton *m_yRadiusLinear;
100 QRadioButton *m_yRadiusLog;
101 QComboBox *m_cmbYRadiusUnits;
102 QLineEdit *m_editOriginRadius;
103 DlgValidatorAbstract *m_validatorOriginRadius;
104
105 QComboBox *m_cmbDate;
106 QComboBox *m_cmbTime;
107
108 QGraphicsScene *m_scenePreview;
109 ViewPreview *m_viewPreview;
110
111 DocumentModelCoords *m_modelCoordsBefore;
112 DocumentModelCoords *m_modelCoordsAfter;
113};
114
115#endif // DLG_SETTINGS_COORDS_H
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.
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:78
Class that modifies QGraphicsView to automatically expand/shrink the view to fit the window,...
Definition ViewPreview.h:15