From 7167ce41b61d2ba2cdb526777a4233eb84a3b66a Mon Sep 17 00:00:00 2001 From: Unit 193 Date: Sat, 6 Dec 2014 17:33:25 -0500 Subject: Imported Upstream version 2.99.6 --- .../guiSQLiteStudio/common/datawidgetmapper.h | 54 ++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 SQLiteStudio3/guiSQLiteStudio/common/datawidgetmapper.h (limited to 'SQLiteStudio3/guiSQLiteStudio/common/datawidgetmapper.h') diff --git a/SQLiteStudio3/guiSQLiteStudio/common/datawidgetmapper.h b/SQLiteStudio3/guiSQLiteStudio/common/datawidgetmapper.h new file mode 100644 index 0000000..4df7d5e --- /dev/null +++ b/SQLiteStudio3/guiSQLiteStudio/common/datawidgetmapper.h @@ -0,0 +1,54 @@ +#ifndef DATAWIDGETMAPPER_H +#define DATAWIDGETMAPPER_H + +#include +#include + +class QAbstractItemModel; + +class DataWidgetMapper : public QObject +{ + Q_OBJECT + public: + typedef std::function SubmitFilter; + + explicit DataWidgetMapper(QObject *parent = 0); + + QAbstractItemModel* getModel() const; + void setModel(QAbstractItemModel* value); + void addMapping(QWidget* widget, int modelColumn, const QString& propertyName); + void clearMapping(); + int getCurrentIndex() const; + int mappedSection(QWidget* widget) const; + SubmitFilter getSubmitFilter() const; + void setSubmitFilter(const SubmitFilter& value); + + private: + struct MappingEntry + { + QWidget* widget = nullptr; + int columnIndex = 0; + QString propertyName; + }; + + void loadFromModel(); + + QAbstractItemModel* model = nullptr; + int currentIndex = -1; + QHash mappings; + SubmitFilter submitFilter = nullptr; + + public slots: + void setCurrentIndex(int rowIndex); + void toFirst(); + void toLast(); + void toNext(); + void toPrevious(); + void submit(); + void revert(); + + signals: + void currentIndexChanged(int newRowIndex); +}; + +#endif // DATAWIDGETMAPPER_H -- cgit v1.2.3