Engauge Digitizer  2
DlgSettingsCoords.h
1 #ifndef DLG_SETTINGS_COORDS_H
2 #define DLG_SETTINGS_COORDS_H
3 
4 #include "CoordUnitsNonPolarTheta.h"
5 #include "CoordUnitsPolarTheta.h"
6 #include "DlgSettingsAbstractBase.h"
7 
10 class QComboBox;
11 class QDoubleValidator;
12 class QGridLayout;
13 class QGroupBox;
14 class QGraphicsScene;
15 class QGraphicsView;
16 class QLineEdit;
17 class QRadioButton;
18 class ViewPreview;
19 
22 {
23  Q_OBJECT;
24 
25 public:
28  virtual ~DlgSettingsCoords();
29 
30  virtual QWidget *createSubPanel ();
31  virtual void load (CmdMediator &cmdMediator);
32 
33 private slots:
34  void slotCartesianPolar (bool);
35  void slotDate (const QString &);
36  void slotPolarOriginRadius(const QString &);
37  void slotTime (const QString &);
38  void slotUnitsXTheta(const QString &);
39  void slotUnitsYRadius(const QString &);
40  void slotXThetaLinear();
41  void slotXThetaLog();
42  void slotYRadiusLinear();
43  void slotYRadiusLog();
44 
45 protected:
46  virtual void handleOk ();
47 
48 private:
49 
50  void annotateAngles(const QFont &defaultFont);
51  void annotateRadiusAtOrigin(const QFont &defaultFont);
52  QRectF boundingRectGraph (CmdMediator &cmdMediator,
53  bool &isEmpty) const;
54  void createDateTime(QGridLayout *layout,
55  int &row);
56  void createGroupCoordsType(QGridLayout *layout,
57  int &row);
58  void createGroupXTheta(QGridLayout *layout,
59  int &row);
60  void createGroupYRadius(QGridLayout *layout,
61  int &row);
62  void createPreview(QGridLayout *layout,
63  int &row);
64  void drawCartesianLinearX();
65  void drawCartesianLinearY();
66  void drawCartesianLogX();
67  void drawCartesianLogY();
68  void drawPolarLinearRadius();
69  void drawPolarLogRadius();
70  void drawPolarTheta();
71  void loadComboBoxDate();
72  void loadComboBoxTime();
73  void loadComboBoxUnitsNonPolar (QComboBox &cmb,
74  CoordUnitsNonPolarTheta coordUnits);
75  void loadComboBoxUnitsPolar (QComboBox &cmb,
76  CoordUnitsPolarTheta coordUnits);
77  void resetSceneRectangle();
78  void updateControls();
79  void updatePreview();
80 
81  QGroupBox *m_boxCoordsType;
82  QRadioButton *m_btnCartesian;
83  QRadioButton *m_btnPolar;
84 
85  QGroupBox *m_boxXTheta;
86  QRadioButton *m_xThetaLinear;
87  QRadioButton *m_xThetaLog;
88  QComboBox *m_cmbXThetaUnits;
89 
90  QGroupBox *m_boxYRadius;
91  QRadioButton *m_yRadiusLinear;
92  QRadioButton *m_yRadiusLog;
93  QComboBox *m_cmbYRadiusUnits;
94  QLineEdit *m_editOriginRadius;
95  DlgValidatorAbstract *m_validatorOriginRadius;
96 
97  QComboBox *m_cmbDate;
98  QComboBox *m_cmbTime;
99 
100  QGraphicsScene *m_scenePreview;
101  ViewPreview *m_viewPreview;
102 
103  DocumentModelCoords *m_modelCoordsBefore;
104  DocumentModelCoords *m_modelCoordsAfter;
105 };
106 
107 #endif // DLG_SETTINGS_COORDS_H
virtual void load(CmdMediator &cmdMediator)
Load settings from Document.
Abstract validator for all numeric formats.
virtual QWidget * createSubPanel()
Create dialog-specific panel to which base class will add Ok and Cancel buttons.
Class that modifies QGraphicsView to automatically expand/shrink the view to fit the window...
Definition: ViewPreview.h:8
Model for DlgSettingsCoords and CmdSettingsCoords.
Dialog for editing coordinates settings.
Command queue stack.
Definition: CmdMediator.h:16
Abstract base class for all Settings dialogs.
MainWindow & mainWindow()
Get method for MainWindow.
virtual void handleOk()
Process slotOk.
Main window consisting of menu, graphics scene, status bar and optional toolbars as a Single Document...
Definition: MainWindow.h:60
CmdMediator & cmdMediator()
Provide access to Document information wrapped inside CmdMediator.
DlgSettingsCoords(MainWindow &mainWindow)
Single constructor.