Implement QWidgetPrivate::setWindowIcon_sys()

* The widgets icon are correctly set, through the QPA plugins
 * Removing QTLWExtra::iconPixmap that was only used in some platforms
in Qt 4.7, so if that wariable is still needed somewhere, it sould be
declared in the concerned QPA plugins

Change-Id: I85f50726cce3578b66c09c327767111f09935075
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
This commit is contained in:
Corentin Jabot 2012-05-26 02:12:06 +02:00 committed by Qt by Nokia
parent 42a6fb4090
commit 074224eca0
3 changed files with 7 additions and 9 deletions

View File

@ -1336,7 +1336,8 @@ void QWidget::create(WId window, bool initializeWindow, bool destroyOldWindow)
// need to force the resting of the icon after changing parents
if (testAttribute(Qt::WA_SetWindowIcon))
d->setWindowIcon_sys(true);
d->setWindowIcon_sys();
if (isWindow() && !d->topData()->iconText.isEmpty())
d->setWindowIconText_helper(d->topData()->iconText);
if (isWindow() && !d->topData()->caption.isEmpty())
@ -1520,7 +1521,6 @@ void QWidgetPrivate::createTLExtra()
if (!extra->topextra) {
QTLWExtra* x = extra->topextra = new QTLWExtra;
x->icon = 0;
x->iconPixmap = 0;
x->backingStore = 0;
x->sharedPainter = 0;
x->incw = x->inch = 0;
@ -1604,7 +1604,6 @@ void QWidgetPrivate::deleteExtra()
deleteTLSysExtra();
extra->topextra->backingStoreTracker.destroy();
delete extra->topextra->icon;
delete extra->topextra->iconPixmap;
delete extra->topextra->backingStore;
delete extra->topextra;
}
@ -5660,9 +5659,6 @@ void QWidget::setWindowIcon(const QIcon &icon)
d->extra->topextra->icon = new QIcon();
*d->extra->topextra->icon = icon;
delete d->extra->topextra->iconPixmap;
d->extra->topextra->iconPixmap = 0;
d->setWindowIcon_sys();
d->setWindowIcon_helper();
}

View File

@ -155,7 +155,6 @@ struct QTLWExtra {
// Regular pointers (keep them together to avoid gaps on 64 bits architectures).
QIcon *icon; // widget icon
QPixmap *iconPixmap;
QWidgetBackingStoreTracker backingStoreTracker;
QBackingStore *backingStore;
QPainter *sharedPainter;
@ -421,7 +420,7 @@ public:
bool close_helper(CloseMode mode);
void setWindowIcon_helper();
void setWindowIcon_sys(bool forceReset = false);
void setWindowIcon_sys();
void setWindowOpacity_sys(qreal opacity);
void adjustQuitOnCloseAttribute();

View File

@ -328,8 +328,11 @@ void QWidgetPrivate::setWindowTitle_sys(const QString &caption)
}
void QWidgetPrivate::setWindowIcon_sys(bool /*forceReset*/)
void QWidgetPrivate::setWindowIcon_sys()
{
Q_Q(QWidget);
if (QWindow *window = q->windowHandle())
window->setWindowIcon(q->windowIcon());
}
void QWidgetPrivate::setWindowIconText_sys(const QString &iconText)