forked from isaevi/PodcastLoader
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathfeedManager.h
42 lines (37 loc) · 1.08 KB
/
feedManager.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#ifndef CONFIGURATION_H
#define CONFIGURATION_H
#include <QObject>
#include <QVector>
#include <QQmlListProperty>
#include "feeddata.h"
//class FeedData;
class FeedManager : public QObject
{
Q_OBJECT
Q_PROPERTY(QQmlListProperty<FeedData> feeds READ feeds NOTIFY feedsChanged)
public:
void load();
void save();
int feedCount() {return _feeds.size();}
FeedManager(QObject* parent = nullptr);
QQmlListProperty<FeedData> feeds();
Q_INVOKABLE
FeedData* feedAt(const int index);
Q_INVOKABLE
FeedData* addFeed(QString feedTitle, QString feedUrl, QString feedDir, QString feedPrefix);
Q_INVOKABLE
void addStubFeed();
Q_INVOKABLE
void resetFeedAt(const int index);
Q_INVOKABLE
void removeAt(const int index);
signals:
void feedsChanged();
private:
static void add(QQmlListProperty<FeedData> *list, FeedData *feed);
static int count(QQmlListProperty<FeedData> *list);
static FeedData* at(QQmlListProperty<FeedData> *list, int index);
QList<FeedData*> _feeds;
FeedDataAggregate* _allFeedsStub;
};
#endif // CONFIGURATION_H