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