diff options
author | Tomi Korpipää <tomi.korpipaa@qt.io> | 2016-06-15 07:53:57 +0300 |
---|---|---|
committer | Tomi Korpipää <tomi.korpipaa@qt.io> | 2016-06-15 05:46:32 +0000 |
commit | 644dded0ed1e1b1c696cf02d024a3449eed02080 (patch) | |
tree | 4d1f08eca96857ad4a8d52ef8ba1e4d1470ef232 /editorlib | |
parent | e19e36590a1461a72d0924774899c8eaeb4c8a08 (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.qml | 73 |
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 } } |