void QDesktopWidget::resizeEvent(QResizeEvent *) { Q_D(QDesktopWidget); QVector<QRect> oldrects; oldrects = *d->rects; QVector<QRect> oldworkrects; oldworkrects = *d->workrects; int oldscreencount = d->screenCount; QDesktopWidgetPrivate::cleanup(); QDesktopWidgetPrivate::init(this); for (int i = 0; i < qMin(oldscreencount, d->screenCount); ++i) { QRect oldrect = oldrects[i]; QRect newrect = d->rects->at(i); if (oldrect != newrect) emit resized(i); } for (int j = 0; j < qMin(oldscreencount, d->screenCount); ++j) { QRect oldrect = oldworkrects[j]; QRect newrect = d->workrects->at(j); if (oldrect != newrect) emit workAreaResized(j); } }
DesktopAwareObjectHelper::DesktopAwareObjectHelper() { Timer.setInterval(DESKTOP_AWARE_OBJECT_HELPER_TIMER_INTERVAL); Timer.setSingleShot(true); connect(&Timer, SIGNAL(timeout()), this, SLOT(workAreaResized())); connect(QApplication::desktop(), SIGNAL(workAreaResized(int)), &Timer, SLOT(start())); }
void QDesktopWidget::resizeEvent(QResizeEvent *) { Q_D(QDesktopWidget); const QVector<QRect> oldrects(*d->rects); const QVector<QRect> oldworkrects(*d->workrects); int oldscreencount = d->screenCount; QDesktopWidgetPrivate::cleanup(); QDesktopWidgetPrivate::init(this); #ifdef Q_WS_WINCE_WM for(int i=0; i < d->workrects->size(); ++i) qt_get_sip_info((*d->workrects)[i]); #endif for (int i = 0; i < qMin(oldscreencount, d->screenCount); ++i) { const QRect oldrect = oldrects[i]; const QRect newrect = d->rects->at(i); if (oldrect != newrect) emit resized(i); } for (int j = 0; j < qMin(oldscreencount, d->screenCount); ++j) { const QRect oldrect = oldworkrects[j]; const QRect newrect = d->workrects->at(j); if (oldrect != newrect) emit workAreaResized(j); } if (oldscreencount != d->screenCount) { emit screenCountChanged(d->screenCount); } }
int QDesktopWidget::qt_metacall(QMetaObject::Call _c, int _id, void **_a) { _id = QWidget::qt_metacall(_c, _id, _a); if (_id < 0) return _id; if (_c == QMetaObject::InvokeMetaMethod) { switch (_id) { case 0: resized((*reinterpret_cast< int(*)>(_a[1]))); break; case 1: workAreaResized((*reinterpret_cast< int(*)>(_a[1]))); break; case 2: screenCountChanged((*reinterpret_cast< int(*)>(_a[1]))); break; default: ; } _id -= 3; } #ifndef QT_NO_PROPERTIES else if (_c == QMetaObject::ReadProperty) { void *_v = _a[0]; switch (_id) { case 0: *reinterpret_cast< bool*>(_v) = isVirtualDesktop(); break; case 1: *reinterpret_cast< int*>(_v) = screenCount(); break; case 2: *reinterpret_cast< int*>(_v) = primaryScreen(); break; } _id -= 3; } else if (_c == QMetaObject::WriteProperty) { _id -= 3; } else if (_c == QMetaObject::ResetProperty) { _id -= 3; } else if (_c == QMetaObject::QueryPropertyDesignable) { _id -= 3; } else if (_c == QMetaObject::QueryPropertyScriptable) { _id -= 3; } else if (_c == QMetaObject::QueryPropertyStored) { _id -= 3; } else if (_c == QMetaObject::QueryPropertyEditable) { _id -= 3; } else if (_c == QMetaObject::QueryPropertyUser) { _id -= 3; } #endif // QT_NO_PROPERTIES return _id; }