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 "libdanbooru_version.h"
|
||||||
|
|
||||||
|
#include <QObject>
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief The Danbooru namespace.
|
* @brief The Danbooru namespace.
|
||||||
* @file danbooru.h
|
* @file danbooru.h
|
||||||
|
@ -30,6 +32,15 @@
|
||||||
namespace Danbooru
|
namespace Danbooru
|
||||||
{
|
{
|
||||||
|
|
||||||
|
enum ApiType {
|
||||||
|
OriginalDanbooru = 16,
|
||||||
|
KonachanDanbooru = 32,
|
||||||
|
Gelbooru = 64,
|
||||||
|
Unknown = 128
|
||||||
|
};
|
||||||
|
|
||||||
} // namespace Danbooru
|
} // namespace Danbooru
|
||||||
|
Q_ENUMS(ApiType)
|
||||||
|
Q_DECLARE_METATYPE(Danbooru::ApiType)
|
||||||
|
|
||||||
#endif // DANBOORU_H
|
#endif // DANBOORU_H
|
||||||
|
|
|
@ -35,6 +35,23 @@ namespace Danbooru
|
||||||
|
|
||||||
const QMap<QString, DanbooruPost::Rating> DanbooruPost::RATING_MAP = initRatingMap();
|
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)
|
DanbooruPost::DanbooruPost(QObject *parent): QObject(parent)
|
||||||
{
|
{
|
||||||
m_pixmap = QPixmap();
|
m_pixmap = QPixmap();
|
||||||
|
@ -47,25 +64,46 @@ DanbooruPost::DanbooruPost(QObject *parent): QObject(parent)
|
||||||
m_rating = Questionable;
|
m_rating = Questionable;
|
||||||
}
|
}
|
||||||
|
|
||||||
DanbooruPost::DanbooruPost(QVariantMap postData, QPixmap pixmap,
|
DanbooruPost::DanbooruPost(QVariantMap postData,Danbooru::ApiType apiType, QPixmap pixmap,
|
||||||
QObject *parent):
|
QObject *parent):
|
||||||
QObject(parent),
|
QObject(parent),
|
||||||
m_pixmap(pixmap)
|
m_pixmap(pixmap)
|
||||||
{
|
{
|
||||||
|
|
||||||
m_tags = QSet<QString>::fromList(postData.value("tags").toString().split(' '));
|
switch(apiType) {
|
||||||
m_id = postData.value("id").toString().toInt();
|
case ApiType::KonachanDanbooru:
|
||||||
m_height = postData.value("height").toString().toInt();
|
parseDanbooruKonachan(postData);
|
||||||
m_width = postData.value("width").toString().toInt();
|
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):
|
DanbooruPost::DanbooruPost(QXmlStreamAttributes &postData, QPixmap pixmap, QObject *parent):
|
||||||
QObject(parent),
|
QObject(parent),
|
||||||
m_pixmap(pixmap)
|
m_pixmap(pixmap)
|
||||||
|
|
|
@ -41,6 +41,7 @@
|
||||||
|
|
||||||
#include "danbooru.h"
|
#include "danbooru.h"
|
||||||
|
|
||||||
|
|
||||||
namespace Danbooru
|
namespace Danbooru
|
||||||
{
|
{
|
||||||
|
|
||||||
|
@ -112,6 +113,10 @@ private:
|
||||||
|
|
||||||
static const QMap< QString, Rating > initRatingMap();
|
static const QMap< QString, Rating > initRatingMap();
|
||||||
|
|
||||||
|
void parseDanbooruKonachan(const QVariantMap &postData);
|
||||||
|
void parseDanbooruDonmai(const QVariantMap &postData);
|
||||||
|
void parseGelbooru(QXmlStreamAttributes &postData);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -127,9 +132,9 @@ public:
|
||||||
* @param parent A pointer to the parent QObject.
|
* @param parent A pointer to the parent QObject.
|
||||||
*
|
*
|
||||||
**/
|
**/
|
||||||
|
/*
|
||||||
explicit DanbooruPost(QVariantMap postData, QPixmap pixmap = QPixmap(),
|
explicit DanbooruPost(QVariantMap postData, QPixmap pixmap = QPixmap(),
|
||||||
QObject *parent = 0);
|
QObject *parent = 0);*/
|
||||||
|
|
||||||
explicit DanbooruPost(QObject *parent = 0);
|
explicit DanbooruPost(QObject *parent = 0);
|
||||||
|
|
||||||
|
@ -150,6 +155,10 @@ public:
|
||||||
explicit DanbooruPost(QXmlStreamAttributes &postData,
|
explicit DanbooruPost(QXmlStreamAttributes &postData,
|
||||||
QPixmap pixmap = QPixmap(), QObject *parent = 0);
|
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 &);
|
bool operator==(const DanbooruPost &);
|
||||||
|
|
||||||
~DanbooruPost();
|
~DanbooruPost();
|
||||||
|
|
|
@ -66,14 +66,16 @@ const QLatin1String KonachanDanbooruService::relatedTagUri() const {
|
||||||
// Other methods
|
// 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 {
|
Danbooru::ApiType KonachanDanbooruService::apiType() const {
|
||||||
return KonachanDanbooru;
|
return Danbooru::ApiType::KonachanDanbooru;
|
||||||
}
|
}
|
||||||
|
|
||||||
KonachanDanbooruService::~KonachanDanbooruService() {
|
KonachanDanbooruService::~KonachanDanbooruService() {
|
||||||
|
|
|
@ -42,23 +42,6 @@
|
||||||
namespace Danbooru
|
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
|
class DanbooruServiceBase: public QObject
|
||||||
{
|
{
|
||||||
|
|
||||||
|
@ -94,6 +77,26 @@ protected:
|
||||||
|
|
||||||
public:
|
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(),
|
explicit DanbooruServiceBase(QUrl boardUrl = QUrl(), QString username = QString(),
|
||||||
QString password = QString(), KImageCache *cache = 0,
|
QString password = QString(), KImageCache *cache = 0,
|
||||||
QObject *parent = 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
|
#endif
|
Loading…
Add table
Add a link
Reference in a new issue