diff options
author | Andrea Diamantini <adjam7@gmail.com> | 2012-11-29 11:00:23 +0100 |
---|---|---|
committer | Andrea Diamantini <adjam7@gmail.com> | 2012-12-10 02:48:06 +0100 |
commit | c67be496fa2ac21dd3d96162ac2a79461cc2d9de (patch) | |
tree | 410ce3a56a8c7676d25b2ab9d76a235174cbd85a | |
parent | Restoring inspector, part 1 (diff) | |
download | rekonq-c67be496fa2ac21dd3d96162ac2a79461cc2d9de.tar.xz |
Restoring inspector, part 2
Add an inspector widget to the bottom of the page
-rw-r--r-- | src/webtab/webtab.cpp | 35 | ||||
-rw-r--r-- | src/webtab/webtab.h | 4 | ||||
-rw-r--r-- | src/webtab/webview.cpp | 15 | ||||
-rw-r--r-- | 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 <QVBoxLayout> #include <QPrintDialog> #include <QPrinter> +#include <QSplitter> #include <QWebSettings> @@ -276,7 +277,7 @@ void WebTab::setPart(KParts::ReadOnlyPart *p, const KUrl &u) m_part = p; qobject_cast<QVBoxLayout *>(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<QVBoxLayout *>(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<QVBoxLayout *>(layout())->insertWidget(-1, m_inspector.data()); + m_inspector.data()->show(); + + return; + } + // else + + qobject_cast<QVBoxLayout *>(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 <QWidget> +#include <QWebInspector> // Forward Declarations class NotificationBar; @@ -119,7 +120,8 @@ private: QWeakPointer<WalletBar> m_walletBar; QWeakPointer<PreviewSelectorBar> m_previewSelectorBar; - + QWeakPointer<QWebInspector> 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<WebTab *>(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<WebTab *>(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<WebTab *>(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<KAction*>(sender()); KUrl url(a->data().toUrl()); - WebTab *tab = qobject_cast<WebTab *>(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<QChar, QWebElement> m_accessKeyNodes; bool m_accessKeysPressed; bool m_accessKeysActive; + + WebTab *m_parentTab; }; #endif |