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 }