18#include "deviceconfig.h"
20#include <deviceinfo.h>
23DeviceConfig::DeviceConfig(QObject *parent):
25 m_info(std::make_unique<DeviceInfo>())
29DeviceConfig::~DeviceConfig() =
default;
31QString DeviceConfig::name()
const
33 return QString::fromStdString(m_info->name());
36Qt::ScreenOrientation DeviceConfig::primaryOrientation()
const
38 return stringToOrientation(m_info->primaryOrientation(), Qt::PrimaryOrientation);
41Qt::ScreenOrientations DeviceConfig::supportedOrientations()
const
43 auto values = m_info->supportedOrientations();
45 return Qt::PortraitOrientation
46 | Qt::InvertedPortraitOrientation
47 | Qt::LandscapeOrientation
48 | Qt::InvertedLandscapeOrientation;
51 Qt::ScreenOrientations ret = Qt::PrimaryOrientation;
52 for (
auto orientationString : values) {
53 ret |= stringToOrientation(orientationString, Qt::PrimaryOrientation);
58Qt::ScreenOrientation DeviceConfig::landscapeOrientation()
const
60 return stringToOrientation(m_info->landscapeOrientation(), Qt::LandscapeOrientation);
63Qt::ScreenOrientation DeviceConfig::invertedLandscapeOrientation()
const
65 return stringToOrientation(m_info->invertedLandscapeOrientation(), Qt::InvertedLandscapeOrientation);
68Qt::ScreenOrientation DeviceConfig::portraitOrientation()
const
70 return stringToOrientation(m_info->portraitOrientation(), Qt::PortraitOrientation);
73Qt::ScreenOrientation DeviceConfig::invertedPortraitOrientation()
const
75 return stringToOrientation(m_info->invertedPortraitOrientation(), Qt::InvertedPortraitOrientation);
78QString DeviceConfig::category()
const
80 QStringList supportedValues = {
"phone",
"tablet",
"desktop"};
81 QString value = QString::fromStdString(DeviceInfo::deviceTypeToString(m_info->deviceType()));
82 if (!supportedValues.contains(value)) {
83 qWarning().nospace().noquote() <<
"Unknown option \"" << value
84 <<
". Supported options are: " << supportedValues.join(
", ") <<
".";
90Qt::ScreenOrientation DeviceConfig::stringToOrientation(
const std::string &orientationString, Qt::ScreenOrientation defaultValue)
const
92 if (orientationString ==
"Landscape") {
93 return Qt::LandscapeOrientation;
95 if (orientationString ==
"InvertedLandscape") {
96 return Qt::InvertedLandscapeOrientation;
98 if (orientationString ==
"Portrait") {
99 return Qt::PortraitOrientation;
101 if (orientationString ==
"InvertedPortrait") {
102 return Qt::InvertedPortraitOrientation;
104 if (!orientationString.empty()) {
106 qWarning().nospace().noquote() <<
"Unknown option \"" << QString::fromStdString(orientationString)
107 <<
". Supported options are: Landscape, InvertedLandscape, Portrait and InvertedPortrait.\"";
112bool DeviceConfig::supportsMultiColorLed()
const
114 return m_info->contains(
"supportsMultiColorLed");