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 @@
-
-
+
+
+
+
+