void QDesignerDockWidget::setDocked(bool b) { if (QMainWindow *mainWindow = findMainWindow()) { QDesignerFormEditorInterface *core = formWindow()->core(); QDesignerContainerExtension *c; c = qt_extension<QDesignerContainerExtension*>(core->extensionManager(), mainWindow); if (b && !docked()) { // Dock it // ### undo/redo stack setParent(0); c->addWidget(this); formWindow()->selectWidget(this, formWindow()->cursor()->isWidgetSelected(this)); } else if (!b && docked()) { // Undock it for (int i = 0; i < c->count(); ++i) { if (c->widget(i) == this) { c->remove(i); break; } } // #### restore the position setParent(mainWindow->centralWidget()); show(); formWindow()->selectWidget(this, formWindow()->cursor()->isWidgetSelected(this)); } } }
bool DsgnOfficeStyleWidget::event(QEvent* event) { bool res = QWidget::event(event); if (event->type() == QEvent::ParentChange) { if (DsgnOfficeStyle* desStyle = dynamic_cast<DsgnOfficeStyle *>(m_targetStyle)) desStyle->setParentStyle(parentWidget()); } else if (event->type() == QEvent::Hide && isHidden()) { QDesignerFormWindowInterface* formWindow = QDesignerFormWindowInterface::findFormWindow(parentWidget()); QDesignerFormEditorInterface* core = formWindow->core(); QDesignerContainerExtension* container = qt_extension<QDesignerContainerExtension*>(core->extensionManager(), formWindow->mainContainer()); if (container->widget(container->count() - 1) == this) { container->remove(container->count() - 1); core->metaDataBase()->remove(this); formWindow->emitSelectionChanged(); } } return res; }