mirror of
https://github.com/zhuzichu520/FluentUI.git
synced 2025-07-06 18:55:58 +08:00
update
This commit is contained in:
195
src/FluHttp.cpp
195
src/FluHttp.cpp
@ -14,6 +14,11 @@
|
||||
#include "FluApp.h"
|
||||
#include "FluTools.h"
|
||||
|
||||
HttpCallable::HttpCallable(QObject *parent)
|
||||
: QObject{parent}
|
||||
{
|
||||
}
|
||||
|
||||
FluHttp::FluHttp(QObject *parent)
|
||||
: QObject{parent}
|
||||
{
|
||||
@ -39,18 +44,18 @@ void FluHttp::handleReply(QNetworkReply* reply){
|
||||
_cacheReply.append(reply);
|
||||
}
|
||||
|
||||
void FluHttp::post(QString url,QJSValue callable,QMap<QString, QVariant> params,QMap<QString, QVariant> headers){
|
||||
auto requestMap = toRequest(url,params,headers,"post");
|
||||
QMap<QString, QVariant> data = invokeIntercept(requestMap).toMap();
|
||||
void FluHttp::post(QString url,HttpCallable* callable,QMap<QString, QVariant> params,QMap<QString, QVariant> headers){
|
||||
QThreadPool::globalInstance()->start([=](){
|
||||
onStart(callable);
|
||||
auto requestMap = toRequest(url,params,headers,"post");
|
||||
QMap<QString, QVariant> data = invokeIntercept(requestMap).toMap();
|
||||
Q_EMIT callable->start();
|
||||
if(_cacheMode == FluHttpType::CacheMode::IfNoneCacheRequest && cacheExists(requestMap)){
|
||||
onCache(callable,readCache(requestMap));
|
||||
onFinish(callable);
|
||||
Q_EMIT callable->cache(readCache(requestMap));
|
||||
Q_EMIT callable->finish();
|
||||
return;
|
||||
}
|
||||
if(_cacheMode == FluHttpType::CacheMode::FirstCacheThenRequest){
|
||||
onCache(callable,readCache(requestMap));
|
||||
Q_EMIT callable->cache(readCache(requestMap));
|
||||
}
|
||||
for (int i = 0; i < retry(); ++i) {
|
||||
QNetworkAccessManager manager;
|
||||
@ -85,33 +90,34 @@ void FluHttp::post(QString url,QJSValue callable,QMap<QString, QVariant> params,
|
||||
reply = nullptr;
|
||||
if (isSuccess) {
|
||||
handleCache(requestMap,result);
|
||||
onSuccess(callable,result);
|
||||
Q_EMIT callable->success(result);
|
||||
break;
|
||||
}else{
|
||||
if(i == retry()-1){
|
||||
if(_cacheMode == FluHttpType::CacheMode::RequestFailedReadCache){
|
||||
onCache(callable,readCache(requestMap));
|
||||
Q_EMIT callable->cache(readCache(requestMap));
|
||||
}
|
||||
onError(callable,status,errorString,result);
|
||||
Q_EMIT callable->error(status,errorString,result);
|
||||
}
|
||||
}
|
||||
}
|
||||
onFinish(callable);
|
||||
Q_EMIT callable->finish();
|
||||
// Q_EMIT callable->finish();
|
||||
});
|
||||
}
|
||||
|
||||
void FluHttp::postString(QString url,QJSValue callable,QString params,QMap<QString, QVariant> headers){
|
||||
auto requestMap = toRequest(url,params,headers,"postString");
|
||||
QMap<QString, QVariant> data = invokeIntercept(requestMap).toMap();
|
||||
void FluHttp::postString(QString url,HttpCallable* callable,QString params,QMap<QString, QVariant> headers){
|
||||
QThreadPool::globalInstance()->start([=](){
|
||||
onStart(callable);
|
||||
auto requestMap = toRequest(url,params,headers,"postString");
|
||||
QMap<QString, QVariant> data = invokeIntercept(requestMap).toMap();
|
||||
Q_EMIT callable->start();
|
||||
if(_cacheMode == FluHttpType::CacheMode::IfNoneCacheRequest && cacheExists(requestMap)){
|
||||
onCache(callable,readCache(requestMap));
|
||||
onFinish(callable);
|
||||
Q_EMIT callable->cache(readCache(requestMap));
|
||||
Q_EMIT callable->finish();
|
||||
return;
|
||||
}
|
||||
if(_cacheMode == FluHttpType::CacheMode::FirstCacheThenRequest){
|
||||
onCache(callable,readCache(requestMap));
|
||||
Q_EMIT callable->cache(readCache(requestMap));
|
||||
}
|
||||
for (int i = 0; i < retry(); ++i) {
|
||||
QNetworkAccessManager manager;
|
||||
@ -137,33 +143,33 @@ void FluHttp::postString(QString url,QJSValue callable,QString params,QMap<QStri
|
||||
reply = nullptr;
|
||||
if (isSuccess) {
|
||||
handleCache(requestMap,result);
|
||||
onSuccess(callable,result);
|
||||
Q_EMIT callable->success(result);
|
||||
break;
|
||||
}else{
|
||||
if(i == retry()-1){
|
||||
if(_cacheMode == FluHttpType::CacheMode::RequestFailedReadCache){
|
||||
onCache(callable,readCache(requestMap));
|
||||
Q_EMIT callable->cache(readCache(requestMap));
|
||||
}
|
||||
onError(callable,status,errorString,result);
|
||||
Q_EMIT callable->error(status,errorString,result);
|
||||
}
|
||||
}
|
||||
}
|
||||
onFinish(callable);
|
||||
Q_EMIT callable->finish();
|
||||
});
|
||||
}
|
||||
|
||||
void FluHttp::postJson(QString url,QJSValue callable,QMap<QString, QVariant> params,QMap<QString, QVariant> headers){
|
||||
auto requestMap = toRequest(url,params,headers,"postJson");
|
||||
QMap<QString, QVariant> data = invokeIntercept(requestMap).toMap();
|
||||
void FluHttp::postJson(QString url,HttpCallable* callable,QMap<QString, QVariant> params,QMap<QString, QVariant> headers){
|
||||
QThreadPool::globalInstance()->start([=](){
|
||||
onStart(callable);
|
||||
auto requestMap = toRequest(url,params,headers,"postJson");
|
||||
QMap<QString, QVariant> data = invokeIntercept(requestMap).toMap();
|
||||
Q_EMIT callable->start();
|
||||
if(_cacheMode == FluHttpType::CacheMode::IfNoneCacheRequest && cacheExists(requestMap)){
|
||||
onCache(callable,readCache(requestMap));
|
||||
onFinish(callable);
|
||||
Q_EMIT callable->cache(readCache(requestMap));
|
||||
Q_EMIT callable->finish();
|
||||
return;
|
||||
}
|
||||
if(_cacheMode == FluHttpType::CacheMode::FirstCacheThenRequest){
|
||||
onCache(callable,readCache(requestMap));
|
||||
Q_EMIT callable->cache(readCache(requestMap));
|
||||
}
|
||||
for (int i = 0; i < retry(); ++i) {
|
||||
QNetworkAccessManager manager;
|
||||
@ -189,32 +195,32 @@ void FluHttp::postJson(QString url,QJSValue callable,QMap<QString, QVariant> par
|
||||
reply = nullptr;
|
||||
if (isSuccess) {
|
||||
handleCache(requestMap,result);
|
||||
onSuccess(callable,result);
|
||||
Q_EMIT callable->success(result);
|
||||
break;
|
||||
}else{
|
||||
if(i == retry()-1){
|
||||
if(_cacheMode == FluHttpType::CacheMode::RequestFailedReadCache){
|
||||
onCache(callable,readCache(requestMap));
|
||||
Q_EMIT callable->cache(readCache(requestMap));
|
||||
}
|
||||
onError(callable,status,errorString,result);
|
||||
Q_EMIT callable->error(status,errorString,result);
|
||||
}
|
||||
}
|
||||
}
|
||||
onFinish(callable);
|
||||
Q_EMIT callable->finish();
|
||||
});
|
||||
}
|
||||
|
||||
void FluHttp::get(QString url,QJSValue callable,QMap<QString, QVariant> params,QMap<QString, QVariant> headers){
|
||||
auto requestMap = toRequest(url,params,headers,"get");
|
||||
QMap<QString, QVariant> data = invokeIntercept(requestMap).toMap();
|
||||
QThreadPool::globalInstance()->start([=](){
|
||||
onStart(callable);
|
||||
void FluHttp::get(QString url,HttpCallable* callable,QMap<QString, QVariant> params,QMap<QString, QVariant> headers){
|
||||
QThreadPool::globalInstance()->start([=](){
|
||||
auto requestMap = toRequest(url,params,headers,"get");
|
||||
QMap<QString, QVariant> data = invokeIntercept(requestMap).toMap();
|
||||
Q_EMIT callable->start();
|
||||
if(_cacheMode == FluHttpType::CacheMode::FirstCacheThenRequest){
|
||||
onCache(callable,readCache(requestMap));
|
||||
Q_EMIT callable->cache(readCache(requestMap));
|
||||
}
|
||||
if(_cacheMode == FluHttpType::CacheMode::IfNoneCacheRequest && cacheExists(requestMap)){
|
||||
onCache(callable,readCache(requestMap));
|
||||
onFinish(callable);
|
||||
Q_EMIT callable->cache(readCache(requestMap));
|
||||
Q_EMIT callable->finish();
|
||||
return;
|
||||
}
|
||||
for (int i = 0; i < retry(); ++i) {
|
||||
@ -240,26 +246,26 @@ void FluHttp::get(QString url,QJSValue callable,QMap<QString, QVariant> params,Q
|
||||
reply = nullptr;
|
||||
if (isSuccess) {
|
||||
handleCache(requestMap,result);
|
||||
onSuccess(callable,result);
|
||||
Q_EMIT callable->success(result);
|
||||
break;
|
||||
}else{
|
||||
if(i == retry()-1){
|
||||
if(_cacheMode == FluHttpType::CacheMode::RequestFailedReadCache){
|
||||
onCache(callable,readCache(requestMap));
|
||||
Q_EMIT callable->cache(readCache(requestMap));
|
||||
}
|
||||
onError(callable,status,errorString,result);
|
||||
Q_EMIT callable->error(status,errorString,result);
|
||||
}
|
||||
}
|
||||
}
|
||||
onFinish(callable);
|
||||
Q_EMIT callable->finish();
|
||||
});
|
||||
}
|
||||
|
||||
void FluHttp::download(QString url,QJSValue callable,QString filePath,QMap<QString, QVariant> params,QMap<QString, QVariant> headers){
|
||||
auto requestMap = toRequest(url,params,headers,"download");
|
||||
QMap<QString, QVariant> data = invokeIntercept(requestMap).toMap();
|
||||
void FluHttp::download(QString url,HttpCallable* callable,QString filePath,QMap<QString, QVariant> params,QMap<QString, QVariant> headers){
|
||||
QThreadPool::globalInstance()->start([=](){
|
||||
onStart(callable);
|
||||
auto requestMap = toRequest(url,params,headers,"download");
|
||||
QMap<QString, QVariant> data = invokeIntercept(requestMap).toMap();
|
||||
Q_EMIT callable->start();
|
||||
QNetworkAccessManager manager;
|
||||
QUrl _url(url);
|
||||
addQueryParam(&_url,data["params"].toMap());
|
||||
@ -269,8 +275,8 @@ void FluHttp::download(QString url,QJSValue callable,QString filePath,QMap<QStri
|
||||
QIODevice::OpenMode mode = QIODevice::WriteOnly|QIODevice::Truncate;
|
||||
if (!file->open(mode))
|
||||
{
|
||||
onError(callable,-1,QString("Url: %1 %2 Non-Writable").arg(request.url().toString(),file->fileName()),"");
|
||||
onFinish(callable);
|
||||
Q_EMIT callable->error(-1,QString("Url: %1 %2 Non-Writable").arg(request.url().toString(),file->fileName()),"");
|
||||
Q_EMIT callable->finish();
|
||||
return;
|
||||
}
|
||||
QEventLoop loop;
|
||||
@ -280,27 +286,27 @@ void FluHttp::download(QString url,QJSValue callable,QString filePath,QMap<QStri
|
||||
QPointer<QNetworkReply> reply = manager.get(request);
|
||||
_cacheReply.append(reply);
|
||||
connect(reply,&QNetworkReply::downloadProgress,this,[=](qint64 bytesReceived, qint64 bytesTotal){
|
||||
onDownloadProgress(callable,bytesReceived,bytesTotal);
|
||||
Q_EMIT callable->downloadProgress(bytesReceived,bytesTotal);
|
||||
});
|
||||
loop.exec();
|
||||
if (reply->error() == QNetworkReply::NoError) {
|
||||
file->write(reply->readAll());
|
||||
onSuccess(callable,filePath);
|
||||
Q_EMIT callable->success(filePath);
|
||||
}else{
|
||||
onError(callable,reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(),reply->errorString(),"");
|
||||
Q_EMIT callable->error(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(),reply->errorString(),"");
|
||||
}
|
||||
_cacheReply.removeOne(reply);
|
||||
reply->deleteLater();
|
||||
reply = nullptr;
|
||||
onFinish(callable);
|
||||
Q_EMIT callable->finish();
|
||||
});
|
||||
}
|
||||
|
||||
void FluHttp::upload(QString url,QJSValue callable,QMap<QString, QVariant> params,QMap<QString, QVariant> headers){
|
||||
auto requestMap = toRequest(url,params,headers,"upload");
|
||||
QMap<QString, QVariant> data = invokeIntercept(requestMap).toMap();
|
||||
void FluHttp::upload(QString url,HttpCallable* callable,QMap<QString, QVariant> params,QMap<QString, QVariant> headers){
|
||||
QThreadPool::globalInstance()->start([=](){
|
||||
onStart(callable);
|
||||
auto requestMap = toRequest(url,params,headers,"upload");
|
||||
QMap<QString, QVariant> data = invokeIntercept(requestMap).toMap();
|
||||
Q_EMIT callable->start();
|
||||
QNetworkAccessManager manager;
|
||||
manager.setTransferTimeout(timeout());
|
||||
QUrl _url(url);
|
||||
@ -328,7 +334,7 @@ void FluHttp::upload(QString url,QJSValue callable,QMap<QString, QVariant> param
|
||||
loop.quit();
|
||||
});
|
||||
connect(reply,&QNetworkReply::uploadProgress,this,[=](qint64 bytesSent, qint64 bytesTotal){
|
||||
onUploadProgress(callable,bytesSent,bytesTotal);
|
||||
Q_EMIT callable->uploadProgress(bytesSent,bytesTotal);
|
||||
});
|
||||
loop.exec();
|
||||
QString result = QString::fromUtf8(reply->readAll());
|
||||
@ -339,11 +345,11 @@ void FluHttp::upload(QString url,QJSValue callable,QMap<QString, QVariant> param
|
||||
reply->deleteLater();
|
||||
reply = nullptr;
|
||||
if (isSuccess) {
|
||||
onSuccess(callable,result);
|
||||
Q_EMIT callable->success(result);
|
||||
}else{
|
||||
onError(callable,status,errorString,result);
|
||||
Q_EMIT callable->error(status,errorString,result);
|
||||
}
|
||||
onFinish(callable);
|
||||
Q_EMIT callable->finish();
|
||||
});
|
||||
}
|
||||
|
||||
@ -362,7 +368,7 @@ QVariant FluHttp::invokeIntercept(QMap<QString, QVariant> request){
|
||||
return request;
|
||||
}
|
||||
QVariant target;
|
||||
QMetaObject::invokeMethod(FluApp::getInstance()->httpInterceptor(), "onIntercept",Q_RETURN_ARG(QVariant,target),Q_ARG(QVariant, request));
|
||||
QMetaObject::invokeMethod(FluApp::getInstance()->httpInterceptor(), "onIntercept",Qt::BlockingQueuedConnection,Q_RETURN_ARG(QVariant,target),Q_ARG(QVariant, request));
|
||||
return target;
|
||||
}
|
||||
|
||||
@ -386,67 +392,6 @@ void FluHttp::addHeaders(QNetworkRequest* request,const QMap<QString, QVariant>&
|
||||
}
|
||||
}
|
||||
|
||||
void FluHttp::onStart(const QJSValue& callable){
|
||||
MainThread::post([=](){
|
||||
QJSValue onStart = callable.property("onStart");
|
||||
onStart.call();
|
||||
});
|
||||
}
|
||||
|
||||
void FluHttp::onFinish(const QJSValue& callable){
|
||||
MainThread::post([=](){
|
||||
QJSValue onFinish = callable.property("onFinish");
|
||||
onFinish.call();
|
||||
});
|
||||
}
|
||||
|
||||
void FluHttp::onError(const QJSValue& callable,int status,QString errorString,QString result){
|
||||
MainThread::post([=](){
|
||||
QJSValue onError = callable.property("onError");
|
||||
QJSValueList args;
|
||||
args<<status<<errorString<<result;
|
||||
onError.call(args);
|
||||
});
|
||||
}
|
||||
|
||||
void FluHttp::onSuccess(const QJSValue& callable,QString result){
|
||||
MainThread::post([=](){
|
||||
QJSValueList args;
|
||||
args<<result;
|
||||
QJSValue onSuccess = callable.property("onSuccess");
|
||||
onSuccess.call(args);
|
||||
});
|
||||
}
|
||||
|
||||
void FluHttp::onCache(const QJSValue& callable,QString result){
|
||||
MainThread::post([=](){
|
||||
QJSValueList args;
|
||||
args<<result;
|
||||
QJSValue onSuccess = callable.property("onCache");
|
||||
onSuccess.call(args);
|
||||
});
|
||||
}
|
||||
|
||||
void FluHttp::onDownloadProgress(const QJSValue& callable,qint64 recv, qint64 total){
|
||||
MainThread::post([=](){
|
||||
QJSValueList args;
|
||||
args<<static_cast<double>(recv);
|
||||
args<<static_cast<double>(total);
|
||||
QJSValue onDownloadProgress = callable.property("onDownloadProgress");
|
||||
onDownloadProgress.call(args);
|
||||
});
|
||||
}
|
||||
|
||||
void FluHttp::onUploadProgress(const QJSValue& callable,qint64 sent, qint64 total){
|
||||
MainThread::post([=](){
|
||||
QJSValueList args;
|
||||
args<<static_cast<double>(sent);
|
||||
args<<static_cast<double>(total);
|
||||
QJSValue onUploadProgress = callable.property("onUploadProgress");
|
||||
onUploadProgress.call(args);
|
||||
});
|
||||
}
|
||||
|
||||
QString FluHttp::readCache(const QMap<QString, QVariant>& request){
|
||||
auto filePath = getCacheFilePath(request);
|
||||
QString result;
|
||||
|
@ -6,6 +6,21 @@
|
||||
#include <QFile>
|
||||
#include <QNetworkAccessManager>
|
||||
#include "stdafx.h"
|
||||
#include <QMutex>
|
||||
|
||||
class HttpCallable : public QObject{
|
||||
Q_OBJECT
|
||||
QML_NAMED_ELEMENT(HttpCallable)
|
||||
public:
|
||||
explicit HttpCallable(QObject *parent = nullptr);
|
||||
Q_SIGNAL void start();
|
||||
Q_SIGNAL void finish();
|
||||
Q_SIGNAL void error(int status,QString errorString,QString result);
|
||||
Q_SIGNAL void success(QString result);
|
||||
Q_SIGNAL void cache(QString result);
|
||||
Q_SIGNAL void downloadProgress(qint64 recv, qint64 total);
|
||||
Q_SIGNAL void uploadProgress(qint64 recv, qint64 total);
|
||||
};
|
||||
|
||||
class FluHttp : public QObject
|
||||
{
|
||||
@ -21,13 +36,6 @@ private:
|
||||
void handleReply(QNetworkReply* reply);
|
||||
void addQueryParam(QUrl* url,const QMap<QString, QVariant>& params);
|
||||
void addHeaders(QNetworkRequest* request,const QMap<QString, QVariant>& params);
|
||||
void onStart(const QJSValue& callable);
|
||||
void onFinish(const QJSValue& callable);
|
||||
void onError(const QJSValue& callable,int status,QString errorString,QString result);
|
||||
void onSuccess(const QJSValue& callable,QString result);
|
||||
void onCache(const QJSValue& callable,QString result);
|
||||
void onDownloadProgress(const QJSValue& callable,qint64 recv, qint64 total);
|
||||
void onUploadProgress(const QJSValue& callable,qint64 recv, qint64 total);
|
||||
void handleCache(QMap<QString, QVariant> request, const QString& result);
|
||||
QString readCache(const QMap<QString, QVariant>& request);
|
||||
bool cacheExists(const QMap<QString, QVariant>& request);
|
||||
@ -36,12 +44,12 @@ public:
|
||||
explicit FluHttp(QObject *parent = nullptr);
|
||||
~FluHttp();
|
||||
//神坑!!! 如果参数使用QVariantMap会有问题,在6.4.3版本中QML一调用就会编译失败。所以改用QMap<QString, QVariant>
|
||||
Q_INVOKABLE void get(QString url,QJSValue callable,QMap<QString, QVariant> params= {},QMap<QString, QVariant> headers = {});
|
||||
Q_INVOKABLE void post(QString url,QJSValue callable,QMap<QString, QVariant> params= {},QMap<QString, QVariant> headers = {});
|
||||
Q_INVOKABLE void postString(QString url,QJSValue callable,QString params = "",QMap<QString, QVariant> headers = {});
|
||||
Q_INVOKABLE void postJson(QString url,QJSValue callable,QMap<QString, QVariant> params = {},QMap<QString, QVariant> headers = {});
|
||||
Q_INVOKABLE void download(QString url,QJSValue callable,QString filePath,QMap<QString, QVariant> params = {},QMap<QString, QVariant> headers = {});
|
||||
Q_INVOKABLE void upload(QString url,QJSValue callable,QMap<QString, QVariant> params = {},QMap<QString, QVariant> headers = {});
|
||||
Q_INVOKABLE void get(QString url,HttpCallable* callable,QMap<QString, QVariant> params= {},QMap<QString, QVariant> headers = {});
|
||||
Q_INVOKABLE void post(QString url,HttpCallable* callable,QMap<QString, QVariant> params= {},QMap<QString, QVariant> headers = {});
|
||||
Q_INVOKABLE void postString(QString url,HttpCallable* callable,QString params = "",QMap<QString, QVariant> headers = {});
|
||||
Q_INVOKABLE void postJson(QString url,HttpCallable* callable,QMap<QString, QVariant> params = {},QMap<QString, QVariant> headers = {});
|
||||
Q_INVOKABLE void download(QString url,HttpCallable* callable,QString filePath,QMap<QString, QVariant> params = {},QMap<QString, QVariant> headers = {});
|
||||
Q_INVOKABLE void upload(QString url,HttpCallable* callable,QMap<QString, QVariant> params = {},QMap<QString, QVariant> headers = {});
|
||||
Q_INVOKABLE void cancel();
|
||||
private:
|
||||
QList<QPointer<QNetworkReply>> _cacheReply;
|
||||
|
@ -6,6 +6,7 @@
|
||||
#include <QScreen>
|
||||
#include <QColor>
|
||||
#include <QFileInfo>
|
||||
#include <QDir>
|
||||
#include <QCryptographicHash>
|
||||
#include <QTextDocument>
|
||||
|
||||
@ -145,3 +146,7 @@ QString FluTools::fromBase64(QString text)
|
||||
return QByteArray::fromBase64(text.toUtf8());
|
||||
}
|
||||
|
||||
bool FluTools::removeDir(QString dirPath){
|
||||
QDir qDir(dirPath);
|
||||
return qDir.removeRecursively();
|
||||
}
|
||||
|
@ -149,21 +149,29 @@ public:
|
||||
* @param text
|
||||
* @return
|
||||
*/
|
||||
QString md5(QString text);
|
||||
Q_INVOKABLE QString md5(QString text);
|
||||
|
||||
/**
|
||||
* @brief toBase64
|
||||
* @param text
|
||||
* @return
|
||||
*/
|
||||
QString toBase64(QString text);
|
||||
Q_INVOKABLE QString toBase64(QString text);
|
||||
|
||||
/**
|
||||
* @brief fromBase64
|
||||
* @param text
|
||||
* @return
|
||||
*/
|
||||
QString fromBase64(QString text);
|
||||
Q_INVOKABLE QString fromBase64(QString text);
|
||||
|
||||
|
||||
/**
|
||||
* @brief removeDir
|
||||
* @param dirPath
|
||||
* @return
|
||||
*/
|
||||
Q_INVOKABLE bool removeDir(QString dirPath);
|
||||
|
||||
};
|
||||
|
||||
|
@ -38,6 +38,7 @@ void FluentUIPlugin::registerTypes(const char *uri)
|
||||
qmlRegisterType<FluColorSet>(uri,major,minor,"FluColorSet");
|
||||
qmlRegisterType<FluHttpInterceptor>(uri,major,minor,"FluHttpInterceptor");
|
||||
qmlRegisterType<FluHttp>(uri,major,minor,"FluHttp");
|
||||
qmlRegisterType<HttpCallable>(uri,major,minor,"HttpCallable");
|
||||
qmlRegisterUncreatableMetaObject(Fluent_Awesome::staticMetaObject, uri,major,minor,"FluentIcons", "Access to enums & flags only");
|
||||
qmlRegisterUncreatableMetaObject(FluThemeType::staticMetaObject, uri,major,minor,"FluThemeType", "Access to enums & flags only");
|
||||
qmlRegisterUncreatableMetaObject(FluPageType::staticMetaObject, uri,major,minor,"FluPageType", "Access to enums & flags only");
|
||||
|
Reference in New Issue
Block a user