implemented QFontDatabase families method (#392)
* implemented QFontDatabase families method * fixed linting
This commit is contained in:
parent
87e4045a75
commit
c97efce5f6
@ -21,6 +21,7 @@ class DLL_EXPORT QFontDatabaseWrap
|
||||
QFontDatabase* getInternalInstance();
|
||||
// Wrapped methods
|
||||
Napi::Value bold(const Napi::CallbackInfo& info);
|
||||
Napi::Value families(const Napi::CallbackInfo& info);
|
||||
Napi::Value italic(const Napi::CallbackInfo& info);
|
||||
Napi::Value weight(const Napi::CallbackInfo& info);
|
||||
};
|
||||
|
||||
@ -12,6 +12,7 @@ Napi::Object QFontDatabaseWrap::init(Napi::Env env, Napi::Object exports) {
|
||||
{InstanceMethod("bold", &QFontDatabaseWrap::bold),
|
||||
InstanceMethod("italic", &QFontDatabaseWrap::italic),
|
||||
InstanceMethod("weight", &QFontDatabaseWrap::weight),
|
||||
InstanceMethod("families", &QFontDatabaseWrap::families),
|
||||
StaticMethod("addApplicationFont",
|
||||
&StaticQFontDatabaseWrapMethods::addApplicationFont),
|
||||
StaticMethod("removeApplicationFont",
|
||||
@ -34,6 +35,21 @@ QFontDatabase* QFontDatabaseWrap::getInternalInstance() {
|
||||
return this->instance.get();
|
||||
}
|
||||
|
||||
Napi::Value QFontDatabaseWrap::families(const Napi::CallbackInfo& info) {
|
||||
Napi::Env env = info.Env();
|
||||
int writingSystem = 0;
|
||||
if (info.Length() == 1) {
|
||||
writingSystem = info[0].As<Napi::Number>().Int32Value();
|
||||
}
|
||||
QStringList families = this->instance->families(static_cast<QFontDatabase::WritingSystem>(writingSystem));
|
||||
Napi::Array familiesNapi = Napi::Array::New(env, families.size());
|
||||
for (int i = 0; i < families.size(); i++) {
|
||||
familiesNapi[i] = Napi::String::New(env, families[i].toStdString());
|
||||
}
|
||||
|
||||
return familiesNapi;
|
||||
}
|
||||
|
||||
Napi::Value QFontDatabaseWrap::bold(const Napi::CallbackInfo& info) {
|
||||
Napi::Env env = info.Env();
|
||||
Napi::HandleScope scope(env);
|
||||
|
||||
@ -1,36 +1,6 @@
|
||||
import addon from '../utils/addon';
|
||||
import { Component, NativeElement } from '../core/Component';
|
||||
|
||||
export class QFontDatabase extends Component {
|
||||
native: NativeElement;
|
||||
constructor() {
|
||||
super();
|
||||
this.native = new addon.QFontDatabase();
|
||||
}
|
||||
bold(family: string, style: string): boolean {
|
||||
return this.native.bold(family, style);
|
||||
}
|
||||
italic(family: string, style: string): boolean {
|
||||
return this.native.italic(family, style);
|
||||
}
|
||||
weight(family: string, style: string): number {
|
||||
return this.native.weight(family, style);
|
||||
}
|
||||
static addApplicationFont(fileName: string): number {
|
||||
return addon.QFontDatabase.addApplicationFont(fileName);
|
||||
}
|
||||
static removeApplicationFont(id: number): boolean {
|
||||
return addon.QFontDatabase.removeApplicationFont(id);
|
||||
}
|
||||
}
|
||||
|
||||
export enum SystemFont {
|
||||
GeneralFont,
|
||||
FixedFont,
|
||||
TitleFont,
|
||||
SmallestReadableFont,
|
||||
}
|
||||
|
||||
export enum WritingSystem {
|
||||
Any = 0,
|
||||
Latin = 1,
|
||||
@ -68,3 +38,36 @@ export enum WritingSystem {
|
||||
Runic = 32,
|
||||
Nko = 33,
|
||||
}
|
||||
|
||||
export class QFontDatabase extends Component {
|
||||
native: NativeElement;
|
||||
constructor() {
|
||||
super();
|
||||
this.native = new addon.QFontDatabase();
|
||||
}
|
||||
families(ws: WritingSystem = WritingSystem.Any): string[] {
|
||||
return this.native.families(ws);
|
||||
}
|
||||
bold(family: string, style: string): boolean {
|
||||
return this.native.bold(family, style);
|
||||
}
|
||||
italic(family: string, style: string): boolean {
|
||||
return this.native.italic(family, style);
|
||||
}
|
||||
weight(family: string, style: string): number {
|
||||
return this.native.weight(family, style);
|
||||
}
|
||||
static addApplicationFont(fileName: string): number {
|
||||
return addon.QFontDatabase.addApplicationFont(fileName);
|
||||
}
|
||||
static removeApplicationFont(id: number): boolean {
|
||||
return addon.QFontDatabase.removeApplicationFont(id);
|
||||
}
|
||||
}
|
||||
|
||||
export enum SystemFont {
|
||||
GeneralFont,
|
||||
FixedFont,
|
||||
TitleFont,
|
||||
SmallestReadableFont,
|
||||
}
|
||||
|
||||
15
src/lib/QtGui/__tests__/QFontDatabase.test.ts
Normal file
15
src/lib/QtGui/__tests__/QFontDatabase.test.ts
Normal file
@ -0,0 +1,15 @@
|
||||
import { QFontDatabase, WritingSystem } from '../QFontDatabase';
|
||||
|
||||
describe('QFont', () => {
|
||||
it('initialize empty', () => {
|
||||
const fontDatabase = new QFontDatabase();
|
||||
expect(fontDatabase).toBeTruthy();
|
||||
});
|
||||
it('families', () => {
|
||||
const fontDatabase = new QFontDatabase();
|
||||
expect(fontDatabase.native).toBeTruthy();
|
||||
expect(fontDatabase.families).toBeTruthy();
|
||||
expect(fontDatabase.families().length).toBeTruthy();
|
||||
expect(fontDatabase.families(WritingSystem.Runic).length < fontDatabase.families().length).toBeTruthy();
|
||||
});
|
||||
});
|
||||
Loading…
Reference in New Issue
Block a user