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
00014 class CurveNameList;
00015 class QGridLayout;
00016 class QListView;
00017 class QPushButton;
00018 class QTableView;
00019
00023 class DlgSettingsCurveAddRemove : public DlgSettingsAbstractBase
00024 {
00025 Q_OBJECT;
00026
00027 public:
00029 DlgSettingsCurveAddRemove(MainWindow &mainWindow);
00030 virtual ~DlgSettingsCurveAddRemove();
00031
00032 virtual void createOptionalSaveDefault (QHBoxLayout *layout);
00033 virtual QWidget *createSubPanel ();
00034 void load (CmdMediator &cmdMediator);
00035 virtual void setSmallDialogs (bool smallDialogs);
00036
00037 private slots:
00038 void slotDataChanged (const QModelIndex &topLeft,
00039 const QModelIndex &bottomRight,
00040 const QVector<int> &roles);
00041 void slotNew ();
00042 void slotRemove ();
00043 void slotResetDefault();
00044 void slotSaveDefault();
00045 void slotSelectionChanged (QItemSelection, QItemSelection);
00046
00047 protected:
00048 virtual void handleOk ();
00049
00050 private:
00051
00052 void appendCurveName (const QString &curveNameNew,
00053 const QString &curveNameOriginal,
00054 int numPoints);
00055 void createButtons (QGridLayout *layout, int &row);
00056 void createListCurves (QGridLayout *layout, int &row);
00057 bool endsWithNumber (const QString &str) const;
00058 void insertCurveName (int row,
00059 const QString &curveNameNew,
00060 const QString &curveNameOriginal,
00061 int numPoints);
00062 int newIndexFromSelection () const;
00063 QString nextCurveName () const;
00064 int numberAtEnd (const QString &str) const;
00065 void removeSelectedCurves();
00066 void selectCurveName (const QString &curveWanted);
00067 void updateControls ();
00068
00069 CurveNameList *m_curveNameList;
00070
00071 #ifdef DLG_SETTINGS_DEBUG
00072 QTableView *m_listCurves;
00073 #else
00074 QListView *m_listCurves;
00075 #endif
00076
00077 QPushButton *m_btnAdd;
00078 QPushButton *m_btnRemove;
00079 QPushButton *m_btnRename;
00080
00081 QPushButton *m_btnResetDefault;
00082 QPushButton *m_btnSaveDefault;
00083 };
00084
00085 #endif // DLG_SETTINGS_CURVE_ADD_REMOVE_H