File indexing completed on 2024-05-26 04:50:02

0001 #include "formfactor.h"
0002 #include "formfactoradaptor.h"
0003 #include <QDBusInterface>
0004 #include <QMap>
0005 
0006 #include "settingsstore.h"
0007 
0008 FormFactor::FormFactor(QObject *parent) : QObject(parent)
0009 ,m_manager(new MauiMan::FormFactorInfo(this))
0010 {
0011     qDebug("INIT FORMFACTOR MODULE");
0012     new FormFactorAdaptor(this);
0013     if(!QDBusConnection::sessionBus().registerObject(QStringLiteral("/FormFactor"), this))
0014     {
0015         qDebug() << "FAILED TO REGISTER FORMFACTOR DBUS OBJECT";
0016         return;
0017     }
0018 
0019     //grab default values
0020     m_defaultMode = m_manager->defaultMode();
0021     m_bestMode = m_manager->bestMode();
0022     
0023     m_hasKeyboard = m_manager->hasKeyboard();
0024     m_hasMouse = m_manager->hasMouse();
0025     m_hasTouchpad = m_manager->hasTouchpad();
0026     m_hasTouchscreen = m_manager->hasTouchscreen();
0027     
0028     connect(m_manager, &MauiMan::FormFactorManager::bestModeChanged, this, &FormFactor::setBestMode);
0029     connect(m_manager, &MauiMan::FormFactorManager::hasKeyboardChanged, this, &FormFactor::setHasKeyboard);
0030     connect(m_manager, &MauiMan::FormFactorManager::hasMouseChanged, this, &FormFactor::setHasMouse);
0031     connect(m_manager, &MauiMan::FormFactorManager::hasTouchpadChanged, this, &FormFactor::setHasTouchpad);
0032     connect(m_manager, &MauiMan::FormFactorManager::hasTouchscreenChanged, this, &FormFactor::setHasTouchscreen);
0033 
0034     //grab user preferences
0035     MauiMan::SettingsStore settings;
0036     settings.beginModule(QStringLiteral("FormFactor"));
0037     m_preferredMode = settings.load(QStringLiteral("PreferredMode"), m_preferredMode).toUInt();
0038     settings.endModule();
0039 }
0040 
0041 uint FormFactor::preferredMode() const
0042 {
0043     return m_preferredMode;
0044 }
0045 
0046 uint FormFactor::bestMode() const
0047 {
0048     return m_bestMode;
0049 }
0050 
0051 uint FormFactor::defaultMode() const
0052 {
0053     return m_defaultMode;
0054 }
0055 
0056 bool FormFactor::hasKeyboard() const
0057 {
0058     return m_hasKeyboard;
0059 }
0060 
0061 bool FormFactor::hasTouchscreen() const
0062 {
0063     return m_hasTouchscreen;
0064 }
0065 
0066 bool FormFactor::hasMouse() const
0067 {
0068     return m_hasMouse;
0069 }
0070 
0071 bool FormFactor::hasTouchpad() const
0072 {
0073     return m_hasTouchpad;
0074 }
0075 
0076 void FormFactor::setPreferredMode(uint preferredMode)
0077 {
0078     if (m_preferredMode == preferredMode)
0079         return;
0080 
0081     m_preferredMode = preferredMode;
0082     Q_EMIT preferredModeChanged(m_preferredMode);
0083 }
0084 
0085 void FormFactor::setBestMode(uint bestMode)
0086 {
0087     if (m_bestMode == bestMode)
0088         return;
0089 
0090     m_bestMode = bestMode;
0091     Q_EMIT bestModeChanged(m_bestMode);
0092 }
0093 
0094 void FormFactor::setHasKeyboard(bool value)
0095 {
0096     if (m_hasKeyboard == value)
0097         return;
0098 
0099     m_hasKeyboard = value;
0100     Q_EMIT hasKeyboardChanged(m_hasKeyboard);
0101 }
0102 
0103 void FormFactor::setHasMouse(bool value)
0104 {
0105     if (m_hasMouse == value)
0106         return;
0107 
0108     m_hasMouse = value;
0109     Q_EMIT hasMouseChanged(m_hasMouse);
0110 }
0111 
0112 void FormFactor::setHasTouchpad(bool value)
0113 {
0114     if (m_hasTouchpad == value)
0115         return;
0116 
0117     m_hasTouchpad = value;
0118     Q_EMIT hasTouchpadChanged(m_hasTouchpad);
0119 }
0120 
0121 void FormFactor::setHasTouchscreen(bool value)
0122 {
0123     if (m_hasTouchscreen == value)
0124         return;
0125 
0126     m_hasTouchscreen = value;
0127     Q_EMIT hasTouchscreenChanged(m_hasTouchscreen);
0128 }
0129 
0130 bool FormFactor::hasTouchScreen() const
0131 {
0132     return m_hasTouchscreen;
0133 }
0134 
0135 
0136