diff --git a/.circleci/config.yml b/.circleci/config.yml new file mode 100644 index 00000000..466c20c1 --- /dev/null +++ b/.circleci/config.yml @@ -0,0 +1,25 @@ +version: 2.1 + +setup: true + +orbs: + continuation: circleci/continuation@0.1.2 + droidian-buildd: droidian-releng/droidian-buildd-orb@volatile + +jobs: + setup: + executor: continuation/default + resource_class: small + steps: + - droidian-buildd/checkout + - droidian-buildd/generate + - continuation/continue: + configuration_path: generated_config.yml + +workflows: + setup: + jobs: + - setup: + filters: + tags: + only: /^droidian\/.*\/.*/ diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..0b94280d --- /dev/null +++ b/.gitignore @@ -0,0 +1,6 @@ +build +_build +*~ +.vscode +.flatpak-builder/ +.flatpak/ diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 00000000..44fb8645 --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,53 @@ +include: + - project: 'gnome/citemplates' + file: 'flatpak/flatpak_ci_initiative.yml' + +variables: + APP_ID: "org.gnome.clocksDevel" + BUNDLE: "gnome-clocks-dev.flatpak" + RUNTIME_REPO: "https://nightly.gnome.org/gnome-nightly.flatpakrepo" + MANIFEST_PATH: "build-aux/flatpak/org.gnome.clocks.json" + FLATPAK_MODULE: "gnome-clocks" + +stages: + - lint + - build + - deploy + +build-flatpak: + extends: '.flatpak@x86_64' + stage: build + before_script: [] + +build-flatpak-aarch64: + extends: '.flatpak@aarch64' + stage: build + before_script: [] + +nightly: + extends: '.publish_nightly' + needs: ['build-flatpak'] + +nightly-aarch64: + extends: '.publish_nightly' + needs: ['build-flatpak-aarch64'] + +lint: + image: "valalang/lint:latest" + stage: lint + script: + - io.elementary.vala-lint src + +# docs: +# image: "fedora:latest" +# script: +# - dnf install -y git valadoc vala meson glib2-devel gtk3-devel libhandy1-devel gsound-devel gnome-desktop3-devel libgweather-devel geoclue2-devel +# - meson -Ddocs=true _build +# - meson compile -C _build +# - rm -rf public +# - mv _build/docs public +# artifacts: +# paths: +# - public +# rules: +# - if: '$CI_COMMIT_BRANCH == "master"' diff --git a/AUTHORS.md b/AUTHORS.md index 10197300..e2ef3605 100644 --- a/AUTHORS.md +++ b/AUTHORS.md @@ -1,20 +1,19 @@ gnome-clocks was designed and implemented by -Alex Anthony -Paolo Borelli -Allan Day -Piotr Drąg -Emily Gonyer -Evgeny Bobkin -Maël Lavault -Seif Lotfy -William Jon McCann -Eslam Mostafa -Bastien Nocera -Volker Sobek -Jakub Steiner -Bilal Elmoussaoui +Alex Anthony +Paolo Borelli +Allan Day +Piotr Drąg +Emily Gonyer +Evgeny Bobkin +Maël Lavault +Seif Lotfy +William Jon McCann +Eslam Mostafa +Bastien Nocera +Volker Sobek +Jakub Steiner +Bilal Elmoussaoui Zander Brown - -The "daytime" photo is based on http://www.flickr.com/photos/60765633@N00/518084350/ by "lohengrin_net" (CCBY2 license) +The "daytime" photo is based on by "lohengrin_net" (CCBY2 license) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 35b8b7b2..e014aa7d 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,49 +1,47 @@ # Contributing -====== This file is intended to help new developers to get started with developing for Clocks. Feel free to skip sections if you know what they are about. Another good source for general information is: - https://wiki.gnome.org/Apps/Clocks + -1. How to Provide a Good Patch -============================== +--- - * Make sure you have just what belongs there in the changeset. - * Read https://wiki.gnome.org/Git/CommitMessages carefully. - * The preferred way of appending patches to bugs is via git bz. - * As an alternative you can use "git format-patch HEAD~1". - * The bugtracker has some quite cool features; use them! - * Click on review to write comments to other or your patches or to comment - comments on these patches. - * Dont be afraid about criticism! The review process is probably going to be - long. - * We dont dislike you! We really appreciate your work. +## 1. How to Provide a Good Patch -2. Getting Started With Vala -============================ +* Make sure you have just what belongs there in the changeset. +* Read carefully. +* The preferred way of appending patches to bugs is via `git bz`. + * As an alternative you can use `git format-patch HEAD~1`. +* The bugtracker has some quite cool features; use them! +* Click on review to write comments to other or your patches or to comment comments on these patches. +* Don't be afraid about criticism! The review process is probably going to be long. +* We don't dislike you! We really appreciate your work. + +--- + +## 2. Getting Started With Vala Check out: - https://wiki.gnome.org/Projects/Vala/Documentation + Vala basics in 5 minutes: - https://www.youtube.com/watch?v=k9hE0mumsCM + Good reference for the libraries used here: - http://www.valadoc.org/ + Information about UI-templates: - http://blogs.gnome.org/tvb/2013/05/29/composite-templates-lands-in-vala/ + -3. Getting Started With Clocks -============================== +--- -The best way to get started is to fix small bugs. If you don't find them, ask -on IRC. +## 3. Getting Started With Clocks +The best way to get started is to fix small bugs. If you don't find them, ask on IRC. diff --git a/NEWS b/NEWS index 1dbccea4..749ec2a7 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,75 @@ +gnome-clocks 46.rc +================== + * Add mnemonic to Start button + * Disable alarm after ringing when not set to repeat + * Fix countdown timer progress during suspend + * Fix resume bug on clear button pressed + * Fix sorting of locations + * Improve app metainfo for AppStream 1.0 + * Show a toast when a new alarm is set + * Translations updates + +gnome-clocks 45.0 +================= + * Port to new libadwaita widgets, including breakpoints + * Bundle bell sounds + * GNOME Shell search provider performance improvements + * Improve location matching by normalizing location search strings + * Replace deprecated code paths + * Use xdg-desktop-portal to get system clock format + * Translation updates + +gnome-clocks 44.0 +=================== + * Translations updates + +gnome-clocks 44.rc +=================== + * Translations updates + +gnome-clocks 44.beta +=================== + * Display seconds in the world clock detail view + * Reset snooze time when disabling alarms + * Add mnemonics to the view switcher + * Say ahead/behind instead of later/earlier + * Fix button layout in the timer view + * Add missing ellipses to button labels + * Remove an incorrect tooltip + * Help fixes + * Translations updates + +gnome-clocks 43.0 +=================== + * Translations updates + +gnome-clocks 43.beta +=================== + * Port to AdwAboutWindow - Christopher Davis + * Fix notifications are immediately withdrawn - Sophie Herold + * Translations updates + +gnome-clocks 43.alpha +=================== + * Build against either geocode-glib-1.0 or geocode-glib-2.0 + * Disable "Add" button by default on new timer dialog + * Fix the incorrect order of stopwatch's time label using RTL locale + * Do not match timezones on search + * Translations updates + +gnome-clocks 42.0 +=================== + * Translations updates + +gnome-clocks 42.alpha +=================== + * Codebase is now ported to GTK 4 and Libadwaita + * Translations updates + +gnome-clocks 41.0 +=================== + * Updated translations + gnome-clocks 40.beta =================== * World Location Dialog: Match HdyStatusPage styling diff --git a/README.md b/README.md index 25156895..3b24f3f2 100644 --- a/README.md +++ b/README.md @@ -9,5 +9,5 @@ a stopwatch and a timer. - Homepage: - Report issues: -- Donate: -- Translate: \ No newline at end of file +- Donate: +- Translate: diff --git a/build-aux/flatpak/org.gnome.clocks.json b/build-aux/flatpak/org.gnome.clocks.json index 1bf5e841..d0a5a730 100644 --- a/build-aux/flatpak/org.gnome.clocks.json +++ b/build-aux/flatpak/org.gnome.clocks.json @@ -3,20 +3,24 @@ "runtime": "org.gnome.Platform", "runtime-version": "master", "sdk": "org.gnome.Sdk", + "sdk-extensions": [ + "org.freedesktop.Sdk.Extension.vala-nightly" + ], "command": "gnome-clocks", "tags": ["nightly"], "finish-args": [ + "--device=dri", "--share=ipc", "--socket=fallback-x11", "--socket=wayland", "--socket=pulseaudio", "--share=network", - "--system-talk-name=org.freedesktop.GeoClue2", - "--filesystem=xdg-run/dconf", - "--filesystem=~/.config/dconf:ro", - "--talk-name=ca.desrt.dconf", - "--env=DCONF_USER_CONFIG_DIR=.config/dconf" + "--env=G_MESSAGES_DEBUG=org.gnome.ClocksDevel" ], + "build-options": { + "prepend-path": "/usr/lib/sdk/vala-nightly/bin/", + "prepend-ld-library-path": "/usr/lib/sdk/vala-nightly/lib" + }, "cleanup": ["/include", "/lib/pkgconfig", "/share/pkgconfig", "/share/aclocal", "/man", "/share/man", "/share/gtk-doc", @@ -26,7 +30,12 @@ { "name": "geocode-glib", "buildsystem": "meson", - "config-opts": [ "-Denable-installed-tests=false", "-Denable-introspection=true", "-Denable-gtk-doc=false" ], + "config-opts": [ + "-Denable-installed-tests=false", + "-Denable-introspection=true", + "-Denable-gtk-doc=false", + "-Dsoup2=false" + ], "sources": [ { "type": "git", @@ -38,13 +47,13 @@ "name": "libgweather", "buildsystem": "meson", "config-opts": [ - "-Dglade_catalog=false", "-Dgtk_doc=false" ], "sources": [ { "type": "git", - "url": "https://gitlab.gnome.org/GNOME/libgweather.git" + "url": "https://gitlab.gnome.org/GNOME/libgweather.git", + "branch": "main" } ] }, @@ -55,7 +64,9 @@ "-Ddebug_tools=false", "-Dudev=disabled", "-Dgtk_doc=false", - "-Ddesktop_docs=false" + "-Ddesktop_docs=false", + "-Dlegacy_library=false", + "-Dbuild_gtk4=true" ], "sources": [ { @@ -64,81 +75,16 @@ } ] }, - { - "name": "gsound", - "sources": [ - { - "type": "git", - "url": "https://gitlab.gnome.org/GNOME/gsound.git" - } - ], - "modules": [ - { - "name": "libcanberra", - "sources": [ - { - "type": "archive", - "url": "http://0pointer.de/lennart/projects/libcanberra/libcanberra-0.30.tar.xz", - "sha256": "c2b671e67e0c288a69fc33dc1b6f1b534d07882c2aceed37004bf48c601afa72" - } - ], - "config-opts": [ - "--disable-alsa", - "--disable-null", - "--disable-oss" - ] - } - ] - }, - { - "name": "libhandy", - "buildsystem": "meson", - "config-opts": [ - "-Dtests=false", - "-Dexamples=false", - "-Dglade_catalog=disabled" - ], - "sources": [ - { - "type": "git", - "url": "https://gitlab.gnome.org/GNOME/libhandy.git" - } - ] - }, - { - "name": "sound-theme-freedesktop", - "sources": [ - { - "type": "archive", - "url": "http://people.freedesktop.org/~mccann/dist/sound-theme-freedesktop-0.8.tar.bz2", - "sha256": "cb518b20eef05ec2e82dda1fa89a292c1760dc023aba91b8aa69bafac85e8a14" - } - ], - "modules": [ - { - "name": "intltool", - "cleanup": [ "*" ], - "sources": [ - { - "type": "archive", - "url": "https://launchpad.net/intltool/trunk/0.51.0/+download/intltool-0.51.0.tar.gz", - "sha256": "67c74d94196b153b774ab9f89b2fa6c6ba79352407037c8c14d5aeb334e959cd" - } - ] - } - ] - }, { "name": "gnome-clocks", "buildsystem": "meson", "config-opts": [ - "-Dprofile=development", - "-Ddocs=false" + "-Dprofile=development" ], "sources": [ { - "type": "git", - "url": "https://gitlab.gnome.org/GNOME/gnome-clocks.git" + "type": "dir", + "path": "../../" } ] } diff --git a/build-aux/post-install.py b/build-aux/post-install.py deleted file mode 100755 index 69d526a3..00000000 --- a/build-aux/post-install.py +++ /dev/null @@ -1,19 +0,0 @@ -#!/usr/bin/env python3 - -import os -import pathlib -import subprocess - -prefix = pathlib.Path(os.environ.get('MESON_INSTALL_PREFIX', '/usr/local')) -datadir = prefix / 'share' -destdir = os.environ.get('DESTDIR', '') - -if not destdir: - print('Compiling gsettings schemas...') - subprocess.call(['glib-compile-schemas', str(datadir / 'glib-2.0' / 'schemas')]) - - print('Updating icon cache...') - subprocess.call(['gtk-update-icon-cache', '-qtf', str(datadir / 'icons' / 'hicolor')]) - - print('Updating desktop database...') - subprocess.call(['update-desktop-database', '-q', str(datadir / 'applications')]) diff --git a/build-aux/snap/snapcraft.yaml b/build-aux/snap/snapcraft.yaml index 87248cbe..cff26785 100644 --- a/build-aux/snap/snapcraft.yaml +++ b/build-aux/snap/snapcraft.yaml @@ -15,7 +15,7 @@ layout: # Launchpad doesn't recognize these fields yet passthrough: - license: GPL-2.0+ + license: GPL-2.0-or-later title: GNOME Clocks slots: diff --git a/data/appdata/alarm-setup.png b/data/appdata/alarm-setup.png deleted file mode 100644 index 9608bbf0..00000000 Binary files a/data/appdata/alarm-setup.png and /dev/null differ diff --git a/data/appdata/alarm.png b/data/appdata/alarm.png index 9fa7f959..b2dea599 100644 Binary files a/data/appdata/alarm.png and b/data/appdata/alarm.png differ diff --git a/data/appdata/stopwatch.png b/data/appdata/stopwatch.png index c89bdd31..579421e2 100644 Binary files a/data/appdata/stopwatch.png and b/data/appdata/stopwatch.png differ diff --git a/data/appdata/timer.png b/data/appdata/timer.png index df5217da..264a8243 100644 Binary files a/data/appdata/timer.png and b/data/appdata/timer.png differ diff --git a/data/appdata/world.png b/data/appdata/world.png index d40e60da..36f80a41 100644 Binary files a/data/appdata/world.png and b/data/appdata/world.png differ diff --git a/data/css/gnome-clocks.css b/data/css/gnome-clocks.css index 3a1e5682..a8fd4d52 100644 --- a/data/css/gnome-clocks.css +++ b/data/css/gnome-clocks.css @@ -1,62 +1,18 @@ -window > stack { - background-color: mix(@theme_fg_color, @theme_bg_color, 0.95); - box-shadow: inset 0 5px 2px -6px black; -} - -window > stack:backdrop { - background-color: mix(@theme_unfocused_fg_color, @theme_unfocused_bg_color, 0.95); - box-shadow: none; -} - -label.destructive-action { - color: #e01b24; -} - /* Shared */ -.clocks-list { - margin: 18px 6px; -} - .large-button { - padding: 6px 32px; -} - -.circular.flat { - padding: 4px; -} - -.pill-button, .circular.flat { - border-radius: 9999px; - -gtk-outline-radius: 9999px; + padding: 6px; } /* alarms */ -row.snoozing { - background: transparent -gtk-icontheme("alarm-symbolic") 65% 400%/48px 48px no-repeat; - font-weight: bold; -} - -.alarm-row button, .repeats button { - min-width: 24px; - min-height: 24px; -} - -.alarm-name { - font-weight: bold; -} - .alarm-time { font-size: 2.5em; font-weight: 300; } -.alarm-repeat { - font-size: 9pt; -} - -.clocks-ampm-toggle-button { +.clocks-ampm-toggle-button, +.clocks-secondary-standalone-label { font-size: 18pt; } @@ -66,16 +22,16 @@ row.snoozing { font-weight: 300; } +.clocks-standalone-label-small { + font-size: 4.0em; + font-weight: 300; +} + .clocks-ringing-title { font-size: 1.5em; font-weight: bold; } -.clocks-secondary-standalone-label { - font-size: 18pt; -} - - .clocks-alarm-setup-time { font-size: 32pt; } @@ -87,62 +43,18 @@ row.snoozing { } .clocks-spinbutton { - font-size: 48pt; -} - -/* disguise insensitive spinbuttons as normal labels */ - -spinbutton.clocks-timer-label, -spinbutton.clocks-timer-label button, -spinbutton.clocks-timer-label entry { - border-color: transparent; - background-color: transparent; - background-image: none; - box-shadow: none; -} - -spinbutton.clocks-timer-label { - color: @theme_fg_color; + font-size: 42pt; } -spinbutton.clocks-timer-label button { - color: transparent; +.clocks-spinbutton > text { + padding: 0px 7px; } -.timer-panel .small-button { - padding: 5px 9px -} - -.timer-panel .large-button { - padding: 12px 16px; -} - -.timer-panel .timer-header { - font-size: 20pt; - font-weight: 300; -} +/* disguise insensitive spinbuttons as normal labels */ .timer-countdown { font-size: 40pt; font-weight: 300; - color: #9E9DA1; -} - -@keyframes clocks-blink { - 0% { color: #9E9DA1; } - 100% { color: #428be5; } -} - -.timer-countdown.timer-paused { - color: #9E9DA1; - animation-name: clocks-blink; - animation-iteration-count: infinite; - animation-timing-function: cubic-bezier(1.0,0,0,1.0); - animation-duration: 1s; -} - -.timer-countdown.timer-running { - color: #428be5; } /* Stopwatch Panel */ @@ -150,29 +62,22 @@ spinbutton.clocks-timer-label button { font-weight: bold; } -.negative-lap { - color: #ED333B; -} - -.positive-lap { - color: #428be5; -} - .stopped-stopwatch label, .running-stopwatch label, .paused-stopwatch label { font-size: 70px; - color: grey; font-weight: lighter; } -.stopped-stopwatch .seconds-label { +.stopped-stopwatch .seconds-label, +.running-stopwatch .seconds-label, +.paused-stopwatch .seconds-label { font-weight: 300; } .running-stopwatch .seconds-label, .running-stopwatch .miliseconds-label { - color: #428be5; + color: @accent_color; } .stopped-stopwatch .miliseconds-label, @@ -181,64 +86,39 @@ spinbutton.clocks-timer-label button { font-size: 50px; } -.running-stopwatch .seconds-label, -.paused-stopwatch .seconds-label { - font-weight: 300; -} - -.stopped-stopwatch .seconds-label, -.stopped-stopwatch .miliseconds-label, -.paused-stopwatch .seconds-label, -.paused-stopwatch .miliseconds-label { - color: black; -} - /* World */ -.clock-title { - font-size: 1.1em; -} - .clock-location { font-weight: bolder; } -.clock-desc { - font-size: 0.9em; +.hidden { + opacity: 0; } .clock-time { font-size: 2em; padding: 0.2em 0.5em; border-radius: 1em; - background: #e5a50a; - color: #000000; - font-weight: 300; - border: 1px solid rgba(0, 0, 0, 0.06); - transition: 0.4s background ease-in; } .none .clock-time { - background: #f6f5f4; + background: alpha(currentColor, 0.2); } .night .clock-time { - background: #a0a2b7; + color: @blue_4; + background-color: alpha(@blue_3, 0.25); } +.naut .clock-time, .astro .clock-time { - background: #c6adaa; -} - -.naut .clock-time { - background: #ecb89c; -} - -.civil .clock-time { - background: #FAE189; + color: @orange_5; + background-color: alpha(@orange_4, 0.25); } +.civil .clock-time, .day .clock-time { - background: #fcf7b0; + color: #ae7b03; + background: alpha(@yellow_5, 0.25); } - diff --git a/data/css/gnome-clocks.dark.css b/data/css/gnome-clocks.dark.css new file mode 100644 index 00000000..477e3c9a --- /dev/null +++ b/data/css/gnome-clocks.dark.css @@ -0,0 +1,18 @@ +.none .clock-time { + background: alpha(currentColor, 0.2); +} + +.night .clock-time { + color: @blue_1; +} + +.astro .clock-time, +.naut .clock-time { + color: @orange_1; +} + +.civil .clock-time, +.day .clock-time { + color: @yellow_2; + background: alpha(#cd9309, 0.25); +} diff --git a/data/css/gnome-clocks.highcontrast.css b/data/css/gnome-clocks.highcontrast.css index a9dad3ca..2a04b054 100644 --- a/data/css/gnome-clocks.highcontrast.css +++ b/data/css/gnome-clocks.highcontrast.css @@ -1,28 +1,3 @@ -window > stack { - background-color: @theme_bg_color; - box-shadow: none; -} - -window > stack:backdrop { - background-color: @theme_unfocused_bg_color; - box-shadow: none; -} - -label.destructive-action { - color: #e01b24; -} - -/* alarms */ - -row.snoozing { - background: transparent -gtk-icontheme("alarm-symbolic") 65% 400%/48px 48px no-repeat; - font-weight: bold; -} - -/* World */ - .clock-time { - background: transparent; - color: #000000; - font-weight: normal; + font-weight: bold; } diff --git a/data/gnome-clocks.gresource.xml b/data/gnome-clocks.gresource.xml index ad2406b1..5b2fc614 100644 --- a/data/gnome-clocks.gresource.xml +++ b/data/gnome-clocks.gresource.xml @@ -1,8 +1,9 @@ - css/gnome-clocks.css - css/gnome-clocks.highcontrast.css + css/gnome-clocks.css + css/gnome-clocks.highcontrast.css + css/gnome-clocks.dark.css gtk/help-overlay.ui ui/alarm-day-picker-row.ui ui/alarm-face.ui @@ -14,6 +15,7 @@ ui/stopwatch-laps-row.ui ui/timer-face.ui ui/timer-row.ui + ui/timer-setup-dialog.ui ui/timer-setup.ui ui/window.ui ui/world-face.ui @@ -21,12 +23,15 @@ ui/world-location-dialog-row.ui ui/world-row.ui ui/world-standalone.ui + sounds/complete.oga + sounds/alarm-clock-elapsed.oga - + gtk/icons/alarm-centered-symbolic.svg gtk/icons/globe-centered-symbolic.svg + gtk/icons/alarm-symbolic.svg gtk/icons/globe-symbolic.svg gtk/icons/stopwatch-symbolic.svg gtk/icons/timer-symbolic.svg diff --git a/data/gtk/help-overlay.ui b/data/gtk/help-overlay.ui index 6936af67..1687ac63 100644 --- a/data/gtk/help-overlay.ui +++ b/data/gtk/help-overlay.ui @@ -1,147 +1,125 @@ - - 1 + True - 1 shortcuts 10 - 1 General - 1 - F1 - Show help + win.help + Show Help - 1 - F10 - Open menu + win.show-primary-menu + Open Menu - 1 - <ctrl>question - Keyboard shortcuts + win.show-help-overlay + Keyboard Shortcuts - 1 - <ctrl>Q + app.quit Quit - 1 - <ctrl><alt>Page_Down - Go to the next section + win.navigate-forward + Go to the Next Section - 1 - <ctrl><alt>Page_Up - Go to the previous section + win.navigate-backward + Go to the Previous Section - 1 <alt>1 - Go to the World section + Go to the World Section - 1 <alt>2 - Go to the Alarms section + Go to the Alarms Section - 1 <alt>3 - Go to the Stopwatch section + Go to the Stopwatch Section - 1 <alt>4 - Go to the Timer section + Go to the Timer Section - 1 ClocksWorldFace World Clocks - 1 - <ctrl>N - Add a world clock + win.new + Add a World Clock - 1 ClocksAlarmFace Alarm - 1 - <ctrl>N - Add an alarm + win.new + Add an Alarm - 1 ClocksStopwatchFace Stopwatch - 1 Escape - Stop / Reset + Pause All - 1 ClocksTimerFace Timer - 1 Escape Reset - 1 - <primary>N + win.new New Timer diff --git a/data/gtk/icons/alarm-centered-symbolic.svg b/data/gtk/icons/alarm-centered-symbolic.svg index c154fdea..cd2c406f 100644 --- a/data/gtk/icons/alarm-centered-symbolic.svg +++ b/data/gtk/icons/alarm-centered-symbolic.svg @@ -1,112 +1,313 @@ + id="svg121" + sodipodi:docname="alarm-centered-symbolic.svg" + inkscape:version="1.1.1 (3bf5ae0d25, 2021-09-20)" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg"> + + inkscape:window-height="1011" + inkscape:window-x="0" + inkscape:window-y="0" + inkscape:window-maximized="1" + inkscape:current-layer="svg121"> + type="xygrid" + id="grid942" /> - - - - image/svg+xml - - Gnome Symbolic Icon Theme - - - - Gnome Symbolic Icon Theme - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + clip-path="url(#c)" + mask="url(#b)" + transform="matrix(1 0 0 1 -620 -300)" + id="g79"> + + + fill="#2e3436" + id="g87" + transform="matrix(0.99991007,0,0,0.9985597,0.50067447,-0.49797595)"> + d="M 7.5,3 C 3.921875,3 1,5.921875 1,9.5 c 0,1.6875 0.65625,3.222656 1.71875,4.382812 L 2.300781,14.28125 c -0.261719,0.25 -0.367187,0.621094 -0.28125,0.96875 0.085938,0.351562 0.355469,0.628906 0.703125,0.722656 0.347656,0.09766 0.71875,0 0.976563,-0.253906 L 4.289062,15.140625 C 5.238281,15.683594 6.332031,16 7.5,16 c 1.183594,0 2.296875,-0.324219 3.253906,-0.886719 l 0.507813,0.558594 c 0.234375,0.277344 0.601562,0.402344 0.960937,0.328125 0.355469,-0.07422 0.644532,-0.335938 0.753906,-0.683594 0.105469,-0.347656 0.01563,-0.726562 -0.238281,-0.988281 L 12.308594,13.851562 C 13.355469,12.695312 14,11.171875 14,9.5 14,5.921875 11.078125,3 7.5,3 Z m 0,2 C 9.996094,5 12,7.003906 12,9.5 12,11.996094 9.996094,14 7.5,14 5.003906,14 3,11.996094 3,9.5 3,7.003906 5.003906,5 7.5,5 Z M 7.492188,5.992188 C 7.214844,5.996094 6.996094,6.222656 7,6.5 V 9 H 5.5 C 5.320312,8.996094 5.152344,9.09375 5.0625,9.246094 4.96875,9.402344 4.96875,9.597656 5.0625,9.753906 5.152344,9.90625 5.320312,10.003906 5.5,10 h 2 C 7.777344,10 8,9.777344 8,9.5 v -3 C 8.003906,6.363281 7.949219,6.234375 7.855469,6.136719 7.757812,6.042969 7.628906,5.988281 7.492188,5.992188 Z m 0,0" + id="path81" /> + d="M 2.109375,1.421875 C 0.964844,2.1875 0.652344,3.742188 1.421875,4.890625 l 4.15625,-2.78125 C 4.8125,0.964844 3.257812,0.652344 2.109375,1.421875 Z m 0,0" + id="path83" /> + + + + + + + d="m 17 747 h 1 v 1 h -1 z m 0 0" + fill="#2e3436" + fill-rule="evenodd" + id="path93" /> + + + d="m 18 750 h 1 v 1 h -1 z m 0 0" + fill="#2e3436" + fill-rule="evenodd" + id="path97" /> + + + d="m 16 750 h 1 v 1 h -1 z m 0 0" + fill="#2e3436" + fill-rule="evenodd" + id="path101" /> + clip-path="url(#m)" + mask="url(#l)" + transform="matrix(1 0 0 1 -620 -300)" + id="g107"> + + + clip-path="url(#o)" + mask="url(#n)" + transform="matrix(1 0 0 1 -620 -300)" + id="g111"> + + + clip-path="url(#q)" + mask="url(#p)" + transform="matrix(1 0 0 1 -620 -300)" + id="g115"> + + + clip-path="url(#s)" + mask="url(#r)" + transform="matrix(1 0 0 1 -620 -300)" + id="g119"> + + diff --git a/data/gtk/icons/alarm-symbolic.svg b/data/gtk/icons/alarm-symbolic.svg new file mode 100644 index 00000000..b9ee073c --- /dev/null +++ b/data/gtk/icons/alarm-symbolic.svg @@ -0,0 +1,2 @@ + + diff --git a/data/gtk/icons/globe-centered-symbolic.svg b/data/gtk/icons/globe-centered-symbolic.svg index c0bd12d0..2bd6fca9 100644 --- a/data/gtk/icons/globe-centered-symbolic.svg +++ b/data/gtk/icons/globe-centered-symbolic.svg @@ -1,114 +1,303 @@ + id="svg115" + sodipodi:docname="globe-centered-symbolic.svg" + inkscape:version="1.1.1 (3bf5ae0d25, 2021-09-20)" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg"> + + inkscape:window-height="1011" + inkscape:window-x="0" + inkscape:window-y="0" + inkscape:window-maximized="1" + inkscape:current-layer="svg115"> + type="xygrid" + id="grid936" /> - - - - image/svg+xml - - Gnome Symbolic Icon Theme - - - - Gnome Symbolic Icon Theme - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + clip-path="url(#c)" + mask="url(#b)" + transform="matrix(1 0 0 1 -680 -40)" + id="g79"> + d="m 562.460938 212.058594 h 10.449218 c -1.183594 0.492187 -1.296875 2.460937 0 3 h -10.449218 z m 0 0" + fill="#2e3436" + id="path77" /> + + + + d="m 16 748 h 1 v 1 h -1 z m 0 0" + fill="#2e3436" + fill-rule="evenodd" + id="path83" /> + + + d="m 17 747 h 1 v 1 h -1 z m 0 0" + fill="#2e3436" + fill-rule="evenodd" + id="path87" /> + + + d="m 18 750 h 1 v 1 h -1 z m 0 0" + fill="#2e3436" + fill-rule="evenodd" + id="path91" /> + clip-path="url(#k)" + mask="url(#j)" + transform="matrix(1 0 0 1 -680 -40)" + id="g97"> + + + clip-path="url(#m)" + mask="url(#l)" + transform="matrix(1 0 0 1 -680 -40)" + id="g101"> + + + clip-path="url(#o)" + mask="url(#n)" + transform="matrix(1 0 0 1 -680 -40)" + id="g105"> + + + clip-path="url(#q)" + mask="url(#p)" + transform="matrix(1 0 0 1 -680 -40)" + id="g109"> + + + clip-path="url(#s)" + mask="url(#r)" + transform="matrix(1 0 0 1 -680 -40)" + id="g113"> + + diff --git a/data/gtk/icons/globe-symbolic.svg b/data/gtk/icons/globe-symbolic.svg index 12744628..7af77ff1 100644 --- a/data/gtk/icons/globe-symbolic.svg +++ b/data/gtk/icons/globe-symbolic.svg @@ -1,86 +1,2 @@ - - - - - - image/svg+xml - - Gnome Symbolic Icon Theme - - - - Gnome Symbolic Icon Theme - - - - - - - - - - - - - - - - - - - + + diff --git a/data/gtk/icons/stopwatch-symbolic.svg b/data/gtk/icons/stopwatch-symbolic.svg index 3e567db1..551442e4 100644 --- a/data/gtk/icons/stopwatch-symbolic.svg +++ b/data/gtk/icons/stopwatch-symbolic.svg @@ -1,80 +1,2 @@ - - - - - - image/svg+xml - - Gnome Symbolic Icon Theme - - - - Gnome Symbolic Icon Theme - - - - - - - - - - - - - - - - - + + diff --git a/data/gtk/icons/timer-symbolic.svg b/data/gtk/icons/timer-symbolic.svg index f95aed6e..49971763 100644 --- a/data/gtk/icons/timer-symbolic.svg +++ b/data/gtk/icons/timer-symbolic.svg @@ -1,88 +1,2 @@ - - - - - - image/svg+xml - - Gnome Symbolic Icon Theme - - - - Gnome Symbolic Icon Theme - - - - - - - - - - - - - - - - - - - + + diff --git a/data/meson.build b/data/meson.build index c0817fd5..1b2c1aaf 100644 --- a/data/meson.build +++ b/data/meson.build @@ -18,21 +18,19 @@ resources = gnome.compile_resources('org.gnome.clocks', resource_files, desktop_conf = configuration_data() desktop_conf.set('icon', app_id) -desktop_file = custom_target('desktop-file', +desktop_file = i18n.merge_file( + type: 'desktop', input: configure_file( input: 'org.gnome.clocks.desktop.in.in', output: '@BASENAME@', configuration: desktop_conf ), output: '@0@.desktop'.format(app_id), + po_dir: podir, install: true, - install_dir: join_paths(get_option('datadir'), 'applications'), - command: [msgfmt, '--desktop', - '--template', '@INPUT@', '-d', podir, '-o', '@OUTPUT@', - '--keyword=X-GNOME-FullName', '--keyword=X-Geoclue-Reason', - '--keyword=Name', '--keyword=GenericName', '--keyword=Comment', '--keyword=Keywords' - ] + install_dir: join_paths(get_option('datadir'), 'applications') ) + # Validate Desktop file desktop_file_validate = find_program('desktop-file-validate', required: false) if desktop_file_validate.found() @@ -46,6 +44,15 @@ if desktop_file_validate.found() endif +desktop_daemon_file = i18n.merge_file( + input : 'org.gnome.clocks-daemon.desktop.in', + output : '@0@-daemon.desktop'.format(app_id), + type : 'desktop', + po_dir : '../po', + install : true, + install_dir : join_paths(get_option('sysconfdir'), 'xdg/autostart') +) + dbusconf = configuration_data() dbusconf.set('bindir', join_paths(get_option('prefix'), get_option('bindir'))) dbusconf.set('name', app_id) @@ -72,12 +79,12 @@ metainfo_file = i18n.merge_file ( ) # Validate metainfo -appstream_util = find_program('appstream-util', required: false) -if appstream_util.found() +appstreamcli = find_program('appstreamcli', required: false) +if appstreamcli.found() test( - 'validate-metainfo', appstream_util, + 'validate-metainfo', appstreamcli, args: [ - 'validate', '--nonet', metainfo_file.full_path() + 'validate', '--no-net', '--explain', metainfo_file.full_path() ] ) endif @@ -113,4 +120,3 @@ if glib_compile_schemas.found() ] ) endif - diff --git a/data/org.gnome.Clocks.Source.svg b/data/org.gnome.Clocks.Source.svg new file mode 100644 index 00000000..8b44c902 --- /dev/null +++ b/data/org.gnome.Clocks.Source.svg @@ -0,0 +1,971 @@ + + + + + Adwaita Icon Template + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + GNOME Design Team + + + + + Adwaita Icon Template + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/data/org.gnome.clocks-daemon.desktop.in b/data/org.gnome.clocks-daemon.desktop.in new file mode 100644 index 00000000..49187ca2 --- /dev/null +++ b/data/org.gnome.clocks-daemon.desktop.in @@ -0,0 +1,16 @@ +[Desktop Entry] +Name=Clocks +GenericName=Clocks +X-GNOME-FullName=GNOME Clocks +Comment=Clocks for world times, plus alarms, stopwatch and a timer +# Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon! +Keywords=time;timer;alarm;world clock;stopwatch;time zone; +Exec=gnome-clocks --hidden +# Translators: Do NOT translate or transliterate this text (this is an icon file name)! +Icon=@icon@ +Terminal=false +Type=Application +Categories=GNOME;GTK;Utility;Clock; +StartupNotify=false +NoDisplay=true +X-GNOME-AutoRestart=true diff --git a/data/org.gnome.clocks.desktop.in.in b/data/org.gnome.clocks.desktop.in.in index af1651f7..be92180f 100644 --- a/data/org.gnome.clocks.desktop.in.in +++ b/data/org.gnome.clocks.desktop.in.in @@ -1,7 +1,6 @@ [Desktop Entry] Name=Clocks GenericName=Clocks -X-GNOME-FullName=GNOME Clocks Comment=Clocks for world times, plus alarms, stopwatch and a timer # Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon! Keywords=time;timer;alarm;world clock;stopwatch;time zone; @@ -17,3 +16,5 @@ X-GNOME-UsesNotifications=true X-Geoclue-Reason=Allows world clocks to be displayed for your time zone. # Translators: Do NOT translate or transliterate this text (these are enum types)! X-Purism-FormFactor=Workstation;Mobile; +# Translators: Do NOT translate or transliterate this text (these are action names)! +X-Phosh-Lockscreen-Actions=app.stop-alarm::;app.snooze-alarm::; diff --git a/data/org.gnome.clocks.gschema.xml.in b/data/org.gnome.clocks.gschema.xml.in index 6b61579b..b4b2cde4 100644 --- a/data/org.gnome.clocks.gschema.xml.in +++ b/data/org.gnome.clocks.gschema.xml.in @@ -39,11 +39,11 @@ - - 0 - Window state + + false + Window maximized - State of the window, e.g. maximized. + Whether the window is maximized. diff --git a/data/org.gnome.clocks.metainfo.xml.in.in b/data/org.gnome.clocks.metainfo.xml.in.in index e6e3ed7c..555f426e 100644 --- a/data/org.gnome.clocks.metainfo.xml.in.in +++ b/data/org.gnome.clocks.metainfo.xml.in.in @@ -1,16 +1,15 @@ - @appid@.desktop + @appid@ CC0-1.0 - GPL-2.0 - GNOME Clocks - Clocks for world times, plus alarms, stopwatch and a timer + GPL-2.0-or-later + Clocks + Keep track of time

A simple and elegant clock application. - It includes world clocks, alarms, a stopwatch and a timer. + It includes world clocks, alarms, a stopwatch, and timers.

-

Goals:

  • Show the time in different cities around the world
  • Set alarms to wake you up
  • @@ -26,6 +25,14 @@ SearchProvider UserDocs + + keyboard + pointing + touch + + + 360 + https://gitlab.gnome.org/GNOME/gnome-clocks/raw/master/data/appdata/world.png @@ -35,10 +42,6 @@ https://gitlab.gnome.org/GNOME/gnome-clocks/raw/master/data/appdata/alarm.png Alarms screen - - https://gitlab.gnome.org/GNOME/gnome-clocks/raw/master/data/appdata/alarm-setup.png - Alarms setup - https://gitlab.gnome.org/GNOME/gnome-clocks/raw/master/data/appdata/stopwatch.png Stopwatch screen @@ -49,6 +52,65 @@ + + +

    A new release candidate of Clocks

    +
      +
    • Add mnemonic to Start button
    • +
    • Disable alarm after ringing when not set to repeat
    • +
    • Fix countdown timer progress during suspend
    • +
    • Fix resume bug on clear button pressed
    • +
    • Fix sorting of locations
    • +
    • Improve app metainfo for AppStream 1.0
    • +
    • Show a toast when a new alarm is set
    • +
    • Translations updates
    • +
    +
    +
    + + +

    A new release of Clocks

    +
      +
    • Port to new libadwaita widgets, including breakpoints
    • +
    • Bundle bell sounds
    • +
    • GNOME Shell search provider performance improvements
    • +
    • Improve location matching by normalizing location search strings
    • +
    • Replace deprecated code paths
    • +
    • Use xdg-desktop-portal to get system clock format
    • +
    • Translation updates
    • +
    +
    +
    + + +

    A new release of Clocks

    +
      +
    • Display seconds in the world clock detail view
    • +
    • Reset snooze time when disabling alarms
    • +
    • Add mnemonics to the view switcher
    • +
    • Say ahead/behind instead of later/earlier
    • +
    • Fix button layout in the timer view
    • +
    • Add missing ellipses to button labels
    • +
    • Remove an incorrect tooltip
    • +
    • Help fixes
    • +
    • Translations updates
    • +
    +
    +
    + + + +

    GTK 4 / libadwaita port

    +
    +
    + + +

    A new release of Clocks

    +
      +
    • Translations updates
    • +
    +
    +

    A new release of Clocks

    @@ -95,18 +157,24 @@
    - https://wiki.gnome.org/Apps/Clocks + https://apps.gnome.org/Clocks/ + https://welcome.gnome.org/app/Clocks/ https://gitlab.gnome.org/GNOME/gnome-clocks/issues - http://www.gnome.org/friends/ + https://www.gnome.org/donate/ https://help.gnome.org/users/gnome-clocks/stable/ - pborelli@gnome.org + https://l10n.gnome.org/module/gnome-clocks/ + https://gitlab.gnome.org/GNOME/gnome-clocks @appid@.desktop + The GNOME Project + + The GNOME Project + GNOME gnome-clocks - workstation mobile + [(63, 57, 71)] diff --git a/data/sounds/alarm-clock-elapsed.oga b/data/sounds/alarm-clock-elapsed.oga new file mode 100644 index 00000000..a253702a Binary files /dev/null and b/data/sounds/alarm-clock-elapsed.oga differ diff --git a/data/sounds/complete.oga b/data/sounds/complete.oga new file mode 100644 index 00000000..7d34954d Binary files /dev/null and b/data/sounds/complete.oga differ diff --git a/data/ui/alarm-day-picker-row.ui b/data/ui/alarm-day-picker-row.ui index 9313f181..82260753 100644 --- a/data/ui/alarm-day-picker-row.ui +++ b/data/ui/alarm-day-picker-row.ui @@ -1,24 +1,31 @@ -