mirror of
https://github.com/overte-org/overte.git
synced 2025-04-26 11:56:17 +02:00
Specifically, this was to fix the issue with the Neuron plugin preferences being the top section in the General Preferences dialog, now it is the last.
116 lines
3.1 KiB
QML
116 lines
3.1 KiB
QML
//
|
|
// PreferencesDialog.qml
|
|
//
|
|
// Created by Bradley Austin Davis on 24 Jan 2016
|
|
// Copyright 2016 High Fidelity, Inc.
|
|
//
|
|
// Distributed under the Apache License, Version 2.0.
|
|
// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
|
|
//
|
|
|
|
import QtQuick 2.5
|
|
import QtQuick.Controls 1.4
|
|
|
|
import "../controls-uit" as HifiControls
|
|
import "../styles-uit"
|
|
import "../windows"
|
|
import "preferences"
|
|
|
|
ScrollingWindow {
|
|
id: root
|
|
title: "Preferences"
|
|
resizable: true
|
|
destroyOnHidden: true
|
|
width: 500
|
|
height: 577
|
|
property var sections: []
|
|
property var showCategories: []
|
|
minSize: Qt.vector2d(400, 500)
|
|
|
|
HifiConstants { id: hifi }
|
|
|
|
function saveAll() {
|
|
for (var i = 0; i < sections.length; ++i) {
|
|
var section = sections[i];
|
|
section.saveAll();
|
|
}
|
|
destroy();
|
|
}
|
|
|
|
function restoreAll() {
|
|
for (var i = 0; i < sections.length; ++i) {
|
|
var section = sections[i];
|
|
section.restoreAll();
|
|
}
|
|
destroy();
|
|
}
|
|
|
|
Column {
|
|
width: pane.contentWidth
|
|
|
|
Component {
|
|
id: sectionBuilder
|
|
Section { }
|
|
}
|
|
|
|
Component.onCompleted: {
|
|
var categories = Preferences.categories;
|
|
var i;
|
|
|
|
// build a map of valid categories.
|
|
var categoryMap = {};
|
|
for (i = 0; i < categories.length; i++) {
|
|
categoryMap[categories[i]] = true;
|
|
}
|
|
|
|
// create a section for each valid category in showCategories
|
|
// NOTE: the sort order of items in the showCategories array is the same order in the dialog.
|
|
for (i = 0; i < showCategories.length; i++) {
|
|
if (categoryMap[showCategories[i]]) {
|
|
sections.push(sectionBuilder.createObject(prefControls, {name: showCategories[i]}));
|
|
}
|
|
}
|
|
|
|
if (sections.length) {
|
|
// Default sections to expanded/collapsed as appropriate for dialog.
|
|
if (sections.length === 1) {
|
|
sections[0].collapsable = false
|
|
sections[0].expanded = true
|
|
} else {
|
|
for (i = 0; i < sections.length; i++) {
|
|
sections[i].collapsable = true;
|
|
sections[i].expanded = true;
|
|
}
|
|
}
|
|
sections[0].isFirst = true;
|
|
sections[sections.length - 1].isLast = true;
|
|
}
|
|
}
|
|
|
|
Column {
|
|
id: prefControls
|
|
width: pane.contentWidth
|
|
}
|
|
}
|
|
|
|
footer: Row {
|
|
anchors {
|
|
top: parent.top
|
|
right: parent.right
|
|
rightMargin: hifi.dimensions.contentMargin.x
|
|
}
|
|
spacing: hifi.dimensions.contentSpacing.x
|
|
|
|
HifiControls.Button {
|
|
text: "Save changes"
|
|
color: hifi.buttons.blue
|
|
onClicked: root.saveAll()
|
|
}
|
|
|
|
HifiControls.Button {
|
|
text: "Cancel"
|
|
color: hifi.buttons.white
|
|
onClicked: root.restoreAll()
|
|
}
|
|
}
|
|
}
|