ParameterPath.h 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190
  1. /**
  2. * @file ParameterPath.h
  3. * @brief 路径类参数类的头文件
  4. * @author FastCAE研发小组(fastcae@diso.cn)
  5. * @version 2.5.0
  6. * @date 2022-03-09 17:01
  7. * @copyright Copyright (c) Since 2020 青岛数智船海科技有限公司 All rights reserved.
  8. *
  9. * ============================================================================
  10. * Program: FastCAE
  11. *
  12. * Copyright (c) Since 2020 青岛数智船海科技有限公司 All rights reserved.
  13. * See License or http://www.fastcae.com/ for details.
  14. *
  15. * BSD 3-Clause License
  16. *
  17. * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
  18. * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  19. * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
  20. * DISCLAIMED.
  21. * ==================================================================================
  22. */
  23. #ifndef _PARAMETERPATH_H_
  24. #define _PARAMETERPATH_H_
  25. #include "ParameterBase.h"
  26. #include <QString>
  27. #include <QStringList>
  28. namespace DataProperty
  29. {
  30. /**
  31. * @brief 路径类型枚举值
  32. * @since 2.5.0
  33. */
  34. enum PathType
  35. {
  36. None = 0, ///< 未定义的类别
  37. Path, ///< 路径
  38. File, ///< 文件
  39. FileList, ///< 文件集合
  40. };
  41. /**
  42. * @brief 路径类参数类
  43. * @since 2.5.0
  44. */
  45. class DATAPROPERTYAPI ParameterPath : public ParameterBase
  46. {
  47. public:
  48. /**
  49. * @brief 构造函数
  50. * @since 2.5.0
  51. */
  52. ParameterPath();
  53. /**
  54. * @brief 析构函数
  55. * @since 2.5.0
  56. */
  57. ~ParameterPath() = default;
  58. /**
  59. * @brief 从ori中拷贝内容
  60. * @param ori 要拷贝内容的源参数对象
  61. * @param valueOnly 是否仅仅拷贝值
  62. * @since 2.5.0
  63. */
  64. void copy(ParameterBase* ori, bool valueOnly = false) override;
  65. /**
  66. * @brief 设置参数的路径类型(文件、路径、文件集)
  67. * @param t 要设置为参数的路径类型
  68. * @since 2.5.0
  69. */
  70. void setType(PathType t);
  71. /**
  72. * @brief 获取参数的路径类型
  73. * @return PathType
  74. * @since 2.5.0
  75. */
  76. PathType getType();
  77. /**
  78. * @brief 设置参数的后缀
  79. * @param s 后缀字符串
  80. * @note 仅在参数类型为文件或者文件集时有效
  81. * @since 2.5.0
  82. */
  83. void setSuffix(QString s);
  84. /**
  85. * @brief 获取参数的后缀
  86. * @return QString
  87. * @since 2.5.0
  88. */
  89. QString getSuffix();
  90. /**
  91. * @brief 设置文件路径
  92. * @param f 文件路径
  93. * @note 仅在参数类型为文件时有效
  94. * @since 2.5.0
  95. */
  96. void setFile(QString f);
  97. /**
  98. * @brief 获取文件路径
  99. * @return QString
  100. * @since 2.5.0
  101. */
  102. QString getFile();
  103. /**
  104. * @brief 设置文件列表
  105. * @param sl 文件列表
  106. * @note 仅在参数类型为文件集合时有效
  107. * @since 2.5.0
  108. */
  109. void setFileList(QStringList sl);
  110. /**
  111. * @brief 获取文件列表
  112. * @return QStringList
  113. * @since 2.5.0
  114. */
  115. QStringList getFileList();
  116. /**
  117. * @brief 设置路径
  118. * @param s 路径
  119. * @note 仅在参数类型为路径时有效
  120. * @since 2.5.0
  121. */
  122. void setPath(QString s);
  123. /**
  124. * @brief 获取路径
  125. * @return QString
  126. * @since 2.5.0
  127. */
  128. QString getPath();
  129. /**
  130. * @brief 将参数对象写入到工程文件
  131. * @param doc 工程文件的QDomDocument对象
  132. * @param parent 要追加该参数的父节点
  133. * @since 2.5.0
  134. */
  135. void writeParameter(QDomDocument* doc, QDomElement* parent) override;
  136. /**
  137. * @brief 从工程文件中对应节点读取参数
  138. * @param e 工程文件中对应的节点对象
  139. * @since 2.5.0
  140. */
  141. void readParameter(QDomElement* e) override;
  142. /**
  143. * @brief 将参数转换为字符串类型(QString)值
  144. * @return QString 转换后得到的字符串值
  145. * @since 2.5.0
  146. */
  147. QString valueToString() override;
  148. /**
  149. * @brief 设置从字符串对象获取参数值(转换)
  150. * @param v 要操作的字符串
  151. * @since 2.5.0
  152. */
  153. void setValueFromString(QString v) override;
  154. private:
  155. /**
  156. * @brief 参数类型
  157. * @since 2.5.0
  158. */
  159. PathType _type{ None };
  160. /**
  161. * @brief 参数后缀
  162. * @since 2.5.0
  163. */
  164. QString _suffix{"All Files(*)"};
  165. /**
  166. * @brief 参数的路径值
  167. * @since 2.5.0
  168. */
  169. QString _path{};
  170. /**
  171. * @brief 参数的文件路径值
  172. * @since 2.5.0
  173. */
  174. QString _file{};
  175. /**
  176. * @brief 参数的文件路径集合
  177. * @since 2.5.0
  178. */
  179. QStringList _files{};
  180. };
  181. }
  182. #endif