summaryrefslogtreecommitdiff
path: root/src/analyzer
diff options
context:
space:
mode:
Diffstat (limited to 'src/analyzer')
-rw-r--r--src/analyzer/analyzerpanel.cpp95
-rw-r--r--src/analyzer/analyzerpanel.h66
-rw-r--r--src/analyzer/networkanalyzer.cpp237
-rw-r--r--src/analyzer/networkanalyzer.h79
4 files changed, 0 insertions, 477 deletions
diff --git a/src/analyzer/analyzerpanel.cpp b/src/analyzer/analyzerpanel.cpp
deleted file mode 100644
index 5f9fc00d..00000000
--- a/src/analyzer/analyzerpanel.cpp
+++ /dev/null
@@ -1,95 +0,0 @@
-/* ============================================================
-*
-* This file is a part of the rekonq project
-*
-* Copyright (C) 2010-2011 by Matthieu Gicquel <matgic78 at gmail dot com>
-* Copyright (C) 2010-2012 by Andrea Diamantini <adjam7 at gmail dot com>
-*
-*
-* This program is free software; you can redistribute it and/or
-* modify it under the terms of the GNU General Public License as
-* published by the Free Software Foundation; either version 2 of
-* the License or (at your option) version 3 or any later version
-* accepted by the membership of KDE e.V. (or its successor approved
-* by the membership of KDE e.V.), which shall act as a proxy
-* defined in Section 14 of version 3 of the license.
-*
-* This program is distributed in the hope that it will be useful,
-* but WITHOUT ANY WARRANTY; without even the implied warranty of
-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-* GNU General Public License for more details.
-*
-* You should have received a copy of the GNU General Public License
-* along with this program. If not, see <http://www.gnu.org/licenses/>.
-*
-* ============================================================ */
-
-
-// Self Includes
-#include "analyzerpanel.h"
-#include "analyzerpanel.moc"
-
-// Local Includes
-#include "mainwindow.h"
-#include "networkanalyzer.h"
-#include "networkaccessmanager.h"
-#include "webtab.h"
-#include "webview.h"
-#include "webpage.h"
-
-// KDE Includes
-#include "KAction"
-
-
-NetworkAnalyzerPanel::NetworkAnalyzerPanel(const QString &title, QWidget *parent)
- : QDockWidget(title, parent)
- , _viewer(new NetworkAnalyzer(this))
-{
- setObjectName("networkAnalyzerDock");
- setWidget(_viewer);
-}
-
-
-void NetworkAnalyzerPanel::closeEvent(QCloseEvent *event)
-{
- Q_UNUSED(event);
- toggle(false);
-}
-
-
-MainWindow* NetworkAnalyzerPanel::mainWindow()
-{
- return qobject_cast<MainWindow *>(parentWidget());
-}
-
-
-void NetworkAnalyzerPanel::toggle(bool enable)
-{
- mainWindow()->actionByName("net_analyzer")->setChecked(enable);
- WebPage *page = mainWindow()->currentTab()->page();
- NetworkAccessManager *manager = qobject_cast<NetworkAccessManager *>(page->networkAccessManager());
-
- page->enableNetworkAnalyzer(enable);
-
- if (enable)
- {
- connect(page, SIGNAL(loadStarted()), _viewer, SLOT(clear()));
- connect(manager, SIGNAL(networkData(QNetworkAccessManager::Operation, QNetworkRequest, QNetworkReply*)),
- _viewer, SLOT(addRequest(QNetworkAccessManager::Operation, QNetworkRequest, QNetworkReply*)));
- }
- else
- {
- disconnect(page, SIGNAL(loadStarted()), _viewer, SLOT(clear()));
- disconnect(manager, SIGNAL(networkData(QNetworkAccessManager::Operation, QNetworkRequest, QNetworkReply*)),
- _viewer, SLOT(addRequest(QNetworkAccessManager::Operation, QNetworkRequest, QNetworkReply*)));
- }
-
- setVisible(enable);
-}
-
-
-void NetworkAnalyzerPanel::changeCurrentPage()
-{
- bool enable = mainWindow()->currentTab()->page()->hasNetworkAnalyzerEnabled();
- toggle(enable);
-}
diff --git a/src/analyzer/analyzerpanel.h b/src/analyzer/analyzerpanel.h
deleted file mode 100644
index 591e5947..00000000
--- a/src/analyzer/analyzerpanel.h
+++ /dev/null
@@ -1,66 +0,0 @@
-/* ============================================================
-*
-* This file is a part of the rekonq project
-*
-* Copyright (C) 2010-2012 by Andrea Diamantini <adjam7 at gmail dot com>
-*
-*
-* This program is free software; you can redistribute it and/or
-* modify it under the terms of the GNU General Public License as
-* published by the Free Software Foundation; either version 2 of
-* the License or (at your option) version 3 or any later version
-* accepted by the membership of KDE e.V. (or its successor approved
-* by the membership of KDE e.V.), which shall act as a proxy
-* defined in Section 14 of version 3 of the license.
-*
-* This program is distributed in the hope that it will be useful,
-* but WITHOUT ANY WARRANTY; without even the implied warranty of
-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-* GNU General Public License for more details.
-*
-* You should have received a copy of the GNU General Public License
-* along with this program. If not, see <http://www.gnu.org/licenses/>.
-*
-* ============================================================ */
-
-
-#ifndef ANALYZER_PANEL_H
-#define ANALYZER_PANEL_H
-
-
-// Rekonq Includes
-#include "rekonq_defines.h"
-
-// Qt Includes
-#include <QDockWidget>
-
-// Forward Declarations
-class MainWindow;
-class NetworkAnalyzer;
-
-
-/**
- Docked network analyzer
- behaviour : hide/show by tab, not globally
-*/
-class REKONQ_TESTS_EXPORT NetworkAnalyzerPanel : public QDockWidget
-{
- Q_OBJECT
-
-public:
- NetworkAnalyzerPanel(const QString &title, QWidget *parent);
-
-public Q_SLOTS:
- void toggle(bool enable);
- void changeCurrentPage();
-
-protected:
- virtual void closeEvent(QCloseEvent *event);
-
- MainWindow *mainWindow();
-
-private:
- NetworkAnalyzer *_viewer;
-};
-
-#endif // NET_ANALYZER_PANEL_H
diff --git a/src/analyzer/networkanalyzer.cpp b/src/analyzer/networkanalyzer.cpp
deleted file mode 100644
index 61ab69a5..00000000
--- a/src/analyzer/networkanalyzer.cpp
+++ /dev/null
@@ -1,237 +0,0 @@
-/* ============================================================
-*
-* This file is a part of the rekonq project
-*
-* Copyright (C) 2009-2010 by Richard J. Moore <rich@kde.org>
-* Copyright (C) 2010-2012 by Andrea Diamantini <adjam7 at gmail dot com>
-*
-*
-* This program is free software; you can redistribute it and/or
-* modify it under the terms of the GNU General Public License as
-* published by the Free Software Foundation; either version 2 of
-* the License or (at your option) version 3 or any later version
-* accepted by the membership of KDE e.V. (or its successor approved
-* by the membership of KDE e.V.), which shall act as a proxy
-* defined in Section 14 of version 3 of the license.
-*
-* This program is distributed in the hope that it will be useful,
-* but WITHOUT ANY WARRANTY; without even the implied warranty of
-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-* GNU General Public License for more details.
-*
-* You should have received a copy of the GNU General Public License
-* along with this program. If not, see <http://www.gnu.org/licenses/>.
-*
-* ============================================================ */
-
-
-// Self Includes
-#include "networkanalyzer.h"
-#include "networkanalyzer.moc"
-
-// KDE Includes
-#include <KAction>
-#include <klocalizedstring.h>
-#include <KMenu>
-#include <KIcon>
-#include <KPassivePopup>
-
-// Qt Includes
-#include <QTreeWidget>
-#include <QVBoxLayout>
-#include <QHeaderView>
-#include <QLabel>
-#include <QApplication>
-#include <QSignalMapper>
-#include <QClipboard>
-
-#include <QNetworkReply>
-#include <QNetworkRequest>
-
-
-NetworkAnalyzer::NetworkAnalyzer(QWidget *parent)
- : QWidget(parent)
- , _mapper(new QSignalMapper(this))
- , _requestList(new QTreeWidget(this))
-{
- QStringList headers;
- headers << i18n("Method") << i18n("URL") << i18n("Response") << i18n("Length") << i18n("Content Type") << i18n("Info");
- _requestList->setHeaderLabels(headers);
-
- _requestList->header()->setResizeMode(0, QHeaderView::Interactive);
- _requestList->header()->setResizeMode(1, QHeaderView::Interactive);
- _requestList->header()->setResizeMode(2, QHeaderView::Interactive);
- _requestList->header()->setResizeMode(3, QHeaderView::Interactive);
- _requestList->header()->setResizeMode(4, QHeaderView::Interactive);
-
- _requestList->setAlternatingRowColors(true);
-
- QVBoxLayout *lay = new QVBoxLayout(this);
- lay->addWidget(_requestList);
-
- _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)));
-}
-
-
-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)
-{
- // Add to list of requests
- QStringList cols;
- switch (op)
- {
- case QNetworkAccessManager::HeadOperation:
- cols << QL1S("HEAD");
- break;
- case QNetworkAccessManager::GetOperation:
- cols << QL1S("GET");
- break;
- case QNetworkAccessManager::PutOperation:
- cols << QL1S("PUT");
- break;
- case QNetworkAccessManager::PostOperation:
- cols << QL1S("POST");
- break;
- case QNetworkAccessManager::DeleteOperation:
- cols << QL1S("DELETE");
- break;
- case QNetworkAccessManager::CustomOperation:
- cols << QL1S("CUSTOM");
- break;
-
- default:
- kDebug() << "Unknown network operation";
- }
- cols << req.url().toString();
- cols << i18n("Pending");
-
- QTreeWidgetItem *item = new QTreeWidgetItem(cols);
- _requestList->addTopLevelItem(item);
-
- // Add to maps
- _requestMap.insert(reply, req);
- _itemMap.insert(reply, item);
- _itemRequestMap.insert(item, req);
-
- _mapper->setMapping(reply, reply);
- connect(reply, SIGNAL(finished()), _mapper, SLOT(map()));
-
- _requestList->header()->resizeSections(QHeaderView::ResizeToContents);
-}
-
-
-void NetworkAnalyzer::clear()
-{
- _requestMap.clear();
- _itemMap.clear();
- _itemReplyMap.clear();
- _itemRequestMap.clear();
- _requestList->clear();
-}
-
-
-void NetworkAnalyzer::requestFinished(QObject *replyObject)
-{
- QNetworkReply *reply = qobject_cast<QNetworkReply *>(replyObject);
- if (!reply)
- {
- kDebug() << "Failed to downcast reply";
- return;
- }
-
- QTreeWidgetItem *item = _itemMap[reply];
- if (!item)
- {
- kDebug() << "No Item mapped. Returning...";
- return;
- }
-
- // Record the reply headers
- QList<QByteArray> headerValues;
- Q_FOREACH(const QByteArray & header, reply->rawHeaderList())
- {
- headerValues += reply->rawHeader(header);
- }
-
- QPair< QList<QByteArray>, QList<QByteArray> > replyHeaders;
- replyHeaders.first = reply->rawHeaderList();
- replyHeaders.second = headerValues;
- _itemReplyMap[item] = replyHeaders;
-
- // Display the request
- int status = reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt();
- QString reason = reply->attribute(QNetworkRequest::HttpReasonPhraseAttribute).toString();
- item->setText(2, i18n("%1 %2", status, reason));
-
- QString length = reply->header(QNetworkRequest::ContentLengthHeader).toString();
- item->setText(3, length);
-
- QString contentType = reply->header(QNetworkRequest::ContentTypeHeader).toString();
- item->setText(4, contentType);
-
- if (status == 302)
- {
- QUrl target = reply->attribute(QNetworkRequest::RedirectionTargetAttribute).toUrl();
- item->setText(5, i18n("Redirect: %1", target.toString()));
- }
-}
-
-
-void NetworkAnalyzer::showItemDetails(QTreeWidgetItem *item)
-{
- // Show request details
- QString details;
-
- QNetworkRequest req = _itemRequestMap[item];
- details += i18n("<h3>Request Details</h3>");
- details += QL1S("<ul>");
- Q_FOREACH(const QByteArray & header, req.rawHeaderList())
- {
- details += QL1S("<li>");
- details += QL1S(header);
- details += QL1S(": ");
- details += QL1S(req.rawHeader(header));
- details += QL1S("</li>");
- }
- details += QL1S("</ul>");
-
- QPair< QList<QByteArray>, QList<QByteArray> > replyHeaders = _itemReplyMap[item];
- details += i18n("<h3>Response Details</h3>");
- details += QL1S("<ul>");
- for (int i = 0; i < replyHeaders.first.count(); i++)
- {
- details += QL1S("<li>");
- details += QL1S(replyHeaders.first[i]);
- details += QL1S(": ");
- details += QL1S(replyHeaders.second[i]);
- details += QL1S("</li>");
- }
- details += QL1S("</ul>");
-
-// QLabel *label = new QLabel(details, this);
-// KPassivePopup *popup = new KPassivePopup(this);
-// popup->setView(label);
-// popup->show(_requestList->mapToGlobal(_requestList->pos()));
- KPassivePopup::message(details, this);
-}
diff --git a/src/analyzer/networkanalyzer.h b/src/analyzer/networkanalyzer.h
deleted file mode 100644
index af1e1145..00000000
--- a/src/analyzer/networkanalyzer.h
+++ /dev/null
@@ -1,79 +0,0 @@
-/* ============================================================
-*
-* This file is a part of the rekonq project
-*
-* Copyright (C) 2009-2010 by Richard J. Moore <rich@kde.org>
-* Copyright (C) 2010-2012 by Andrea Diamantini <adjam7 at gmail dot com>
-*
-*
-* This program is free software; you can redistribute it and/or
-* modify it under the terms of the GNU General Public License as
-* published by the Free Software Foundation; either version 2 of
-* the License or (at your option) version 3 or any later version
-* accepted by the membership of KDE e.V. (or its successor approved
-* by the membership of KDE e.V.), which shall act as a proxy
-* defined in Section 14 of version 3 of the license.
-*
-* This program is distributed in the hope that it will be useful,
-* but WITHOUT ANY WARRANTY; without even the implied warranty of
-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-* GNU General Public License for more details.
-*
-* You should have received a copy of the GNU General Public License
-* along with this program. If not, see <http://www.gnu.org/licenses/>.
-*
-* ============================================================ */
-
-
-
-#ifndef NETWORK_ANALYZER_H
-#define NETWORK_ANALYZER_H
-
-
-// Rekonq Includes
-#include "rekonq_defines.h"
-
-// Qt Includes
-#include <QWidget>
-
-#include <QMap>
-#include <QList>
-
-#include <QNetworkAccessManager>
-
-// Forward Declarations
-class QTreeWidgetItem;
-class QSignalMapper;
-class QTreeWidget;
-
-class QNetworkReply;
-class QNetworkRequest;
-
-
-class NetworkAnalyzer : public QWidget
-{
- Q_OBJECT
-
-public:
- NetworkAnalyzer(QWidget *parent = 0);
-
-private Q_SLOTS:
- void addRequest(QNetworkAccessManager::Operation op, const QNetworkRequest &req, QNetworkReply *reply);
-
- void clear();
- void requestFinished(QObject *replyObject);
- void showItemDetails(QTreeWidgetItem *item);
- void copyURL();
- void popupContextMenu(const QPoint &pos);
-
-private:
- QMap<QNetworkReply *, QNetworkRequest> _requestMap;
- QMap<QTreeWidgetItem *, QNetworkRequest> _itemRequestMap;
- QMap<QNetworkReply *, QTreeWidgetItem *> _itemMap;
- QMap<QTreeWidgetItem *, QPair< QList<QByteArray>, QList<QByteArray> > > _itemReplyMap;
-
- QSignalMapper *_mapper;
- QTreeWidget *_requestList;
-};
-
-#endif // NETWORK_ANALYZER_H