1 %{Cpp:LicenseTemplate}\ 2 @if '%{Cpp:PragmaOnce}' 3 #pragma once 4 @else 5 #ifndef %{GUARD} 6 #define %{GUARD} 7 @endif 8 9 %{JS: QtSupport.qtIncludes([ 'QtCore/%{Base}' ], [ 'QtCore/%{Base}' ])}\ 10 %{JS: Cpp.openNamespaces('%{Class}')}\ 11 12 class %{CN} : public %{Base} 13 { 14 Q_OBJECT 15 16 public: 17 explicit %{CN}(QObject *parent = nullptr); 18 19 @if %{CustomHeader} 20 // Header: 21 QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const override; 22 23 @if %{Editable} 24 bool setHeaderData(int section, Qt::Orientation orientation, const QVariant &value, int role = Qt::EditRole) override; 25 26 @endif 27 @endif 28 // Basic functionality: 29 int rowCount(const QModelIndex &parent = QModelIndex()) const override; 30 31 @if %{DynamicFetch} 32 // Fetch data dynamically: 33 bool hasChildren(const QModelIndex &parent = QModelIndex()) const override; 34 35 bool canFetchMore(const QModelIndex &parent) const override; 36 void fetchMore(const QModelIndex &parent) override; 37 38 @endif 39 QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override; 40 41 @if %{Editable} 42 // Editable: 43 bool setData(const QModelIndex &index, const QVariant &value, 44 int role = Qt::EditRole) override; 45 46 Qt::ItemFlags flags(const QModelIndex& index) const override; 47 48 @endif 49 @if %{AddData} 50 // Add data: 51 bool insertRows(int row, int count, const QModelIndex &parent = QModelIndex()) override; 52 53 @endif 54 @if %{RemoveData} 55 // Remove data: 56 bool removeRows(int row, int count, const QModelIndex &parent = QModelIndex()) override; 57 58 @endif 59 private: 60 }; 61 %{JS: Cpp.closeNamespaces('%{Class}')} 62 @if ! '%{Cpp:PragmaOnce}' 63 #endif // %{GUARD} 64 @endif 65