Warning, /plasma/plasma-mobile/shell/contents/configuration/ConfigurationKcmPage.qml is written in an unsupported language. File is not indexed.
0001 // SPDX-FileCopyrightText: 2015 Marco Martin <mart@kde.org>
0002 // SPDX-FileCopyrightText: 2020 Nicolas Fella <nicolas.fella@gmx.de>
0003 // SPDX-FileCopyrightText: 2020 Carl Schwan <carlschwan@kde.org>
0004 // SPDX-License-Identifier: GPL-2.0-or-later
0005
0006 import QtQuick 2.6
0007 import QtQuick.Controls 2.2 as QQC2
0008 import org.kde.kirigami 2.5 as Kirigami
0009
0010 Kirigami.Page {
0011 id: container
0012
0013 required property QtObject kcm
0014 required property Item internalPage
0015
0016 signal settingValueChanged()
0017 onSettingValueChanged: saveConfig(); // we save config immediately on mobile
0018
0019 title: kcm.name
0020 topPadding: 0
0021 leftPadding: 0
0022 rightPadding: 0
0023 bottomPadding: 0
0024 flickable: internalPage.flickable
0025 actions: [
0026 internalPage.actions.main,
0027 internalPage.contextualActions
0028 ]
0029
0030 onInternalPageChanged: {
0031 internalPage.parent = contentItem;
0032 internalPage.anchors.fill = contentItem;
0033 }
0034 onActiveFocusChanged: {
0035 if (activeFocus) {
0036 internalPage.forceActiveFocus();
0037 }
0038 }
0039
0040 Component.onCompleted: {
0041 kcm.load()
0042 }
0043
0044 function saveConfig() {
0045 kcm.save();
0046 }
0047
0048 data: [
0049 Connections {
0050 target: kcm
0051 onPagePushed: {
0052 app.pageStack.push(configurationKcmPageComponent.createObject(app.pageStack, {"kcm": kcm, "internalPage": page}));
0053 }
0054 onPageRemoved: app.pageStack.pop();
0055 },
0056 Connections {
0057 target: app.pageStack
0058 onPageRemoved: {
0059 if (kcm.needsSave) {
0060 kcm.save()
0061 }
0062 if (page == container) {
0063 page.destroy();
0064 }
0065 }
0066 }
0067 ]
0068 Connections {
0069 target: kcm
0070 function onNeedsSaveChanged() {
0071 if (kcm.needsSave) {
0072 container.settingValueChanged()
0073 }
0074 }
0075 }
0076 }