aerothemeplasma/plasma/shells/io.gitgud.wackyideas.desktop/contents/explorer/Tooltip.qml
wackyideas 6f831d540f Move to new shell plugin & panel, add SDDM sessions
This is a big update which requires existing users to migrate their
desktop setup (Plasmoids, their configurations, layout changes, etc.) to
a new desktop session.

This commit replaces the modified desktop shell (org.kde.plasma.desktop)
with ATP's shell (io.gitgud.wackyideas.desktop) which requires new
session options. This is similar to how plasma-bigscreen and
plasma-mobile are used - logging into a separate session via the login
manager (SDDM). ATP will provide sessions for both X11 and Wayland.

This, along with now providing a forked panel as well, is a step forward
regarding separating ATP's codebase and KDE's upstream code. Further
goals are to be able to further isolate the ATP session from the regular
KDE session in terms of shared configurations, etc.

For existing users - Rerun install_plasmoids.sh and
install_plasma_components.sh, you can delete the old shell
(shells/org.kde.plasma.desktop) and panel plasmoid
(plasmoids/org.kde.panel). As mentioned previously, panel and desktop
layouts, plasmoids and their configurations will not be migrated to the
newly available sessions, so they need to be set up manually.
2025-10-21 13:23:06 +02:00

142 lines
4.2 KiB
QML

/*
SPDX-FileCopyrightText: 2011 Marco Martin <mart@kde.org>
SPDX-License-Identifier: LGPL-2.0-or-later
*/
import QtQuick 2.1
import QtQuick.Layouts 1.0 as Layouts
import org.kde.plasma.components 3.0 as PlasmaComponents
import org.kde.kirigami 2.20 as Kirigami
MouseArea {
id: main
hoverEnabled: true
onEntered: toolTipHideTimer.running = false
onExited: toolTipHideTimer.running = true
width: Kirigami.Units.iconSizes.sizeForLabels * 35
height: Kirigami.Units.iconSizes.sizeForLabels * 16
property variant icon
property string title
property string description
property string author
property string email
property string license
property string pluginName
property bool local
onClicked: tooltipDialog.visible = false
Connections {
target: tooltipDialog
function onAppletDelegateChanged() {
if (!tooltipDialog.appletDelegate) {
return
}
icon = tooltipDialog.appletDelegate.icon
title = tooltipDialog.appletDelegate.title
description = tooltipDialog.appletDelegate.description
author = tooltipDialog.appletDelegate.author
email = tooltipDialog.appletDelegate.email
license = tooltipDialog.appletDelegate.license
pluginName = tooltipDialog.appletDelegate.pluginName
local = tooltipDialog.appletDelegate.local
}
}
Kirigami.Icon {
id: tooltipIconWidget
anchors {
left: parent.left
top: parent.top
margins: 8
}
width: Kirigami.Units.iconSizes.huge
height: width
source: main.icon
}
Column {
id: nameColumn
spacing: 8
anchors {
left: tooltipIconWidget.right
margins: 8
top: parent.top
right: parent.right
}
Kirigami.Heading {
text: title
level: 2
anchors.left: parent.left
anchors.right: parent.right
height: paintedHeight
textFormat: Text.PlainText
wrapMode: Text.Wrap
}
PlasmaComponents.Label {
text: description
textFormat: Text.PlainText
anchors.left: parent.left
anchors.right: parent.right
wrapMode: Text.Wrap
}
}
Layouts.GridLayout {
columns: 2
anchors {
top: (nameColumn.height > tooltipIconWidget.height) ? nameColumn.bottom : tooltipIconWidget.bottom
topMargin: 16
horizontalCenter: parent.horizontalCenter
}
PlasmaComponents.Label {
text: i18nd("plasma_shell_org.kde.plasma.desktop", "License:")
textFormat: Text.PlainText
Layouts.Layout.alignment: Qt.AlignVCenter|Qt.AlignRight
}
PlasmaComponents.Label {
id: licenseText
text: license
textFormat: Text.PlainText
wrapMode: Text.Wrap
}
PlasmaComponents.Label {
text: i18nd("plasma_shell_org.kde.plasma.desktop", "Author:")
textFormat: Text.PlainText
Layouts.Layout.alignment: Qt.AlignVCenter|Qt.AlignRight
}
PlasmaComponents.Label {
text: author
textFormat: Text.PlainText
wrapMode: Text.Wrap
}
PlasmaComponents.Label {
text: i18nd("plasma_shell_org.kde.plasma.desktop", "Email:")
textFormat: Text.PlainText
Layouts.Layout.alignment: Qt.AlignVCenter|Qt.AlignRight
}
PlasmaComponents.Label {
text: email
textFormat: Text.PlainText
}
}
PlasmaComponents.Button {
id: uninstallButton
anchors {
horizontalCenter: parent.horizontalCenter
bottom: parent.bottom
}
opacity: local ? 1 : 0
Behavior on opacity {
NumberAnimation { duration: Kirigami.Units.longDuration }
}
iconSource: "application-exit"
text: i18nd("plasma_shell_org.kde.plasma.desktop", "Uninstall")
onClicked: {
widgetExplorer.uninstall(pluginName)
tooltipDialog.visible = false
}
}
}