mirror of
https://git.mirrors.martin98.com/https://github.com/Ultimaker/Cura
synced 2025-05-01 08:14:22 +08:00

I also swapped out the old NewControls import to just be the actual Controls, and used OldControls to import the Controls1 module. This is consistent with the rest of the code base as far as I could find. Contributes to issue CURA-8686.
202 lines
5.6 KiB
QML
202 lines
5.6 KiB
QML
// Copyright (c) 2022 Ultimaker B.V.
|
|
// Cura is released under the terms of the LGPLv3 or higher.
|
|
|
|
import QtQuick 2.1
|
|
import QtQuick.Controls 2.15
|
|
import QtQuick.Controls 1.1 as OldControls
|
|
|
|
import UM 1.5 as UM
|
|
|
|
import Cura 1.0 as Cura
|
|
|
|
UM.PreferencesPage
|
|
{
|
|
title: catalog.i18nc("@title:tab", "Setting Visibility");
|
|
|
|
property QtObject settingVisibilityPresetsModel: CuraApplication.getSettingVisibilityPresetsModel()
|
|
|
|
property int scrollToIndex: 0
|
|
|
|
signal scrollToSection( string key )
|
|
onScrollToSection:
|
|
{
|
|
settingsListView.positionViewAtIndex(definitionsModel.getIndex(key), ListView.Beginning)
|
|
}
|
|
|
|
function reset()
|
|
{
|
|
settingVisibilityPresetsModel.setActivePreset("basic")
|
|
}
|
|
resetEnabled: true;
|
|
|
|
Item
|
|
{
|
|
id: base;
|
|
anchors.fill: parent;
|
|
|
|
OldControls.CheckBox
|
|
{
|
|
id: toggleVisibleSettings
|
|
anchors
|
|
{
|
|
verticalCenter: filter.verticalCenter;
|
|
left: parent.left;
|
|
leftMargin: UM.Theme.getSize("default_margin").width
|
|
}
|
|
text: catalog.i18nc("@label:textbox", "Check all")
|
|
checkedState:
|
|
{
|
|
if(definitionsModel.visibleCount == definitionsModel.categoryCount)
|
|
{
|
|
return Qt.Unchecked
|
|
}
|
|
else if(definitionsModel.visibleCount == definitionsModel.count)
|
|
{
|
|
return Qt.Checked
|
|
}
|
|
else
|
|
{
|
|
return Qt.PartiallyChecked
|
|
}
|
|
}
|
|
partiallyCheckedEnabled: true
|
|
|
|
MouseArea
|
|
{
|
|
anchors.fill: parent;
|
|
onClicked:
|
|
{
|
|
if(parent.checkedState == Qt.Unchecked || parent.checkedState == Qt.PartiallyChecked)
|
|
{
|
|
definitionsModel.setAllExpandedVisible(true)
|
|
}
|
|
else
|
|
{
|
|
definitionsModel.setAllExpandedVisible(false)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
TextField
|
|
{
|
|
id: filter;
|
|
|
|
anchors
|
|
{
|
|
top: parent.top
|
|
left: toggleVisibleSettings.right
|
|
leftMargin: UM.Theme.getSize("default_margin").width
|
|
right: visibilityPreset.left
|
|
rightMargin: UM.Theme.getSize("default_margin").width
|
|
}
|
|
|
|
placeholderText: catalog.i18nc("@label:textbox", "Filter...")
|
|
|
|
onTextChanged: definitionsModel.filter = {"i18n_label|i18n_description": "*" + text}
|
|
}
|
|
|
|
ComboBox
|
|
{
|
|
id: visibilityPreset
|
|
width: 150 * screenScaleFactor
|
|
anchors
|
|
{
|
|
top: parent.top
|
|
right: parent.right
|
|
bottom: settingsListView.top
|
|
}
|
|
|
|
model: settingVisibilityPresetsModel.items
|
|
textRole: "name"
|
|
|
|
currentIndex:
|
|
{
|
|
var idx = -1;
|
|
for(var i = 0; i < settingVisibilityPresetsModel.items.length; ++i)
|
|
{
|
|
if(settingVisibilityPresetsModel.items[i].presetId == settingVisibilityPresetsModel.activePreset)
|
|
{
|
|
idx = i;
|
|
break;
|
|
}
|
|
}
|
|
return idx;
|
|
}
|
|
|
|
onActivated:
|
|
{
|
|
var preset_id = settingVisibilityPresetsModel.items[index].presetId
|
|
settingVisibilityPresetsModel.setActivePreset(preset_id)
|
|
}
|
|
}
|
|
|
|
ListView
|
|
{
|
|
id: settingsListView
|
|
anchors
|
|
{
|
|
top: filter.bottom;
|
|
topMargin: UM.Theme.getSize("default_margin").height
|
|
left: parent.left;
|
|
right: parent.right;
|
|
bottom: parent.bottom;
|
|
}
|
|
|
|
clip: true
|
|
ScrollBar.vertical: UM.ScrollBar {}
|
|
|
|
model: UM.SettingDefinitionsModel
|
|
{
|
|
id: definitionsModel
|
|
containerId: Cura.MachineManager.activeMachine != null ? Cura.MachineManager.activeMachine.definition.id: ""
|
|
showAll: true
|
|
exclude: ["machine_settings", "command_line_settings"]
|
|
showAncestors: true
|
|
expanded: ["*"]
|
|
visibilityHandler: UM.SettingPreferenceVisibilityHandler {}
|
|
}
|
|
|
|
delegate: Loader
|
|
{
|
|
id: loader
|
|
|
|
width: settingsListView.width
|
|
height: model.type != undefined ? UM.Theme.getSize("section").height : 0
|
|
|
|
property var definition: model
|
|
property var settingDefinitionsModel: definitionsModel
|
|
|
|
asynchronous: true
|
|
active: model.type != undefined
|
|
sourceComponent:
|
|
{
|
|
switch(model.type)
|
|
{
|
|
case "category":
|
|
return settingVisibilityCategory
|
|
default:
|
|
return settingVisibilityItem
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
UM.I18nCatalog { name: "cura"; }
|
|
SystemPalette { id: palette; }
|
|
|
|
Component
|
|
{
|
|
id: settingVisibilityCategory;
|
|
|
|
UM.SettingVisibilityCategory { }
|
|
}
|
|
|
|
Component
|
|
{
|
|
id: settingVisibilityItem;
|
|
|
|
UM.SettingVisibilityItem { }
|
|
}
|
|
}
|
|
} |