00001
00002
00003
00004
00005
00006
00007 #ifndef DLG_SETTINGS_CURVE_ADD_REMOVE_H
00008 #define DLG_SETTINGS_CURVE_ADD_REMOVE_H
00009
00010 #include "DlgSettingsAbstractBase.h"
00011 #include <QItemSelection>
00012 #include <QModelIndex>
00013 #include <QString>
00014
00015 class CurveNameList;
00016 class QGridLayout;
00017 class QListView;
00018 class QPushButton;
00019 class QStandardItemModel;
00020 class QTableView;
00021 class QTextStream;
00022
00024 class DlgSettingsCurveAddRemove : public DlgSettingsAbstractBase
00025 {
00026 Q_OBJECT;
00027
00028 public:
00030 DlgSettingsCurveAddRemove(MainWindow &mainWindow);
00031 virtual ~DlgSettingsCurveAddRemove();
00032
00033 virtual void createOptionalSaveDefault (QHBoxLayout *layout);
00034 virtual QWidget *createSubPanel ();
00035 void load (CmdMediator &cmdMediator);
00036 virtual void setSmallDialogs (bool smallDialogs);
00037
00038 public slots:
00040 void slotRowsAboutToBeRemoved (const QModelIndex &parent, int rowFirst, int rowLast);
00041
00042 private slots:
00043 void slotDataChanged (const QModelIndex &topLeft,
00044 const QModelIndex &bottomRight,
00045 const QVector<int> &roles);
00046 void slotNew ();
00047 void slotRemove ();
00048 void slotResetDefault();
00049 void slotSaveDefault();
00050
00051 protected:
00052 virtual void handleOk ();
00053
00054 private:
00055
00056 void appendCurveName (const QString &curveNameNew,
00057 const QString &curveNameOriginal,
00058 int numPoints);
00059 void createButtons (QGridLayout *layout, int &row);
00060 void createListCurves (QGridLayout *layout, int &row);
00061 bool endsWithNumber (const QString &str) const;
00062 void insertCurveName (int row,
00063 const QString &curveNameNew,
00064 const QString &curveNameOriginal,
00065 int numPoints);
00066 int newRowFromSelection () const;
00067 QString nextCurveName () const;
00068 int numberAtEnd (const QString &str) const;
00069 unsigned int numPointsForSelectedCurves () const;
00070 void printStream (QTextStream &str) const;
00071 void removeSelectedCurves();
00072 void selectCurveName (const QString &curveWanted);
00073 void updateControls ();
00074
00075 CurveNameList *m_curveNameList;
00076
00077 QListView *m_listCurves;
00078
00079 QPushButton *m_btnAdd;
00080 QPushButton *m_btnRemove;
00081 QPushButton *m_btnRename;
00082
00083 QPushButton *m_btnResetDefault;
00084 QPushButton *m_btnSaveDefault;
00085
00086 };
00087
00088 #endif // DLG_SETTINGS_CURVE_ADD_REMOVE_H