
Originally Posted by
franz
Try something like
template<typename T>
{
Q_OBJECT
public:
explicit TableModel
(QObject *parent
= 0);
....
private:
typename QList<T *> records;
....
};
template<typename T>
class TableModel : public QAbstractTableModel
{
Q_OBJECT
public:
explicit TableModel(QObject *parent = 0);
....
private:
typename QList<T *> records;
....
};
To copy to clipboard, switch view to plain text mode
I get errors on line 11 in your code:
error: expected nested-name-specifier
error: invalid declarator before 'records'
This is my class (i get the same errors in my class):
template<typename TPL>
{
Q_OBJECT
public:
explicit JSONTableModel
(QObject *parent
= 0);
QVariant headerData
( int section, Qt
::Orientation orientation,
int role
= Qt
::DisplayRole ) const;
Qt
::ItemFlags flags
( const QModelIndex & index
) const;
int getTotalRecordsCount();
int getFetchedRecordsCount();
private:
typename QList<TPL *> records;
QMap<QString, QString> headers;
QMap<QString, QString> params;
QNetworkAccessManager *manager;
int totalRecords;
signals:
void dataLoaded();
void requestStarted();
public slots:
void loadRecords();
void replyFinished(QNetworkReply*);
};
template<typename TPL>
class JSONTableModel : public QAbstractTableModel
{
Q_OBJECT
public:
explicit JSONTableModel(QObject *parent = 0);
int rowCount ( const QModelIndex & parent = QModelIndex() ) const;
int columnCount ( const QModelIndex & parent = QModelIndex() ) const;
QVariant data ( const QModelIndex & index, int role = Qt::DisplayRole ) const;
bool setData ( const QModelIndex & index, const QVariant & value, int role = Qt::EditRole );
QVariant headerData ( int section, Qt::Orientation orientation, int role = Qt::DisplayRole ) const;
Qt::ItemFlags flags ( const QModelIndex & index ) const;
int getTotalRecordsCount();
int getFetchedRecordsCount();
QString getParam(QString);
QString getHeaderKey(int);
void setParam(QString, QString);
private:
typename QList<TPL *> records;
QMap<QString, QString> headers;
QMap<QString, QString> params;
QNetworkAccessManager *manager;
QModelIndex updatingIndex;
QString url;
int totalRecords;
signals:
void dataLoaded();
void requestStarted();
public slots:
void loadRecords();
void replyFinished(QNetworkReply*);
};
To copy to clipboard, switch view to plain text mode
Bookmarks