+void DolphinIconsView::zoomIn()
+{
+ if (isZoomInPossible()) {
+ IconsModeSettings* settings = DolphinSettings::instance().iconsModeSettings();
+
+ const int oldIconSize = settings->iconSize();
+ int newIconSize = oldIconSize;
+
+ const bool showPreview = m_controller->showPreview();
+ if (showPreview) {
+ const int previewSize = increasedIconSize(settings->previewSize());
+ settings->setPreviewSize(previewSize);
+ } else {
+ newIconSize = increasedIconSize(oldIconSize);
+ settings->setIconSize(newIconSize);
+ if (settings->previewSize() < newIconSize) {
+ // assure that the preview size is always >= the icon size
+ settings->setPreviewSize(newIconSize);
+ }
+ }
+
+ // increase also the grid size
+ const int diff = newIconSize - oldIconSize;
+ settings->setGridWidth(settings->gridWidth() + diff);
+ settings->setGridHeight(settings->gridHeight() + diff);
+
+ updateGridSize(showPreview);
+ }
+}
+
+void DolphinIconsView::zoomOut()
+{
+ if (isZoomOutPossible()) {
+ IconsModeSettings* settings = DolphinSettings::instance().iconsModeSettings();
+
+ const int oldIconSize = settings->iconSize();
+ int newIconSize = oldIconSize;
+
+ const bool showPreview = m_controller->showPreview();
+ if (showPreview) {
+ const int previewSize = decreasedIconSize(settings->previewSize());
+ settings->setPreviewSize(previewSize);
+ if (settings->iconSize() > previewSize) {
+ // assure that the icon size is always <= the preview size
+ newIconSize = previewSize;
+ settings->setIconSize(newIconSize);
+ }
+ } else {
+ newIconSize = decreasedIconSize(settings->iconSize());
+ settings->setIconSize(newIconSize);
+ }
+
+ // decrease also the grid size
+ const int diff = oldIconSize - newIconSize;
+ settings->setGridWidth(settings->gridWidth() - diff);
+ settings->setGridHeight(settings->gridHeight() - diff);
+
+ updateGridSize(showPreview);
+ }
+}