summaryrefslogtreecommitdiff
path: root/src/main-view/DictTableModel.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/main-view/DictTableModel.h')
-rw-r--r--src/main-view/DictTableModel.h52
1 files changed, 52 insertions, 0 deletions
diff --git a/src/main-view/DictTableModel.h b/src/main-view/DictTableModel.h
new file mode 100644
index 0000000..0293ace
--- /dev/null
+++ b/src/main-view/DictTableModel.h
@@ -0,0 +1,52 @@
+#ifndef DICTTABLEMODEL_H
+#define DICTTABLEMODEL_H
+
+#include <QtCore>
+#include <QtWidgets>
+
+class Dictionary;
+class DicRecord;
+
+class DictTableModel: public QAbstractTableModel
+{
+ Q_OBJECT
+
+public:
+ enum
+ {
+ DicRecordRole = Qt::UserRole
+ };
+
+ DictTableModel( Dictionary* aDict, QObject *parent = 0 );
+
+ // Getters
+
+ const Dictionary* dictionary() const { return m_dictionary; }
+ QUndoStack* undoStack() const { return m_undoStack; }
+
+ Qt::ItemFlags flags( const QModelIndex& index ) const { return QAbstractItemModel::flags( index ) | Qt::ItemIsEditable; }
+ int rowCount( const QModelIndex& parent = QModelIndex() ) const;
+ int columnCount( const QModelIndex& parent = QModelIndex() ) const;
+ QVariant data(const QModelIndex& index, int role) const;
+ QVariant headerData( int section, Qt::Orientation orientation, int role = Qt::DisplayRole ) const;
+
+ // Setters
+
+ bool setData( const QModelIndex &index, const QVariant& value, int role = Qt::EditRole );
+ bool insertRows( int position, int rows, const QModelIndex& index = QModelIndex() );
+ bool addFields( QStringList aFields );
+ bool removeRows( int position, int rows, const QModelIndex& index = QModelIndex() );
+
+public slots:
+ void resetData();
+
+private slots:
+ void discardCurDictionary();
+
+private:
+ static const int ThumbnailSize = 25; ///< Size of image thumbnails
+
+ Dictionary* m_dictionary; // not own
+ QUndoStack* m_undoStack;
+};
+#endif