Engauge Digitizer  2
DlgSettingsGridDisplay.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_GRID_DISPLAY_H
8 #define DLG_SETTINGS_GRID_DISPLAY_H
9 
10 #include "DlgSettingsAbstractBase.h"
11 #include "GridLines.h"
12 
14 class QCheckBox;
15 class QComboBox;
16 class QDoubleValidator;
17 class QGraphicsScene;
18 class QGridLayout;
19 class QGroupBox;
20 class QHBoxLayout;
21 class QLineEdit;
22 class ViewPreview;
23 
26 {
27  Q_OBJECT;
28 
29 public:
32  virtual ~DlgSettingsGridDisplay();
33 
34  virtual void createOptionalSaveDefault (QHBoxLayout *layout);
35  virtual QWidget *createSubPanel ();
36  virtual void load (CmdMediator &cmdMediator);
37 
38 private slots:
39 
40  void slotColor (const QString &);
41 
42  void slotDisableX(const QString &);
43  void slotCountX(const QString &);
44  void slotStartX(const QString &);
45  void slotStepX(const QString &);
46  void slotStopX(const QString &);
47 
48  void slotDisableY(const QString &);
49  void slotCountY(const QString &);
50  void slotStartY(const QString &);
51  void slotStepY(const QString &);
52  void slotStopY(const QString &);
53 
54 protected:
55  virtual void handleOk ();
56 
57 private:
58 
59  void createDisplayCommon (QGridLayout *layout, int &row);
60  void createDisplayGridLinesX (QGridLayout *layoutGridLines, int &row);
61  void createDisplayGridLinesY (QGridLayout *layoutGridLines, int &row);
62  void createPreview (QGridLayout *layout, int &row);
63  bool textItemsAreValid () const;
64  void updateControls ();
65  void updateDisplayedVariableX ();
66  void updateDisplayedVariableY ();
67  void updatePreview();
68 
69  QGroupBox *m_groupX;
70  QComboBox *m_cmbDisableX;
71  QLineEdit *m_editCountX;
72  QLineEdit *m_editStartX;
73  QLineEdit *m_editStepX;
74  QLineEdit *m_editStopX;
75  QDoubleValidator *m_validatorCountX;
76  QDoubleValidator *m_validatorStartX;
77  QDoubleValidator *m_validatorStepX;
78  QDoubleValidator *m_validatorStopX;
79 
80  QGroupBox *m_groupY;
81  QComboBox *m_cmbDisableY;
82  QLineEdit *m_editCountY;
83  QLineEdit *m_editStartY;
84  QLineEdit *m_editStepY;
85  QLineEdit *m_editStopY;
86  QDoubleValidator *m_validatorCountY;
87  QDoubleValidator *m_validatorStartY;
88  QDoubleValidator *m_validatorStepY;
89  QDoubleValidator *m_validatorStopY;
90 
91  QComboBox *m_cmbColor;
92 
93  GridLines m_gridLines;
94 
95  QGraphicsScene *m_scenePreview;
96  ViewPreview *m_viewPreview;
97 
98  DocumentModelGridDisplay *m_modelGridDisplayBefore;
99  DocumentModelGridDisplay *m_modelGridDisplayAfter;
100 };
101 
102 #endif // DLG_SETTINGS_GRID_DISPLAY_H
Model for DlgSettingsGridDisplay and CmdSettingsGridDisplay.
virtual void load(CmdMediator &cmdMediator)
Load settings from Document.
virtual void createOptionalSaveDefault(QHBoxLayout *layout)
Let subclass define an optional Save As Default button.
DlgSettingsGridDisplay(MainWindow &mainWindow)
Single constructor.
Class that modifies QGraphicsView to automatically expand/shrink the view to fit the window...
Definition: ViewPreview.h:14
virtual QWidget * createSubPanel()
Create dialog-specific panel to which base class will add Ok and Cancel buttons.
virtual void handleOk()
Process slotOk.
Container class for GridLine objects.
Definition: GridLines.h:18
Dialog for editing grid display settings.
Command queue stack.
Definition: CmdMediator.h:23
Abstract base class for all Settings dialogs.
MainWindow & mainWindow()
Get method for MainWindow.
Main window consisting of menu, graphics scene, status bar and optional toolbars as a Single Document...
Definition: MainWindow.h:83
CmdMediator & cmdMediator()
Provide access to Document information wrapped inside CmdMediator.