Move ApiType to the Danbooru namespace to prevent circular includes
Adjust all signatures to match for this change
This commit is contained in:
parent
e806ab602f
commit
d3da86ff28
5 changed files with 98 additions and 36 deletions
|
@ -22,6 +22,8 @@
|
|||
|
||||
#include "libdanbooru_version.h"
|
||||
|
||||
#include <QObject>
|
||||
|
||||
/**
|
||||
* @brief The Danbooru namespace.
|
||||
* @file danbooru.h
|
||||
|
@ -30,6 +32,15 @@
|
|||
namespace Danbooru
|
||||
{
|
||||
|
||||
enum ApiType {
|
||||
OriginalDanbooru = 16,
|
||||
KonachanDanbooru = 32,
|
||||
Gelbooru = 64,
|
||||
Unknown = 128
|
||||
};
|
||||
|
||||
} // namespace Danbooru
|
||||
Q_ENUMS(ApiType)
|
||||
Q_DECLARE_METATYPE(Danbooru::ApiType)
|
||||
|
||||
#endif // DANBOORU_H
|
||||
|
|
|
@ -35,6 +35,23 @@ namespace Danbooru
|
|||
|
||||
const QMap<QString, DanbooruPost::Rating> DanbooruPost::RATING_MAP = initRatingMap();
|
||||
|
||||
void DanbooruPost::parseDanbooruKonachan(const QVariantMap &postData) {
|
||||
|
||||
m_tags = QSet<QString>::fromList(postData.value("tags").toString().split(' '));
|
||||
m_id = postData.value("id").toString().toInt();
|
||||
m_height = postData.value("height").toString().toInt();
|
||||
m_width = postData.value("width").toString().toInt();
|
||||
|
||||
m_url = postData.value("file_url").toUrl();
|
||||
m_thumbnailUrl = postData.value("preview_url").toUrl();
|
||||
m_size = postData.value("file_size").toInt();
|
||||
m_rating = RATING_MAP.value(postData.value("rating").toString());
|
||||
m_sampleUrl = postData.value("sample_url").toUrl();
|
||||
}
|
||||
|
||||
void DanbooruPost::parseDanbooruDonmai(const QVariantMap &postData) {
|
||||
}
|
||||
|
||||
DanbooruPost::DanbooruPost(QObject *parent): QObject(parent)
|
||||
{
|
||||
m_pixmap = QPixmap();
|
||||
|
@ -47,25 +64,46 @@ DanbooruPost::DanbooruPost(QObject *parent): QObject(parent)
|
|||
m_rating = Questionable;
|
||||
}
|
||||
|
||||
DanbooruPost::DanbooruPost(QVariantMap postData, QPixmap pixmap,
|
||||
DanbooruPost::DanbooruPost(QVariantMap postData,Danbooru::ApiType apiType, QPixmap pixmap,
|
||||
QObject *parent):
|
||||
QObject(parent),
|
||||
m_pixmap(pixmap)
|
||||
{
|
||||
|
||||
m_tags = QSet<QString>::fromList(postData.value("tags").toString().split(' '));
|
||||
m_id = postData.value("id").toString().toInt();
|
||||
m_height = postData.value("height").toString().toInt();
|
||||
m_width = postData.value("width").toString().toInt();
|
||||
switch(apiType) {
|
||||
case ApiType::KonachanDanbooru:
|
||||
parseDanbooruKonachan(postData);
|
||||
break;
|
||||
case ApiType::OriginalDanbooru:
|
||||
parseDanbooruDonmai(postData);
|
||||
break;
|
||||
default:
|
||||
parseDanbooruKonachan(postData);
|
||||
break;
|
||||
}
|
||||
|
||||
m_url = postData.value("file_url").toUrl();
|
||||
m_thumbnailUrl = postData.value("preview_url").toUrl();
|
||||
m_size = postData.value("file_size").toInt();
|
||||
m_rating = RATING_MAP.value(postData.value("rating").toString());
|
||||
m_sampleUrl = postData.value("sample_url").toUrl();
|
||||
|
||||
}
|
||||
|
||||
// DanbooruPost::DanbooruPost(QVariantMap postData, QPixmap pixmap,
|
||||
// QObject *parent):
|
||||
// QObject(parent),
|
||||
// m_pixmap(pixmap)
|
||||
// {
|
||||
//
|
||||
// m_tags = QSet<QString>::fromList(postData.value("tags").toString().split(' '));
|
||||
// m_id = postData.value("id").toString().toInt();
|
||||
// m_height = postData.value("height").toString().toInt();
|
||||
// m_width = postData.value("width").toString().toInt();
|
||||
//
|
||||
// m_url = postData.value("file_url").toUrl();
|
||||
// m_thumbnailUrl = postData.value("preview_url").toUrl();
|
||||
// m_size = postData.value("file_size").toInt();
|
||||
// m_rating = RATING_MAP.value(postData.value("rating").toString());
|
||||
// m_sampleUrl = postData.value("sample_url").toUrl();
|
||||
//
|
||||
// }
|
||||
|
||||
DanbooruPost::DanbooruPost(QXmlStreamAttributes &postData, QPixmap pixmap, QObject *parent):
|
||||
QObject(parent),
|
||||
m_pixmap(pixmap)
|
||||
|
|
|
@ -41,6 +41,7 @@
|
|||
|
||||
#include "danbooru.h"
|
||||
|
||||
|
||||
namespace Danbooru
|
||||
{
|
||||
|
||||
|
@ -112,6 +113,10 @@ private:
|
|||
|
||||
static const QMap< QString, Rating > initRatingMap();
|
||||
|
||||
void parseDanbooruKonachan(const QVariantMap &postData);
|
||||
void parseDanbooruDonmai(const QVariantMap &postData);
|
||||
void parseGelbooru(QXmlStreamAttributes &postData);
|
||||
|
||||
public:
|
||||
|
||||
/**
|
||||
|
@ -127,9 +132,9 @@ public:
|
|||
* @param parent A pointer to the parent QObject.
|
||||
*
|
||||
**/
|
||||
|
||||
/*
|
||||
explicit DanbooruPost(QVariantMap postData, QPixmap pixmap = QPixmap(),
|
||||
QObject *parent = 0);
|
||||
QObject *parent = 0);*/
|
||||
|
||||
explicit DanbooruPost(QObject *parent = 0);
|
||||
|
||||
|
@ -150,6 +155,10 @@ public:
|
|||
explicit DanbooruPost(QXmlStreamAttributes &postData,
|
||||
QPixmap pixmap = QPixmap(), QObject *parent = 0);
|
||||
|
||||
explicit DanbooruPost(QVariantMap postData, Danbooru::ApiType apiType=ApiType::KonachanDanbooru,
|
||||
QPixmap pixmap = QPixmap(),
|
||||
QObject *parent=0);
|
||||
|
||||
bool operator==(const DanbooruPost &);
|
||||
|
||||
~DanbooruPost();
|
||||
|
|
|
@ -66,14 +66,16 @@ const QLatin1String KonachanDanbooruService::relatedTagUri() const {
|
|||
// Other methods
|
||||
////////////////
|
||||
|
||||
SupportedOperations KonachanDanbooruService::supportedOperations() const {
|
||||
DanbooruServiceBase::SupportedOperations KonachanDanbooruService::supportedOperations() const {
|
||||
|
||||
return PostDownload | PoolDownload | TagDownload | TagSearch | RelatedTagSearch;
|
||||
return SupportedOperations(DanbooruServiceBase::PostDownload | DanbooruServiceBase::PoolDownload |
|
||||
DanbooruServiceBase::TagDownload | DanbooruServiceBase::TagSearch |
|
||||
DanbooruServiceBase::RelatedTagSearch);
|
||||
|
||||
}
|
||||
|
||||
ApiType KonachanDanbooruService::apiType() const {
|
||||
return KonachanDanbooru;
|
||||
Danbooru::ApiType KonachanDanbooruService::apiType() const {
|
||||
return Danbooru::ApiType::KonachanDanbooru;
|
||||
}
|
||||
|
||||
KonachanDanbooruService::~KonachanDanbooruService() {
|
||||
|
|
|
@ -42,23 +42,6 @@
|
|||
namespace Danbooru
|
||||
{
|
||||
|
||||
enum ApiType {
|
||||
OriginalDanbooru = 7000,
|
||||
KonachanDanbooru = 7001,
|
||||
Gelbooru = 7002,
|
||||
Unknown = 7003
|
||||
};
|
||||
|
||||
enum SupportedOperation {
|
||||
PostDownload = 6000,
|
||||
TagDownload = 6001,
|
||||
TagSearch = 6002,
|
||||
PoolDownload = 6003,
|
||||
RelatedTagSearch = 6004
|
||||
};
|
||||
|
||||
Q_DECLARE_FLAGS(SupportedOperations, SupportedOperation)
|
||||
|
||||
class DanbooruServiceBase: public QObject
|
||||
{
|
||||
|
||||
|
@ -94,6 +77,26 @@ protected:
|
|||
|
||||
public:
|
||||
|
||||
enum SupportedOperation {
|
||||
PostDownload = 256,
|
||||
TagDownload = 512,
|
||||
TagSearch = 1024,
|
||||
PoolDownload = 2048,
|
||||
RelatedTagSearch = 4096
|
||||
};
|
||||
|
||||
enum ApiType {
|
||||
OriginalDanbooru = 16,
|
||||
KonachanDanbooru = 32,
|
||||
Gelbooru = 64,
|
||||
Unknown = 128
|
||||
};
|
||||
|
||||
Q_DECLARE_FLAGS(ApiTypes, DanbooruServiceBase::ApiType)
|
||||
|
||||
|
||||
Q_DECLARE_FLAGS(SupportedOperations, DanbooruServiceBase::SupportedOperation)
|
||||
|
||||
explicit DanbooruServiceBase(QUrl boardUrl = QUrl(), QString username = QString(),
|
||||
QString password = QString(), KImageCache *cache = 0,
|
||||
QObject *parent = 0);
|
||||
|
@ -378,9 +381,8 @@ Q_SIGNALS:
|
|||
|
||||
};
|
||||
|
||||
Q_DECLARE_OPERATORS_FOR_FLAGS(Danbooru::SupportedOperations)
|
||||
|
||||
|
||||
}
|
||||
|
||||
Q_DECLARE_OPERATORS_FOR_FLAGS(Danbooru::DanbooruServiceBase::SupportedOperations)
|
||||
|
||||
#endif
|
Loading…
Add table
Add a link
Reference in a new issue