1 #ifndef HISTORYENTRYMODEL_H
2 #define HISTORYENTRYMODEL_H
3 
4 #include <QObject>
5 #include <QAbstractTableModel>
6 
7 #include "Utils/Pimpl.h"
8 #include "Utils/Session/SessionUtils.h"
9 
10 namespace Session
11 {
12 	class Manager;
13 }
14 
15 class HistoryEntryModel :
16 	public QAbstractTableModel
17 {
18 	Q_OBJECT
19 	PIMPL(HistoryEntryModel)
20 
21 	signals:
22 		void sigRowsAdded();
23 
24 	private:
25 		const Session::Entry& entry(int row) const;
26 
27 	public:
28 		HistoryEntryModel(Session::Manager* sessionManager, Session::Timecode timecode, QObject* parent=nullptr);
29 		~HistoryEntryModel() override;
30 
31 		// QAbstractItemModel interface
32 	public:
33 		QVariant headerData(int section, Qt::Orientation orientation, int role) const override;
34 		int rowCount(const QModelIndex& parent) const override;
35 		int columnCount(const QModelIndex& parent) const override;
36 		QVariant data(const QModelIndex& index, int role) const override;
37 
38 		Qt::ItemFlags flags(const QModelIndex& index) const override;
39 		QMimeData* mimeData(const QModelIndexList& indexes) const override;
40 
41 	private slots:
42 		void historyChanged(Session::Id id);
43 
44 	protected:
45 		void languageChanged();
46 };
47 
48 #endif // HISTORYENTRYMODEL_H
49