General update
This commit is contained in:
@@ -39,6 +39,8 @@ public:
|
||||
setUri(
|
||||
QString::fromUtf8(KOMPLEX_ENDPOINT_CUBEMAPS_FEATURED)
|
||||
);
|
||||
|
||||
controller()->setWindowSize(20);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -39,6 +39,8 @@ public:
|
||||
setUri(
|
||||
QString::fromUtf8(KOMPLEX_ENDPOINT_IMAGES_FEATURED)
|
||||
);
|
||||
|
||||
controller()->setWindowSize(20);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -39,6 +39,8 @@ public:
|
||||
setUri(
|
||||
QString::fromUtf8(KOMPLEX_ENDPOINT_PACKS_FEATURED)
|
||||
);
|
||||
|
||||
controller()->setWindowSize(20);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -39,6 +39,8 @@ public:
|
||||
setUri(
|
||||
QString::fromUtf8(KOMPLEX_ENDPOINT_SHADERS_FEATURED)
|
||||
);
|
||||
|
||||
controller()->setWindowSize(20);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -39,6 +39,8 @@ public:
|
||||
setUri(
|
||||
QString::fromUtf8(KOMPLEX_ENDPOINT_VIDEOS_FEATURED)
|
||||
);
|
||||
|
||||
controller()->setWindowSize(20);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -62,46 +62,12 @@ public:
|
||||
return m_uri;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief query
|
||||
* Current query string, if the API Endpoint supports queries
|
||||
* @return
|
||||
*/
|
||||
[[nodiscard]]
|
||||
auto query() const -> QString
|
||||
{
|
||||
return m_query;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief setQuery
|
||||
* Sets the new query string and updates the controller
|
||||
* @param query
|
||||
*/
|
||||
auto setQuery(const QString &query) -> void
|
||||
{
|
||||
if(query == m_query)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
m_query = query;
|
||||
Q_EMIT queryChanged();
|
||||
|
||||
reset();
|
||||
}
|
||||
|
||||
signals:
|
||||
/**
|
||||
* @brief uriChanged
|
||||
*/
|
||||
auto uriChanged() -> void;
|
||||
|
||||
/**
|
||||
* @brief queryChanged
|
||||
*/
|
||||
auto queryChanged() -> void;
|
||||
|
||||
protected:
|
||||
/**
|
||||
* @brief fetch
|
||||
@@ -124,6 +90,11 @@ protected:
|
||||
{}
|
||||
);
|
||||
|
||||
if(queryable() && query().isEmpty())
|
||||
{
|
||||
return {};
|
||||
}
|
||||
|
||||
QUrl url(
|
||||
QString::fromUtf8("%1/%2/%3").arg(
|
||||
KOMPLEX_API_HOST,
|
||||
@@ -138,7 +109,7 @@ protected:
|
||||
{
|
||||
{
|
||||
QByteArray("query"),
|
||||
m_query.toUtf8()
|
||||
query().toUtf8()
|
||||
},
|
||||
{
|
||||
QByteArray("offset"),
|
||||
@@ -181,13 +152,28 @@ protected:
|
||||
|
||||
const QVariantMap sources = resultObject.value(QString::fromUtf8("src")).toObject().toVariantMap();
|
||||
QMap<QString, QString> sourceMap;
|
||||
QMap<QString, QString> sizeMap;
|
||||
|
||||
QMapIterator<QString,QVariant> sourceIterator(sources);
|
||||
|
||||
while(sourceIterator.hasNext())
|
||||
{
|
||||
sourceIterator.next();
|
||||
sourceMap.insert(sourceIterator.key(), sourceIterator.value().toString());
|
||||
|
||||
QString url = sourceIterator.value().toString();
|
||||
sourceMap.insert(sourceIterator.key(), url);
|
||||
|
||||
auto matches = s_sizeExpression.match(url);
|
||||
|
||||
if(matches.hasMatch())
|
||||
{
|
||||
QString size = matches.captured();
|
||||
size.remove(QString::fromUtf8("w="));
|
||||
size.remove(QString::fromUtf8("h="));
|
||||
size.replace(QLatin1Char('&'), QLatin1Char('x'));
|
||||
|
||||
sizeMap.insert(sourceIterator.key(), std::move(size));
|
||||
}
|
||||
}
|
||||
|
||||
fetchedResults.append(
|
||||
@@ -202,6 +188,7 @@ protected:
|
||||
resultObject.value(QString::fromUtf8("photographer_url")).toString(),
|
||||
resultObject.value(QString::fromUtf8("photographer_id")).toInteger(),
|
||||
std::move(sourceMap),
|
||||
std::move(sizeMap),
|
||||
resultObject.value(QString::fromUtf8("url")).toString()
|
||||
}
|
||||
);
|
||||
@@ -307,10 +294,13 @@ private:
|
||||
QString m_uri;
|
||||
|
||||
/**
|
||||
* @brief m_query
|
||||
* The query string used in fetch operations
|
||||
* @brief s_sizeExpression
|
||||
* Regular expression used to extract size data from the url
|
||||
*/
|
||||
QString m_query;
|
||||
inline static QRegularExpression s_sizeExpression = QRegularExpression
|
||||
(
|
||||
QString::fromUtf8("[h]\\=\\d{1,}\\&[w]\\=\\d{1,}")
|
||||
);
|
||||
};
|
||||
|
||||
#endif // IMAGEPAGINATOR_H
|
||||
|
||||
@@ -41,6 +41,8 @@ public:
|
||||
setUri(
|
||||
QString::fromUtf8(KOMPLEX_ENDPOINT_IMAGES_SEARCH)
|
||||
);
|
||||
|
||||
setQueryable(true);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -39,6 +39,8 @@ public:
|
||||
setUri(
|
||||
QString::fromUtf8(KOMPLEX_ENDPOINT_PACKS_NEWEST)
|
||||
);
|
||||
|
||||
controller()->setWindowSize(20);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
+7
-5
@@ -16,8 +16,8 @@
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>
|
||||
*/
|
||||
#ifndef SEARCHPACKSPAGINATOR_H
|
||||
#define SEARCHPACKSPAGINATOR_H
|
||||
#ifndef PACKSEARCHPAGINATOR_H
|
||||
#define PACKSEARCHPAGINATOR_H
|
||||
|
||||
#include <QObject>
|
||||
#include <QNetworkAccessManager>
|
||||
@@ -31,15 +31,17 @@
|
||||
|
||||
#include "wallpaperpaginator.h"
|
||||
|
||||
class KOMPLEX_EXPORT SearchPacksPaginator : public WallpaperPaginator
|
||||
class KOMPLEX_EXPORT PackSearchPaginator : public WallpaperPaginator
|
||||
{
|
||||
public:
|
||||
explicit SearchPacksPaginator(QObject *parent = nullptr) : WallpaperPaginator(parent)
|
||||
explicit PackSearchPaginator(QObject *parent = nullptr) : WallpaperPaginator(parent)
|
||||
{
|
||||
setUri(
|
||||
QString::fromUtf8(KOMPLEX_ENDPOINT_PACKS_SEARCH)
|
||||
);
|
||||
|
||||
setQueryable(true);
|
||||
}
|
||||
};
|
||||
|
||||
#endif // SEARCHPACKSPAGINATOR_H
|
||||
#endif // PACKSEARCHPAGINATOR_H
|
||||
@@ -62,47 +62,12 @@ public:
|
||||
return m_uri;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief query
|
||||
* Current query string, if the API Endpoint supports queries
|
||||
* @return
|
||||
*/
|
||||
[[nodiscard]]
|
||||
auto query() const -> QString
|
||||
{
|
||||
return m_query;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief setQuery
|
||||
* Sets the new query string and updates the controller
|
||||
* @param query
|
||||
*/
|
||||
auto setQuery(const QString &query) -> void
|
||||
{
|
||||
if(query == m_query)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
m_query = query;
|
||||
Q_EMIT queryChanged();
|
||||
|
||||
reset();
|
||||
setOffset(0);
|
||||
}
|
||||
|
||||
signals:
|
||||
/**
|
||||
* @brief uriChanged
|
||||
*/
|
||||
auto uriChanged() -> void;
|
||||
|
||||
/**
|
||||
* @brief queryChanged
|
||||
*/
|
||||
auto queryChanged() -> void;
|
||||
|
||||
protected:
|
||||
/**
|
||||
* @brief fetch
|
||||
@@ -125,6 +90,11 @@ protected:
|
||||
{}
|
||||
);
|
||||
|
||||
if(queryable() && query().isEmpty())
|
||||
{
|
||||
return {};
|
||||
}
|
||||
|
||||
QUrl url(
|
||||
QString::fromUtf8("%1/%2/%3").arg(
|
||||
KOMPLEX_API_HOST,
|
||||
@@ -139,7 +109,7 @@ protected:
|
||||
{
|
||||
{
|
||||
QByteArray("query"),
|
||||
m_query.toUtf8()
|
||||
query().toUtf8()
|
||||
},
|
||||
{
|
||||
QByteArray("offset"),
|
||||
@@ -258,7 +228,12 @@ protected:
|
||||
|
||||
QNetworkReply *reply = manager->post(request, nullptr);
|
||||
QObject::connect(reply, &QNetworkReply::finished, &loop, &QEventLoop::quit);
|
||||
QObject::connect(reply, &QNetworkReply::errorOccurred, &loop,
|
||||
|
||||
QObject::connect
|
||||
(
|
||||
reply,
|
||||
&QNetworkReply::errorOccurred,
|
||||
&loop,
|
||||
[&loop](QNetworkReply::NetworkError error) -> void
|
||||
{
|
||||
loop.quit();
|
||||
|
||||
@@ -39,6 +39,8 @@ public:
|
||||
setUri(
|
||||
QString::fromUtf8(KOMPLEX_ENDPOINT_VIDEOS_SEARCH)
|
||||
);
|
||||
|
||||
setQueryable(true);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -98,11 +98,6 @@ signals:
|
||||
*/
|
||||
auto uriChanged() -> void;
|
||||
|
||||
/**
|
||||
* @brief queryChanged
|
||||
*/
|
||||
auto queryChanged() -> void;
|
||||
|
||||
protected:
|
||||
/**
|
||||
* @brief fetch
|
||||
@@ -125,6 +120,11 @@ protected:
|
||||
{}
|
||||
);
|
||||
|
||||
if(queryable() && query().isEmpty())
|
||||
{
|
||||
return {};
|
||||
}
|
||||
|
||||
QUrl url(
|
||||
QString::fromUtf8("%1/%2/%3").arg(
|
||||
KOMPLEX_API_HOST,
|
||||
|
||||
Reference in New Issue
Block a user