QGIS API Documentation 3.99.0-Master (09f76ad7019)
Loading...
Searching...
No Matches
qgsnewsfeedmodel.h
Go to the documentation of this file.
1/***************************************************************************
2 qgsnewsfeedmodel.h
3 ------------------
4 begin : July 2019
5 copyright : (C) 2019 by Nyall Dawson
6 email : nyall dot dawson at gmail dot com
7 ***************************************************************************
8 * *
9 * This program is free software; you can redistribute it and/or modify *
10 * it under the terms of the GNU General Public License as published by *
11 * the Free Software Foundation; either version 2 of the License, or *
12 * (at your option) any later version. *
13 * *
14 ***************************************************************************/
15#ifndef QGSNEWSFEEDMODEL_H
16#define QGSNEWSFEEDMODEL_H
17
18#include "qgis_core.h"
19#include "qgis_sip.h"
20#include "qgsnewsfeedparser.h"
21
22#include <QAbstractItemModel>
23#include <QSortFilterProxyModel>
24
34class CORE_EXPORT QgsNewsFeedModel : public QAbstractItemModel
35{
36 Q_OBJECT
37 public:
38
39 // *INDENT-OFF*
40
48 {
49 Key = Qt::UserRole + 1,
50 Title,
51 Content,
52 ImageUrl,
53 Image,
54 Link,
55 Sticky,
56 };
57 Q_ENUM( CustomRole )
58 // *INDENT-ON*
59
60
66 QgsNewsFeedModel( QgsNewsFeedParser *parser, QObject *parent SIP_TRANSFERTHIS = nullptr );
67
68 QVariant data( const QModelIndex &index, int role ) const override;
69 Qt::ItemFlags flags( const QModelIndex &index ) const override;
70 QModelIndex index( int row, int column, const QModelIndex &parent = QModelIndex() ) const override;
71 QModelIndex parent( const QModelIndex &index ) const override;
72 int rowCount( const QModelIndex &parent = QModelIndex() ) const override;
73 int columnCount( const QModelIndex &parent = QModelIndex() ) const override;
74 QHash<int, QByteArray> roleNames() const override;
75
76 private slots:
77
78 void onEntryAdded( const QgsNewsFeedParser::Entry &entry );
79 void onEntryRemoved( const QgsNewsFeedParser::Entry &entry );
80 void onEntryUpdated( const QgsNewsFeedParser::Entry &entry );
81 void onImageFetched( int key, const QPixmap &pixmap );
82
83 private:
84
85 QgsNewsFeedParser *mParser = nullptr;
86 QList< QgsNewsFeedParser::Entry > mEntries;
87};
88
97class CORE_EXPORT QgsNewsFeedProxyModel : public QSortFilterProxyModel
98{
99 Q_OBJECT
100 public:
101
108 explicit QgsNewsFeedProxyModel( QgsNewsFeedParser *parser, QObject *parent SIP_TRANSFERTHIS = nullptr );
109
110 protected:
111 bool lessThan( const QModelIndex &left, const QModelIndex &right ) const override;
112
113 private:
114
115 QgsNewsFeedModel *mModel = nullptr;
116
117};
118
119#endif // QGSNEWSFEEDMODEL_H
A model for published QGIS news feeds.
CustomRole
Custom model roles.
QgsNewsFeedModel(QgsNewsFeedParser *parser, QObject *parent=nullptr)
Constructor for QgsNewsFeedModel, with the specified parent object.
Represents a single entry from a news feed.
Parser for published QGIS news feeds.
bool lessThan(const QModelIndex &left, const QModelIndex &right) const override
QgsNewsFeedProxyModel(QgsNewsFeedParser *parser, QObject *parent=nullptr)
Constructor for QgsNewsFeedProxyModel, with the specified parent object.
#define SIP_TRANSFERTHIS
Definition qgis_sip.h:53
#define SIP_MONKEYPATCH_SCOPEENUM_UNNEST(OUTSIDE_CLASS, FORMERNAME)
Definition qgis_sip.h:268