@@ -0,0 +1,93 @@
1+#include "deviceconfigparser.h"
2+
3+#include <QSettings>
4+#include <QSettings>
5+
6+DeviceConfigParser::DeviceConfigParser(QObject *parent): QObject(parent)
7+{
8+
9+}
10+
11+QString DeviceConfigParser::name() const
12+{
13+ return m_name;
14+}
15+
16+void DeviceConfigParser::setName(const QString &name)
17+{
18+ if (m_name == name) {
19+ return;
20+ }
21+ m_name = name;
22+ Q_EMIT changed();
23+}
24+
25+Qt::ScreenOrientation DeviceConfigParser::primaryOrientation() const
26+{
27+ return stringToOrientation(readOrientationStringFromConfig("PrimaryOrientation"), Qt::PrimaryOrientation);
28+}
29+
30+Qt::ScreenOrientations DeviceConfigParser::supportedOrientations() const
31+{
32+ QString values = readOrientationStringFromConfig("SupportedOrientations");
33+ if (values.isEmpty()) {
34+ return Qt::PortraitOrientation
35+ | Qt::InvertedPortraitOrientation
36+ | Qt::LandscapeOrientation
37+ | Qt::InvertedLandscapeOrientation;
38+ }
39+
40+ Qt::ScreenOrientations ret = Qt::PrimaryOrientation;
41+ Q_FOREACH(const QString &orientationString, values.split(',')) {
42+ ret |= stringToOrientation(orientationString, Qt::PrimaryOrientation);
43+ }
44+ return ret;
45+}
46+
47+Qt::ScreenOrientation DeviceConfigParser::landscapeOrientation() const
48+{
49+ return stringToOrientation(readOrientationStringFromConfig("LandscapeOrientation"), Qt::LandscapeOrientation);
50+}
51+
52+Qt::ScreenOrientation DeviceConfigParser::invertedLandscapeOrientation() const
53+{
54+ return stringToOrientation(readOrientationStringFromConfig("InvertedLandscapeOrientation"), Qt::InvertedLandscapeOrientation);
55+}
56+
57+Qt::ScreenOrientation DeviceConfigParser::portraitOrientation() const
58+{
59+ return stringToOrientation(readOrientationStringFromConfig("PortraitOrientation"), Qt::PortraitOrientation);
60+}
61+
62+Qt::ScreenOrientation DeviceConfigParser::invertedPortraitOrientation() const
63+{
64+ return stringToOrientation(readOrientationStringFromConfig("InvertedPortraitOrientation"), Qt::InvertedPortraitOrientation);
65+}
66+
67+QString DeviceConfigParser::readOrientationStringFromConfig(const QString &key) const
68+{
69+ QSettings config("/etc/unity8/devices.conf", QSettings::IniFormat);
70+ config.beginGroup(m_name);
71+
72+ if (config.contains(key)) {
73+ return config.value(key).toString();
74+ }
75+ return QString();
76+}
77+
78+Qt::ScreenOrientation DeviceConfigParser::stringToOrientation(const QString &orientationString, Qt::ScreenOrientation defaultValue) const
79+{
80+ if (orientationString == "Landscape") {
81+ return Qt::LandscapeOrientation;
82+ }
83+ if (orientationString == "InvertedLandscape") {
84+ return Qt::InvertedLandscapeOrientation;
85+ }
86+ if (orientationString == "Portrait") {
87+ return Qt::PortraitOrientation;
88+ }
89+ if (orientationString == "InvertedPortrait") {
90+ return Qt::InvertedPortraitOrientation;
91+ }
92+ return defaultValue;
93+}