rssguard/src/librssguard/services/tt-rss/ttrssserviceroot.h
2021-05-07 07:19:37 +02:00

81 lines
2.6 KiB
C++

// For license of this file, see <project-root-folder>/LICENSE.md.
#ifndef TTRSSSERVICEROOT_H
#define TTRSSSERVICEROOT_H
#include "services/abstract/cacheforserviceroot.h"
#include "services/abstract/serviceroot.h"
#include <QCoreApplication>
class TtRssCategory;
class TtRssFeed;
class TtRssNetworkFactory;
class TtRssServiceRoot : public ServiceRoot, public CacheForServiceRoot {
Q_OBJECT
Q_PROPERTY(QString username READ username WRITE setUsername)
Q_PROPERTY(QString password READ password WRITE setPassword)
Q_PROPERTY(bool auth_protected READ authProtected WRITE setAuthProtected)
Q_PROPERTY(QString auth_username READ authUsername WRITE setAuthUsername)
Q_PROPERTY(QString auth_password READ authPassword WRITE setAuthPassword)
Q_PROPERTY(QString url READ url WRITE setUrl)
Q_PROPERTY(bool force_update READ forceUpdate WRITE setForceUpdate)
Q_PROPERTY(bool download_only_unread READ downloadOnlyUnread WRITE setDownloadOnlyUnread)
public:
explicit TtRssServiceRoot(RootItem* parent = nullptr);
virtual ~TtRssServiceRoot();
virtual LabelOperation supportedLabelOperations() const;
virtual void start(bool freshly_activated);
virtual void stop();
virtual QString code() const;
virtual bool isSyncable() const;
virtual bool canBeEdited() const;
virtual bool editViaGui();
virtual bool supportsFeedAdding() const;
virtual bool supportsCategoryAdding() const;
virtual void addNewFeed(RootItem* selected_item, const QString& url = QString());
virtual QString additionalTooltip() const;
virtual void saveAllCachedData(bool ignore_errors);
virtual QList<CustomDatabaseEntry> customDatabaseAttributes() const;
// Access to network.
TtRssNetworkFactory* network() const;
void updateTitle();
// Support for dynamic DB attributes.
QString username() const;
void setUsername(const QString& username);
QString password() const;
void setPassword(const QString& password);
bool authProtected() const;
void setAuthProtected(bool auth_protected);
QString authUsername() const;
void setAuthUsername(const QString& auth_username);
QString authPassword() const;
void setAuthPassword(const QString& auth_password);
QString url() const;
void setUrl(const QString& url);
bool forceUpdate() const;
void setForceUpdate(bool force_update);
bool downloadOnlyUnread() const;
void setDownloadOnlyUnread(bool download_only_unread);
protected:
virtual RootItem* obtainNewTreeForSyncIn() const;
private:
TtRssNetworkFactory* m_network;
};
#endif // TTRSSSERVICEROOT_H