diff --git a/CMakeLists.txt b/CMakeLists.txt index a0daf08f4..55f3f8821 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -126,7 +126,7 @@ endif() # Optional: GnomeKeyring find_package(PkgConfig) if (PKG_CONFIG_FOUND) - option(BUILD_KEYRING "Gnome keyring password plugin" OFF) + option(BUILD_KEYRING "Gnome keyring password plugin" ON) if (BUILD_KEYRING) pkg_check_modules(GNOME_KEYRING IMPORTED_TARGET gnome-keyring-1 ) endif() diff --git a/src/plugins/GnomeKeyringPasswords/gnomekeyringpasswordbackend.cpp b/src/plugins/GnomeKeyringPasswords/gnomekeyringpasswordbackend.cpp index e027b319a..8f7b2fa92 100644 --- a/src/plugins/GnomeKeyringPasswords/gnomekeyringpasswordbackend.cpp +++ b/src/plugins/GnomeKeyringPasswords/gnomekeyringpasswordbackend.cpp @@ -24,6 +24,17 @@ extern "C" { #include "gnome-keyring.h" } +// TODO QT6 - should we just start storing timestamps as 64-bit instead? +static uint Q_DATETIME_TOTIME_T(const QDateTime &dateTime) +{ + if (!dateTime.isValid()) + return uint(-1); + qint64 retval = dateTime.toMSecsSinceEpoch() / 1000; + if (quint64(retval) >= Q_UINT64_C(0xFFFFFFFF)) + return uint(-1); + return uint(retval); +} + static PasswordEntry createEntry(GnomeKeyringFound* item) { PasswordEntry entry; @@ -141,7 +152,7 @@ void GnomeKeyringPasswordBackend::addEntry(const PasswordEntry &entry) initialize(); PasswordEntry stored = entry; - stored.updated = QDateTime::currentDateTime().toTime_t(); + stored.updated = Q_DATETIME_TOTIME_T(QDateTime::currentDateTime()); storeEntry(stored); @@ -201,7 +212,7 @@ void GnomeKeyringPasswordBackend::updateLastUsed(PasswordEntry &entry) { initialize(); - entry.updated = QDateTime::currentDateTime().toTime_t(); + entry.updated = Q_DATETIME_TOTIME_T(QDateTime::currentDateTime()); GnomeKeyringAttributeList* attributes = createAttributes(entry);