diff options
Diffstat (limited to 'src/ui/configurationwidget.cpp')
-rw-r--r-- | src/ui/configurationwidget.cpp | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/src/ui/configurationwidget.cpp b/src/ui/configurationwidget.cpp index 667a79a..6eac856 100644 --- a/src/ui/configurationwidget.cpp +++ b/src/ui/configurationwidget.cpp @@ -61,6 +61,7 @@ ConfigurationWidget::ConfigurationWidget(const DeviceItem *deviceItem, QWidget * , mCorrectionFactor(1) , mViewConfiguration(0) , mDeviceItem(deviceItem) + , mOrientationLocked(false) { qRegisterMetaType<Orientation>(); @@ -198,7 +199,7 @@ void ConfigurationWidget::updateOrientationButtons(const DeviceData &data) { const bool rotateScreen = ui_inspector->rotateScreen->isChecked(); - if (!rotateScreen) { + if (!rotateScreen || mOrientationLocked) { ui_inspector->topUp->setEnabled(true); ui_inspector->leftUp->setEnabled(true); ui_inspector->rightUp->setEnabled(true); @@ -210,7 +211,7 @@ void ConfigurationWidget::updateOrientationButtons(const DeviceData &data) ui_inspector->topDown->setEnabled(data.supportedOrientations & topDown); } - if (!mOrientationButtons->checkedButton()->isEnabled() && !data.menus.isEmpty()) { + if (!mOrientationButtons->checkedButton()->isEnabled() && !data.menus.isEmpty() && !mOrientationLocked) { Orientation fallback = data.menus.begin().key(); if (data.supportedOrientations & fallback) mOrientationButtons->button(fallback)->click(); @@ -544,3 +545,14 @@ QStringList SimulatorScriptInterface::supportedScreenOrientations() const return ret; } + +void ConfigurationWidget::setOrientationLocked(bool locked) +{ + mOrientationLocked = locked; + ui_inspector->rotateScreen->setDisabled(locked); + updateOrientationButtons(deviceList.at(currentDeviceIndex())); + if (!locked) { + emit orientationChangeRequested(static_cast<Orientation>(mOrientationButtons->checkedId()), + ui_inspector->rotateScreen->isChecked()); + } +} |