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 QLabel;
22 class QLineEdit;
23 class ViewPreview;
24 
27 {
28  Q_OBJECT;
29 
30 public:
33  virtual ~DlgSettingsGridDisplay();
34 
35  virtual void createOptionalSaveDefault (QHBoxLayout *layout);
36  virtual QWidget *createSubPanel ();
37  virtual void load (CmdMediator &cmdMediator);
38  virtual void setSmallDialogs (bool smallDialogs);
39 
40 private slots:
41 
42  void slotColor (const QString &);
43 
44  void slotDisableX(const QString &);
45  void slotCountX(const QString &);
46  void slotStartX(const QString &);
47  void slotStepX(const QString &);
48  void slotStopX(const QString &);
49 
50  void slotDisableY(const QString &);
51  void slotCountY(const QString &);
52  void slotStartY(const QString &);
53  void slotStepY(const QString &);
54  void slotStopY(const QString &);
55 
56 protected:
57  virtual void handleOk ();
58 
59 private:
60 
61  void createDisplayCommon (QGridLayout *layout, int &row);
62  void createDisplayGridLinesX (QGridLayout *layoutGridLines, int &row);
63  void createDisplayGridLinesY (QGridLayout *layoutGridLines, int &row);
64  void createPreview (QGridLayout *layout, int &row);
65  bool textItemsAreValid () const;
66  bool textItemsDoNotBreakLineCountLimit ();
67  void updateControls ();
68  void updateDisplayedVariableX ();
69  void updateDisplayedVariableY ();
70  void updatePreview();
71 
72  QGroupBox *m_groupX;
73  QComboBox *m_cmbDisableX;
74  QLineEdit *m_editCountX;
75  QLineEdit *m_editStartX;
76  QLineEdit *m_editStepX;
77  QLineEdit *m_editStopX;
78  QDoubleValidator *m_validatorCountX;
79  QDoubleValidator *m_validatorStartX;
80  QDoubleValidator *m_validatorStepX;
81  QDoubleValidator *m_validatorStopX;
82 
83  QGroupBox *m_groupY;
84  QComboBox *m_cmbDisableY;
85  QLineEdit *m_editCountY;
86  QLineEdit *m_editStartY;
87  QLineEdit *m_editStepY;
88  QLineEdit *m_editStopY;
89  QDoubleValidator *m_validatorCountY;
90  QDoubleValidator *m_validatorStartY;
91  QDoubleValidator *m_validatorStepY;
92  QDoubleValidator *m_validatorStopY;
93 
94  QLabel *m_labelLimitWarning;
95 
96  QComboBox *m_cmbColor;
97 
98  GridLines m_gridLines;
99 
100  QGraphicsScene *m_scenePreview;
101  ViewPreview *m_viewPreview;
102 
103  DocumentModelGridDisplay *m_modelGridDisplayBefore;
104  DocumentModelGridDisplay *m_modelGridDisplayAfter;
105 };
106 
107 #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.
virtual void setSmallDialogs(bool smallDialogs)
If false then dialogs have a minimum size so all controls are visible.
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:89
CmdMediator & cmdMediator()
Provide access to Document information wrapped inside CmdMediator.