From 57cf0d48362e189f7c1550d6e8fdac4a4337a9b4 Mon Sep 17 00:00:00 2001 From: Shubham Zanwar Date: Tue, 25 Feb 2020 14:06:58 +0530 Subject: [PATCH] improv: adding the ability to change the tab text (#421) * adding the setTabText to the QTabWidgetWrap definition * implementing the setTabText funciton in the cpp module * implementing the setTabText in the ts module * adding a demo for the tab text change feature * fixing lint issues * exporting the QSettings enums --- .../nodegui/QtWidgets/QTabWidget/qtabwidget_wrap.h | 1 + src/cpp/lib/QtWidgets/QTabWidget/qtabwidget_wrap.cpp | 11 +++++++++++ src/index.ts | 1 + src/lib/QtCore/QSettings.ts | 4 ++-- src/lib/QtWidgets/QTabWidget.ts | 4 ++++ 5 files changed, 19 insertions(+), 2 deletions(-) diff --git a/src/cpp/include/nodegui/QtWidgets/QTabWidget/qtabwidget_wrap.h b/src/cpp/include/nodegui/QtWidgets/QTabWidget/qtabwidget_wrap.h index fb9772dc6..fe978d6a4 100644 --- a/src/cpp/include/nodegui/QtWidgets/QTabWidget/qtabwidget_wrap.h +++ b/src/cpp/include/nodegui/QtWidgets/QTabWidget/qtabwidget_wrap.h @@ -27,4 +27,5 @@ class DLL_EXPORT QTabWidgetWrap : public Napi::ObjectWrap { Napi::Value currentIndex(const Napi::CallbackInfo &info); Napi::Value removeTab(const Napi::CallbackInfo &info); Napi::Value setTabsClosable(const Napi::CallbackInfo &info); + Napi::Value setTabText(const Napi::CallbackInfo &info); }; diff --git a/src/cpp/lib/QtWidgets/QTabWidget/qtabwidget_wrap.cpp b/src/cpp/lib/QtWidgets/QTabWidget/qtabwidget_wrap.cpp index 50ae0d7e1..8e3007e71 100644 --- a/src/cpp/lib/QtWidgets/QTabWidget/qtabwidget_wrap.cpp +++ b/src/cpp/lib/QtWidgets/QTabWidget/qtabwidget_wrap.cpp @@ -15,6 +15,7 @@ Napi::Object QTabWidgetWrap::init(Napi::Env env, Napi::Object exports) { env, CLASSNAME, {InstanceMethod("addTab", &QTabWidgetWrap::addTab), InstanceMethod("setTabPosition", &QTabWidgetWrap::setTabPosition), + InstanceMethod("setTabText", &QTabWidgetWrap::setTabText), InstanceMethod("setCurrentIndex", &QTabWidgetWrap::setCurrentIndex), InstanceMethod("currentIndex", &QTabWidgetWrap::currentIndex), InstanceMethod("removeTab", &QTabWidgetWrap::removeTab), @@ -80,6 +81,16 @@ Napi::Value QTabWidgetWrap::setTabPosition(const Napi::CallbackInfo& info) { return env.Null(); } +Napi::Value QTabWidgetWrap::setTabText(const Napi::CallbackInfo& info) { + Napi::Env env = info.Env(); + Napi::HandleScope scope(env); + int tabIndex = info[0].As().Int32Value(); + Napi::String napiLabel = info[1].As(); + std::string label = napiLabel.Utf8Value(); + this->instance->setTabText(tabIndex, label.c_str()); + return env.Null(); +} + Napi::Value QTabWidgetWrap::setCurrentIndex(const Napi::CallbackInfo& info) { Napi::Env env = info.Env(); Napi::HandleScope scope(env); diff --git a/src/index.ts b/src/index.ts index 175b4a8f6..af3b816bc 100644 --- a/src/index.ts +++ b/src/index.ts @@ -94,6 +94,7 @@ export { QPoint } from './lib/QtCore/QPoint'; export { QColor } from './lib/QtGui/QColor'; export { QTime } from './lib/QtCore/QTime'; export { QUrl, ParsingMode } from './lib/QtCore/QUrl'; +export { Format, Scope, QSettings } from './lib/QtCore/QSettings'; // Layouts: export { QBoxLayout, QBoxLayoutSignals } from './lib/QtWidgets/QBoxLayout'; export { QGridLayout, QGridLayoutSignals } from './lib/QtWidgets/QGridLayout'; diff --git a/src/lib/QtCore/QSettings.ts b/src/lib/QtCore/QSettings.ts index 4486708b8..95465dd30 100644 --- a/src/lib/QtCore/QSettings.ts +++ b/src/lib/QtCore/QSettings.ts @@ -2,7 +2,7 @@ import { NativeElement, Component } from '../core/Component'; import addon from '../utils/addon'; import { QVariant } from './QVariant'; -enum Format { +export enum Format { NativeFormat = 0, Registry32Format = 2, Registry64Format = 3, @@ -10,7 +10,7 @@ enum Format { InvalidFormat = 16, } -enum Scope { +export enum Scope { UserScope = 0, SystemScope = 1, } diff --git a/src/lib/QtWidgets/QTabWidget.ts b/src/lib/QtWidgets/QTabWidget.ts index e66e74ce2..143929bde 100644 --- a/src/lib/QtWidgets/QTabWidget.ts +++ b/src/lib/QtWidgets/QTabWidget.ts @@ -53,6 +53,10 @@ export class QTabWidget extends NodeWidget { this.native.setTabPosition(tabPosition); } + setTabText(tabIndex: number, tabText: string): void { + this.native.setTabText(tabIndex, tabText); + } + setCurrentIndex(index: number): void { this.native.setCurrentIndex(index); }