43 case QStyle::SP_FileIcon:
45 file = QApplication::style()->standardIcon(name);
47 case QStyle::SP_FileLinkIcon:
48 if (fileLink.isNull())
49 fileLink = QApplication::style()->standardIcon(name);
51 case QStyle::SP_DirIcon:
52 if (directory.isNull())
53 directory = QApplication::style()->standardIcon(name);
55 case QStyle::SP_DirLinkIcon:
56 if (directoryLink.isNull())
57 directoryLink = QApplication::style()->standardIcon(name);
59 case QStyle::SP_DriveHDIcon:
60 if (harddisk.isNull())
61 harddisk = QApplication::style()->standardIcon(name);
63 case QStyle::SP_DriveFDIcon:
65 floppy = QApplication::style()->standardIcon(name);
67 case QStyle::SP_DriveCDIcon:
69 cdrom = QApplication::style()->standardIcon(name);
71 case QStyle::SP_DriveNetIcon:
73 network = QApplication::style()->standardIcon(name);
75 case QStyle::SP_ComputerIcon:
76 if (computer.isNull())
77 computer = QApplication::style()->standardIcon(name);
79 case QStyle::SP_DesktopIcon:
81 desktop = QApplication::style()->standardIcon(name);
83 case QStyle::SP_TrashIcon:
84 if (trashcan.isNull())
85 trashcan = QApplication::style()->standardIcon(name);
87 case QStyle::SP_DirHomeIcon:
89 home = QApplication::style()->standardIcon(name);
116QIcon QFileIconProvider::icon(IconType type)
const
118 Q_D(
const QFileIconProvider);
121 return d->getIcon(QStyle::SP_ComputerIcon);
123 return d->getIcon(QStyle::SP_DesktopIcon);
125 return d->getIcon(QStyle::SP_TrashIcon);
127 return d->getIcon(QStyle::SP_DriveNetIcon);
129 return d->getIcon(QStyle::SP_DriveHDIcon);
131 return d->getIcon(QStyle::SP_DirIcon);
133 return d->getIcon(QStyle::SP_FileIcon);
149QIcon QFileIconProvider::icon(
const QFileInfo &info)
const
151 Q_D(
const QFileIconProvider);
153 QIcon retIcon = d->getIcon(info);
154 if (!retIcon.isNull())
157 const QString &path = info.absoluteFilePath();
158 if (path.isEmpty() || QFileSystemEntry::isRootPath(path))
159#if defined (Q_OS_WIN)
161 UINT type = GetDriveType(
reinterpret_cast<
const wchar_t *>(path.utf16()));
164 case DRIVE_REMOVABLE:
165 return d->getIcon(QStyle::SP_DriveFDIcon);
167 return d->getIcon(QStyle::SP_DriveHDIcon);
169 return d->getIcon(QStyle::SP_DriveNetIcon);
171 return d->getIcon(QStyle::SP_DriveCDIcon);
174 case DRIVE_NO_ROOT_DIR:
176 return d->getIcon(QStyle::SP_DriveHDIcon);
180 return d->getIcon(QStyle::SP_DriveHDIcon);
184 if (info.isSymLink())
185 return d->getIcon(QStyle::SP_FileLinkIcon);
187 return d->getIcon(QStyle::SP_FileIcon);
190 if (info.isSymLink()) {
191 return d->getIcon(QStyle::SP_DirLinkIcon);
193 if (info.absoluteFilePath() == d->homePath) {
194 return d->getIcon(QStyle::SP_DirHomeIcon);
196 return d->getIcon(QStyle::SP_DirIcon);