Initial (already working) implementation of json profile import/export.

This commit is contained in:
Filippo Scognamiglio
2014-10-11 18:43:50 +02:00
parent 058bafe033
commit 90546e49e8
5 changed files with 124 additions and 3 deletions

View File

@@ -181,8 +181,8 @@ Item{
return JSON.stringify(settings);
}
function composeProfileString(){
var settings = {
function composeProfileObject(){
var profile = {
background_color: _background_color,
font_color: _font_color,
brightness_flickering: brightness_flickering,
@@ -205,7 +205,11 @@ Item{
fontIndex: fontIndexes[rasterization],
fontWidth: fontWidth
}
return JSON.stringify(settings);
return profile;
}
function composeProfileString(){
return JSON.stringify(composeProfileObject());
}
function loadSettings(){

View File

@@ -21,6 +21,7 @@
import QtQuick 2.2
import QtQuick.Controls 1.1
import QtQuick.Layouts 1.1
import QtQuick.Dialogs 1.1
Tab{
ColumnLayout{
@@ -62,10 +63,67 @@ Tab{
}
}
}
RowLayout{
Layout.fillWidth: true
Button{
Layout.fillWidth: true
text: qsTr("Import From File")
onClicked: {
fileDialog.selectExisting = true;
fileDialog.callBack = function (url) {loadFile(url);};
fileDialog.open();
}
function loadFile(url) {
console.log("Loading file: " + url);
var profileStirng = fileio.read(url);
shadersettings.loadProfileString(profileStirng);
}
}
Button{
Layout.fillWidth: true
text: qsTr("Export To File")
onClicked: {
fileDialog.selectExisting = false;
fileDialog.callBack = function (url) {storeFile(url);};
fileDialog.open();
}
function storeFile(url) {
console.log("Storing file: " + url);
var profileObject = shadersettings.composeProfileObject();
fileio.write(url, JSON.stringify(profileObject, undefined, 2));
}
}
}
InsertNameDialog{
id: insertname
onNameSelected: shadersettings.addNewCustomProfile(name)
}
Loader {
property var callBack
property bool selectExisting: false
id: fileDialog
sourceComponent: FileDialog{
nameFilters: ["Json files (*.json)"]
selectMultiple: false
selectFolder: false
selectExisting: fileDialog.selectExisting
onAccepted: callBack(fileUrl);
}
onSelectExistingChanged: reload()
function open() {
item.open();
}
function reload() {
active = false;
active = true;
}
}
}
}
GroupBox{