nodeguy/src/cpp/include/nodegui/QtWidgets/QTreeWidget/ntreewidget.hpp
Atul R 86c3ef089c
Integration with Qode 2.0 (#400)
* Moves qt integration solely to the nodegui core addon

* Adds lint fixes

* moved to integration core

* cleans up export snippet

* revert package.json

* Add exit if app->exec finishes.

* lint fix

* Makes QApplication custom

* adds qobject to wrap of qapp

* Adds working qt run looper

* Adds font default

* Adds qt installer

* Updates qode integration to v2.0.1

* fix cpp lints

* Fixes lint and deps

* Adds miniqt installation

* adds setup mini qt script

* skips tests due to issues with jest

* fix config and download path for linux and windows

* Adds multiple artifact downloader

* fix qt config and compilation

* Fixes qode path for windows (now it can load dll's easily)

* Add compilation

* fix windows path setup

* use scripts directly

* enabled tests back

* fix ubuntu deps

* update to alpha release

* fix workflow

* adds more artifacts and funding field

* change to alpha v2

* update prebuild yml

* revert build action

* disabling prebuild for now

* switch to stable release 5.14.1

* version bump
2020-03-07 10:28:30 +01:00

140 lines
4.9 KiB
C++

#pragma once
#include <QTreeWidget>
#include "Extras/Export/export.h"
#include "QtWidgets/QAbstractScrollArea/qabstractscrollarea_macro.h"
#include "QtWidgets/QTreeWidgetItem/qtreewidgetitem_wrap.h"
#include "core/NodeWidget/nodewidget.h"
#include "napi.h"
class DLL_EXPORT NTreeWidget : public QTreeWidget, public NodeWidget {
Q_OBJECT
NODEWIDGET_IMPLEMENTATIONS(QTreeWidget)
public:
using QTreeWidget::QTreeWidget; // inherit all constructors of QTreeWidget
void connectSignalsToEventEmitter() {
QABSTRACTSCROLLAREA_SIGNALS
QObject::connect(this, &QTreeWidget::itemSelectionChanged, [=]() {
Napi::Env env = this->emitOnNode.Env();
Napi::HandleScope scope(env);
this->emitOnNode.Call({Napi::String::New(env, "itemSelectionChanged")});
});
QObject::connect(
this, &QTreeWidget::itemClicked,
[=](QTreeWidgetItem* item, int column) {
Napi::Env env = this->emitOnNode.Env();
Napi::HandleScope scope(env);
auto itemWrap = QTreeWidgetItemWrap::fromQTreeWidgetItem(env, item);
auto columnWrap = Napi::Value::From(env, column);
this->emitOnNode.Call(
{Napi::String::New(env, "itemClicked"), itemWrap, columnWrap});
});
QObject::connect(
this, &QTreeWidget::itemChanged,
[=](QTreeWidgetItem* item, int column) {
Napi::Env env = this->emitOnNode.Env();
Napi::HandleScope scope(env);
auto itemWrap = QTreeWidgetItemWrap::fromQTreeWidgetItem(env, item);
auto columnWrap = Napi::Value::From(env, column);
this->emitOnNode.Call(
{Napi::String::New(env, "itemChanged"), itemWrap, columnWrap});
});
QObject::connect(
this, &QTreeWidget::currentItemChanged,
[=](QTreeWidgetItem* current, QTreeWidgetItem* previous) {
Napi::Env env = this->emitOnNode.Env();
Napi::HandleScope scope(env);
auto currentItemWrap =
QTreeWidgetItemWrap::fromQTreeWidgetItem(env, current);
auto previousItemWrap =
QTreeWidgetItemWrap::fromQTreeWidgetItem(env, previous);
this->emitOnNode.Call({Napi::String::New(env, "currentItemChanged"),
currentItemWrap, previousItemWrap});
});
QObject::connect(
this, &QTreeWidget::itemActivated,
[=](QTreeWidgetItem* item, int column) {
Napi::Env env = this->emitOnNode.Env();
Napi::HandleScope scope(env);
auto itemWrap = QTreeWidgetItemWrap::fromQTreeWidgetItem(env, item);
auto columnWrap = Napi::Value::From(env, column);
this->emitOnNode.Call(
{Napi::String::New(env, "itemActivated"), itemWrap, columnWrap});
});
QObject::connect(
this, &QTreeWidget::itemCollapsed, [=](QTreeWidgetItem* item) {
Napi::Env env = this->emitOnNode.Env();
Napi::HandleScope scope(env);
auto itemWrap = QTreeWidgetItemWrap::fromQTreeWidgetItem(env, item);
this->emitOnNode.Call(
{Napi::String::New(env, "itemCollapsed"), itemWrap});
});
QObject::connect(
this, &QTreeWidget::itemDoubleClicked,
[=](QTreeWidgetItem* item, int column) {
Napi::Env env = this->emitOnNode.Env();
Napi::HandleScope scope(env);
auto itemWrap = QTreeWidgetItemWrap::fromQTreeWidgetItem(env, item);
auto columnWrap = Napi::Value::From(env, column);
this->emitOnNode.Call({Napi::String::New(env, "itemDoubleClicked"),
itemWrap, columnWrap});
});
QObject::connect(
this, &QTreeWidget::itemEntered,
[=](QTreeWidgetItem* item, int column) {
Napi::Env env = this->emitOnNode.Env();
Napi::HandleScope scope(env);
auto itemWrap = QTreeWidgetItemWrap::fromQTreeWidgetItem(env, item);
auto columnWrap = Napi::Value::From(env, column);
this->emitOnNode.Call(
{Napi::String::New(env, "itemEntered"), itemWrap, columnWrap});
});
QObject::connect(
this, &QTreeWidget::itemExpanded, [=](QTreeWidgetItem* item) {
Napi::Env env = this->emitOnNode.Env();
Napi::HandleScope scope(env);
auto itemWrap = QTreeWidgetItemWrap::fromQTreeWidgetItem(env, item);
this->emitOnNode.Call(
{Napi::String::New(env, "itemExpanded"), itemWrap});
});
QObject::connect(
this, &QTreeWidget::itemPressed,
[=](QTreeWidgetItem* item, int column) {
Napi::Env env = this->emitOnNode.Env();
Napi::HandleScope scope(env);
auto itemWrap = QTreeWidgetItemWrap::fromQTreeWidgetItem(env, item);
auto columnWrap = Napi::Value::From(env, column);
this->emitOnNode.Call(
{Napi::String::New(env, "itemPressed"), itemWrap, columnWrap});
});
}
};