Skip to content

is_12h: Make Granite use defaults from desktop settings #525

@marbetschar

Description

@marbetschar

Problem

There are quite a lot of places on the desktop where we'd like to display a time to the user. To use the correct format we can use Granite.DateTime.get_default_time_format.

However, this function does not provide a reasonable default value for its is_12h argument because its hard coded. But in user facing cases we want to respect the time setting of the user so there are a bunch of cases where we need to retrieve the setting and pass the correct value to Granite. Namely Tasks, Calendar and Mail - potentially others:

https://github.com/search?q=org%3Aelementary+get_default_time_format&type=code

Proposal

The example above is specific to one case, but maybe there are other similar things I'm missing here? If there is more to this than the 24h time format, then it would be beneficial to tell granite it should use the user settings instead of having them hard wired in the code. If the 24h time format is the only one, then it would be great to have its default set to whatever the user is expecting.

Prior Art

  • I've seen there is Granite.Settings - but I'm not sure if that can be used for this case: https://valadoc.org/granite/Granite.Settings.html
  • Granite itself already implements a (private) helper function for detecting the right default value for the 24h format:

    granite/lib/DateTime.vala

    Lines 98 to 102 in 7190ee8

    private static bool is_clock_format_12h () {
    var h24_settings = new GLib.Settings ("org.gnome.desktop.interface");
    var format = h24_settings.get_string ("clock-format");
    return (format.contains ("12h"));
    }

Metadata

Metadata

Assignees

No one assigned

    Labels

    Needs DesignWaiting for input from the UX teamPriority: WishlistNot a bug; but a new feature or enhancement

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions