From 3a404d24a13451f218096f83842f94ed127e0811 Mon Sep 17 00:00:00 2001 From: Atul R Date: Tue, 26 Nov 2019 20:29:23 +0100 Subject: [PATCH] Bugfix: inline stylesheet (#228) * Bugfix: inline stylesheet * bump version --- package-lock.json | 2 +- package.json | 2 +- src/lib/QtWidgets/QWidget.ts | 8 ++++++++ src/lib/QtWidgets/__tests__/QWidget.test.ts | 18 ++++++++++++++---- 4 files changed, 24 insertions(+), 6 deletions(-) diff --git a/package-lock.json b/package-lock.json index 1aac7e64b..eda88a4ce 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "@nodegui/nodegui", - "version": "0.6.7", + "version": "0.6.8", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index fb797193c..05a596f90 100644 --- a/package.json +++ b/package.json @@ -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", diff --git a/src/lib/QtWidgets/QWidget.ts b/src/lib/QtWidgets/QWidget.ts index 64d8cffa2..d709e7cc6 100644 --- a/src/lib/QtWidgets/QWidget.ts +++ b/src/lib/QtWidgets/QWidget.ts @@ -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 = { diff --git a/src/lib/QtWidgets/__tests__/QWidget.test.ts b/src/lib/QtWidgets/__tests__/QWidget.test.ts index 2441dbd12..66dbba4d8 100644 --- a/src/lib/QtWidgets/__tests__/QWidget.test.ts +++ b/src/lib/QtWidgets/__tests__/QWidget.test.ts @@ -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;