Bugfix: inline stylesheet (#228)

* Bugfix: inline stylesheet

* bump version
This commit is contained in:
Atul R 2019-11-26 20:29:23 +01:00 committed by GitHub
parent 6d13aa448f
commit 3a404d24a1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 24 additions and 6 deletions

2
package-lock.json generated
View File

@ -1,6 +1,6 @@
{
"name": "@nodegui/nodegui",
"version": "0.6.7",
"version": "0.6.8",
"lockfileVersion": 1,
"requires": true,
"dependencies": {

View File

@ -1,6 +1,6 @@
{
"name": "@nodegui/nodegui",
"version": "0.6.7",
"version": "0.6.8",
"description": "A cross platform library to build native desktop apps.",
"main": "dist/index.js",
"typings": "dist/index.d.ts",

View File

@ -15,6 +15,7 @@ import { QSize } from '../QtCore/QSize';
// Implement all native QWidget methods here so that all widgets get access to those aswell
export abstract class NodeWidget extends YogaWidget {
layout?: NodeLayout;
_rawInlineStyle = '';
type = 'widget';
show(): void {
this.native.show();
@ -36,6 +37,7 @@ export abstract class NodeWidget extends YogaWidget {
return this.native.styleSheet();
}
setInlineStyle(style: string): void {
this._rawInlineStyle = style;
const preparedSheet = prepareInlineStyleSheet(this, style);
this.native.setStyleSheet(preparedSheet);
}
@ -136,6 +138,12 @@ export abstract class NodeWidget extends YogaWidget {
adjustSize(): void {
this.native.adjustSize();
}
setObjectName(objectName: string): void {
super.setObjectName(objectName);
if (this._rawInlineStyle) {
this.setInlineStyle(this._rawInlineStyle);
}
}
}
type Rect = {

View File

@ -19,8 +19,8 @@ describe('QWidget', () => {
view.hide();
expect(view.isVisible()).toEqual(false);
});
it('setStyleSheet', async () => {
await view.setStyleSheet(`
it('setStyleSheet', () => {
view.setStyleSheet(`
#test {
color: blue;
}`);
@ -29,9 +29,19 @@ describe('QWidget', () => {
color: blue;
}`);
});
it('setInlineStyle', async () => {
it('setInlineStyle', () => {
view.setObjectName('test');
view.setInlineStyle('color: black;');
expect(view.styleSheet()).toEqual(`
#test {
color: black;
}
`);
});
it('correct inline stylesheet after objectName has been set', () => {
view.setObjectName('someobjectName');
view.setInlineStyle('color: black;');
view.setObjectName('test');
await view.setInlineStyle('color: black;');
expect(view.styleSheet()).toEqual(`
#test {
color: black;