]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/zoomlevelinfo.cpp
Group classes into folders, Dolphin is too big in the meantime for having a flat...
[dolphin.git] / src / zoomlevelinfo.cpp
index 174a910d65f89af6eb0bc66e640f7afd4c31a746..08e95e3cafdac0c0a56a4b9fa4075452095e177d 100644 (file)
@@ -28,22 +28,19 @@ int ZoomLevelInfo::minimumLevel()
 
 int ZoomLevelInfo::maximumLevel()
 {
-    return 7;
+    return 16;
 }
 
 int ZoomLevelInfo::iconSizeForZoomLevel(int level)
 {
     int size = KIconLoader::SizeMedium;
     switch (level) {
-    case 0: size = KIconLoader::SizeSmall; break; 
-    case 1: size = KIconLoader::SizeSmallMedium; break;
-    case 2: size = KIconLoader::SizeMedium; break;
-    case 3: size = KIconLoader::SizeLarge; break;
-    case 4: size = KIconLoader::SizeHuge; break;
-    case 5: size = KIconLoader::SizeEnormous; break;
-    case 6: size = KIconLoader::SizeEnormous * 3 / 2; break;
-    case 7: size = KIconLoader::SizeEnormous * 2; break;
-    default: Q_ASSERT(false); break;
+    case 0:  size = KIconLoader::SizeSmall; break;
+    case 1:  size = KIconLoader::SizeSmallMedium; break;
+    case 2:  size = KIconLoader::SizeMedium; break;
+    case 3:  size = KIconLoader::SizeLarge; break;
+    case 4:  size = KIconLoader::SizeHuge; break;
+    default: size = KIconLoader::SizeHuge + ((level - 4) << 4);
     }
     return size;
 }
@@ -52,15 +49,12 @@ int ZoomLevelInfo::zoomLevelForIconSize(const QSize& size)
 {
     int level = 0;
     switch (size.height()) {
-    case KIconLoader::SizeSmall:            level = 0; break;
-    case KIconLoader::SizeSmallMedium:      level = 1; break;
-    case KIconLoader::SizeMedium:           level = 2; break;
-    case KIconLoader::SizeLarge:            level = 3; break;
-    case KIconLoader::SizeHuge:             level = 4; break;
-    case KIconLoader::SizeEnormous:         level = 5; break;
-    case KIconLoader::SizeEnormous * 3 / 2: level = 6; break;
-    case KIconLoader::SizeEnormous * 2:     level = 7; break;
-    default: Q_ASSERT(false);               level = 3; break;
+    case KIconLoader::SizeSmall:       level = 0; break;
+    case KIconLoader::SizeSmallMedium: level = 1; break;
+    case KIconLoader::SizeMedium:      level = 2; break;
+    case KIconLoader::SizeLarge:       level = 3; break;
+    case KIconLoader::SizeHuge:        level = 4; break;
+    default: level = 4 + ((size.height() - KIconLoader::SizeHuge) >> 4);
     }
     return level;
 }