From bbb0951525c8c3c0a019b5f187392685d4999e18 Mon Sep 17 00:00:00 2001 From: Simon Edwards Date: Mon, 26 Dec 2022 11:54:21 +0100 Subject: [PATCH] Upgrade to Qt 6.4.1 --- CMakeLists.txt | 9 +-- README.md | 2 +- config/qt.cmake | 12 ++-- config/qtConfig.js | 32 +++++----- .../QAbstractButton/qabstractbutton_macro.h | 3 +- .../QtWidgets/QButtonGroup/nbuttongroup.hpp | 26 +++++++- .../QtWidgets/QTextBrowser/ntextbrowser.hpp | 6 +- .../nodegui/QtWidgets/QWidget/nwidget.hpp | 2 +- src/cpp/lib/Extras/Utils/nutils.cpp | 4 +- src/cpp/lib/QtCore/QTime/qtime_wrap.cpp | 20 ------- src/cpp/lib/QtGui/QFont/qfont_wrap.cpp | 4 +- .../QMainWindow/qmainwindow_wrap.cpp | 13 ---- src/cpp/lib/core/YogaWidget/nodestyle.cpp | 2 +- src/lib/QtCore/QTime.ts | 9 --- src/lib/QtGui/QFont.ts | 18 +++--- src/lib/QtWidgets/QAbstractButton.ts | 4 +- src/lib/QtWidgets/QButtonGroup.ts | 5 +- src/lib/QtWidgets/QMainWindow.ts | 3 - yarn.lock | 60 ++++++++++++------- 19 files changed, 117 insertions(+), 117 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 9336bb9b1..b4d2f860a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -271,8 +271,9 @@ endif() target_link_libraries(${CORE_WIDGETS_ADDON} PRIVATE "${CMAKE_JS_LIB}" - Qt5::Widgets - Qt5::Core - Qt5::Gui - Qt5::Svg + Qt6::Widgets + Qt6::Core + Qt6::Gui + Qt6::Svg + Qt6::SvgWidgets ) diff --git a/README.md b/README.md index fe0307bba..a64b8f622 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,7 @@ Build **performant**, **native** and **cross-platform** desktop applications with **Node.js** and **CSS like styling**.🚀 -NodeGUI is powered by **Qt5** 💚 which makes it CPU and memory efficient as compared to other chromium based solutions like Electron. +NodeGUI is powered by **Qt6** 💚 which makes it CPU and memory efficient as compared to other chromium based solutions like Electron. If you are looking for **React** based version, check out: **[React NodeGUI](https://github.com/nodegui/react-nodegui)**. diff --git a/config/qt.cmake b/config/qt.cmake index 858b4e81f..ac64f9674 100644 --- a/config/qt.cmake +++ b/config/qt.cmake @@ -8,7 +8,7 @@ set(CMAKE_AUTOUIC ON) set(QTCONFIG_FILE ${CMAKE_CURRENT_LIST_DIR}/qtConfig.js) -macro(AddQtSupport addonName) +macro(AddQtSupport addonName) execute_process(COMMAND node -p "require('${QTCONFIG_FILE}').qtCmakeDir" WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} OUTPUT_VARIABLE QT_CMAKE_HOME_DIR @@ -16,10 +16,10 @@ macro(AddQtSupport addonName) string(REPLACE "\n" "" QT_CMAKE_HOME_DIR "${QT_CMAKE_HOME_DIR}") string(REPLACE "\"" "" QT_CMAKE_HOME_DIR "${QT_CMAKE_HOME_DIR}") - - message(STATUS "Using QT installation for ${addonName} QT_CMAKE_HOME_DIR:${QT_CMAKE_HOME_DIR}") - set(Qt5_DIR ${QT_CMAKE_HOME_DIR}) - find_package(Qt5 COMPONENTS Widgets Gui Core Svg REQUIRED) - + message(STATUS "Using Qt installation for ${addonName} QT_CMAKE_HOME_DIR:${QT_CMAKE_HOME_DIR}") + + list(APPEND CMAKE_PREFIX_PATH "${QT_CMAKE_HOME_DIR}/../../..") + find_package(Qt6 REQUIRED COMPONENTS Widgets Gui Core Svg SvgWidgets) + endmacro(AddQtSupport addonName) diff --git a/config/qtConfig.js b/config/qtConfig.js index 7cf0a564a..4003c07b8 100644 --- a/config/qtConfig.js +++ b/config/qtConfig.js @@ -3,7 +3,7 @@ const path = require('path'); const fs = require('fs'); const SETUP_DIR = path.resolve(__dirname, '..', 'miniqt'); -const QT_VERSION = '5.15.2'; +const QT_VERSION = '6.4.1'; const MIRROR = Boolean(process.env.QT_LINK_MIRROR) ? process.env.QT_LINK_MIRROR : 'https://download.qt.io'; const checkIfExists = (fullPath) => { @@ -14,13 +14,13 @@ function getMiniQtConfig() { switch (os.platform()) { case 'darwin': { if (os.arch() === 'arm64') { - const qtHome = path.resolve(SETUP_DIR, 'Qt-5.15.3'); + const qtHome = path.resolve(SETUP_DIR, 'Qt-6.4.1'); return { qtHome, artifacts: [ { name: 'Mini Qt Bundle', - link: `https://github.com/nodegui/nodegui/releases/download/miniQtm1-5153/Qt-5.15.3.zip`, + link: `https://github.com/nodegui/nodegui/releases/download/miniQtm1-5153/Qt-6.4.1.zip`, skipSetup: checkIfExists(path.resolve(qtHome, 'plugins', 'platforms', 'libqcocoa.dylib')), }, ], @@ -32,17 +32,17 @@ function getMiniQtConfig() { artifacts: [ { name: 'Qt Base', - link: `${MIRROR}/online/qtsdkrepository/mac_x64/desktop/qt5_5152/qt.qt5.5152.clang_64/5.15.2-0-202011130601qtbase-MacOS-MacOS_10_13-Clang-MacOS-MacOS_10_13-X86_64.7z`, + link: `${MIRROR}/online/qtsdkrepository/mac_x64/desktop/qt6_641/qt.qt6.641.clang_64/6.4.1-0-202211101256qtbase-MacOS-MacOS_12-Clang-MacOS-MacOS_12-X86_64-ARM64.7z`, skipSetup: checkIfExists(path.resolve(qtHome, 'plugins', 'platforms', 'libqcocoa.dylib')), }, { name: 'Qt Svg', - link: `${MIRROR}/online/qtsdkrepository/mac_x64/desktop/qt5_5152/qt.qt5.5152.clang_64/5.15.2-0-202011130601qtsvg-MacOS-MacOS_10_13-Clang-MacOS-MacOS_10_13-X86_64.7z`, + link: `${MIRROR}/online/qtsdkrepository/mac_x64/desktop/qt6_641/qt.qt6.641.clang_64/6.4.1-0-202211101256qtsvg-MacOS-MacOS_12-Clang-MacOS-MacOS_12-X86_64-ARM64.7z`, skipSetup: checkIfExists(path.resolve(qtHome, 'lib', 'QtSvg.framework', 'QtSvg')), }, { name: 'Qt Tools', - link: `${MIRROR}/online/qtsdkrepository/mac_x64/desktop/qt5_5152/qt.qt5.5152.clang_64/5.15.2-0-202011130601qttools-MacOS-MacOS_10_13-Clang-MacOS-MacOS_10_13-X86_64.7z`, + link: `${MIRROR}/online/qtsdkrepository/mac_x64/desktop/qt6_641/qt.qt6.641.clang_64/6.4.1-0-202211101256qttools-MacOS-MacOS_12-Clang-MacOS-MacOS_12-X86_64-ARM64.7z`, skipSetup: checkIfExists(path.resolve(qtHome, 'bin', 'macdeployqt')), }, ], @@ -56,17 +56,17 @@ function getMiniQtConfig() { artifacts: [ { name: 'Qt Base', - link: `${MIRROR}/online/qtsdkrepository/windows_x86/desktop/qt5_5152/qt.qt5.5152.win64_msvc2019_64/5.15.2-0-202011130602qtbase-Windows-Windows_10-MSVC2019-Windows-Windows_10-X86_64.7z`, - skipSetup: checkIfExists(path.resolve(qtHome, 'bin', 'Qt5Core.dll')), + link: `${MIRROR}/online/qtsdkrepository/windows_x86/desktop/qt6_641/qt.qt6.641.win64_msvc2019_64/6.4.1-0-202211101254qtbase-Windows-Windows_10_21H2-MSVC2019-Windows-Windows_10_21H2-X86_64.7z`, + skipSetup: checkIfExists(path.resolve(qtHome, 'bin', 'Qt6Core.dll')), }, { name: 'Qt SVG', - link: `${MIRROR}/online/qtsdkrepository/windows_x86/desktop/qt5_5152/qt.qt5.5152.win64_msvc2019_64/5.15.2-0-202011130602qtsvg-Windows-Windows_10-MSVC2019-Windows-Windows_10-X86_64.7z`, - skipSetup: checkIfExists(path.resolve(qtHome, 'bin', 'Qt5Svg.dll')), + link: `${MIRROR}/online/qtsdkrepository/windows_x86/desktop/qt6_641/qt.qt6.641.win64_msvc2019_64/6.4.1-0-202211101254qtsvg-Windows-Windows_10_21H2-MSVC2019-Windows-Windows_10_21H2-X86_64.7z`, + skipSetup: checkIfExists(path.resolve(qtHome, 'bin', 'Qt6Svg.dll')), }, { name: 'Qt Tools', - link: `${MIRROR}/online/qtsdkrepository/windows_x86/desktop/qt5_5152/qt.qt5.5152.win64_msvc2019_64/5.15.2-0-202011130602qttools-Windows-Windows_10-MSVC2019-Windows-Windows_10-X86_64.7z`, + link: `${MIRROR}/online/qtsdkrepository/windows_x86/desktop/qt6_641/qt.qt6.641.win64_msvc2019_64/6.4.1-0-202211101254qttools-Windows-Windows_10_21H2-MSVC2019-Windows-Windows_10_21H2-X86_64.7z`, skipSetup: checkIfExists(path.resolve(qtHome, 'bin', 'windeployqt.exe')), }, ], @@ -79,17 +79,17 @@ function getMiniQtConfig() { artifacts: [ { name: 'Qt Base', - link: `${MIRROR}/online/qtsdkrepository/linux_x64/desktop/qt5_5152/qt.qt5.5152.gcc_64/5.15.2-0-202011130601qtbase-Linux-RHEL_7_6-GCC-Linux-RHEL_7_6-X86_64.7z`, + link: `${MIRROR}/online/qtsdkrepository/linux_x64/desktop/qt6_641/qt.qt6.641.gcc_64/6.4.1-0-202211101305qtbase-Linux-RHEL_8_4-GCC-Linux-RHEL_8_4-X86_64.7z`, skipSetup: checkIfExists(path.resolve(qtHome, 'bin', 'moc')), }, { name: 'Qt SVG', - link: `${MIRROR}/online/qtsdkrepository/linux_x64/desktop/qt5_5152/qt.qt5.5152.gcc_64/5.15.2-0-202011130601qtsvg-Linux-RHEL_7_6-GCC-Linux-RHEL_7_6-X86_64.7z`, - skipSetup: checkIfExists(path.resolve(qtHome, 'lib', 'libQt5Svg.so')), + link: `${MIRROR}/online/qtsdkrepository/linux_x64/desktop/qt6_641/qt.qt6.641.gcc_64/6.4.1-0-202211101305qtsvg-Linux-RHEL_8_4-GCC-Linux-RHEL_8_4-X86_64.7z`, + skipSetup: checkIfExists(path.resolve(qtHome, 'lib', 'libQt6Svg.so')), }, { name: 'Qt ICU', - link: `${MIRROR}/online/qtsdkrepository/linux_x64/desktop/qt5_5152/qt.qt5.5152.gcc_64/5.15.2-0-202011130601icu-linux-Rhel7.2-x64.7z`, + link: `${MIRROR}/online/qtsdkrepository/linux_x64/desktop/qt6_641/qt.qt6.641.gcc_64/6.4.1-0-202211101305icu-linux-Rhel7.2-x64.7z`, skipSetup: checkIfExists(path.resolve(qtHome, 'lib', 'libicuuc.so')), }, ], @@ -106,7 +106,7 @@ const miniQt = { const useCustomQt = Boolean(process.env.QT_INSTALL_DIR); const qtHome = useCustomQt ? process.env.QT_INSTALL_DIR : miniQt.qtHome; -const qtCmakeDir = path.resolve(qtHome, 'lib', 'cmake', 'Qt5'); +const qtCmakeDir = path.resolve(qtHome, 'lib', 'cmake', 'Qt6'); module.exports = { qtHome, diff --git a/src/cpp/include/nodegui/QtWidgets/QAbstractButton/qabstractbutton_macro.h b/src/cpp/include/nodegui/QtWidgets/QAbstractButton/qabstractbutton_macro.h index c15bfc9a1..d278f67dd 100644 --- a/src/cpp/include/nodegui/QtWidgets/QAbstractButton/qabstractbutton_macro.h +++ b/src/cpp/include/nodegui/QtWidgets/QAbstractButton/qabstractbutton_macro.h @@ -16,8 +16,7 @@ QWIDGET_WRAPPED_METHODS_DECLARATION \ Napi::Value animateClick(const Napi::CallbackInfo& info) { \ Napi::Env env = info.Env(); \ - int msec = info[0].As().Int32Value(); \ - this->instance->animateClick(msec); \ + this->instance->animateClick(); \ return env.Null(); \ } \ Napi::Value click(const Napi::CallbackInfo& info) { \ diff --git a/src/cpp/include/nodegui/QtWidgets/QButtonGroup/nbuttongroup.hpp b/src/cpp/include/nodegui/QtWidgets/QButtonGroup/nbuttongroup.hpp index 89040281c..dfcb9fa26 100644 --- a/src/cpp/include/nodegui/QtWidgets/QButtonGroup/nbuttongroup.hpp +++ b/src/cpp/include/nodegui/QtWidgets/QButtonGroup/nbuttongroup.hpp @@ -15,12 +15,34 @@ class DLL_EXPORT NButtonGroup : public QButtonGroup, public EventWidget { virtual void connectSignalsToEventEmitter() { QOBJECT_SIGNALS // Qt Connects: Implement all signal connects here - connect(this, QOverload::of(&QButtonGroup::buttonClicked), + connect(this, &QButtonGroup::idClicked, [=](int id) { Napi::Env env = this->emitOnNode.Env(); Napi::HandleScope scope(env); - this->emitOnNode.Call({Napi::String::New(env, "buttonClicked"), + this->emitOnNode.Call({Napi::String::New(env, "idClicked"), Napi::Number::New(env, id)}); }); + connect(this, &QButtonGroup::idPressed, + [=](int id) { + Napi::Env env = this->emitOnNode.Env(); + Napi::HandleScope scope(env); + this->emitOnNode.Call({Napi::String::New(env, "idPressed"), + Napi::Number::New(env, id)}); + }); + connect(this, &QButtonGroup::idReleased, + [=](int id) { + Napi::Env env = this->emitOnNode.Env(); + Napi::HandleScope scope(env); + this->emitOnNode.Call({Napi::String::New(env, "idReleased"), + Napi::Number::New(env, id)}); + }); + connect(this, &QButtonGroup::idToggled, + [=](int id, bool checked) { + Napi::Env env = this->emitOnNode.Env(); + Napi::HandleScope scope(env); + this->emitOnNode.Call({Napi::String::New(env, "idToggled"), + Napi::Number::New(env, id), + Napi::Boolean::New(env, checked)}); + }); } }; diff --git a/src/cpp/include/nodegui/QtWidgets/QTextBrowser/ntextbrowser.hpp b/src/cpp/include/nodegui/QtWidgets/QTextBrowser/ntextbrowser.hpp index 31493fed4..e65d0ed20 100644 --- a/src/cpp/include/nodegui/QtWidgets/QTextBrowser/ntextbrowser.hpp +++ b/src/cpp/include/nodegui/QtWidgets/QTextBrowser/ntextbrowser.hpp @@ -39,12 +39,12 @@ class DLL_EXPORT NTextBrowser : public QTextBrowser, public NodeWidget { Napi::Boolean::New(env, available)}); }); QObject::connect( - this, QOverload::of(&QTextBrowser::highlighted), - [=](const QString& link) { + this, &QTextBrowser::highlighted, + [=](const QUrl& link) { Napi::Env env = this->emitOnNode.Env(); Napi::HandleScope scope(env); this->emitOnNode.Call({Napi::String::New(env, "highlighted"), - Napi::String::New(env, link.toStdString())}); + Napi::String::New(env, link.toString().toStdString())}); }); QObject::connect(this, &QTextBrowser::historyChanged, [=]() { Napi::Env env = this->emitOnNode.Env(); diff --git a/src/cpp/include/nodegui/QtWidgets/QWidget/nwidget.hpp b/src/cpp/include/nodegui/QtWidgets/QWidget/nwidget.hpp index 99f65b5d6..d0dc970cb 100644 --- a/src/cpp/include/nodegui/QtWidgets/QWidget/nwidget.hpp +++ b/src/cpp/include/nodegui/QtWidgets/QWidget/nwidget.hpp @@ -16,7 +16,7 @@ class DLL_EXPORT NWidget : public QWidget, public NodeWidget { // https://doc.qt.io/qt-5/stylesheet-reference.html void paintEvent(QPaintEvent* e) override { QStyleOption opt; - opt.init(this); + opt.initFrom(this); QPainter p(this); style()->drawPrimitive(QStyle::PE_Widget, &opt, &p, this); QWidget::paintEvent(e); diff --git a/src/cpp/lib/Extras/Utils/nutils.cpp b/src/cpp/lib/Extras/Utils/nutils.cpp index ed4990072..30e177779 100644 --- a/src/cpp/lib/Extras/Utils/nutils.cpp +++ b/src/cpp/lib/Extras/Utils/nutils.cpp @@ -71,10 +71,10 @@ QVariant* extrautils::convertToQVariant(Napi::Env& env, Napi::Value& value) { } else if (value.IsObject()) { Napi::Object object = value.As(); std::string className = getNapiObjectClassName(object); - int typeId = QMetaType::type(className.c_str()); + QMetaType type = QMetaType::fromName(className.c_str()); ComponentWrap* componentWrap = Napi::ObjectWrap::Unwrap(object); - return new QVariant(typeId, componentWrap->rawData); + return new QVariant(type, componentWrap->rawData); } else if (value.IsFunction()) { return new QVariant(); diff --git a/src/cpp/lib/QtCore/QTime/qtime_wrap.cpp b/src/cpp/lib/QtCore/QTime/qtime_wrap.cpp index 808805226..9b8311ab5 100644 --- a/src/cpp/lib/QtCore/QTime/qtime_wrap.cpp +++ b/src/cpp/lib/QtCore/QTime/qtime_wrap.cpp @@ -12,7 +12,6 @@ Napi::Object QTimeWrap::init(Napi::Env env, Napi::Object exports) { env, CLASSNAME, {InstanceMethod("addMSecs", &QTimeWrap::addMSecs), InstanceMethod("addSecs", &QTimeWrap::addSecs), - InstanceMethod("elapsed", &QTimeWrap::elapsed), InstanceMethod("hour", &QTimeWrap::hour), InstanceMethod("isNull", &QTimeWrap::isNull), InstanceMethod("isValid", &QTimeWrap::isValid), @@ -20,11 +19,9 @@ Napi::Object QTimeWrap::init(Napi::Env env, Napi::Object exports) { InstanceMethod("msec", &QTimeWrap::msec), InstanceMethod("msecsSinceStartOfDay", &QTimeWrap::msecsSinceStartOfDay), InstanceMethod("msecsTo", &QTimeWrap::msecsTo), - InstanceMethod("restart", &QTimeWrap::restart), InstanceMethod("second", &QTimeWrap::second), InstanceMethod("secsTo", &QTimeWrap::secsTo), InstanceMethod("setHMS", &QTimeWrap::setHMS), - InstanceMethod("start", &QTimeWrap::start), InstanceMethod("toString$", &QTimeWrap::toString), StaticMethod("currentTime", &StaticTimeWrapMethods::currentTime), StaticMethod("fromMSecsSinceStartOfDay", @@ -81,11 +78,6 @@ Napi::Value QTimeWrap::addSecs(const Napi::CallbackInfo& info) { return instance; } -Napi::Value QTimeWrap::elapsed(const Napi::CallbackInfo& info) { - Napi::Env env = info.Env(); - return Napi::Value::From(env, this->instance->elapsed()); -} - Napi::Value QTimeWrap::hour(const Napi::CallbackInfo& info) { Napi::Env env = info.Env(); return Napi::Value::From(env, this->instance->hour()); @@ -124,12 +116,6 @@ Napi::Value QTimeWrap::msecsTo(const Napi::CallbackInfo& info) { return Napi::Value::From(env, result); } -Napi::Value QTimeWrap::restart(const Napi::CallbackInfo& info) { - Napi::Env env = info.Env(); - int result = this->instance->restart(); - return Napi::Value::From(env, result); -} - Napi::Value QTimeWrap::second(const Napi::CallbackInfo& info) { Napi::Env env = info.Env(); return Napi::Value::From(env, this->instance->second()); @@ -153,12 +139,6 @@ Napi::Value QTimeWrap::setHMS(const Napi::CallbackInfo& info) { return Napi::Value::From(env, result); } -Napi::Value QTimeWrap::start(const Napi::CallbackInfo& info) { - Napi::Env env = info.Env(); - this->instance->start(); - return env.Null(); -} - Napi::Value QTimeWrap::toString(const Napi::CallbackInfo& info) { Napi::Env env = info.Env(); QString result; diff --git a/src/cpp/lib/QtGui/QFont/qfont_wrap.cpp b/src/cpp/lib/QtGui/QFont/qfont_wrap.cpp index 564a4562a..4cfb26921 100644 --- a/src/cpp/lib/QtGui/QFont/qfont_wrap.cpp +++ b/src/cpp/lib/QtGui/QFont/qfont_wrap.cpp @@ -141,13 +141,13 @@ Napi::Value QFontWrap::stretch(const Napi::CallbackInfo& info) { Napi::Value QFontWrap::setWeight(const Napi::CallbackInfo& info) { Napi::Env env = info.Env(); int weight = info[0].As().Int32Value(); - this->instance->setWeight(weight); + this->instance->setWeight(static_cast(weight)); return env.Null(); } Napi::Value QFontWrap::weight(const Napi::CallbackInfo& info) { Napi::Env env = info.Env(); - return Napi::Value::From(env, this->instance->weight()); + return Napi::Value::From(env, static_cast(this->instance->weight())); } Napi::Value QFontWrap::setItalic(const Napi::CallbackInfo& info) { diff --git a/src/cpp/lib/QtWidgets/QMainWindow/qmainwindow_wrap.cpp b/src/cpp/lib/QtWidgets/QMainWindow/qmainwindow_wrap.cpp index a97159ea8..89e0746e2 100644 --- a/src/cpp/lib/QtWidgets/QMainWindow/qmainwindow_wrap.cpp +++ b/src/cpp/lib/QtWidgets/QMainWindow/qmainwindow_wrap.cpp @@ -1,7 +1,6 @@ #include "QtWidgets/QMainWindow/qmainwindow_wrap.h" #include -#include #include "Extras/Utils/nutils.h" #include "QtWidgets/QMenuBar/qmenubar_wrap.h" @@ -21,7 +20,6 @@ Napi::Object QMainWindowWrap::init(Napi::Env env, Napi::Object exports) { InstanceMethod("setMenuBar", &QMainWindowWrap::setMenuBar), InstanceMethod("menuBar", &QMainWindowWrap::menuBar), InstanceMethod("setMenuWidget", &QMainWindowWrap::setMenuWidget), - InstanceMethod("center", &QMainWindowWrap::center), InstanceMethod("setStatusBar", &QMainWindowWrap::setStatusBar), InstanceMethod("statusBar", &QMainWindowWrap::statusBar), QWIDGET_WRAPPED_METHODS_EXPORT_DEFINE(QMainWindowWrap)}); @@ -116,17 +114,6 @@ Napi::Value QMainWindowWrap::setMenuWidget(const Napi::CallbackInfo& info) { return env.Null(); } -Napi::Value QMainWindowWrap::center(const Napi::CallbackInfo& info) { - Napi::Env env = info.Env(); - auto window = this->getInternalInstance(); - // https://wiki.qt.io/How_to_Center_a_Window_on_the_Screen - window->setGeometry( - QStyle::alignedRect(Qt::LeftToRight, Qt::AlignCenter, window->size(), - QApplication::desktop()->availableGeometry(window))); - - return env.Null(); -} - Napi::Value QMainWindowWrap::setStatusBar(const Napi::CallbackInfo& info) { Napi::Env env = info.Env(); Napi::Object statusBarArg = info[0].As(); diff --git a/src/cpp/lib/core/YogaWidget/nodestyle.cpp b/src/cpp/lib/core/YogaWidget/nodestyle.cpp index 7151c3cf7..d42e35cde 100644 --- a/src/cpp/lib/core/YogaWidget/nodestyle.cpp +++ b/src/cpp/lib/core/YogaWidget/nodestyle.cpp @@ -50,7 +50,7 @@ std::unordered_map NodeStyle::NodeWrap{ NodeValueUnit NodeStyle::parseMeasurement(QString rawValue) { float value = std::stof(rawValue.toStdString()); - if (rawValue.back() == "%") { + if (rawValue.back() == '%') { return NodeValueUnit(value, YGUnitPercent); } return NodeValueUnit(value, YGUnitPoint); diff --git a/src/lib/QtCore/QTime.ts b/src/lib/QtCore/QTime.ts index 2a190f651..69f56436b 100644 --- a/src/lib/QtCore/QTime.ts +++ b/src/lib/QtCore/QTime.ts @@ -23,9 +23,6 @@ export class QTime extends Component { addSecs(s: number): QTime { return new QTime(this.native.addSecs(s)); } - elapsed(): number { - return this.native.elapsed(); - } hour(): number { return this.native.hour(); } @@ -47,9 +44,6 @@ export class QTime extends Component { msecsTo(t: QTime): number { return this.native.msecsTo(t.native); } - restart(): number { - return this.native.restart(); - } second(): number { return this.native.second(); } @@ -59,9 +53,6 @@ export class QTime extends Component { setHMS(h: number, m: number, s: number, ms = 0): boolean { return this.native.setHMS(h, m, s, ms); } - start(): void { - this.native.start(); - } toString(format: string | DateFormat): string { return this.native.toString$(format); } diff --git a/src/lib/QtGui/QFont.ts b/src/lib/QtGui/QFont.ts index eeb00c4cc..8c185c644 100644 --- a/src/lib/QtGui/QFont.ts +++ b/src/lib/QtGui/QFont.ts @@ -100,13 +100,13 @@ export enum QFontCapitalization { Capitalize = 4, } export enum QFontWeight { - Thin = 0, - ExtraLight = 12, - Light = 25, - Normal = 50, - Medium = 57, - DemiBold = 63, - Bold = 75, - ExtraBold = 81, - Black = 87, + Thin = 100, + ExtraLight = 200, + Light = 300, + Normal = 400, + Medium = 500, + DemiBold = 600, + Bold = 700, + ExtraBold = 800, + Black = 900, } diff --git a/src/lib/QtWidgets/QAbstractButton.ts b/src/lib/QtWidgets/QAbstractButton.ts index f62b11e8a..1fc7cadeb 100644 --- a/src/lib/QtWidgets/QAbstractButton.ts +++ b/src/lib/QtWidgets/QAbstractButton.ts @@ -14,8 +14,8 @@ It is inherited by QCheckBox, QPushButton, QRadioButton, and QToolButton. */ export abstract class QAbstractButton extends QWidget { - animateClick(msec: number): void { - this.native.animateClick(msec); + animateClick(): void { + this.native.animateClick(); } click(): void { this.native.click(); diff --git a/src/lib/QtWidgets/QButtonGroup.ts b/src/lib/QtWidgets/QButtonGroup.ts index 3fbecdafb..1d5640d15 100644 --- a/src/lib/QtWidgets/QButtonGroup.ts +++ b/src/lib/QtWidgets/QButtonGroup.ts @@ -7,7 +7,10 @@ import { checkIfNativeElement } from '../utils/helpers'; import { wrapperCache } from '../core/WrapperCache'; export interface QButtonGroupSignals extends QObjectSignals { - buttonClicked: (id?: number) => void; + idClicked: (id: number) => void; + idPressed: (id: number) => void; + idReleased: (id: number) => void; + idToggled: (id: number, checked: boolean) => void; } export class QButtonGroup extends QObject { diff --git a/src/lib/QtWidgets/QMainWindow.ts b/src/lib/QtWidgets/QMainWindow.ts index 4fdc5a7e7..0bf6cc02a 100644 --- a/src/lib/QtWidgets/QMainWindow.ts +++ b/src/lib/QtWidgets/QMainWindow.ts @@ -89,9 +89,6 @@ export class QMainWindow extends QWidget { } return super.layout(); } - center(): void { - this.native.center(); - } /** * Sets the status bar for the main window to statusbar. diff --git a/yarn.lock b/yarn.lock index 8e7663262..b7fac74a6 100644 --- a/yarn.lock +++ b/yarn.lock @@ -545,10 +545,10 @@ "node-fetch" "^2.6.0" "progress" "^2.0.3" -"@nodegui/qode@^16.4.0": - "integrity" "sha512-uNoTR9f02F/SmK+xzvlXJs/yuW0zYcuPZf99v4z7tPeugLukrPbE2MJfsq8edGNfWxu3d+pRwMN+UNYSq0dLgQ==" - "resolved" "https://registry.npmjs.org/@nodegui/qode/-/qode-16.4.0.tgz" - "version" "16.4.0" +"@nodegui/qode@^16.4.3": + "integrity" "sha512-WllfJVXffr3Rn7BSfo5cubZ5hx4OnQ7iqY/kj+2jwqUepzlRFKCvn9/vAJ/VXmiB0GZGcaCGM0U3rZGADdU5mw==" + "resolved" "https://registry.npmjs.org/@nodegui/qode/-/qode-16.4.3.tgz" + "version" "16.4.3" dependencies: "env-paths" "^2.2.1" "make-dir" "^3.1.0" @@ -867,10 +867,10 @@ "resolved" "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz" "version" "2.1.1" -"ansi-regex@^5.0.0": - "integrity" "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" - "resolved" "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz" - "version" "5.0.0" +"ansi-regex@^5.0.0", "ansi-regex@^5.0.1": + "integrity" "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" + "resolved" "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz" + "version" "5.0.1" "ansi-styles@^3.2.1": "integrity" "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==" @@ -2934,9 +2934,11 @@ "version" "4.0.0" "node-fetch@^2.6.0", "node-fetch@^2.6.1": - "integrity" "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==" - "resolved" "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz" - "version" "2.6.1" + "integrity" "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==" + "resolved" "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz" + "version" "2.6.7" + dependencies: + "whatwg-url" "^5.0.0" "node-int64@^0.4.0": "integrity" "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=" @@ -3493,13 +3495,13 @@ "strip-ansi" "^3.0.0" "string-width@^4.1.0", "string-width@^4.2.0": - "integrity" "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==" - "resolved" "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz" - "version" "4.2.2" + "integrity" "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==" + "resolved" "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz" + "version" "4.2.3" dependencies: "emoji-regex" "^8.0.0" "is-fullwidth-code-point" "^3.0.0" - "strip-ansi" "^6.0.0" + "strip-ansi" "^6.0.1" "strip-ansi@^3.0.0", "strip-ansi@^3.0.1": "integrity" "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=" @@ -3508,12 +3510,12 @@ dependencies: "ansi-regex" "^2.0.0" -"strip-ansi@^6.0.0": - "integrity" "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==" - "resolved" "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz" - "version" "6.0.0" +"strip-ansi@^6.0.0", "strip-ansi@^6.0.1": + "integrity" "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==" + "resolved" "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz" + "version" "6.0.1" dependencies: - "ansi-regex" "^5.0.0" + "ansi-regex" "^5.0.1" "strip-bom@^4.0.0": "integrity" "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==" @@ -3673,6 +3675,11 @@ dependencies: "punycode" "^2.1.1" +"tr46@~0.0.3": + "integrity" "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" + "resolved" "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz" + "version" "0.0.3" + "traverse@>=0.3.0 <0.4": "integrity" "sha1-cXuPIgzAu3tE5AUUwisui7xw2Lk=" "resolved" "https://registry.npmjs.org/traverse/-/traverse-0.3.9.tgz" @@ -3867,6 +3874,11 @@ dependencies: "makeerror" "1.0.x" +"webidl-conversions@^3.0.0": + "integrity" "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=" + "resolved" "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz" + "version" "3.0.1" + "webidl-conversions@^5.0.0": "integrity" "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==" "resolved" "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz" @@ -3889,6 +3901,14 @@ "resolved" "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz" "version" "2.3.0" +"whatwg-url@^5.0.0": + "integrity" "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=" + "resolved" "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz" + "version" "5.0.0" + dependencies: + "tr46" "~0.0.3" + "webidl-conversions" "^3.0.0" + "whatwg-url@^8.0.0", "whatwg-url@^8.5.0": "integrity" "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==" "resolved" "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz"