Warning, /plasma/plasma-mobile/shell/contents/configuration/ConfigurationAppletPage.qml is written in an unsupported language. File is not indexed.
0001 // SPDX-FileCopyrightText: 2020 Nicolas Fella <nicolas.fella@gmx.de> 0002 // SPDX-License-Identifier: GPL-2.0-or-later 0003 0004 import QtQuick 2.0 0005 0006 import org.kde.kirigami 2.10 as Kirigami 0007 0008 Kirigami.ScrollablePage { 0009 id: root 0010 0011 title: configItem.name 0012 0013 required property var configItem 0014 0015 signal settingValueChanged() 0016 onSettingValueChanged: saveConfig() // we save config immediately on mobile 0017 0018 function saveConfig() { 0019 for (let key in plasmoid.configuration) { 0020 if (loader.item["cfg_" + key] != undefined) { 0021 plasmoid.configuration[key] = loader.item["cfg_" + key] 0022 } 0023 } 0024 0025 // For ConfigurationContainmentActions.qml 0026 if (loader.item.hasOwnProperty("saveConfig")) { 0027 loader.item.saveConfig() 0028 } 0029 } 0030 0031 implicitHeight: loader.height 0032 0033 padding: Kirigami.Units.largeSpacing 0034 bottomPadding: 0 0035 0036 Loader { 0037 id: loader 0038 width: parent.width 0039 // HACK the height of the loader is based on the implicitHeight of the content. 0040 // Unfortunately not all content items have a sensible implicitHeight. 0041 // If it is zero fall back to the height of its children 0042 // Also make it at least as high as the page itself. Some existing configs assume they fill the whole space 0043 // TODO KF6 clean this up by making all configs based on SimpleKCM/ScrollViewKCM/GridViewKCM 0044 height: Math.max(root.availableHeight, item.implicitHeight ? item.implicitHeight : item.childrenRect.height) 0045 0046 Component.onCompleted: { 0047 const plasmoidConfig = plasmoid.configuration 0048 0049 const props = {} 0050 for (let key in plasmoidConfig) { 0051 props["cfg_" + key] = plasmoid.configuration[key] 0052 } 0053 0054 setSource(configItem.source, props) 0055 } 0056 0057 onLoaded: { 0058 const plasmoidConfig = plasmoid.configuration; 0059 0060 for (let key in plasmoidConfig) { 0061 const changedSignal = item["cfg_" + key + "Changed"] 0062 if (changedSignal) { 0063 changedSignal.connect(root.settingValueChanged) 0064 } 0065 } 0066 0067 const configurationChangedSignal = item.configurationChanged 0068 if (configurationChangedSignal) { 0069 configurationChangedSignal.connect(root.settingValueChanged) 0070 } 0071 } 0072 } 0073 }