From 06583dfe2267b676c85b5aa479b80bf6a502b9fb Mon Sep 17 00:00:00 2001 From: lionelc Date: Mon, 9 Aug 2010 19:44:19 +0200 Subject: add zoom bar at the bottom of rekonq, remove zoom widgets from the tool button menu --- src/CMakeLists.txt | 1 + src/mainview.cpp | 5 -- src/mainwindow.cpp | 85 ++++----------------------- src/mainwindow.h | 12 +--- src/zoombar.cpp | 168 +++++++++++++++++++++++++++++++++++++++++++++++++++++ src/zoombar.h | 75 ++++++++++++++++++++++++ 6 files changed, 257 insertions(+), 89 deletions(-) create mode 100644 src/zoombar.cpp create mode 100644 src/zoombar.h diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 9d691d36..46e9240c 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -11,6 +11,7 @@ SET( rekonq_KDEINIT_SRCS clicktoflash.cpp filterurljob.cpp findbar.cpp + zoombar.cpp mainview.cpp mainwindow.cpp networkaccessmanager.cpp diff --git a/src/mainview.cpp b/src/mainview.cpp index 335bcfae..cf0565f0 100644 --- a/src/mainview.cpp +++ b/src/mainview.cpp @@ -293,10 +293,6 @@ void MainView::currentChanged(int index) else emit browserTabLoading(true); - // update zoom slider - if (!Application::instance()->mainWindowList().isEmpty()) - Application::instance()->mainWindow()->setZoomSliderFactor(tab->view()->zoomFactor()); - // set focus to the current webview if (tab->url().scheme() == QL1S("about")) _widgetBar->currentWidget()->setFocus(); @@ -329,7 +325,6 @@ WebTab *MainView::newWebTab(bool focused) connect(tab->view(), SIGNAL(iconChanged()), this, SLOT(webViewIconChanged())); connect(tab->view(), SIGNAL(titleChanged(const QString &)), this, SLOT(webViewTitleChanged(const QString &))); connect(tab->view(), SIGNAL(urlChanged(const QUrl &)), this, SLOT(webViewUrlChanged(const QUrl &))); - connect(tab->view(), SIGNAL(zoomChanged(qreal)), m_parentWindow, SLOT(setZoomSliderFactor(qreal))); // connecting webPage signals with mainview connect(tab->view()->page(), SIGNAL(windowCloseRequested()), this, SLOT(windowCloseRequested())); diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 9207f6ec..01dd2ad2 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -41,6 +41,7 @@ #include "webtab.h" #include "mainview.h" #include "findbar.h" +#include "zoombar.h" #include "historypanel.h" #include "bookmarkspanel.h" #include "webinspectorpanel.h" @@ -97,6 +98,7 @@ MainWindow::MainWindow() : KXmlGuiWindow() , m_view(new MainView(this)) , m_findBar(new FindBar(this)) + , m_zoomBar(new ZoomBar(this)) , m_historyPanel(0) , m_bookmarksPanel(0) , m_webInspectorPanel(0) @@ -116,6 +118,7 @@ MainWindow::MainWindow() layout->setContentsMargins(0, 0, 0, 0); layout->addWidget(m_view); layout->addWidget(m_findBar); + layout->addWidget(m_zoomBar); centralWidget->setLayout(layout); // central widget @@ -163,6 +166,7 @@ MainWindow::~MainWindow() delete m_view; delete m_findBar; + delete m_zoomBar; delete m_historyPanel; delete m_bookmarksPanel; @@ -173,8 +177,6 @@ MainWindow::~MainWindow() delete m_encodingMenu; delete m_bookmarksBar; - - delete m_zoomSlider; delete m_popup; delete m_hidePopup; @@ -251,6 +253,9 @@ void MainWindow::postLaunch() // Find Bar signal connect(m_findBar, SIGNAL(searchString(const QString &)), this, SLOT(find(const QString &))); + // Zoom Bar signal + connect(m_view, SIGNAL(currentChanged(int)), m_zoomBar, SLOT(updateSlider(int))); + // setting up toolbars to NOT have context menu enabled setContextMenuPolicy(Qt::DefaultContextMenu); @@ -330,12 +335,8 @@ void MainWindow::setupActions() actionCollection()->addAction(QL1S("open_location"), a); connect(a, SIGNAL(triggered(bool)) , this, SLOT(openLocation())); - - // ============================= Zoom Actions =================================== - actionCollection()->addAction(KStandardAction::ZoomIn, this, SLOT(zoomIn())); - a = actionCollection()->addAction(KStandardAction::ActualSize, this, SLOT(zoomNormal())); - a->setShortcut(KShortcut(Qt::CTRL | Qt::Key_0)); - actionCollection()->addAction(KStandardAction::ZoomOut, this, SLOT(zoomOut())); + // set zoom bar actions + m_zoomBar->setupActions(this); // =============================== Tools Actions ================================= a = new KAction(i18n("Page S&ource"), this); @@ -455,39 +456,7 @@ void MainWindow::setupTools() toolsMenu->addAction(actionByName(KStandardAction::name(KStandardAction::Print))); toolsMenu->addAction(actionByName(KStandardAction::name(KStandardAction::Find))); - // setup zoom widget - QWidget *zoomWidget = new QWidget(this); - - QToolButton *zoomOut = new QToolButton(zoomWidget); - zoomOut->setDefaultAction(actionByName(KStandardAction::name(KStandardAction::ZoomOut))); - zoomOut->setAutoRaise(true); - - m_zoomSlider = new QSlider(Qt::Horizontal, zoomWidget); - m_zoomSlider->setTracking(true); - m_zoomSlider->setRange(1, 19); // divide by 10 to obtain a qreal for zoomFactor() - m_zoomSlider->setValue(10); - m_zoomSlider->setPageStep(3); - connect(m_zoomSlider, SIGNAL(valueChanged(int)), this, SLOT(setZoomFactor(int))); - - QToolButton *zoomIn = new QToolButton(zoomWidget); - zoomIn->setDefaultAction(actionByName(KStandardAction::name(KStandardAction::ZoomIn))); - zoomIn->setAutoRaise(true); - - QToolButton *zoomNormal = new QToolButton(zoomWidget); - zoomNormal->setDefaultAction(actionByName(KStandardAction::name(KStandardAction::ActualSize))); - zoomNormal->setAutoRaise(true); - - QHBoxLayout* zoomWidgetLayout = new QHBoxLayout(zoomWidget); - zoomWidgetLayout->setSpacing(0); - zoomWidgetLayout->setMargin(0); - zoomWidgetLayout->addWidget(zoomOut); - zoomWidgetLayout->addWidget(m_zoomSlider); - zoomWidgetLayout->addWidget(zoomIn); - zoomWidgetLayout->addWidget(zoomNormal); - - QWidgetAction *zoomAction = new QWidgetAction(this); - zoomAction->setDefaultWidget(zoomWidget); - toolsMenu->addAction(zoomAction); + toolsMenu->addAction(actionByName(KStandardAction::name(KStandardAction::Zoom))); toolsMenu->addAction(actionByName(QL1S("encodings"))); @@ -844,38 +813,6 @@ void MainWindow::highlightAll() } -void MainWindow::zoomIn() -{ - m_zoomSlider->setValue(m_zoomSlider->value() + 1); -} - - -void MainWindow::zoomNormal() -{ - m_zoomSlider->setValue(10); -} - - -void MainWindow::zoomOut() -{ - m_zoomSlider->setValue(m_zoomSlider->value() - 1); -} - - -void MainWindow::setZoomFactor(int factor) -{ - if (!currentTab()) - return; - currentTab()->view()->setZoomFactor(QVariant(factor).toReal() / 10); -} - - -void MainWindow::setZoomSliderFactor(qreal factor) -{ - m_zoomSlider->setValue(factor * 10); -} - - void MainWindow::viewFullScreen(bool makeFullScreen) { setWidgetsVisible(!makeFullScreen); @@ -1397,4 +1334,4 @@ bool MainWindow::queryClose() } } return true; -} +} \ No newline at end of file diff --git a/src/mainwindow.h b/src/mainwindow.h index 96fe0f2d..e5a43649 100644 --- a/src/mainwindow.h +++ b/src/mainwindow.h @@ -45,6 +45,7 @@ // Forward Declarations class FindBar; +class ZoomBar; class HistoryPanel; class BookmarksPanel; class WebInspectorPanel; @@ -102,8 +103,6 @@ public slots: void updateActions(); - void setZoomSliderFactor(qreal factor); - signals: // switching tabs void ctrlTabPressed(); @@ -135,12 +134,6 @@ private slots: void findPrevious(); void highlightAll(); - // Zoom slots - void zoomIn(); - void zoomNormal(); - void zoomOut(); - void setZoomFactor(int factor); - // File Menu slots void openLocation(); void fileOpen(); @@ -170,6 +163,7 @@ private slots: private: MainView *m_view; FindBar *m_findBar; + ZoomBar *m_zoomBar; HistoryPanel *m_historyPanel; BookmarksPanel *m_bookmarksPanel; @@ -181,8 +175,6 @@ private: KMenu *m_encodingMenu; BookmarkToolBar *m_bookmarksBar; - - QSlider *m_zoomSlider; QString m_lastSearch; diff --git a/src/zoombar.cpp b/src/zoombar.cpp new file mode 100644 index 00000000..28907ccc --- /dev/null +++ b/src/zoombar.cpp @@ -0,0 +1,168 @@ +/* ============================================================ +* +* This file is a part of the rekonq project +* +* Copyright (C) 2008-2010 by Andrea Diamantini +* Copyright (C) 2009-2010 by Lionel Chauvin +* +* +* 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 . +* +* ============================================================ */ + + +// Self Includes +#include "zoombar.h" +#include "zoombar.moc" + +// local includes +#include "mainview.h" + +// KDE Includes +#include +#include +#include +#include +#include +#include + +// Qt Includes +#include +#include +#include + + +ZoomBar::ZoomBar(QWidget *parent) + : QWidget(parent) + ,m_zoomIn(new QToolButton(this)) + ,m_zoomOut(new QToolButton(this)) + ,m_zoomNormal(new QToolButton(this)) + ,m_zoomSlider(new QSlider(Qt::Horizontal, this)) +{ + QHBoxLayout *layout = new QHBoxLayout; + + // cosmetic + layout->setContentsMargins(2, 0, 2, 0); + + QToolButton *hideButton = new QToolButton(this); + hideButton->setAutoRaise(true); + hideButton->setIcon(KIcon("dialog-close")); + connect(hideButton, SIGNAL(clicked()), this, SLOT(hide())); + + layout->addWidget(hideButton); + layout->setAlignment(hideButton, Qt::AlignLeft | Qt::AlignTop); + + // label + QLabel *label = new QLabel(i18n("Zoom:")); + layout->addWidget(label); + + m_zoomSlider->setTracking(true); + m_zoomSlider->setRange(1, 19); // divide by 10 to obtain a qreal for zoomFactor() + m_zoomSlider->setValue(10); + m_zoomSlider->setPageStep(3); + connect(m_zoomSlider, SIGNAL(valueChanged(int)), this, SLOT(setValue(int))); + + m_zoomIn->setAutoRaise(true); + m_zoomOut->setAutoRaise(true); + m_zoomNormal->setAutoRaise(true); + + layout->setSpacing(0); + layout->setMargin(0); + layout->addWidget(m_zoomOut); + layout->addWidget(m_zoomSlider); + layout->addWidget(m_zoomIn); + layout->addWidget(m_zoomNormal); + + setLayout(layout); + + // we start off hidden + hide(); +} + + +void ZoomBar::setupActions(MainWindow *window) +{ + KAction *a; + a = window->actionCollection()->addAction(KStandardAction::ZoomIn, this, SLOT(zoomIn())); + a = window->actionCollection()->addAction(KStandardAction::ZoomOut, this, SLOT(zoomOut())); + a = window->actionCollection()->addAction(KStandardAction::ActualSize, this, SLOT(zoomNormal())); + a->setShortcut(KShortcut(Qt::CTRL | Qt::Key_0)); + a = window->actionCollection()->addAction(KStandardAction::Zoom, this, SLOT(show())); + a->setIcon(KIcon("page-zoom")); + a->setShortcut(KShortcut(Qt::CTRL | Qt::Key_Y)); + + m_zoomIn->setDefaultAction(window->actionByName(KStandardAction::name(KStandardAction::ZoomIn))); + m_zoomOut->setDefaultAction(window->actionByName(KStandardAction::name(KStandardAction::ZoomOut))); + m_zoomNormal->setDefaultAction(window->actionByName(KStandardAction::name(KStandardAction::ActualSize))); +} + + +ZoomBar::~ZoomBar() +{ + delete m_zoomIn; + delete m_zoomOut; + delete m_zoomNormal; + delete m_zoomSlider; +} + + +void ZoomBar::show() +{ + // show findbar if not visible + if (isHidden()) + { + QWidget::show(); + } +} + + +void ZoomBar::zoomIn() +{ + setValue(m_zoomSlider->value() + 1); +} + + +void ZoomBar::zoomOut() +{ + setValue(m_zoomSlider->value() - 1); +} + + +void ZoomBar::zoomNormal() +{ + setValue(10); +} + + +void ZoomBar::updateSlider(int webview) +{ + WebTab *tab = 0; + if (!Application::instance()->mainWindowList().isEmpty()) + tab = Application::instance()->mainWindow()->mainView()->webTab(webview); + + if (!tab) + return; + + m_zoomSlider->setValue(tab->view()->zoomFactor() * 10); +} + + +void ZoomBar::setValue(int value) +{ + m_zoomSlider->setValue(value); + Application::instance()->mainWindow()->currentTab()->view()->setZoomFactor(QVariant(value).toReal() / 10); +} diff --git a/src/zoombar.h b/src/zoombar.h new file mode 100644 index 00000000..178ed464 --- /dev/null +++ b/src/zoombar.h @@ -0,0 +1,75 @@ +/* ============================================================ +* +* This file is a part of the rekonq project +* +* Copyright (C) 2008-2010 by Andrea Diamantini +* Copyright (C) 2009-2010 by Lionel Chauvin +* +* +* 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 . +* +* ============================================================ */ + + +#ifndef ZOOMBAR_H +#define ZOOMBAR_H + + +// Rekonq Includes +#include "rekonq_defines.h" + +// Local Includes +#include "mainwindow.h" + +// KDE Includes +#include + +// Qt Includes +#include +#include +#include +#include + +// Forward Declarations +class QString; + + +class REKONQ_TESTS_EXPORT ZoomBar : public QWidget +{ + Q_OBJECT + +public: + ZoomBar(QWidget *parent); + ~ZoomBar(); + +public slots: + void show(); + void zoomIn(); + void zoomOut(); + void zoomNormal(); + void setupActions(MainWindow *window); + void updateSlider(int webview); + void setValue(int value); + +private: + QToolButton *m_zoomIn; + QToolButton *m_zoomOut; + QToolButton *m_zoomNormal; + QSlider *m_zoomSlider; +}; + +#endif -- cgit v1.2.1 From d3807df9167ab62c37838125e3b8ca4d72b3f6ce Mon Sep 17 00:00:00 2001 From: lionelc Date: Mon, 9 Aug 2010 20:02:25 +0200 Subject: remove useless #includes --- src/zoombar.cpp | 3 --- src/zoombar.h | 4 ---- 2 files changed, 7 deletions(-) diff --git a/src/zoombar.cpp b/src/zoombar.cpp index 28907ccc..d44553ed 100644 --- a/src/zoombar.cpp +++ b/src/zoombar.cpp @@ -33,10 +33,7 @@ #include "mainview.h" // KDE Includes -#include #include -#include -#include #include #include diff --git a/src/zoombar.h b/src/zoombar.h index 178ed464..03bff085 100644 --- a/src/zoombar.h +++ b/src/zoombar.h @@ -35,12 +35,8 @@ // Local Includes #include "mainwindow.h" -// KDE Includes -#include - // Qt Includes #include -#include #include #include -- cgit v1.2.1 From e55e9c541f7a700de529b521552cc935619cc894 Mon Sep 17 00:00:00 2001 From: Yoann Laissus Date: Mon, 9 Aug 2010 23:51:33 +0200 Subject: - Fix Ctrl + wheel shortcut - Fix zoomUp at the end of the bar - add a stretch on the right --- src/mainwindow.cpp | 3 ++- src/webview.cpp | 2 +- src/webview.h | 2 +- src/zoombar.cpp | 10 ++++++---- 4 files changed, 10 insertions(+), 7 deletions(-) diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 01dd2ad2..4d6883ef 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -255,6 +255,7 @@ void MainWindow::postLaunch() // Zoom Bar signal connect(m_view, SIGNAL(currentChanged(int)), m_zoomBar, SLOT(updateSlider(int))); + connect(this->currentTab()->view(), SIGNAL(zoomChanged(int)), m_zoomBar, SLOT(setValue(int))); // Ctrl + wheel handling // setting up toolbars to NOT have context menu enabled setContextMenuPolicy(Qt::DefaultContextMenu); @@ -1334,4 +1335,4 @@ bool MainWindow::queryClose() } } return true; -} \ No newline at end of file +} diff --git a/src/webview.cpp b/src/webview.cpp index 188216f8..a1b39805 100644 --- a/src/webview.cpp +++ b/src/webview.cpp @@ -543,7 +543,7 @@ void WebView::wheelEvent(QWheelEvent *event) if ((zoomFactor() * 10 - newFactor) > 0.5) newFactor++; - emit zoomChanged((qreal)newFactor / 10); + emit zoomChanged(newFactor); } } diff --git a/src/webview.h b/src/webview.h index a4ba676c..1fd40f92 100644 --- a/src/webview.h +++ b/src/webview.h @@ -74,7 +74,7 @@ private slots: signals: void loadUrl(const KUrl &, const Rekonq::OpenType &); - void zoomChanged(qreal); + void zoomChanged(int); private: QPoint _mousePos; diff --git a/src/zoombar.cpp b/src/zoombar.cpp index d44553ed..1b52ae7b 100644 --- a/src/zoombar.cpp +++ b/src/zoombar.cpp @@ -64,7 +64,7 @@ ZoomBar::ZoomBar(QWidget *parent) layout->setAlignment(hideButton, Qt::AlignLeft | Qt::AlignTop); // label - QLabel *label = new QLabel(i18n("Zoom:")); + QLabel *label = new QLabel(i18n("Zoom :")); layout->addWidget(label); m_zoomSlider->setTracking(true); @@ -77,13 +77,15 @@ ZoomBar::ZoomBar(QWidget *parent) m_zoomOut->setAutoRaise(true); m_zoomNormal->setAutoRaise(true); - layout->setSpacing(0); - layout->setMargin(0); + // layout->setSpacing(0); + // layout->setMargin(0); layout->addWidget(m_zoomOut); layout->addWidget(m_zoomSlider); layout->addWidget(m_zoomIn); layout->addWidget(m_zoomNormal); + layout->addStretch(); + setLayout(layout); // we start off hidden @@ -161,5 +163,5 @@ void ZoomBar::updateSlider(int webview) void ZoomBar::setValue(int value) { m_zoomSlider->setValue(value); - Application::instance()->mainWindow()->currentTab()->view()->setZoomFactor(QVariant(value).toReal() / 10); + Application::instance()->mainWindow()->currentTab()->view()->setZoomFactor(QVariant(m_zoomSlider->value()).toReal() / 10); // Don't allox max +1 values } -- cgit v1.2.1 From 1c38aae39d5ec6ee6b422b7f9c0ac54478de88d2 Mon Sep 17 00:00:00 2001 From: Yoann Laissus Date: Tue, 10 Aug 2010 11:43:09 +0200 Subject: - Checkable action for the zoom and find bars --- src/findbar.cpp | 13 +++++++++++++ src/findbar.h | 5 +++++ src/mainwindow.cpp | 9 +++++++-- src/zoombar.cpp | 15 ++++++++++++++- src/zoombar.h | 7 +++++++ 5 files changed, 46 insertions(+), 3 deletions(-) diff --git a/src/findbar.cpp b/src/findbar.cpp index 10b63186..5d88dc1b 100644 --- a/src/findbar.cpp +++ b/src/findbar.cpp @@ -185,3 +185,16 @@ void FindBar::hide() QWidget::hide(); emit(searchString(m_lineEdit->text())); } + + +void FindBar::setVisible(bool visible) +{ + emit visibilityChanged(visible); + QWidget::setVisible(visible); +} + + +void FindBar::toggleVisibility() +{ + setVisible(!isVisible()); +} diff --git a/src/findbar.h b/src/findbar.h index 83334b4f..63b2949b 100644 --- a/src/findbar.h +++ b/src/findbar.h @@ -58,9 +58,14 @@ public: public slots: void show(); void hide(); + void toggleVisibility(); signals: void searchString(const QString &); + void visibilityChanged(bool); + +protected: + void setVisible(bool visible); private: KLineEdit *m_lineEdit; diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 4d6883ef..e547e8e3 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -294,10 +294,12 @@ void MainWindow::setupActions() KStandardAction::print(this, SLOT(printRequested()), actionCollection()); KStandardAction::quit(this , SLOT(close()), actionCollection()); - a = KStandardAction::find(m_findBar, SLOT(show()), actionCollection()); + a = KStandardAction::find(m_findBar, SLOT(toggleVisibility()), actionCollection()); KShortcut findShortcut = KStandardShortcut::find(); findShortcut.setAlternate(Qt::Key_Slash); a->setShortcut(findShortcut); + a->setCheckable(true); + connect(m_findBar, SIGNAL(visibilityChanged(bool)), a, SLOT(setChecked(bool))); KStandardAction::findNext(this, SLOT(findNext()) , actionCollection()); KStandardAction::findPrev(this, SLOT(findPrevious()) , actionCollection()); @@ -457,7 +459,10 @@ void MainWindow::setupTools() toolsMenu->addAction(actionByName(KStandardAction::name(KStandardAction::Print))); toolsMenu->addAction(actionByName(KStandardAction::name(KStandardAction::Find))); - toolsMenu->addAction(actionByName(KStandardAction::name(KStandardAction::Zoom))); + QAction *action = actionByName(KStandardAction::name(KStandardAction::Zoom)); + action->setCheckable(true); + connect (m_zoomBar, SIGNAL(visibilityChanged(bool)), action, SLOT(setChecked(bool))); + toolsMenu->addAction(action); toolsMenu->addAction(actionByName(QL1S("encodings"))); diff --git a/src/zoombar.cpp b/src/zoombar.cpp index 1b52ae7b..c85e607a 100644 --- a/src/zoombar.cpp +++ b/src/zoombar.cpp @@ -100,7 +100,7 @@ void ZoomBar::setupActions(MainWindow *window) a = window->actionCollection()->addAction(KStandardAction::ZoomOut, this, SLOT(zoomOut())); a = window->actionCollection()->addAction(KStandardAction::ActualSize, this, SLOT(zoomNormal())); a->setShortcut(KShortcut(Qt::CTRL | Qt::Key_0)); - a = window->actionCollection()->addAction(KStandardAction::Zoom, this, SLOT(show())); + a = window->actionCollection()->addAction(KStandardAction::Zoom, this, SLOT(toggleVisibility())); a->setIcon(KIcon("page-zoom")); a->setShortcut(KShortcut(Qt::CTRL | Qt::Key_Y)); @@ -165,3 +165,16 @@ void ZoomBar::setValue(int value) m_zoomSlider->setValue(value); Application::instance()->mainWindow()->currentTab()->view()->setZoomFactor(QVariant(m_zoomSlider->value()).toReal() / 10); // Don't allox max +1 values } + + +void ZoomBar::setVisible(bool visible) +{ + emit visibilityChanged(visible); + QWidget::setVisible(visible); +} + + +void ZoomBar::toggleVisibility() +{ + setVisible(!isVisible()); +} diff --git a/src/zoombar.h b/src/zoombar.h index 03bff085..8e8d9aba 100644 --- a/src/zoombar.h +++ b/src/zoombar.h @@ -60,6 +60,13 @@ public slots: void setupActions(MainWindow *window); void updateSlider(int webview); void setValue(int value); + void toggleVisibility(); + +signals: + void visibilityChanged(bool); + +protected: + void setVisible(bool visible); private: QToolButton *m_zoomIn; -- cgit v1.2.1 From 9373712886409ccdce0211f5267b2003a0a770a2 Mon Sep 17 00:00:00 2001 From: Yoann Laissus Date: Tue, 10 Aug 2010 11:47:47 +0200 Subject: Fix comments --- src/mainwindow.cpp | 3 ++- src/zoombar.cpp | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index e547e8e3..5d0d1d0c 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -255,7 +255,8 @@ void MainWindow::postLaunch() // Zoom Bar signal connect(m_view, SIGNAL(currentChanged(int)), m_zoomBar, SLOT(updateSlider(int))); - connect(this->currentTab()->view(), SIGNAL(zoomChanged(int)), m_zoomBar, SLOT(setValue(int))); // Ctrl + wheel handling + // Ctrl + wheel handling + connect(this->currentTab()->view(), SIGNAL(zoomChanged(int)), m_zoomBar, SLOT(setValue(int))); // setting up toolbars to NOT have context menu enabled setContextMenuPolicy(Qt::DefaultContextMenu); diff --git a/src/zoombar.cpp b/src/zoombar.cpp index c85e607a..14e88cf5 100644 --- a/src/zoombar.cpp +++ b/src/zoombar.cpp @@ -163,7 +163,8 @@ void ZoomBar::updateSlider(int webview) void ZoomBar::setValue(int value) { m_zoomSlider->setValue(value); - Application::instance()->mainWindow()->currentTab()->view()->setZoomFactor(QVariant(m_zoomSlider->value()).toReal() / 10); // Don't allox max +1 values + // Don't allox max +1 values + Application::instance()->mainWindow()->currentTab()->view()->setZoomFactor(QVariant(m_zoomSlider->value()).toReal() / 10); } -- cgit v1.2.1