diff --git a/interface/src/ui/HMDToolsDialog.cpp b/interface/src/ui/HMDToolsDialog.cpp index 3cbbb5daf2..80fb6a93d6 100644 --- a/interface/src/ui/HMDToolsDialog.cpp +++ b/interface/src/ui/HMDToolsDialog.cpp @@ -44,20 +44,52 @@ HMDToolsDialog::HMDToolsDialog(QWidget* parent) : form->addRow("", leaveModeButton); connect(leaveModeButton,SIGNAL(clicked(bool)),this,SLOT(leaveModeClicked(bool))); + // Create a label with debug details... + _debugDetails = new QLabel(); + _debugDetails->setText(getDebugDetails()); + const int WIDTH = 350; + const int HEIGHT = 100; + _debugDetails->setFixedSize(WIDTH, HEIGHT); + form->addRow("", _debugDetails); + this->QDialog::setLayout(form); - _wasMoved = false; - _previousRect = Application::getInstance()->getWindow()->rect(); - - Application::getInstance()->getWindow()->activateWindow(); + + QWindow* mainWindow = Application::getInstance()->getWindow()->windowHandle(); + connect(mainWindow, &QWindow::screenChanged, this, &HMDToolsDialog::applicationWindowScreenChanged); } HMDToolsDialog::~HMDToolsDialog() { } +void HMDToolsDialog::applicationWindowScreenChanged(QScreen* screen) { + _debugDetails->setText(getDebugDetails()); +} + +QString HMDToolsDialog::getDebugDetails() const { + QString results; + + int hmdScreenNumber = OculusManager::getHMDScreen(); + if (hmdScreenNumber > 0) { + results += "HMD Screen: " + QGuiApplication::screens()[hmdScreenNumber]->name() + "\n"; + } else { + results += "HMD Screen Name: Unknown\n"; + } + + int desktopPrimaryScreenNumber = QApplication::desktop()->primaryScreen(); + QScreen* desktopPrimaryScreen = QGuiApplication::screens()[desktopPrimaryScreenNumber]; + results += "Desktop's Primary Screen: " + desktopPrimaryScreen->name() + "\n"; + + results += "Application Primary Screen: " + QGuiApplication::primaryScreen()->name() + "\n"; + QScreen* mainWindowScreen = Application::getInstance()->getWindow()->windowHandle()->screen(); + results += "Application Main Window Screen: " + mainWindowScreen->name() + "\n"; + + return results; +} + void HMDToolsDialog::enterModeClicked(bool checked) { int hmdScreen = OculusManager::getHMDScreen(); @@ -74,6 +106,9 @@ void HMDToolsDialog::enterModeClicked(bool checked) { mainWindow->setGeometry(rect); _wasMoved = true; + } else { + // if we're on a single screen setup, then hide our tools window when entering HMD mode + hide(); } Application::getInstance()->setFullscreen(true); Application::getInstance()->setEnableVRMode(true); diff --git a/interface/src/ui/HMDToolsDialog.h b/interface/src/ui/HMDToolsDialog.h index 9620a0529d..c2a36f5a30 100644 --- a/interface/src/ui/HMDToolsDialog.h +++ b/interface/src/ui/HMDToolsDialog.h @@ -20,6 +20,8 @@ public: // Sets up the UI HMDToolsDialog(QWidget* parent); ~HMDToolsDialog(); + + QString getDebugDetails() const; signals: void closed(); @@ -30,6 +32,7 @@ public slots: void leaveModeClicked(bool checked); void activateWindowAfterEnterMode(); void moveWindowAfterLeaveMode(); + void applicationWindowScreenChanged(QScreen* screen); protected: // Emits a 'closed' signal when this dialog is closed. @@ -40,6 +43,7 @@ private: QRect _previousRect; QScreen* _previousScreen; QScreen* _hmdScreen; + QLabel* _debugDetails; }; #endif // hifi_HMDToolsDialog_h