add list & list item & demo

This commit is contained in:
王劲鹏
2021-06-11 11:55:36 +08:00
committed by osborn
parent 6939d2a093
commit 5203113e40
10 changed files with 360 additions and 14 deletions

View File

@@ -0,0 +1,22 @@
#include "DoricListItemNode.h"
QQuickItem *DoricListItemNode::build() {
QQmlComponent component(getContext()->getQmlEngine());
const QUrl url(QStringLiteral("qrc:/doric/qml/list-item.qml"));
component.loadUrl(url);
if (component.isError()) {
qCritical() << component.errorString();
}
QQuickItem *item = qobject_cast<QQuickItem *>(component.create());
this->createLayouts(item);
getLayouts()->setLayoutType(DoricLayoutType::DoricStack);
item->setProperty("wrapper", QString::number((qint64)this));
return item;
}
void DoricListItemNode::apply() { getLayouts()->apply(); }

View File

@@ -0,0 +1,17 @@
#ifndef DORICLISTITEMNODE_H
#define DORICLISTITEMNODE_H
#include "DoricExport.h"
#include "shader/DoricStackNode.h"
class DORIC_EXPORT DoricListItemNode : public DoricStackNode {
public:
using DoricStackNode::DoricStackNode;
QQuickItem *build() override;
void apply();
};
#endif // DORICLISTITEMNODE_H

View File

@@ -0,0 +1,26 @@
#include "DoricListNode.h"
QQuickItem *DoricListNode::build() {
QQmlComponent component(getContext()->getQmlEngine());
const QUrl url(QStringLiteral("qrc:/doric/qml/list.qml"));
component.loadUrl(url);
if (component.isError()) {
qCritical() << component.errorString();
}
QQuickItem *item = qobject_cast<QQuickItem *>(component.create());
this->createLayouts(item);
item->setProperty("wrapper", QString::number((qint64)this));
return item;
}
DoricViewNode *DoricListNode::getSubNodeById(QString id) {}
void DoricListNode::blendSubNode(QJsonValue subProperties) {}
void DoricListNode::blend(QQuickItem *view, QString name, QJsonValue prop) {}
void DoricListNode::afterBlended(QJsonValue prop) {}

View File

@@ -0,0 +1,36 @@
#ifndef DORICLISTNODE_H
#define DORICLISTNODE_H
#include "DoricExport.h"
#include "DoricListItemNode.h"
#include "shader/DoricSuperNode.h"
class DORIC_EXPORT DoricListNode : public DoricSuperNode {
private:
QString renderItemFuncId;
int itemCount = 0;
int batchCount = 15;
QString onLoadMoreFuncId;
bool loadMore = false;
QString loadMoreViewId;
QString onScrollFuncId;
QString onScrollEndFuncId;
QList<DoricListItemNode *> childNodes;
public:
using DoricSuperNode::DoricSuperNode;
QQuickItem *build() override;
virtual DoricViewNode *getSubNodeById(QString id) override;
virtual void blendSubNode(QJsonValue subProperties) override;
virtual void blend(QQuickItem *view, QString name, QJsonValue prop) override;
virtual void afterBlended(QJsonValue prop) override;
};
#endif // DORICLISTNODE_H