MCPcopy Create free account
hub / github.com/altairwei/WizNotePlus / icon

Method icon

src/share/WizFileIconProvider.cpp:37–81  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

35#endif
36
37QIcon WizFileIconProvider::icon(const QString& strFilePath) const
38{
39 QFileInfo fi(strFilePath);
40 if (!fi.exists())
41 return QFileIconProvider::icon(QFileIconProvider::File);
42
43 QIcon retIcon = QFileIconProvider::icon(fi);
44 if (!retIcon.isNull())
45 return retIcon;
46 //
47#if defined(Q_OS_WIN)
48 for (int i = 0; i < 2; i++)
49 {
50 long flags = SHGFI_ICON|SHGFI_SYSICONINDEX|SHGFI_ADDOVERLAYS|SHGFI_OVERLAYINDEX | SHGFI_USEFILEATTRIBUTES;
51 flags |= (i == 0 ? SHGFI_SMALLICON : SHGFI_LARGEICON);
52 //
53 SHFILEINFO info;
54 memset(&info, 0, sizeof(SHFILEINFO));
55 unsigned long val = SHGetFileInfo((const wchar_t *)QDir::toNativeSeparators(strFilePath).utf16(), 0, &info,
56 sizeof(SHFILEINFO), flags);
57 //
58 if (val && info.hIcon)
59 {
60 QPixmap pixmap = qt_pixmapFromWinHICON(info.hIcon);
61 if (!pixmap.isNull())
62 {
63 retIcon.addPixmap(pixmap);
64 }
65 else
66 {
67 qWarning("QFileIconProviderPrivate::getWinIcon() no small icon found");
68 }
69 //
70 DestroyIcon(info.hIcon);
71 }
72 }
73#elif defined (Q_OS_MAC)
74 QString strTempFileName = Utils::WizPathResolve::tempPath() + "test" + Utils::WizMisc::extractFileExt(strFilePath);
75 ::WizSaveDataToFile(strTempFileName, QByteArray());
76 retIcon = QFileIconProvider::icon(QFileInfo(strTempFileName));
77 ::WizDeleteFile(strTempFileName);
78#endif
79 //
80 return retIcon;
81}
82
83
84QString WizFileIconProvider::type(const QString& strFileName) const

Callers

nothing calls this directly

Calls 5

WizSaveDataToFileFunction · 0.85
QByteArrayClass · 0.85
QFileInfoClass · 0.85
WizDeleteFileFunction · 0.85
isNullMethod · 0.80

Tested by

no test coverage detected