add slider, slider node & pure call response
This commit is contained in:
parent
3721c856fb
commit
3531a28f13
@ -13,6 +13,8 @@
|
||||
#include "shader/DoricStackNode.h"
|
||||
#include "shader/DoricTextNode.h"
|
||||
#include "shader/DoricVLayoutNode.h"
|
||||
#include "shader/slider/DoricSlideItemNode.h"
|
||||
#include "shader/slider/DoricSliderNode.h"
|
||||
|
||||
DoricRegistry::DoricRegistry() {
|
||||
registerNativePlugin<DoricShaderPlugin>("shader");
|
||||
@ -28,6 +30,8 @@ DoricRegistry::DoricRegistry() {
|
||||
registerViewNode<DoricTextNode>("Text");
|
||||
registerViewNode<DoricScrollerNode>("Scroller");
|
||||
registerViewNode<DoricImageNode>("Image");
|
||||
registerViewNode<DoricSliderNode>("Slider");
|
||||
registerViewNode<DoricSlideItemNode>("SlideItem");
|
||||
}
|
||||
|
||||
bool DoricRegistry::acquirePluginInfo(QString name) {
|
||||
|
@ -50,6 +50,7 @@ SOURCES += \
|
||||
shader/DoricTextNode.cpp \
|
||||
shader/DoricVLayoutNode.cpp \
|
||||
shader/DoricViewNode.cpp \
|
||||
shader/slider/DoricSlideItemNode.cpp \
|
||||
shader/slider/DoricSliderNode.cpp \
|
||||
utils/DoricConstant.cpp \
|
||||
utils/DoricContextHolder.cpp \
|
||||
@ -125,6 +126,7 @@ HEADERS += \
|
||||
shader/DoricTextNode.h \
|
||||
shader/DoricVLayoutNode.h \
|
||||
shader/DoricViewNode.h \
|
||||
shader/slider/DoricSlideItemNode.h \
|
||||
shader/slider/DoricSliderNode.h \
|
||||
template/DoricSingleton.h \
|
||||
utils/DoricConstant.h \
|
||||
|
@ -219,6 +219,20 @@ void DoricViewNode::callJSResponse(QString funcId, QVariantList args) {
|
||||
return getContext()->callEntity(DoricConstant::DORIC_ENTITY_RESPONSE, nArgs);
|
||||
}
|
||||
|
||||
void DoricViewNode::pureCallJSResponse(QString funcId, QVariantList args) {
|
||||
QVariantList nArgs;
|
||||
nArgs.append(getContext()->getContextId());
|
||||
nArgs.append(DoricConstant::DORIC_ENTITY_RESPONSE);
|
||||
QList<QString> idList = getIdList();
|
||||
nArgs.append(QVariant(idList));
|
||||
nArgs.append(funcId);
|
||||
foreach (const QVariant &arg, args)
|
||||
nArgs.append(arg);
|
||||
|
||||
return getContext()->callEntity(DoricConstant::DORIC_CONTEXT_INVOKE_PURE,
|
||||
nArgs);
|
||||
}
|
||||
|
||||
void DoricViewNode::onClick() {
|
||||
if (clickFunction.isEmpty()) {
|
||||
return;
|
||||
|
@ -78,5 +78,7 @@ public:
|
||||
void onClick();
|
||||
|
||||
void callJSResponse(QString funcId, QVariantList args);
|
||||
|
||||
void pureCallJSResponse(QString funcId, QVariantList args);
|
||||
};
|
||||
#endif // DORICVIEWNODE_H
|
||||
|
@ -0,0 +1 @@
|
||||
#include "DoricSlideItemNode.h"
|
11
doric-Qt/example/doric/shader/slider/DoricSlideItemNode.h
Normal file
11
doric-Qt/example/doric/shader/slider/DoricSlideItemNode.h
Normal file
@ -0,0 +1,11 @@
|
||||
#ifndef DORICSLIDEITEMNODE_H
|
||||
#define DORICSLIDEITEMNODE_H
|
||||
|
||||
#include "shader/DoricStackNode.h"
|
||||
|
||||
class DoricSlideItemNode : public DoricStackNode {
|
||||
public:
|
||||
using DoricStackNode::DoricStackNode;
|
||||
};
|
||||
|
||||
#endif // DORICSLIDEITEMNODE_H
|
@ -35,3 +35,12 @@ void DoricSliderNode::blendSubNode(QJsonValue subProperties) {
|
||||
void DoricSliderNode::blend(QJsonValue jsValue) {}
|
||||
|
||||
void DoricSliderNode::blend(QQuickItem *view, QString name, QJsonValue prop) {}
|
||||
|
||||
void DoricSliderNode::afterBlended(QJsonValue prop) {
|
||||
if (this->childNodes.length() != this->itemCount) {
|
||||
QVariantList args;
|
||||
args.append(this->childNodes.length());
|
||||
args.append(this->itemCount);
|
||||
this->pureCallJSResponse("renderBunchedItems", args);
|
||||
}
|
||||
}
|
||||
|
@ -1,10 +1,19 @@
|
||||
#ifndef DORICSLIDERNODE_H
|
||||
#define DORICSLIDERNODE_H
|
||||
|
||||
#include "DoricSlideItemNode.h"
|
||||
#include "shader/DoricSuperNode.h"
|
||||
|
||||
class DoricSliderNode : public DoricSuperNode {
|
||||
|
||||
private:
|
||||
int itemCount = 0;
|
||||
QString renderPageFuncId;
|
||||
int batchCount = 15;
|
||||
QString onPageSelectedFuncId;
|
||||
bool loop = false;
|
||||
QList<DoricSlideItemNode *> childNodes;
|
||||
|
||||
public:
|
||||
using DoricSuperNode::DoricSuperNode;
|
||||
|
||||
@ -17,6 +26,8 @@ public:
|
||||
virtual void blend(QJsonValue jsValue) override;
|
||||
|
||||
virtual void blend(QQuickItem *view, QString name, QJsonValue prop) override;
|
||||
|
||||
virtual void afterBlended(QJsonValue prop) override;
|
||||
};
|
||||
|
||||
#endif // DORICSLIDERNODE_H
|
||||
|
@ -27,6 +27,7 @@ const QString DoricConstant::TEMPLATE_CONTEXT_DESTROY =
|
||||
|
||||
const QString DoricConstant::GLOBAL_DORIC = "doric";
|
||||
const QString DoricConstant::DORIC_CONTEXT_INVOKE = "jsCallEntityMethod";
|
||||
const QString DoricConstant::DORIC_CONTEXT_INVOKE_PURE = "pureCallEntityMethod";
|
||||
const QString DoricConstant::DORIC_TIMER_CALLBACK = "jsCallbackTimer";
|
||||
const QString DoricConstant::DORIC_BRIDGE_RESOLVE = "jsCallResolve";
|
||||
const QString DoricConstant::DORIC_BRIDGE_REJECT = "jsCallReject";
|
||||
|
@ -24,6 +24,7 @@ public:
|
||||
|
||||
static const QString GLOBAL_DORIC;
|
||||
static const QString DORIC_CONTEXT_INVOKE;
|
||||
static const QString DORIC_CONTEXT_INVOKE_PURE;
|
||||
static const QString DORIC_TIMER_CALLBACK;
|
||||
static const QString DORIC_BRIDGE_RESOLVE;
|
||||
static const QString DORIC_BRIDGE_REJECT;
|
||||
|
Reference in New Issue
Block a user