vxnodeconfig.h 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130
  1. #ifndef VXNODECONFIG_H
  2. #define VXNODECONFIG_H
  3. #include <QJsonObject>
  4. #include <QDateTime>
  5. #include <QVector>
  6. #include <core/global.h>
  7. #include <notebook/node.h>
  8. #include <notebook/nodeparameters.h>
  9. namespace vnotex
  10. {
  11. // Config structures for VXNotebookConfigMgr.
  12. namespace vx_node_config
  13. {
  14. // Config of a file child.
  15. struct NodeFileConfig
  16. {
  17. QJsonObject toJson() const;
  18. void fromJson(const QJsonObject &p_jobj);
  19. NodeParameters toNodeParameters() const;
  20. QString m_name;
  21. ID m_id = Node::InvalidId;
  22. ID m_signature = Node::InvalidId;
  23. QDateTime m_createdTimeUtc;
  24. QDateTime m_modifiedTimeUtc;
  25. QString m_attachmentFolder;
  26. QStringList m_tags;
  27. // Visual settings
  28. QString m_backgroundColor;
  29. QString m_borderColor;
  30. QString m_nameColor;
  31. };
  32. // Config of a folder child.
  33. struct NodeFolderConfig
  34. {
  35. QJsonObject toJson() const;
  36. void fromJson(const QJsonObject &p_jobj);
  37. NodeParameters toNodeParameters() const;
  38. QString m_name;
  39. // Visual settings
  40. QString m_backgroundColor;
  41. QString m_borderColor;
  42. QString m_nameColor;
  43. };
  44. // Config of a folder node.
  45. struct NodeConfig
  46. {
  47. NodeConfig();
  48. NodeConfig(int p_version,
  49. ID p_id,
  50. ID p_signature,
  51. const QDateTime &p_createdTimeUtc,
  52. const QDateTime &p_modifiedTimeUtc);
  53. QJsonObject toJson() const;
  54. void fromJson(const QJsonObject &p_jobj);
  55. NodeParameters toNodeParameters() const;
  56. int m_version = 0;
  57. ID m_id = Node::InvalidId;
  58. ID m_signature = Node::InvalidId;
  59. QDateTime m_createdTimeUtc;
  60. QDateTime m_modifiedTimeUtc;
  61. QVector<NodeFileConfig> m_files;
  62. QVector<NodeFolderConfig> m_folders;
  63. // Visual settings for the container node itself
  64. QString m_backgroundColor;
  65. QString m_borderColor;
  66. QString m_nameColor;
  67. static const QString c_version;
  68. static const QString c_id;
  69. static const QString c_signature;
  70. static const QString c_createdTimeUtc;
  71. static const QString c_files;
  72. static const QString c_folders;
  73. static const QString c_name;
  74. static const QString c_modifiedTimeUtc;
  75. static const QString c_attachmentFolder;
  76. static const QString c_tags;
  77. static const QString c_backgroundColor;
  78. static const QString c_borderColor;
  79. static const QString c_nameColor;
  80. };
  81. }
  82. }
  83. #endif // VXNODECONFIG_H