mirror of
https://github.com/status-im/nimqml.git
synced 2025-02-23 03:48:19 +00:00
Merge pull request #25 from status-im/fix/issue-1725
fix(@desktop/general): Changing System Appearance on the fly is not working
This commit is contained in:
commit
b3309ae7c9
@ -33,6 +33,7 @@ include "nimqml/private/qresource.nim"
|
||||
include "nimqml/private/qdeclarative.nim"
|
||||
include "nimqml/private/nimqmlmacros.nim"
|
||||
include "nimqml/private/singleinstance.nim"
|
||||
include "nimqml/private/status/statusevent.nim"
|
||||
|
||||
|
||||
proc signal_handler*(receiver: pointer, signal: cstring, slot: cstring) =
|
||||
|
@ -32,6 +32,7 @@ type
|
||||
DosQAbstractItemModel = distinct pointer
|
||||
DosQAbstractTableModel = distinct pointer
|
||||
DosQAbstractListModel = distinct pointer
|
||||
DosStatusEventObject = distinct pointer
|
||||
|
||||
DosParameterDefinition = object
|
||||
name: cstring
|
||||
@ -135,7 +136,7 @@ proc dos_qapplication_quit() {.cdecl, dynlib: dynLibName, importc.}
|
||||
proc dos_qapplication_icon(filename: cstring) {.cdecl, dynlib: dynLibName, importc.}
|
||||
proc dos_qapplication_delete() {.cdecl, dynlib: dynLibName, importc.}
|
||||
proc dos_qapplication_clipboard_setText(content: cstring) {.cdecl, dynlib: dynLibName, importc.}
|
||||
proc dos_qapplication_installEventFilter(engine: DosQQmlApplicationEngine) {.cdecl, dynlib: dynLibName, importc.}
|
||||
proc dos_qapplication_installEventFilter(engine: DosStatusEventObject) {.cdecl, dynlib: dynLibName, importc.}
|
||||
|
||||
# QGuiApplication
|
||||
proc dos_qguiapplication_create() {.cdecl, dynlib: dynLibName, importc.}
|
||||
@ -143,7 +144,7 @@ proc dos_qguiapplication_exec() {.cdecl, dynlib: dynLibName, importc.}
|
||||
proc dos_qguiapplication_quit() {.cdecl, dynlib: dynLibName, importc.}
|
||||
proc dos_qguiapplication_icon(filename: cstring) {.cdecl, dynlib: dynLibName, importc.}
|
||||
proc dos_qguiapplication_delete() {.cdecl, dynlib: dynLibName, importc.}
|
||||
proc dos_qguiapplication_installEventFilter(engine: DosQQmlApplicationEngine) {.cdecl, dynlib: dynLibName, importc.}
|
||||
proc dos_qguiapplication_installEventFilter(engine: DosStatusEventObject) {.cdecl, dynlib: dynLibName, importc.}
|
||||
|
||||
# QQmlContext
|
||||
proc dos_qqmlcontext_setcontextproperty(context: DosQQmlContext, propertyName: cstring, propertyValue: DosQVariant) {.cdecl, dynlib: dynLibName, importc.}
|
||||
@ -337,3 +338,8 @@ proc dos_qurl_replaceHostAndAddPath(url: cstring, newScheme: cstring, newHost: c
|
||||
proc dos_singleinstance_create(uniqueName: cstring): DosQObject {.cdecl, dynlib: dynLibName, importc.}
|
||||
proc dos_singleinstance_isfirst(vptr: DosQObject): bool {.cdecl, dynlib: dynLibName, importc.}
|
||||
proc dos_singleinstance_delete(vptr: DosQObject) {.cdecl, dynlib: dynLibName, importc.}
|
||||
|
||||
# DosStatusEventObject
|
||||
proc dos_statusevent_create_showAppEvent(engine: DosQQmlApplicationEngine): DosStatusEventObject {.cdecl, dynlib: dynLibName, importc.}
|
||||
proc dos_statusevent_create_osThemeEvent(engine: DosQQmlApplicationEngine): DosStatusEventObject {.cdecl, dynlib: dynLibName, importc.}
|
||||
proc dos_statusevent_delete(vptr: DosStatusEventObject) {.cdecl, dynlib: dynLibName, importc.}
|
@ -132,5 +132,9 @@ type
|
||||
|
||||
SingleInstance* = ref object of QObject
|
||||
|
||||
StatusEventObject* = ref object of RootObj ## \
|
||||
## A StatusEventObject
|
||||
vptr: DosStatusEventObject
|
||||
|
||||
const
|
||||
UserRole* = 0x100
|
||||
|
@ -17,8 +17,8 @@ proc icon*(application: QApplication, filename: string) =
|
||||
proc setClipboardText*(text: string = "") =
|
||||
dos_qapplication_clipboard_setText(text.cstring)
|
||||
|
||||
proc installEventFilter*(application: QApplication, engine: QQmlApplicationEngine) =
|
||||
dos_qapplication_installEventFilter(engine.vptr)
|
||||
proc installEventFilter*(application: QApplication, event: StatusEventObject) =
|
||||
dos_qapplication_installEventFilter(event.vptr)
|
||||
|
||||
proc delete*(application: QApplication) =
|
||||
## Delete the given QApplication
|
||||
|
@ -16,8 +16,8 @@ proc delete*(self: QGuiApplication) =
|
||||
proc icon*(application: QGuiApplication, filename: string) =
|
||||
dos_qguiapplication_icon(filename.cstring)
|
||||
|
||||
proc installEventFilter*(application: QGuiApplication, engine: QQmlApplicationEngine) =
|
||||
dos_qguiapplication_installEventFilter(engine.vptr)
|
||||
proc installEventFilter*(application: QGuiApplication, event: StatusEventObject) =
|
||||
dos_qguiapplication_installEventFilter(event.vptr)
|
||||
|
||||
proc newQGuiApplication*(): QGuiApplication =
|
||||
## Return a new QGuiApplication
|
||||
|
20
src/nimqml/private/status/statusevent.nim
Normal file
20
src/nimqml/private/status/statusevent.nim
Normal file
@ -0,0 +1,20 @@
|
||||
|
||||
#import ../[nimqmltypes, dotherside]
|
||||
|
||||
proc setupDockShowAppEventObject*(self: StatusEventObject, engine: QQmlApplicationEngine) =
|
||||
self.vptr = dos_statusevent_create_showAppEvent(engine.vptr)
|
||||
|
||||
proc setupOSThemeEventObject*(self: StatusEventObject, engine: QQmlApplicationEngine) =
|
||||
self.vptr = dos_statusevent_create_osThemeEvent(engine.vptr)
|
||||
|
||||
proc delete*(self: StatusEventObject) =
|
||||
dos_statusevent_delete(self.vptr)
|
||||
self.vptr.resetToNil
|
||||
|
||||
proc newStatusDockShowAppEventObject*(engine: QQmlApplicationEngine): StatusEventObject =
|
||||
new(result, delete)
|
||||
result.setupDockShowAppEventObject(engine)
|
||||
|
||||
proc newStatusOSThemeEventObject*(engine: QQmlApplicationEngine): StatusEventObject =
|
||||
new(result, delete)
|
||||
result.setupOSThemeEventObject(engine)
|
Loading…
x
Reference in New Issue
Block a user