diff --git a/kded/config.h b/kded/config.h --- a/kded/config.h +++ b/kded/config.h @@ -47,6 +47,7 @@ void activateControlWatching(); bool autoRotationRequested() const; void setDeviceOrientation(QOrientationReading::Orientation orientation); + bool getAutoRotate() const; void setAutoRotate(bool value); void log(); diff --git a/kded/config.cpp b/kded/config.cpp --- a/kded/config.cpp +++ b/kded/config.cpp @@ -94,6 +94,17 @@ } } +bool Config::getAutoRotate() const +{ + return std::all_of(m_data->outputs().cbegin(), m_data->outputs().cend(), + [this](KScreen::OutputPtr output) { + if (output->type() != KScreen::Output::Type::Panel) { + return true; + } + return m_control->getAutoRotate(output); + }); +} + void Config::setAutoRotate(bool value) { for (KScreen::OutputPtr &output : m_data->outputs()) { diff --git a/kded/daemon.h b/kded/daemon.h --- a/kded/daemon.h +++ b/kded/daemon.h @@ -52,7 +52,8 @@ public Q_SLOTS: // DBus void applyLayoutPreset(const QString &presetName); - void lockAutoRotate(bool value); + bool getAutoRotate(); + void setAutoRotate(bool value); Q_SIGNALS: // DBus diff --git a/kded/daemon.cpp b/kded/daemon.cpp --- a/kded/daemon.cpp +++ b/kded/daemon.cpp @@ -248,7 +248,12 @@ applyOsdAction(action); } -void KScreenDaemon::lockAutoRotate(bool value) +bool KScreenDaemon::getAutoRotate() +{ + return m_monitoredConfig->getAutoRotate(); +} + +void KScreenDaemon::setAutoRotate(bool value) { if (!m_monitoredConfig) { return; diff --git a/kded/org.kde.KScreen.xml b/kded/org.kde.KScreen.xml --- a/kded/org.kde.KScreen.xml +++ b/kded/org.kde.KScreen.xml @@ -5,8 +5,11 @@ - - + + + + +