39 lines
906 B
QML
39 lines
906 B
QML
pragma Singleton
|
|
|
|
import QtQuick
|
|
import QtCore
|
|
|
|
import QSpec.FileIO
|
|
|
|
QtObject {
|
|
property string configDir: StandardPaths.writableLocation(StandardPaths.AppConfigLocation)
|
|
property string dataDir: StandardPaths.writableLocation(StandardPaths.AppDataLocation)
|
|
|
|
property var _json
|
|
|
|
function load() {
|
|
if (FileIO.exists(configDir) === false)
|
|
FileIO.mkpath(configDir)
|
|
|
|
if (FileIO.exists(dataDir) === false)
|
|
FileIO.mkpath(dataDir)
|
|
|
|
try {
|
|
_json = JSON.parse(FileIO.read(`${configDir}/config.json`))
|
|
} catch (_) {
|
|
print(`Failed to read ${configDir}/config.json`)
|
|
return false
|
|
}
|
|
|
|
if (_json)
|
|
return true
|
|
|
|
print(`Empty or invalid configuration at ${configDir}/config.json`)
|
|
return false
|
|
}
|
|
|
|
function save() {
|
|
print(`Saving settings to ${configDir}/config.json`)
|
|
FileIO.write(`${configDir}/config.json`, JSON.stringify(_json))
|
|
}
|
|
} |