summaryrefslogtreecommitdiffstats
path: root/editorlib
diff options
context:
space:
mode:
authorTomi Korpipää <tomi.korpipaa@qt.io>2016-06-15 07:53:57 +0300
committerTomi Korpipää <tomi.korpipaa@qt.io>2016-06-15 05:46:32 +0000
commit644dded0ed1e1b1c696cf02d024a3449eed02080 (patch)
tree4d1f08eca96857ad4a8d52ef8ba1e4d1470ef232 /editorlib
parente19e36590a1461a72d0924774899c8eaeb4c8a08 (diff)
Added autosave flag to persistent settings
Fixed apply-cancel functionality Change-Id: Ibc7838973e0fa509079b1fc47dffa6f355518b9d Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io> Reviewed-by: Titta Heikkala <titta.heikkala@qt.io>
Diffstat (limited to 'editorlib')
-rw-r--r--editorlib/qml/SettingsDialog.qml73
1 files changed, 53 insertions, 20 deletions
diff --git a/editorlib/qml/SettingsDialog.qml b/editorlib/qml/SettingsDialog.qml
index 58f1e72..1e5409e 100644
--- a/editorlib/qml/SettingsDialog.qml
+++ b/editorlib/qml/SettingsDialog.qml
@@ -40,7 +40,11 @@ Window {
color: mainwindow.paneBackgroundColor
minimumHeight: settingsLayout.Layout.minimumHeight + buttonRow.Layout.minimumHeight
minimumWidth: buttonRow.Layout.minimumWidth
- property bool previousAutoSaveEnabled: autoSaveTimer.running
+ property bool previousAutoSaveEnabled
+ property string previousFolder
+ property int previousGridSize
+ property bool autoSaveEnabled: false
+ property string currentFolder
property string currentLanguage
property int currentGridSize
property string folderPath
@@ -50,8 +54,7 @@ Window {
category: "Qt 3D SceneEditor General"
property alias language: dialog.currentLanguage
property alias gridSize: dialog.currentGridSize
- // TODO: Save autosave flag?
- // TODO: Anything else?
+ property alias autoSave: dialog.autoSaveEnabled
}
onCurrentLanguageChanged: {
@@ -62,6 +65,10 @@ Window {
editorScene.gridSize = currentGridSize
}
+ onAutoSaveEnabledChanged: {
+ saveCheckBox.checked = autoSaveEnabled
+ }
+
ColumnLayout {
id: settingsLayout
anchors.top: parent.top
@@ -138,7 +145,6 @@ Window {
to: 20
stepSize: 1
from: 1
- value: currentGridSize
Layout.leftMargin: 8
contentItem: StyledTextInput {
inputMethodHints: Qt.ImhFormattedNumbersOnly
@@ -172,12 +178,8 @@ Window {
title: defaultFolderLabel.text
selectFolder: true
onAccepted: {
- mainwindow.defaultFolder = fileUrl // Use fileUrl, as dialog is in select folder mode
- parseFolderString()
- // When default folder is changed, reset all saved folders
- mainwindow.importFolder = fileUrl
- mainwindow.saveFolder = fileUrl
- mainwindow.textureFolder = fileUrl
+ currentFolder = fileUrl // Use fileUrl, as dialog is in select folder mode
+ parseFolderString(fileUrl)
}
}
@@ -208,16 +210,18 @@ Window {
setAutoSave()
currentGridSize = gridSizeSpinBox.value
setLanguage()
+ setFolder()
}
-
}
StyledButton {
id: cancelButton
text: qsTr("Cancel") + editorScene.emptyString
onButtonClicked: {
- saveCheckBox.checked = previousAutoSaveEnabled
- if (gridSizeSpinBox.value !== currentGridSize)
- gridSizeSpinBox.value = currentGridSize
+ autoSaveEnabled = previousAutoSaveEnabled
+ if (previousGridSize !== currentGridSize) {
+ gridSizeSpinBox.value = previousGridSize
+ currentGridSize = previousGridSize
+ }
if (currentLanguage === "en") {
englishButton.checked = true
finnishButton.checked = false
@@ -225,6 +229,15 @@ Window {
englishButton.checked = false
finnishButton.checked = true
}
+ if (previousFolder.length > 0
+ && currentFolder !== previousFolder) {
+ mainwindow.defaultFolder = previousFolder
+ currentFolder = previousFolder
+ parseFolderString(currentFolder)
+ }
+ if (!autoSaveEnabled) {
+ autoSaveTimer.stop()
+ }
dialog.close()
}
}
@@ -233,16 +246,21 @@ Window {
text: qsTr("Ok") + editorScene.emptyString
onButtonClicked: {
setAutoSave()
+ previousAutoSaveEnabled = autoSaveEnabled
currentGridSize = gridSizeSpinBox.value
+ previousGridSize = currentGridSize
setLanguage()
+ setFolder()
+ previousFolder = currentFolder
dialog.close()
}
}
}
function setAutoSave() {
- if (saveCheckBox.checked !== previousAutoSaveEnabled) {
- if (saveCheckBox.checked) {
+ autoSaveEnabled = saveCheckBox.checked
+ if (autoSaveEnabled !== previousAutoSaveEnabled) {
+ if (autoSaveEnabled) {
if (saveFileUrl == "")
saveFileDialog.open()
autoSaveTimer.start()
@@ -259,14 +277,29 @@ Window {
currentLanguage = "fi"
}
- function parseFolderString() {
- folderPath = mainwindow.defaultFolder.toString()
- folderPath = folderPath.replace(/^(file:\/{3})/,"");
+ function setFolder() {
+ if (previousFolder !== currentFolder) {
+ mainwindow.defaultFolder = currentFolder
+ // When default folder is changed, reset all saved folders
+ mainwindow.importFolder = currentFolder
+ mainwindow.saveFolder = currentFolder
+ mainwindow.textureFolder = currentFolder
+ }
+ }
+
+ function parseFolderString(url) {
+ folderPath = url.toString()
+ folderPath = folderPath.replace(/^(file:\/{2,})/,"");
}
Component.onCompleted: {
currentLanguage = editorScene.language
currentGridSize = editorScene.gridSize
- parseFolderString()
+ previousGridSize = currentGridSize
+ gridSizeSpinBox.value = currentGridSize
+ currentFolder = mainwindow.defaultFolder
+ previousFolder = currentFolder
+ parseFolderString(currentFolder)
+ previousAutoSaveEnabled = autoSaveTimer.running
}
}