mirror of
				https://github.com/arcan1s/awesome-widgets.git
				synced 2025-10-31 13:13:41 +00:00 
			
		
		
		
	end work on awesomewidget
edit setdatabysource method
This commit is contained in:
		| @ -33,12 +33,24 @@ ConfigModel { | ||||
|         source: "advanced.qml" | ||||
|     } | ||||
|  | ||||
|     ConfigCategory { | ||||
|         name: i18n("Tooltip") | ||||
|         icon: "preferences-desktop-color" | ||||
|         source: "tooltip.qml" | ||||
|     } | ||||
|  | ||||
|     ConfigCategory { | ||||
|         name: i18n("Appearance") | ||||
|         icon: "preferences-desktop-theme" | ||||
|         source: "appearance.qml" | ||||
|     } | ||||
|  | ||||
|     ConfigCategory { | ||||
|         name: i18n("DataEngine") | ||||
|         icon: "utilities-system-monitor" | ||||
|         source: "dataengine.qml" | ||||
|     } | ||||
|  | ||||
|     ConfigCategory { | ||||
|         name: i18n("About") | ||||
|         icon: "help-about" | ||||
|  | ||||
| @ -44,7 +44,7 @@ | ||||
|     <entry name="useTooltipBackground" type="bool"> | ||||
|       <default>true</default> | ||||
|     </entry> | ||||
|     <entry name="tooltipBackgroung" type="string"> | ||||
|     <entry name="tooltipBackground" type="string"> | ||||
|       <default>#ffffff</default> | ||||
|     </entry> | ||||
|     <entry name="cpuTooltip" type="bool"> | ||||
|  | ||||
							
								
								
									
										275
									
								
								sources/awesome-widget-kf5/package/contents/ui/dataengine.qml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										275
									
								
								sources/awesome-widget-kf5/package/contents/ui/dataengine.qml
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,275 @@ | ||||
| /*************************************************************************** | ||||
|  *   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.0 | ||||
| import QtQuick.Controls 1.0 as QtControls | ||||
| import QtQuick.Dialogs 1.1 as QtDialogs | ||||
| import QtQuick.Layouts 1.0 as QtLayouts | ||||
| import QtQuick.Controls.Styles 1.3 as QtStyles | ||||
|  | ||||
| import org.kde.plasma.private.awesomewidget 1.0 | ||||
| import "." | ||||
|  | ||||
|  | ||||
| Item { | ||||
|     id: dataenginePage | ||||
|     width: childrenRect.width | ||||
|     height: childrenRect.height | ||||
|     implicitWidth: pageColumn.implicitWidth | ||||
|     implicitHeight: pageColumn.implicitHeight | ||||
|  | ||||
|     property bool debug: AWKeys.isDebugEnabled() | ||||
|     property variant tooltipSettings: { | ||||
|         "tooltipNumber": plasmoid.configuration.tooltipNumber, | ||||
|         "useTooltipBackground": plasmoid.configuration.useTooltipBackground, | ||||
|         "tooltipBackgroung": plasmoid.configuration.tooltipBackgroung, | ||||
|         "cpuTooltip": plasmoid.configuration.cpuTooltip, | ||||
|         "cpuclTooltip": plasmoid.configuration.cpuclTooltip, | ||||
|         "memTooltip": plasmoid.configuration.memTooltip, | ||||
|         "swapTooltip": plasmoid.configuration.swapTooltip, | ||||
|         "downTooltip": plasmoid.configuration.downTooltip, | ||||
|         "upTooltip": plasmoid.configuration.downTooltip, | ||||
|         "batteryTooltip": plasmoid.configuration.batteryTooltip, | ||||
|         "cpuTooltipColor": plasmoid.configuration.cpuTooltipColor, | ||||
|         "cpuclTooltipColor": plasmoid.configuration.cpuclTooltipColor, | ||||
|         "memTooltipColor": plasmoid.configuration.memTooltipColor, | ||||
|         "swapTooltipColor": plasmoid.configuration.swapTooltipColor, | ||||
|         "downTooltipColor": plasmoid.configuration.downTooltipColor, | ||||
|         "upTooltipColor": plasmoid.configuration.upTooltipColor, | ||||
|         "batteryTooltipColor": plasmoid.configuration.batteryTooltipColor, | ||||
|         "batteryInTooltipColor": plasmoid.configuration.batteryInTooltipColor | ||||
|     } | ||||
|  | ||||
|     property variant cfg_dataengine: AWActions.readDataEngineConfiguration() | ||||
|  | ||||
|     Column { | ||||
|         id: pageColumn | ||||
|         width: units.gridUnit * 25 | ||||
|         Row { | ||||
|             height: implicitHeight | ||||
|             width: parent.width | ||||
|             QtControls.Label { | ||||
|                 height: parent.height | ||||
|                 width: parent.width * 2 / 5 | ||||
|                 horizontalAlignment: Text.AlignRight | ||||
|                 verticalAlignment: Text.AlignVCenter | ||||
|                 text: i18n("ACPI path") | ||||
|             } | ||||
|             QtControls.TextField { | ||||
|                 height: parent.height | ||||
|                 width: parent.width * 3 / 5 | ||||
|                 text: cfg_dataengine["ACPIPATH"] | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         Row { | ||||
|             height: implicitHeight | ||||
|             width: parent.width | ||||
|             QtControls.Label { | ||||
|                 height: parent.height | ||||
|                 width: parent.width * 2 / 5 | ||||
|                 horizontalAlignment: Text.AlignRight | ||||
|                 verticalAlignment: Text.AlignVCenter | ||||
|                 text: i18n("Custom scripts") | ||||
|             } | ||||
|             QtControls.Button { | ||||
|                 width: parent.width * 3 / 5 | ||||
|                 text: i18n("Edit scripts") | ||||
|                 onClicked: AWKeys.editItem("extscript") | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         Row { | ||||
|             height: implicitHeight | ||||
|             width: parent.width | ||||
|             QtControls.Label { | ||||
|                 height: parent.height | ||||
|                 width: parent.width * 2 / 5 | ||||
|                 horizontalAlignment: Text.AlignRight | ||||
|                 verticalAlignment: Text.AlignVCenter | ||||
|                 text: i18n("GPU device") | ||||
|             } | ||||
|             QtControls.ComboBox { | ||||
|                 id: gpuDev | ||||
|                 width: parent.width * 3 / 5 | ||||
|                 model: ["auto", "disable", "ati", "nvidia"] | ||||
|                 onCurrentIndexChanged: cfg_dataengine["GPUDEV"] = gpuDev.currentText | ||||
|                 Component.onCompleted: { | ||||
|                     for (var i=0; i<model.length; i++) { | ||||
|                         if (model[i] == cfg_dataengine["GPUDEV"]) { | ||||
|                             gpuDev.currentIndex = i; | ||||
|                         } | ||||
|                     } | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         Row { | ||||
|             height: implicitHeight | ||||
|             width: parent.width | ||||
|             QtControls.Label { | ||||
|                 height: parent.height | ||||
|                 width: parent.width * 2 / 5 | ||||
|                 horizontalAlignment: Text.AlignRight | ||||
|                 verticalAlignment: Text.AlignVCenter | ||||
|                 text: i18n("HDD") | ||||
|             } | ||||
|             QtControls.ComboBox { | ||||
|                 id: hdd | ||||
|                 width: parent.width * 3 / 5 | ||||
|                 model: AWKeys.getHddDevices(true) | ||||
|                 onCurrentIndexChanged: cfg_dataengine["HDDDEV"] = hdd.currentText | ||||
|                 Component.onCompleted: { | ||||
|                     for (var i=0; i<model.length; i++) { | ||||
|                         if (model[i] == cfg_dataengine["HDDDEV"]) { | ||||
|                             hdd.currentIndex = i; | ||||
|                         } | ||||
|                     } | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         Row { | ||||
|             height: implicitHeight | ||||
|             width: parent.width | ||||
|             QtControls.Label { | ||||
|                 height: parent.height | ||||
|                 width: parent.width * 2 / 5 | ||||
|                 horizontalAlignment: Text.AlignRight | ||||
|                 verticalAlignment: Text.AlignVCenter | ||||
|                 text: i18n("hddtemp cmd") | ||||
|             } | ||||
|             QtControls.TextField { | ||||
|                 height: parent.height | ||||
|                 width: parent.width * 3 / 5 | ||||
|                 text: cfg_dataengine["HDDTEMP"] | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         Row { | ||||
|             height: implicitHeight | ||||
|             width: parent.width | ||||
|             QtControls.Label { | ||||
|                 height: parent.height | ||||
|                 width: parent.width * 2 / 5 | ||||
|                 horizontalAlignment: Text.AlignRight | ||||
|                 verticalAlignment: Text.AlignVCenter | ||||
|                 text: i18n("MPD address") | ||||
|             } | ||||
|             QtControls.TextField { | ||||
|                 height: parent.height | ||||
|                 width: parent.width * 3 / 5 | ||||
|                 text: cfg_dataengine["MPDADDRESS"] | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         Row { | ||||
|             height: implicitHeight | ||||
|             width: parent.width | ||||
|             QtControls.Label { | ||||
|                 height: parent.height | ||||
|                 width: parent.width * 2 / 5 | ||||
|                 horizontalAlignment: Text.AlignRight | ||||
|                 verticalAlignment: Text.AlignVCenter | ||||
|                 text: i18n("MPD port") | ||||
|             } | ||||
|             QtControls.SpinBox { | ||||
|                 width: parent.width * 3 / 5 | ||||
|                 minimumValue: 1000 | ||||
|                 maximumValue: 65535 | ||||
|                 stepSize: 1 | ||||
|                 value: cfg_dataengine["MPDPORT"] | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         Row { | ||||
|             height: implicitHeight | ||||
|             width: parent.width | ||||
|             QtControls.Label { | ||||
|                 height: parent.height | ||||
|                 width: parent.width * 2 / 5 | ||||
|                 horizontalAlignment: Text.AlignRight | ||||
|                 verticalAlignment: Text.AlignVCenter | ||||
|                 text: i18n("MPRIS player name") | ||||
|             } | ||||
|             QtControls.ComboBox { | ||||
|                 id: mpris | ||||
|                 width: parent.width * 3 / 5 | ||||
|                 editable: true | ||||
|                 model: ["auto", "amarok", "audacious", "clementine", "deadbeef", | ||||
|                         "vlc", "qmmp", "xmms2", cfg_dataengine["MPRIS"]] | ||||
|                 currentIndex: model.length - 1 | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         Row { | ||||
|             height: implicitHeight | ||||
|             width: parent.width | ||||
|             QtControls.Label { | ||||
|                 height: parent.height | ||||
|                 width: parent.width * 2 / 5 | ||||
|                 horizontalAlignment: Text.AlignRight | ||||
|                 verticalAlignment: Text.AlignVCenter | ||||
|                 text: i18n("Music player") | ||||
|             } | ||||
|             QtControls.ComboBox { | ||||
|                 id: player | ||||
|                 width: parent.width * 3 / 5 | ||||
|                 model: ["mpris", "mpd"] | ||||
|                 onCurrentIndexChanged: cfg_dataengine["PLAYER"] = model[currentIndex] | ||||
|                 Component.onCompleted: { | ||||
|                     for (var i=0; i<model.length; i++) { | ||||
|                         if (model[i] == cfg_dataengine["PLAYER"]) { | ||||
|                             player.currentIndex = i; | ||||
|                         } | ||||
|                     } | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         Row { | ||||
|             height: implicitHeight | ||||
|             width: parent.width | ||||
|             QtControls.Label { | ||||
|                 height: parent.height | ||||
|                 width: parent.width * 2 / 5 | ||||
|                 horizontalAlignment: Text.AlignRight | ||||
|                 verticalAlignment: Text.AlignVCenter | ||||
|                 text: i18n("Package manager") | ||||
|             } | ||||
|             QtControls.Button { | ||||
|                 width: parent.width * 3 / 5 | ||||
|                 text: i18n("Edit command") | ||||
|                 onClicked: AWKeys.editItem("extupgrade") | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     Component.onCompleted: { | ||||
|         if (debug) console.log("[dataengine::onCompleted]") | ||||
|  | ||||
|         // init submodule | ||||
|         AWKeys.initKeys(plasmoid.configuration.text, tooltipSettings) | ||||
|     } | ||||
|  | ||||
|     Component.onDestruction: { | ||||
|         if (debug) console.log("[dataengine::onDestruction]") | ||||
|  | ||||
|         cfg_dataengine["MPRIS"] = mpris.currentText | ||||
|         AWActions.writeDataEngineConfiguration(cfg_dataengine) | ||||
|     } | ||||
| } | ||||
| @ -141,7 +141,6 @@ Item { | ||||
|         // actions | ||||
|         plasmoid.setAction("requestKey", i18n("Request key"), "utilities-system-monitor") | ||||
|         plasmoid.setAction("showReadme", i18n("Show README"), "text-x-readme") | ||||
|         plasmoid.setAction("updateText", i18n("Update text"), "view-refresh") | ||||
|         plasmoid.setAction("checkUpdates", i18n("Check updates"), "system-software-update") | ||||
|     } | ||||
|  | ||||
| @ -175,8 +174,4 @@ Item { | ||||
|         if (message.length == 0) return | ||||
|         AWActions.sendNotification("tag", message) | ||||
|     } | ||||
|  | ||||
|     function action_updateText() { | ||||
|         if (debug) console.log("[main::action_updateText]") | ||||
|     } | ||||
| } | ||||
|  | ||||
							
								
								
									
										513
									
								
								sources/awesome-widget-kf5/package/contents/ui/tooltip.qml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										513
									
								
								sources/awesome-widget-kf5/package/contents/ui/tooltip.qml
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,513 @@ | ||||
| /*************************************************************************** | ||||
|  *   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.0 | ||||
| import QtQuick.Controls 1.3 as QtControls | ||||
| import QtQuick.Controls.Styles 1.3 as QtStyles | ||||
| import QtQuick.Dialogs 1.1 as QtDialogs | ||||
|  | ||||
| import org.kde.plasma.private.awesomewidget 1.0 | ||||
| import "." | ||||
|  | ||||
|  | ||||
| Item { | ||||
|     id: tooltipPage | ||||
|     width: childrenRect.width | ||||
|     height: childrenRect.height | ||||
|     implicitWidth: pageColumn.implicitWidth | ||||
|     implicitHeight: pageColumn.implicitHeight | ||||
|  | ||||
|     property bool debug: AWKeys.isDebugEnabled() | ||||
|  | ||||
|     property alias cfg_tooltipNumber: tooltipNumber.value | ||||
|     property alias cfg_useTooltipBackground: useTooltipBackground.checked | ||||
|     property alias cfg_tooltipBackground: tooltipBackground.text | ||||
|     property alias cfg_cpuTooltip: cpuTooltip.checked | ||||
|     property alias cfg_cpuTooltipColor: cpuTooltipColor.text | ||||
|     property alias cfg_cpuclTooltip: cpuclTooltip.checked | ||||
|     property alias cfg_cpuclTooltipColor: cpuclTooltipColor.text | ||||
|     property alias cfg_memTooltip: memTooltip.checked | ||||
|     property alias cfg_memTooltipColor: memTooltipColor.text | ||||
|     property alias cfg_swapTooltip: swapTooltip.checked | ||||
|     property alias cfg_swapTooltipColor: swapTooltipColor.text | ||||
|     property alias cfg_downTooltip: downTooltip.checked | ||||
|     property alias cfg_downTooltipColor: downTooltipColor.text | ||||
|     property alias cfg_upTooltipColor: upTooltipColor.text | ||||
|     property alias cfg_batteryTooltip: batteryTooltip.checked | ||||
|     property alias cfg_batteryTooltipColor: batteryTooltipColor.text | ||||
|     property alias cfg_batteryInTooltipColor: batteryInTooltipColor.text | ||||
|  | ||||
|  | ||||
|     Column { | ||||
|         id: pageColumn | ||||
|         width: units.gridUnit * 25 | ||||
|         QtControls.Label { | ||||
|           width: parent.width | ||||
|           horizontalAlignment: Text.AlignHCenter | ||||
|           verticalAlignment: Text.AlignVCenter | ||||
|           text: i18n("CPU, CPU clock, memory, swap and network labels support graphical tooltip. To enable them just make needed checkbox fully checked.") | ||||
|         } | ||||
|  | ||||
|         Row { | ||||
|             height: implicitHeight | ||||
|             width: parent.width | ||||
|             QtControls.Label { | ||||
|                 height: parent.height | ||||
|                 width: parent.width * 2 / 5 | ||||
|                 horizontalAlignment: Text.AlignRight | ||||
|                 verticalAlignment: Text.AlignVCenter | ||||
|                 text: i18n("Number of values for tooltips") | ||||
|             } | ||||
|             QtControls.SpinBox { | ||||
|                 id: tooltipNumber | ||||
|                 width: parent.width * 3 / 5 | ||||
|                 minimumValue: 50 | ||||
|                 maximumValue: 1000 | ||||
|                 stepSize: 25 | ||||
|                 value: plasmoid.configuration.tooltipNumber | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         Row { | ||||
|             height: implicitHeight | ||||
|             width: parent.width | ||||
|             QtControls.Label { | ||||
|                 height: parent.height | ||||
|                 width: parent.width * 2 / 5 - useTooltipBackground.width | ||||
|                 horizontalAlignment: Text.AlignRight | ||||
|                 verticalAlignment: Text.AlignVCenter | ||||
|                 text: i18n("Background") | ||||
|             } | ||||
|             QtControls.CheckBox { | ||||
|                 id: useTooltipBackground | ||||
|                 height: parent.height | ||||
|                 width: implicitWidth | ||||
|                 style: QtStyles.CheckBoxStyle { | ||||
|                     indicator: Rectangle { | ||||
|                         implicitWidth: 16 | ||||
|                         implicitHeight: 16 | ||||
|                         radius: 3 | ||||
|                         border.width: 1 | ||||
|                         border.color: control.activeFocus ? "darkblue" : "gray" | ||||
|                         Rectangle { | ||||
|                             visible: control.checked | ||||
|                             radius: 1 | ||||
|                             anchors.fill: parent | ||||
|                             anchors.margins: 4 | ||||
|                             color: "#555555" | ||||
|                             border.color: "#333333" | ||||
|                         } | ||||
|                     } | ||||
|                 } | ||||
|             } | ||||
|             QtControls.Button { | ||||
|                 id: tooltipBackground | ||||
|                 width: parent.width * 3 / 5 | ||||
|                 style: QtStyles.ButtonStyle { | ||||
|                     background: Rectangle { | ||||
|                         color: plasmoid.configuration.tooltipBackground | ||||
|                     } | ||||
|                 } | ||||
|                 text: plasmoid.configuration.tooltipBackground | ||||
|                 onClicked: tooltipBackgroundDialog.visible = true | ||||
|             } | ||||
|  | ||||
|             QtDialogs.ColorDialog { | ||||
|                 id: tooltipBackgroundDialog | ||||
|                 title: i18n("Select a color") | ||||
|                 color: tooltipBackground.text | ||||
|                 onAccepted: tooltipBackground.text = tooltipBackgroundDialog.color | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         Row { | ||||
|             height: implicitHeight | ||||
|             width: parent.width | ||||
|             QtControls.Label { | ||||
|                 height: parent.height | ||||
|                 width: parent.width * 2 / 5 - cpuTooltip.width | ||||
|                 horizontalAlignment: Text.AlignRight | ||||
|                 verticalAlignment: Text.AlignVCenter | ||||
|                 text: i18n("CPU color") | ||||
|             } | ||||
|             QtControls.CheckBox { | ||||
|                 id: cpuTooltip | ||||
|                 height: parent.height | ||||
|                 width: implicitWidth | ||||
|                 style: QtStyles.CheckBoxStyle { | ||||
|                     indicator: Rectangle { | ||||
|                         implicitWidth: 16 | ||||
|                         implicitHeight: 16 | ||||
|                         radius: 3 | ||||
|                         border.width: 1 | ||||
|                         border.color: control.activeFocus ? "darkblue" : "gray" | ||||
|                         Rectangle { | ||||
|                             visible: control.checked | ||||
|                             radius: 1 | ||||
|                             anchors.fill: parent | ||||
|                             anchors.margins: 4 | ||||
|                             color: "#555555" | ||||
|                             border.color: "#333333" | ||||
|                         } | ||||
|                     } | ||||
|                 } | ||||
|             } | ||||
|             QtControls.Button { | ||||
|                 id: cpuTooltipColor | ||||
|                 width: parent.width * 3 / 5 | ||||
|                 style: QtStyles.ButtonStyle { | ||||
|                     background: Rectangle { | ||||
|                         color: plasmoid.configuration.cpuTooltipColor | ||||
|                     } | ||||
|                 } | ||||
|                 text: plasmoid.configuration.cpuTooltipColor | ||||
|                 onClicked: cpuTooltipColorDialog.visible = true | ||||
|             } | ||||
|  | ||||
|             QtDialogs.ColorDialog { | ||||
|                 id: cpuTooltipColorDialog | ||||
|                 title: i18n("Select a color") | ||||
|                 color: cpuTooltipColor.text | ||||
|                 onAccepted: cpuTooltipColor.text = cpuTooltipColorDialog.color | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         Row { | ||||
|             height: implicitHeight | ||||
|             width: parent.width | ||||
|             QtControls.Label { | ||||
|                 height: parent.height | ||||
|                 width: parent.width * 2 / 5 - cpuclTooltip.width | ||||
|                 horizontalAlignment: Text.AlignRight | ||||
|                 verticalAlignment: Text.AlignVCenter | ||||
|                 text: i18n("CPU clock color") | ||||
|             } | ||||
|             QtControls.CheckBox { | ||||
|                 id: cpuclTooltip | ||||
|                 height: parent.height | ||||
|                 width: implicitWidth | ||||
|                 style: QtStyles.CheckBoxStyle { | ||||
|                     indicator: Rectangle { | ||||
|                         implicitWidth: 16 | ||||
|                         implicitHeight: 16 | ||||
|                         radius: 3 | ||||
|                         border.width: 1 | ||||
|                         border.color: control.activeFocus ? "darkblue" : "gray" | ||||
|                         Rectangle { | ||||
|                             visible: control.checked | ||||
|                             radius: 1 | ||||
|                             anchors.fill: parent | ||||
|                             anchors.margins: 4 | ||||
|                             color: "#555555" | ||||
|                             border.color: "#333333" | ||||
|                         } | ||||
|                     } | ||||
|                 } | ||||
|             } | ||||
|             QtControls.Button { | ||||
|                 id: cpuclTooltipColor | ||||
|                 width: parent.width * 3 / 5 | ||||
|                 style: QtStyles.ButtonStyle { | ||||
|                     background: Rectangle { | ||||
|                         color: plasmoid.configuration.cpuclTooltipColor | ||||
|                     } | ||||
|                 } | ||||
|                 text: plasmoid.configuration.cpuclTooltipColor | ||||
|                 onClicked: cpuclTooltipColorDialog.visible = true | ||||
|             } | ||||
|  | ||||
|             QtDialogs.ColorDialog { | ||||
|                 id: cpuclTooltipColorDialog | ||||
|                 title: i18n("Select a color") | ||||
|                 color: cpuclTooltipColor.text | ||||
|                 onAccepted: cpuclTooltipColor.text = cpuclTooltipColorDialog.color | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         Row { | ||||
|             height: implicitHeight | ||||
|             width: parent.width | ||||
|             QtControls.Label { | ||||
|                 height: parent.height | ||||
|                 width: parent.width * 2 / 5 - memTooltip.width | ||||
|                 horizontalAlignment: Text.AlignRight | ||||
|                 verticalAlignment: Text.AlignVCenter | ||||
|                 text: i18n("Memory color") | ||||
|             } | ||||
|             QtControls.CheckBox { | ||||
|                 id: memTooltip | ||||
|                 height: parent.height | ||||
|                 width: implicitWidth | ||||
|                 style: QtStyles.CheckBoxStyle { | ||||
|                     indicator: Rectangle { | ||||
|                         implicitWidth: 16 | ||||
|                         implicitHeight: 16 | ||||
|                         radius: 3 | ||||
|                         border.width: 1 | ||||
|                         border.color: control.activeFocus ? "darkblue" : "gray" | ||||
|                         Rectangle { | ||||
|                             visible: control.checked | ||||
|                             radius: 1 | ||||
|                             anchors.fill: parent | ||||
|                             anchors.margins: 4 | ||||
|                             color: "#555555" | ||||
|                             border.color: "#333333" | ||||
|                         } | ||||
|                     } | ||||
|                 } | ||||
|             } | ||||
|             QtControls.Button { | ||||
|                 id: memTooltipColor | ||||
|                 width: parent.width * 3 / 5 | ||||
|                 style: QtStyles.ButtonStyle { | ||||
|                     background: Rectangle { | ||||
|                         color: plasmoid.configuration.memTooltipColor | ||||
|                     } | ||||
|                 } | ||||
|                 text: plasmoid.configuration.memTooltipColor | ||||
|                 onClicked: memTooltipColorDialog.visible = true | ||||
|             } | ||||
|  | ||||
|             QtDialogs.ColorDialog { | ||||
|                 id: memTooltipColorDialog | ||||
|                 title: i18n("Select a color") | ||||
|                 color: memTooltipColor.text | ||||
|                 onAccepted: memTooltipColor.text = memTooltipColorDialog.color | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         Row { | ||||
|             height: implicitHeight | ||||
|             width: parent.width | ||||
|             QtControls.Label { | ||||
|                 height: parent.height | ||||
|                 width: parent.width * 2 / 5 - swapTooltip.width | ||||
|                 horizontalAlignment: Text.AlignRight | ||||
|                 verticalAlignment: Text.AlignVCenter | ||||
|                 text: i18n("Swap color") | ||||
|             } | ||||
|             QtControls.CheckBox { | ||||
|                 id: swapTooltip | ||||
|                 height: parent.height | ||||
|                 width: implicitWidth | ||||
|                 style: QtStyles.CheckBoxStyle { | ||||
|                     indicator: Rectangle { | ||||
|                         implicitWidth: 16 | ||||
|                         implicitHeight: 16 | ||||
|                         radius: 3 | ||||
|                         border.width: 1 | ||||
|                         border.color: control.activeFocus ? "darkblue" : "gray" | ||||
|                         Rectangle { | ||||
|                             visible: control.checked | ||||
|                             radius: 1 | ||||
|                             anchors.fill: parent | ||||
|                             anchors.margins: 4 | ||||
|                             color: "#555555" | ||||
|                             border.color: "#333333" | ||||
|                         } | ||||
|                     } | ||||
|                 } | ||||
|             } | ||||
|             QtControls.Button { | ||||
|                 id: swapTooltipColor | ||||
|                 width: parent.width * 3 / 5 | ||||
|                 style: QtStyles.ButtonStyle { | ||||
|                     background: Rectangle { | ||||
|                         color: plasmoid.configuration.swapTooltipColor | ||||
|                     } | ||||
|                 } | ||||
|                 text: plasmoid.configuration.swapTooltipColor | ||||
|                 onClicked: swapTooltipColorDialog.visible = true | ||||
|             } | ||||
|  | ||||
|             QtDialogs.ColorDialog { | ||||
|                 id: swapTooltipColorDialog | ||||
|                 title: i18n("Select a color") | ||||
|                 color: swapTooltipColor.text | ||||
|                 onAccepted: swapTooltipColor.text = swapTooltipColorDialog.color | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         Row { | ||||
|             height: implicitHeight | ||||
|             width: parent.width | ||||
|             QtControls.Label { | ||||
|                 height: parent.height | ||||
|                 width: parent.width * 2 / 5 - downTooltip.width | ||||
|                 horizontalAlignment: Text.AlignRight | ||||
|                 verticalAlignment: Text.AlignVCenter | ||||
|                 text: i18n("Download speed color") | ||||
|             } | ||||
|             QtControls.CheckBox { | ||||
|                 id: downTooltip | ||||
|                 height: parent.height | ||||
|                 width: implicitWidth | ||||
|                 style: QtStyles.CheckBoxStyle { | ||||
|                     indicator: Rectangle { | ||||
|                         implicitWidth: 16 | ||||
|                         implicitHeight: 16 | ||||
|                         radius: 3 | ||||
|                         border.width: 1 | ||||
|                         border.color: control.activeFocus ? "darkblue" : "gray" | ||||
|                         Rectangle { | ||||
|                             visible: control.checked | ||||
|                             radius: 1 | ||||
|                             anchors.fill: parent | ||||
|                             anchors.margins: 4 | ||||
|                             color: "#555555" | ||||
|                             border.color: "#333333" | ||||
|                         } | ||||
|                     } | ||||
|                 } | ||||
|             } | ||||
|             QtControls.Button { | ||||
|                 id: downTooltipColor | ||||
|                 width: parent.width * 3 / 5 | ||||
|                 style: QtStyles.ButtonStyle { | ||||
|                     background: Rectangle { | ||||
|                         color: plasmoid.configuration.downTooltipColor | ||||
|                     } | ||||
|                 } | ||||
|                 text: plasmoid.configuration.downTooltipColor | ||||
|                 onClicked: downTooltipColorDialog.visible = true | ||||
|             } | ||||
|  | ||||
|             QtDialogs.ColorDialog { | ||||
|                 id: downTooltipColorDialog | ||||
|                 title: i18n("Select a color") | ||||
|                 color: downTooltipColor.text | ||||
|                 onAccepted: downTooltipColor.text = downTooltipColorDialog.color | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         Row { | ||||
|             height: implicitHeight | ||||
|             width: parent.width | ||||
|             QtControls.Label { | ||||
|                 height: parent.height | ||||
|                 width: parent.width * 2 / 5 | ||||
|                 horizontalAlignment: Text.AlignRight | ||||
|                 verticalAlignment: Text.AlignVCenter | ||||
|                 text: i18n("Upload speed color") | ||||
|             } | ||||
|             QtControls.Button { | ||||
|                 id: upTooltipColor | ||||
|                 width: parent.width * 3 / 5 | ||||
|                 style: QtStyles.ButtonStyle { | ||||
|                     background: Rectangle { | ||||
|                         color: plasmoid.configuration.upTooltipColor | ||||
|                     } | ||||
|                 } | ||||
|                 text: plasmoid.configuration.upTooltipColor | ||||
|                 onClicked: upTooltipColorDialog.visible = true | ||||
|             } | ||||
|  | ||||
|             QtDialogs.ColorDialog { | ||||
|                 id: upTooltipColorDialog | ||||
|                 title: i18n("Select a color") | ||||
|                 color: upTooltipColor.text | ||||
|                 onAccepted: upTooltipColor.text = upTooltipColorDialog.color | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         Row { | ||||
|             height: implicitHeight | ||||
|             width: parent.width | ||||
|             QtControls.Label { | ||||
|                 height: parent.height | ||||
|                 width: parent.width * 2 / 5 - batteryTooltip.width | ||||
|                 horizontalAlignment: Text.AlignRight | ||||
|                 verticalAlignment: Text.AlignVCenter | ||||
|                 text: i18n("Battery active color") | ||||
|             } | ||||
|             QtControls.CheckBox { | ||||
|                 id: batteryTooltip | ||||
|                 height: parent.height | ||||
|                 width: implicitWidth | ||||
|                 style: QtStyles.CheckBoxStyle { | ||||
|                     indicator: Rectangle { | ||||
|                         implicitWidth: 16 | ||||
|                         implicitHeight: 16 | ||||
|                         radius: 3 | ||||
|                         border.width: 1 | ||||
|                         border.color: control.activeFocus ? "darkblue" : "gray" | ||||
|                         Rectangle { | ||||
|                             visible: control.checked | ||||
|                             radius: 1 | ||||
|                             anchors.fill: parent | ||||
|                             anchors.margins: 4 | ||||
|                             color: "#555555" | ||||
|                             border.color: "#333333" | ||||
|                         } | ||||
|                     } | ||||
|                 } | ||||
|             } | ||||
|             QtControls.Button { | ||||
|                 id: batteryTooltipColor | ||||
|                 width: parent.width * 3 / 5 | ||||
|                 style: QtStyles.ButtonStyle { | ||||
|                     background: Rectangle { | ||||
|                         color: plasmoid.configuration.batteryTooltipColor | ||||
|                     } | ||||
|                 } | ||||
|                 text: plasmoid.configuration.batteryTooltipColor | ||||
|                 onClicked: batteryTooltipColorDialog.visible = true | ||||
|             } | ||||
|  | ||||
|             QtDialogs.ColorDialog { | ||||
|                 id: batteryTooltipColorDialog | ||||
|                 title: i18n("Select a color") | ||||
|                 color: batteryTooltipColor.text | ||||
|                 onAccepted: batteryTooltipColor.text = batteryTooltipColorDialog.color | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         Row { | ||||
|             height: implicitHeight | ||||
|             width: parent.width | ||||
|             QtControls.Label { | ||||
|                 height: parent.height | ||||
|                 width: parent.width * 2 / 5 | ||||
|                 horizontalAlignment: Text.AlignRight | ||||
|                 verticalAlignment: Text.AlignVCenter | ||||
|                 text: i18n("Battery inactive color") | ||||
|             } | ||||
|             QtControls.Button { | ||||
|                 id: batteryInTooltipColor | ||||
|                 width: parent.width * 3 / 5 | ||||
|                 style: QtStyles.ButtonStyle { | ||||
|                     background: Rectangle { | ||||
|                         color: plasmoid.configuration.batteryInTooltipColor | ||||
|                     } | ||||
|                 } | ||||
|                 text: plasmoid.configuration.batteryInTooltipColor | ||||
|                 onClicked: batteryInTooltipColorDialog.visible = true | ||||
|             } | ||||
|  | ||||
|             QtDialogs.ColorDialog { | ||||
|                 id: batteryInTooltipColorDialog | ||||
|                 title: i18n("Select a color") | ||||
|                 color: batteryInTooltipColor.text | ||||
|                 onAccepted: batteryInTooltipColor.text = batteryInTooltipColorDialog.color | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     Component.onCompleted: { | ||||
|         if (debug) console.log("[tooltip::onCompleted]") | ||||
|     } | ||||
| } | ||||
| @ -153,48 +153,6 @@ QMap<QString, QVariant> AWActions::getFont(const QMap<QString, QVariant> default | ||||
| } | ||||
|  | ||||
|  | ||||
| QString AWActions::selectDevices(const QStringList source, const QStringList current) | ||||
| { | ||||
|     if (debug) qDebug() << PDEBUG; | ||||
|  | ||||
|     // paint | ||||
|     QDialog *dialog = new QDialog(0); | ||||
|     QListWidget *widget = new QListWidget(dialog); | ||||
|     QDialogButtonBox *buttons = new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel, | ||||
|                                                      Qt::Vertical, dialog); | ||||
|     QHBoxLayout *layout = new QHBoxLayout(dialog); | ||||
|     layout->addWidget(widget); | ||||
|     layout->addWidget(buttons); | ||||
|     dialog->setLayout(layout); | ||||
|     connect(buttons, SIGNAL(accepted()), dialog, SLOT(accept())); | ||||
|     connect(buttons, SIGNAL(rejected()), dialog, SLOT(reject())); | ||||
|  | ||||
|     // fill | ||||
|     for (int i=0; i<source.count(); i++) { | ||||
|         QListWidgetItem *item = new QListWidgetItem(source[i]); | ||||
|         if (current.contains(source[i])) | ||||
|             item->setCheckState(Qt::Checked); | ||||
|         else | ||||
|             item->setCheckState(Qt::Unchecked); | ||||
|         widget->addItem(item); | ||||
|     } | ||||
|  | ||||
|     // exec | ||||
|     QStringList selected; | ||||
|     int ret = dialog->exec(); | ||||
|     if (debug) qDebug() << PDEBUG << ":" << "Dialog returns" << ret; | ||||
|     if (ret == QDialog::Accepted) { | ||||
|         for (int i=0; i<widget->count(); i++) | ||||
|             if (widget->item(i)->checkState() == Qt::Checked) | ||||
|                 selected.append(widget->item(i)->text()); | ||||
|     } else | ||||
|         selected = current; | ||||
|     delete dialog; | ||||
|  | ||||
|     return selected.join(QString("@@")); | ||||
| } | ||||
|  | ||||
|  | ||||
| QMap<QString, QVariant> AWActions::readDataEngineConfiguration() | ||||
| { | ||||
|     if (debug) qDebug() << PDEBUG; | ||||
|  | ||||
| @ -238,11 +238,15 @@ QStringList AWKeys::dictKeys() | ||||
|         allKeys.append(QString("hddw") + QString::number(i)); | ||||
|     } | ||||
|     // hdd temp | ||||
|     for (int i=getHddDevices.count()-1; i>=0; i--) { | ||||
|     for (int i=getHddDevices().count()-1; i>=0; i--) { | ||||
|         allKeys.append(QString("hddtemp") + QString::number(i)); | ||||
|         allKeys.append(QString("hddtemp") + QString::number(i)); | ||||
|     } | ||||
|     // network | ||||
|     for (int i=getNetworkDevices().count()-1; i>=0; i--) { | ||||
|         allKeys.append(QString("down") + QString::number(i)); | ||||
|         allKeys.append(QString("up") + QString::number(i)); | ||||
|     } | ||||
|     allKeys.append(QString("down")); | ||||
|     allKeys.append(QString("up")); | ||||
|     allKeys.append(QString("netdev")); | ||||
| @ -274,6 +278,9 @@ QStringList AWKeys::dictKeys() | ||||
|     allKeys.append(QString("desktop")); | ||||
|     allKeys.append(QString("ndesktop")); | ||||
|     allKeys.append(QString("tdesktops")); | ||||
|     // bars | ||||
|     for (int i=0; i<graphicalItems.count(); i++) | ||||
|         allKeys.append(graphicalItems[i]->name() + graphicalItems[i]->bar()); | ||||
|  | ||||
|     return allKeys; | ||||
| } | ||||
| @ -299,7 +306,7 @@ QStringList AWKeys::getFanDevices() | ||||
| } | ||||
|  | ||||
|  | ||||
| QStringList AWKeys::getHddDevices() | ||||
| QStringList AWKeys::getHddDevices(const bool needAbstract) | ||||
| { | ||||
|     if (debug) qDebug() << PDEBUG; | ||||
|  | ||||
| @ -309,6 +316,11 @@ QStringList AWKeys::getHddDevices() | ||||
|         devices[i] = QString("/dev/") + devices[i]; | ||||
|     devices.sort(); | ||||
|  | ||||
|     if (needAbstract) { | ||||
|         devices.insert(0, QString("disable")); | ||||
|         devices.insert(0, QString("auto")); | ||||
|     } | ||||
|  | ||||
|     return devices; | ||||
| } | ||||
|  | ||||
| @ -347,7 +359,7 @@ QStringList AWKeys::getTempDevices() | ||||
| } | ||||
|  | ||||
|  | ||||
| void AWKeys::setDataBySource(const QString sourceName, | ||||
| bool AWKeys::setDataBySource(const QString sourceName, | ||||
|                              const QMap<QString, QVariant> data, | ||||
|                              const QMap<QString, QVariant> params) | ||||
| { | ||||
| @ -355,8 +367,8 @@ void AWKeys::setDataBySource(const QString sourceName, | ||||
|     if (debug) qDebug() << PDEBUG << ":" << "Source" << sourceName; | ||||
|  | ||||
|     // checking | ||||
|     if (!checkKeys(data)) return; | ||||
|     if (!ready) return; | ||||
|     if (!checkKeys(data)) return false; | ||||
|     if (!ready) return false; | ||||
|  | ||||
|     // regular expressions | ||||
|     QRegExp cpuRegExp = QRegExp(QString("cpu/cpu.*/TotalLoad")); | ||||
| @ -416,7 +428,7 @@ void AWKeys::setDataBySource(const QString sourceName, | ||||
|         QString device = sourceName; | ||||
|         device.remove(QString("/Rate/rblk")); | ||||
|         for (int i=0; i<diskDevices.count(); i++) | ||||
|             if (params[QString("disk")].toString().split(QString("@@"))[i] == device) { | ||||
|             if (diskDevices[i] == device) { | ||||
|                 values[QString("hddr") + QString::number(i)] = QString("%1").arg(data[QString("value")].toFloat(), 5, 'f', 0); | ||||
|                 break; | ||||
|             } | ||||
| @ -425,7 +437,7 @@ void AWKeys::setDataBySource(const QString sourceName, | ||||
|         QString device = sourceName; | ||||
|         device.remove(QString("/Rate/wblk")); | ||||
|         for (int i=0; i<diskDevices.count(); i++) | ||||
|             if (params[QString("disk")].toString().split(QString("@@"))[i] == device) { | ||||
|             if (diskDevices[i] == device) { | ||||
|                 values[QString("hddw") + QString::number(i)] = QString("%1").arg(data[QString("value")].toFloat(), 5, 'f', 0); | ||||
|                 break; | ||||
|             } | ||||
| @ -441,7 +453,7 @@ void AWKeys::setDataBySource(const QString sourceName, | ||||
|         QString mount = sourceName; | ||||
|         mount.remove(QString("partitions")).remove(QString("/filllevel")); | ||||
|         for (int i=0; i<mountDevices.count(); i++) | ||||
|             if (params[QString("mount")].toString().split(QString("@@"))[i] == mount) { | ||||
|             if (mountDevices[i] == mount) { | ||||
|                 values[QString("hdd") + QString::number(i)] = QString("%1").arg(data[QString("value")].toFloat(), 5, 'f', 1); | ||||
|                 break; | ||||
|             } | ||||
| @ -450,7 +462,7 @@ void AWKeys::setDataBySource(const QString sourceName, | ||||
|         QString mount = sourceName; | ||||
|         mount.remove(QString("partitions")).remove(QString("/freespace")); | ||||
|         for (int i=0; i<mountDevices.count(); i++) | ||||
|             if (params[QString("mount")].toString().split(QString("@@"))[i] == mount) { | ||||
|             if (mountDevices[i] == mount) { | ||||
|                 values[QString("hddfreemb") + QString::number(i)] = QString("%1").arg( | ||||
|                     data[QString("value")].toFloat() / 1024.0, 5, 'f', 0); | ||||
|                 values[QString("hddfreegb") + QString::number(i)] = QString("%1").arg( | ||||
| @ -462,7 +474,7 @@ void AWKeys::setDataBySource(const QString sourceName, | ||||
|         QString mount = sourceName; | ||||
|         mount.remove(QString("partitions")).remove(QString("/usedspace")); | ||||
|         for (int i=0; i<mountDevices.count(); i++) | ||||
|             if (params[QString("mount")].toString().split(QString("@@"))[i] == mount) { | ||||
|             if (mountDevices[i] == mount) { | ||||
|                 values[QString("hddmb") + QString::number(i)] = QString("%1").arg( | ||||
|                     data[QString("value")].toFloat() / 1024.0, 5, 'f', 0); | ||||
|                 values[QString("hddgb") + QString::number(i)] = QString("%1").arg( | ||||
| @ -478,9 +490,10 @@ void AWKeys::setDataBySource(const QString sourceName, | ||||
|             } | ||||
|     } else if (sourceName == QString("hddtemp")) { | ||||
|         // hdd temperature | ||||
|         QStringList hddDevices = getHddDevices(); | ||||
|         for (int i=0; i<data.keys().count(); i++) | ||||
|             for (int j=0; j<getHddDevices().count(); j++) | ||||
|                 if (data.keys()[i] == params[QString("hdd")].toString().split(QString("@@"))[j]) { | ||||
|             for (int j=0; j<hddDevices.count(); j++) | ||||
|                 if (hddDevices[j] == data.keys()[i]) { | ||||
|                     values[QString("hddtemp") + QString::number(j)] = QString("%1").arg( | ||||
|                         temperature(data[data.keys()[i]].toFloat(), params[QString("tempUnits")].toString()), 4, 'f', 1); | ||||
|                     break; | ||||
| @ -513,6 +526,12 @@ void AWKeys::setDataBySource(const QString sourceName, | ||||
|         // download speed | ||||
|         QString device = sourceName; | ||||
|         device.remove(QString("network/interfaces/")).remove(QString("/receiver/data")); | ||||
|         QStringList allNetworkDevices = getNetworkDevices(); | ||||
|         for (int i=0; i<allNetworkDevices.count(); i++) | ||||
|             if (allNetworkDevices[i] == device) { | ||||
|                 values[QString("down") + QString::number(i)] = QString("%1").arg(data[QString("value")].toFloat(), 4, 'f', 0); | ||||
|                 break; | ||||
|         } | ||||
|         if (device == networkDevice()) { | ||||
|             values[QString("down")] = QString("%1").arg(data[QString("value")].toFloat(), 4, 'f', 0); | ||||
|             toolTip->setData(QString("down"), data[QString("value")].toFloat()); | ||||
| @ -521,6 +540,12 @@ void AWKeys::setDataBySource(const QString sourceName, | ||||
|         // upload speed | ||||
|         QString device = sourceName; | ||||
|         device.remove(QString("network/interfaces/")).remove(QString("/transmitter/data")); | ||||
|         QStringList allNetworkDevices = getNetworkDevices(); | ||||
|         for (int i=0; i<allNetworkDevices.count(); i++) | ||||
|             if (allNetworkDevices[i] == device) { | ||||
|                 values[QString("up") + QString::number(i)] = QString("%1").arg(data[QString("value")].toFloat(), 4, 'f', 0); | ||||
|                 break; | ||||
|         } | ||||
|         if (device == networkDevice()) { | ||||
|             values[QString("up")] = QString("%1").arg(data[QString("value")].toFloat(), 4, 'f', 0); | ||||
|             toolTip->setData(QString("up"), data[QString("value")].toFloat()); | ||||
| @ -562,13 +587,13 @@ void AWKeys::setDataBySource(const QString sourceName, | ||||
|         // temperature devices | ||||
|         if (data[QString("units")].toString() == QString("rpm")) { | ||||
|             for (int i=0; i<fanDevices.count(); i++) | ||||
|                 if (sourceName == params[QString("fanDevice")].toString().split(QString("@@"))[i]) { | ||||
|                 if (sourceName == fanDevices[i]) { | ||||
|                     values[QString("fan") + QString::number(i)] = QString("%1").arg(data[QString("value")].toFloat(), 4, 'f', 1); | ||||
|                     break; | ||||
|                 } | ||||
|         } else { | ||||
|             for (int i=0; i<tempDevices.count(); i++) | ||||
|                 if (sourceName == params[QString("tempDevice")].toString().split(QString("@@"))[i]) { | ||||
|                 if (sourceName == tempDevices[i]) { | ||||
|                     values[QString("temp") + QString::number(i)] = QString("%1").arg( | ||||
|                         temperature(data[QString("value")].toFloat(), params[QString("tempUnits")].toString()), 4, 'f', 1); | ||||
|                     break; | ||||
| @ -600,7 +625,12 @@ void AWKeys::setDataBySource(const QString sourceName, | ||||
|         values[QString("cuptime")].replace(QString("$h"), QString("%1").arg(hours)); | ||||
|         values[QString("cuptime")].replace(QString("$mm"), QString("%1").arg(minutes, 2, 10, QChar('0'))); | ||||
|         values[QString("cuptime")].replace(QString("$m"), QString("%1").arg(minutes)); | ||||
|     } else { | ||||
|         if (debug) qDebug() << PDEBUG << ":" << "Source not found"; | ||||
|         return false; | ||||
|     } | ||||
|  | ||||
|     return true; | ||||
| } | ||||
|  | ||||
|  | ||||
|  | ||||
| @ -61,11 +61,11 @@ public: | ||||
|     Q_INVOKABLE QStringList dictKeys(); | ||||
|     Q_INVOKABLE QStringList getDiskDevices(); | ||||
|     Q_INVOKABLE QStringList getFanDevices(); | ||||
|     Q_INVOKABLE QStringList getHddDevices(); | ||||
|     Q_INVOKABLE QStringList getHddDevices(const bool needAbstract = false); | ||||
|     Q_INVOKABLE QStringList getMountDevices(); | ||||
|     Q_INVOKABLE QStringList getNetworkDevices(); | ||||
|     Q_INVOKABLE QStringList getTempDevices(); | ||||
|     Q_INVOKABLE void setDataBySource(const QString sourceName, | ||||
|     Q_INVOKABLE bool setDataBySource(const QString sourceName, | ||||
|                                      const QMap<QString, QVariant> data, | ||||
|                                      const QMap<QString, QVariant> params); | ||||
|     // values | ||||
|  | ||||
| @ -32,12 +32,46 @@ AWToolTip::AWToolTip(QObject *parent, | ||||
|     QProcessEnvironment environment = QProcessEnvironment::systemEnvironment(); | ||||
|     QString debugEnv = environment.value(QString("DEBUG"), QString("no")); | ||||
|     debug = (debugEnv == QString("yes")); | ||||
|  | ||||
|     toolTipScene = new QGraphicsScene(); | ||||
|     toolTipView = new QGraphicsView(toolTipScene); | ||||
|     toolTipView->setStyleSheet(QString("background: transparent")); | ||||
|     toolTipView->setContentsMargins(0, 0, 0, 0); | ||||
|     toolTipView->setFrameShape(QFrame::NoFrame); | ||||
|     toolTipView->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); | ||||
|     toolTipView->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff); | ||||
|  | ||||
|     m_counts += m_settings[QString("cpuTooltip")].toInt(); | ||||
|     m_counts += m_settings[QString("cpuclTooltip")].toInt(); | ||||
|     m_counts += m_settings[QString("memTooltip")].toInt(); | ||||
|     m_counts += m_settings[QString("swapTooltip")].toInt(); | ||||
|     m_counts += m_settings[QString("downTooltip")].toInt(); | ||||
|     m_counts += m_settings[QString("batteryTooltip")].toInt(); | ||||
|  | ||||
|     boundaries[QString("cpu")] = 100.0; | ||||
|     boundaries[QString("cpucl")] = 4000.0; | ||||
|     boundaries[QString("mem")] = 100.0; | ||||
|     boundaries[QString("swap")] = 100.0; | ||||
|     boundaries[QString("down")] = 1.0; | ||||
|     boundaries[QString("up")] = 1.0; | ||||
|     boundaries[QString("bat")] = 100.0; | ||||
|  | ||||
|     if (m_settings[QString("cpuTooltip")].toBool()) requiredKeys.append(QString("cpu")); | ||||
|     if (m_settings[QString("cpuclTooltip")].toBool()) requiredKeys.append(QString("cpucl")); | ||||
|     if (m_settings[QString("memTooltip")].toBool()) requiredKeys.append(QString("mem")); | ||||
|     if (m_settings[QString("swapTooltip")].toBool()) requiredKeys.append(QString("swap")); | ||||
|     if (m_settings[QString("downTooltip")].toBool()) requiredKeys.append(QString("down")); | ||||
|     if (m_settings[QString("upTooltip")].toBool()) requiredKeys.append(QString("up")); | ||||
|     if (m_settings[QString("batTooltip")].toBool()) requiredKeys.append(QString("bat")); | ||||
| } | ||||
|  | ||||
|  | ||||
| AWToolTip::~AWToolTip() | ||||
| { | ||||
|     if (debug) qDebug() << PDEBUG; | ||||
|  | ||||
|     delete toolTipView; | ||||
|     delete toolTipScene; | ||||
| } | ||||
|  | ||||
|  | ||||
| @ -45,7 +79,44 @@ QPixmap AWToolTip::image() | ||||
| { | ||||
|     if (debug) qDebug() << PDEBUG; | ||||
|  | ||||
|     return QPixmap(); | ||||
|     toolTipView->resize(100.0 * m_counts, 105.0); | ||||
|     // create image | ||||
|     toolTipScene->clear(); | ||||
|     QPen pen = QPen(); | ||||
|     // background | ||||
|     if (m_settings[QString("useTooltipBackground")].toBool()) | ||||
|         toolTipScene->setBackgroundBrush(QColor(m_settings[QString("tooltipBackground")].toString())); | ||||
|     else | ||||
|         toolTipScene->setBackgroundBrush(QBrush(Qt::NoBrush)); | ||||
|     bool down = false; | ||||
|     bool isBattery = false; | ||||
|     for (int i=0; i<requiredKeys.count(); i++) { | ||||
|         float normX = 100.0 / static_cast<float>(data[requiredKeys[i]].count()); | ||||
|         float normY = 100.0 / (1.5 * boundaries[requiredKeys[i]]); | ||||
|         if (requiredKeys[i] == QString("bat")) | ||||
|             isBattery = true; | ||||
|         else | ||||
|             isBattery = false; | ||||
|         if (!isBattery) pen.setColor(QColor(m_settings[requiredKeys[i] + QString("Color")].toString())); | ||||
|         float shift = i * 100.0; | ||||
|         if (down) shift -= 100.0; | ||||
|         for (int j=0; j<data[requiredKeys[i]].count()-1; j++) { | ||||
|             float x1 = j * normX + shift; | ||||
|             float y1 = - fabs(data[requiredKeys[i]][j]) * normY + 5.0; | ||||
|             float x2 = (j + 1) * normX + shift; | ||||
|             float y2 = - fabs(data[requiredKeys[i]][j+1]) * normY + 5.0; | ||||
|             if (isBattery) { | ||||
|                 if (data[requiredKeys[i]][j+1] > 0) | ||||
|                     pen.setColor(QColor(m_settings[QString("batteryColor")].toString())); | ||||
|                 else | ||||
|                     pen.setColor(QColor(m_settings[QString("batteryInColor")].toString())); | ||||
|             } | ||||
|             toolTipScene->addLine(x1, y1, x2, y2, pen); | ||||
|         } | ||||
|         if (requiredKeys[i] == QString("down")) down = true; | ||||
|     } | ||||
|  | ||||
|     return toolTipView->grab(); | ||||
| } | ||||
|  | ||||
|  | ||||
| @ -62,4 +133,15 @@ void AWToolTip::setData (const QString source, const float value, const bool ac) | ||||
|         data[source].append(value); | ||||
|     else | ||||
|         data[source].append(-value); | ||||
|  | ||||
|     if ((source == QString("down")) || (source == QString("up"))) { | ||||
|         for (int i=0; i<data[QString("down")].count(); i++) | ||||
|             if (boundaries[QString("down")] < data[QString("down")][i]) | ||||
|                 boundaries[QString("down")] = data[QString("down")][i]; | ||||
|         for (int i=0; i<data[QString("up")].count(); i++) | ||||
|             if (boundaries[QString("down")] < data[QString("up")][i]) | ||||
|                 boundaries[QString("down")] = data[QString("up")][i]; | ||||
|         boundaries[QString("down")] *= 1.2; | ||||
|         boundaries[QString("up")] = boundaries[QString("down")]; | ||||
|     } | ||||
| } | ||||
|  | ||||
| @ -19,6 +19,8 @@ | ||||
| #ifndef AWTOOLTIP_H | ||||
| #define AWTOOLTIP_H | ||||
|  | ||||
| #include <QGraphicsScene> | ||||
| #include <QGraphicsView> | ||||
| #include <QMap> | ||||
| #include <QObject> | ||||
| #include <QPixmap> | ||||
| @ -39,10 +41,16 @@ public: | ||||
|                  const bool ac = true); | ||||
|  | ||||
| private: | ||||
|     // ui | ||||
|     QGraphicsScene *toolTipScene = nullptr; | ||||
|     QGraphicsView *toolTipView = nullptr; | ||||
|     // variables | ||||
|     bool debug = false; | ||||
|     int m_counts = 0; | ||||
|     QMap<QString, QVariant> m_settings; | ||||
|     QMap<QString, float> boundaries; | ||||
|     QMap<QString, QList<float>> data; | ||||
|     QStringList requiredKeys; | ||||
| }; | ||||
|  | ||||
|  | ||||
|  | ||||
| @ -261,8 +261,9 @@ QMap<QString, QString> ExtendedSysMon::updateConfiguration(QMap<QString, QString | ||||
|         (rawConfig[QString("GPUDEV")] != QString("nvidia"))) | ||||
|         rawConfig[QString("GPUDEV")] = getAutoGpu(); | ||||
|     // hdddev | ||||
|     allHddDevices = getAllHdd().split(QChar(','), QString::SkipEmptyParts); | ||||
|     if (rawConfig[QString("HDDDEV")] == QString("all")) | ||||
|         rawConfig[QString("HDDDEV")] = getAllHdd(); | ||||
|         rawConfig[QString("HDDDEV")] = allHddDevices.join(QChar(',')); | ||||
|     else if (rawConfig[QString("HDDDEV")] == QString("disable")) | ||||
|         rawConfig[QString("HDDDEV")] = QString(""); | ||||
|     else { | ||||
| @ -274,7 +275,7 @@ QMap<QString, QString> ExtendedSysMon::updateConfiguration(QMap<QString, QString | ||||
|                 (diskRegexp.indexIn(deviceList[i]) > -1)) | ||||
|                 devices.append(deviceList[i]); | ||||
|         if (devices.isEmpty()) | ||||
|             rawConfig[QString("HDDDEV")] = getAllHdd(); | ||||
|             rawConfig[QString("HDDDEV")] = allHddDevices.join(QChar(',')); | ||||
|         else | ||||
|             rawConfig[QString("HDDDEV")] = devices.join(QChar(',')); | ||||
|     } | ||||
| @ -627,6 +628,9 @@ bool ExtendedSysMon::updateSourceEvent(const QString &source) | ||||
|     } else if (source == QString("gputemp")) { | ||||
|         setData(source, QString("value"), getGpuTemp(configuration[QString("GPUDEV")])); | ||||
|     } else if (source == QString("hddtemp")) { | ||||
|         // fill empty list | ||||
|         for (int i=0; i<allHddDevices.count(); i++) | ||||
|             setData(source, allHddDevices[i], 0.0); | ||||
|         QStringList deviceList = configuration[QString("HDDDEV")].split(QChar(','), QString::SkipEmptyParts); | ||||
|         for (int i=0; i<deviceList.count(); i++) | ||||
|             setData(source, deviceList[i], | ||||
|  | ||||
| @ -63,6 +63,7 @@ private: | ||||
|     // FIXME dirty hack to avoid update package information every second | ||||
|     int pkgTimeUpdate = MSEC_IN_HOUR; | ||||
|     // reread configuration | ||||
|     QStringList allHddDevices; | ||||
|     QString getAllHdd(); | ||||
|     QString getAutoGpu(); | ||||
|     QString getAutoMpris(); | ||||
|  | ||||
		Reference in New Issue
	
	Block a user