From 6aacfcf359f9c531f729c2bd1b9db11dfcd98bf6 Mon Sep 17 00:00:00 2001 From: Martin Rotter Date: Sat, 28 Sep 2013 09:49:43 +0200 Subject: [PATCH] Work on zooming. --- src/gui/basewebview.cpp | 4 ++++ src/gui/basewebview.h | 3 +++ src/gui/tabwidget.cpp | 9 +++++---- src/gui/tabwidget.h | 4 ++-- src/gui/webbrowser.cpp | 37 ++++++++++++++++++++++++++++++++++++- 5 files changed, 50 insertions(+), 7 deletions(-) diff --git a/src/gui/basewebview.cpp b/src/gui/basewebview.cpp index 811abb590..afde3fce2 100644 --- a/src/gui/basewebview.cpp +++ b/src/gui/basewebview.cpp @@ -219,3 +219,7 @@ void BaseWebView::paintEvent(QPaintEvent *event) { style()->drawControl(QStyle::CE_ShapedFrame, &style_option, &painter, this); } + +void BaseWebView::setWebPageZoom(int percentage) { + setZoomFactor(percentage / 100.0); +} diff --git a/src/gui/basewebview.h b/src/gui/basewebview.h index 5bae720ed..011a5e0eb 100644 --- a/src/gui/basewebview.h +++ b/src/gui/basewebview.h @@ -26,6 +26,9 @@ class BaseWebView : public QWebView { // User wants to open new empty web browser tab. void newTabRequested(); + public slots: + void setWebPageZoom(int percentage = 150); + protected slots: // Executes if loading of any page is done. void onLoadFinished(bool ok); diff --git a/src/gui/tabwidget.cpp b/src/gui/tabwidget.cpp index b6adb8dc1..0c2120ff1 100644 --- a/src/gui/tabwidget.cpp +++ b/src/gui/tabwidget.cpp @@ -176,12 +176,13 @@ int TabWidget::addBrowser(bool move_after_current, return final_index; } -void TabWidget::changeIcon(int column, const QIcon &new_icon) { - setTabIcon(column, new_icon); +void TabWidget::changeIcon(int index, const QIcon &new_icon) { + setTabIcon(index, new_icon); } -void TabWidget::changeTitle(int column, const QString &new_title) { - setTabText(column, TextFactory::shorten(new_title)); +void TabWidget::changeTitle(int index, const QString &new_title) { + setTabText(index, TextFactory::shorten(new_title)); + setTabToolTip(index, new_title); } void TabWidget::fixContentAfterIndexChange(int from) { diff --git a/src/gui/tabwidget.h b/src/gui/tabwidget.h index fb7db3253..11e4b40cf 100644 --- a/src/gui/tabwidget.h +++ b/src/gui/tabwidget.h @@ -55,8 +55,8 @@ class TabWidget : public QTabWidget { void fixContentsIndexes(int starting_index, int ending_index); // Changes icon/text of the tab. - void changeTitle(int column, const QString &new_title); - void changeIcon(int column, const QIcon &new_icon); + void changeTitle(int index, const QString &new_title); + void changeIcon(int index, const QIcon &new_icon); // Closes tab with given index and deletes contained widget. void closeTab(int index); diff --git a/src/gui/webbrowser.cpp b/src/gui/webbrowser.cpp index bd3fd7f8f..d4f6d3a4e 100644 --- a/src/gui/webbrowser.cpp +++ b/src/gui/webbrowser.cpp @@ -3,8 +3,13 @@ #include #include #include +#include +#include +#include +#include #include +#include #include "core/basenetworkaccessmanager.h" #include "core/webbrowsernetworkaccessmanager.h" @@ -21,7 +26,8 @@ QPointer WebBrowser::m_networkManager; QList WebBrowser::m_runningWebBrowsers; WebBrowser::WebBrowser(QWidget *parent) - : TabContent(parent), m_layout(new QVBoxLayout(this)), + : TabContent(parent), + m_layout(new QVBoxLayout(this)), m_toolBar(new QToolBar(tr("Navigation panel"), this)), m_webView(new BaseWebView(this)), m_txtLocation(new LocationLineEdit(this)), @@ -92,6 +98,8 @@ void WebBrowser::createConnections() { // Forward title/icon changes. connect(m_webView, SIGNAL(titleChanged(QString)), this, SLOT(onTitleChanged(QString))); connect(m_webView, SIGNAL(iconChanged()), this, SLOT(onIconChanged())); + + // Misc connections. } void WebBrowser::onIconChanged() { @@ -144,8 +152,35 @@ WebBrowser *WebBrowser::webBrowser() { QList WebBrowser::globalMenu() { QList browser_menu; + // Add needed actions into the menu. browser_menu.append(m_actionReload); + QWidget *wid = new QWidget(this); + QHBoxLayout *lay = new QHBoxLayout(wid); + QToolButton *but1 = new QToolButton(wid); + but1->setText("-"); + QToolButton *but2 = new QToolButton(wid); + but2->setText("100%"); + QToolButton *but3 = new QToolButton(wid); + but3->setText("+"); + lay->addWidget(new QLabel("Zoom ", wid)); + lay->addWidget(but1); + lay->addWidget(but2); + lay->addWidget(but3); + lay->setSpacing(2); + lay->setMargin(3); + wid->setLayout(lay); + // TODO: Make zooming better written, it looks good, impelement + // just webpage zoom (no text zoom for now), then move to implementing + // feed core. + + connect(but3, SIGNAL(clicked()), m_webView, SLOT(setWebPageZoom())); + + QWidgetAction *act = new QWidgetAction(this); + act->setDefaultWidget(wid); + + browser_menu.append(act); + return browser_menu; }