X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FXGUI%2FXGUI_MainWindow.cpp;h=4b8c9e0918f1ff863213d116d277b848b610dc39;hb=d7f39bb5064d81ef383a672d5f38718369a13899;hp=02971608f331e87376ad1045919c1a0643899ecf;hpb=b5dc9fda0c8efc45a6807745ef0c21da8dce1aaf;p=modules%2Fshaper.git diff --git a/src/XGUI/XGUI_MainWindow.cpp b/src/XGUI/XGUI_MainWindow.cpp index 02971608f..4b8c9e091 100644 --- a/src/XGUI/XGUI_MainWindow.cpp +++ b/src/XGUI/XGUI_MainWindow.cpp @@ -13,6 +13,7 @@ #include #include #include +#include XGUI_MainWindow::XGUI_MainWindow(QWidget* parent) : QMainWindow(parent), @@ -40,11 +41,15 @@ XGUI_MainWindow::XGUI_MainWindow(QWidget* parent) aMdiArea->addAction(aAction); connect(aAction, SIGNAL(triggered(bool)), this, SLOT(cascadeWindows())); + aAction = new QAction(aMdiArea); + aAction->setSeparator(true); + aMdiArea->addAction(aAction); + myViewer = new XGUI_Viewer(this); connect(myViewer, SIGNAL(viewCreated(XGUI_ViewWindow*)), this, SLOT(onViewCreated(XGUI_ViewWindow*))); connect(myViewer, SIGNAL(deleteView(XGUI_ViewWindow*)), - this, SLOT(onViewCreated(XGUI_ViewWindow*))); + this, SLOT(onDeleteView(XGUI_ViewWindow*))); } XGUI_MainWindow::~XGUI_MainWindow(void) @@ -129,13 +134,8 @@ void XGUI_MainWindow::onViewCreated(XGUI_ViewWindow* theWindow) { QWidget* aSubWindow = theWindow->parentWidget(); QWidget* aMDIWidget = centralWidget(); - QAction* aAction; - if (aMDIWidget->actions().size() == 3) { - aAction = new QAction(aMDIWidget); - aAction->setSeparator(true); - aMDIWidget->addAction(aAction); - } - aAction = new QAction(aSubWindow->windowTitle(), aMDIWidget); + + QAction* aAction = new QAction(aSubWindow->windowTitle(), aMDIWidget); aAction->setCheckable(true); connect(aAction, SIGNAL(triggered(bool)), this, SLOT(activateView())); aMDIWidget->addAction(aAction); @@ -172,15 +172,18 @@ void XGUI_MainWindow::activateView() QMdiArea* aMdiArea = static_cast(centralWidget()); QList aWndList = aMdiArea->subWindowList(); + QMdiSubWindow* aTargetView = 0; foreach(QMdiSubWindow* aWnd, aWndList) { if (aWnd->windowTitle() == aWndTitle) { aWnd->raise(); aWnd->activateWindow(); - aWnd->setFocus(); + aTargetView = aWnd; break; } } QApplication::processEvents(); + if (aTargetView) + QTimer::singleShot(20, aTargetView, SLOT(setFocus())); } void XGUI_MainWindow::onViewActivated(QMdiSubWindow* theSubWnd)