X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fqtui%2Fchatscene.cpp;h=2a065d76a267fa5743faeac5e12f22687fcb74ca;hp=2c89519f5d26a1ebb448b5198ae8995c2fa02f4b;hb=d30eb5039971db578ba6e777d737344187e5b02a;hpb=9d54503555534a2c554f09a33df6afa33d6308ec diff --git a/src/qtui/chatscene.cpp b/src/qtui/chatscene.cpp index 2c89519f..2a065d76 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("\u2026")); + searchSelectionText = tr("Search '%1'").arg(searchSelectionText); + + menu.addAction(SmallIcon("zoom-in"), 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()