#include <QAction>
#include <QDockWidget>
#include <QApplication>
+#include <QTimer>
+#include <QCloseEvent>
XGUI_MainWindow::XGUI_MainWindow(QWidget* parent)
: QMainWindow(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)
{
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);
QMdiArea* aMdiArea = static_cast<QMdiArea*>(centralWidget());
QList<QMdiSubWindow*> 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)
if (aAct->isCheckable())
aAct->setChecked(aAct->text() == aWndTitle);
}
-}
\ No newline at end of file
+}
+
+void XGUI_MainWindow::closeEvent(QCloseEvent * event)
+{
+ emit exitKeySequence();
+ event->ignore();
+}