+void DolphinDetailsView::zoomIn()
+{
+ if (isZoomInPossible()) {
+ DetailsModeSettings* settings = DolphinSettings::instance().detailsModeSettings();
+ // TODO: get rid of K3Icon sizes
+ switch (settings->iconSize()) {
+ case K3Icon::SizeSmall: settings->setIconSize(K3Icon::SizeMedium); break;
+ case K3Icon::SizeMedium: settings->setIconSize(K3Icon::SizeLarge); break;
+ default: Q_ASSERT(false); break;
+ }
+ updateDecorationSize();
+ }
+}
+
+void DolphinDetailsView::zoomOut()
+{
+ if (isZoomOutPossible()) {
+ DetailsModeSettings* settings = DolphinSettings::instance().detailsModeSettings();
+ // TODO: get rid of K3Icon sizes
+ switch (settings->iconSize()) {
+ case K3Icon::SizeLarge: settings->setIconSize(K3Icon::SizeMedium); break;
+ case K3Icon::SizeMedium: settings->setIconSize(K3Icon::SizeSmall); break;
+ default: Q_ASSERT(false); break;
+ }
+ updateDecorationSize();
+ }
+}
+
+bool DolphinDetailsView::isZoomInPossible() const
+{
+ DetailsModeSettings* settings = DolphinSettings::instance().detailsModeSettings();
+ return settings->iconSize() < K3Icon::SizeLarge;
+}
+
+bool DolphinDetailsView::isZoomOutPossible() const
+{
+ DetailsModeSettings* settings = DolphinSettings::instance().detailsModeSettings();
+ return settings->iconSize() > K3Icon::SizeSmall;
+}
+
+void DolphinDetailsView::updateDecorationSize()
+{
+ DetailsModeSettings* settings = DolphinSettings::instance().detailsModeSettings();
+ const int iconSize = settings->iconSize();
+ m_viewOptions.decorationSize = QSize(iconSize, iconSize);
+
+ m_controller->setZoomInPossible(isZoomInPossible());
+ m_controller->setZoomOutPossible(isZoomOutPossible());
+
+ doItemsLayout();
+}
+