mirror of
https://gitgud.io/wackyideas/aerothemeplasma.git
synced 2024-08-15 00:43:43 +00:00
209 lines
6.8 KiB
QML
Executable file
209 lines
6.8 KiB
QML
Executable file
/*
|
|
* Copyright 2013 Kai Uwe Broulik <kde@privat.broulik.de>
|
|
*
|
|
* This program 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 2 of
|
|
* the License or (at your option) version 3 or any later version
|
|
* accepted by the membership of KDE e.V. (or its successor approved
|
|
* by the membership of KDE e.V.), which shall act as a proxy
|
|
* defined in Section 14 of version 3 of the license.
|
|
*
|
|
* This program 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 this program. If not, see <http://www.gnu.org/licenses/>
|
|
*/
|
|
|
|
import QtQuick 2.0
|
|
import QtQuick.Controls 1.2 as QtControls
|
|
import QtQuick.Layouts 1.0
|
|
import QtQuick.Dialogs 1.1
|
|
|
|
import org.kde.plasma.private.digitalclock 1.0
|
|
import org.kde.plasma.core 2.0 as PlasmaCore
|
|
import org.kde.plasma.components 2.0 as PlasmaComponents
|
|
|
|
Item {
|
|
id: timeZonesPage
|
|
width: parent.width
|
|
height: parent.height
|
|
|
|
property alias cfg_selectedTimeZones: timeZones.selectedTimeZones
|
|
property alias cfg_wheelChangesTimezone: enableWheelCheckBox.checked
|
|
|
|
TimeZoneModel {
|
|
id: timeZones
|
|
|
|
onSelectedTimeZonesChanged: {
|
|
if (selectedTimeZones.length == 0) {
|
|
messageWidget.visible = true;
|
|
|
|
timeZones.selectLocalTimeZone();
|
|
}
|
|
}
|
|
}
|
|
|
|
// This is just for getting the column width
|
|
QtControls.CheckBox {
|
|
id: checkbox
|
|
visible: false
|
|
}
|
|
|
|
|
|
ColumnLayout {
|
|
anchors.fill: parent
|
|
|
|
Rectangle {
|
|
id: messageWidget
|
|
|
|
anchors {
|
|
left: parent.left
|
|
right: parent.right
|
|
margins: 1
|
|
}
|
|
|
|
height: 0
|
|
|
|
//TODO: This is the actual color KMessageWidget uses as its base color but here it gives
|
|
// a different color, figure out why
|
|
//property color gradBaseColor: Qt.rgba(0.69, 0.5, 0, 1)
|
|
gradient: Gradient {
|
|
GradientStop { position: 0.0; color: "#FFD86D" } //Qt.lighter(messageWidget.gradBaseColor, 1.1)
|
|
GradientStop { position: 0.1; color: "#EAC360" } // messageWidget.gradBaseColor
|
|
GradientStop { position: 1.0; color: "#CAB064" } //Qt.darker(messageWidget.gradBaseColor, 1.1)
|
|
}
|
|
|
|
radius: 5
|
|
border.width: 1
|
|
border.color: "#79735B"
|
|
|
|
visible: false
|
|
|
|
Behavior on visible {
|
|
ParallelAnimation {
|
|
PropertyAnimation {
|
|
target: messageWidget
|
|
property: "opacity"
|
|
to: messageWidget.visible ? 0 : 1.0
|
|
easing.type: Easing.Linear
|
|
}
|
|
PropertyAnimation {
|
|
target: messageWidget
|
|
property: "Layout.minimumHeight"
|
|
to: messageWidget.visible ? 0 : messageWidgetLabel.height + (2 *units.largeSpacing)
|
|
easing.type: Easing.Linear
|
|
}
|
|
}
|
|
}
|
|
|
|
RowLayout {
|
|
anchors.fill: parent
|
|
anchors.margins: units.largeSpacing
|
|
anchors.leftMargin: units.smallSpacing
|
|
anchors.rightMargin: units.smallSpacing
|
|
spacing: units.smallSpacing
|
|
|
|
PlasmaCore.IconItem {
|
|
anchors.verticalCenter: parent.verticalCenter
|
|
height: units.iconSizes.smallMedium
|
|
width: height
|
|
source: "dialog-warning"
|
|
}
|
|
|
|
QtControls.Label {
|
|
id: messageWidgetLabel
|
|
anchors.verticalCenter: parent.verticalCenter
|
|
Layout.fillWidth: true
|
|
text: i18n("At least one time zone needs to be enabled. 'Local' was enabled automatically.")
|
|
verticalAlignment: Text.AlignVCenter
|
|
wrapMode: Text.WordWrap
|
|
}
|
|
|
|
PlasmaComponents.ToolButton {
|
|
anchors.verticalCenter: parent.verticalCenter
|
|
iconName: "dialog-close"
|
|
flat: true
|
|
|
|
onClicked: {
|
|
messageWidget.visible = false;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
QtControls.TextField {
|
|
id: filter
|
|
Layout.fillWidth: true
|
|
placeholderText: i18n("Search Time Zones")
|
|
}
|
|
|
|
QtControls.TableView {
|
|
id: timeZoneView
|
|
|
|
signal toggleCurrent
|
|
|
|
Layout.fillWidth: true
|
|
Layout.fillHeight: true
|
|
|
|
Keys.onSpacePressed: toggleCurrent()
|
|
|
|
model: TimeZoneFilterProxy {
|
|
sourceModel: timeZones
|
|
filterString: filter.text
|
|
}
|
|
|
|
QtControls.TableViewColumn {
|
|
role: "checked"
|
|
width: checkbox.width
|
|
delegate:
|
|
QtControls.CheckBox {
|
|
id: checkBox
|
|
anchors.centerIn: parent
|
|
checked: styleData.value
|
|
activeFocusOnTab: false // only let the TableView as a whole get focus
|
|
onClicked: {
|
|
//needed for model's setData to be called
|
|
model.checked = checked;
|
|
}
|
|
|
|
Connections {
|
|
target: timeZoneView
|
|
onToggleCurrent: {
|
|
if (styleData.row === timeZoneView.currentRow) {
|
|
model.checked = !checkBox.checked
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
resizable: false
|
|
movable: false
|
|
}
|
|
QtControls.TableViewColumn {
|
|
role: "city"
|
|
title: i18n("City")
|
|
}
|
|
QtControls.TableViewColumn {
|
|
role: "region"
|
|
title: i18n("Region")
|
|
}
|
|
QtControls.TableViewColumn {
|
|
role: "comment"
|
|
title: i18n("Comment")
|
|
}
|
|
}
|
|
|
|
RowLayout {
|
|
Layout.fillWidth: true
|
|
QtControls.CheckBox {
|
|
id: enableWheelCheckBox
|
|
text: i18n("Switch time zone with mouse wheel")
|
|
}
|
|
}
|
|
|
|
}
|
|
}
|