more improvements to HMD Tools

This commit is contained in:
ZappoMan 2014-11-25 12:46:00 -08:00
parent 6108f7d9cd
commit bc376a0a15
2 changed files with 28 additions and 8 deletions

View file

@ -51,8 +51,8 @@ HMDToolsDialog::HMDToolsDialog(QWidget* parent) :
_previousRect = Application::getInstance()->getWindow()->rect();
// QDesktopWidget::screenCountChanged() SIGNAL
Application::getInstance()->getWindow()->activateWindow();
}
HMDToolsDialog::~HMDToolsDialog() {
@ -70,7 +70,7 @@ void HMDToolsDialog::enterModeClicked(bool checked) {
if (hmdScreen >= 0) {
QWindow* mainWindow = Application::getInstance()->getWindow()->windowHandle();
QScreen* targetScreen = QGuiApplication::screens()[hmdScreen];
_hmdScreen = QGuiApplication::screens()[hmdScreen];
_previousRect = Application::getInstance()->getWindow()->rect();
qDebug() << "_previousRect:" << _previousRect;
@ -85,27 +85,36 @@ void HMDToolsDialog::enterModeClicked(bool checked) {
qDebug() << "about to move to:" << rect.topLeft();
mainWindow->setScreen(targetScreen);
mainWindow->setScreen(_hmdScreen);
mainWindow->setGeometry(rect);
_wasMoved = true;
}
Application::getInstance()->setFullscreen(true);
Application::getInstance()->setEnableVRMode(true);
const int SLIGHT_DELAY = 500;
QTimer::singleShot(SLIGHT_DELAY, this, SLOT(activateWindowAfterEnterMode()));
}
void HMDToolsDialog::moveWindowAfterLeaveMode() {
qDebug() << "moveWindowAfterLeaveMode";
void HMDToolsDialog::activateWindowAfterEnterMode() {
qDebug() << "activateWindowAfterEnterMode";
Application::getInstance()->getWindow()->activateWindow();
QWindow* mainWindow = Application::getInstance()->getWindow()->windowHandle();
mainWindow->setScreen(_previousScreen);
mainWindow->setGeometry(_previousRect);
QPoint windowCenter = mainWindow->geometry().center();
//QPoint desktopCenter = mainWindow->mapToGlobal(windowCenter);
qDebug() << "windowCenter:" << windowCenter;
QCursor::setPos(_hmdScreen, windowCenter);
}
void HMDToolsDialog::leaveModeClicked(bool checked) {
qDebug() << "leaveModeClicked";
Application::getInstance()->setFullscreen(false);
Application::getInstance()->setEnableVRMode(false);
Application::getInstance()->getWindow()->activateWindow();
if (_wasMoved) {
QWindow* mainWindow = Application::getInstance()->getWindow()->windowHandle();
@ -118,6 +127,15 @@ void HMDToolsDialog::leaveModeClicked(bool checked) {
_wasMoved = false;
}
void HMDToolsDialog::moveWindowAfterLeaveMode() {
qDebug() << "moveWindowAfterLeaveMode";
QWindow* mainWindow = Application::getInstance()->getWindow()->windowHandle();
mainWindow->setScreen(_previousScreen);
mainWindow->setGeometry(_previousRect);
Application::getInstance()->getWindow()->activateWindow();
}
void HMDToolsDialog::reject() {
// Just regularly close upon ESC
this->QDialog::close();

View file

@ -28,6 +28,7 @@ public slots:
void reject();
void enterModeClicked(bool checked);
void leaveModeClicked(bool checked);
void activateWindowAfterEnterMode();
void moveWindowAfterLeaveMode();
protected:
@ -38,6 +39,7 @@ private:
bool _wasMoved;
QRect _previousRect;
QScreen* _previousScreen;
QScreen* _hmdScreen;
};
#endif // hifi_HMDToolsDialog_h