Engauge Digitizer  2
DlgSettingsCurveAddRemove.h
1 #ifndef DLG_SETTINGS_CURVE_ADD_REMOVE_H
2 #define DLG_SETTINGS_CURVE_ADD_REMOVE_H
3 
4 #include "DlgSettingsAbstractBase.h"
5 #include <QItemSelection>
6 #include <QModelIndex>
7 
8 class CurveNameList;
9 class QGridLayout;
10 class QListView;
11 class QPushButton;
12 
15 {
16  Q_OBJECT;
17 
18 public:
21  virtual ~DlgSettingsCurveAddRemove();
22 
23  virtual void createOptionalSaveDefault (QHBoxLayout *layout);
24  virtual QWidget *createSubPanel ();
26 
27 private slots:
28  void slotDataChanged (const QModelIndex &topLeft,
29  const QModelIndex &bottomRight,
30  const QVector<int> &roles);
31  void slotNew ();
32  void slotRemove ();
33  void slotSaveDefault();
34  void slotSelectionChanged (QItemSelection, QItemSelection);
35 
36 protected:
37  virtual void handleOk ();
38 
39 private:
40 
41  void appendCurveName (const QString &curveNameNew,
42  const QString &curveNameOriginal,
43  int numPoints);
44  void createButtons (QGridLayout *layout, int &row);
45  void createListCurves (QGridLayout *layout, int &row);
46  bool endsWithNumber (const QString &str) const;
47  void insertCurveName (int row,
48  const QString &curveNameNew,
49  const QString &curveNameOriginal,
50  int numPoints);
51  QString nextCurveName () const; // Pick good curve name to go at currentRow()
52  int numberAtEnd (const QString &str) const;
53  void removeSelectedCurves();
54  void updateControls ();
55 
56  CurveNameList *m_curveNameList; // Model for m_listCurves
57  QListView *m_listCurves; // Use QListView instead of QListWidget so validators can be used
58 
59  QPushButton *m_btnAdd;
60  QPushButton *m_btnRemove;
61  QPushButton *m_btnRename;
62 
63  QPushButton *m_btnSaveDefault;
64 };
65 
66 #endif // DLG_SETTINGS_CURVE_ADD_REMOVE_H
virtual void createOptionalSaveDefault(QHBoxLayout *layout)
Let subclass define an optional Save As Default button.
virtual QWidget * createSubPanel()
Create dialog-specific panel to which base class will add Ok and Cancel buttons.
Dialog for editing curve names settings.
void load(CmdMediator &cmdMediator)
Load settings from Document.
Command queue stack.
Definition: CmdMediator.h:16
Abstract base class for all Settings dialogs.
Model for DlgSettingsCurveAddRemove and CmdSettingsCurveAddRemove.
Definition: CurveNameList.h:10
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:66
DlgSettingsCurveAddRemove(MainWindow &mainWindow)
Single constructor.
CmdMediator & cmdMediator()
Provide access to Document information wrapped inside CmdMediator.
virtual void handleOk()
Process slotOk.