#include #include "UBMainWindow.h" #include "core/UBApplication.h" #include "core/UBApplicationController.h" #include "board/UBBoardController.h" UBMainWindow::UBMainWindow(QWidget *parent, Qt::WindowFlags flags) : QMainWindow(parent, flags) , mBoardWidget(0) , mWebWidget(0) , mDocumentsWidget(0) { Ui::MainWindow::setupUi(this); QWidget* centralWidget = new QWidget(this); mStackedLayout = new QStackedLayout(centralWidget); setCentralWidget(centralWidget); #ifdef Q_WS_MAC actionPreferences->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_Comma)); actionQuit->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_Q)); #elif defined(Q_WS_WIN) actionPreferences->setShortcut(QKeySequence(Qt::ALT + Qt::Key_Return)); actionQuit->setShortcut(QKeySequence(Qt::ALT + Qt::Key_F4)); #else // No shortcut on Linux (like GEdit/Nautilius) #endif } UBMainWindow::~UBMainWindow() { // NOOP } void UBMainWindow::addBoardWidget(QWidget *pWidget) { if (!mBoardWidget) { mBoardWidget = pWidget; mStackedLayout->addWidget(mBoardWidget); } } void UBMainWindow::switchToBoardWidget() { if (mBoardWidget) { mStackedLayout->setCurrentWidget(mBoardWidget); } } void UBMainWindow::addWebWidget(QWidget *pWidget) { qDebug() << "add to StackedLayout size height: " << pWidget->height() << " width: " << pWidget->width(); if (!mWebWidget) { mWebWidget = pWidget; mStackedLayout->addWidget(mWebWidget); } } void UBMainWindow::switchToWebWidget() { qDebug() << "popped out from StackedLayout size height: " << mWebWidget->height() << " width: " << mWebWidget->width(); if (mWebWidget) { mStackedLayout->setCurrentWidget(mWebWidget); } } void UBMainWindow::addDocumentsWidget(QWidget *pWidget) { if (!mDocumentsWidget) { mDocumentsWidget = pWidget; mStackedLayout->addWidget(mDocumentsWidget); } } void UBMainWindow::switchToDocumentsWidget() { if (mDocumentsWidget) { mStackedLayout->setCurrentWidget(mDocumentsWidget); } } void UBMainWindow::keyPressEvent(QKeyEvent *event) { QMainWindow::keyPressEvent(event); /* if (event->key() == Qt::Key_B && !event->isAccepted()) { UBApplication::applicationController->blackout(); event->accept(); } */ }