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