File indexing completed on 2024-05-05 05:48:21
0001 /* 0002 * SPDX-FileCopyrightText: 2008 Peter Penz <peter.penz19@gmail.com> 0003 * 0004 * SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 0007 #include "zoomlevelinfo.h" 0008 0009 #include <KIconLoader> 0010 0011 #include <QSize> 0012 0013 int ZoomLevelInfo::minimumLevel() 0014 { 0015 return 0; 0016 } 0017 0018 int ZoomLevelInfo::maximumLevel() 0019 { 0020 return 16; 0021 } 0022 0023 int ZoomLevelInfo::iconSizeForZoomLevel(int level) 0024 { 0025 int size = KIconLoader::SizeMedium; 0026 switch (level) { 0027 case 0: 0028 size = KIconLoader::SizeSmall; 0029 break; 0030 case 1: 0031 size = KIconLoader::SizeSmallMedium; 0032 break; 0033 case 2: 0034 size = KIconLoader::SizeMedium; 0035 break; 0036 case 3: 0037 size = KIconLoader::SizeLarge; 0038 break; 0039 case 4: 0040 size = KIconLoader::SizeHuge; 0041 break; 0042 default: 0043 size = KIconLoader::SizeHuge + ((level - 4) << 4); 0044 } 0045 return size; 0046 } 0047 0048 int ZoomLevelInfo::zoomLevelForIconSize(const QSize &size) 0049 { 0050 int level = 0; 0051 switch (size.height()) { 0052 case KIconLoader::SizeSmall: 0053 level = 0; 0054 break; 0055 case KIconLoader::SizeSmallMedium: 0056 level = 1; 0057 break; 0058 case KIconLoader::SizeMedium: 0059 level = 2; 0060 break; 0061 case KIconLoader::SizeLarge: 0062 level = 3; 0063 break; 0064 case KIconLoader::SizeHuge: 0065 level = 4; 0066 break; 0067 default: 0068 level = 4 + ((size.height() - KIconLoader::SizeHuge) >> 4); 0069 } 0070 return level; 0071 }