From a577689cd4ace9608d1115d31fd4226521093b51 Mon Sep 17 00:00:00 2001 From: Simon Edwards Date: Sun, 8 Aug 2021 20:45:41 +0200 Subject: [PATCH] Add `QFontDatabase.applicationFontFamilies()` --- .../QtGui/QFontDatabase/qfontdatabase_wrap.h | 1 + .../QFontDatabase/qfontdatabase_wrap.cpp | 19 +++++++++++++++++++ src/lib/QtGui/QFontDatabase.ts | 3 +++ 3 files changed, 23 insertions(+) diff --git a/src/cpp/include/nodegui/QtGui/QFontDatabase/qfontdatabase_wrap.h b/src/cpp/include/nodegui/QtGui/QFontDatabase/qfontdatabase_wrap.h index f0367cfd6..ec1882f8a 100644 --- a/src/cpp/include/nodegui/QtGui/QFontDatabase/qfontdatabase_wrap.h +++ b/src/cpp/include/nodegui/QtGui/QFontDatabase/qfontdatabase_wrap.h @@ -30,5 +30,6 @@ class DLL_EXPORT QFontDatabaseWrap namespace StaticQFontDatabaseWrapMethods { DLL_EXPORT Napi::Value addApplicationFont(const Napi::CallbackInfo& info); +DLL_EXPORT Napi::Value applicationFontFamilies(const Napi::CallbackInfo& info); DLL_EXPORT Napi::Value removeApplicationFont(const Napi::CallbackInfo& info); } // namespace StaticQFontDatabaseWrapMethods diff --git a/src/cpp/lib/QtGui/QFontDatabase/qfontdatabase_wrap.cpp b/src/cpp/lib/QtGui/QFontDatabase/qfontdatabase_wrap.cpp index 0dc07d22e..8568d31f1 100644 --- a/src/cpp/lib/QtGui/QFontDatabase/qfontdatabase_wrap.cpp +++ b/src/cpp/lib/QtGui/QFontDatabase/qfontdatabase_wrap.cpp @@ -17,6 +17,8 @@ Napi::Object QFontDatabaseWrap::init(Napi::Env env, Napi::Object exports) { InstanceMethod("families", &QFontDatabaseWrap::families), StaticMethod("addApplicationFont", &StaticQFontDatabaseWrapMethods::addApplicationFont), + StaticMethod("applicationFontFamilies", + &StaticQFontDatabaseWrapMethods::applicationFontFamilies), StaticMethod("removeApplicationFont", &StaticQFontDatabaseWrapMethods::removeApplicationFont), COMPONENT_WRAPPED_METHODS_EXPORT_DEFINE(QFontDatabaseWrap)}); @@ -123,6 +125,23 @@ Napi::Value StaticQFontDatabaseWrapMethods::addApplicationFont( return Napi::Value::From(env, id); } +Napi::Value StaticQFontDatabaseWrapMethods::applicationFontFamilies( + const Napi::CallbackInfo& info) { + Napi::Env env = info.Env(); + Napi::HandleScope scope(env); + + int id = info[0].As().Int32Value(); + QStringList keys = QFontDatabase::applicationFontFamilies(id); + Napi::Array js_array = Napi::Array::New(env, keys.size()); + + for (int i = 0; i < keys.size(); i++) { + Napi::Value value = Napi::String::New(env, keys.at(i).toUtf8().constData()); + js_array[i] = value; + } + + return js_array; +} + Napi::Value StaticQFontDatabaseWrapMethods::removeApplicationFont( const Napi::CallbackInfo& info) { Napi::Env env = info.Env(); diff --git a/src/lib/QtGui/QFontDatabase.ts b/src/lib/QtGui/QFontDatabase.ts index 6cbd572f0..d38218aac 100644 --- a/src/lib/QtGui/QFontDatabase.ts +++ b/src/lib/QtGui/QFontDatabase.ts @@ -66,6 +66,9 @@ export class QFontDatabase extends Component { static addApplicationFont(fileName: string): number { return addon.QFontDatabase.addApplicationFont(fileName); } + static applicationFontFamilies(id: number): string[] { + return addon.QFontDatabase.applicationFontFamilies(id); + } static removeApplicationFont(id: number): boolean { return addon.QFontDatabase.removeApplicationFont(id); }