aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.qmake.conf2
-rw-r--r--LGPL_EXCEPTION.txt22
-rw-r--r--src/imports/winextras/plugin.cpp11
-rw-r--r--src/winextras/qwineventfilter.cpp4
-rw-r--r--src/winextras/qwineventfilter_p.h4
-rw-r--r--src/winextras/qwinfunctions.cpp49
-rw-r--r--src/winextras/qwinfunctions.h2
-rw-r--r--src/winextras/qwinfunctions_p.h4
-rw-r--r--src/winextras/qwinjumplist.cpp12
-rw-r--r--src/winextras/qwinjumplistcategory.cpp4
-rw-r--r--src/winextras/qwinjumplistitem.cpp4
-rw-r--r--src/winextras/qwinmime.cpp8
-rw-r--r--src/winextras/qwinmime.h6
-rw-r--r--src/winextras/qwintaskbarbutton.cpp6
-rw-r--r--src/winextras/qwintaskbarbutton_p.h6
-rw-r--r--src/winextras/qwinthumbnailtoolbar.cpp9
-rw-r--r--src/winextras/qwinthumbnailtoolbar_p.h10
-rw-r--r--src/winextras/windowsguidsdefs_p.h4
-rw-r--r--src/winextras/winpropkey_p.h2
-rw-r--r--tests/auto/qpixmap/tst_qpixmap.cpp18
20 files changed, 104 insertions, 83 deletions
diff --git a/.qmake.conf b/.qmake.conf
index 67c54ee..097d8b9 100644
--- a/.qmake.conf
+++ b/.qmake.conf
@@ -1,3 +1,3 @@
load(qt_build_config)
-MODULE_VERSION = 5.11.1
+MODULE_VERSION = 5.12.0
diff --git a/LGPL_EXCEPTION.txt b/LGPL_EXCEPTION.txt
deleted file mode 100644
index 5cdacb9..0000000
--- a/LGPL_EXCEPTION.txt
+++ /dev/null
@@ -1,22 +0,0 @@
-The Qt Company Qt LGPL Exception version 1.1
-
-As an additional permission to the GNU Lesser General Public License version
-2.1, the object code form of a "work that uses the Library" may incorporate
-material from a header file that is part of the Library. You may distribute
-such object code under terms of your choice, provided that:
- (i) the header files of the Library have not been modified; and
- (ii) the incorporated material is limited to numerical parameters, data
- structure layouts, accessors, macros, inline functions and
- templates; and
- (iii) you comply with the terms of Section 6 of the GNU Lesser General
- Public License version 2.1.
-
-Moreover, you may apply this exception to a modified version of the Library,
-provided that such modification does not involve copying material from the
-Library into the modified Library's header files unless such material is
-limited to (i) numerical parameters; (ii) data structure layouts;
-(iii) accessors; and (iv) small macros, templates and inline functions of
-five lines or less in length.
-
-Furthermore, you are not required to apply this additional permission to a
-modified version of the Library.
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/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 &region);
Q_WINEXTRAS_EXPORT QRegion fromHRGN(HRGN hrgn);
diff --git a/src/winextras/qwinfunctions_p.h b/src/winextras/qwinfunctions_p.h
index a69e52c..3aad7bc 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>
diff --git a/src/winextras/qwinjumplist.cpp b/src/winextras/qwinjumplist.cpp
index 94b8e81..19a63a6 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"
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..7357892 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
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..2516865 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>
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..244520a 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"
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/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"