diff options
| author | Andrea Diamantini <adjam7@gmail.com> | 2012-12-10 02:09:41 +0100 | 
|---|---|---|
| committer | Andrea Diamantini <adjam7@gmail.com> | 2012-12-10 02:09:41 +0100 | 
| commit | 288ace1df39dbea40cae66d0b04bfdefcd6cec70 (patch) | |
| tree | 87c03b9dbfb330b7e743a45276d73de0cea0e950 /src/analyzer | |
| parent | Lindsay's credits (diff) | |
| download | rekonq-288ace1df39dbea40cae66d0b04bfdefcd6cec70.tar.xz | |
WARNING COMMIT --> FIRST REKONQ 2 IMPORT
Preparing repo to merge rekonq2 code...
Diffstat (limited to 'src/analyzer')
| -rw-r--r-- | src/analyzer/analyzerpanel.cpp | 95 | ||||
| -rw-r--r-- | src/analyzer/analyzerpanel.h | 66 | ||||
| -rw-r--r-- | src/analyzer/networkanalyzer.cpp | 237 | ||||
| -rw-r--r-- | src/analyzer/networkanalyzer.h | 79 | 
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 | 
