Added QTreeWidget functions (#452)
https://github.com/nodegui/nodegui/issues/231#issuecomment-601390056
This commit is contained in:
parent
c7428f2d55
commit
38b8c9536d
@ -26,6 +26,9 @@ class DLL_EXPORT QTreeWidgetWrap : public Napi::ObjectWrap<QTreeWidgetWrap> {
|
||||
static Napi::FunctionReference constructor;
|
||||
|
||||
Napi::Value addTopLevelItem(const Napi::CallbackInfo &info);
|
||||
Napi::Value addTopLevelItems(const Napi::CallbackInfo &info);
|
||||
Napi::Value insertTopLevelItem(const Napi::CallbackInfo &info);
|
||||
Napi::Value insertTopLevelItems(const Napi::CallbackInfo &info);
|
||||
Napi::Value selectedItems(const Napi::CallbackInfo &info);
|
||||
Napi::Value setColumnCount(const Napi::CallbackInfo &info);
|
||||
Napi::Value setHeaderLabel(const Napi::CallbackInfo &info);
|
||||
|
||||
@ -14,6 +14,11 @@ Napi::Object QTreeWidgetWrap::init(Napi::Env env, Napi::Object exports) {
|
||||
Napi::Function func = DefineClass(
|
||||
env, CLASSNAME,
|
||||
{InstanceMethod("addTopLevelItem", &QTreeWidgetWrap::addTopLevelItem),
|
||||
InstanceMethod("addTopLevelItems", &QTreeWidgetWrap::addTopLevelItems),
|
||||
InstanceMethod("insertTopLevelItem",
|
||||
&QTreeWidgetWrap::insertTopLevelItem),
|
||||
InstanceMethod("insertTopLevelItems",
|
||||
&QTreeWidgetWrap::insertTopLevelItems),
|
||||
InstanceMethod("selectedItems", &QTreeWidgetWrap::selectedItems),
|
||||
InstanceMethod("setColumnCount", &QTreeWidgetWrap::setColumnCount),
|
||||
InstanceMethod("setHeaderLabel", &QTreeWidgetWrap::setHeaderLabel),
|
||||
@ -62,6 +67,61 @@ Napi::Value QTreeWidgetWrap::addTopLevelItem(const Napi::CallbackInfo& info) {
|
||||
this->instance->addTopLevelItem(item);
|
||||
return env.Null();
|
||||
}
|
||||
|
||||
Napi::Value QTreeWidgetWrap::addTopLevelItems(const Napi::CallbackInfo& info) {
|
||||
Napi::Env env = info.Env();
|
||||
Napi::HandleScope scope(env);
|
||||
|
||||
Napi::Array itemsNapi = info[0].As<Napi::Array>();
|
||||
QList<QTreeWidgetItem*> items;
|
||||
for (int i = 0; i < itemsNapi.Length(); i++) {
|
||||
Napi::Value itemNapi = itemsNapi[i];
|
||||
Napi::Object itemObject = itemNapi.As<Napi::Object>();
|
||||
QTreeWidgetItemWrap* itemWrap =
|
||||
Napi::ObjectWrap<QTreeWidgetItemWrap>::Unwrap(itemObject);
|
||||
QTreeWidgetItem* item = itemWrap->getInternalInstance();
|
||||
items.append(item);
|
||||
}
|
||||
this->instance->addTopLevelItems(items);
|
||||
|
||||
return env.Null();
|
||||
}
|
||||
|
||||
Napi::Value QTreeWidgetWrap::insertTopLevelItem(
|
||||
const Napi::CallbackInfo& info) {
|
||||
Napi::Env env = info.Env();
|
||||
Napi::HandleScope scope(env);
|
||||
|
||||
int index = info[0].As<Napi::Number>().Int32Value();
|
||||
Napi::Object itemObject = info[1].As<Napi::Object>();
|
||||
QTreeWidgetItemWrap* itemWrap =
|
||||
Napi::ObjectWrap<QTreeWidgetItemWrap>::Unwrap(itemObject);
|
||||
QTreeWidgetItem* item = itemWrap->getInternalInstance();
|
||||
this->instance->insertTopLevelItem(index, item);
|
||||
|
||||
return env.Null();
|
||||
}
|
||||
|
||||
Napi::Value QTreeWidgetWrap::insertTopLevelItems(
|
||||
const Napi::CallbackInfo& info) {
|
||||
Napi::Env env = info.Env();
|
||||
Napi::HandleScope scope(env);
|
||||
int index = info[0].As<Napi::Number>().Int32Value();
|
||||
Napi::Array itemsNapi = info[1].As<Napi::Array>();
|
||||
QList<QTreeWidgetItem*> items;
|
||||
for (int i = 0; i < itemsNapi.Length(); i++) {
|
||||
Napi::Value itemNapi = itemsNapi[i];
|
||||
Napi::Object itemObject = itemNapi.As<Napi::Object>();
|
||||
QTreeWidgetItemWrap* itemWrap =
|
||||
Napi::ObjectWrap<QTreeWidgetItemWrap>::Unwrap(itemObject);
|
||||
QTreeWidgetItem* item = itemWrap->getInternalInstance();
|
||||
items.append(item);
|
||||
}
|
||||
this->instance->insertTopLevelItems(index, items);
|
||||
|
||||
return env.Null();
|
||||
}
|
||||
|
||||
Napi::Value QTreeWidgetWrap::selectedItems(const Napi::CallbackInfo& info) {
|
||||
Napi::Env env = info.Env();
|
||||
Napi::HandleScope scope(env);
|
||||
@ -158,4 +218,4 @@ Napi::Value QTreeWidgetWrap::currentItem(const Napi::CallbackInfo& info) {
|
||||
env, new QTreeWidgetItem(*currentItem))});
|
||||
|
||||
return value;
|
||||
}
|
||||
}
|
||||
|
||||
@ -25,10 +25,17 @@ const item2 = new QTreeWidgetItem();
|
||||
item2.setText(0, `item-2`);
|
||||
const item3 = new QTreeWidgetItem();
|
||||
item3.setText(0, `item-3`);
|
||||
const item4 = new QTreeWidgetItem();
|
||||
item4.setText(0, `item-4`);
|
||||
const item5 = new QTreeWidgetItem();
|
||||
item5.setText(0, `item-5`);
|
||||
const item6 = new QTreeWidgetItem();
|
||||
item6.setText(0, `item-6`);
|
||||
|
||||
tree.addTopLevelItem(item1);
|
||||
tree.addTopLevelItem(item2);
|
||||
tree.addTopLevelItem(item3);
|
||||
tree.insertTopLevelItems(0, [item2, item3]);
|
||||
tree.addTopLevelItems([item4, item5]);
|
||||
tree.insertTopLevelItem(2, item6);
|
||||
|
||||
// Add children to item1
|
||||
const c1item1 = new QTreeWidgetItem(item1);
|
||||
@ -38,8 +45,7 @@ c1item2.setText(0, `c1item1`);
|
||||
|
||||
win.setCentralWidget(tree);
|
||||
win.show();
|
||||
(global as any).win = win;
|
||||
```
|
||||
(global as any).win = win;```
|
||||
*/
|
||||
export class QTreeWidget extends QAbstractScrollArea<QTreeWidgetSignals> {
|
||||
native: NativeElement;
|
||||
@ -65,6 +71,30 @@ export class QTreeWidget extends QAbstractScrollArea<QTreeWidgetSignals> {
|
||||
this.topLevelItems.add(item);
|
||||
this.native.addTopLevelItem(item.native);
|
||||
}
|
||||
|
||||
addTopLevelItems(items: QTreeWidgetItem[]): void {
|
||||
const napiItems: NativeElement[] = [];
|
||||
items.forEach(item => {
|
||||
this.topLevelItems.add(item);
|
||||
napiItems.push(item.native);
|
||||
});
|
||||
this.native.addTopLevelItems(napiItems);
|
||||
}
|
||||
|
||||
insertTopLevelItem(index: number, item: QTreeWidgetItem): void {
|
||||
this.topLevelItems.add(item);
|
||||
this.native.insertTopLevelItem(index, item.native);
|
||||
}
|
||||
|
||||
insertTopLevelItems(index: number, items: QTreeWidgetItem[]): void {
|
||||
const napiItems: NativeElement[] = [];
|
||||
items.forEach(item => {
|
||||
this.topLevelItems.add(item);
|
||||
napiItems.push(item.native);
|
||||
});
|
||||
this.native.insertTopLevelItems(index, napiItems);
|
||||
}
|
||||
|
||||
setHeaderHidden(hide: boolean): void {
|
||||
this.native.setProperty('headerHidden', hide);
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user