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/dolphindetailsview.cpp | 50 ++++++++-------------------------------------- 1 file changed, 8 insertions(+), 42 deletions(-) (limited to 'src/dolphindetailsview.cpp') diff --git a/src/dolphindetailsview.cpp b/src/dolphindetailsview.cpp index 7c42d13fc..41e474684 100644 --- a/src/dolphindetailsview.cpp +++ b/src/dolphindetailsview.cpp @@ -117,10 +117,8 @@ DolphinDetailsView::DolphinDetailsView(QWidget* parent, DolphinController* contr this, SLOT(slotEntered(const QModelIndex&))); 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->dolphinView(), SIGNAL(additionalInfoChanged()), this, SLOT(updateColumnVisibility())); @@ -489,30 +487,13 @@ QRect DolphinDetailsView::elasticBandRect() const return QRect(topLeft, m_elasticBandDestination).normalized(); } -void DolphinDetailsView::zoomIn() +void DolphinDetailsView::setZoomLevel(int level) { - if (isZoomInPossible()) { - DetailsModeSettings* settings = DolphinSettings::instance().detailsModeSettings(); - 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 DolphinDetailsView::zoomOut() -{ - if (isZoomOutPossible()) { - DetailsModeSettings* settings = DolphinSettings::instance().detailsModeSettings(); - 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); + DetailsModeSettings* settings = DolphinSettings::instance().detailsModeSettings(); + settings->setIconSize(size); + + updateDecorationSize(); } void DolphinDetailsView::configureColumns(const QPoint& pos) @@ -595,18 +576,6 @@ void DolphinDetailsView::updateFont() } } -bool DolphinDetailsView::isZoomInPossible() const -{ - DetailsModeSettings* settings = DolphinSettings::instance().detailsModeSettings(); - return settings->iconSize() < KIconLoader::SizeLarge; -} - -bool DolphinDetailsView::isZoomOutPossible() const -{ - DetailsModeSettings* settings = DolphinSettings::instance().detailsModeSettings(); - return settings->iconSize() > KIconLoader::SizeSmall; -} - void DolphinDetailsView::updateDecorationSize() { DetailsModeSettings* settings = DolphinSettings::instance().detailsModeSettings(); @@ -614,9 +583,6 @@ void DolphinDetailsView::updateDecorationSize() setIconSize(QSize(iconSize, iconSize)); m_decorationSize = QSize(iconSize, iconSize); - m_controller->setZoomInPossible(isZoomInPossible()); - m_controller->setZoomOutPossible(isZoomOutPossible()); - if (m_selectionManager != 0) { m_selectionManager->reset(); } -- cgit v1.3