Initial support for profiles. Some test profiles have been added.

This commit is contained in:
Filippo Scognamiglio 2013-12-28 03:40:45 +01:00
parent fdfd57a187
commit 10401481e5
3 changed files with 41 additions and 7 deletions

View File

@ -29,6 +29,7 @@ RowLayout {
onValueChanged: setting_component._value = slider.value; onValueChanged: setting_component._value = slider.value;
Layout.fillWidth: true Layout.fillWidth: true
enabled: check.checked enabled: check.checked
value: setting_component._value
Component.onCompleted: slider.value = setting_component._value Component.onCompleted: slider.value = setting_component._value
} }

View File

@ -30,6 +30,10 @@ ApplicationWindow {
title: qsTr("Profile") title: qsTr("Profile")
ComboBox{ ComboBox{
anchors.fill: parent anchors.fill: parent
model: shadersettings.profiles_list
onCurrentIndexChanged: {
shadersettings.loadProfile(shadersettings.profiles_list.get(currentIndex).obj_name);
}
} }
} }
@ -53,10 +57,10 @@ ApplicationWindow {
Layout.fillWidth: true Layout.fillWidth: true
decimals: 1 decimals: 1
stepSize: 0.1 stepSize: 0.1
value: shadersettings.font_scaling
minimumValue: 0.5 minimumValue: 0.5
maximumValue: 1.5 maximumValue: 1.5
onValueChanged: shadersettings.font_scaling = value; onValueChanged: shadersettings.font_scaling = value;
Component.onCompleted: value = shadersettings.font_scaling;
} }
Item{Layout.fillHeight: true} Item{Layout.fillHeight: true}
ColorButton{ ColorButton{

View File

@ -23,6 +23,8 @@ Item{
property int font_index: 2 property int font_index: 2
property var fonts_list: fontlist property var fonts_list: fontlist
property var profiles_list: profileslist
onFont_indexChanged: handleFontChanged(); onFont_indexChanged: handleFontChanged();
onFont_scalingChanged: handleFontChanged(); onFont_scalingChanged: handleFontChanged();
@ -72,8 +74,8 @@ Item{
Storage{id: storage} Storage{id: storage}
function retrieveFromDB(){ function loadProfile(profilename){
var settings = storage.getSetting("CURRENT_SETTINGS"); var settings = storage.getSetting(profilename);
if(!settings) return; if(!settings) return;
settings = JSON.parse(settings); settings = JSON.parse(settings);
@ -94,7 +96,7 @@ Item{
font_scaling = settings.font_scaling ? settings.font_scaling: font_scaling; font_scaling = settings.font_scaling ? settings.font_scaling: font_scaling;
} }
function storeToDb(){ function storeCurrentSettings(){
var settings = { var settings = {
ambient_light : ambient_light, ambient_light : ambient_light,
background_color: background_color, background_color: background_color,
@ -109,14 +111,41 @@ Item{
font_scaling: font_scaling font_scaling: font_scaling
} }
console.log(JSON.stringify(settings));
storage.setSetting("CURRENT_SETTINGS", JSON.stringify(settings)); storage.setSetting("CURRENT_SETTINGS", JSON.stringify(settings));
} }
Component.onCompleted: { Component.onCompleted: {
retrieveFromDB(); //Save all the profiles into local storage
for(var i=0; i<profileslist.count; i++){
var temp = profileslist.get(i);
storage.setSetting(temp.obj_name, temp.obj_string);
}
loadProfile("CURRENT_SETTINGS");
} }
Component.onDestruction: { Component.onDestruction: {
storeToDb(); storeCurrentSettings();
//storage.dropSettings(); storage.dropSettings();
}
ListModel{
id: profileslist
ListElement{
text: "Default"
obj_name: "DEFAULT"
obj_string: '{"ambient_light":0.3,"background_color":"#000000","font_color":"#00ff3b","font_index":0,"font_scaling":1,"frames_index":2,"glowing_line_strength":0.4,"noise_strength":0.1,"scanlines":true,"screen_distortion":0.15,"screen_flickering":0.07}'
}
ListElement{
text: "Commodore 64"
obj_name: "COMMODORE64"
obj_string: '{"ambient_light":0.2,"background_color":"#5048b2","font_color":"#8bcad1","font_index":2,"font_scaling":1,"frames_index":1,"glowing_line_strength":0.2,"noise_strength":0.05,"scanlines":false,"screen_distortion":0.1,"screen_flickering":0.03}'
}
ListElement{
text: "IBM Dos"
obj_name: "IBMDOS"
obj_string: '{"ambient_light":0.4,"background_color":"#000000","font_color":"#ffffff","font_index":3,"font_scaling":1,"frames_index":1,"glowing_line_strength":0,"noise_strength":0,"scanlines":false,"screen_distortion":0.05,"screen_flickering":0.00}'
}
} }
} }