/*************************************************************************** * This file is part of awesome-widgets * * * * awesome-widgets 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 3 of the * * License, or (at your option) any later version. * * * * awesome-widgets 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 awesome-widgets. If not, see http://www.gnu.org/licenses/ * ***************************************************************************/ import QtQuick 2.4 import QtQuick.Controls 1.3 as QtControls import QtQuick.Layouts 1.1 import org.kde.plasma.plasmoid 2.0 import org.kde.plasma.core 2.0 as PlasmaCore import org.kde.plasma.components 2.0 as PlasmaComponents import org.kde.plasma.private.desktoppanel 1.0 import "." Item { id: main // backend DPAdds { id: dpAdds } property bool debug: dpAdds.isDebugEnabled() property variant tooltipSettings: { "tooltipColor": plasmoid.configuration.tooltipColor, "tooltipType": plasmoid.configuration.tooltipType, "tooltipWidth": plasmoid.configuration.tooltipWidth } signal needUpdate signal needTooltipUpdate signal sizeUpdate // init Plasmoid.preferredRepresentation: Plasmoid.fullRepresentation Plasmoid.compactRepresentation: Plasmoid.fullRepresentation Layout.alignment: Qt.AlignVCenter | Qt.AlignHCenter Plasmoid.icon: "utilities-system-monitor" Plasmoid.backgroundHints: plasmoid.configuration.background ? "DefaultBackground" : "NoBackground" // ui GridLayout { anchors.fill: parent columns: plasmoid.configuration.verticalLayout ? 1 : dpAdds.numberOfDesktops() rows: plasmoid.configuration.verticalLayout ? dpAdds.numberOfDesktops() : 1 Repeater { id: repeater Layout.columnSpan: 0 Layout.rowSpan: 0 model: dpAdds.numberOfDesktops() Text { id: text height: contentHeight width: contentWidth renderType: Text.NativeRendering textFormat: Text.RichText wrapMode: Text.NoWrap verticalAlignment: Text.AlignVCenter text: dpAdds.parsePattern(plasmoid.configuration.text, index) property alias tooltip: tooltip MouseArea { hoverEnabled: true anchors.fill: parent onClicked: dpAdds.setCurrentDesktop(index) onEntered: needTooltipUpdate() } PlasmaCore.ToolTipArea { height: tooltip.height width: tooltip.width mainItem: Text { id: tooltip height: contentHeight width: contentWidth textFormat: Text.RichText } } } } } Timer { id: timer interval: 1000 onTriggered: needUpdate() } onNeedUpdate: { if (debug) console.debug() for (var i=0; i