feat: add search engine selection and context menu search functionality (#6743)

Reviewed-by: pajlada <rasmus.karlsson@pajlada.com>
This commit is contained in:
leafyzito
2026-01-24 15:31:39 -01:00
committed by GitHub
parent f2c4c63d59
commit 2dbed2f03d
4 changed files with 107 additions and 0 deletions
+20
View File
@@ -66,6 +66,7 @@
#include <QPainter>
#include <QScreen>
#include <QStringBuilder>
#include <QUrl>
#include <QVariantAnimation>
#include <algorithm>
@@ -2710,6 +2711,25 @@ void ChannelView::addMessageContextMenuItems(QMenu *menu,
}
}
// Add search action when text is selected and search feature is enabled
if (!this->selection_.isEmpty() && getSettings()->searchEnabled.getValue())
{
QString searchURL = getSettings()->searchEngineUrl.getValue();
QString searchName = getSettings()->searchEngineName.getValue();
if (!searchURL.isEmpty())
{
QString actionText =
searchName.isEmpty() ? "&Search" : "&Search with " + searchName;
menu->addAction(actionText, [this, searchURL] {
QString query = this->getSelectedText().trimmed();
QString encodedQuery = QUrl::toPercentEncoding(query);
QDesktopServices::openUrl(QUrl(searchURL + encodedQuery));
});
}
}
auto *twitchChannel =
dynamic_cast<TwitchChannel *>(this->underlyingChannel_.get());
if (!layout->getMessage()->id.isEmpty() && twitchChannel &&