mirror of
				https://github.com/Swordfish90/cool-retro-term.git
				synced 2025-10-30 22:54:21 +00:00 
			
		
		
		
	Redisigned and refactored settings window.
This commit is contained in:
		| @@ -56,6 +56,14 @@ RowLayout { | ||||
|     } | ||||
|     Text{ | ||||
|         id: textfield | ||||
|         text: Math.round(((value - min_value) / (max_value - min_value)) * 100) + "%" | ||||
|         property string unformattedText: Math.round(((value - min_value) / (max_value - min_value)) * 100) | ||||
|         text: formatNumber(unformattedText) | ||||
|     } | ||||
|     function formatNumber(num) { | ||||
|         var n = "" + num; | ||||
|         while (n.length < 3) { | ||||
|             n = " " + n; | ||||
|         } | ||||
|         return n + "%"; | ||||
|     } | ||||
| } | ||||
| @@ -22,7 +22,8 @@ import QtQuick 2.2 | ||||
| import QtQuick.Dialogs 1.1 | ||||
|  | ||||
| Item { | ||||
|     property color button_color; | ||||
|     property color button_color | ||||
|     property string name | ||||
|  | ||||
|     ColorDialog { | ||||
|         id: colorDialog | ||||
| @@ -35,25 +36,22 @@ Item { | ||||
|         onAccepted: button_color = color; | ||||
|     } | ||||
|     Rectangle{ | ||||
|         radius: 10 | ||||
|         anchors.fill: parent | ||||
|         radius: 10 | ||||
|         color: button_color | ||||
|  | ||||
|         Text{ | ||||
|             id: text_color | ||||
|             anchors.centerIn: parent | ||||
|             z: 1.1 | ||||
|             text: button_color | ||||
|         } | ||||
|  | ||||
|         Rectangle{ | ||||
|             anchors.centerIn: parent | ||||
|             width: text_color.width * 1.4 | ||||
|             height: text_color.height * 1.4 | ||||
|             radius: 10 | ||||
|             border.color: "black" | ||||
|             border.width: 2 | ||||
|         border.color: "black" | ||||
|         Glossy {} | ||||
|         Rectangle { | ||||
|             anchors.fill: parent | ||||
|             anchors.margins: parent.height * 0.25 | ||||
|             radius: parent.radius | ||||
|             color: "white" | ||||
|             opacity: 0.5 | ||||
|         } | ||||
|         Text{ | ||||
|             anchors.centerIn: parent | ||||
|             z: parent.z + 1 | ||||
|             text: name + ":  " + button_color | ||||
|         } | ||||
|     } | ||||
|     MouseArea{ | ||||
|   | ||||
							
								
								
									
										21
									
								
								app/Glossy.qml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								app/Glossy.qml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,21 @@ | ||||
| import QtQuick 2.2 | ||||
|  | ||||
| Rectangle { | ||||
|     anchors.centerIn: parent | ||||
|     width: parent.width - parent.border.width | ||||
|     height: parent.height - parent.border.width | ||||
|     radius:parent.radius - parent.border.width/2 | ||||
|     smooth: true | ||||
|  | ||||
|     border.width: parent.border.width/2 | ||||
|     border.color: "#22FFFFFF" | ||||
|  | ||||
|     gradient: Gradient { | ||||
|         GradientStop { position: 0;    color: "#88FFFFFF" } | ||||
|         GradientStop { position: .1;   color: "#55FFFFFF" } | ||||
|         GradientStop { position: .5;   color: "#33FFFFFF" } | ||||
|         GradientStop { position: .501; color: "#11000000" } | ||||
|         GradientStop { position: .8;   color: "#11FFFFFF" } | ||||
|         GradientStop { position: 1;    color: "#55FFFFFF" } | ||||
|     } | ||||
| } | ||||
							
								
								
									
										53
									
								
								app/SettingsEffectsTab.qml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										53
									
								
								app/SettingsEffectsTab.qml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,53 @@ | ||||
| import QtQuick 2.2 | ||||
| import QtQuick.Controls 1.1 | ||||
| import QtQuick.Layouts 1.1 | ||||
|  | ||||
| Tab{ | ||||
|     GroupBox{ | ||||
|         title: qsTr("Effects") | ||||
|         anchors.fill: parent | ||||
|         ColumnLayout{ | ||||
|             anchors.fill: parent | ||||
|             CheckableSlider{ | ||||
|                 name: qsTr("Bloom") | ||||
|                 onValueChanged: shadersettings.bloom_strength = value | ||||
|                 _value: shadersettings.bloom_strength | ||||
|             } | ||||
|             CheckableSlider{ | ||||
|                 name: qsTr("Motion Blur") | ||||
|                 onValueChanged: shadersettings.motion_blur = value | ||||
|                 _value: shadersettings.motion_blur | ||||
|             } | ||||
|             CheckableSlider{ | ||||
|                 name: qsTr("Noise") | ||||
|                 onValueChanged: shadersettings.noise_strength = value | ||||
|                 _value: shadersettings.noise_strength | ||||
|             } | ||||
|             CheckableSlider{ | ||||
|                 name: qsTr("Jitter") | ||||
|                 onValueChanged: shadersettings.jitter = value | ||||
|                 _value: shadersettings.jitter | ||||
|             } | ||||
|             CheckableSlider{ | ||||
|                 name: qsTr("Glow") | ||||
|                 onValueChanged: shadersettings.glowing_line_strength = value; | ||||
|                 _value: shadersettings.glowing_line_strength | ||||
|             } | ||||
|             CheckableSlider{ | ||||
|                 name: qsTr("Screen distortion") | ||||
|                 onValueChanged: shadersettings.screen_distortion = value; | ||||
|                 _value: shadersettings.screen_distortion; | ||||
|             } | ||||
|             CheckableSlider{ | ||||
|                 name: qsTr("Brightness flickering") | ||||
|                 onValueChanged: shadersettings.brightness_flickering= value; | ||||
|                 _value: shadersettings.brightness_flickering; | ||||
|             } | ||||
|             CheckableSlider{ | ||||
|                 name: qsTr("Horizontal flickering") | ||||
|                 onValueChanged: shadersettings.horizontal_sincronization = value; | ||||
|                 _value: shadersettings.horizontal_sincronization; | ||||
|             } | ||||
|         } | ||||
|     } | ||||
| } | ||||
							
								
								
									
										109
									
								
								app/SettingsGeneralTab.qml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										109
									
								
								app/SettingsGeneralTab.qml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,109 @@ | ||||
| import QtQuick 2.2 | ||||
| import QtQuick.Controls 1.1 | ||||
| import QtQuick.Layouts 1.1 | ||||
|  | ||||
| Tab{ | ||||
|     ColumnLayout{ | ||||
|         anchors.fill: parent | ||||
|         GroupBox{ | ||||
|             Layout.fillWidth: true | ||||
|             title: qsTr("Profile") | ||||
|             ColumnLayout{ | ||||
|                 anchors.fill: parent | ||||
|                 ComboBox{ | ||||
|                     id: profilesbox | ||||
|                     Layout.fillWidth: true | ||||
|                     model: shadersettings.profiles_list | ||||
|                     currentIndex: shadersettings.profiles_index | ||||
|                 } | ||||
|                 RowLayout{ | ||||
|                     Layout.fillWidth: true | ||||
|                     Button{ | ||||
|                         Layout.fillWidth: true | ||||
|                         text: qsTr("Load") | ||||
|                         onClicked: { | ||||
|                             shadersettings.profiles_index = profilesbox.currentIndex | ||||
|                             shadersettings.loadCurrentProfile(); | ||||
|                         } | ||||
|                     } | ||||
|                     Button{ | ||||
|                         Layout.fillWidth: true | ||||
|                         text: qsTr("Store current") | ||||
|                         onClicked: insertname.show() | ||||
|                     } | ||||
|                     Button{ | ||||
|                         Layout.fillWidth: true | ||||
|                         text: qsTr("Remove Selected") | ||||
|                         enabled: !shadersettings.profiles_list.get(profilesbox.currentIndex).builtin | ||||
|                         onClicked: { | ||||
|                             shadersettings.profiles_list.remove(profilesbox.currentIndex) | ||||
|                             profilesbox.currentIndex = profilesbox.currentIndex - 1 | ||||
|                         } | ||||
|                     } | ||||
|                 } | ||||
|                 InsertNameDialog{ | ||||
|                     id: insertname | ||||
|                     onNameSelected: shadersettings.addNewCustomProfile(name) | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|         GroupBox{ | ||||
|             title: qsTr("Lights") | ||||
|             Layout.fillWidth: true | ||||
|             GridLayout{ | ||||
|                 anchors.fill: parent | ||||
|                 columns: 2 | ||||
|                 Text{ text: qsTr("Brightness") } | ||||
|                 SimpleSlider{ | ||||
|                     onValueChanged: shadersettings.brightness = value | ||||
|                     value: shadersettings.brightness | ||||
|                 } | ||||
|                 Text{ text: qsTr("Contrast") } | ||||
|                 SimpleSlider{ | ||||
|                     onValueChanged: shadersettings.contrast = value | ||||
|                     value: shadersettings.contrast | ||||
|                 } | ||||
|                 Text{ text: qsTr("Ambient") } | ||||
|                 SimpleSlider{ | ||||
|                     onValueChanged: shadersettings.ambient_light = value; | ||||
|                     value: shadersettings.ambient_light | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|         GroupBox{ | ||||
|             title: qsTr("Performace") | ||||
|             Layout.fillWidth: true | ||||
|             Layout.columnSpan: 2 | ||||
|             anchors.left: parent.left | ||||
|             anchors.right: parent.right | ||||
|             GridLayout{ | ||||
|                 anchors.fill: parent | ||||
|                 rows: 2 | ||||
|                 columns: 3 | ||||
|                 Text{text: qsTr("Animation FPS")} | ||||
|                 Slider{ | ||||
|                     Layout.fillWidth: true | ||||
|                     id: slider | ||||
|                     stepSize: 1 | ||||
|                     maximumValue: 60 | ||||
|                     minimumValue: 0 | ||||
|                     onValueChanged: shadersettings.fps = value; | ||||
|                     value: shadersettings.fps | ||||
|                 } | ||||
|                 Text{text: slider.value} | ||||
|                 Text{text: qsTr("Texture quality")} | ||||
|                 Slider{ | ||||
|                     Layout.fillWidth: true | ||||
|                     id: txtslider | ||||
|                     stepSize: 0.01 | ||||
|                     maximumValue: 1 | ||||
|                     minimumValue: 0 | ||||
|                     onValueChanged: shadersettings.window_scaling = value; | ||||
|                     value: shadersettings.window_scaling | ||||
|                     updateValueWhileDragging: false | ||||
|                 } | ||||
|                 Text{text: Math.round(txtslider.__handlePos * 100) + "%"} | ||||
|             } | ||||
|         } | ||||
|     } | ||||
| } | ||||
| @@ -28,281 +28,29 @@ Window { | ||||
|     id: settings_window | ||||
|     title: qsTr("Settings") | ||||
|     width: 640 | ||||
|     height: 480 | ||||
|     height: 420 | ||||
|  | ||||
|     property int tabmargins: 15 | ||||
|  | ||||
|     modality: Qt.ApplicationModal | ||||
|  | ||||
|     TabView{ | ||||
|         anchors.fill: parent | ||||
|         anchors.margins: 10 | ||||
|         Tab{ | ||||
|             title: qsTr("Appearance") | ||||
|         SettingsGeneralTab{ | ||||
|             title: qsTr("General") | ||||
|             anchors.fill: parent | ||||
|             anchors.margins: 15 | ||||
|             GridLayout{ | ||||
|                 anchors.fill: parent | ||||
|                 columns: 2 | ||||
|                 GroupBox{ | ||||
|                     anchors.left: parent.left | ||||
|                     anchors.right: parent.right | ||||
|                     Layout.columnSpan: 2 | ||||
|                     title: qsTr("Profile") | ||||
|                     RowLayout{ | ||||
|                         anchors.fill: parent | ||||
|                         ComboBox{ | ||||
|                             id: profilesbox | ||||
|                             Layout.fillWidth: true | ||||
|                             model: shadersettings.profiles_list | ||||
|                             currentIndex: shadersettings.profiles_index | ||||
|                         } | ||||
|                         Button{ | ||||
|                             text: "Load" | ||||
|                             onClicked: shadersettings.profiles_index = profilesbox.currentIndex | ||||
|                         } | ||||
|                         Button{ | ||||
|                             text: "Add" | ||||
|                             onClicked: insertname.show() | ||||
|                         } | ||||
|                         Button{ | ||||
|                             text: "Remove" | ||||
|                             enabled: !shadersettings.profiles_list.get(profilesbox.currentIndex).builtin | ||||
|                             onClicked: { | ||||
|                                 shadersettings.profiles_list.remove(profilesbox.currentIndex) | ||||
|                                 profilesbox.currentIndex = profilesbox.currentIndex - 1 | ||||
|                             } | ||||
|                         } | ||||
|                         InsertNameDialog{ | ||||
|                             id: insertname | ||||
|                             onNameSelected: shadersettings.addNewCustomProfile(name) | ||||
|                         } | ||||
|                     } | ||||
|                 } | ||||
|  | ||||
|                 GroupBox{ | ||||
|                     id: fontbox | ||||
|                     title: qsTr("Font") | ||||
|                     Layout.fillHeight: true | ||||
|                     Layout.fillWidth: true | ||||
|                     GridLayout{ | ||||
|                         anchors.fill: parent | ||||
|                         columns: 2 | ||||
|                         Text{text: qsTr("Font style:")} | ||||
|                         ComboBox{ | ||||
|                             Layout.fillWidth: true | ||||
|                             model: shadersettings.fontlist | ||||
|                             currentIndex: shadersettings.fontIndex | ||||
|                             onCurrentIndexChanged: shadersettings.fontIndex = currentIndex | ||||
|                         } | ||||
|                         Text{text: qsTr("Font scaling:")} | ||||
|                         ComboBox{ | ||||
|                             Layout.fillWidth: true | ||||
|                             model: shadersettings.fontScalingList | ||||
|                             currentIndex: shadersettings.fontScalingIndex | ||||
|                             onCurrentIndexChanged: shadersettings.fontScalingIndex = currentIndex | ||||
|                         } | ||||
|                         Item{Layout.fillHeight: true} | ||||
|                         ColorButton{ | ||||
|                             height: 50 | ||||
|                             Layout.fillWidth: true | ||||
|                             Layout.columnSpan: 2 | ||||
|                             onButton_colorChanged: shadersettings._font_color = button_color; | ||||
|                             button_color: shadersettings._font_color; | ||||
|                         } | ||||
|                     } | ||||
|                 } | ||||
|                 GroupBox{ | ||||
|                     title: qsTr("Background") | ||||
|                     Layout.fillHeight: true | ||||
|                     Layout.fillWidth: true | ||||
|                     GridLayout{ | ||||
|                         anchors.fill: parent | ||||
|                         columns: 2 | ||||
|                         Text{text: "Frame texture"} | ||||
|                         ComboBox{ | ||||
|                             id: framescombobox | ||||
|                             Layout.fillWidth: true | ||||
|                             model: shadersettings.frames_list | ||||
|                             currentIndex: shadersettings.frames_index | ||||
|                             onCurrentIndexChanged: shadersettings.frames_index = currentIndex | ||||
|                         } | ||||
|                         CheckBox{ | ||||
|                             Layout.columnSpan: 2 | ||||
|                             Layout.fillWidth: true | ||||
|                             checked: shadersettings.frame_reflections | ||||
|                             text: qsTr("Frame reflections") | ||||
|                             onCheckedChanged: shadersettings.frame_reflections = checked | ||||
|                             enabled: framescombobox.model.get(framescombobox.currentIndex).reflections | ||||
|                         } | ||||
|  | ||||
|                         Item{Layout.fillHeight: true} | ||||
|                         ColorButton{ | ||||
|                             height: 50 | ||||
|                             Layout.fillWidth: true | ||||
|                             Layout.columnSpan: 2 | ||||
|  | ||||
|                             onButton_colorChanged: shadersettings._background_color= button_color | ||||
|                             button_color: shadersettings._background_color; | ||||
|                         } | ||||
|                     } | ||||
|                 } | ||||
|                 GroupBox{ | ||||
|                     title: qsTr("Lights") | ||||
|                     Layout.fillWidth: true | ||||
|                     Layout.columnSpan: 2 | ||||
|                     anchors.left: parent.left | ||||
|                     anchors.right: parent.right | ||||
|                     GridLayout{ | ||||
|                         Layout.columnSpan: 2 | ||||
|                         columns: 2 | ||||
|                         rows: 2 | ||||
|                         anchors.left: parent.left | ||||
|                         anchors.right: parent.right | ||||
|                         Text{text: qsTr("Contrast")} | ||||
|                         SimpleSlider{ | ||||
|                             onValueChanged: shadersettings.contrast = value | ||||
|                             value: shadersettings.contrast | ||||
|                         } | ||||
|                         Text{text: qsTr("Brightness")} | ||||
|                         SimpleSlider{ | ||||
|                             onValueChanged: shadersettings.brightness = value | ||||
|                             value: shadersettings.brightness | ||||
|                         } | ||||
|                     } | ||||
|                 } | ||||
|                 GroupBox{ | ||||
|                     title: qsTr("Performace") | ||||
|                     Layout.fillWidth: true | ||||
|                     Layout.columnSpan: 2 | ||||
|                     anchors.left: parent.left | ||||
|                     anchors.right: parent.right | ||||
|                     GridLayout{ | ||||
|                         columns: 3 | ||||
|                         Layout.columnSpan: 2 | ||||
|                         anchors {left: parent.left; right: parent.right} | ||||
|                         Text{text: "Animation FPS"} | ||||
|                         Slider{ | ||||
|                             Layout.fillWidth: true | ||||
|                             id: slider | ||||
|                             stepSize: 1 | ||||
|                             maximumValue: 60 | ||||
|                             minimumValue: 0 | ||||
|                             onValueChanged: shadersettings.fps = value; | ||||
|                             value: shadersettings.fps | ||||
|                         } | ||||
|                         Text{text: slider.value} | ||||
|                         Text{text: "Texture quality"} | ||||
|                         Slider{ | ||||
|                             Layout.fillWidth: true | ||||
|                             id: txtslider | ||||
|                             stepSize: 0.01 | ||||
|                             maximumValue: 1 | ||||
|                             minimumValue: 0 | ||||
|                             onValueChanged: shadersettings.window_scaling = value; | ||||
|                             value: shadersettings.window_scaling | ||||
|                             updateValueWhileDragging: false | ||||
|                         } | ||||
|                         Text{text: Math.round(txtslider.value * 100) + "%"} | ||||
|                     } | ||||
|                 } | ||||
|             } | ||||
|             anchors.margins: tabmargins | ||||
|         } | ||||
|  | ||||
|         Tab{ | ||||
|             title: qsTr("Eye-candy") | ||||
|         SettingsTerminalTab{ | ||||
|             title: qsTr("Terminal") | ||||
|             anchors.fill: parent | ||||
|             anchors.margins: 15 | ||||
|  | ||||
|             ColumnLayout{ | ||||
|                 anchors.fill: parent | ||||
|                 GroupBox{ | ||||
|                     title: qsTr("Rasterization") | ||||
|                     anchors.left: parent.left | ||||
|                     anchors.right: parent.right | ||||
|                     ColumnLayout{ | ||||
|                         anchors.left: parent.left | ||||
|                         anchors.right: parent.right | ||||
|                         RowLayout{ | ||||
|                             anchors.left: parent.left | ||||
|                             anchors.right: parent.right | ||||
|                             ExclusiveGroup { id: rasterizationgroup } | ||||
|                             RadioButton { | ||||
|                                 text: qsTr("No Rasterization") | ||||
|                                 exclusiveGroup: rasterizationgroup | ||||
|                                 checked: shadersettings.rasterization === shadersettings.no_rasterization | ||||
|                                 onCheckedChanged: if(checked) | ||||
|                                                       shadersettings.rasterization = shadersettings.no_rasterization | ||||
|                             } | ||||
|                             RadioButton { | ||||
|                                 text: qsTr("Scanlines") | ||||
|                                 exclusiveGroup: rasterizationgroup | ||||
|                                 checked: shadersettings.rasterization === shadersettings.scanline_rasterization | ||||
|                                 onCheckedChanged: if(checked) | ||||
|                                                       shadersettings.rasterization = shadersettings.scanline_rasterization | ||||
|                             } | ||||
|                             RadioButton { | ||||
|                                 text: qsTr("Pixels") | ||||
|                                 exclusiveGroup: rasterizationgroup | ||||
|                                 checked: shadersettings.rasterization === shadersettings.pixel_rasterization | ||||
|                                 onCheckedChanged: if(checked) | ||||
|                                                       shadersettings.rasterization = shadersettings.pixel_rasterization | ||||
|                             } | ||||
|                         } | ||||
|                     } | ||||
|                 } | ||||
|                 GroupBox{ | ||||
|                     title: qsTr("Effects") | ||||
|                     anchors.left: parent.left | ||||
|                     anchors.right: parent.right | ||||
|                     ColumnLayout{ | ||||
|                         anchors.fill: parent | ||||
|                         SettingComponent{ | ||||
|                             name: "Bloom" | ||||
|                             onValueChanged: shadersettings.bloom_strength = value | ||||
|                             _value: shadersettings.bloom_strength | ||||
|                         } | ||||
|                         SettingComponent{ | ||||
|                             name: "Motion Blur" | ||||
|                             onValueChanged: shadersettings.motion_blur = value | ||||
|                             _value: shadersettings.motion_blur | ||||
|                         } | ||||
|                         SettingComponent{ | ||||
|                             name: "Noise" | ||||
|                             onValueChanged: shadersettings.noise_strength = value | ||||
|                             _value: shadersettings.noise_strength | ||||
|                         } | ||||
|                         SettingComponent{ | ||||
|                             name: "Jitter" | ||||
|                             onValueChanged: shadersettings.jitter = value | ||||
|                             _value: shadersettings.jitter | ||||
|                         } | ||||
|                         SettingComponent{ | ||||
|                             name: "Glow" | ||||
|                             onValueChanged: shadersettings.glowing_line_strength = value; | ||||
|                             _value: shadersettings.glowing_line_strength | ||||
|                         } | ||||
|                         SettingComponent{ | ||||
|                             name: "Ambient light" | ||||
|                             onValueChanged: shadersettings.ambient_light = value; | ||||
|                             _value: shadersettings.ambient_light | ||||
|                         } | ||||
|                         SettingComponent{ | ||||
|                             name: "Screen distortion" | ||||
|                             onValueChanged: shadersettings.screen_distortion = value; | ||||
|                             _value: shadersettings.screen_distortion; | ||||
|                         } | ||||
|                         SettingComponent{ | ||||
|                             name: "Brightness flickering" | ||||
|                             onValueChanged: shadersettings.brightness_flickering= value; | ||||
|                             _value: shadersettings.brightness_flickering; | ||||
|                         } | ||||
|                         SettingComponent{ | ||||
|                             name: "Horizontal flickering" | ||||
|                             onValueChanged: shadersettings.horizontal_sincronization = value; | ||||
|                             _value: shadersettings.horizontal_sincronization; | ||||
|                         } | ||||
|                     } | ||||
|                 } | ||||
|             } | ||||
|             anchors.margins: tabmargins | ||||
|         } | ||||
|         SettingsEffectsTab{ | ||||
|             title: qsTr("Effects") | ||||
|             anchors.fill: parent | ||||
|             anchors.margins: tabmargins | ||||
|         } | ||||
|     } | ||||
| } | ||||
|   | ||||
| @@ -121,7 +121,6 @@ Item{ | ||||
|         fontMetrics.font = currentfont.name; | ||||
|         fontMetrics.font.pixelSize = currentfont.pixelSize; | ||||
|         currentfont.paintedSize = Qt.size(fontMetrics.paintedWidth, fontMetrics.paintedHeight) | ||||
|         console.log(Qt.size(fontMetrics.paintedWidth, fontMetrics.paintedHeight)) | ||||
|         currentfont.virtualCharSize = fontManager.item.virtualCharSize !== undefined ? | ||||
|                     fontManager.item.virtualCharSize : | ||||
|                     Qt.size(currentfont.paintedSize.width * 0.5, | ||||
| @@ -134,7 +133,6 @@ Item{ | ||||
|  | ||||
|     property alias profiles_list: profileslist | ||||
|     property int profiles_index: 0 | ||||
|     onProfiles_indexChanged: loadProfile(profiles_index); | ||||
|  | ||||
|     ListModel{ | ||||
|         id: framelist | ||||
| @@ -269,6 +267,10 @@ Item{ | ||||
|         return JSON.stringify(customProfiles); | ||||
|     } | ||||
|  | ||||
|     function loadCurrentProfile(){ | ||||
|         loadProfile(profiles_index); | ||||
|     } | ||||
|  | ||||
|     function loadProfile(index){ | ||||
|         var profile = profileslist.get(index); | ||||
|         loadProfileString(profile.obj_string); | ||||
|   | ||||
| @@ -23,21 +23,28 @@ import QtQuick.Controls 1.1 | ||||
| import QtQuick.Layouts 1.1 | ||||
|  | ||||
| RowLayout { | ||||
|     property string name | ||||
|     property double value: 0.0 | ||||
|     property double stepSize: 0.01 | ||||
|     property alias value: slider.value | ||||
|     property alias stepSize: slider.stepSize | ||||
|     property alias minimumValue: slider.minimumValue | ||||
|     property alias maximumValue: slider.maximumValue | ||||
|     property real maxMultiplier: 100 | ||||
|  | ||||
|     id: setting_component | ||||
|     spacing: 10 | ||||
|     Slider{ | ||||
|         id: slider | ||||
|         stepSize: parent.stepSize | ||||
|         onValueChanged: setting_component.value = slider.value; | ||||
|         Layout.fillWidth: true | ||||
|         value: setting_component.value | ||||
|     } | ||||
|     Text{ | ||||
|         id: textfield | ||||
|         text: Math.round(value * 100) + "%" | ||||
|         text: formatNumber(Math.round(value * maxMultiplier)) | ||||
|     } | ||||
|     function formatNumber(num) { | ||||
|         var n = "" + num; | ||||
|         while (n.length < 3) { | ||||
|             n = " " + n; | ||||
|         } | ||||
|         return n + "%"; | ||||
|     } | ||||
| } | ||||
|   | ||||
| @@ -1,6 +1,6 @@ | ||||
| <?xml version="1.0" encoding="UTF-8"?> | ||||
| <!DOCTYPE QtCreatorProject> | ||||
| <!-- Written by QtCreator 3.0.1, 2014-06-23T13:29:12. --> | ||||
| <!-- Written by QtCreator 3.0.1, 2014-06-23T18:33:18. --> | ||||
| <qtcreator> | ||||
|  <data> | ||||
|   <variable>ProjectExplorer.Project.ActiveTarget</variable> | ||||
|   | ||||
		Reference in New Issue
	
	Block a user