From fe900a41bf809b263f05d5df21b6ed7fbfb2bbbc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ingo=20Kl=C3=B6cker?= Date: Thu, 4 Mar 2021 17:35:57 +0100 Subject: qt: Add method for getting config entries for components by entry name * lang/qt/src/cryptoconfig.h, lang/qt/src/cryptoconfig.cpp (CryptoConfig::entry): Move implementation to cpp. Add overload not requiring a group name. -- The group name is not needed for identifying a config entry because the groups only provide a logical grouping of config entry for user interfaces. To improve usability entries are sometimes moved to a different group, but this shouldn't break existing applications trying to access those entries. The new group-agnostic overload makes applications robust against regrouping of config entries. GnuPG-bug-id: 5217 --- lang/qt/src/cryptoconfig.cpp | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'lang/qt/src/cryptoconfig.cpp') diff --git a/lang/qt/src/cryptoconfig.cpp b/lang/qt/src/cryptoconfig.cpp index 71212200..d52dce73 100644 --- a/lang/qt/src/cryptoconfig.cpp +++ b/lang/qt/src/cryptoconfig.cpp @@ -43,3 +43,23 @@ QStringList CryptoConfigEntry::stringValueList() const } return entry->stringValueList(); } + +QGpgME::CryptoConfigEntry *CryptoConfig::entry(const QString &componentName, const QString &entryName) const +{ + const CryptoConfigComponent *comp = component(componentName); + const QStringList groupNames = comp->groupList(); + for (const auto &groupName : groupNames) { + const CryptoConfigGroup *group = comp ? comp->group(groupName) : nullptr; + if (CryptoConfigEntry *entry = group->entry(entryName)) { + return entry; + } + } + return nullptr; +} + +QGpgME::CryptoConfigEntry *CryptoConfig::entry(const QString &componentName, const QString &groupName, const QString &entryName) const +{ + const CryptoConfigComponent *comp = component(componentName); + const CryptoConfigGroup *group = comp ? comp->group(groupName) : nullptr; + return group ? group->entry(entryName) : nullptr; +} -- cgit v1.2.3