diff options
| author | Peter Penz <[email protected]> | 2008-08-05 20:15:51 +0000 |
|---|---|---|
| committer | Peter Penz <[email protected]> | 2008-08-05 20:15:51 +0000 |
| commit | 7308c7d03e182795d6b64d85a3f0725d8af32436 (patch) | |
| tree | 4d7414dccbfbf6d28864ee2bb3615b3a27a59b26 /src/dolphinview.cpp | |
| parent | 208549cefcd47b4454b8e38b2c5cb12b82189b7b (diff) | |
First step of refactoring to improve the zooming capabilities of views:
* Let classes that use DolphinView know about the currently used zoom level.
* Provide more zoom levels for all views (the settings dialogs have not been adjusted yet).
* Fixed issue that when using the wheel that the enabled state of the zoom actions has not been updated.
svn path=/trunk/KDE/kdebase/apps/; revision=842715
Diffstat (limited to 'src/dolphinview.cpp')
| -rw-r--r-- | src/dolphinview.cpp | 37 |
1 files changed, 23 insertions, 14 deletions
diff --git a/src/dolphinview.cpp b/src/dolphinview.cpp index e1cbaee8c..d02059059 100644 --- a/src/dolphinview.cpp +++ b/src/dolphinview.cpp @@ -360,26 +360,34 @@ QPoint DolphinView::contentsPosition() const return QPoint(x, y); } -void DolphinView::zoomIn() +void DolphinView::setZoomLevel(int level) { - m_controller->triggerZoomIn(); - m_iconManager->updatePreviews(); + if (level < zoomLevelMinimum()) { + level = zoomLevelMinimum(); + } else if (level > zoomLevelMaximum()) { + level = zoomLevelMaximum(); + } + + if (level != zoomLevel()) { + m_controller->setZoomLevel(level); + m_iconManager->updatePreviews(); + emit zoomLevelChanged(level); + } } -void DolphinView::zoomOut() +int DolphinView::zoomLevel() const { - m_controller->triggerZoomOut(); - m_iconManager->updatePreviews(); + return m_controller->zoomLevel(); } -bool DolphinView::isZoomInPossible() const +int DolphinView::zoomLevelMinimum() const { - return m_controller->isZoomInPossible(); + return m_controller->zoomLevelMinimum(); } -bool DolphinView::isZoomOutPossible() const +int DolphinView::zoomLevelMaximum() const { - return m_controller->isZoomOutPossible(); + return m_controller->zoomLevelMaximum(); } void DolphinView::setSorting(Sorting sorting) @@ -737,10 +745,11 @@ void DolphinView::wheelEvent(QWheelEvent* event) { if (event->modifiers() & Qt::ControlModifier) { const int delta = event->delta(); - if ((delta > 0) && isZoomInPossible()) { - zoomIn(); - } else if ((delta < 0) && isZoomOutPossible()) { - zoomOut(); + const int level = zoomLevel(); + if (delta > 0) { + setZoomLevel(level + 1); + } else if (delta < 0) { + setZoomLevel(level - 1); } event->accept(); } |
