import QtQuick import QtQuick.Layouts 1.1 import QtQuick.Controls import org.kde.plasma.plasmoid import org.kde.kirigami as Kirigami import org.kde.plasma.core as PlasmaCore import org.kde.plasma.components 3.0 as PlasmaComponents3 //import org.kde.plasma.plasma5support as Plasma5Support Item { id: iconAndTem Layout.minimumWidth: widthReal Layout.minimumHeight: heightReal property QtObject dashWindow: null readonly property bool isVertical: Plasmoid.formFactor === PlasmaCore.Types.Vertical property string undefanchors: activeweathershottext ? undefined : parent.verticalCenter property bool textweather: Plasmoid.configuration.displayWeatherInPanel property bool activeweathershottext: heightH > 34 property int fonssizes: Plasmoid.configuration.sizeFontConfig property int heightH: wrapper.height property var widthWidget: activeweathershottext ? temOfCo.implicitWidth : temOfCo.implicitWidth + wrapper_weathertext.width property var widthReal: isVertical ? wrapper.width : initial.implicitWidth property var hVerti: wrapper_vertical.implicitHeight property var heightReal: isVertical ? hVerti : wrapper.height MouseArea { id: compactMouseArea anchors.fill: parent hoverEnabled: true onClicked: { dashWindow.visible = !dashWindow.visible; } } RowLayout { id: initial width: icon.width + columntemandweathertext.width + icon.width * 0.3 height: parent.height spacing: icon.width / 5 visible: !isVertical Kirigami.Icon { id: icon width: root.height < 17 ? 16 : root.height < 24 ? 22 : 24 height: width source: wrapper.currentIcon anchors.top: parent.top anchors.bottom: parent.bottom roundToIconSize: false } Column { id: columntemandweathertext width: widthWidget height: temOfCo.implicitHeight anchors.verticalCenter: parent.verticalCenter Row { id: temOfCo width: textGrados.implicitWidth + subtextGrados.implicitWidth height: textGrados.implicitHeight anchors.verticalCenter: undefanchors Label { id: textGrados height: parent.height width: parent.width - subtextGrados.implicitWidth text: wrapper.currentTemp font.bold: boldfonts font.pixelSize: fonssizes color: PlasmaCore.Theme.textColor horizontalAlignment: Text.AlignLeft verticalAlignment: Text.AlignVCenter } Label { id: subtextGrados height: parent.height width: parent.width - textGrados.implicitWidth text: (wrapper.unitsTemperature === "0") ? " °C " : " °F " horizontalAlignment: Text.AlignLeft font.bold: boldfonts font.pixelSize: fonssizes color: PlasmaCore.Theme.textColor verticalAlignment: Text.AlignVCenter } } Item { id: wrapper_weathertext height: shortweathertext.implicitHeight width: shortweathertext.implicitWidth visible: activeweathershottext & textweather Label { id: shortweathertext text: wrapper.weather font.pixelSize: fonssizes font.bold: true verticalAlignment: Text.AlignVCenter } } } } ColumnLayout { id: wrapper_vertical width: root.width height: icon_vertical.height + textGrados_vertical.implicitHeight spacing: 2 visible: isVertical Kirigami.Icon { id: icon_vertical width: wrapper.width < 17 ? 16 : wrapper.width < 24 ? 22 : 24 height: wrapper.width < 17 ? 16 : wrapper.width < 24 ? 22 : 24 source: wrapper.currentIcon anchors.left: parent.left anchors.right: parent.right roundToIconSize: false } Row { id: temOfCo_vertical width: textGrados_vertical.implicitWidth + subtextGrados_vertical.implicitWidth height: textGrados_vertical.implicitHeight Layout.alignment: Qt.AlignHCenter Label { id: textGrados_vertical height: parent.height text: wrapper.currentTemp font.bold: boldfonts font.pixelSize: fonssizes color: PlasmaCore.Theme.textColor horizontalAlignment: Text.AlignHCenter } Label { id: subtextGrados_vertical height: parent.height text: (wrapper.unitsTemperature === "0") ? " °C" : " °F" font.bold: boldfonts font.pixelSize: fonssizes color: PlasmaCore.Theme.textColor horizontalAlignment: Text.AlignHCenter } } } Component.onCompleted: { dashWindow = Qt.createQmlObject("Representation {}", wrapper); plasmoid.activated.connect(function() { dashWindow.plasmoidWidV = widthReal dashWindow.plasmoidWidH = heightReal dashWindow.visible = !dashWindow.visible; }); } }