diff options
author | Eugene San (eugenesan) <[email protected]> | 2021-06-06 07:50:26 -0700 |
---|---|---|
committer | raveit65 <[email protected]> | 2021-07-24 16:17:58 +0200 |
commit | a7a0c1cc6f76b2c5d844bbbd32dad70d4f7473e8 (patch) | |
tree | 32b2cd095af4520f645c577fdfb704ed2c42febe /src | |
parent | 7ffbcab9ca98bddef8bc5170210aa9a9dacf13dd (diff) | |
download | mate-screensaver-a7a0c1cc6f76b2c5d844bbbd32dad70d4f7473e8.tar.bz2 mate-screensaver-a7a0c1cc6f76b2c5d844bbbd32dad70d4f7473e8.tar.xz |
Allow change of time and date formats on lock screen v4
Diffstat (limited to 'src')
-rw-r--r-- | src/gs-lock-plug.c | 42 |
1 files changed, 39 insertions, 3 deletions
diff --git a/src/gs-lock-plug.c b/src/gs-lock-plug.c index 7d223c8..5e09f9c 100644 --- a/src/gs-lock-plug.c +++ b/src/gs-lock-plug.c @@ -59,6 +59,10 @@ #define KEY_LOCK_DIALOG_THEME "lock-dialog-theme" +#define KEY_LOCK_DIALOG_T_FMT "lock-dialog-time-format" +#define KEY_LOCK_DIALOG_D_FMT "lock-dialog-date-format" + + #define MDM_FLEXISERVER_COMMAND "mdmflexiserver" #define MDM_FLEXISERVER_ARGS "--startnew Standard" @@ -294,12 +298,42 @@ date_time_update (GSLockPlug *plug) GDateTime *datetime; gchar *time; gchar *date; + gchar *tfmt; + gchar *dfmt; + gchar *str; + GSettings *settings; + + settings = g_settings_new (GSETTINGS_SCHEMA); + tfmt = g_settings_get_string (settings, KEY_LOCK_DIALOG_T_FMT); + dfmt = g_settings_get_string (settings, KEY_LOCK_DIALOG_D_FMT); + g_object_unref (settings); + + /* Time/Date formating https://developer.gnome.org/glib/stable/glib-GDateTime.html#g-date-time-format */ + datetime = g_date_time_new_now_local (); - time = g_date_time_format (datetime, "%X"); - /* Translators: Date format, see https://developer.gnome.org/glib/stable/glib-GDateTime.html#g-date-time-format */ - date = g_date_time_format (datetime, _("%A, %B %e")); + if (g_strcmp0(tfmt, "locale") == 0) + { + // Use locale default format + time = g_date_time_format (datetime, "%X"); + } + else + { + // Apply user defined format + time = g_date_time_format (datetime, tfmt); + } + + if (g_strcmp0(dfmt, "locale") == 0) + { + // Use locale default format + date = g_date_time_format (datetime, _("%A, %B %e")); + } + else + { + // Apply user defined format + date = g_date_time_format (datetime, dfmt); + } str = g_strdup_printf ("<span size=\"xx-large\" weight=\"ultrabold\">%s</span>", time); gtk_label_set_text (GTK_LABEL (plug->priv->auth_time_label), str); @@ -313,6 +347,8 @@ date_time_update (GSLockPlug *plug) g_free (time); g_free (date); + g_free (tfmt); + g_free (dfmt); g_date_time_unref (datetime); } |