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 void createOptionalSaveDefault (QHBoxLayout *layout);
31  virtual QWidget *createSubPanel ();
32  virtual void load (CmdMediator &cmdMediator);
33 
34 private slots:
35  void slotCartesianPolar (bool);
36  void slotDate (const QString &);
37  void slotPolarOriginRadius(const QString &);
38  void slotTime (const QString &);
39  void slotUnitsXTheta(const QString &);
40  void slotUnitsYRadius(const QString &);
41  void slotXThetaLinear();
42  void slotXThetaLog();
43  void slotYRadiusLinear();
44  void slotYRadiusLog();
45 
46 protected:
47  virtual void handleOk ();
48 
49 private:
50 
51  void annotateAngles(const QFont &defaultFont);
52  void annotateRadiusAtOrigin(const QFont &defaultFont);
53  QRectF boundingRectGraph (CmdMediator &cmdMediator,
54  bool &isEmpty) const;
55  void createDateTime(QGridLayout *layout,
56  int &row);
57  void createGroupCoordsType(QGridLayout *layout,
58  int &row);
59  void createGroupXTheta(QGridLayout *layout,
60  int &row);
61  void createGroupYRadius(QGridLayout *layout,
62  int &row);
63  void createPreview(QGridLayout *layout,
64  int &row);
65  void drawCartesianLinearX();
66  void drawCartesianLinearY();
67  void drawCartesianLogX();
68  void drawCartesianLogY();
69  void drawPolarLinearRadius();
70  void drawPolarLogRadius();
71  void drawPolarTheta();
72  void loadComboBoxDate();
73  void loadComboBoxTime();
74  void loadComboBoxUnitsNonPolar (QComboBox &cmb,
75  CoordUnitsNonPolarTheta coordUnits);
76  void loadComboBoxUnitsPolar (QComboBox &cmb,
77  CoordUnitsPolarTheta coordUnits);
78  void resetSceneRectangle();
79  void updateControls();
80  void updatePreview();
81 
82  QGroupBox *m_boxCoordsType;
83  QRadioButton *m_btnCartesian;
84  QRadioButton *m_btnPolar;
85 
86  QGroupBox *m_boxXTheta;
87  QRadioButton *m_xThetaLinear;
88  QRadioButton *m_xThetaLog;
89  QComboBox *m_cmbXThetaUnits;
90 
91  QGroupBox *m_boxYRadius;
92  QRadioButton *m_yRadiusLinear;
93  QRadioButton *m_yRadiusLog;
94  QComboBox *m_cmbYRadiusUnits;
95  QLineEdit *m_editOriginRadius;
96  DlgValidatorAbstract *m_validatorOriginRadius;
97 
98  QComboBox *m_cmbDate;
99  QComboBox *m_cmbTime;
100 
101  QGraphicsScene *m_scenePreview;
102  ViewPreview *m_viewPreview;
103 
104  DocumentModelCoords *m_modelCoordsBefore;
105  DocumentModelCoords *m_modelCoordsAfter;
106 };
107 
108 #endif // DLG_SETTINGS_COORDS_H
virtual void createOptionalSaveDefault(QHBoxLayout *layout)
Let subclass define an optional Save As Default button.
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:66
CmdMediator & cmdMediator()
Provide access to Document information wrapped inside CmdMediator.
DlgSettingsCoords(MainWindow &mainWindow)
Single constructor.