diff --git a/src/core/Resources.cpp b/src/core/Resources.cpp index ad1ff5fa0..2f99c9349 100644 --- a/src/core/Resources.cpp +++ b/src/core/Resources.cpp @@ -153,6 +153,15 @@ QIcon Resources::icon(const QString& name, bool recolor, const QColor& overrideC return icon; } + // Resetting the application theme name before calling QIcon::fromTheme() is required for hacky + // QPA platform themes such as qt5ct, which randomly mess with the configured icon theme. + // If we do not reset the theme name here, it will become empty at some point, causing + // Qt to look for icons at the user-level and global default locations. + // + // See issue #4963: https://github.com/keepassxreboot/keepassxc/issues/4963 + // and qt5ct issue #80: https://sourceforge.net/p/qt5ct/tickets/80/ + QIcon::setThemeName("application"); + icon = QIcon::fromTheme(name); if (getMainWindow() && recolor) { QImage img = icon.pixmap(128, 128).toImage().convertToFormat(QImage::Format_ARGB32_Premultiplied); diff --git a/src/keys/drivers/YubiKey.cpp b/src/keys/drivers/YubiKey.cpp index d64452f3e..7feeec89f 100644 --- a/src/keys/drivers/YubiKey.cpp +++ b/src/keys/drivers/YubiKey.cpp @@ -176,7 +176,7 @@ void YubiKey::findValidKeys() bool wouldBlock; QList> ykSlots; for (int slot = 1; slot <= 2; ++slot) { - auto config = (i == 1 ? CONFIG1_VALID : CONFIG2_VALID); + auto config = (slot == 1 ? CONFIG1_VALID : CONFIG2_VALID); if (!(ykds_touch_level(st) & config)) { // Slot is not configured continue;