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(-) (limited to 'src') 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