diff options
author | Friedemann Kleint <Friedemann.Kleint@nokia.com> | 2011-11-28 14:33:54 +0100 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2011-11-28 16:57:58 +0100 |
commit | b8d330904b279de57d70caef70ab2d2a6770f0cc (patch) | |
tree | a9edf91fa9b80142bdcdf2912b2701704bf7ca6c /src/widgets/itemviews/qfileiconprovider.cpp | |
parent | f6c107d799d14bbdb2cb71b8446483541bb0adb5 (diff) |
QtGui: Bring back HBITMAP/HICON conversion functions.
- Move the conversion functions from the Lighthouse plugin
to QtGui as qt_pixmap/From/To/HBITMAP/HICON().
- Re-enable them in Widgets (QFileIconProvider, QWindowsStyle).
- Use them in QtPrintSupport.
Change-Id: I1436bc604160d94c78ef270ad2b31bf3b20b5c90
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
Diffstat (limited to 'src/widgets/itemviews/qfileiconprovider.cpp')
-rw-r--r-- | src/widgets/itemviews/qfileiconprovider.cpp | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/src/widgets/itemviews/qfileiconprovider.cpp b/src/widgets/itemviews/qfileiconprovider.cpp index d4dd9e8ff6..1821171de8 100644 --- a/src/widgets/itemviews/qfileiconprovider.cpp +++ b/src/widgets/itemviews/qfileiconprovider.cpp @@ -46,11 +46,14 @@ #include <qapplication.h> #include <qdir.h> #include <qpixmapcache.h> -#if defined(Q_WS_WIN) +#if defined(Q_OS_WIN) # define _WIN32_IE 0x0500 # include <qt_windows.h> # include <commctrl.h> # include <objbase.h> + +Q_GUI_EXPORT QPixmap qt_pixmapFromWinHICON(HICON icon); + #elif defined(Q_WS_MAC) # include <private/qt_cocoa_helpers_mac_p.h> #endif @@ -96,7 +99,7 @@ class QFileIconProviderPrivate public: QFileIconProviderPrivate(); QIcon getIcon(QStyle::StandardPixmap name) const; -#ifdef Q_WS_WIN +#ifdef Q_OS_WIN QIcon getWinIcon(const QFileInfo &fi) const; #elif defined(Q_WS_MAC) QIcon getMacIcon(const QFileInfo &fi) const; @@ -229,7 +232,7 @@ QIcon QFileIconProvider::icon(IconType type) const return QIcon(); } -#ifdef Q_WS_WIN +#ifdef Q_OS_WIN QIcon QFileIconProviderPrivate::getWinIcon(const QFileInfo &fileInfo) const { QIcon retIcon; @@ -284,7 +287,7 @@ QIcon QFileIconProviderPrivate::getWinIcon(const QFileInfo &fileInfo) const } if (pixmap.isNull()) { #ifndef Q_OS_WINCE - pixmap = QPixmap::fromWinHICON(info.hIcon); + pixmap = qt_pixmapFromWinHICON(info.hIcon); #else pixmap = QPixmap::fromWinHICON(ImageList_GetIcon((HIMAGELIST) val, info.iIcon, ILD_NORMAL)); #endif @@ -314,7 +317,7 @@ QIcon QFileIconProviderPrivate::getWinIcon(const QFileInfo &fileInfo) const key = QString::fromLatin1("qt_dir_%1").arg(info.iIcon); } #ifndef Q_OS_WINCE - pixmap = QPixmap::fromWinHICON(info.hIcon); + pixmap = qt_pixmapFromWinHICON(info.hIcon); #else pixmap = QPixmap::fromWinHICON(ImageList_GetIcon((HIMAGELIST) val, info.iIcon, ILD_NORMAL)); #endif @@ -418,13 +421,13 @@ QIcon QFileIconProvider::icon(const QFileInfo &info) const QIcon retIcon = d->getMacIcon(info); if (!retIcon.isNull()) return retIcon; -#elif defined Q_WS_WIN +#elif defined Q_OS_WIN QIcon icon = d->getWinIcon(info); if (!icon.isNull()) return icon; #endif if (info.isRoot()) -#if defined (Q_WS_WIN) && !defined(Q_WS_WINCE) +#if defined (Q_OS_WIN) && !defined(Q_WS_WINCE) { UINT type = GetDriveType((wchar_t *)info.absoluteFilePath().utf16()); @@ -482,7 +485,7 @@ QString QFileIconProvider::type(const QFileInfo &info) const } if (info.isDir()) -#ifdef Q_WS_WIN +#ifdef Q_OS_WIN return QApplication::translate("QFileDialog", "File Folder", "Match Windows Explorer"); #else return QApplication::translate("QFileDialog", "Folder", "All other platforms"); |