void tst_QDockWidget::dockLocationChanged() { qRegisterMetaType<Qt::DockWidgetArea>("Qt::DockWidgetArea"); QMainWindow mw; QDockWidget dw; dw.setObjectName("dock1"); QSignalSpy spy(&dw, SIGNAL(dockLocationChanged(Qt::DockWidgetArea))); mw.addDockWidget(Qt::LeftDockWidgetArea, &dw); QCOMPARE(spy.count(), 1); QCOMPARE(qvariant_cast<Qt::DockWidgetArea>(spy.at(0).at(0)), Qt::LeftDockWidgetArea); spy.clear(); mw.addDockWidget(Qt::LeftDockWidgetArea, &dw); QCOMPARE(spy.count(), 1); QCOMPARE(qvariant_cast<Qt::DockWidgetArea>(spy.at(0).at(0)), Qt::LeftDockWidgetArea); spy.clear(); mw.addDockWidget(Qt::RightDockWidgetArea, &dw); QCOMPARE(spy.count(), 1); QCOMPARE(qvariant_cast<Qt::DockWidgetArea>(spy.at(0).at(0)), Qt::RightDockWidgetArea); spy.clear(); mw.removeDockWidget(&dw); QCOMPARE(spy.count(), 0); QDockWidget dw2; dw2.setObjectName("dock2"); mw.addDockWidget(Qt::TopDockWidgetArea, &dw2); mw.tabifyDockWidget(&dw2, &dw); QCOMPARE(spy.count(), 1); QCOMPARE(qvariant_cast<Qt::DockWidgetArea>(spy.at(0).at(0)), Qt::TopDockWidgetArea); spy.clear(); mw.splitDockWidget(&dw2, &dw, Qt::Horizontal); QCOMPARE(spy.count(), 1); QCOMPARE(qvariant_cast<Qt::DockWidgetArea>(spy.at(0).at(0)), Qt::TopDockWidgetArea); spy.clear(); dw.setFloating(true); QTest::qWait(100); dw.setFloating(false); QTest::qWait(100); QCOMPARE(spy.count(), 1); QCOMPARE(qvariant_cast<Qt::DockWidgetArea>(spy.at(0).at(0)), Qt::TopDockWidgetArea); spy.clear(); QByteArray ba = mw.saveState(); mw.restoreState(ba); QCOMPARE(spy.count(), 1); QCOMPARE(qvariant_cast<Qt::DockWidgetArea>(spy.at(0).at(0)), Qt::TopDockWidgetArea); }
ImagePreviewNode::~ImagePreviewNode( void ) { QMainWindow *MainWindow = mNode->context()->global()->mainWindow(); if( mDockWidget != 0 ) { MainWindow->removeDockWidget( mDockWidget ); delete mDockWidget; mDockWidget = 0; } }
void TestCasePlayerModule::finish() { #ifdef ENABLE_GUI #ifdef ENABLE_QT QMainWindow * mainWindow = (QMainWindow*)(_engine->getEngineController()->getQtMainWindow()); if(mainWindow != NULL) { mainWindow->removeDockWidget(_testCasePlayerDockWidget); delete _testCasePlayerDockWidget; delete _testCasePlayerWidget; // may not be necessary, do Qt automatically take control and de-allocate children widgets? } #endif #endif }
TextEditorNode::~TextEditorNode( void ) { QMainWindow *MainWindow = mNode->context()->global()->mainWindow(); if( mDockWidget != 0 ) { MainWindow->removeDockWidget( mDockWidget ); delete mDockWidget; mDockWidget = 0; } if( mHighlighter != 0 ) { delete mHighlighter; mHighlighter = 0; } }
void QMainWindowProto::removeDockWidget ( QDockWidget * dockwidget ) { QMainWindow *item = qscriptvalue_cast<QMainWindow*>(thisObject()); if (item) item->removeDockWidget(dockwidget); }