diff options
Diffstat (limited to 'src/core/utils/GpgUtils.cpp')
-rw-r--r-- | src/core/utils/GpgUtils.cpp | 19 |
1 files changed, 19 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 |