diff options
Diffstat (limited to 'src/core/utils')
-rw-r--r-- | src/core/utils/GpgUtils.cpp | 19 | ||||
-rw-r--r-- | src/core/utils/GpgUtils.h | 6 |
2 files changed, 25 insertions, 0 deletions
diff --git a/src/core/utils/GpgUtils.cpp b/src/core/utils/GpgUtils.cpp index 13f6ef05..8b2abeb7 100644 --- a/src/core/utils/GpgUtils.cpp +++ b/src/core/utils/GpgUtils.cpp @@ -456,4 +456,23 @@ auto GPGFRONTEND_CORE_EXPORT CheckGpgVersion(int channel, return true; } + +auto GPGFRONTEND_CORE_EXPORT DecidePinentry() -> QString { +#ifdef __linux__ + QStringList preferred_list = {"pinentry-gnome3", + "pinentry-qt" + "pinentry-gtk2"}; +#else + QStringList preferred_list = {"pinentry-qt"}; +#endif + + for (const QString& name : preferred_list) { + QString path = QStandardPaths::findExecutable(name); + if (!path.isEmpty()) { + return path; + } + } + + return {}; +} } // namespace GpgFrontend diff --git a/src/core/utils/GpgUtils.h b/src/core/utils/GpgUtils.h index d0fe1701..f005bbfc 100644 --- a/src/core/utils/GpgUtils.h +++ b/src/core/utils/GpgUtils.h @@ -221,4 +221,10 @@ auto GPGFRONTEND_CORE_EXPORT GpgAgentVersionGreaterThan(int channel, auto GPGFRONTEND_CORE_EXPORT CheckGpgVersion(int channel, const QString&) -> bool; +/** + * @brief + * + * @return QString + */ +auto GPGFRONTEND_CORE_EXPORT DecidePinentry() -> QString; } // namespace GpgFrontend
\ No newline at end of file |