Newer
Older
Copyright (C) 2024 Samuel Jimenez <therealsamueljimenez@gmail.com>
Ported the Luna Plasmoid to Plasma 6.
Copyright 2016 Bill Binder <dxtwjb@gmail.com>
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 3 of the License, or
(at your option) any later version.
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.7
import QtQuick.Controls as QtControls
import QtQuick.Dialogs as QtDialogs
import QtQuick.Layouts as QtLayouts
import org.kde.kcmutils as KCM
import org.kde.kirigami as Kirigami
property alias cfg_latitudeAuto: latitudeAuto.checked // 0=Equator, +90=North Pole, -90=South Pole
property alias cfg_latitude: latitude.value // 0=Equator, +90=North Pole, -90=South Pole
property alias cfg_transparentShadow: transparentShadow.checked // boolean
property alias cfg_showBackground: showBackground.checked // boolean
property alias cfg_dateFormat: dateFormat.currentIndex // code: 0= 1= 2=...
property alias cfg_diskColor: diskColor.color
property int cfg_lunarIndex: 0 // index into imageChoices
property string cfg_lunarImage: '' // filename (from imageChoices)
property int cfg_lunarImageTweak: 0 // rotation angle adjustment for the image (from imageChoices)
property alias cfg_showGrid: showGrid.checked
property alias cfg_showTycho: showTycho.checked
property alias cfg_showCopernicus: showCopernicus.checked
onCfg_lunarIndexChanged: {
cfg_lunarImage = imageChoices.get(cfg_lunarIndex).filename;
cfg_lunarImageTweak = imageChoices.get(cfg_lunarIndex).tweak;
PositionSource {
id: geoSource
readonly property bool locating: geoSource.active && geoSource.sourceError == PositionSource.NoError && !(geoSource.position.latitudeValid)
updateInterval: 3600 * 1000
active: cfg_latitudeAuto
onPositionChanged: {
// lbl_place.text = i18n(geoSource.data.location.country);
cfg_latitude = Math.round(geoSource.position.coordinate.latitude * 100) / 100;
}
}
title: i18n("Pick a color for the moon")
visible: false
selectedColor: diskColor.color
onAccepted: diskColor.color = selectedColor
QtControls.Label {
QtLayouts.RowLayout {
spacing: 20
id: lunaPreview
width: 200
height: 200
latitude: cfg_latitude
transparentShadow: false
lunarImage: cfg_lunarImage
lunarImageTweak: cfg_lunarImageTweak
diskColor: cfg_diskColor
showGrid: cfg_showGrid
showTycho: cfg_showTycho
showCopernicus: cfg_showCopernicus
icon.source: "go-next"
enabled: cfg_lunarIndex < imageChoices.count - 1
QtControls.CheckBox {
id: showShadow
text: i18n("Show shadow")
}
text: i18n("Show grid")
}
QtControls.CheckBox {
id: showTycho
text: i18n("Tycho")
}
QtControls.CheckBox {
id: showCopernicus
width: 50
height: 50
color: '#808040'
border.color: '#000000'
visible: cfg_lunarImage === ""
MouseArea {
anchors.fill: parent
onClicked: {
colorDialog.selectedColor = diskColor.color;
colorDialog.visible = true;
text: i18n("Latitude")
QtLayouts.RowLayout {
spacing: 20
QtControls.Label {
id: lbl_latitude
text: Math.abs(latitude.value) + "º " + (latitude.value < 0 ? "S" : "N")
QtLayouts.Layout.preferredWidth: 40
horizontalAlignment: Text.AlignRight
}
QtControls.Slider {
id: latitude
QtLayouts.Layout.fillWidth: true
QtControls.Label {
}
QtLayouts.RowLayout {
spacing: 20
QtControls.CheckBox {
id: latitudeAuto
text: i18n("Use current latitude")
}
QtControls.Label {
id: lbl_place
QtLayouts.Layout.fillWidth: true
horizontalAlignment: Text.AlignRight
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
QtControls.Label {
text: i18n("Phase Preview")
QtLayouts.Layout.preferredWidth: 85
horizontalAlignment: Text.AlignRight
}
QtLayouts.RowLayout {
spacing: 20
QtControls.Label {
id: lbl_phase
text: Math.abs(phase.value) + "º "
QtLayouts.Layout.preferredWidth: 40
horizontalAlignment: Text.AlignRight
}
QtControls.Slider {
id: phase
value: lunaPreview.theta
QtLayouts.Layout.fillWidth: true
from: 0
to: 360
stepSize: 1
}
}
dynamicRoles: true
Component.onCompleted: {
append({
"key": i18n("Text date"),
"value": 0
});
append({
"key": i18n("Short date"),
"value": 1
});
append({
"key": i18n("Long date"),
"value": 2
});
append({
"key": i18n("ISO date"),
"value": 3
});
append({
"key": i18n("Custom"),
"value": 4
});
QtControls.Label {
text: i18n("Date Format String")
visible: dateFormat.currentIndex == 4
}
maximumLength: 24
visible: dateFormat.currentIndex == 4
}
QtControls.Label {
text: i18n("Background")
QtControls.CheckBox {
id: transparentShadow
text: i18n("Transparent shadow")
}