Add QApplication.setStyleSheet()
This commit is contained in:
parent
f319a24ad3
commit
880a8433cb
@ -29,7 +29,7 @@ class DLL_EXPORT QApplicationWrap : public Napi::ObjectWrap<QApplicationWrap> {
|
||||
Napi::Value setQuitOnLastWindowClosed(const Napi::CallbackInfo& info);
|
||||
Napi::Value quitOnLastWindowClosed(const Napi::CallbackInfo& info);
|
||||
Napi::Value palette(const Napi::CallbackInfo& info);
|
||||
// setStyleSheet
|
||||
Napi::Value setStyleSheet(const Napi::CallbackInfo& info);
|
||||
};
|
||||
|
||||
namespace StaticQApplicationWrapMethods {
|
||||
|
||||
@ -22,6 +22,7 @@ Napi::Object QApplicationWrap::init(Napi::Env env, Napi::Object exports) {
|
||||
InstanceMethod("quitOnLastWindowClosed",
|
||||
&QApplicationWrap::quitOnLastWindowClosed),
|
||||
InstanceMethod("palette", &QApplicationWrap::palette),
|
||||
InstanceMethod("setStyleSheet", &QApplicationWrap::setStyleSheet),
|
||||
StaticMethod("instance", &StaticQApplicationWrapMethods::instance),
|
||||
StaticMethod("clipboard", &StaticQApplicationWrapMethods::clipboard),
|
||||
StaticMethod("style", &StaticQApplicationWrapMethods::style),
|
||||
@ -92,6 +93,19 @@ Napi::Value QApplicationWrap::palette(const Napi::CallbackInfo& info) {
|
||||
{Napi::External<QPalette>::New(env, palette)});
|
||||
}
|
||||
|
||||
Napi::Value QApplicationWrap::setStyleSheet(const Napi::CallbackInfo& info) {
|
||||
Napi::Env env = info.Env();
|
||||
Napi::HandleScope scope(env);
|
||||
Napi::String text = info[0].As<Napi::String>();
|
||||
std::string style = text.Utf8Value();
|
||||
QString newStyle = QString::fromStdString(style);
|
||||
QString currentStyleSheet = this->instance->styleSheet();
|
||||
if (newStyle != currentStyleSheet) {
|
||||
this->instance->setStyleSheet(newStyle);
|
||||
}
|
||||
return env.Null();
|
||||
}
|
||||
|
||||
Napi::Value StaticQApplicationWrapMethods::instance(
|
||||
const Napi::CallbackInfo& info) {
|
||||
Napi::Env env = info.Env();
|
||||
|
||||
@ -6,9 +6,11 @@ import { QStyle } from './QStyle';
|
||||
import { QObjectSignals, NodeObject } from '../QtCore/QObject';
|
||||
import { QDesktopWidget } from '../QtWidgets/QDesktopWidget';
|
||||
import { QPalette } from './QPalette';
|
||||
import { StyleSheet } from '../core/Style/StyleSheet';
|
||||
import memoizeOne from 'memoize-one';
|
||||
|
||||
/**
|
||||
|
||||
|
||||
> QApplication is the root object for the entire application. It manages app level settings.
|
||||
|
||||
* **This class is a JS wrapper around Qt's [QApplication class](https://doc.qt.io/qt-5/qapplication.html)**
|
||||
@ -37,6 +39,8 @@ export class QApplication extends NodeObject<QApplicationSignals> {
|
||||
}
|
||||
super(native);
|
||||
this.native = native;
|
||||
|
||||
this.setStyleSheet = memoizeOne(this.setStyleSheet);
|
||||
}
|
||||
static clipboard(): QClipboard {
|
||||
return new QClipboard(addon.QApplication.clipboard());
|
||||
@ -66,6 +70,10 @@ export class QApplication extends NodeObject<QApplicationSignals> {
|
||||
palette(): QPalette {
|
||||
return new QPalette(this.native.palette());
|
||||
}
|
||||
setStyleSheet(styleSheet: string): void {
|
||||
const preparedSheet = StyleSheet.create(styleSheet);
|
||||
this.native.setStyleSheet(preparedSheet);
|
||||
}
|
||||
static style(): QStyle {
|
||||
return new QStyle(addon.QApplication.style());
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user