mirror of
https://github.com/status-im/nimqml.git
synced 2025-02-22 19:38:22 +00:00
feat(@desktop/general): QSettings class exposed to nim
This commit is contained in:
parent
fb44e71c57
commit
00ee27ca52
@ -31,6 +31,7 @@ include "nimqml/private/qabstractlistmodel.nim"
|
||||
include "nimqml/private/qabstracttablemodel.nim"
|
||||
include "nimqml/private/qresource.nim"
|
||||
include "nimqml/private/qdeclarative.nim"
|
||||
include "nimqml/private/qsettings.nim"
|
||||
include "nimqml/private/nimqmlmacros.nim"
|
||||
include "nimqml/private/singleinstance.nim"
|
||||
include "nimqml/private/status/statusevent.nim"
|
||||
|
@ -34,7 +34,8 @@ type
|
||||
DosQAbstractListModel = distinct pointer
|
||||
DosStatusEvent = distinct pointer
|
||||
DosStatusOSNotification = DosQObject
|
||||
|
||||
DosQSettings = DosQObject
|
||||
|
||||
DosParameterDefinition = object
|
||||
name: cstring
|
||||
metaType: cint
|
||||
@ -347,22 +348,6 @@ proc dos_event_create_showAppEvent(engine: DosQQmlApplicationEngine): DosStatusE
|
||||
proc dos_event_create_osThemeEvent(engine: DosQQmlApplicationEngine): DosStatusEvent {.cdecl, dynlib: dynLibName, importc.}
|
||||
proc dos_event_delete(vptr: DosStatusEvent) {.cdecl, dynlib: dynLibName, importc.}
|
||||
|
||||
<<<<<<< HEAD
|
||||
# DosStatusOSNotificationObject
|
||||
proc dos_statusosnotification_create(): DosStatusOSNotificationObject
|
||||
{.cdecl, dynlib: dynLibName, importc.}
|
||||
proc dos_statusosnotification_show_notification(vptr: DosStatusOSNotificationObject,
|
||||
title: cstring, messsage: cstring, identifier: cstring)
|
||||
{.cdecl, dynlib: dynLibName, importc.}
|
||||
proc dos_statusosnotification_delete(vptr: DosStatusOSNotificationObject)
|
||||
{.cdecl, dynlib: dynLibName, importc.}
|
||||
|
||||
proc dos_to_local_file(fileUrl: cstring): cstring
|
||||
{.cdecl, dynlib: dynLibName, importc.}
|
||||
|
||||
proc dos_from_local_file(filePath: cstring): cstring
|
||||
{.cdecl, dynlib: dynLibName, importc.}
|
||||
=======
|
||||
# DosStatusOSNotification
|
||||
proc dos_osnotification_create(): DosStatusOSNotification
|
||||
{.cdecl, dynlib: dynLibName, importc.}
|
||||
@ -372,5 +357,22 @@ proc dos_osnotification_show_notification(vptr: DosStatusOSNotification,
|
||||
proc dos_osnotification_delete(vptr: DosStatusOSNotification)
|
||||
{.cdecl, dynlib: dynLibName, importc.}
|
||||
|
||||
# QSettings
|
||||
proc dos_qsettings_create(fileName: cstring, format: int): DosQSettings
|
||||
{.cdecl, dynlib: dynLibName, importc.}
|
||||
>>>>>>> c58455f... refactor(@desktop/general): status custom events and os notification renamed type and methods
|
||||
proc dos_qsettings_value(vptr: DosQSettings, key: cstring,
|
||||
defaultValue: DosQVariant): DosQVariant
|
||||
{.cdecl, dynlib: dynLibName, importc.}
|
||||
proc dos_qsettings_set_value(vptr: DosQSettings, key: cstring,
|
||||
value: DosQVariant)
|
||||
{.cdecl, dynlib: dynLibName, importc.}
|
||||
proc dos_qsettings_remove(vptr: DosQSettings, key: cstring)
|
||||
{.cdecl, dynlib: dynLibName, importc.}
|
||||
proc dos_qsettings_delete(vptr: DosQSettings)
|
||||
{.cdecl, dynlib: dynLibName, importc.}
|
||||
|
||||
proc dos_to_local_file(fileUrl: cstring): cstring
|
||||
{.cdecl, dynlib: dynLibName, importc.}
|
||||
|
||||
proc dos_from_local_file(filePath: cstring): cstring
|
||||
{.cdecl, dynlib: dynLibName, importc.}
|
@ -44,6 +44,8 @@ type
|
||||
QResource* = ref object of RootObj ## \
|
||||
# A QResource
|
||||
|
||||
QSettings* = ref object of QObject ## \
|
||||
|
||||
QtItemFlag*{.pure, size: sizeof(cint).} = enum ## \
|
||||
## Item flags
|
||||
##
|
||||
|
30
src/nimqml/private/qsettings.nim
Normal file
30
src/nimqml/private/qsettings.nim
Normal file
@ -0,0 +1,30 @@
|
||||
type
|
||||
QSettingsFormat* {.pure.} = enum
|
||||
NativeFormat = 0
|
||||
IniFormat
|
||||
|
||||
proc setup(self: QSettings, fileName: string, format: int) =
|
||||
self.vptr = dos_qsettings_create(fileName, format)
|
||||
|
||||
proc delete*(self: QSettings) =
|
||||
dos_qsettings_delete(self.vptr)
|
||||
self.vptr.resetToNil
|
||||
|
||||
proc newQSettings*(fileName: string,
|
||||
format: QSettingsFormat = QSettingsFormat.NativeFormat): QSettings =
|
||||
## Available values for format are:
|
||||
## 0 - QSettings::NativeFormat
|
||||
## 1 - QSettings::IniFormat
|
||||
## any other value will be converted to 0 (QSettings::NativeFormat)
|
||||
new(result, delete)
|
||||
result.setup(fileName, format.int)
|
||||
|
||||
proc value*(self: QSettings, key: string, defaultValue: QVariant = newQVariant()):
|
||||
QVariant =
|
||||
newQVariant(dos_qsettings_value(self.vptr, key, defaultValue.vptr), Ownership.Take)
|
||||
|
||||
proc setValue*(self: QSettings, key: string, value: QVariant) =
|
||||
dos_qsettings_set_value(self.vptr, key, value.vptr)
|
||||
|
||||
proc remove*(self: QSettings, key: string) =
|
||||
dos_qsettings_remove(self.vptr, key)
|
Loading…
x
Reference in New Issue
Block a user