mirror of
https://invent.kde.org/marcoa/shift-shell.git
synced 2026-04-29 15:03:09 +00:00
wallpaper config
This commit is contained in:
parent
3ae3db587b
commit
2384ff36d9
4 changed files with 645 additions and 0 deletions
331
shell/contents/configuration/AppletConfiguration.qml
Normal file
331
shell/contents/configuration/AppletConfiguration.qml
Normal file
|
|
@ -0,0 +1,331 @@
|
|||
/*
|
||||
* Copyright 2013 Marco Martin <mart@kde.org>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 2.010-1301, USA.
|
||||
*/
|
||||
|
||||
import QtQuick 2.0
|
||||
import QtQuick.Dialogs 1.1
|
||||
import QtQuick.Controls 1.0 as QtControls
|
||||
import QtQuick.Layouts 1.0
|
||||
import org.kde.plasma.configuration 2.0
|
||||
|
||||
|
||||
//TODO: all of this will be done with desktop components
|
||||
Rectangle {
|
||||
id: root
|
||||
Layout.minimumWidth: units.gridUnit * 30
|
||||
Layout.minimumHeight: units.gridUnit * 20
|
||||
|
||||
//BEGIN properties
|
||||
color: syspal.window
|
||||
width: units.gridUnit * 40
|
||||
height: units.gridUnit * 30
|
||||
|
||||
property bool isContainment: false
|
||||
//END properties
|
||||
|
||||
//BEGIN model
|
||||
property ConfigModel globalConfigModel: globalAppletConfigModel
|
||||
|
||||
ConfigModel {
|
||||
id: globalAppletConfigModel
|
||||
ConfigCategory {
|
||||
name: i18nd("plasma_shell_org.kde.plasma.desktop", "Keyboard shortcuts")
|
||||
icon: "preferences-desktop-keyboard"
|
||||
source: "ConfigurationShortcuts.qml"
|
||||
}
|
||||
}
|
||||
//END model
|
||||
|
||||
//BEGIN functions
|
||||
function saveConfig() {
|
||||
if (main.currentItem.saveConfig) {
|
||||
main.currentItem.saveConfig()
|
||||
} else {
|
||||
for (var key in plasmoid.configuration) {
|
||||
if (main.currentItem["cfg_"+key] !== undefined) {
|
||||
plasmoid.configuration[key] = main.currentItem["cfg_"+key]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function restoreConfig() {
|
||||
for (var key in plasmoid.configuration) {
|
||||
if (main.currentItem["cfg_"+key] !== undefined) {
|
||||
main.currentItem["cfg_"+key] = plasmoid.configuration[key]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function configurationHasChanged() {
|
||||
for (var key in plasmoid.configuration) {
|
||||
if (main.currentItem["cfg_"+key] !== undefined) {
|
||||
//for objects == doesn't work
|
||||
if (typeof plasmoid.configuration[key] == 'object') {
|
||||
for (var i in plasmoid.configuration[key]) {
|
||||
if (plasmoid.configuration[key][i] != main.currentItem["cfg_"+key][i]) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
} else if (main.currentItem["cfg_"+key] != plasmoid.configuration[key]) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
function settingValueChanged() {
|
||||
applyButton.enabled = true;
|
||||
}
|
||||
//END functions
|
||||
|
||||
|
||||
//BEGIN connections
|
||||
Component.onCompleted: {
|
||||
if (!isContainment && configDialog.configModel && configDialog.configModel.count > 0) {
|
||||
main.sourceFile = configDialog.configModel.get(0).source
|
||||
main.title = configDialog.configModel.get(0).name
|
||||
} else {
|
||||
main.sourceFile = globalConfigModel.get(0).source
|
||||
main.title = globalConfigModel.get(0).name
|
||||
}
|
||||
// root.width = mainColumn.implicitWidth
|
||||
// root.height = mainColumn.implicitHeight
|
||||
}
|
||||
//END connections
|
||||
|
||||
//BEGIN UI components
|
||||
SystemPalette {id: syspal}
|
||||
|
||||
MessageDialog {
|
||||
id: messageDialog
|
||||
icon: StandardIcon.Warning
|
||||
property Item delegate
|
||||
title: i18nd("plasma_shell_org.kde.plasma.desktop", "Apply Settings")
|
||||
text: i18nd("plasma_shell_org.kde.plasma.desktop", "The settings of the current module have changed. Do you want to apply the changes or discard them?")
|
||||
standardButtons: StandardButton.Apply | StandardButton.Discard | StandardButton.Cancel
|
||||
onApply: {
|
||||
applyAction.trigger()
|
||||
delegate.openCategory()
|
||||
}
|
||||
onDiscard: {
|
||||
delegate.openCategory()
|
||||
}
|
||||
}
|
||||
|
||||
ColumnLayout {
|
||||
id: mainColumn
|
||||
anchors {
|
||||
fill: parent
|
||||
margins: mainColumn.spacing //margins are hardcoded in QStyle we should match that here
|
||||
}
|
||||
property int implicitWidth: Math.max(contentRow.implicitWidth, buttonsRow.implicitWidth) + 8
|
||||
property int implicitHeight: contentRow.implicitHeight + buttonsRow.implicitHeight + 8
|
||||
|
||||
RowLayout {
|
||||
id: contentRow
|
||||
anchors {
|
||||
left: parent.left
|
||||
right: parent.right
|
||||
}
|
||||
spacing: units.largeSpacing
|
||||
Layout.fillHeight: true
|
||||
Layout.preferredHeight: parent.height - buttonsRow.height
|
||||
|
||||
QtControls.ScrollView {
|
||||
id: categoriesScroll
|
||||
frameVisible: true
|
||||
Layout.fillHeight: true
|
||||
visible: (configDialog.configModel ? configDialog.configModel.count : 0) + globalConfigModel.count > 1
|
||||
width: visible ? units.gridUnit * 7 : 0
|
||||
implicitWidth: width
|
||||
flickableItem.interactive: false
|
||||
|
||||
Rectangle {
|
||||
width: categoriesScroll.viewport.width
|
||||
height: Math.max(categoriesScroll.viewport.height, categories.height)
|
||||
color: syspal.base
|
||||
|
||||
Column {
|
||||
id: categories
|
||||
width: parent.width
|
||||
height: childrenRect.height
|
||||
|
||||
property Item currentItem: children[1]
|
||||
|
||||
Repeater {
|
||||
model: root.isContainment ? globalConfigModel : undefined
|
||||
delegate: ConfigCategoryDelegate {}
|
||||
}
|
||||
Repeater {
|
||||
model: configDialog.configModel
|
||||
delegate: ConfigCategoryDelegate {}
|
||||
}
|
||||
Repeater {
|
||||
model: !root.isContainment ? globalConfigModel : undefined
|
||||
delegate: ConfigCategoryDelegate {}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
QtControls.ScrollView {
|
||||
id: scroll
|
||||
Layout.fillHeight: true
|
||||
Layout.fillWidth: true
|
||||
Column {
|
||||
spacing: units.largeSpacing / 2
|
||||
|
||||
QtControls.Label {
|
||||
id: pageTitle
|
||||
width: scroll.viewport.width
|
||||
font.pointSize: theme.defaultFont.pointSize*2
|
||||
font.weight: Font.Light
|
||||
text: main.title
|
||||
}
|
||||
|
||||
QtControls.StackView {
|
||||
id: main
|
||||
property string title: ""
|
||||
property bool invertAnimations: false
|
||||
|
||||
height: Math.max((scroll.viewport.height - pageTitle.height - parent.spacing), (main.currentItem ? (main.currentItem.implicitHeight ? main.currentItem.implicitHeight : main.currentItem.childrenRect.height) : 0))
|
||||
width: scroll.viewport.width
|
||||
|
||||
property string sourceFile
|
||||
|
||||
onSourceFileChanged: {
|
||||
// print("Source file changed in flickable" + sourceFile);
|
||||
replace(Qt.resolvedUrl(sourceFile));
|
||||
root.restoreConfig()
|
||||
for (var prop in currentItem) {
|
||||
if (prop.indexOf("cfg_") === 0 && prop.indexOf("Changed") > 0 ) {
|
||||
currentItem[prop].connect(root.settingValueChanged)
|
||||
}
|
||||
}
|
||||
if (currentItem["configurationChanged"]) {
|
||||
currentItem["configurationChanged"].connect(root.settingValueChanged)
|
||||
}
|
||||
applyButton.enabled = false;
|
||||
/*
|
||||
* This is not needed on a desktop shell that has ok/apply/cancel buttons, i'll leave it here only for future reference until we have a prototype for the active shell.
|
||||
* root.pageChanged will start a timer, that in turn will call saveConfig() when triggered
|
||||
|
||||
for (var prop in currentItem) {
|
||||
if (prop.indexOf("cfg_") === 0) {
|
||||
currentItem[prop+"Changed"].connect(root.pageChanged)
|
||||
}
|
||||
}*/
|
||||
}
|
||||
|
||||
delegate: QtControls.StackViewDelegate {
|
||||
function transitionFinished(properties)
|
||||
{
|
||||
properties.exitItem.opacity = 1
|
||||
}
|
||||
|
||||
pushTransition: QtControls.StackViewTransition {
|
||||
PropertyAnimation {
|
||||
target: enterItem
|
||||
property: "opacity"
|
||||
from: 0
|
||||
to: 1
|
||||
duration: units.longDuration
|
||||
easing.type: Easing.InOutQuad
|
||||
}
|
||||
PropertyAnimation {
|
||||
target: enterItem
|
||||
property: "x"
|
||||
from: main.invertAnimations ? -target.width/3: target.width/3
|
||||
to: 0
|
||||
duration: units.longDuration
|
||||
easing.type: Easing.InOutQuad
|
||||
}
|
||||
PropertyAnimation {
|
||||
target: exitItem
|
||||
property: "opacity"
|
||||
from: 1
|
||||
to: 0
|
||||
duration: units.longDuration
|
||||
easing.type: Easing.InOutQuad
|
||||
}
|
||||
PropertyAnimation {
|
||||
target: exitItem
|
||||
property: "x"
|
||||
from: 0
|
||||
to: main.invertAnimations ? target.width/3 : -target.width/3
|
||||
duration: units.longDuration
|
||||
easing.type: Easing.InOutQuad
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
QtControls.Action {
|
||||
id: acceptAction
|
||||
onTriggered: {
|
||||
applyAction.trigger();
|
||||
configDialog.close();
|
||||
}
|
||||
shortcut: "Return"
|
||||
}
|
||||
|
||||
QtControls.Action {
|
||||
id: applyAction
|
||||
onTriggered: {
|
||||
if (main.currentItem.saveConfig !== undefined) {
|
||||
main.currentItem.saveConfig();
|
||||
} else {
|
||||
root.saveConfig();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
QtControls.Action {
|
||||
id: cancelAction
|
||||
onTriggered: configDialog.close();
|
||||
shortcut: "Escape"
|
||||
}
|
||||
|
||||
RowLayout {
|
||||
id: buttonsRow
|
||||
Layout.alignment: Qt.AlignVCenter | Qt.AlignRight
|
||||
QtControls.Button {
|
||||
iconName: "dialog-ok"
|
||||
text: i18nd("plasma_shell_org.kde.plasma.desktop", "OK")
|
||||
onClicked: acceptAction.trigger()
|
||||
}
|
||||
QtControls.Button {
|
||||
id: applyButton
|
||||
enabled: false
|
||||
iconName: "dialog-ok-apply"
|
||||
text: i18nd("plasma_shell_org.kde.plasma.desktop", "Apply")
|
||||
onClicked: applyAction.trigger()
|
||||
}
|
||||
QtControls.Button {
|
||||
iconName: "dialog-cancel"
|
||||
text: i18nd("plasma_shell_org.kde.plasma.desktop", "Cancel")
|
||||
onClicked: cancelAction.trigger()
|
||||
}
|
||||
}
|
||||
}
|
||||
//END UI components
|
||||
}
|
||||
119
shell/contents/configuration/ConfigCategoryDelegate.qml
Normal file
119
shell/contents/configuration/ConfigCategoryDelegate.qml
Normal file
|
|
@ -0,0 +1,119 @@
|
|||
/*
|
||||
* Copyright 2013 Marco Martin <mart@kde.org>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 2.010-1301, USA.
|
||||
*/
|
||||
|
||||
import QtQuick 2.0
|
||||
import QtQuick.Controls 1.0 as QtControls
|
||||
import org.kde.plasma.core 2.0 as PlasmaCore
|
||||
|
||||
MouseArea {
|
||||
id: delegate
|
||||
|
||||
//BEGIN properties
|
||||
y: units.smallSpacing *2
|
||||
width: parent.width
|
||||
height: delegateContents.height + units.smallSpacing * 4
|
||||
hoverEnabled: true
|
||||
property bool current: model.source == main.sourceFile
|
||||
property string name: model.name
|
||||
//END properties
|
||||
|
||||
//BEGIN functions
|
||||
function openCategory() {
|
||||
if (typeof(categories.currentItem) !== "undefined") {
|
||||
main.invertAnimations = (categories.currentItem.y > delegate.y);
|
||||
categories.currentItem = delegate;
|
||||
}
|
||||
main.sourceFile = model.source
|
||||
main.title = model.name
|
||||
}
|
||||
//END functions
|
||||
|
||||
//BEGIN connections
|
||||
onClicked: {
|
||||
print("model source: " + model.source + " " + main.sourceFile);
|
||||
if (root.configurationHasChanged()) {
|
||||
messageDialog.delegate = delegate
|
||||
messageDialog.open();
|
||||
return;
|
||||
}
|
||||
if (delegate.current) {
|
||||
return;
|
||||
} else {
|
||||
openCategory();
|
||||
}
|
||||
}
|
||||
onCurrentChanged: {
|
||||
if (current) {
|
||||
categories.currentItem = delegate;
|
||||
}
|
||||
}
|
||||
//END connections
|
||||
|
||||
//BEGIN UI components
|
||||
Rectangle {
|
||||
anchors.fill: parent
|
||||
color: syspal.highlight
|
||||
opacity: {
|
||||
if (categories.currentItem == delegate) {
|
||||
return 1
|
||||
} else if (delegate.containsMouse) {
|
||||
return 0.3 // there's no "hover" color in SystemPalette
|
||||
} else {
|
||||
return 0
|
||||
}
|
||||
}
|
||||
Behavior on opacity {
|
||||
NumberAnimation {
|
||||
duration: units.longDuration
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Column {
|
||||
id: delegateContents
|
||||
spacing: units.smallSpacing
|
||||
anchors {
|
||||
verticalCenter: parent.verticalCenter
|
||||
left: parent.left
|
||||
right: parent.right
|
||||
}
|
||||
PlasmaCore.IconItem {
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
width: theme.IconSizeHuge
|
||||
height: width
|
||||
source: model.icon
|
||||
}
|
||||
QtControls.Label {
|
||||
anchors {
|
||||
left: parent.left
|
||||
right: parent.right
|
||||
}
|
||||
text: model.name
|
||||
wrapMode: Text.Wrap
|
||||
horizontalAlignment: Text.AlignHCenter
|
||||
color: current ? syspal.highlightedText : syspal.text
|
||||
Behavior on color {
|
||||
ColorAnimation {
|
||||
duration: units.longDuration
|
||||
easing.type: "InOutQuad"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
//END UI components
|
||||
}
|
||||
|
|
@ -0,0 +1,149 @@
|
|||
/*
|
||||
* Copyright 2013 Marco Martin <mart@kde.org>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 2.010-1301, USA.
|
||||
*/
|
||||
|
||||
import QtQuick 2.0
|
||||
import org.kde.plasma.configuration 2.0
|
||||
import QtQuick.Controls 1.0 as QtControls
|
||||
import QtQuick.Layouts 1.1
|
||||
|
||||
ColumnLayout {
|
||||
id: root
|
||||
|
||||
property int formAlignment: wallpaperComboBox.x + (units.largeSpacing/2)
|
||||
property string currentWallpaper: ""
|
||||
property string containmentPlugin: ""
|
||||
signal configurationChanged
|
||||
|
||||
//BEGIN functions
|
||||
function saveConfig() {
|
||||
for (var key in configDialog.wallpaperConfiguration) {
|
||||
if (main.currentItem["cfg_"+key] !== undefined) {
|
||||
configDialog.wallpaperConfiguration[key] = main.currentItem["cfg_"+key]
|
||||
}
|
||||
}
|
||||
configDialog.currentWallpaper = root.currentWallpaper;
|
||||
configDialog.applyWallpaper()
|
||||
configDialog.containmentPlugin = root.containmentPlugin
|
||||
}
|
||||
|
||||
function restoreConfig() {
|
||||
for (var key in configDialog.wallpaperConfiguration) {
|
||||
if (main.currentItem["cfg_"+key] !== undefined) {
|
||||
main.currentItem["cfg_"+key] = configDialog.wallpaperConfiguration[key]
|
||||
}
|
||||
|
||||
if (main.currentItem["cfg_"+key+"Changed"]) {
|
||||
main.currentItem["cfg_"+key+"Changed"].connect(root.configurationChanged)
|
||||
}
|
||||
}
|
||||
}
|
||||
//END functions
|
||||
|
||||
Component.onCompleted: {
|
||||
for (var i = 0; i < configDialog.containmentPluginsConfigModel.count; ++i) {
|
||||
var data = configDialog.containmentPluginsConfigModel.get(i);
|
||||
for(var j in data) print(j)
|
||||
if (configDialog.containmentPlugin == data.pluginName) {
|
||||
pluginComboBox.currentIndex = i
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
for (var i = 0; i < configDialog.wallpaperConfigModel.count; ++i) {
|
||||
var data = configDialog.wallpaperConfigModel.get(i);
|
||||
for(var j in data) print(j)
|
||||
if (configDialog.currentWallpaper == data.pluginName) {
|
||||
wallpaperComboBox.currentIndex = i
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Row {
|
||||
spacing: units.largeSpacing / 2
|
||||
anchors.right: wallpaperRow.right
|
||||
Item {
|
||||
width: units.largeSpacing
|
||||
height: parent.height
|
||||
}
|
||||
QtControls.Label {
|
||||
anchors.verticalCenter: pluginComboBox.verticalCenter
|
||||
text: i18nd("plasma_shell_org.kde.plasma.desktop", "Layout:")
|
||||
}
|
||||
QtControls.ComboBox {
|
||||
id: pluginComboBox
|
||||
enabled: !plasmoid.immutable
|
||||
model: configDialog.containmentPluginsConfigModel
|
||||
width: theme.mSize(theme.defaultFont).width * 24
|
||||
textRole: "name"
|
||||
onCurrentIndexChanged: {
|
||||
var model = configDialog.containmentPluginsConfigModel.get(currentIndex)
|
||||
root.containmentPlugin = model.pluginName
|
||||
root.configurationChanged()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Row {
|
||||
id: wallpaperRow
|
||||
spacing: units.largeSpacing / 2
|
||||
Item {
|
||||
width: units.largeSpacing
|
||||
height: parent.height
|
||||
}
|
||||
QtControls.Label {
|
||||
anchors.verticalCenter: wallpaperComboBox.verticalCenter
|
||||
text: i18nd("plasma_shell_org.kde.plasma.desktop", "Wallpaper Type:")
|
||||
}
|
||||
QtControls.ComboBox {
|
||||
id: wallpaperComboBox
|
||||
model: configDialog.wallpaperConfigModel
|
||||
width: theme.mSize(theme.defaultFont).width * 24
|
||||
textRole: "name"
|
||||
onCurrentIndexChanged: {
|
||||
var model = configDialog.wallpaperConfigModel.get(currentIndex)
|
||||
root.currentWallpaper = model.pluginName
|
||||
main.sourceFile = model.source
|
||||
configDialog.currentWallpaper = model.pluginName
|
||||
root.restoreConfig()
|
||||
root.configurationChanged()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Item {
|
||||
id: emptyConfig
|
||||
}
|
||||
|
||||
QtControls.StackView {
|
||||
id: main
|
||||
Layout.fillHeight: true;
|
||||
anchors {
|
||||
left: parent.left;
|
||||
right: parent.right;
|
||||
}
|
||||
property string sourceFile
|
||||
onSourceFileChanged: {
|
||||
if (sourceFile != "") {
|
||||
replace(Qt.resolvedUrl(sourceFile))
|
||||
} else {
|
||||
replace(emptyConfig);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
46
shell/contents/configuration/ContainmentConfiguration.qml
Normal file
46
shell/contents/configuration/ContainmentConfiguration.qml
Normal file
|
|
@ -0,0 +1,46 @@
|
|||
/*
|
||||
* Copyright 2013 Marco Martin <mart@kde.org>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 2.010-1301, USA.
|
||||
*/
|
||||
|
||||
import QtQuick 2.0
|
||||
import QtQuick.Layouts 1.0
|
||||
import org.kde.plasma.components 2.0 as PlasmaComponents
|
||||
import org.kde.plasma.extras 2.0 as PlasmaExtras
|
||||
import org.kde.plasma.core 2.0 as PlasmaCore
|
||||
import org.kde.plasma.configuration 2.0
|
||||
|
||||
|
||||
AppletConfiguration {
|
||||
id: root
|
||||
isContainment: true
|
||||
Layout.minimumWidth: Math.min(plasmoid.availableScreenRect.width, units.gridUnit * 32)
|
||||
Layout.minimumHeight: Math.min(plasmoid.availableScreenRect.height, units.gridUnit * 36)
|
||||
|
||||
//BEGIN model
|
||||
globalConfigModel: globalContainmentConfigModel
|
||||
|
||||
ConfigModel {
|
||||
id: globalContainmentConfigModel
|
||||
ConfigCategory {
|
||||
name: i18nd("plasma_shell_org.kde.plasma.desktop", "Wallpaper")
|
||||
icon: "preferences-desktop-wallpaper"
|
||||
source: "ConfigurationContainmentAppearance.qml"
|
||||
}
|
||||
}
|
||||
//END model
|
||||
|
||||
}
|
||||
Loading…
Reference in a new issue