From 56e49c1f5262ce9a87474b7944e825c56c1b6325 Mon Sep 17 00:00:00 2001 From: Aleksei Kanash Date: Tue, 3 Apr 2012 12:36:51 +0300 Subject: [PATCH] Fixed screens initialization order and logic. --- src/core/UBApplication.cpp | 3 +-- src/core/UBApplicationController.cpp | 9 +++++---- src/core/UBApplicationController.h | 2 +- src/core/UBDisplayManager.cpp | 12 ------------ src/core/UBDisplayManager.h | 10 +++++----- src/core/UBPreferencesController.cpp | 2 +- 6 files changed, 13 insertions(+), 25 deletions(-) diff --git a/src/core/UBApplication.cpp b/src/core/UBApplication.cpp index 7c78a086..b8a3e257 100644 --- a/src/core/UBApplication.cpp +++ b/src/core/UBApplication.cpp @@ -289,7 +289,6 @@ int UBApplication::exec(const QString& pFileToImport) bool bUseMultiScreen = UBSettings::settings()->appUseMultiscreen->get().toBool(); mainWindow->actionMultiScreen->setChecked(bUseMultiScreen); - applicationController->useMultiScreen(bUseMultiScreen); connect(mainWindow->actionMultiScreen, SIGNAL(triggered(bool)), applicationController, SLOT(useMultiScreen(bool))); connect(mainWindow->actionWidePageSize, SIGNAL(triggered(bool)), boardController, SLOT(setWidePageSize(bool))); connect(mainWindow->actionRegularPageSize, SIGNAL(triggered(bool)), boardController, SLOT(setRegularPageSize(bool))); @@ -299,7 +298,7 @@ int UBApplication::exec(const QString& pFileToImport) connect(mainWindow->actionCopy, SIGNAL(triggered()), applicationController, SLOT(actionCopy())); connect(mainWindow->actionPaste, SIGNAL(triggered()), applicationController, SLOT(actionPaste())); - applicationController->initScreenLayout(); + applicationController->initScreenLayout(bUseMultiScreen); boardController->setupLayout(); if (pFileToImport.length() > 0) diff --git a/src/core/UBApplicationController.cpp b/src/core/UBApplicationController.cpp index e2e09375..d54e8610 100644 --- a/src/core/UBApplicationController.cpp +++ b/src/core/UBApplicationController.cpp @@ -135,14 +135,15 @@ void UBApplicationController::initViewState(int horizontalPosition, int vertical } -void UBApplicationController::initScreenLayout() +void UBApplicationController::initScreenLayout(bool useMultiscreen) { - mDisplayManager->setAsControl(mMainWindow, true); + mDisplayManager->setAsControl(mMainWindow); mDisplayManager->setAsDisplay(mDisplayView); mDisplayManager->setAsPreviousDisplays(mPreviousViews); mDisplayManager->setAsDesktop(mUninoteController->drawingView()); + mDisplayManager->setUseMultiScreen(bMultiScreen); mDisplayManager->adjustScreens(-1); } @@ -343,7 +344,6 @@ void UBApplicationController::showBoard() mirroringEnabled(false); mMainWindow->switchToBoardWidget(); - mDisplayManager->setAsDisplay(mDisplayView); if (UBApplication::boardController) UBApplication::boardController->show(); @@ -353,7 +353,7 @@ void UBApplicationController::showBoard() mUninoteController->hideWindow(); - mDisplayManager->adjustScreens(0); + mMainWindow->show(); emit mainModeChanged(Board); @@ -727,6 +727,7 @@ void UBApplicationController::importFile(const QString& pFilePath) void UBApplicationController::useMultiScreen(bool use) { mDisplayManager->setUseMultiScreen(use); + mDisplayManager->adjustScreens(0); UBSettings::settings()->appUseMultiscreen->set(use); } diff --git a/src/core/UBApplicationController.h b/src/core/UBApplicationController.h index 2bdf6890..4d578b42 100644 --- a/src/core/UBApplicationController.h +++ b/src/core/UBApplicationController.h @@ -51,7 +51,7 @@ class UBApplicationController : public QObject void blackout(); - void initScreenLayout(); + void initScreenLayout(bool useMultiscreen); void closing(); diff --git a/src/core/UBDisplayManager.cpp b/src/core/UBDisplayManager.cpp index 1bffbb26..b22746df 100644 --- a/src/core/UBDisplayManager.cpp +++ b/src/core/UBDisplayManager.cpp @@ -123,11 +123,6 @@ void UBDisplayManager::setAsControl(QWidget* pControlWidget, bool init) if(hasControl() && pControlWidget && (pControlWidget != mControlWidget)) { mControlWidget = pControlWidget; - mControlWidget->hide(); - mControlWidget->setGeometry(mDesktop->screenGeometry(mControlScreenIndex)); - - if (!init) - mControlWidget->showFullScreen(); // !!!! Should be included into Windows after QT recompilation #ifdef Q_WS_MAC // mControlWidget->setAttribute(Qt::WA_MacNoShadow); @@ -140,9 +135,6 @@ void UBDisplayManager::setAsDesktop(QWidget* pControlWidget ) if(pControlWidget && (pControlWidget != mControlWidget)) { mDesktopWidget = pControlWidget; - mDesktopWidget->hide(); - mDesktopWidget->setGeometry(mDesktop->screenGeometry(mControlScreenIndex)); -// mDisplayWidget->showFullScreen(); // !!!! Should be included into Windows after QT recompilation #ifdef Q_WS_MAC // mControlWidget->setAttribute(Qt::WA_MacNoShadow); @@ -155,9 +147,6 @@ void UBDisplayManager::setAsDisplay(QWidget* pDisplayWidget) if(pDisplayWidget && (pDisplayWidget != mDisplayWidget)) { mDisplayWidget = pDisplayWidget; - mDisplayWidget->hide(); - mDisplayWidget->setGeometry(mDesktop->screenGeometry(mDisplayScreenIndex)); - mDisplayWidget->showFullScreen(); // !!!! Should be included into Windows after QT recompilation #ifdef Q_WS_MAC // mDisplayWidget->setAttribute(Qt::WA_MacNoShadow); @@ -310,6 +299,5 @@ void UBDisplayManager::setRoleToScreen(DisplayRole role, int screenIndex) void UBDisplayManager::setUseMultiScreen(bool pUse) { mUseMultiScreen = pUse; - adjustScreens(0); } diff --git a/src/core/UBDisplayManager.h b/src/core/UBDisplayManager.h index 33ee9244..f6ca289d 100644 --- a/src/core/UBDisplayManager.h +++ b/src/core/UBDisplayManager.h @@ -33,13 +33,13 @@ class UBDisplayManager : public QObject int numPreviousViews(); - void setAsControl(QWidget* pControlWidget, bool init = false); + void setControlWidget(QWidget* pControlWidget); - void setAsDisplay(QWidget* pDisplayWidget); + void setDisplayWidget(QWidget* pDisplayWidget); - void setAsDesktop(QWidget* pControlWidget); + void setDesktopWidget(QWidget* pControlWidget); - void setAsPreviousDisplays(QList pPreviousViews); + void setPreviousDisplaysWidgets(QList pPreviousViews); bool hasControl() { @@ -77,7 +77,7 @@ class UBDisplayManager : public QObject public slots: - void swapScreens(bool bswap); + void reinitScreens(bool bswap); void adjustScreens(int screen); diff --git a/src/core/UBPreferencesController.cpp b/src/core/UBPreferencesController.cpp index cd5fde30..3968f602 100644 --- a/src/core/UBPreferencesController.cpp +++ b/src/core/UBPreferencesController.cpp @@ -118,7 +118,7 @@ void UBPreferencesController::wire() connect(mPreferencesUI->useExternalBrowserCheckBox, SIGNAL(clicked(bool)), settings->webUseExternalBrowser, SLOT(setBool(bool))); connect(mPreferencesUI->displayBrowserPageCheckBox, SIGNAL(clicked(bool)), settings->webShowPageImmediatelyOnMirroredScreen, SLOT(setBool(bool))); connect(mPreferencesUI->swapControlAndDisplayScreensCheckBox, SIGNAL(clicked(bool)), settings->swapControlAndDisplayScreens, SLOT(setBool(bool))); - connect(mPreferencesUI->swapControlAndDisplayScreensCheckBox, SIGNAL(clicked(bool)), UBApplication::applicationController->displayManager(), SLOT(swapScreens(bool))); + connect(mPreferencesUI->swapControlAndDisplayScreensCheckBox, SIGNAL(clicked(bool)), UBApplication::applicationController->displayManager(), SLOT(reinitScreens(bool))); connect(mPreferencesUI->toolbarAtTopRadioButton, SIGNAL(clicked(bool)), this, SLOT(toolbarPositionChanged(bool))); connect(mPreferencesUI->toolbarAtBottomRadioButton, SIGNAL(clicked(bool)), this, SLOT(toolbarPositionChanged(bool)));