/*SPDX-FileCopyrightText: 2018 Tomaz Canabrava <tcanabrava@kde.org>SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL*/pragma ComponentBehavior: Boundimport QtQuickimport QtQuick.Layoutsimport QtQuick.Windowimport QtQuick.Controls as QQC2import org.kde.kirigami as Kirigamiimport org.kde.kirigami.delegates as KDimport org.kde.kcmutils as KCMUtilsimport org.kde.kwindowsystemKCMUtils.AbstractKCM {id: rootimplicitWidth: Kirigami.Units.gridUnit * 45implicitHeight: Kirigami.Units.gridUnit * 25framedView: falseproperty var elements: [{icon: "zoom-in",title: i18nc("@title Category name in sidebar", "Zoom & Magnifier"),defaultnessKey: "zoomMagnifierIsDefaults"},{icon: "notifications",title: i18nc("@title Category name in sidebar", "System Bell"),defaultnessKey: "bellIsDefaults"},{icon: "input-keyboard",title: i18nc("@title Category name in sidebar", "Modifier Keys"),defaultnessKey: "keyboardModifiersIsDefaults"},{icon: "view-filter",title: i18nc("@title Category name in sidebar", "Keyboard Filters"),defaultnessKey: "keyboardFiltersIsDefaults"},{icon: "input-mouse",title: i18nc("@title Category name in sidebar", "Mouse Navigation"),defaultnessKey: "mouseIsDefaults"},{icon: "input-caps-on",title: i18nc("@title Category name in sidebar", "Activation Shortcuts"),defaultnessKey: "activationGesturesIsDefaults"},{icon: "text-speak",title: i18nc("@title Category name in sidebar", "Screen Reader"),defaultnessKey: "screenReaderIsDefaults"},{icon: "view-visible",title: i18nc("@title Category name in sidebar", "Color Blindness Correction"),defaultnessKey: "colorblindnessCorrectionIsDefaults"},{icon: "image-invert-symbolic",title: i18nc("@title Category name in sidebar, for inverting screen colors", "Invert"),defaultnessKey: "invertIsDefaults"},{icon: "cursor-arrow",title: i18nc("@title Category name in sidebar, shake pointer to find it", "Shake Pointer"),defaultnessKey: "shakeCursorIsDefaults",available: KWindowSystem.isPlatformWayland}]RowLayout {id: mainLayoutanchors.fill: parentspacing: 0QQC2.ScrollView {id: leftSidePaneBackgroundLayout.fillHeight: trueLayout.minimumWidth: Kirigami.Units.gridUnit * 13Kirigami.Theme.colorSet: Kirigami.Theme.ViewKirigami.Theme.inherit: falseListView {id: listViewactiveFocusOnTab: trueclip: truekeyNavigationEnabled: truemodel: root.elementsdelegate: QQC2.ItemDelegate {id: baseDelegaterequired property int indexrequired property var modelDatawidth: listView.widthhighlighted: listView.currentIndex === indexicon.name: modelData.icontext: modelData.titlevisible: modelData.available === undefined || modelData.availableonClicked: {listView.currentIndex = indexlistView.forceActiveFocus()}contentItem: RowLayout {spacing: Kirigami.Units.smallSpacingKD.IconTitleSubtitle {Layout.fillWidth: trueicon.name: baseDelegate.icon.nametitle: baseDelegate.textselected: baseDelegate.highlighted || baseDelegate.down}Rectangle {radius: width * 0.5implicitWidth: Kirigami.Units.largeSpacingimplicitHeight: Kirigami.Units.largeSpacingvisible: kcm.defaultsIndicatorsVisibleopacity: !kcm[modelData.defaultnessKey]color: Kirigami.Theme.neutralTextColor}}}}}Kirigami.Separator {Layout.fillHeight: true}Rectangle {Layout.fillWidth: trueLayout.fillHeight: trueKirigami.Theme.colorSet: Kirigami.Theme.WindowKirigami.Theme.inherit: falsecolor: Kirigami.Theme.backgroundColorQQC2.ScrollView {id: scrollViewanchors.fill: parentItem {id: containerItem// Ensures we have correct margins on our content, which should// fill the scrollView or scroll vertically when largerreadonly property int margins: Kirigami.Units.gridUnitwidth: scrollView.availableWidthheight: Math.max(implicitHeight, scrollView.availableHeight)// NOTE: No need to calculate implicitWidth, as we don't use it for sizing and// if present, the ScrollView will use it to show horizontal scroll bars//implicitWidth: stackLayout.implicitWidth + margins * 2implicitHeight: stackLayout.implicitHeight + margins * 2StackLayout {id: stackLayoutanchors.fill: parentanchors.margins: containerItem.marginscurrentIndex: listView.currentIndexZoomMagnifier {}Bell {}ModifierKeys {}KeyboardFilters {}MouseNavigation {}ActivationShortcuts {}ScreenReader {}ColorblindnessCorrection {}Invert {}ShakeCursor {}}}}}}}