summaryrefslogtreecommitdiffstats
path: root/src/ui/configurationwidget.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/ui/configurationwidget.cpp')
-rw-r--r--src/ui/configurationwidget.cpp31
1 files changed, 20 insertions, 11 deletions
diff --git a/src/ui/configurationwidget.cpp b/src/ui/configurationwidget.cpp
index ea16db2..15de9f6 100644
--- a/src/ui/configurationwidget.cpp
+++ b/src/ui/configurationwidget.cpp
@@ -194,17 +194,11 @@ void ConfigurationWidget::updateOrientationButtons(const DeviceData &data)
{
const bool rotateScreen = ui_inspector->rotateScreen->isChecked();
- if (!rotateScreen) {
- ui_inspector->topUp->setEnabled(true);
- ui_inspector->leftUp->setEnabled(true);
- ui_inspector->rightUp->setEnabled(true);
- ui_inspector->topDown->setEnabled(true);
- } else {
- ui_inspector->topUp->setEnabled(data.supportedOrientations & topUp);
- ui_inspector->leftUp->setEnabled(data.supportedOrientations & leftUp);
- ui_inspector->rightUp->setEnabled(data.supportedOrientations & rightUp);
- ui_inspector->topDown->setEnabled(data.supportedOrientations & topDown);
- }
+ // workaround for calling this from another thread (scripts):
+ // always perform the setEnabled calls in the gui thread -
+ // setEnabled calls sendEvent!
+ QMetaObject::invokeMethod(this, "enableRotationButtons", Qt::QueuedConnection,
+ Q_ARG(bool, rotateScreen), Q_ARG(int, data.supportedOrientations));
if (!mOrientationButtons->checkedButton()->isEnabled() && !data.menus.isEmpty()) {
Orientation fallback = data.menus.begin().key();
@@ -540,3 +534,18 @@ QStringList SimulatorScriptInterface::supportedScreenOrientations() const
return ret;
}
+
+void ConfigurationWidget::enableRotationButtons(bool rotateScreen, int supportedOrientations)
+{
+ if (!rotateScreen) {
+ ui_inspector->topUp->setEnabled(true);
+ ui_inspector->leftUp->setEnabled(true);
+ ui_inspector->rightUp->setEnabled(true);
+ ui_inspector->topDown->setEnabled(true);
+ } else {
+ ui_inspector->topUp->setEnabled(supportedOrientations & topUp);
+ ui_inspector->leftUp->setEnabled(supportedOrientations & leftUp);
+ ui_inspector->rightUp->setEnabled(supportedOrientations & rightUp);
+ ui_inspector->topDown->setEnabled(supportedOrientations & topDown);
+ }
+}