From 7308c7d03e182795d6b64d85a3f0725d8af32436 Mon Sep 17 00:00:00 2001 From: Peter Penz Date: Tue, 5 Aug 2008 20:15:51 +0000 Subject: 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 --- src/dolphincolumnview.cpp | 50 ++++++++--------------------------------------- 1 file changed, 8 insertions(+), 42 deletions(-) (limited to 'src/dolphincolumnview.cpp') diff --git a/src/dolphincolumnview.cpp b/src/dolphincolumnview.cpp index 6d4801aea..8ca4a6a9b 100644 --- a/src/dolphincolumnview.cpp +++ b/src/dolphincolumnview.cpp @@ -51,10 +51,8 @@ DolphinColumnView::DolphinColumnView(QWidget* parent, DolphinController* control connect(this, SIGNAL(viewportEntered()), controller, SLOT(emitViewportEntered())); - connect(controller, SIGNAL(zoomIn()), - this, SLOT(zoomIn())); - connect(controller, SIGNAL(zoomOut()), - this, SLOT(zoomOut())); + connect(controller, SIGNAL(zoomLevelChanged(int)), + this, SLOT(setZoomLevel(int))); connect(controller, SIGNAL(activationChanged(bool)), this, SLOT(updateColumnsBackground(bool))); @@ -367,30 +365,13 @@ void DolphinColumnView::wheelEvent(QWheelEvent* event) QAbstractItemView::wheelEvent(event); } -void DolphinColumnView::zoomIn() +void DolphinColumnView::setZoomLevel(int level) { - if (isZoomInPossible()) { - ColumnModeSettings* settings = DolphinSettings::instance().columnModeSettings(); - switch (settings->iconSize()) { - case KIconLoader::SizeSmall: settings->setIconSize(KIconLoader::SizeMedium); break; - case KIconLoader::SizeMedium: settings->setIconSize(KIconLoader::SizeLarge); break; - default: Q_ASSERT(false); break; - } - updateDecorationSize(); - } -} - -void DolphinColumnView::zoomOut() -{ - if (isZoomOutPossible()) { - ColumnModeSettings* settings = DolphinSettings::instance().columnModeSettings(); - switch (settings->iconSize()) { - case KIconLoader::SizeLarge: settings->setIconSize(KIconLoader::SizeMedium); break; - case KIconLoader::SizeMedium: settings->setIconSize(KIconLoader::SizeSmall); break; - default: Q_ASSERT(false); break; - } - updateDecorationSize(); - } + const int size = DolphinController::iconSizeForZoomLevel(level); + ColumnModeSettings* settings = DolphinSettings::instance().columnModeSettings(); + settings->setIconSize(size); + + updateDecorationSize(); } void DolphinColumnView::moveContentHorizontally(int x) @@ -413,9 +394,6 @@ void DolphinColumnView::updateDecorationSize() } } - m_controller->setZoomInPossible(isZoomInPossible()); - m_controller->setZoomOutPossible(isZoomOutPossible()); - doItemsLayout(); } @@ -471,18 +449,6 @@ void DolphinColumnView::slotShowPreviewChanged() } } -bool DolphinColumnView::isZoomInPossible() const -{ - ColumnModeSettings* settings = DolphinSettings::instance().columnModeSettings(); - return settings->iconSize() < KIconLoader::SizeLarge; -} - -bool DolphinColumnView::isZoomOutPossible() const -{ - ColumnModeSettings* settings = DolphinSettings::instance().columnModeSettings(); - return settings->iconSize() > KIconLoader::SizeSmall; -} - void DolphinColumnView::setActiveColumnIndex(int index) { if (m_index == index) { -- cgit v1.3