mirror of
https://github.com/status-im/nimqml.git
synced 2025-02-22 19:38:22 +00:00
feat: add QNetworkAccessManager and clearConnectionCache
feat: change QNetworkAccessManager to DosQObject
This commit is contained in:
parent
953e9f4b38
commit
6776fed33f
@ -17,6 +17,7 @@ type
|
||||
DosQMetaObject = distinct pointer
|
||||
DosQObject = distinct pointer
|
||||
DosQQNetworkAccessManagerFactory = pointer
|
||||
DosQQNetworkAccessManager = distinct DosQObject
|
||||
DosQObjectWrapper = distinct pointer
|
||||
DosQVariant = distinct pointer
|
||||
DosQQmlContext = distinct pointer
|
||||
@ -146,6 +147,7 @@ proc dos_qqmlcontext_setcontextproperty(context: DosQQmlContext, propertyName: c
|
||||
|
||||
# QQmlApplicationEngine
|
||||
proc dos_qqmlapplicationengine_create(): DosQQmlApplicationEngine {.cdecl, dynlib: dynLibName, importc.}
|
||||
proc dos_qqmlapplicationengine_getNetworkAccessManager(engine: DosQQmlApplicationEngine): DosQQNetworkAccessManager {.cdecl, dynlib: dynLibName, importc.}
|
||||
proc dos_qqmlapplicationengine_setNetworkAccessManagerFactory(engine: DosQQmlApplicationEngine, factory: DosQQNetworkAccessManagerFactory) {.cdecl, dynlib: dynLibName, importc.}
|
||||
proc dos_qqmlapplicationengine_load(engine: DosQQmlApplicationEngine, filename: cstring) {.cdecl, dynlib: dynLibName, importc.}
|
||||
proc dos_qqmlapplicationengine_load_url(engine: DosQQmlApplicationEngine, url: DosQUrl) {.cdecl, dynlib: dynLibName, importc.}
|
||||
@ -211,8 +213,13 @@ proc dos_qurl_to_string(vptr: DosQUrl): cstring {.cdecl, dynlib: dynLibName, imp
|
||||
proc dos_qncm_create(): DosQObject {.cdecl, dynlib: dynLibName, importc.}
|
||||
proc dos_qncm_delete(vptr: DosQObject) {.cdecl, dynlib: dynLibName, importc.}
|
||||
|
||||
# QNetworkAccessManagerFactory
|
||||
proc dos_qqmlnetworkaccessmanagerfactory_create(tmpPath: cstring): DosQQNetworkAccessManagerFactory {.cdecl, dynlib: dynLibName, importc.}
|
||||
|
||||
# QNetworkAccessManager
|
||||
proc dos_qqmlnetworkaccessmanager_clearconnectioncache(vptr: DosQQNetworkAccessManager) {.cdecl, dynlib: dynLibName, importc.}
|
||||
proc dos_qqmlnetworkaccessmanager_setnetworkaccessible(vptr: DosQQNetworkAccessManager, accessible: cint) {.cdecl, dynlib: dynLibName, importc.}
|
||||
|
||||
# QQuickView
|
||||
proc dos_qquickview_create(): DosQQuickView {.cdecl, dynlib: dynLibName, importc.}
|
||||
proc dos_qquickview_delete(view: DosQQuickView) {.cdecl, dynlib: dynLibName, importc.}
|
||||
|
@ -114,6 +114,13 @@ type
|
||||
QNetworkAccessManagerFactory* = ref object of RootObj ## \
|
||||
vptr: DosQQNetworkAccessManagerFactory
|
||||
|
||||
QNetworkAccessManager* = ref object of QObject ## \
|
||||
|
||||
NetworkAccessibility*{.pure, size: sizeof(cint).} = enum ## \
|
||||
UnknownAccessibility = -1.cint,
|
||||
NotAccessible = 0.cint,
|
||||
Accessible = 1.cint
|
||||
|
||||
QUrlParsingMode*{.pure, size: sizeof(cint).} = enum
|
||||
Tolerant = 0.cint
|
||||
Strict = 1.cint
|
||||
|
@ -26,3 +26,22 @@ proc newQNetworkAccessManagerFactory*(tmpPath: string): QNetworkAccessManagerFac
|
||||
new(result, delete)
|
||||
result.setup(tmpPath)
|
||||
|
||||
proc setup*(self: QNetworkAccessManager, vptr: DosQQNetworkAccessManager) =
|
||||
self.vptr = DosQObject(vptr)
|
||||
|
||||
proc delete*(self: QNetworkAccessManager) =
|
||||
if self.vptr.isNil:
|
||||
return
|
||||
self.vptr.resetToNil
|
||||
|
||||
proc newQNetworkAccessManager*(vptr: DosQQNetworkAccessManager): QNetworkAccessManager =
|
||||
new(result, delete)
|
||||
result.setup(vptr)
|
||||
|
||||
proc clearConnectionCache*(self: QNetworkAccessManager) =
|
||||
dos_qqmlnetworkaccessmanager_clearconnectioncache(DosQQNetworkAccessManager(self.vptr))
|
||||
|
||||
proc setNetworkAccessible*(self: QNetworkAccessManager, accessibility: NetworkAccessibility) =
|
||||
debugEcho ">>> [nimqml/private/qnetworkconfigurationmanager.setNetworkAccessible] manually setting network accessibility to: ", $accessibility
|
||||
dos_qqmlnetworkaccessmanager_setnetworkaccessible(DosQQNetworkAccessManager(self.vptr), accessibility.cint)
|
||||
|
||||
|
@ -14,6 +14,9 @@ proc load*(self: QQmlApplicationEngine, url: QUrl) =
|
||||
## Load the given Qml file
|
||||
dos_qqmlapplicationengine_load_url(self.vptr, url.vptr)
|
||||
|
||||
proc getNetworkAccessManager*(self: QQmlApplicationEngine): DosQQNetworkAccessManager =
|
||||
dos_qqmlapplicationengine_getNetworkAccessManager(self.vptr)
|
||||
|
||||
proc setNetworkAccessManagerFactory*(self: QQmlApplicationEngine, factory: QNetworkAccessManagerFactory) =
|
||||
dos_qqmlapplicationengine_setNetworkAccessManagerFactory(self.vptr, factory.vptr)
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user