From 0b2943d65975b5719e0967267b87217e4fd3deb4 Mon Sep 17 00:00:00 2001 From: Robin Krens Date: Tue, 24 Nov 2020 19:12:48 +0100 Subject: [PATCH 1/1] spawning of windows --- .gitignore | 1 + contents/config/config.qml | 11 ++++++++ contents/config/main.xml | 15 +++++++++++ contents/ui/ConfigGeneral.qml | 59 +++++++++++++++++++++++++++++++++++++++++++ contents/ui/main.qml | 53 ++++++++++++++++++++++++++++++++++++++ contents/ui/snowWindow.qml | 50 ++++++++++++++++++++++++++++++++++++ metadata.desktop | 24 ++++++++++++++++++ 7 files changed, 213 insertions(+) create mode 100644 .gitignore create mode 100644 contents/config/config.qml create mode 100644 contents/config/main.xml create mode 100644 contents/ui/ConfigGeneral.qml create mode 100644 contents/ui/main.qml create mode 100644 contents/ui/snowWindow.qml create mode 100644 metadata.desktop diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..86950b3 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +*.qmlc diff --git a/contents/config/config.qml b/contents/config/config.qml new file mode 100644 index 0000000..dca86fd --- /dev/null +++ b/contents/config/config.qml @@ -0,0 +1,11 @@ +import QtQuick 2.0 + +import org.kde.plasma.configuration 2.0 + +ConfigModel { + ConfigCategory { + name: i18n("Appearance") + icon: "view-list-icons" + source: "ConfigGeneral.qml" + } +} diff --git a/contents/config/main.xml b/contents/config/main.xml new file mode 100644 index 0000000..9c334d6 --- /dev/null +++ b/contents/config/main.xml @@ -0,0 +1,15 @@ + + + + + + + + red + + + + diff --git a/contents/ui/ConfigGeneral.qml b/contents/ui/ConfigGeneral.qml new file mode 100644 index 0000000..59e2cbf --- /dev/null +++ b/contents/ui/ConfigGeneral.qml @@ -0,0 +1,59 @@ +/* + * Copyright 2020 Robin Krens + * + * 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.1 as QtLayouts +import QtQuick.Controls 1.0 as QtControls + +import org.kde.plasma.core 2.0 as PlasmaCore +import org.kde.plasma.extras 2.0 as PlasmaExtras + +Item { + id: iconsPage + width: childrenRect.width + height: childrenRect.height + implicitWidth: pageColumn.implicitWidth + implicitHeight: pageColumn.implicitHeight + property string cfg_item_color; + + SystemPalette { + id: sypal + } + + QtLayouts.ColumnLayout { + + id: pageColumn + + anchors.left: parent.left + PlasmaExtras.Heading { + text: i18nc("Heading for colors", "Item shade color") + color: syspal.text + level: 3 + } + + /* User can't specify an exact color, since i'm using + * gradients and alpha for colors */ + QtControls.ComboBox { + id: dot + model: ["red", "green", "blue"]; + currentIndex: dot.model.indexOf(cfg_item_color) + onActivated: cfg_item_color = model[index] + } + + } +} diff --git a/contents/ui/main.qml b/contents/ui/main.qml new file mode 100644 index 0000000..4b6503b --- /dev/null +++ b/contents/ui/main.qml @@ -0,0 +1,53 @@ +/* + * Copyright 2020 Robin Krens + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU Library General Public License as + * published by the Free Software Foundation; either version 2 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 Library General Public + * License along with this program; if not, write to the + * Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +import QtQuick 2.6 +import QtQuick.Layouts 1.0 +import QtQuick.Window 2.2 + +//import org.kde.plasma.plasmoid 2.0 as Plasmoid +//import org.kde.plasma.core 2.0 as PlasmaCore +//import org.kde.plasma.components 2.0 as PlasmaComponents + +import QtQuick 2.3 +import QtQuick.Controls 1.2 + +Item { + id: root; + Button { + anchors.centerIn: parent; + text: "Let it snow!"; + + onClicked: { + var snow = []; + for (var i = 0; i < 10; i++) { + + snow[i] = Qt.createComponent("snowWindow.qml"); + var snowWindow = snow[i].createObject(root); + snowWindow.x = Math.random() * 500; + snowWindow.y = Math.random() * 500; + //snowWindow.opacity = 0.9; + //snowWindow.flags = Qt.WA_TransparentForMouseEvents | Qt.X11BypassWindowManagerHint; + + //snowWindow.flags = Qt.WA_TransparentForMouseEvents| Qt.FramelessWindowHint | Qt.WindowStaysOnTopHint; + snowWindow.showMaximized(); + } + } + } +} diff --git a/contents/ui/snowWindow.qml b/contents/ui/snowWindow.qml new file mode 100644 index 0000000..fa51e65 --- /dev/null +++ b/contents/ui/snowWindow.qml @@ -0,0 +1,50 @@ + +/* + * Copyright 2020 Robin Krens + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU Library General Public License as + * published by the Free Software Foundation; either version 2 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 Library General Public + * License along with this program; if not, write to the + * Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +import QtQuick 2.6 +import QtQuick.Controls 1.4 +import QtQuick.Window 2.2 + +ApplicationWindow { + + id: root; + + width: 30; height: 30; + x: 500; y: 500; + //color: "transparent"; + opacity: 0.5; + title: qsTr("Snowy") + + flags: Qt.WindowStaysOnTopHint | Qt.FramelessWindowHint | Qt.WA_TransparentForMouseEvents | Qt.WA_TranslucentBackground | Qt.X11BypassWindowManagerHint; + + + //flags: Qt.WA_TranslucentBackground | Qt.X11BypassWindowManagerHint | Qt.WA_TransparentForMouseEvents; + + //flags: Qt.WA_TranslucentBackground | Qt.WA_TransparentForMouseEvents| Qt.FramelessWindowHint | Qt.WindowStaysOnTopHint; + + //flags: Qt.WindowStaysOnTopHint | Qt.FramelessWindowHint | Qt.WA_TransparentForMouseEvents | Qt.WA_TranslucentBackground; + //color: "transparent"; + + // Text { + // anchors.centerIn: parent + // color: "red"; + // text: qsTr("Hello World.") + // } +} diff --git a/metadata.desktop b/metadata.desktop new file mode 100644 index 0000000..9f02ec9 --- /dev/null +++ b/metadata.desktop @@ -0,0 +1,24 @@ +[Desktop Entry] +Name=Snow Everywhere +Keywords=snow;christmas;newyear;2020 +Comment=Let there be snow! +Type=Service +Icon=view-list-icons +X-KDE-ServiceTypes=Plasma/Applet + +X-Plasma-API=declarativeappletscript +X-Plasma-MainScript=ui/main.qml + +X-KDE-PluginInfo-Author=Robin Krens +X-KDE-PluginInfo-Email=robin@robinkrens.nl +X-KDE-PluginInfo-Name=nl.robinkrens.plasma.snoweverywhere +X-KDE-PluginInfo-Version=0.1 +X-KDE-PluginInfo-Website=http://plasma.kde.org/ +X-KDE-PluginInfo-Category=Utilities +X-KDE-PluginInfo-Depends= +X-KDE-PluginInfo-License=GPL +X-KDE-PluginInfo-EnabledByDefault=true +X-KDE-FormFactors=desktop + +[Settings] +FallbackTheme=breeze-dark -- 2.7.4