SettingsValue.h 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139
  1. //
  2. // Created by Tobias Hieta on 12/08/15.
  3. //
  4. #ifndef KONVERGO_SETTINGS_VALUE_H
  5. #define KONVERGO_SETTINGS_VALUE_H
  6. #include <QVariant>
  7. #include <utils/Utils.h>
  8. class SettingsValue : public QObject
  9. {
  10. Q_OBJECT
  11. public:
  12. SettingsValue(QObject* parent = 0)
  13. : QObject(parent)
  14. , m_platform(PLATFORM_UNKNOWN)
  15. , m_hidden(true)
  16. {}
  17. SettingsValue(const QString& _key, QVariant _defaultValue=QVariant(), quint8 platforms = PLATFORM_ANY, QObject* parent = 0)
  18. : QObject(parent)
  19. , m_key(_key)
  20. , m_value(QVariant())
  21. , m_defaultValue(_defaultValue)
  22. , m_platform(platforms)
  23. , m_hidden(true)
  24. {}
  25. const QString& key() const { return m_key; }
  26. const QVariant& value() const
  27. {
  28. if (!m_value.isValid())
  29. return m_defaultValue;
  30. return m_value;
  31. }
  32. void setValue(const QVariant& value)
  33. {
  34. m_value = value;
  35. }
  36. const QVariant& defaultValue() const
  37. {
  38. return m_defaultValue;
  39. }
  40. void setDefaultValue(const QVariant& defaultValue)
  41. {
  42. m_defaultValue = defaultValue;
  43. }
  44. const QVariantList& possibleValues() const
  45. {
  46. return m_possibleValues;
  47. }
  48. void setPossibleValues(const QVariantList& possibleValues)
  49. {
  50. m_possibleValues = possibleValues;
  51. }
  52. const quint8 platform() const
  53. {
  54. return m_platform;
  55. }
  56. void setPlatform(quint8 platform)
  57. {
  58. m_platform = platform;
  59. }
  60. void setHidden(bool hidden)
  61. {
  62. m_hidden = hidden;
  63. }
  64. bool isHidden() const
  65. {
  66. bool correctPlatform = ((m_platform & Utils::CurrentPlatform()) == Utils::CurrentPlatform());
  67. return (m_hidden || !correctPlatform);
  68. }
  69. void setInputType(const QString& inputType)
  70. {
  71. m_inputType = inputType;
  72. }
  73. void addPossibleValue(const QString& key, const QVariant& value)
  74. {
  75. QVariantMap entry;
  76. entry["value"] = value;
  77. entry["title"] = key;
  78. m_possibleValues << entry;
  79. }
  80. // goes back to use the default
  81. void reset()
  82. {
  83. m_value.clear();
  84. }
  85. QVariantMap descriptions() const
  86. {
  87. QVariantMap ret;
  88. ret.insert("key", m_key);
  89. if (!m_possibleValues.isEmpty())
  90. ret.insert("options", m_possibleValues);
  91. if (m_inputType.size())
  92. ret.insert("input_type", m_inputType);
  93. return ret;
  94. }
  95. void setIndexOrder(int order)
  96. {
  97. m_indexOrder = order;
  98. }
  99. int indexOrder() const { return m_indexOrder; }
  100. private:
  101. QString m_key;
  102. QVariant m_value;
  103. QVariant m_defaultValue;
  104. QVariantList m_possibleValues;
  105. quint8 m_platform;
  106. bool m_hidden;
  107. QString m_inputType;
  108. int m_indexOrder;
  109. };
  110. #endif //KONVERGO_SETTINGS_VALUE_H