Engauge Digitizer 2
Loading...
Searching...
No Matches
DlgSettingsCurveList.h
Go to the documentation of this file.
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_CURVE_LIST_H
8#define DLG_SETTINGS_CURVE_LIST_H
9
11#include <QItemSelection>
12#include <QModelIndex>
13#include <QString>
14
15class CurveNameList;
16class QGridLayout;
17class QListView;
18class QPushButton;
19class QStandardItemModel;
20class QTableView;
21class QTextStream;
22
25{
26 Q_OBJECT;
27
28public:
31 virtual ~DlgSettingsCurveList();
32
33 virtual void createOptionalSaveDefault (QHBoxLayout *layout);
34 virtual QWidget *createSubPanel ();
36 virtual void setSmallDialogs (bool smallDialogs);
37
38public slots:
40 void slotRowsAboutToBeRemoved (const QModelIndex &parent, int rowFirst, int rowLast);
41
42private slots:
43 void slotDataChanged (const QModelIndex &topLeft,
44 const QModelIndex &bottomRight,
45 const QVector<int> &roles);
46 void slotNew ();
47 void slotRemove ();
48 void slotResetDefault();
49 void slotSaveDefault();
50
51protected:
52 virtual void handleOk ();
53
54private:
55
56 void appendCurveName (const QString &curveNameNew,
57 const QString &curveNameOriginal,
58 int numPoints);
59 void createButtons (QGridLayout *layout, int &row);
60 void createListCurves (QGridLayout *layout, int &row);
61 bool endsWithNumber (const QString &str) const;
62 void insertCurveName (int row,
63 const QString &curveNameNew,
64 const QString &curveNameOriginal,
65 int numPoints);
66 int newRowFromSelection () const;
67 QString nextCurveName () const; // Pick good curve name to go at currentRow()
68 int numberAtEnd (const QString &str) const;
69 unsigned int numPointsForSelectedCurves () const;
70 void printStream (QTextStream &str) const; // Debugging method
71 void removeSelectedCurves();
72 void selectCurveName (const QString &curveWanted);
73 void updateControls ();
74
75 CurveNameList *m_curveNameList; // Model for m_listCurves
76
77 QListView *m_listCurves; // Use QListView instead of QListWidget so validators can be used
78
79 QPushButton *m_btnAdd;
80 QPushButton *m_btnRemove;
81 QPushButton *m_btnRename;
82
83 QPushButton *m_btnResetDefault;
84 QPushButton *m_btnSaveDefault;
85
86};
87
88#endif // DLG_SETTINGS_CURVE_LIST_H
Command queue stack.
Definition CmdMediator.h:24
Model for DlgSettingsCurveList and CmdSettingsCurveList.
Abstract base class for all Settings dialogs.
CmdMediator & cmdMediator()
Provide access to Document information wrapped inside CmdMediator.
MainWindow & mainWindow()
Get method for MainWindow.
Dialog for editing curve names settings.
DlgSettingsCurveList(MainWindow &mainWindow)
Single constructor.
void slotRowsAboutToBeRemoved(const QModelIndex &parent, int rowFirst, int rowLast)
Cleanup after rows have been removed in the model. We remove the corresponding rows in the QListView.
virtual void handleOk()
Process slotOk.
virtual QWidget * createSubPanel()
Create dialog-specific panel to which base class will add Ok and Cancel buttons.
void load(CmdMediator &cmdMediator)
Load settings from Document.
virtual void setSmallDialogs(bool smallDialogs)
If false then dialogs have a minimum size so all controls are visible.
virtual void createOptionalSaveDefault(QHBoxLayout *layout)
Let subclass define an optional Save As Default button.
Main window consisting of menu, graphics scene, status bar and optional toolbars as a Single Document...
Definition MainWindow.h:92