From 48c49fca60da46c8066e7e8dc8e202b055ff665b Mon Sep 17 00:00:00 2001 From: Claudio Cambra Date: Tue, 8 Aug 2023 17:27:11 +0800 Subject: [PATCH] Customise locale default date format to ensure we eliminate issues parsing two-digit year strings Signed-off-by: Claudio Cambra --- src/gui/filedetails/datefieldbackend.cpp | 21 ++++++++++++++++++--- src/gui/filedetails/datefieldbackend.h | 4 +++- 2 files changed, 21 insertions(+), 4 deletions(-) diff --git a/src/gui/filedetails/datefieldbackend.cpp b/src/gui/filedetails/datefieldbackend.cpp index 0764ac2e1..8377afad9 100644 --- a/src/gui/filedetails/datefieldbackend.cpp +++ b/src/gui/filedetails/datefieldbackend.cpp @@ -15,12 +15,28 @@ #include "datefieldbackend.h" #include +#include namespace OCC { namespace Quick { +DateFieldBackend::DateFieldBackend(QObject *const parent) + : QObject(parent) +{ + // Ensure the date format is for a full year. QLocale::ShortFormat often + // provides a short year format that is only two years, which is an absolute + // pain to work with -- ensure instead we have the full, unambiguous year + _dateFormat = QLocale::system().dateFormat(QLocale::ShortFormat); + // Check for specifically two y's, no more and no fewer, within format date + const QRegularExpression re("(?