void FormWindowManager::setActiveFormWindow(QDesignerFormWindowInterface *w) { FormWindow *formWindow = qobject_cast<FormWindow*>(w); if (formWindow == m_activeFormWindow) return; FormWindow *old = m_activeFormWindow; m_activeFormWindow = formWindow; QtResourceSet *resourceSet = 0; if (formWindow) resourceSet = formWindow->resourceSet(); m_core->resourceModel()->setCurrentResourceSet(resourceSet); slotUpdateActions(); if (m_activeFormWindow) { m_activeFormWindow->repaintSelection(); if (old) old->repaintSelection(); } emit activeFormWindowChanged(m_activeFormWindow); if (m_activeFormWindow) { m_activeFormWindow->emitSelectionChanged(); m_activeFormWindow->commandHistory()->setActive(); // Trigger setActiveSubWindow on mdi area unless we are in toplevel mode QMdiSubWindow *mdiSubWindow = 0; if (QWidget *formwindow = m_activeFormWindow->parentWidget()) { mdiSubWindow = qobject_cast<QMdiSubWindow *>(formwindow->parentWidget()); } if (mdiSubWindow) { for (QWidget *parent = mdiSubWindow->parentWidget(); parent; parent = parent->parentWidget()) { if (QMdiArea *mdiArea = qobject_cast<QMdiArea*>(parent)) { mdiArea->setActiveSubWindow(mdiSubWindow); break; } } } } }