mirror of
				https://github.com/Swordfish90/cool-retro-term.git
				synced 2025-10-31 15:12:28 +00:00 
			
		
		
		
	Initial support for profiles. Some test profiles have been added.
This commit is contained in:
		| @@ -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 | ||||||
|     } |     } | ||||||
|   | |||||||
| @@ -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{ | ||||||
|   | |||||||
| @@ -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}' | ||||||
|  |          } | ||||||
|     } |     } | ||||||
| } | } | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user