Widgets: No longer use deprecated QPixmap::grabWindow(),grabWidget().

Change-Id: Icf0d6a672edcfd1d3d10275bb9a93bde29251e79
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
This commit is contained in:
Friedemann Kleint 2012-04-30 14:42:40 +02:00 committed by Qt by Nokia
parent 1767e21123
commit 0b05e4cdd5
2 changed files with 17 additions and 6 deletions

View File

@ -47,6 +47,7 @@
#include "qdesktopwidget.h"
#include "qevent.h"
#include "qpixmap.h"
#include "qscreen.h"
#include "qpainter.h"
#include "qtimer.h"
#include "qhash.h"
@ -232,8 +233,8 @@ QWhatsThat::~QWhatsThat()
void QWhatsThat::showEvent(QShowEvent *)
{
background = QPixmap::grabWindow(QApplication::desktop()->internalWinId(),
x(), y(), width(), height());
background = QGuiApplication::primaryScreen()->grabWindow(QApplication::desktop()->internalWinId(),
x(), y(), width(), height());
}
void QWhatsThat::mousePressEvent(QMouseEvent* e)

View File

@ -41,6 +41,8 @@
#include "qwindowsvistastyle.h"
#include "qwindowsvistastyle_p.h"
#include <qscreen.h>
#include <qwindow.h>
#include <private/qstylehelper_p.h>
#include <private/qsystemlibrary_p.h>
#include <private/qapplication_p.h>
@ -1655,10 +1657,18 @@ void QWindowsVistaStyle::drawComplexControl(ComplexControl control, const QStyle
t->setStartImage(startImage);
} else {
QPoint offset(0, 0);
if (!widget->internalWinId())
offset = widget->mapTo(widget->nativeParentWidget(), offset);
t->setStartImage(QPixmap::grabWindow(widget->effectiveWinId(), offset.x(), offset.y(),
option->rect.width(), option->rect.height()).toImage());
QWindow *window = widget->windowHandle();
if (!window) {
if (const QWidget *nativeParent = widget->nativeParentWidget()) {
offset = widget->mapTo(nativeParent, offset);
window = nativeParent->windowHandle();
}
}
if (window && window->handle()) {
const QPixmap pixmap = window->screen()->grabWindow(window->winId(),
offset.x(), offset.y(), option->rect.width(), option->rect.height());
t->setStartImage(pixmap.toImage());
}
}
} else {
startImage.fill(0);