From c67be496fa2ac21dd3d96162ac2a79461cc2d9de Mon Sep 17 00:00:00 2001 From: Andrea Diamantini Date: Thu, 29 Nov 2012 11:00:23 +0100 Subject: Restoring inspector, part 2 Add an inspector widget to the bottom of the page --- src/webtab/webtab.cpp | 35 ++++++++++++++++++++++++++++------- src/webtab/webtab.h | 4 +++- src/webtab/webview.cpp | 15 ++++++--------- src/webtab/webview.h | 3 +++ 4 files changed, 40 insertions(+), 17 deletions(-) diff --git a/src/webtab/webtab.cpp b/src/webtab/webtab.cpp index 5349d599..1f6789f2 100644 --- a/src/webtab/webtab.cpp +++ b/src/webtab/webtab.cpp @@ -62,6 +62,7 @@ #include #include #include +#include #include @@ -276,7 +277,7 @@ void WebTab::setPart(KParts::ReadOnlyPart *p, const KUrl &u) m_part = p; qobject_cast(layout())->insertWidget(1, p->widget()); p->openUrl(u); - m_webView->hide(); + view()->hide(); emit titleChanged(u.url()); return; @@ -286,7 +287,7 @@ void WebTab::setPart(KParts::ReadOnlyPart *p, const KUrl &u) return; // Part NO more exists. Let's clean up from webtab - m_webView->show(); + view()->show(); qobject_cast(layout())->removeWidget(m_part->widget()); delete m_part; m_part = 0; @@ -311,7 +312,7 @@ void WebTab::loadFinished() if (page()->settings()->testAttribute(QWebSettings::PrivateBrowsingEnabled)) return; - QString pageTitle = (page() && page()->isOnRekonqPage()) ? url().url() : m_webView->title(); + QString pageTitle = (page() && page()->isOnRekonqPage()) ? url().url() : view()->title(); HistoryManager::self()->addHistoryEntry(url(), pageTitle); } @@ -379,7 +380,7 @@ void WebTab::zoomIn() else m_zoomFactor++; - m_webView->setZoomFactor(QVariant(m_zoomFactor).toReal() / 10); + view()->setZoomFactor(QVariant(m_zoomFactor).toReal() / 10); emit infoToShow(i18n("Zooming: ") + QString::number(m_zoomFactor * 10) + QL1S("%")); } @@ -394,7 +395,7 @@ void WebTab::zoomOut() } m_zoomFactor--; - m_webView->setZoomFactor(QVariant(m_zoomFactor).toReal() / 10); + view()->setZoomFactor(QVariant(m_zoomFactor).toReal() / 10); emit infoToShow(i18n("Zooming: ") + QString::number(m_zoomFactor * 10) + QL1S("%")); } @@ -403,7 +404,7 @@ void WebTab::zoomOut() void WebTab::zoomDefault() { m_zoomFactor = 10; - m_webView->setZoomFactor(QVariant(m_zoomFactor).toReal() / 10); + view()->setZoomFactor(QVariant(m_zoomFactor).toReal() / 10); emit infoToShow(i18n("Default zoom: ") + QString::number(m_zoomFactor * 10) + QL1S("%")); } @@ -426,6 +427,26 @@ void WebTab::webAppIconChanged() void WebTab::toggleInspector(bool on) { + if (on) + { + page()->settings()->setAttribute(QWebSettings::DeveloperExtrasEnabled, on); + + if (m_inspector.isNull()) + { + m_inspector = new QWebInspector(this); + m_inspector.data()->setPage(page()); + } + + qobject_cast(layout())->insertWidget(-1, m_inspector.data()); + m_inspector.data()->show(); + + return; + } + // else + + qobject_cast(layout())->removeWidget(m_inspector.data()); + + m_inspector.data()->hide(); + page()->settings()->setAttribute(QWebSettings::DeveloperExtrasEnabled, on); - kDebug() << "TOGGLED: " << on; } diff --git a/src/webtab/webtab.h b/src/webtab/webtab.h index 0a12c756..2b0f70f3 100644 --- a/src/webtab/webtab.h +++ b/src/webtab/webtab.h @@ -40,6 +40,7 @@ // Qt Includes #include +#include // Forward Declarations class NotificationBar; @@ -119,7 +120,8 @@ private: QWeakPointer m_walletBar; QWeakPointer m_previewSelectorBar; - + QWeakPointer m_inspector; + KParts::ReadOnlyPart *m_part; int m_zoomFactor; diff --git a/src/webtab/webview.cpp b/src/webtab/webview.cpp index ec74be1e..2a73b050 100644 --- a/src/webtab/webview.cpp +++ b/src/webtab/webview.cpp @@ -98,6 +98,7 @@ WebView::WebView(QWidget* parent) , m_isViewSmoothScrolling(false) , m_accessKeysPressed(false) , m_accessKeysActive(false) + , m_parentTab(qobject_cast(parent)) { // loadUrl signal connect(this, SIGNAL(loadUrl(KUrl, Rekonq::OpenType)), rApp, SLOT(loadUrl(KUrl, Rekonq::OpenType))); @@ -162,10 +163,7 @@ void WebView::setPage(WebPage *pg) { KWebView::setPage(pg); - WebTab *tab = qobject_cast(parent()); - if (!tab) - return; - WebWindow *w = tab->webWindow(); + WebWindow *w = m_parentTab->webWindow(); if (w && w->window()) pg->setWindow(w->window()); } @@ -268,8 +266,8 @@ bool WebView::popupSpellMenu(QContextMenuEvent *event) void WebView::contextMenuEvent(QContextMenuEvent *event) { m_contextMenuHitResult = page()->mainFrame()->hitTestContent(event->pos()); - WebTab *tab = qobject_cast(parent()); - WebWindow *webwin = tab->webWindow(); + + WebWindow *webwin = m_parentTab->webWindow(); KMenu menu(this); QAction *a; @@ -333,7 +331,7 @@ void WebView::contextMenuEvent(QContextMenuEvent *event) frameMenu->addAction(pageAction(KWebPage::OpenFrameInNewWindow)); a = new KAction(KIcon("document-print-frame"), i18n("Print Frame"), this); - connect(a, SIGNAL(triggered()), tab, SLOT(printFrame())); + connect(a, SIGNAL(triggered()), m_parentTab, SLOT(printFrame())); frameMenu->addAction(a); menu.addAction(frameMenu); @@ -761,8 +759,7 @@ void WebView::openLinkInNewTab() KAction *a = qobject_cast(sender()); KUrl url(a->data().toUrl()); - WebTab *tab = qobject_cast(parent()); - WebWindow *webwin = tab->webWindow(); + WebWindow *webwin = m_parentTab->webWindow(); if (webwin) emit loadUrl(url, Rekonq::NewTab); diff --git a/src/webtab/webview.h b/src/webtab/webview.h index f7c16546..4510bec3 100644 --- a/src/webtab/webview.h +++ b/src/webtab/webview.h @@ -43,6 +43,7 @@ // Forward Declarations class WebPage; +class WebTab; class QLabel; class QTimer; @@ -164,6 +165,8 @@ private: QHash m_accessKeyNodes; bool m_accessKeysPressed; bool m_accessKeysActive; + + WebTab *m_parentTab; }; #endif -- cgit v1.2.1