From 16b5f1d88efa5b2cbccc938abd24da6cd819e965 Mon Sep 17 00:00:00 2001 From: Andrea Diamantini Date: Mon, 13 Dec 2010 18:10:33 +0100 Subject: GCI Task: Copy Context menu for Network Analyzer, by Furkan Uzumcu This patch adds the ability of copying an url request from network analyzer. --- src/analyzer/networkanalyzer.cpp | 30 ++++++++++++++++++++++++++---- 1 file changed, 26 insertions(+), 4 deletions(-) (limited to 'src/analyzer/networkanalyzer.cpp') diff --git a/src/analyzer/networkanalyzer.cpp b/src/analyzer/networkanalyzer.cpp index c5b08835..8783745d 100644 --- a/src/analyzer/networkanalyzer.cpp +++ b/src/analyzer/networkanalyzer.cpp @@ -30,7 +30,10 @@ #include "networkanalyzer.moc" // KDE Includes +#include #include +#include +#include #include // Qt Includes @@ -38,9 +41,9 @@ #include #include #include - +#include #include - +#include NetworkAnalyzer::NetworkAnalyzer(QWidget *parent) : QWidget(parent) @@ -61,10 +64,11 @@ NetworkAnalyzer::NetworkAnalyzer(QWidget *parent) QVBoxLayout *lay = new QVBoxLayout(this); lay->addWidget( _requestList ); - - connect( _mapper, SIGNAL(mapped(QObject *)), this, SLOT(requestFinished(QObject *)) ); + _requestList->setContextMenuPolicy(Qt::CustomContextMenu); + connect( _mapper, SIGNAL(mapped(QObject *)), this, SLOT(requestFinished(QObject *)) ); connect( _requestList, SIGNAL(itemDoubleClicked( QTreeWidgetItem*, int ) ), this, SLOT( showItemDetails( QTreeWidgetItem *) ) ); + connect( _requestList, SIGNAL(customContextMenuRequested(QPoint) ), this, SLOT( popupContextMenu(QPoint))); } @@ -72,6 +76,24 @@ NetworkAnalyzer::~NetworkAnalyzer() { } +void NetworkAnalyzer::popupContextMenu(const QPoint& pos) +{ + if(_requestList->topLevelItemCount() >= 1) + { + KMenu menu(_requestList); + KAction *copy; + copy = new KAction(KIcon("edit-copy"),i18n("Copy URL"), this); + connect(copy,SIGNAL(triggered(bool)),this,SLOT(copyURL())); + menu.addAction(copy); + menu.exec(mapToGlobal(pos)); + } +} + +void NetworkAnalyzer::copyURL() +{ + QClipboard *clipboard = QApplication::clipboard(); + clipboard->setText(_requestList->currentItem()->text(1)); +} void NetworkAnalyzer::addRequest( QNetworkAccessManager::Operation op, const QNetworkRequest &req, QNetworkReply *reply ) { -- cgit v1.2.1