From 0a3cfebd9963494c9cc59dff9adaca504cff17e3 Mon Sep 17 00:00:00 2001 From: Jonathan White Date: Fri, 27 Dec 2024 17:09:01 -0500 Subject: [PATCH] Show Auto-Type select dialog even if window title is empty * Fixes #11597 --- src/autotype/AutoType.cpp | 45 +++++++++++++++++---------------------- 1 file changed, 20 insertions(+), 25 deletions(-) diff --git a/src/autotype/AutoType.cpp b/src/autotype/AutoType.cpp index e87357aa36..17373b142e 100644 --- a/src/autotype/AutoType.cpp +++ b/src/autotype/AutoType.cpp @@ -434,38 +434,33 @@ void AutoType::startGlobalAutoType(const QString& search) */ void AutoType::performGlobalAutoType(const QList>& dbList, const QString& search) { - if (!m_plugin) { - return; - } - - if (!m_inGlobalAutoTypeDialog.tryLock()) { - return; - } - - if (m_windowTitleForGlobal.isEmpty()) { - m_inGlobalAutoTypeDialog.unlock(); + if (!m_plugin || !m_inGlobalAutoTypeDialog.tryLock()) { return; } QList matchList; - bool hideExpired = config()->get(Config::AutoTypeHideExpiredEntry).toBool(); - - for (const auto& db : dbList) { - const QList dbEntries = db->rootGroup()->entriesRecursive(); - for (auto entry : dbEntries) { - auto group = entry->group(); - if (!group || !group->resolveAutoTypeEnabled() || !entry->autoTypeEnabled()) { - continue; - } + // Generate entry/sequence match list if there is a valid window title + if (!m_windowTitleForGlobal.isEmpty()) { + bool hideExpired = config()->get(Config::AutoTypeHideExpiredEntry).toBool(); + for (const auto& db : dbList) { + const QList dbEntries = db->rootGroup()->entriesRecursive(); + for (auto entry : dbEntries) { + auto group = entry->group(); + if (!group || !group->resolveAutoTypeEnabled() || !entry->autoTypeEnabled()) { + continue; + } - if (hideExpired && entry->isExpired()) { - continue; - } - const QSet sequences = Tools::asSet(entry->autoTypeSequences(m_windowTitleForGlobal)); - for (const auto& sequence : sequences) { - matchList << AutoTypeMatch(entry, sequence); + if (hideExpired && entry->isExpired()) { + continue; + } + const QSet sequences = Tools::asSet(entry->autoTypeSequences(m_windowTitleForGlobal)); + for (const auto& sequence : sequences) { + matchList << AutoTypeMatch(entry, sequence); + } } } + } else { + qWarning() << "Auto-Type: Window title was empty from the operating system"; } // Show the selection dialog if we always ask, have multiple matches, or no matches