X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fqtui%2Fchatscene.cpp;h=a7f2360a8da3a8511d7a8de4439e96b3086278c6;hp=2c89519f5d26a1ebb448b5198ae8995c2fa02f4b;hb=4ee4a3edb832d7ac01951007cf55f7fa4b5918b4;hpb=9d54503555534a2c554f09a33df6afa33d6308ec diff --git a/src/qtui/chatscene.cpp b/src/qtui/chatscene.cpp index 2c89519f..a7f2360a 100644 --- a/src/qtui/chatscene.cpp +++ b/src/qtui/chatscene.cpp @@ -20,12 +20,14 @@ #include #include +#include #include #include #include #include #include #include +#include #ifdef HAVE_KDE # include @@ -813,6 +815,13 @@ void ChatScene::contextMenuEvent(QGraphicsSceneContextMenuEvent *event) QAction *act = new Action(SmallIcon("edit-copy"), tr("Copy Selection"), &menu, this, SLOT(selectionToClipboard()), QKeySequence::Copy); menu.insertAction(sep, act); + + QString searchSelectionText = selection(); + if (searchSelectionText.length() > _webSearchSelectionTextMaxVisible) + searchSelectionText = searchSelectionText.left(_webSearchSelectionTextMaxVisible).append(QString::fromUtf8("…")); + searchSelectionText = tr("Search '%1'").arg(searchSelectionText); + + menu.addAction(SmallIcon("edit-find"), searchSelectionText, this, SLOT(webSearchOnSelection())); } if (QtUi::mainWindow()->menuBar()->isHidden()) @@ -1047,6 +1056,21 @@ void ChatScene::clearSelection() } +/******** *************************************************************************************/ + +void ChatScene::webSearchOnSelection() +{ + if (!hasSelection()) + return; + + ChatViewSettings settings; + QString webSearchBaseUrl = settings.webSearchUrlFormatString(); + QString webSearchUrl = webSearchBaseUrl.replace(QString("%s"), selection()); + QUrl url = QUrl::fromUserInput(webSearchUrl); + QDesktopServices::openUrl(url); +} + + /******** *************************************************************************************/ void ChatScene::requestBacklog()