X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/b8a4e0fac2820ec8fc442c2abeea700ae4947e01..bc4e59dc39fedcbb323c48942f8c0fd85d75f270:/src/dolphincolumnview.cpp diff --git a/src/dolphincolumnview.cpp b/src/dolphincolumnview.cpp index 957b2064f..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))); @@ -190,7 +188,7 @@ void DolphinColumnView::showColumn(const KUrl& url) QList::iterator start = m_columns.begin() + columnIndex; QList::iterator end = m_columns.end(); for (QList::iterator it = start; it != end; ++it) { - (*it)->deleteLater(); + deleteColumn(*it); } m_columns.erase(start, end); @@ -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) { @@ -594,7 +560,7 @@ void DolphinColumnView::removeAllColumns() QList::iterator start = m_columns.begin() + 1; QList::iterator end = m_columns.end(); for (QList::iterator it = start; it != end; ++it) { - (*it)->deleteLater(); + deleteColumn(*it); } m_columns.erase(start, end); m_index = 0; @@ -608,4 +574,15 @@ QPoint DolphinColumnView::columnPosition(DolphinColumnWidget* column, const QPoi return QPoint(point.x() - topLeft.x(), point.y() - topLeft.y()); } +void DolphinColumnView::deleteColumn(DolphinColumnWidget* column) +{ + if (column != 0) { + if (m_controller->itemView() == column) { + m_controller->setItemView(0); + } + column->disconnect(); + column->deleteLater(); + } +} + #include "dolphincolumnview.moc"