void WindowManager::removeView( boost::intrusive_ptr< IView > _view ) { DockWidgetByViewCollectionIterator iterator = m_dockWidgetByViewCollection.find( _view ); if ( iterator != m_dockWidgetByViewCollection.end() ) { _view->getViewWidget()->setParent( NULL ); m_mainWindow->removeDockWidget( iterator->second ); _view->viewWasClosed(); m_dockWidgetByViewCollection.erase( _view ); } CentralViewsCollectionIterator centralViewiterator = m_centralViewsCollection.find( _view ); if ( centralViewiterator != m_centralViewsCollection.end() ) { _view->getViewWidget()->setParent( NULL ); m_centralWidget->removeTab( m_centralWidget->indexOf( _view->getViewWidget() ) ); _view->viewWasClosed(); m_centralViewsCollection.erase( _view ); } } // WindowManager::removeView
void WindowManager::addView( boost::intrusive_ptr< IView > _view , const ViewPosition::Enum _position ) { assert( m_dockWidgetByViewCollection.find( _view ) == m_dockWidgetByViewCollection.end() ); if ( _position == ViewPosition::Center ) { m_centralWidget->addTab( _view->getViewWidget(), _view->getViewTitle() ); m_centralViewsCollection.insert( _view ); } else { Qt::DockWidgetArea viewPossition( getQtViewPossition( _position ) ); QDockWidget* docWidget( new QDockWidget() ); docWidget->setWindowTitle( _view->getViewTitle() ); docWidget->setWidget( _view->getViewWidget() ); m_mainWindow->addDockWidget( viewPossition, docWidget ); m_dockWidgetByViewCollection.insert( std::make_pair( _view, docWidget ) ); } } // WindowManager::addView