diff options
-rw-r--r-- | src/core/utils/GpgUtils.cpp | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/core/utils/GpgUtils.cpp b/src/core/utils/GpgUtils.cpp index 7098e47a..5ca10618 100644 --- a/src/core/utils/GpgUtils.cpp +++ b/src/core/utils/GpgUtils.cpp @@ -462,10 +462,13 @@ auto GPGFRONTEND_CORE_EXPORT DecidePinentry() -> QString { QStringList preferred_list = {"pinentry-gnome3", "pinentry-qt" "pinentry-gtk2"}; + QStringList search_paths = {"/bin", "/usr/bin", "/usr/local/bin"} #elif defined(__APPLE__) && defined(__MACH__) QStringList preferred_list = {"pinentry-mac", "pinentry-qt"}; + QStringList search_paths = {"/opt/homebrew/bin", "/usr/local/bin"}; #else QStringList preferred_list = {"pinentry-qt"}; + QStringList search_paths = {}; #endif if (IsFlatpakENV()) { @@ -480,6 +483,15 @@ auto GPGFRONTEND_CORE_EXPORT DecidePinentry() -> QString { } } + if (search_paths.isEmpty()) return {}; + + for (const QString& name : preferred_list) { + QString path = QStandardPaths::findExecutable(name, search_paths); + if (!path.isEmpty()) { + return path; + } + } + return {}; } } // namespace GpgFrontend |