From ca2c080df8e53ed1cfd82e2b7e6b20da84dec182 Mon Sep 17 00:00:00 2001 From: danielgarciabsb Date: Sat, 27 Dec 2025 23:59:38 +0000 Subject: [PATCH 1/6] V0.0.5 Adds timezone configuration - World time clock --- Material-Clock.plasmoid | Bin 0 -> 144731 bytes build_plasmoid.sh | 33 +++++++++ package/contents/config/main.xml | 3 + package/contents/ui/GeneralConfig.qml | 95 ++++++++++++++++++++++++ package/contents/ui/main.qml | 99 +++++++++++++++++++++----- package/metadata.json | 9 +-- 6 files changed, 217 insertions(+), 22 deletions(-) create mode 100644 Material-Clock.plasmoid create mode 100755 build_plasmoid.sh diff --git a/Material-Clock.plasmoid b/Material-Clock.plasmoid new file mode 100644 index 0000000000000000000000000000000000000000..37d58fe1b3f7b6af744fe1d3ecaf99e1b5eb8e05 GIT binary patch literal 144731 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

sM3|VK|K#Sig9)3NtdkxL%+q%}&UUv0Y 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 hpz6Q0ISR6$m0-(u>wQIVb^mobH_EE-pzg%Q4 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 z%0A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 /dev/null; then + zip -r "$OUTPUT_FILE" . -x "*.git*" + status=$? +else + # Fallback to Python 3 if zip is not available + echo "zip command not found, falling back to Python..." + python3 -c "import shutil, os; shutil.make_archive('../${PROJECT_NAME}', 'zip', '.'); os.rename('../${PROJECT_NAME}.zip', '${OUTPUT_FILE}')" + status=$? +fi + +if [ $status -eq 0 ]; then + echo "Successfully created $PROJECT_NAME.plasmoid in the root directory." +else + echo "Failed to create package." + exit 1 +fi diff --git a/package/contents/config/main.xml b/package/contents/config/main.xml index c542700..0cfcadd 100644 --- a/package/contents/config/main.xml +++ b/package/contents/config/main.xml @@ -14,5 +14,8 @@ HH:mm + + Local + diff --git a/package/contents/ui/GeneralConfig.qml b/package/contents/ui/GeneralConfig.qml index 549edab..822303e 100644 --- a/package/contents/ui/GeneralConfig.qml +++ b/package/contents/ui/GeneralConfig.qml @@ -10,6 +10,7 @@ Item { property alias cfg_colorHex: colorhex.text property alias cfg_dateFormat: dateFormatField.text property alias cfg_timeFormat: timeFormatField.text + property alias cfg_timeZone: timeZoneComboBox.currentValue signal configurationChanged @@ -109,6 +110,100 @@ Item { } } + // Time Zone Selector + ColumnLayout { + Label { + text: i18n("Time Zone") + } + ComboBox { + id: timeZoneComboBox + Layout.fillWidth: true + // Curated list of major timezones + model: [ + { text: "Local System Time", value: "Local" }, + { text: "UTC", value: "UTC" }, + { text: "UTC-12:00", value: "Etc/GMT+12" }, + { text: "UTC-11:00 (Midway)", value: "Pacific/Midway" }, + { text: "UTC-10:00 (Hawaii)", value: "Pacific/Honolulu" }, + { text: "UTC-09:30 (Marquesas)", value: "Pacific/Marquesas" }, + { text: "UTC-09:00 (Alaska)", value: "America/Anchorage" }, + { text: "UTC-08:00 (Los Angeles - PST/PDT)", value: "America/Los_Angeles" }, + { text: "UTC-08:00 (Tijuana)", value: "America/Tijuana" }, + { text: "UTC-07:00 (Denver - MST/MDT)", value: "America/Denver" }, + { text: "UTC-07:00 (Phoenix)", value: "America/Phoenix" }, + { text: "UTC-06:00 (Chicago - CST/CDT)", value: "America/Chicago" }, + { text: "UTC-06:00 (Mexico City)", value: "America/Mexico_City" }, + { text: "UTC-06:00 (Saskatchewan)", value: "America/Regina" }, + { text: "UTC-05:00 (New York - EST/EDT)", value: "America/New_York" }, + { text: "UTC-05:00 (Bogota)", value: "America/Bogota" }, + { text: "UTC-05:00 (Lima)", value: "America/Lima" }, + { text: "UTC-04:00 (Santiago)", value: "America/Santiago" }, + { text: "UTC-04:00 (Caracas)", value: "America/Caracas" }, + { text: "UTC-04:00 (Halifax)", value: "America/Halifax" }, + { text: "UTC-03:30 (Newfoundland)", value: "America/St_Johns" }, + { text: "UTC-03:00 (Sao Paulo - BRT/BRST)", value: "America/Sao_Paulo" }, + { text: "UTC-03:00 (Buenos Aires)", value: "America/Buenos_Aires" }, + { text: "UTC-03:00 (Greenland)", value: "America/Godthab" }, + { text: "UTC-02:00 (South Georgia)", value: "Atlantic/South_Georgia" }, + { text: "UTC-02:00 (General)", value: "Etc/GMT+2" }, + { text: "UTC-01:00 (Azores)", value: "Atlantic/Azores" }, + { text: "UTC-01:00 (Cape Verde)", value: "Atlantic/Cape_Verde" }, + { text: "UTC+00:00 (London - GMT/BST)", value: "Europe/London" }, + { text: "UTC+00:00 (Lisbon)", value: "Europe/Lisbon" }, + { text: "UTC+00:00 (Casablanca)", value: "Africa/Casablanca" }, + { text: "UTC+01:00 (Paris - CET/CEST)", value: "Europe/Paris" }, + { text: "UTC+01:00 (Berlin)", value: "Europe/Berlin" }, + { text: "UTC+01:00 (Rome)", value: "Europe/Rome" }, + { text: "UTC+01:00 (Lagos)", value: "Africa/Lagos" }, + { text: "UTC+02:00 (Athens)", value: "Europe/Athens" }, + { text: "UTC+02:00 (Cairo)", value: "Africa/Cairo" }, + { text: "UTC+02:00 (Jerusalem)", value: "Asia/Jerusalem" }, + { text: "UTC+02:00 (Helsinki)", value: "Europe/Helsinki" }, + { text: "UTC+02:00 (Johannesburg)", value: "Africa/Johannesburg" }, + { text: "UTC+03:00 (Moscow)", value: "Europe/Moscow" }, + { text: "UTC+03:00 (Istanbul)", value: "Europe/Istanbul" }, + { text: "UTC+03:00 (Nairobi)", value: "Africa/Nairobi" }, + { text: "UTC+03:00 (Baghdad)", value: "Asia/Baghdad" }, + { text: "UTC+03:00 (Riyadh)", value: "Asia/Riyadh" }, + { text: "UTC+03:30 (Tehran)", value: "Asia/Tehran" }, + { text: "UTC+04:00 (Dubai)", value: "Asia/Dubai" }, + { text: "UTC+04:00 (Baku)", value: "Asia/Baku" }, + { text: "UTC+04:30 (Kabul)", value: "Asia/Kabul" }, + { text: "UTC+05:00 (Karachi)", value: "Asia/Karachi" }, + { text: "UTC+05:00 (Tashkent)", value: "Asia/Tashkent" }, + { text: "UTC+05:30 (Kolkata)", value: "Asia/Kolkata" }, + { text: "UTC+05:30 (Colombo)", value: "Asia/Colombo" }, + { text: "UTC+05:45 (Kathmandu)", value: "Asia/Kathmandu" }, + { text: "UTC+06:00 (Dhaka)", value: "Asia/Dhaka" }, + { text: "UTC+06:00 (Almaty)", value: "Asia/Almaty" }, + { text: "UTC+06:30 (Yangon)", value: "Asia/Yangon" }, + { text: "UTC+07:00 (Bangkok)", value: "Asia/Bangkok" }, + { text: "UTC+07:00 (Jakarta)", value: "Asia/Jakarta" }, + { text: "UTC+07:00 (Novosibirsk)", value: "Asia/Novosibirsk" }, + { text: "UTC+08:00 (Singapore)", value: "Asia/Singapore" }, + { text: "UTC+08:00 (Shanghai)", value: "Asia/Shanghai" }, + { text: "UTC+08:00 (Taipei)", value: "Asia/Taipei" }, + { text: "UTC+08:00 (Hong Kong)", value: "Asia/Hong_Kong" }, + { text: "UTC+08:00 (Perth)", value: "Australia/Perth" }, + { text: "UTC+09:00 (Tokyo)", value: "Asia/Tokyo" }, + { text: "UTC+09:00 (Seoul)", value: "Asia/Seoul" }, + { text: "UTC+09:30 (Adelaide)", value: "Australia/Adelaide" }, + { text: "UTC+09:30 (Darwin)", value: "Australia/Darwin" }, + { text: "UTC+10:00 (Sydney)", value: "Australia/Sydney" }, + { text: "UTC+10:00 (Brisbane)", value: "Australia/Brisbane" }, + { text: "UTC+10:00 (Vladivostok)", value: "Asia/Vladivostok" }, + { text: "UTC+11:00 (Noumea)", value: "Pacific/Noumea" }, + { text: "UTC+12:00 (Auckland)", value: "Pacific/Auckland" }, + { text: "UTC+12:00 (Fiji)", value: "Pacific/Fiji" }, + { text: "UTC+13:00 (Tongatapu)", value: "Pacific/Tongatapu" }, + { text: "UTC+14:00 (Kiritimati)", value: "Pacific/Kiritimati" } + ] + textRole: "text" + valueRole: "value" + onCurrentValueChanged: configurationChanged() + } + } + // Tip Text Label { text: i18n("Format Help: Use Qt date formatting codes (ddd, MMM, HH, mm, etc.)") diff --git a/package/contents/ui/main.qml b/package/contents/ui/main.qml index f1e7881..fa4141f 100644 --- a/package/contents/ui/main.qml +++ b/package/contents/ui/main.qml @@ -2,10 +2,10 @@ import QtQuick 2.12 import QtQuick.Controls 2.15 import QtQuick.Layouts 1.12 import org.kde.plasma.plasmoid 2.0 -import org.kde.plasma.core 2.0 as PlasmaCore +import org.kde.plasma.plasma5support as Plasma5Support -PlasmoidItem { - id: root + PlasmoidItem { + id: root property color colorPlasmoid: Plasmoid.configuration.colorHex @@ -23,6 +23,82 @@ PlasmoidItem { source: Qt.resolvedUrl("../fonts/poppins-regular.ttf") } + property var currentDateTime: new Date() + + property string activeTimeZone: Plasmoid.configuration.timeZone + property int timeZoneOffset: 0 + + property var displayDateTime: { + // If Local, just return current time + if (activeTimeZone === "Local" || activeTimeZone === "") { + return currentDateTime + } + + // Manual Shift Strategy: + // DateTime from DataEngine is the correct "Moment" (UTC-based). + // Qt.formatDateTime uses System Local Timezone. + // We want: Format(ShiftedDate) in Local = Remote Time String. + // UTC(Shifted) + LocalOffset = UTC(Real) + RemoteOffset. + // Shifted = Real + RemoteOffset - LocalOffset. + + var localOffsetMin = new Date().getTimezoneOffset() // (UTC - Local) in minutes. e.g. Brazil(+3h because 180). + // Actually getTimezoneOffset returns positive if behind UTC. + // Brazil (GMT-3) -> 180. London (GMT+1) -> -60. + // LocalOffsetSeconds = -1 * localOffsetMin * 60. + + var localOffsetSeconds = -localOffsetMin * 60 + var targetOffsetSeconds = root.timeZoneOffset + + var diffSeconds = targetOffsetSeconds - localOffsetSeconds + + return new Date(currentDateTime.getTime() + diffSeconds * 1000) + } + + Plasma5Support.DataSource { + id: timeSource + engine: "time" + connectedSources: [activeTimeZone === "Local" ? "Local" : activeTimeZone] + interval: 60000 + onDataChanged: function(sourceName, data) { + + + if (sourceName === activeTimeZone || (activeTimeZone === "Local" && sourceName === "Local")) { + if (data["DateTime"]) { + root.currentDateTime = data["DateTime"] + } + if (data["Offset"] !== undefined) { + root.timeZoneOffset = data["Offset"] + } + } + } + } + + // Force update when timezone changes + Connections { + target: Plasmoid.configuration + function onTimeZoneChanged() { + var src = Plasmoid.configuration.timeZone + root.activeTimeZone = src + + // Reconnect logic is handled by binding on connectedSources, + // but we want to update data immediately if possible. + + var engineSource = src === "Local" ? "Local" : src + + if (timeSource.data[engineSource]) { + if (timeSource.data[engineSource]["DateTime"]) { + root.currentDateTime = timeSource.data[engineSource]["DateTime"] + } + if (timeSource.data[engineSource]["Offset"] !== undefined) { + root.timeZoneOffset = timeSource.data[engineSource]["Offset"] + } + } + } + } + + // Timer to update UI every second locally if needed, or rely on DataSource (minutely) + // The previous code had 60000 interval. DataSource also has 60000. + // Centered layout container Item { id: wrapper @@ -41,7 +117,7 @@ PlasmoidItem { Layout.alignment: Qt.AlignHCenter font.family: poppinsThin.name font.pixelSize: root.height * 0.1 - text: Qt.formatDateTime(new Date(), Plasmoid.configuration.dateFormat).toLowerCase() + text: Qt.formatDateTime(root.displayDateTime, Plasmoid.configuration.dateFormat).toLowerCase() color: colorPlasmoid horizontalAlignment: Text.AlignHCenter } @@ -52,22 +128,13 @@ PlasmoidItem { Layout.alignment: Qt.AlignHCenter font.family: poppinsRegular.name font.pixelSize: root.height * 0.4 - text: Qt.formatDateTime(new Date(), Plasmoid.configuration.timeFormat) + text: Qt.formatDateTime(root.displayDateTime, Plasmoid.configuration.timeFormat) color: colorPlasmoid horizontalAlignment: Text.AlignHCenter } - } - } - // Timer for updating time and date - Timer { - interval: 60000 - running: true - repeat: true - onTriggered: { - var now = new Date() - dateText.text = Qt.formatDateTime(now, Plasmoid.configuration.dateFormat).toLowerCase() - timeText.text = Qt.formatDateTime(now, Plasmoid.configuration.timeFormat) + + } } } diff --git a/package/metadata.json b/package/metadata.json index 6797bed..03fd231 100644 --- a/package/metadata.json +++ b/package/metadata.json @@ -1,4 +1,5 @@ { + "KPackageStructure": "Plasma/Applet", "KPlugin": { "Authors": [ { @@ -12,15 +13,11 @@ "Icon": "clock", "EnabledByDefault": true, "License": "GPL-3.0+", - "ServiceTypes": [ - "Plasma/Applet" - ], - "Version": "0.0.4", + "Version": "0.0.5", "Website": "https://github.com/cesp99/Material-Clock" }, "X-Plasma-API-Minimum-Version": "6.0", "X-Plasma-MainScript": "ui/main.qml", - "X-Plasma-WidgetType": "Configuration", "X-KDE-Plasma-MainScript": "ui/main.qml", "X-KDE-Plasma-ConfigurationScript": "config/config.qml" -} +} \ No newline at end of file From 176076699fb2443a4db03679a9bb69ecd3632178 Mon Sep 17 00:00:00 2001 From: danielgarciabsb Date: Sun, 28 Dec 2025 00:46:03 +0000 Subject: [PATCH 2/6] Added timezone text display --- Material-Clock.plasmoid | Bin 144731 -> 145119 bytes package/contents/ui/GeneralConfig.qml | 82 +------------------------- package/contents/ui/TimeZoneData.js | 80 +++++++++++++++++++++++++ package/contents/ui/main.qml | 25 +++++++- 4 files changed, 105 insertions(+), 82 deletions(-) create mode 100644 package/contents/ui/TimeZoneData.js diff --git a/Material-Clock.plasmoid b/Material-Clock.plasmoid index 37d58fe1b3f7b6af744fe1d3ecaf99e1b5eb8e05..6318fee1ab7b28a6273aba563d04e97d46333041 100644 GIT binary patch delta 4170 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 delta 3793 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 H0ssI2K%p9T diff --git a/package/contents/ui/GeneralConfig.qml b/package/contents/ui/GeneralConfig.qml index 822303e..83822bb 100644 --- a/package/contents/ui/GeneralConfig.qml +++ b/package/contents/ui/GeneralConfig.qml @@ -2,7 +2,7 @@ import QtQuick 2.12 import QtQuick.Controls 2.15 import QtQuick.Layouts 1.11 import org.kde.plasma.core 2.0 as PlasmaCore - +import "TimeZoneData.js" as TimeZoneData Item { id: configRoot @@ -119,85 +119,7 @@ Item { id: timeZoneComboBox Layout.fillWidth: true // Curated list of major timezones - model: [ - { text: "Local System Time", value: "Local" }, - { text: "UTC", value: "UTC" }, - { text: "UTC-12:00", value: "Etc/GMT+12" }, - { text: "UTC-11:00 (Midway)", value: "Pacific/Midway" }, - { text: "UTC-10:00 (Hawaii)", value: "Pacific/Honolulu" }, - { text: "UTC-09:30 (Marquesas)", value: "Pacific/Marquesas" }, - { text: "UTC-09:00 (Alaska)", value: "America/Anchorage" }, - { text: "UTC-08:00 (Los Angeles - PST/PDT)", value: "America/Los_Angeles" }, - { text: "UTC-08:00 (Tijuana)", value: "America/Tijuana" }, - { text: "UTC-07:00 (Denver - MST/MDT)", value: "America/Denver" }, - { text: "UTC-07:00 (Phoenix)", value: "America/Phoenix" }, - { text: "UTC-06:00 (Chicago - CST/CDT)", value: "America/Chicago" }, - { text: "UTC-06:00 (Mexico City)", value: "America/Mexico_City" }, - { text: "UTC-06:00 (Saskatchewan)", value: "America/Regina" }, - { text: "UTC-05:00 (New York - EST/EDT)", value: "America/New_York" }, - { text: "UTC-05:00 (Bogota)", value: "America/Bogota" }, - { text: "UTC-05:00 (Lima)", value: "America/Lima" }, - { text: "UTC-04:00 (Santiago)", value: "America/Santiago" }, - { text: "UTC-04:00 (Caracas)", value: "America/Caracas" }, - { text: "UTC-04:00 (Halifax)", value: "America/Halifax" }, - { text: "UTC-03:30 (Newfoundland)", value: "America/St_Johns" }, - { text: "UTC-03:00 (Sao Paulo - BRT/BRST)", value: "America/Sao_Paulo" }, - { text: "UTC-03:00 (Buenos Aires)", value: "America/Buenos_Aires" }, - { text: "UTC-03:00 (Greenland)", value: "America/Godthab" }, - { text: "UTC-02:00 (South Georgia)", value: "Atlantic/South_Georgia" }, - { text: "UTC-02:00 (General)", value: "Etc/GMT+2" }, - { text: "UTC-01:00 (Azores)", value: "Atlantic/Azores" }, - { text: "UTC-01:00 (Cape Verde)", value: "Atlantic/Cape_Verde" }, - { text: "UTC+00:00 (London - GMT/BST)", value: "Europe/London" }, - { text: "UTC+00:00 (Lisbon)", value: "Europe/Lisbon" }, - { text: "UTC+00:00 (Casablanca)", value: "Africa/Casablanca" }, - { text: "UTC+01:00 (Paris - CET/CEST)", value: "Europe/Paris" }, - { text: "UTC+01:00 (Berlin)", value: "Europe/Berlin" }, - { text: "UTC+01:00 (Rome)", value: "Europe/Rome" }, - { text: "UTC+01:00 (Lagos)", value: "Africa/Lagos" }, - { text: "UTC+02:00 (Athens)", value: "Europe/Athens" }, - { text: "UTC+02:00 (Cairo)", value: "Africa/Cairo" }, - { text: "UTC+02:00 (Jerusalem)", value: "Asia/Jerusalem" }, - { text: "UTC+02:00 (Helsinki)", value: "Europe/Helsinki" }, - { text: "UTC+02:00 (Johannesburg)", value: "Africa/Johannesburg" }, - { text: "UTC+03:00 (Moscow)", value: "Europe/Moscow" }, - { text: "UTC+03:00 (Istanbul)", value: "Europe/Istanbul" }, - { text: "UTC+03:00 (Nairobi)", value: "Africa/Nairobi" }, - { text: "UTC+03:00 (Baghdad)", value: "Asia/Baghdad" }, - { text: "UTC+03:00 (Riyadh)", value: "Asia/Riyadh" }, - { text: "UTC+03:30 (Tehran)", value: "Asia/Tehran" }, - { text: "UTC+04:00 (Dubai)", value: "Asia/Dubai" }, - { text: "UTC+04:00 (Baku)", value: "Asia/Baku" }, - { text: "UTC+04:30 (Kabul)", value: "Asia/Kabul" }, - { text: "UTC+05:00 (Karachi)", value: "Asia/Karachi" }, - { text: "UTC+05:00 (Tashkent)", value: "Asia/Tashkent" }, - { text: "UTC+05:30 (Kolkata)", value: "Asia/Kolkata" }, - { text: "UTC+05:30 (Colombo)", value: "Asia/Colombo" }, - { text: "UTC+05:45 (Kathmandu)", value: "Asia/Kathmandu" }, - { text: "UTC+06:00 (Dhaka)", value: "Asia/Dhaka" }, - { text: "UTC+06:00 (Almaty)", value: "Asia/Almaty" }, - { text: "UTC+06:30 (Yangon)", value: "Asia/Yangon" }, - { text: "UTC+07:00 (Bangkok)", value: "Asia/Bangkok" }, - { text: "UTC+07:00 (Jakarta)", value: "Asia/Jakarta" }, - { text: "UTC+07:00 (Novosibirsk)", value: "Asia/Novosibirsk" }, - { text: "UTC+08:00 (Singapore)", value: "Asia/Singapore" }, - { text: "UTC+08:00 (Shanghai)", value: "Asia/Shanghai" }, - { text: "UTC+08:00 (Taipei)", value: "Asia/Taipei" }, - { text: "UTC+08:00 (Hong Kong)", value: "Asia/Hong_Kong" }, - { text: "UTC+08:00 (Perth)", value: "Australia/Perth" }, - { text: "UTC+09:00 (Tokyo)", value: "Asia/Tokyo" }, - { text: "UTC+09:00 (Seoul)", value: "Asia/Seoul" }, - { text: "UTC+09:30 (Adelaide)", value: "Australia/Adelaide" }, - { text: "UTC+09:30 (Darwin)", value: "Australia/Darwin" }, - { text: "UTC+10:00 (Sydney)", value: "Australia/Sydney" }, - { text: "UTC+10:00 (Brisbane)", value: "Australia/Brisbane" }, - { text: "UTC+10:00 (Vladivostok)", value: "Asia/Vladivostok" }, - { text: "UTC+11:00 (Noumea)", value: "Pacific/Noumea" }, - { text: "UTC+12:00 (Auckland)", value: "Pacific/Auckland" }, - { text: "UTC+12:00 (Fiji)", value: "Pacific/Fiji" }, - { text: "UTC+13:00 (Tongatapu)", value: "Pacific/Tongatapu" }, - { text: "UTC+14:00 (Kiritimati)", value: "Pacific/Kiritimati" } - ] + model: TimeZoneData.timeZones textRole: "text" valueRole: "value" onCurrentValueChanged: configurationChanged() diff --git a/package/contents/ui/TimeZoneData.js b/package/contents/ui/TimeZoneData.js new file mode 100644 index 0000000..13f203e --- /dev/null +++ b/package/contents/ui/TimeZoneData.js @@ -0,0 +1,80 @@ + +var timeZones = [ + { text: "Local System Time", value: "Local" }, + { text: "UTC", value: "UTC" }, + { text: "UTC-12:00", value: "Etc/GMT+12" }, + { text: "UTC-11:00 (Midway)", value: "Pacific/Midway" }, + { text: "UTC-10:00 (Hawaii)", value: "Pacific/Honolulu" }, + { text: "UTC-09:30 (Marquesas)", value: "Pacific/Marquesas" }, + { text: "UTC-09:00 (Alaska)", value: "America/Anchorage" }, + { text: "UTC-08:00 (Los Angeles - PST/PDT)", value: "America/Los_Angeles" }, + { text: "UTC-08:00 (Tijuana)", value: "America/Tijuana" }, + { text: "UTC-07:00 (Denver - MST/MDT)", value: "America/Denver" }, + { text: "UTC-07:00 (Phoenix)", value: "America/Phoenix" }, + { text: "UTC-06:00 (Chicago - CST/CDT)", value: "America/Chicago" }, + { text: "UTC-06:00 (Mexico City)", value: "America/Mexico_City" }, + { text: "UTC-06:00 (Saskatchewan)", value: "America/Regina" }, + { text: "UTC-05:00 (New York - EST/EDT)", value: "America/New_York" }, + { text: "UTC-05:00 (Bogota)", value: "America/Bogota" }, + { text: "UTC-05:00 (Lima)", value: "America/Lima" }, + { text: "UTC-04:00 (Santiago)", value: "America/Santiago" }, + { text: "UTC-04:00 (Caracas)", value: "America/Caracas" }, + { text: "UTC-04:00 (Halifax)", value: "America/Halifax" }, + { text: "UTC-03:30 (Newfoundland)", value: "America/St_Johns" }, + { text: "UTC-03:00 (Sao Paulo - BRT/BRST)", value: "America/Sao_Paulo" }, + { text: "UTC-03:00 (Buenos Aires)", value: "America/Buenos_Aires" }, + { text: "UTC-03:00 (Greenland)", value: "America/Godthab" }, + { text: "UTC-02:00 (South Georgia)", value: "Atlantic/South_Georgia" }, + { text: "UTC-02:00 (General)", value: "Etc/GMT+2" }, + { text: "UTC-01:00 (Azores)", value: "Atlantic/Azores" }, + { text: "UTC-01:00 (Cape Verde)", value: "Atlantic/Cape_Verde" }, + { text: "UTC+00:00 (London - GMT/BST)", value: "Europe/London" }, + { text: "UTC+00:00 (Lisbon)", value: "Europe/Lisbon" }, + { text: "UTC+00:00 (Casablanca)", value: "Africa/Casablanca" }, + { text: "UTC+01:00 (Paris - CET/CEST)", value: "Europe/Paris" }, + { text: "UTC+01:00 (Berlin)", value: "Europe/Berlin" }, + { text: "UTC+01:00 (Rome)", value: "Europe/Rome" }, + { text: "UTC+01:00 (Lagos)", value: "Africa/Lagos" }, + { text: "UTC+02:00 (Athens)", value: "Europe/Athens" }, + { text: "UTC+02:00 (Cairo)", value: "Africa/Cairo" }, + { text: "UTC+02:00 (Jerusalem)", value: "Asia/Jerusalem" }, + { text: "UTC+02:00 (Helsinki)", value: "Europe/Helsinki" }, + { text: "UTC+02:00 (Johannesburg)", value: "Africa/Johannesburg" }, + { text: "UTC+03:00 (Moscow)", value: "Europe/Moscow" }, + { text: "UTC+03:00 (Istanbul)", value: "Europe/Istanbul" }, + { text: "UTC+03:00 (Nairobi)", value: "Africa/Nairobi" }, + { text: "UTC+03:00 (Baghdad)", value: "Asia/Baghdad" }, + { text: "UTC+03:00 (Riyadh)", value: "Asia/Riyadh" }, + { text: "UTC+03:30 (Tehran)", value: "Asia/Tehran" }, + { text: "UTC+04:00 (Dubai)", value: "Asia/Dubai" }, + { text: "UTC+04:00 (Baku)", value: "Asia/Baku" }, + { text: "UTC+04:30 (Kabul)", value: "Asia/Kabul" }, + { text: "UTC+05:00 (Karachi)", value: "Asia/Karachi" }, + { text: "UTC+05:00 (Tashkent)", value: "Asia/Tashkent" }, + { text: "UTC+05:30 (Kolkata)", value: "Asia/Kolkata" }, + { text: "UTC+05:30 (Colombo)", value: "Asia/Colombo" }, + { text: "UTC+05:45 (Kathmandu)", value: "Asia/Kathmandu" }, + { text: "UTC+06:00 (Dhaka)", value: "Asia/Dhaka" }, + { text: "UTC+06:00 (Almaty)", value: "Asia/Almaty" }, + { text: "UTC+06:30 (Yangon)", value: "Asia/Yangon" }, + { text: "UTC+07:00 (Bangkok)", value: "Asia/Bangkok" }, + { text: "UTC+07:00 (Jakarta)", value: "Asia/Jakarta" }, + { text: "UTC+07:00 (Novosibirsk)", value: "Asia/Novosibirsk" }, + { text: "UTC+08:00 (Singapore)", value: "Asia/Singapore" }, + { text: "UTC+08:00 (Shanghai)", value: "Asia/Shanghai" }, + { text: "UTC+08:00 (Taipei)", value: "Asia/Taipei" }, + { text: "UTC+08:00 (Hong Kong)", value: "Asia/Hong_Kong" }, + { text: "UTC+08:00 (Perth)", value: "Australia/Perth" }, + { text: "UTC+09:00 (Tokyo)", value: "Asia/Tokyo" }, + { text: "UTC+09:00 (Seoul)", value: "Asia/Seoul" }, + { text: "UTC+09:30 (Adelaide)", value: "Australia/Adelaide" }, + { text: "UTC+09:30 (Darwin)", value: "Australia/Darwin" }, + { text: "UTC+10:00 (Sydney)", value: "Australia/Sydney" }, + { text: "UTC+10:00 (Brisbane)", value: "Australia/Brisbane" }, + { text: "UTC+10:00 (Vladivostok)", value: "Asia/Vladivostok" }, + { text: "UTC+11:00 (Noumea)", value: "Pacific/Noumea" }, + { text: "UTC+12:00 (Auckland)", value: "Pacific/Auckland" }, + { text: "UTC+12:00 (Fiji)", value: "Pacific/Fiji" }, + { text: "UTC+13:00 (Tongatapu)", value: "Pacific/Tongatapu" }, + { text: "UTC+14:00 (Kiritimati)", value: "Pacific/Kiritimati" } +]; diff --git a/package/contents/ui/main.qml b/package/contents/ui/main.qml index fa4141f..68ceb52 100644 --- a/package/contents/ui/main.qml +++ b/package/contents/ui/main.qml @@ -3,7 +3,7 @@ import QtQuick.Controls 2.15 import QtQuick.Layouts 1.12 import org.kde.plasma.plasmoid 2.0 import org.kde.plasma.plasma5support as Plasma5Support - +import "TimeZoneData.js" as TimeZoneData PlasmoidItem { id: root @@ -109,7 +109,7 @@ import org.kde.plasma.plasma5support as Plasma5Support ColumnLayout { anchors.centerIn: parent width: parent.width - spacing: 5 + spacing: 2 // Date Text (small, centered) Text { @@ -133,6 +133,27 @@ import org.kde.plasma.plasma5support as Plasma5Support horizontalAlignment: Text.AlignHCenter } + // Time Zone Label + Text { + id: timeZoneText + Layout.alignment: Qt.AlignHCenter + font.family: poppinsThin.name + font.pixelSize: root.height * 0.07 + text: { + var tz = root.activeTimeZone; + if (tz === "Local" || tz === "") return ""; + for (var i = 0; i < TimeZoneData.timeZones.length; i++) { + if (TimeZoneData.timeZones[i].value === tz) { + return TimeZoneData.timeZones[i].text; + } + } + return tz; + } + color: colorPlasmoid + horizontalAlignment: Text.AlignHCenter + visible: root.activeTimeZone !== "Local" && root.activeTimeZone !== "" + } + } From ca8b2a7ef3a5f3be4f96f9384bc0f632a0859668 Mon Sep 17 00:00:00 2001 From: danielgarciabsb Date: Sun, 28 Dec 2025 00:51:16 +0000 Subject: [PATCH 3/6] refactor: Replace `Qt.formatDateTime` with `toLocaleString` for date and time display. --- Material-Clock.plasmoid | Bin 145119 -> 145127 bytes package/contents/ui/main.qml | 4 ++-- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Material-Clock.plasmoid b/Material-Clock.plasmoid index 6318fee1ab7b28a6273aba563d04e97d46333041..cb4f6d6a5d28653588fbe71549b684ce9c894190 100644 GIT binary patch delta 1596 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 y=6shhGy)x$#x(*S0~{y Date: Sun, 28 Dec 2025 01:11:34 +0000 Subject: [PATCH 4/6] feat: Implement local time updates with a timer and improve time zone configuration defaulting to 'Local'. --- Material-Clock.plasmoid | Bin 145127 -> 145234 bytes package/contents/ui/GeneralConfig.qml | 8 ++++++-- package/contents/ui/main.qml | 15 +++++++++++---- 3 files changed, 17 insertions(+), 6 deletions(-) diff --git a/Material-Clock.plasmoid b/Material-Clock.plasmoid index cb4f6d6a5d28653588fbe71549b684ce9c894190..95b9af16a3f3070474397becf0371f26cb3bbdfe 100644 GIT binary patch delta 2935 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 delta 2839 zcmV+y3+VLH?g;1Y2!MnEv;uG;4k`wmTUwu2R&WLY0EZTrejx%M0*`)|pCJMlf7^1@ zHuODTA^gC2NmkiFX*)~P4y2`ICZUjocBV`ow6?q}uqBTq@3LF+?>$Gdy}oS-v`njq zB$m$oej>75X-i()*M*4QlZW)^;ht#S(Gw-DR;j_q$KA&>wpN8Tu@|KLd+9+E4~q{*4) z(vlgA-p{ovWZaU1Ztq_RY0Z=bFV(a9E~sfe2RoBgv6yQ^R>CewrZfkUe`kfUBxi83 zU@}gHoI4bRKXc$6C3BVMLYk|EkoCP$g^u_X{6;l5DqZsUjZVXW(!&Jkn8OljYypc} zn*<|=d$V^ZUKe~`q)dN4JM9ts9Bcn98F;7AXkzd%M{iGw|8jKnY@w8b~V$~ow^Mq0FeFN6tQL(F zh8uFZHkhbRS(nTkP_c#h2PZ2g!3)nFdgz4ZF_Ia9w@TDwa=|lYxub!qKp?cpfLImk zi0peT?_a>h#|zFP z@}O&v2c(I)%W@4G1Nbd0%QWcRMZ-2g+bKTGG!{v+MH?bEe;yF5PpeGL+S#2Pty~{s z^fh@tAV-tQq*WN(osnWbUb<@Asm!RJf2gmy%Uftb_!iXHz)C^_^Vow!hkAQUHTtRk zYuYJG*IWM5a=m2f6x;!)zE={(J%Khh=OAKI$O!9j=-b6hmhl4;0|ZvKR%vT}V7c64 zIN>_-LdCqTf1uvKPdfPJ%cxsYD|RT<+n{n+a6JU){EUIsaV`W-7rlpja|>4=TER8B z2ZF-Hz!Pv{e5(ZQ(5?ljD1Czc_Uon@cy2_&I4g1>2PJvIrHeAGCM0rB^`U>_0}4EA z8dCb~+0~0{uqr4ZSSsh00TXt0#tbz&0{!mN-&+>ye?|w=*&T79`UNl31oC|@B5Zzc z8iQ^yTay{oOPo7E>~1z4^hnJLOIE(65vwY5qKk;gG9C-~gjx*|07cn|S=#7^J<-qx zKCjCvaO_R8BV%t>6Ju^$HmD1lChftn|0L2s$eTOUy<4(dQ`r*)&q~C0QN2+2)p~~|F@gdyB@g$y^Q)J0MYMw^0k!fehpy z*bSoqpL>s9AzJI}HnOMq^};)+hk@%EO;{$!dMP&C@7Hv}#e895 ze|DMBqaKC@F-y44{zR>EWs3XJJp@TzAj4F2u&cnM;(jR@IrJ6RC$M;gqaI(kx=-7C zeh&!zEH)UV>C>&n(6GC0cGL5xt6kooDYm>X@Fy0LujtQmTmLebe)E-Gin^CB{jZ(q zMuRgpn_HhYf7Q0s9+;jCVz?H&>HhDcx(P_*kJs zWGjH{LSMBD0NLN))t@VghAF%i*A#kL;pcz5xs3{*QuN)#(3Hb! z;pxvKyKhTYcGD-d+3~~ z;mpV3%;+P@qF5>oSNbYt!97fgI~}l!j?ARcO7g@`p4BHW=|-kH0hhRLF@Go3irj}t zVosBYl0Ygnz7wDcEHc&1XbNNJhDG?B6!;U>l-wnbH7n}|Z#72nc>qRO=s_UGlC9oJ zsRx;EJcfmmF)Gb4fu&SCi&Rm~q{wXI++YKgGXoziSAPbQOEt$w3us1bd?Xqlb(eWa zHC{*+QSHHDe8G^1y?)y4q<`=`jF0oP8OXitXeOhN@<;hdf>bFK`UB-D<|#Eu?%X2YhjcT_Q{x+YS;G*?ii`|^7=e2RcT}7>Blu){+<1gx zID!y--*;d;>PNpwIe&-#C9;`(m6WPYZKYzVBi8yQjZm=wuGf~zb_=*?IG}=WVs%_VCDxRiVPSB2M*_n7+29 z=W9J)r&6+Od-!YOQ@qASbnIKPVde z#=*P)h>@myR|97`MJG0vQPoDh8ZeTAx=|a0UPXhZdLR zH3BUHkA9b%Gy)wTOaz=;{m4SOyaNCLp%DN89RL^r000000RR91q=6)tP&NW30uXzb pn=}F)my|XF9s@Tl0++um0v?ysHUdBb=rETRHv%^Xi82BJ003S;P8|RM diff --git a/package/contents/ui/GeneralConfig.qml b/package/contents/ui/GeneralConfig.qml index 83822bb..111d78d 100644 --- a/package/contents/ui/GeneralConfig.qml +++ b/package/contents/ui/GeneralConfig.qml @@ -10,7 +10,7 @@ Item { property alias cfg_colorHex: colorhex.text property alias cfg_dateFormat: dateFormatField.text property alias cfg_timeFormat: timeFormatField.text - property alias cfg_timeZone: timeZoneComboBox.currentValue + property string cfg_timeZone: "Local" signal configurationChanged @@ -122,7 +122,11 @@ Item { model: TimeZoneData.timeZones textRole: "text" valueRole: "value" - onCurrentValueChanged: configurationChanged() + currentIndex: indexOfValue(cfg_timeZone) + onActivated: { + cfg_timeZone = currentValue + configurationChanged() + } } } diff --git a/package/contents/ui/main.qml b/package/contents/ui/main.qml index 1ad5d9b..81701d9 100644 --- a/package/contents/ui/main.qml +++ b/package/contents/ui/main.qml @@ -25,7 +25,14 @@ import "TimeZoneData.js" as TimeZoneData property var currentDateTime: new Date() - property string activeTimeZone: Plasmoid.configuration.timeZone + Timer { + interval: 1000 + running: true + repeat: true + onTriggered: root.currentDateTime = new Date() + } + + property string activeTimeZone: Plasmoid.configuration.timeZone || "Local" property int timeZoneOffset: 0 property var displayDateTime: { @@ -64,7 +71,7 @@ import "TimeZoneData.js" as TimeZoneData if (sourceName === activeTimeZone || (activeTimeZone === "Local" && sourceName === "Local")) { if (data["DateTime"]) { - root.currentDateTime = data["DateTime"] + // root.currentDateTime = data["DateTime"] // Use local timer instead } if (data["Offset"] !== undefined) { root.timeZoneOffset = data["Offset"] @@ -78,7 +85,7 @@ import "TimeZoneData.js" as TimeZoneData target: Plasmoid.configuration function onTimeZoneChanged() { var src = Plasmoid.configuration.timeZone - root.activeTimeZone = src + // root.activeTimeZone = src // Binding handles this automatically // Reconnect logic is handled by binding on connectedSources, // but we want to update data immediately if possible. @@ -87,7 +94,7 @@ import "TimeZoneData.js" as TimeZoneData if (timeSource.data[engineSource]) { if (timeSource.data[engineSource]["DateTime"]) { - root.currentDateTime = timeSource.data[engineSource]["DateTime"] + // root.currentDateTime = timeSource.data[engineSource]["DateTime"] } if (timeSource.data[engineSource]["Offset"] !== undefined) { root.timeZoneOffset = timeSource.data[engineSource]["Offset"] From 40ef6725f1b4e9ce6a4ab7a000bd1e206bbfbe7f Mon Sep 17 00:00:00 2001 From: danielgarciabsb Date: Sun, 28 Dec 2025 16:54:37 +0000 Subject: [PATCH 5/6] feat: Add build script and refactor time zone configuration and data source handling. --- Material-Clock.plasmoid | Bin 145234 -> 145396 bytes package/contents/config/main.xml | 2 +- package/contents/ui/GeneralConfig.qml | 18 +++++-- package/contents/ui/main.qml | 72 +++++++++++++++----------- rebuild.sh | 45 ++++++++++++++++ 5 files changed, 102 insertions(+), 35 deletions(-) create mode 100755 rebuild.sh diff --git a/Material-Clock.plasmoid b/Material-Clock.plasmoid index 95b9af16a3f3070474397becf0371f26cb3bbdfe..4cb5f13e82518ed78230c1c90bc2933c972f446b 100644 GIT binary patch delta 3564 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 Z77!+kB7kdje-pToz-4f@GVrJM{{TDVqz3>1 delta 3380 zcmZXXcRUo1AI9&_I(r>iXUphZI(wW|+2crO%Zf-g8F99dJuX7UnU|GuAub~d+2hce z*%695seb*wfBn9%-#^b^pXc@b_kKRlw=dwy18`$FkQv$X#C{|q0BFul0*V7? zvD*AVZcKg-(l1_)E$M!A;>KtX&QXTi-I%vG4_(_~`$HIg9_v$;g}D_}kuTHA(DlAM za(T<=X&M>F6;8KRp(sJF0?-@0)fGxZDeQRujp}`#6y6tE3#ur1_=!;YM8Po0#=fG^rB6`7uPg6>V$Xcg^q> zO8|xmuKB6#ksT09tVWSjcpR-88~Pg%94LSrHPQ^+9!i zxZXxJ)B0L$&DRoZX!;157&gh95<*#g@h70<6A+Ma0s_SevRtMww%b&pb|Z!y6q_b)7d8MA-yQe15-HPWbHO5a&x2`XgN3($;c8~>eilv(n%cYmM>x8n}@^w+KqhYf(N~?Z` zDm6BTHu%EgEj^VQuJ1ONSKOSNh-2_as8DGpsliIo-*U=o)`nLZyJLx2L-X{QG^brp zE?8|CQeUgtDvkQlZR<%{n@Z+qLsK8s+8|&Xa6ZoR1CoCAY1p@dY~wBmquZCcEpPhc zgE;%B*9VwwN}P0$2XOHZzy9JqZu&_x@lJ&6zAra3a{pws#J!|P!#t7lAmAcfs08|` z9l}%cF)Qs#ul7W#9F6s(CEC6ijOloi_fTv*WG4aoXmFjuC$M5XigVM1g{YJQD4|&Gw z<5z>WDJ?eU`1EEa-yWEH>6NhunO#*ah?T%{Bf7}n{F0-jXEhq?8X7Q6z8LbSS-Fd; zv%jC?wHkC{pyRJve7KAi+%mK~OMY+^dIsLa8$!!d`$o1OE%jgahFdUt71{&P3PWj4 zp2fRN8+ty6n`?IzxVUpf8svKgO1yGYOx=SR3rZSbC#-%i#u^lhNW$k-qbMs7rvVAK#wUSt;|iOP4tQI|1!u? z@vh{k(+K!nrDJX*zF~-`=LniwY_H9%X+oxNGyxrd8%vG`NM9w(tUrjNFfo zx9tX=7BqSm42&3_oS2OGulvm8?W)~5+)TmJiAmz%`kBpm>NK)G}fR`M5EpN*I3a!AKe=O8~y1r&*ZgIbg#X;(3pIrT|gcVF|tnH`Ku>_;}K1#% z_oFUJNN}XwKH|wy{3K@ZlGaS9G}NytOh2%iT}F0G1~0EZ=~Y_OSWj4U97^d@9IPz| zBQe&9fVAU;pM(Kb-=3yhb%LK;)IqnebjD<|Y`G-`EV>1(5?rWe%D?3apQXQy$xu)3 z5q6s2vmUMbb}C9;byer5lusOE*4M;7`|-y@!BPUX zwkxelR}NafSg{qv0KIoPdB0dkE+zqa1!pm7&n1bVpoB{!&ZO);qNz!d5JJs>$Fsds z-1MohhF%8wpn1jr=JgwNFbQy%M{ zsm6-c{<(c6gSg1i@td-Fp(&*OzM>!6JVN^Xp(BA9mzQ#JQ+#&UD;lA?|RBYep^lJv2ReRk?*GK$+WGke& z!o?llrRDt~$hDU2#8|nXK9ZMKG5xk;5p^g~7cRr;?=vWk8F*#0KmfM6rRIR=H80rA zn*k&m<;n_kAVafUDTi9ct8)gTKQA`5*x4$nGWOROMbC@o>it z+8D%fg4^FITE>d6j%@cA_VTewFf6fRg`&*bAFtCfS4UhrcQ!s3?wqC)Ka#${o&*1U zRz*GaY|g9}W5CeqNF0V|$2D%uqN?7|>=plfXlL6(Z;QBw7a2uAlnuy|9#JtBE08rV zRdl-`c1x!-3n9vBFAJ)`7BV^Y1~=Zc+9}>icq36s!aDfqt7V0#>pzvNdmlW--l1Jg zB#k4gXLYW7-k@|?E?ktCHJBgrWSrr7Eg9?3E>~iLQPYsR9CkHP9vM)2jiA`t2PY`! z_tylz&8jS00~?y_DbjT8@?WBSq=PD7_7$@vlY(mqxWmO zO1c6wu9e99-or54X3j&Va>1>hI0a^0>)SADMr+0fDU_ z$iyZY6lyAQ;0u4j)3WdhCu++w{p&Z3_lp+HS6_4(jq-WI#xMJoVV07Tt|o2h z``N1&|H%2cbJ)RC&(z4OgAA}fh?o&g`!KsWw6I&{piZGJb>r(ibYfphgxylYQG~SX z%t2Sbnpw>KW*^zwwctz#7%yv9bCJ8Wo2r-`){~>^H1E=o?e%P(pY(VfYEl0e6<9fC z5D&pw7Nk%2@0o#ZQ2-%;v)NZ5Sd=1&8v929Bo3U$iYtPwsGwAUTpcP2>@!7>Ht-a? zst9ri3S;$@K=MNWezpMs2!Q7=i~xYY%LRao^}s$>0ttW& HH:mm - + Local diff --git a/package/contents/ui/GeneralConfig.qml b/package/contents/ui/GeneralConfig.qml index 111d78d..7d0bb0e 100644 --- a/package/contents/ui/GeneralConfig.qml +++ b/package/contents/ui/GeneralConfig.qml @@ -10,7 +10,7 @@ Item { property alias cfg_colorHex: colorhex.text property alias cfg_dateFormat: dateFormatField.text property alias cfg_timeFormat: timeFormatField.text - property string cfg_timeZone: "Local" + property string cfg_selectedTimeZone: "Local" signal configurationChanged @@ -122,9 +122,21 @@ Item { model: TimeZoneData.timeZones textRole: "text" valueRole: "value" - currentIndex: indexOfValue(cfg_timeZone) + + // Helper to safely find index + function getTimeZoneIndex(val) { + for (var i = 0; i < TimeZoneData.timeZones.length; i++) { + if (TimeZoneData.timeZones[i].value === val) { + return i; + } + } + return 0; // Default to Local (index 0) if not found + } + + currentIndex: getTimeZoneIndex(cfg_selectedTimeZone) + onActivated: { - cfg_timeZone = currentValue + cfg_selectedTimeZone = currentValue configurationChanged() } } diff --git a/package/contents/ui/main.qml b/package/contents/ui/main.qml index 81701d9..e2fccb6 100644 --- a/package/contents/ui/main.qml +++ b/package/contents/ui/main.qml @@ -32,9 +32,14 @@ import "TimeZoneData.js" as TimeZoneData onTriggered: root.currentDateTime = new Date() } - property string activeTimeZone: Plasmoid.configuration.timeZone || "Local" + property string activeTimeZone: { + var tz = Plasmoid.configuration.selectedTimeZone + return tz || "Local" + } property int timeZoneOffset: 0 + + property var displayDateTime: { // If Local, just return current time if (activeTimeZone === "Local" || activeTimeZone === "") { @@ -61,45 +66,53 @@ import "TimeZoneData.js" as TimeZoneData return new Date(currentDateTime.getTime() + diffSeconds * 1000) } + function updateTimeZoneData() { + var src = activeTimeZone + var engineSource = src === "Local" ? "Local" : src + + timeSource.connectSource(engineSource) + + // Check immediate availability + if (timeSource.data[engineSource]) { + if (timeSource.data[engineSource]["Offset"] !== undefined) { + root.timeZoneOffset = timeSource.data[engineSource]["Offset"] + } + } + } + + onActiveTimeZoneChanged: { + updateTimeZoneData() + } + + + Plasma5Support.DataSource { id: timeSource engine: "time" - connectedSources: [activeTimeZone === "Local" ? "Local" : activeTimeZone] + // connectedSources: [activeTimeZone === "Local" ? "Local" : activeTimeZone] // We manage manually to be safe interval: 60000 onDataChanged: function(sourceName, data) { - - - if (sourceName === activeTimeZone || (activeTimeZone === "Local" && sourceName === "Local")) { - if (data["DateTime"]) { - // root.currentDateTime = data["DateTime"] // Use local timer instead - } - if (data["Offset"] !== undefined) { + if (sourceName === (activeTimeZone === "Local" ? "Local" : activeTimeZone)) { + if (data["Offset"] !== undefined) { root.timeZoneOffset = data["Offset"] - } + } } } + Component.onCompleted: { + updateTimeZoneData() + } } - // Force update when timezone changes + // Force initial update + Component.onCompleted: { + updateTimeZoneData() + } + + // Config watcher Connections { target: Plasmoid.configuration - function onTimeZoneChanged() { - var src = Plasmoid.configuration.timeZone - // root.activeTimeZone = src // Binding handles this automatically - - // Reconnect logic is handled by binding on connectedSources, - // but we want to update data immediately if possible. - - var engineSource = src === "Local" ? "Local" : src - - if (timeSource.data[engineSource]) { - if (timeSource.data[engineSource]["DateTime"]) { - // root.currentDateTime = timeSource.data[engineSource]["DateTime"] - } - if (timeSource.data[engineSource]["Offset"] !== undefined) { - root.timeZoneOffset = timeSource.data[engineSource]["Offset"] - } - } + function onSelectedTimeZoneChanged() { + // updateTimeZoneData is called by activeTimeZone binding change } } @@ -160,9 +173,6 @@ import "TimeZoneData.js" as TimeZoneData horizontalAlignment: Text.AlignHCenter visible: root.activeTimeZone !== "Local" && root.activeTimeZone !== "" } - - - } } } diff --git a/rebuild.sh b/rebuild.sh new file mode 100755 index 0000000..0a51553 --- /dev/null +++ b/rebuild.sh @@ -0,0 +1,45 @@ +#!/bin/bash + +PROJECT_NAME="Material-Clock" +PLASMOID_FILE="${PROJECT_NAME}.plasmoid" +INSTALL_DIR="$HOME/.local/share/kpackage/generic/material.clock" + +echo "🚧 Building $PROJECT_NAME..." + +# Ensure we are in the project root +if [ ! -d "package" ]; then + echo "❌ Error: 'package' directory not found. Please run this from the project root." + exit 1 +fi + +# Create the package +rm -f "$PLASMOID_FILE" +cd package +zip -r "../$PLASMOID_FILE" . -x "*.git*" +cd .. + +if [ ! -f "$PLASMOID_FILE" ]; then + echo "❌ Build failed!" + exit 1 +fi +echo "✅ Build successful: $PLASMOID_FILE" + +echo "🔄 Reinstalling..." +# Using kpackagetool6 to upgrade if exists, or install +# Note: 'upgrade' sometimes fails if structure changed, so we can clean install +kpackagetool6 --upgrade "$PLASMOID_FILE" || (kpackagetool6 -r material.clock; kpackagetool6 -i "$PLASMOID_FILE") + +echo "✅ Installed successfully." + +echo "" +echo "---------------------------------------------------------" +echo "⚠️ IMPORTANT: Plasma caches files aggressively." +echo "To see changes immediately, try ONE of the following:" +echo "" +echo "1. Run specific viewer (Recommended for testing):" +echo " plasmoidviewer -a package" +echo "" +echo "2. Restart Plasma Shell (Resets your desktop):" +echo " kquitapp5 plasmashell || kquitapp6 plasmashell" +echo " kstart5 plasmashell || kstart6 plasmashell" +echo "---------------------------------------------------------" From bb38609ff42586bfc6d1ed5ad628b959ba910c69 Mon Sep 17 00:00:00 2001 From: danielgarciabsb Date: Sun, 28 Dec 2025 17:08:34 +0000 Subject: [PATCH 6/6] fix: Snap time zone offset to nearest 15 minutes to prevent small drifts. --- Material-Clock.plasmoid | Bin 145396 -> 145485 bytes package/contents/ui/main.qml | 5 +++++ 2 files changed, 5 insertions(+) diff --git a/Material-Clock.plasmoid b/Material-Clock.plasmoid index 4cb5f13e82518ed78230c1c90bc2933c972f446b..51160f5e398bc406434aa7af92b6d5ec74083287 100644 GIT binary patch delta 1985 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 diff --git a/package/contents/ui/main.qml b/package/contents/ui/main.qml index e2fccb6..ccc36db 100644 --- a/package/contents/ui/main.qml +++ b/package/contents/ui/main.qml @@ -62,6 +62,11 @@ import "TimeZoneData.js" as TimeZoneData var targetOffsetSeconds = root.timeZoneOffset var diffSeconds = targetOffsetSeconds - localOffsetSeconds + + // Snap to nearest 15 minutes (900 seconds) to avoid small drifts or 1-minute errors + if (Math.abs(diffSeconds) % 900 !== 0) { + diffSeconds = Math.round(diffSeconds / 900) * 900 + } return new Date(currentDateTime.getTime() + diffSeconds * 1000) }