SettingsValue.h 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145
  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. explicit SettingsValue(QObject* parent = nullptr)
  13. : QObject(parent)
  14. , m_platform(PLATFORM_UNKNOWN)
  15. , m_hidden(true)
  16. , m_indexOrder(0)
  17. , m_hasDescription(false)
  18. {}
  19. explicit SettingsValue(const QString& _key, QVariant _defaultValue=QVariant(), quint8 platforms = PLATFORM_ANY, QObject* parent = nullptr)
  20. : QObject(parent)
  21. , m_key(_key)
  22. , m_value(QVariant())
  23. , m_defaultValue(_defaultValue)
  24. , m_platform(platforms)
  25. , m_hidden(true)
  26. , m_indexOrder(0)
  27. , m_hasDescription(false)
  28. {}
  29. const QString& key() const { return m_key; }
  30. const QVariant& value() const
  31. {
  32. if (!m_value.isValid())
  33. return m_defaultValue;
  34. return m_value;
  35. }
  36. void setValue(const QVariant& value)
  37. {
  38. m_value = value;
  39. }
  40. const QVariant& defaultValue() const
  41. {
  42. return m_defaultValue;
  43. }
  44. void setDefaultValue(const QVariant& defaultValue)
  45. {
  46. m_defaultValue = defaultValue;
  47. }
  48. const QVariantList& possibleValues() const
  49. {
  50. return m_possibleValues;
  51. }
  52. void setPossibleValues(const QVariantList& possibleValues)
  53. {
  54. m_possibleValues = possibleValues;
  55. }
  56. const quint8 platform() const
  57. {
  58. return m_platform;
  59. }
  60. void setPlatform(quint8 platform)
  61. {
  62. m_platform = platform;
  63. }
  64. void setHidden(bool hidden)
  65. {
  66. m_hidden = hidden;
  67. }
  68. bool isHidden() const
  69. {
  70. bool correctPlatform = ((m_platform & Utils::CurrentPlatform()) == Utils::CurrentPlatform());
  71. return (m_hidden || !correctPlatform);
  72. }
  73. void setInputType(const QString& inputType)
  74. {
  75. m_inputType = inputType;
  76. }
  77. void addPossibleValue(const QString& key, const QVariant& value)
  78. {
  79. QVariantMap entry;
  80. entry["value"] = value;
  81. entry["title"] = key;
  82. m_possibleValues << entry;
  83. }
  84. QVariantMap descriptions() const
  85. {
  86. QVariantMap ret;
  87. ret.insert("key", m_key);
  88. if (!m_possibleValues.isEmpty())
  89. ret.insert("options", m_possibleValues);
  90. if (m_inputType.size())
  91. ret.insert("input_type", m_inputType);
  92. return ret;
  93. }
  94. void setIndexOrder(int order)
  95. {
  96. m_indexOrder = order;
  97. }
  98. int indexOrder() const { return m_indexOrder; }
  99. void setHasDescription(bool hasDescription)
  100. {
  101. m_hasDescription = hasDescription;
  102. }
  103. bool hasDescription() { return m_hasDescription; }
  104. private:
  105. QString m_key;
  106. QVariant m_value;
  107. QVariant m_defaultValue;
  108. QVariantList m_possibleValues;
  109. quint8 m_platform;
  110. bool m_hidden;
  111. QString m_inputType;
  112. int m_indexOrder;
  113. bool m_hasDescription;
  114. };
  115. #endif //KONVERGO_SETTINGS_VALUE_H