Add QFontDatabase.applicationFontFamilies()

This commit is contained in:
Simon Edwards 2021-08-08 20:45:41 +02:00
parent d3f6d6d092
commit a577689cd4
3 changed files with 23 additions and 0 deletions

View File

@ -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

View File

@ -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<Napi::Number>().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();

View File

@ -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);
}