Skip to content

Commit

Permalink
Merge pull request #35 from status-im/fix/qguiapplication
Browse files Browse the repository at this point in the history
QGuiApplication to not mess with QCoreApplication and QApplication
  • Loading branch information
iurimatias committed Sep 20, 2021
2 parents b5ed94d + c60406b commit d3fdb6e
Show file tree
Hide file tree
Showing 5 changed files with 30 additions and 31 deletions.
2 changes: 0 additions & 2 deletions src/nimqml.nim
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,7 @@ include "nimqml/private/qnetworkconfigurationmanager.nim"
include "nimqml/private/qvariant.nim"
include "nimqml/private/qobject.nim"
include "nimqml/private/qqmlapplicationengine.nim"
include "nimqml/private/qcoreapplication.nim"
include "nimqml/private/qguiapplication.nim"
include "nimqml/private/qapplication.nim"
include "nimqml/private/qurl.nim"
include "nimqml/private/qquickview.nim"
include "nimqml/private/qhashintbytearray.nim"
Expand Down
27 changes: 9 additions & 18 deletions src/nimqml/private/dotherside.nim
Original file line number Diff line number Diff line change
Expand Up @@ -127,29 +127,20 @@ proc isNil(x: DosQModelIndex): bool = x.pointer.isNil
# CharArray
proc dos_chararray_delete(str: cstring) {.cdecl, dynlib: dynLibName, importc.}

# QCoreApplication
proc dos_qcoreapplication_application_dir_path(): cstring {.cdecl, dynlib: dynLibName, importc.}
proc dos_qapplication_enable_hdpi(uiScaleFilePath: cstring) {.cdecl, dynlib: dynLibName, importc.}
proc dos_qapplication_initialize_opengl() {.cdecl, dynlib: dynLibName, importc.}

# QApplication
proc dos_qapplication_create() {.cdecl, dynlib: dynLibName, importc.}
proc dos_qapplication_exec() {.cdecl, dynlib: dynLibName, importc.}
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: DosStatusEvent) {.cdecl, dynlib: dynLibName, importc.}
proc dos_qapplication_clipboard_setImage(content: cstring) {.cdecl, dynlib: dynLibName, importc.}
proc dos_qapplication_download_image(imageSource: cstring, filePath: cstring) {.cdecl, dynlib: dynLibName, importc.}

# QGuiApplication
proc dos_qguiapplication_application_dir_path(): cstring {.cdecl, dynlib: dynLibName, importc.}
proc dos_qguiapplication_enable_hdpi(uiScaleFilePath: cstring) {.cdecl, dynlib: dynLibName, importc.}
proc dos_qguiapplication_initialize_opengl() {.cdecl, dynlib: dynLibName, importc.}
proc dos_qguiapplication_create() {.cdecl, dynlib: dynLibName, importc.}
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_clipboard_setText(content: cstring) {.cdecl, dynlib: dynLibName, importc.}
proc dos_qguiapplication_installEventFilter(engine: DosStatusEvent) {.cdecl, dynlib: dynLibName, importc.}
proc dos_qguiapplication_clipboard_setImage(content: cstring) {.cdecl, dynlib: dynLibName, importc.}
proc dos_qguiapplication_download_image(imageSource: cstring, filePath: cstring) {.cdecl, dynlib: dynLibName, importc.}

# QQmlContext
proc dos_qqmlcontext_setcontextproperty(context: DosQQmlContext, propertyName: cstring, propertyValue: DosQVariant) {.cdecl, dynlib: dynLibName, importc.}
Expand All @@ -164,7 +155,7 @@ proc dos_qqmlapplicationengine_load_data(engine: DosQQmlApplicationEngine, data:
proc dos_qqmlapplicationengine_add_import_path(engine: DosQQmlApplicationEngine, path: cstring) {.cdecl, dynlib: dynLibName, importc.}
proc dos_qqmlapplicationengine_context(engine: DosQQmlApplicationEngine): DosQQmlContext {.cdecl, dynlib: dynLibName, importc.}
proc dos_qqmlapplicationengine_delete(engine: DosQQmlApplicationEngine) {.cdecl, dynlib: dynLibName, importc.}
proc dos_qapplication_load_translation(engine: DosQQmlApplicationEngine, content: cstring, shouldRetranslate: bool) {.cdecl, dynlib: dynLibName, importc.}
proc dos_qguiapplication_load_translation(engine: DosQQmlApplicationEngine, content: cstring, shouldRetranslate: bool) {.cdecl, dynlib: dynLibName, importc.}

# QVariant
proc dos_qvariant_create(): DosQVariant {.cdecl, dynlib: dynLibName, importc.}
Expand Down Expand Up @@ -391,4 +382,4 @@ proc dos_to_local_file(fileUrl: cstring): cstring
{.cdecl, dynlib: dynLibName, importc.}

proc dos_from_local_file(filePath: cstring): cstring
{.cdecl, dynlib: dynLibName, importc.}
{.cdecl, dynlib: dynLibName, importc.}
10 changes: 0 additions & 10 deletions src/nimqml/private/qcoreapplication.nim

This file was deleted.

20 changes: 20 additions & 0 deletions src/nimqml/private/qguiapplication.nim
Original file line number Diff line number Diff line change
Expand Up @@ -31,3 +31,23 @@ proc exec*(self: QGuiApplication) =
proc quit*(self: QGuiApplication) =
## Quit the Qt event loop
dos_qguiapplication_quit()

proc setClipboardText*(text: string = "") =
dos_qguiapplication_clipboard_setText(text.cstring)

proc setClipboardImage*(text: string = "") =
dos_qguiapplication_clipboard_setImage(text.cstring)

proc downloadImage*(imageSource: string = "", filePath = "") =
dos_qguiapplication_download_image(imageSource.cstring, filePath.cstring)

proc enableHDPI*(uiScaleFilePath: string) =
dos_qguiapplication_enable_hdpi(uiScaleFilePath)

proc initializeOpenGL*() =
dos_qguiapplication_initialize_opengl()

proc applicationDirPath*(app: QGuiApplication): string =
let str = dos_qguiapplication_application_dir_path()
result = $str
dos_chararray_delete(str)
2 changes: 1 addition & 1 deletion src/nimqml/private/qqmlapplicationengine.nim
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ proc setRootContextProperty*(self: QQmlApplicationEngine, name: string, value: Q
dos_qqmlcontext_setcontextproperty(context, name.cstring, value.vptr)

proc setTranslationPackage*(self: QQmlApplicationEngine, packagePath: string, shouldRetranslate: bool = true) =
dos_qapplication_load_translation(self.vptr, packagePath.cstring, shouldRetranslate)
dos_qguiapplication_load_translation(self.vptr, packagePath.cstring, shouldRetranslate)

proc delete*(self: QQmlApplicationEngine) =
## Delete the given QQmlApplicationEngine
Expand Down

0 comments on commit d3fdb6e

Please sign in to comment.