Support for minimum height and width in libdanbooru
This will allow to filter posts with less than required minimum height and width. Currently this is done client-side, I don't plan on doing checks on the API until/if the multiple API branch is merged.
This commit is contained in:
parent
e98d99a5e1
commit
76330d4416
2 changed files with 45 additions and 0 deletions
|
@ -329,6 +329,16 @@ int DanbooruService::maxPosts() const
|
|||
return m_maxPosts;
|
||||
}
|
||||
|
||||
int DanbooruService::minimumWidth() const
|
||||
{
|
||||
return m_minimumWidth > 0 ? m_minimumWidth: -1;
|
||||
}
|
||||
|
||||
int DanbooruService::minimumHeight() const
|
||||
{
|
||||
return m_minimumHeight > 0 ? m_minimumHeight: -1;
|
||||
}
|
||||
|
||||
void DanbooruService::nextPostPage()
|
||||
{
|
||||
m_currentPage++;
|
||||
|
@ -449,6 +459,18 @@ void DanbooruService::processPostList(KJob *job)
|
|||
continue;
|
||||
}
|
||||
|
||||
if (post->width() < minimumWidth()) {
|
||||
m_postsToFetch--;
|
||||
delete post;
|
||||
continue;
|
||||
}
|
||||
|
||||
if (post->height() < minimumHeight()) {
|
||||
m_postsToFetch--;
|
||||
delete post;
|
||||
continue;
|
||||
}
|
||||
|
||||
QPixmap pix;
|
||||
|
||||
// qCDebug(LIBDANBOORU) << "About to donwload images";
|
||||
|
@ -618,4 +640,16 @@ void DanbooruService::setCurrentPage(int page)
|
|||
m_currentPage = page;
|
||||
}
|
||||
|
||||
void Danbooru::DanbooruService::setResolution(unsigned int width, unsigned int height)
|
||||
{
|
||||
if (width > 0) {
|
||||
m_minimumWidth = width;
|
||||
}
|
||||
|
||||
if (height > 0) {
|
||||
m_minimumHeight = height;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
} // namespace Danbooru
|
||||
|
|
|
@ -93,6 +93,8 @@ private:
|
|||
DanbooruPost::Ratings m_maxRating;
|
||||
int m_maxPosts;
|
||||
int m_currentPage;
|
||||
unsigned int m_minimumHeight = 0;
|
||||
unsigned int m_minimumWidth = 0;
|
||||
QStringList m_tags;
|
||||
|
||||
unsigned int m_postsToFetch; // To tell when to quit
|
||||
|
@ -207,6 +209,10 @@ public:
|
|||
**/
|
||||
QStringList postTags() const;
|
||||
|
||||
int minimumWidth() const;
|
||||
|
||||
int minimumHeight() const;
|
||||
|
||||
/**
|
||||
* @brief Resets the service to the default state, clearing the page counters.
|
||||
**/
|
||||
|
@ -282,6 +288,11 @@ public:
|
|||
|
||||
void setPostTags(const QStringList &tags);
|
||||
|
||||
void setResolution(unsigned int width = 0, unsigned int height = 0);
|
||||
|
||||
void setMinimumWidth(unsigned int width) { m_minimumWidth = width; };
|
||||
void setMinimumHeight(unsigned int height) { m_minimumHeight = height; };
|
||||
|
||||
private Q_SLOTS:
|
||||
void processPostList(KJob *job);
|
||||
void processTagList(KJob *job);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue