Warning, /plasma/kdeplasma-addons/applets/binary-clock/package/contents/ui/main.qml is written in an unsupported language. File is not indexed.

0001 /*
0002  * SPDX-FileCopyrightText: 2014 Joseph Wenninger <jowenn@kde.org>
0003  * SPDX-FileCopyrightText: 2018 Piotr Kąkol <piotrkakol@protonmail.com>
0004  *
0005  * Based on fuzzy-clock main.qml:
0006  * SPDX-FileCopyrightText: 2013 Heena Mahour <heena393@gmail.com>
0007  * SPDX-FileCopyrightText: 2013 Sebastian Kügler <sebas@kde.org>
0008  * SPDX-FileCopyrightText: 2014 Kai Uwe Broulik <kde@privat.broulik.de>
0009  *
0010  * SPDX-License-Identifier: GPL-2.0-or-later
0011  */
0012 
0013 import QtQml
0014 import QtQuick 2.0
0015 import QtQuick.Layouts 1.1
0016 
0017 import org.kde.plasma.plasmoid 2.0
0018 import org.kde.kirigami 2.20 as Kirigami
0019 import org.kde.plasma.plasma5support 2.0 as P5Support
0020 import org.kde.plasma.core as PlasmaCore
0021 import org.kde.plasma.extras 2.0 as PlasmaExtras
0022 import org.kde.plasma.workspace.calendar 2.0 as PlasmaCalendar
0023 
0024 PlasmoidItem {
0025     id: root
0026 
0027     property bool showSeconds: plasmoid.configuration.showSeconds
0028     property int hours
0029     property int minutes
0030     property int seconds
0031     width: Kirigami.Units.gridUnit * 10
0032     height: Kirigami.Units.gridUnit * 4
0033 
0034     Plasmoid.backgroundHints: PlasmaCore.Types.DefaultBackground | PlasmaCore.Types.ConfigurableBackground
0035     preferredRepresentation: compactRepresentation
0036 
0037     // keep this consistent with toolTipMainText and toolTipSubText in analog-clock
0038     toolTipMainText: Qt.formatDate(dataSource.data["Local"]["DateTime"], "dddd")
0039     toolTipSubText: Qt.formatTime(dataSource.data["Local"]["DateTime"],  Qt.locale().timeFormat(Locale.LongFormat)) + "\n" + Qt.formatDate(dataSource.data["Local"]["DateTime"], Qt.locale().dateFormat(Locale.LongFormat).replace(/(^dddd.?\s)|(,?\sdddd$)/, ""))
0040 
0041     P5Support.DataSource {
0042         id: dataSource
0043         engine: "time"
0044         connectedSources: ["Local"]
0045         intervalAlignment: plasmoid.configuration.showSeconds || compactRepresentationItem.mouseArea.containsMouse ? P5Support.Types.NoAlignment : P5Support.Types.AlignToMinute
0046         interval: showSeconds || compactRepresentationItem.mouseArea.containsMouse ? 1000 : 60000
0047 
0048         onDataChanged: {
0049             var date = new Date(data["Local"]["DateTime"]);
0050             hours = date.getHours();
0051             minutes = date.getMinutes();
0052             seconds = date.getSeconds();
0053         }
0054         Component.onCompleted: {
0055             onDataChanged();
0056         }
0057     }
0058 
0059     compactRepresentation: BinaryClock { }
0060 
0061     fullRepresentation: PlasmaCalendar.MonthView {
0062         Layout.minimumWidth: Kirigami.Units.gridUnit * 20
0063         Layout.minimumHeight: Kirigami.Units.gridUnit * 20
0064 
0065         today: dataSource.data["Local"]["DateTime"]
0066     }
0067 }