/*SPDX-FileCopyrightText: 2012 Gregor Taetzner <gregor@freenet.de>SPDX-FileCopyrightText: 2020 Ivan ΔukiΔ <ivan.cukic at kde.org>SPDX-License-Identifier: LGPL-2.0-or-later*/import QtQuickimport QtQuick.Layoutsimport org.kde.plasma.plasmoidimport org.kde.plasma.core as PlasmaCoreimport org.kde.plasma.components as PlasmaComponents3import org.kde.draganddrop as DNDimport org.kde.plasma.activityswitcher as ActivitySwitcherimport org.kde.kirigami as Kirigamiimport org.kde.activities as Activitiesimport org.kde.kcmutils as KCMimport org.kde.config as KConfigPlasmoidItem {id: rootLayout.preferredHeight: Kirigami.Units.iconSizes.largeLayout.preferredWidth: icon.width + (root.showActivityName ? name.implicitWidth + 2 * Kirigami.Units.smallSpacing : 0)readonly property bool inVertical: Plasmoid.formFactor === PlasmaCore.Types.Verticalreadonly property bool showActivityName: Plasmoid.configuration.showActivityNamereadonly property bool showActivityIcon: Plasmoid.configuration.showActivityIconPlasmoid.onActivated: ActivitySwitcher.Backend.toggleActivityManager()preferredRepresentation: fullRepresentationDND.DropArea {id: dropAreaanchors.fill: parentonDragEnter: (dragEvent) => {if (ActivitySwitcher.Backend.dragContainsWindows(dragEvent.mimeData)) {ActivitySwitcher.Backend.setDropMode(true)}}onDragLeave: ActivitySwitcher.Backend.setDropMode(false)Activities.ActivityInfo {id: currentActivityactivityId: ":current"}MouseArea {anchors.fill: parentactiveFocusOnTab: trueKeys.onPressed: {switch (event.key) {case Qt.Key_Space:case Qt.Key_Enter:case Qt.Key_Return:case Qt.Key_Select:Plasmoid.activated();break;}}Accessible.name: name.text ? i18nc("@info:tooltip", "Current activity is %1", name.text) : ""Accessible.description: tooltip.subTextAccessible.role: Accessible.ButtononClicked: Plasmoid.activated()}PlasmaCore.ToolTipArea {id: tooltipanchors.fill: parentmainText: i18nc("@info:tooltip", "Show Activity Manager")subText: i18nc("@info:tooltip subtext", "Click to show the activity manager")}Kirigami.Icon {id: iconanchors.verticalCenter: parent.verticalCenteranchors.horizontalCenter: root.showActivityName && !root.inVertical ? undefined : parent.horizontalCenteranchors.left: root.showActivityName && !root.inVertical ? parent.left : undefinedheight: Math.min(parent.height,parent.width,Kirigami.Units.iconSizes.huge)width: heightsource: !root.showActivityIcon ? "activities" :currentActivity.icon === "" ? "activities" :currentActivity.icon}PlasmaComponents3.Label {id: nameanchors {left: icon.rightleftMargin: Kirigami.Units.smallSpacingrightMargin: Kirigami.Units.smallSpacing}height: parent.heightwidth: parent.width - icon.widthvisible: root.showActivityName && !root.inVerticalelide: Text.ElideRightverticalAlignment: Text.AlignVCentertext: currentActivity.nametextFormat: Text.PlainText}}Plasmoid.contextualActions: [PlasmaCore.Action {text: i18nc("@action:inmenu widget context menu", "&Configure Activitiesβ¦")visible: KConfig.KAuthorized.authorize("kcm_activities")onTriggered: KCM.KCMLauncher.openSystemSettings("kcm_activities")}]}