/***************************************************************************
* 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 org.kde.plasma.core 2.0 as PlasmaCore
import org.kde.plasma.private.awesomewidget 1.0
import "."
Item {
id: widgetPage
width: childrenRect.width
height: childrenRect.height
implicitWidth: pageColumn.implicitWidth
implicitHeight: pageColumn.implicitHeight
property bool debug: AWKeys.isDebugEnabled()
property variant settings: {
"customTime": plasmoid.configuration.customTime,
"customUptime": plasmoid.configuration.customUptime,
"tempUnits": plasmoid.configuration.tempUnits,
"acOnline": plasmoid.configuration.acOnline,
"acOffline": plasmoid.configuration.acOffline
}
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 alias cfg_text: textPattern.text
Column {
id: pageColumn
width: units.gridUnit * 50
QtControls.Label {
width: parent.width
horizontalAlignment: Text.AlignHCenter
verticalAlignment: Text.AlignVCenter
text: i18n("Detailed information may be found on project homepage")
}
Row {
height: implicitHeight
width: parent.width
QtControls.Button {
text: i18n("Font")
onClicked: {
if (debug) console.log("[widget::onClicked] : Font button")
var defaultFont = {
"color": plasmoid.configuration.fontColor,
"family": plasmoid.configuration.fontFamily,
"size": plasmoid.configuration.fontSize
}
var font = AWActions.getFont(defaultFont)
var pos = textPattern.cursorPosition
var selected = textPattern.selectedText
textPattern.remove(textPattern.selectionStart, textPattern.selectionEnd)
textPattern.insert(pos, "" +
selected + "")
}
}
QtControls.Button {
iconName: "format-indent-more"
onClicked: {
if (debug) console.log("[widget::onClicked] : Indent button")
var pos = textPattern.cursorPosition
var selected = textPattern.selectedText
textPattern.remove(textPattern.selectionStart, textPattern.selectionEnd)
textPattern.insert(pos, selected + "
\n")
}
}
QtControls.Button {
iconName: "format-text-bold"
onClicked: {
if (debug) console.log("[widget::onClicked] : Bold button")
var pos = textPattern.cursorPosition
var selected = textPattern.selectedText
textPattern.remove(textPattern.selectionStart, textPattern.selectionEnd)
textPattern.insert(pos, "" + selected + "")
}
}
QtControls.Button {
iconName: "format-text-italic"
onClicked: {
if (debug) console.log("[widget::onClicked] : Italic button")
var pos = textPattern.cursorPosition
var selected = textPattern.selectedText
textPattern.remove(textPattern.selectionStart, textPattern.selectionEnd)
textPattern.insert(pos, "" + selected + "")
}
}
QtControls.Button {
iconName: "format-text-underline"
onClicked: {
if (debug) console.log("[widget::onClicked] : Underline button")
var pos = textPattern.cursorPosition
var selected = textPattern.selectedText
textPattern.remove(textPattern.selectionStart, textPattern.selectionEnd)
textPattern.insert(pos, "" + selected + "")
}
}
QtControls.Button {
iconName: "format-text-strikethrough"
onClicked: {
if (debug) console.log("[widget::onClicked] : Strike button")
var pos = textPattern.cursorPosition
var selected = textPattern.selectedText
textPattern.remove(textPattern.selectionStart, textPattern.selectionEnd)
textPattern.insert(pos, "" + selected + "")
}
}
QtControls.Button {
iconName: "format-justify-left"
onClicked: {
if (debug) console.log("[widget::onClicked] : Left button")
var pos = textPattern.cursorPosition
var selected = textPattern.selectedText
textPattern.remove(textPattern.selectionStart, textPattern.selectionEnd)
textPattern.insert(pos, "
" + selected + "
" + selected + "" + selected + "" + selected + "" message += i18n("Value: %1", AWKeys.valueByKey(tags.currentText)) AWActions.sendNotification("tag", message) } } } QtControls.TextArea { id: textPattern width: parent.width textFormat: TextEdit.PlainText text: plasmoid.configuration.text } } // we need to initializate DataEngines here too // because we need to get keys and values PlasmaCore.DataSource { id: systemmonitorDE engine: "systemmonitor" connectedSources: systemmonitorDE.sources interval: 5000 onNewData: { if (debug) console.log("[widget::onNewData] : Update source " + sourceName) AWKeys.setDataBySource(sourceName, data, settings) } } PlasmaCore.DataSource { id: extsysmonDE engine: "extsysmon" connectedSources: ["battery", "custom", "desktop", "netdev", "gpu", "gputemp", "hddtemp", "pkg", "player", "ps", "update"] interval: 5000 onNewData: { if (debug) console.log("[widget::onNewData] : Update source " + sourceName) AWKeys.setDataBySource(sourceName, data, settings) } } PlasmaCore.DataSource { id: timeDE engine: "time" connectedSources: ["Local"] interval: 5000 onNewData: { if (debug) console.log("[widget::onNewData] : Update source " + sourceName) AWKeys.setDataBySource(sourceName, data, settings) } } Component.onCompleted: { if (debug) console.log("[widget::onCompleted]") // init submodule AWKeys.initKeys(plasmoid.configuration.text, tooltipSettings) } }