diff options
27 files changed, 163 insertions, 115 deletions
diff --git a/.qmake.conf b/.qmake.conf index d920a9c..097d8b9 100644 --- a/.qmake.conf +++ b/.qmake.conf @@ -1,3 +1,3 @@ load(qt_build_config) -MODULE_VERSION = 5.11.3 +MODULE_VERSION = 5.12.0 diff --git a/dist/changes-5.12.0 b/dist/changes-5.12.0 new file mode 100644 index 0000000..b313545 --- /dev/null +++ b/dist/changes-5.12.0 @@ -0,0 +1,24 @@ +Qt 5.12 introduces many new features and improvements as well as bugfixes +over the 5.11.x series. For more details, refer to the online documentation +included in this distribution. The documentation is also available online: + +https://doc.qt.io/qt-5/index.html + +The Qt version 5.12 series is binary compatible with the 5.11.x series. +Applications compiled for 5.11 will continue to run with 5.12. + +Some of the changes listed in this file include issue tracking numbers +corresponding to tasks in the Qt Bug Tracker: + +https://bugreports.qt.io/ + +Each of these identifiers can be entered in the bug tracker to obtain more +information about a particular change. + +**************************************************************************** +* QtWin * +**************************************************************************** + + - [QTBUG-51124] Added functions imageToHBITMAP() and imageFromHBITMAP() + for conversion between QImage and HBITMAP, preserving the format where + possible. diff --git a/examples/winextras/iconextractor/main.cpp b/examples/winextras/iconextractor/main.cpp index d630f9b..0d7ebbd 100644 --- a/examples/winextras/iconextractor/main.cpp +++ b/examples/winextras/iconextractor/main.cpp @@ -189,17 +189,15 @@ static PixmapEntryList extractShellIcons(const QString &sourceFile, bool addOver if (!QFileInfo(sourceFile).isDir()) baseFlags |= SHGFI_USEFILEATTRIBUTES; - const size_t modeEntryCount = sizeof(modeEntries) / sizeof(modeEntries[0]); - const size_t standardSizeEntryCount = sizeof(standardSizeEntries) / sizeof(standardSizeEntries[0]); PixmapEntryList result; - for (size_t m = 0; m < modeEntryCount; ++m) { - const unsigned modeFlags = baseFlags | modeEntries[m].flags; + for (auto modeEntry : modeEntries) { + const unsigned modeFlags = baseFlags | modeEntry.flags; QString modePrefix = QLatin1String("_shell_"); - if (modeEntries[m].name[0]) - modePrefix += QLatin1String(modeEntries[m].name) + QLatin1Char('_'); - for (size_t s = 0; s < standardSizeEntryCount; ++s) { - const unsigned flags = modeFlags | standardSizeEntries[s].flags; - const QString prefix = modePrefix + QLatin1String(standardSizeEntries[s].name) + if (modeEntry.name[0]) + modePrefix += QLatin1String(modeEntry.name) + QLatin1Char('_'); + for (auto standardSizeEntry : standardSizeEntries) { + const unsigned flags = modeFlags | standardSizeEntry.flags; + const QString prefix = modePrefix + QLatin1String(standardSizeEntry.name) + QLatin1Char('_'); ZeroMemory(&info, sizeof(SHFILEINFO)); const HRESULT hr = SHGetFileInfo(sourceFileC, 0, &info, sizeof(SHFILEINFO), flags); @@ -280,7 +278,7 @@ int main(int argc, char *argv[]) const QCommandLineOption shellOverlayOption(QStringLiteral("overlay"), QStringLiteral("Extract shell overlay icons")); parser.addOption(shellOverlayOption); parser.addPositionalArgument(QStringLiteral("file"), QStringLiteral("The file to open.")); - parser.addPositionalArgument(QStringLiteral("image file folder"), QStringLiteral("The folder to store the images.")); + parser.addPositionalArgument(QStringLiteral("image_file_folder"), QStringLiteral("The folder to store the images.")); parser.process(app); const QStringList &positionalArguments = parser.positionalArguments(); if (positionalArguments.isEmpty()) @@ -299,9 +297,9 @@ int main(int argc, char *argv[]) ? extractShellIcons(sourceFile, parser.isSet(shellOverlayOption)) : extractIcons(sourceFile, parser.isSet(largeIconOption)); - for (int i = 0, count = pixmaps.size(); i < count; ++i) { - const QString fileName = imageFileRoot + pixmaps.at(i).name + QLatin1String(".png"); - if (!pixmaps.at(i).pixmap.save(fileName)) { + for (const auto &entry : pixmaps) { + const QString fileName = imageFileRoot + entry.name + QLatin1String(".png"); + if (!entry.pixmap.save(fileName)) { std::wcerr << "Error writing image file " << fileName << ".\n"; return 1; } diff --git a/qtwinextras.pro b/qtwinextras.pro index 7afe1e3..62840da 100644 --- a/qtwinextras.pro +++ b/qtwinextras.pro @@ -1,3 +1,3 @@ -requires(!winrt:!wince) +requires(!winrt) load(qt_parts) diff --git a/src/imports/winextras/plugin.cpp b/src/imports/winextras/plugin.cpp index 55be331..a2009b0 100644 --- a/src/imports/winextras/plugin.cpp +++ b/src/imports/winextras/plugin.cpp @@ -47,14 +47,7 @@ #include "qquickthumbnailtoolbutton_p.h" #include "qquickwin_p.h" -#include <QtQml/QtQml> - -static void initResources() -{ -#ifdef QT_STATIC - Q_INIT_RESOURCE(qmake_QtWinExtras); -#endif -} +#include <QtQml/qqmlextensionplugin.h> QT_BEGIN_NAMESPACE @@ -64,7 +57,7 @@ class QWinExtrasQmlPlugin : public QQmlExtensionPlugin Q_PLUGIN_METADATA(IID QQmlExtensionInterface_iid) public: - QWinExtrasQmlPlugin(QObject *parent = 0) : QQmlExtensionPlugin(parent) { initResources(); } + QWinExtrasQmlPlugin(QObject *parent = 0) : QQmlExtensionPlugin(parent) { } void registerTypes(const char *uri) Q_DECL_OVERRIDE { Q_ASSERT(uri == QLatin1String("QtWinExtras")); diff --git a/src/src.pro b/src/src.pro index 5d8fdba..fceeb21 100644 --- a/src/src.pro +++ b/src/src.pro @@ -6,5 +6,6 @@ win32 { } else { # fake project for creating the documentation TEMPLATE = aux + CONFIG += force_qt QMAKE_DOCS = $$PWD/winextras/doc/qtwinextras.qdocconf } diff --git a/src/winextras/doc/qtwinextras.qdocconf b/src/winextras/doc/qtwinextras.qdocconf index 56262e5..c6238f2 100644 --- a/src/winextras/doc/qtwinextras.qdocconf +++ b/src/winextras/doc/qtwinextras.qdocconf @@ -12,8 +12,7 @@ examplesinstallpath = winextras moduleheader = QtWinExtrasDoc includepaths = -I . \ - -I .. \ - -I $QT_INSTALL_HEADERS + -I .. headerdirs = .. ../../imports/winextras sourcedirs = .. ../../imports/winextras diff --git a/src/winextras/doc/snippets/code/jumplist.cpp b/src/winextras/doc/snippets/code/jumplist.cpp index 2527528..6f8221e 100644 --- a/src/winextras/doc/snippets/code/jumplist.cpp +++ b/src/winextras/doc/snippets/code/jumplist.cpp @@ -54,19 +54,16 @@ void foo() { //! [jumplist] QWinJumpList jumplist; - jumplist.begin(); - jumplist.setKnownCategoryShown(QWinJumpList::RecentCategory); - - jumplist.beginTasks(); + QWinJumpListCategory *tasks = jumplist.tasks(); QWinJumpListItem *newProject = new QWinJumpListItem(QWinJumpListItem::Link); newProject->setTitle(tr("Create new project")); newProject->setFilePath(QDir::toNativeSeparators(QCoreApplication::applicationFilePath())); newProject->setArguments(QStringList("--new-project")); - jumplist.addItem(newProject); + tasks->addItem(newProject); - jumplist.addLink(tr("Launch SDK Manager"), QDir::toNativeSeparators(QCoreApplication::applicationDirPath()) + "\\sdk-manager.exe"); + tasks->addLink(tr("Launch SDK Manager"), QDir::toNativeSeparators(QCoreApplication::applicationDirPath()) + "\\sdk-manager.exe"); - jumplist.commit(); + tasks->setVisible(true); //! [jumplist] } diff --git a/src/winextras/qwinevent.cpp b/src/winextras/qwinevent.cpp index 13642f4..a1e77b4 100644 --- a/src/winextras/qwinevent.cpp +++ b/src/winextras/qwinevent.cpp @@ -49,24 +49,18 @@ QWinEvent::QWinEvent(int type) : QEvent(static_cast<QEvent::Type>(type)) { } -QWinEvent::~QWinEvent() -{ -} +QWinEvent::~QWinEvent() = default; QWinColorizationChangeEvent::QWinColorizationChangeEvent(QRgb color, bool opaque) : QWinEvent(ColorizationChange), rgb(color), opaque(opaque) { } -QWinColorizationChangeEvent::~QWinColorizationChangeEvent() -{ -} +QWinColorizationChangeEvent::~QWinColorizationChangeEvent() = default; QWinCompositionChangeEvent::QWinCompositionChangeEvent(bool enabled) : QWinEvent(CompositionChange), enabled(enabled) { } -QWinCompositionChangeEvent::~QWinCompositionChangeEvent() -{ -} +QWinCompositionChangeEvent::~QWinCompositionChangeEvent() = default; diff --git a/src/winextras/qwineventfilter.cpp b/src/winextras/qwineventfilter.cpp index 4ec3bdc..be9add4 100644 --- a/src/winextras/qwineventfilter.cpp +++ b/src/winextras/qwineventfilter.cpp @@ -40,8 +40,8 @@ #include "qwineventfilter_p.h" #include "qwinfunctions.h" #include "qwinevent.h" -#include <QGuiApplication> -#include <QWindow> +#include <QtGui/qguiapplication.h> +#include <QtGui/qwindow.h> #ifndef WM_DWMCOLORIZATIONCOLORCHANGED # define WM_DWMCOLORIZATIONCOLORCHANGED 0x0320 diff --git a/src/winextras/qwineventfilter_p.h b/src/winextras/qwineventfilter_p.h index 21bb5c5..12b9d58 100644 --- a/src/winextras/qwineventfilter_p.h +++ b/src/winextras/qwineventfilter_p.h @@ -52,8 +52,8 @@ // #include <QtWinExtras/qwinextrasglobal.h> -#include <QAbstractNativeEventFilter> -#include <qt_windows.h> +#include <QtCore/qabstractnativeeventfilter.h> +#include <QtCore/qt_windows.h> QT_BEGIN_NAMESPACE diff --git a/src/winextras/qwinfunctions.cpp b/src/winextras/qwinfunctions.cpp index 7b102a8..82fd25b 100644 --- a/src/winextras/qwinfunctions.cpp +++ b/src/winextras/qwinfunctions.cpp @@ -50,15 +50,15 @@ #include "qwineventfilter_p.h" #include "windowsguidsdefs_p.h" -#include <QGuiApplication> -#include <QWindow> -#include <QSettings> -#include <QPixmap> -#include <QBitmap> -#include <QImage> -#include <QColor> -#include <QRegion> -#include <QMargins> +#include <QtGui/qguiapplication.h> +#include <QtGui/qwindow.h> +#include <QtGui/qpixmap.h> +#include <QtGui/qbitmap.h> +#include <QtGui/qimage.h> +#include <QtGui/qcolor.h> +#include <QtGui/qregion.h> +#include <QtCore/qmargins.h> +#include <QtCore/qsettings.h> #include <comdef.h> #include "winshobjidl_p.h" @@ -69,6 +69,8 @@ Q_GUI_EXPORT HBITMAP qt_createIconMask(const QBitmap &bitmap); Q_GUI_EXPORT HBITMAP qt_pixmapToWinHBITMAP(const QPixmap &p, int hbitmapFormat = 0); Q_GUI_EXPORT QPixmap qt_pixmapFromWinHBITMAP(HBITMAP bitmap, int hbitmapFormat = 0); Q_GUI_EXPORT HICON qt_pixmapToWinHICON(const QPixmap &p); +Q_GUI_EXPORT HBITMAP qt_imageToWinHBITMAP(const QImage &imageIn, int hbitmapFormat = 0); +Q_GUI_EXPORT QImage qt_imageFromWinHBITMAP(HBITMAP bitmap, int hbitmapFormat = 0); Q_GUI_EXPORT QImage qt_imageFromWinHBITMAP(HDC hdc, HBITMAP bitmap, int w, int h); Q_GUI_EXPORT QPixmap qt_pixmapFromWinHICON(HICON icon); @@ -139,6 +141,22 @@ HICON QtWin::toHICON(const QPixmap &p) } /*! + \since 5.12 + + Creates a \c HBITMAP equivalent of the QImage \a image, + based on the given \a format. Returns the \c HBITMAP handle. + + It is the caller's responsibility to free the \c HBITMAP data + after use. + + \sa imageFromHBITMAP() +*/ +HBITMAP QtWin::imageToHBITMAP(const QImage &image, QtWin::HBitmapFormat format) +{ + return qt_imageToWinHBITMAP(image, format); +} + +/*! \since 5.2 Returns a QImage that is equivalent to the @@ -153,6 +171,19 @@ QImage QtWin::imageFromHBITMAP(HDC hdc, HBITMAP bitmap, int width, int height) } /*! + \since 5.12 + + Returns a QImage that is equivalent to the + given \a bitmap. The conversion is based on the specified \a format. + + \sa imageToHBITMAP() +*/ +QImage QtWin::imageFromHBITMAP(HBITMAP bitmap, QtWin::HBitmapFormat format) +{ + return qt_imageFromWinHBITMAP(bitmap, format); +} + +/*! \since 5.2 Returns a QPixmap that is equivalent to the given \a icon. diff --git a/src/winextras/qwinfunctions.h b/src/winextras/qwinfunctions.h index bc07401..fe461d1 100644 --- a/src/winextras/qwinfunctions.h +++ b/src/winextras/qwinfunctions.h @@ -81,7 +81,9 @@ namespace QtWin Q_WINEXTRAS_EXPORT HBITMAP toHBITMAP(const QPixmap &p, HBitmapFormat format = HBitmapNoAlpha); Q_WINEXTRAS_EXPORT QPixmap fromHBITMAP(HBITMAP bitmap, HBitmapFormat format = HBitmapNoAlpha); Q_WINEXTRAS_EXPORT HICON toHICON(const QPixmap &p); + Q_WINEXTRAS_EXPORT HBITMAP imageToHBITMAP(const QImage &image, QtWin::HBitmapFormat format = HBitmapNoAlpha); Q_WINEXTRAS_EXPORT QImage imageFromHBITMAP(HDC hdc, HBITMAP bitmap, int width, int height); + Q_WINEXTRAS_EXPORT QImage imageFromHBITMAP(HBITMAP bitmap, QtWin::HBitmapFormat format = HBitmapNoAlpha); Q_WINEXTRAS_EXPORT QPixmap fromHICON(HICON icon); Q_WINEXTRAS_EXPORT HRGN toHRGN(const QRegion ®ion); Q_WINEXTRAS_EXPORT QRegion fromHRGN(HRGN hrgn); diff --git a/src/winextras/qwinfunctions_p.h b/src/winextras/qwinfunctions_p.h index a69e52c..03dff5e 100644 --- a/src/winextras/qwinfunctions_p.h +++ b/src/winextras/qwinfunctions_p.h @@ -51,8 +51,8 @@ // We mean it. // -#include <QString> -#include <qt_windows.h> +#include <QtCore/qstring.h> +#include <QtCore/qt_windows.h> #include <uxtheme.h> #include <dwmapi.h> @@ -69,10 +69,10 @@ namespace QtDwmApiDll template <class T> static T windowAttribute(HWND hwnd, DWORD attribute, T defaultValue); template <class T> static void setWindowAttribute(HWND hwnd, DWORD attribute, T value); - static bool booleanWindowAttribute(HWND hwnd, DWORD attribute) + inline bool booleanWindowAttribute(HWND hwnd, DWORD attribute) { return QtDwmApiDll::windowAttribute<BOOL>(hwnd, attribute, FALSE) != FALSE; } - static void setBooleanWindowAttribute(HWND hwnd, DWORD attribute, bool value) + inline void setBooleanWindowAttribute(HWND hwnd, DWORD attribute, bool value) { setWindowAttribute<BOOL>(hwnd, attribute, BOOL(value ? TRUE : FALSE)); } }; diff --git a/src/winextras/qwinjumplist.cpp b/src/winextras/qwinjumplist.cpp index 94b8e81..ca1b20a 100644 --- a/src/winextras/qwinjumplist.cpp +++ b/src/winextras/qwinjumplist.cpp @@ -38,7 +38,7 @@ ** ****************************************************************************/ -#include <QtCore/QtGlobal> +#include <QtCore/qglobal.h> #ifdef Q_CC_MINGW // MinGW: Enable SHCreateItemFromParsingName() # if defined(_WIN32_IE) && _WIN32_IE < 0x0700 // _WIN32_IE_IE70 @@ -57,11 +57,11 @@ #include "windowsguidsdefs_p.h" #include "winpropkey_p.h" -#include <QDir> -#include <QtCore/QDebug> -#include <QCoreApplication> -#include <QRegularExpression> -#include <qt_windows.h> +#include <QtCore/qdir.h> +#include <QtCore/qdebug.h> +#include <QtCore/qcoreapplication.h> +#include <QtCore/qregularexpression.h> +#include <QtCore/qt_windows.h> #include <propvarutil.h> #include "qwinfunctions.h" @@ -120,7 +120,8 @@ void QWinJumpListPrivate::warning(const char *function, HRESULT hresult) QString QWinJumpListPrivate::iconsDirPath() { - QString iconDirPath = QDir::tempPath() + QLatin1Char('/') + QCoreApplication::instance()->applicationName() + QLatin1String("/qt-jl-icons/"); + QString iconDirPath = QDir::tempPath() + QLatin1Char('/') + + QCoreApplication::applicationName() + QLatin1String("/qt-jl-icons/"); QDir().mkpath(iconDirPath); return iconDirPath; } diff --git a/src/winextras/qwinjumplistcategory.cpp b/src/winextras/qwinjumplistcategory.cpp index 4410c9c..721a78c 100644 --- a/src/winextras/qwinjumplistcategory.cpp +++ b/src/winextras/qwinjumplistcategory.cpp @@ -38,7 +38,7 @@ ** ****************************************************************************/ -#include <QtCore/QtGlobal> +#include <QtCore/qglobal.h> #ifdef Q_CC_MINGW // MinGW: Include the correct definition of SHARDAPPIDINFOLINK # if defined(NTDDI_VERSION) && NTDDI_VERSION < 0x06010000 @@ -57,7 +57,7 @@ #include "winshobjidl_p.h" #include "windowsguidsdefs_p.h" -#include <QtCore/QDebug> +#include <QtCore/qdebug.h> #include <shlobj.h> diff --git a/src/winextras/qwinjumplistitem.cpp b/src/winextras/qwinjumplistitem.cpp index e20366b..6c183ec 100644 --- a/src/winextras/qwinjumplistitem.cpp +++ b/src/winextras/qwinjumplistitem.cpp @@ -42,8 +42,8 @@ #include "qwinjumplistitem_p.h" #include "qwinjumplistcategory_p.h" -#include <QtCore/QDebug> -#include <QtCore/QDir> +#include <QtCore/qdebug.h> +#include <QtCore/qdir.h> QT_BEGIN_NAMESPACE @@ -86,9 +86,7 @@ QWinJumpListItem::QWinJumpListItem(QWinJumpListItem::Type type) : /*! Destroys the QWinJumpListItem. */ -QWinJumpListItem::~QWinJumpListItem() -{ -} +QWinJumpListItem::~QWinJumpListItem() = default; /*! Sets the item \a type. diff --git a/src/winextras/qwinmime.cpp b/src/winextras/qwinmime.cpp index 0239dca..f0f5232 100644 --- a/src/winextras/qwinmime.cpp +++ b/src/winextras/qwinmime.cpp @@ -39,11 +39,11 @@ #include "qwinmime.h" -#include <QtGui/QGuiApplication> -#include <QtCore/QMetaObject> -#include <QtCore/QDebug> +#include <QtGui/qguiapplication.h> +#include <QtCore/qmetaobject.h> +#include <QtCore/qdebug.h> -#include <qpa/qplatformnativeinterface.h> +#include <QtGui/qpa/qplatformnativeinterface.h> QT_BEGIN_NAMESPACE diff --git a/src/winextras/qwinmime.h b/src/winextras/qwinmime.h index 44d7c07..f9c450f 100644 --- a/src/winextras/qwinmime.h +++ b/src/winextras/qwinmime.h @@ -43,9 +43,9 @@ #include <QtWinExtras/qwinextrasglobal.h> #include <QtCore/qt_windows.h> -#include <QtCore/QVector> -#include <QtCore/QList> -#include <QtCore/QVariant> +#include <QtCore/qvector.h> +#include <QtCore/qlist.h> +#include <QtCore/qvariant.h> QT_BEGIN_NAMESPACE diff --git a/src/winextras/qwintaskbarbutton.cpp b/src/winextras/qwintaskbarbutton.cpp index cedca35..a1475d3 100644 --- a/src/winextras/qwintaskbarbutton.cpp +++ b/src/winextras/qwintaskbarbutton.cpp @@ -48,9 +48,9 @@ #include "winshobjidl_p.h" #include "windowsguidsdefs_p.h" -#include <QWindow> -#include <QIcon> -#include <QPair> +#include <QtGui/qwindow.h> +#include <QtGui/qicon.h> +#include <QtCore/qpair.h> #include <dwmapi.h> #include <shobjidl.h> @@ -152,8 +152,7 @@ void QWinTaskbarButtonPrivate::updateOverlayIcon() if (hicon) DestroyIcon(hicon); - if (descrPtr) - delete[] descrPtr; + delete[] descrPtr; } void QWinTaskbarButtonPrivate::_q_updateProgress() @@ -189,9 +188,7 @@ QWinTaskbarButton::QWinTaskbarButton(QObject *parent) : /*! Destroys the QWinTaskbarButton. */ -QWinTaskbarButton::~QWinTaskbarButton() -{ -} +QWinTaskbarButton::~QWinTaskbarButton() = default; /*! \property QWinTaskbarButton::window diff --git a/src/winextras/qwintaskbarbutton_p.h b/src/winextras/qwintaskbarbutton_p.h index a64f3ac..ceafe47 100644 --- a/src/winextras/qwintaskbarbutton_p.h +++ b/src/winextras/qwintaskbarbutton_p.h @@ -53,9 +53,9 @@ #include "qwintaskbarbutton.h" -#include <QWindow> -#include <QPointer> -#include <qt_windows.h> +#include <QtGui/qwindow.h> +#include <QtCore/qpointer.h> +#include <QtCore/qt_windows.h> struct ITaskbarList4; diff --git a/src/winextras/qwinthumbnailtoolbar.cpp b/src/winextras/qwinthumbnailtoolbar.cpp index 39622d1..3aa39b6 100644 --- a/src/winextras/qwinthumbnailtoolbar.cpp +++ b/src/winextras/qwinthumbnailtoolbar.cpp @@ -52,13 +52,12 @@ #include "windowsguidsdefs_p.h" #include "qwinfunctions.h" -#include <QWindow> -#include <QCoreApplication> -#include <QTimer> -#include <QDebug> +#include <QtGui/qwindow.h> +#include <QtCore/qcoreapplication.h> +#include <QtCore/qtimer.h> +#include <QtCore/qdebug.h> #include "qwinevent.h" -#include "qwinfunctions.h" #include "qwinfunctions_p.h" #include "qwineventfilter_p.h" @@ -120,9 +119,7 @@ QWinThumbnailToolBar::QWinThumbnailToolBar(QObject *parent) : /*! Destroys and clears the QWinThumbnailToolBar. */ -QWinThumbnailToolBar::~QWinThumbnailToolBar() -{ -} +QWinThumbnailToolBar::~QWinThumbnailToolBar() = default; /*! \property QWinThumbnailToolBar::window @@ -519,12 +516,12 @@ void QWinThumbnailToolBarPrivate::_q_updateToolbar() if (FAILED(hresult)) qWarning() << msgComFailed("ThumbBarUpdateButtons", hresult); updateIconicPixmapsEnabled(false); - for (int i = 0; i < windowsLimitedThumbbarSize; i++) { - if (buttons[i].hIcon) { - if (createdIcons.contains(buttons[i].hIcon)) - DestroyIcon(buttons[i].hIcon); + for (auto & button : buttons) { + if (button.hIcon) { + if (createdIcons.contains(button.hIcon)) + DestroyIcon(button.hIcon); else - DeleteObject(buttons[i].hIcon); + DeleteObject(button.hIcon); } } } diff --git a/src/winextras/qwinthumbnailtoolbar_p.h b/src/winextras/qwinthumbnailtoolbar_p.h index dc9fe5b..38d210b 100644 --- a/src/winextras/qwinthumbnailtoolbar_p.h +++ b/src/winextras/qwinthumbnailtoolbar_p.h @@ -53,11 +53,11 @@ #include "qwinthumbnailtoolbar.h" -#include <QtCore/QHash> -#include <QtCore/QList> -#include <QtGui/QIcon> -#include <QtGui/QPixmap> -#include <QtCore/QAbstractNativeEventFilter> +#include <QtCore/qhash.h> +#include <QtCore/qlist.h> +#include <QtGui/qicon.h> +#include <QtGui/qpixmap.h> +#include <QtCore/qabstractnativeeventfilter.h> #include "winshobjidl_p.h" diff --git a/src/winextras/qwinthumbnailtoolbutton.cpp b/src/winextras/qwinthumbnailtoolbutton.cpp index e89815c..9d04324 100644 --- a/src/winextras/qwinthumbnailtoolbutton.cpp +++ b/src/winextras/qwinthumbnailtoolbutton.cpp @@ -80,9 +80,7 @@ QWinThumbnailToolButton::QWinThumbnailToolButton(QObject *parent) : /*! Destroys the QWinThumbnailToolButton. */ -QWinThumbnailToolButton::~QWinThumbnailToolButton() -{ -} +QWinThumbnailToolButton::~QWinThumbnailToolButton() = default; /*! \property QWinThumbnailToolButton::toolTip diff --git a/src/winextras/windowsguidsdefs_p.h b/src/winextras/windowsguidsdefs_p.h index d0e0788..73dc0e7 100644 --- a/src/winextras/windowsguidsdefs_p.h +++ b/src/winextras/windowsguidsdefs_p.h @@ -51,8 +51,8 @@ // We mean it. // -#include <QtGlobal> -#include <qt_windows.h> +#include <QtCore/qglobal.h> +#include <QtCore/qt_windows.h> QT_BEGIN_NAMESPACE diff --git a/src/winextras/winpropkey_p.h b/src/winextras/winpropkey_p.h index 7e89970..53646fc 100644 --- a/src/winextras/winpropkey_p.h +++ b/src/winextras/winpropkey_p.h @@ -51,7 +51,7 @@ // We mean it. // -#include <QtGlobal> +#include <QtCore/qglobal.h> #include <propkey.h> QT_BEGIN_NAMESPACE diff --git a/tests/auto/qpixmap/tst_qpixmap.cpp b/tests/auto/qpixmap/tst_qpixmap.cpp index 8a63e25..8383194 100644 --- a/tests/auto/qpixmap/tst_qpixmap.cpp +++ b/tests/auto/qpixmap/tst_qpixmap.cpp @@ -29,6 +29,7 @@ #include <QtTest/QtTest> #include <QtCore/qt_windows.h> #include <QtCore/QFileInfo> +#include <QtGui/QPainter> #include <QtGui/QPixmap> #include <QtGui/QImage> #include <QtWinExtras/QtWin> @@ -53,6 +54,8 @@ private slots: void fromHICON_data(); void fromHICON(); + void imageConversion(); + private: const QString m_dataDirectory; }; @@ -279,6 +282,21 @@ void tst_QPixmap::fromHICON() QVERIFY2(compareImages(imageFromHICON, imageFromFile, &errorMessage), errorMessage.constData()); } +void tst_QPixmap::imageConversion() +{ + // Extensive testing of all formats is done in QtGui; this merely tests + // the exports/linkage. + QImage image(73, 57, QImage::Format_ARGB32_Premultiplied); + image.fill(Qt::red); + QPainter painter(&image); + painter.drawLine(0, 0, image.width(), image.height()); + const HBITMAP hBitMap = QtWin::imageToHBITMAP(image); + QVERIFY(hBitMap); + const QImage fromHBitMap = QtWin::imageFromHBITMAP(hBitMap, QtWin::HBitmapPremultipliedAlpha); + QCOMPARE(fromHBitMap, image); + DeleteObject(hBitMap); +} + QTEST_MAIN(tst_QPixmap) #include "tst_qpixmap.moc" |