qtpropertymanager.h 26 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745
  1. /****************************************************************************
  2. **
  3. ** Copyright (C) 2016 The Qt Company Ltd.
  4. ** Contact: https://www.qt.io/licensing/
  5. **
  6. ** This file is part of the tools applications of the Qt Toolkit.
  7. **
  8. ** $QT_BEGIN_LICENSE:LGPL$
  9. ** Commercial License Usage
  10. ** Licensees holding valid commercial Qt licenses may use this file in
  11. ** accordance with the commercial license agreement provided with the
  12. ** Software or, alternatively, in accordance with the terms contained in
  13. ** a written agreement between you and The Qt Company. For licensing terms
  14. ** and conditions see https://www.qt.io/terms-conditions. For further
  15. ** information use the contact form at https://www.qt.io/contact-us.
  16. **
  17. ** GNU Lesser General Public License Usage
  18. ** Alternatively, this file may be used under the terms of the GNU Lesser
  19. ** General Public License version 3 as published by the Free Software
  20. ** Foundation and appearing in the file LICENSE.LGPL3 included in the
  21. ** packaging of this file. Please review the following information to
  22. ** ensure the GNU Lesser General Public License version 3 requirements
  23. ** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
  24. **
  25. ** GNU General Public License Usage
  26. ** Alternatively, this file may be used under the terms of the GNU
  27. ** General Public License version 2.0 or (at your option) the GNU General
  28. ** Public license version 3 or any later version approved by the KDE Free
  29. ** Qt Foundation. The licenses are as published by the Free Software
  30. ** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
  31. ** included in the packaging of this file. Please review the following
  32. ** information to ensure the GNU General Public License requirements will
  33. ** be met: https://www.gnu.org/licenses/gpl-2.0.html and
  34. ** https://www.gnu.org/licenses/gpl-3.0.html.
  35. **
  36. ** $QT_END_LICENSE$
  37. **
  38. ****************************************************************************/
  39. #ifndef QTPROPERTYMANAGER_H
  40. #define QTPROPERTYMANAGER_H
  41. #include "qtpropertybrowser.h"
  42. QT_BEGIN_NAMESPACE
  43. class QDate;
  44. class QTime;
  45. class QDateTime;
  46. class QLocale;
  47. class QtGroupPropertyManager : public QtAbstractPropertyManager
  48. {
  49. Q_OBJECT
  50. public:
  51. QtGroupPropertyManager(QObject *parent = 0);
  52. ~QtGroupPropertyManager();
  53. protected:
  54. virtual bool hasValue(const QtProperty *property) const;
  55. virtual void initializeProperty(QtProperty *property);
  56. virtual void uninitializeProperty(QtProperty *property);
  57. };
  58. class QtIntPropertyManagerPrivate;
  59. class QtIntPropertyManager : public QtAbstractPropertyManager
  60. {
  61. Q_OBJECT
  62. public:
  63. QtIntPropertyManager(QObject *parent = 0);
  64. ~QtIntPropertyManager();
  65. int value(const QtProperty *property) const;
  66. int minimum(const QtProperty *property) const;
  67. int maximum(const QtProperty *property) const;
  68. int singleStep(const QtProperty *property) const;
  69. public Q_SLOTS:
  70. void setValue(QtProperty *property, int val);
  71. void setMinimum(QtProperty *property, int minVal);
  72. void setMaximum(QtProperty *property, int maxVal);
  73. void setRange(QtProperty *property, int minVal, int maxVal);
  74. void setSingleStep(QtProperty *property, int step);
  75. Q_SIGNALS:
  76. void valueChanged(QtProperty *property, int val);
  77. void rangeChanged(QtProperty *property, int minVal, int maxVal);
  78. void singleStepChanged(QtProperty *property, int step);
  79. protected:
  80. QString valueText(const QtProperty *property) const;
  81. virtual void initializeProperty(QtProperty *property);
  82. virtual void uninitializeProperty(QtProperty *property);
  83. private:
  84. QScopedPointer<QtIntPropertyManagerPrivate> d_ptr;
  85. Q_DECLARE_PRIVATE(QtIntPropertyManager)
  86. Q_DISABLE_COPY_MOVE(QtIntPropertyManager)
  87. };
  88. class QtBoolPropertyManagerPrivate;
  89. class QtBoolPropertyManager : public QtAbstractPropertyManager
  90. {
  91. Q_OBJECT
  92. public:
  93. QtBoolPropertyManager(QObject *parent = 0);
  94. ~QtBoolPropertyManager();
  95. bool value(const QtProperty *property) const;
  96. public Q_SLOTS:
  97. void setValue(QtProperty *property, bool val);
  98. Q_SIGNALS:
  99. void valueChanged(QtProperty *property, bool val);
  100. protected:
  101. QString valueText(const QtProperty *property) const;
  102. QIcon valueIcon(const QtProperty *property) const;
  103. virtual void initializeProperty(QtProperty *property);
  104. virtual void uninitializeProperty(QtProperty *property);
  105. private:
  106. QScopedPointer<QtBoolPropertyManagerPrivate> d_ptr;
  107. Q_DECLARE_PRIVATE(QtBoolPropertyManager)
  108. Q_DISABLE_COPY_MOVE(QtBoolPropertyManager)
  109. };
  110. class QtDoublePropertyManagerPrivate;
  111. class QtDoublePropertyManager : public QtAbstractPropertyManager
  112. {
  113. Q_OBJECT
  114. public:
  115. QtDoublePropertyManager(QObject *parent = 0);
  116. ~QtDoublePropertyManager();
  117. double value(const QtProperty *property) const;
  118. double minimum(const QtProperty *property) const;
  119. double maximum(const QtProperty *property) const;
  120. double singleStep(const QtProperty *property) const;
  121. int decimals(const QtProperty *property) const;
  122. public Q_SLOTS:
  123. void setValue(QtProperty *property, double val);
  124. void setMinimum(QtProperty *property, double minVal);
  125. void setMaximum(QtProperty *property, double maxVal);
  126. void setRange(QtProperty *property, double minVal, double maxVal);
  127. void setSingleStep(QtProperty *property, double step);
  128. void setDecimals(QtProperty *property, int prec);
  129. Q_SIGNALS:
  130. void valueChanged(QtProperty *property, double val);
  131. void rangeChanged(QtProperty *property, double minVal, double maxVal);
  132. void singleStepChanged(QtProperty *property, double step);
  133. void decimalsChanged(QtProperty *property, int prec);
  134. protected:
  135. QString valueText(const QtProperty *property) const;
  136. virtual void initializeProperty(QtProperty *property);
  137. virtual void uninitializeProperty(QtProperty *property);
  138. private:
  139. QScopedPointer<QtDoublePropertyManagerPrivate> d_ptr;
  140. Q_DECLARE_PRIVATE(QtDoublePropertyManager)
  141. Q_DISABLE_COPY_MOVE(QtDoublePropertyManager)
  142. };
  143. class QtStringPropertyManagerPrivate;
  144. class QtStringPropertyManager : public QtAbstractPropertyManager
  145. {
  146. Q_OBJECT
  147. public:
  148. QtStringPropertyManager(QObject *parent = 0);
  149. ~QtStringPropertyManager();
  150. QString value(const QtProperty *property) const;
  151. QRegExp regExp(const QtProperty *property) const;
  152. public Q_SLOTS:
  153. void setValue(QtProperty *property, const QString &val);
  154. void setRegExp(QtProperty *property, const QRegExp &regExp);
  155. Q_SIGNALS:
  156. void valueChanged(QtProperty *property, const QString &val);
  157. void regExpChanged(QtProperty *property, const QRegExp &regExp);
  158. protected:
  159. QString valueText(const QtProperty *property) const;
  160. virtual void initializeProperty(QtProperty *property);
  161. virtual void uninitializeProperty(QtProperty *property);
  162. private:
  163. QScopedPointer<QtStringPropertyManagerPrivate> d_ptr;
  164. Q_DECLARE_PRIVATE(QtStringPropertyManager)
  165. Q_DISABLE_COPY_MOVE(QtStringPropertyManager)
  166. };
  167. class QtDatePropertyManagerPrivate;
  168. class QtDatePropertyManager : public QtAbstractPropertyManager
  169. {
  170. Q_OBJECT
  171. public:
  172. QtDatePropertyManager(QObject *parent = 0);
  173. ~QtDatePropertyManager();
  174. QDate value(const QtProperty *property) const;
  175. QDate minimum(const QtProperty *property) const;
  176. QDate maximum(const QtProperty *property) const;
  177. public Q_SLOTS:
  178. void setValue(QtProperty *property, const QDate &val);
  179. void setMinimum(QtProperty *property, const QDate &minVal);
  180. void setMaximum(QtProperty *property, const QDate &maxVal);
  181. void setRange(QtProperty *property, const QDate &minVal, const QDate &maxVal);
  182. Q_SIGNALS:
  183. void valueChanged(QtProperty *property, const QDate &val);
  184. void rangeChanged(QtProperty *property, const QDate &minVal, const QDate &maxVal);
  185. protected:
  186. QString valueText(const QtProperty *property) const;
  187. virtual void initializeProperty(QtProperty *property);
  188. virtual void uninitializeProperty(QtProperty *property);
  189. private:
  190. QScopedPointer<QtDatePropertyManagerPrivate> d_ptr;
  191. Q_DECLARE_PRIVATE(QtDatePropertyManager)
  192. Q_DISABLE_COPY_MOVE(QtDatePropertyManager)
  193. };
  194. class QtTimePropertyManagerPrivate;
  195. class QtTimePropertyManager : public QtAbstractPropertyManager
  196. {
  197. Q_OBJECT
  198. public:
  199. QtTimePropertyManager(QObject *parent = 0);
  200. ~QtTimePropertyManager();
  201. QTime value(const QtProperty *property) const;
  202. public Q_SLOTS:
  203. void setValue(QtProperty *property, const QTime &val);
  204. Q_SIGNALS:
  205. void valueChanged(QtProperty *property, const QTime &val);
  206. protected:
  207. QString valueText(const QtProperty *property) const;
  208. virtual void initializeProperty(QtProperty *property);
  209. virtual void uninitializeProperty(QtProperty *property);
  210. private:
  211. QScopedPointer<QtTimePropertyManagerPrivate> d_ptr;
  212. Q_DECLARE_PRIVATE(QtTimePropertyManager)
  213. Q_DISABLE_COPY_MOVE(QtTimePropertyManager)
  214. };
  215. class QtDateTimePropertyManagerPrivate;
  216. class QtDateTimePropertyManager : public QtAbstractPropertyManager
  217. {
  218. Q_OBJECT
  219. public:
  220. QtDateTimePropertyManager(QObject *parent = 0);
  221. ~QtDateTimePropertyManager();
  222. QDateTime value(const QtProperty *property) const;
  223. public Q_SLOTS:
  224. void setValue(QtProperty *property, const QDateTime &val);
  225. Q_SIGNALS:
  226. void valueChanged(QtProperty *property, const QDateTime &val);
  227. protected:
  228. QString valueText(const QtProperty *property) const;
  229. virtual void initializeProperty(QtProperty *property);
  230. virtual void uninitializeProperty(QtProperty *property);
  231. private:
  232. QScopedPointer<QtDateTimePropertyManagerPrivate> d_ptr;
  233. Q_DECLARE_PRIVATE(QtDateTimePropertyManager)
  234. Q_DISABLE_COPY_MOVE(QtDateTimePropertyManager)
  235. };
  236. class QtKeySequencePropertyManagerPrivate;
  237. class QtKeySequencePropertyManager : public QtAbstractPropertyManager
  238. {
  239. Q_OBJECT
  240. public:
  241. QtKeySequencePropertyManager(QObject *parent = 0);
  242. ~QtKeySequencePropertyManager();
  243. QKeySequence value(const QtProperty *property) const;
  244. public Q_SLOTS:
  245. void setValue(QtProperty *property, const QKeySequence &val);
  246. Q_SIGNALS:
  247. void valueChanged(QtProperty *property, const QKeySequence &val);
  248. protected:
  249. QString valueText(const QtProperty *property) const;
  250. virtual void initializeProperty(QtProperty *property);
  251. virtual void uninitializeProperty(QtProperty *property);
  252. private:
  253. QScopedPointer<QtKeySequencePropertyManagerPrivate> d_ptr;
  254. Q_DECLARE_PRIVATE(QtKeySequencePropertyManager)
  255. Q_DISABLE_COPY_MOVE(QtKeySequencePropertyManager)
  256. };
  257. class QtCharPropertyManagerPrivate;
  258. class QtCharPropertyManager : public QtAbstractPropertyManager
  259. {
  260. Q_OBJECT
  261. public:
  262. QtCharPropertyManager(QObject *parent = 0);
  263. ~QtCharPropertyManager();
  264. QChar value(const QtProperty *property) const;
  265. public Q_SLOTS:
  266. void setValue(QtProperty *property, const QChar &val);
  267. Q_SIGNALS:
  268. void valueChanged(QtProperty *property, const QChar &val);
  269. protected:
  270. QString valueText(const QtProperty *property) const;
  271. virtual void initializeProperty(QtProperty *property);
  272. virtual void uninitializeProperty(QtProperty *property);
  273. private:
  274. QScopedPointer<QtCharPropertyManagerPrivate> d_ptr;
  275. Q_DECLARE_PRIVATE(QtCharPropertyManager)
  276. Q_DISABLE_COPY_MOVE(QtCharPropertyManager)
  277. };
  278. class QtEnumPropertyManager;
  279. class QtLocalePropertyManagerPrivate;
  280. class QtLocalePropertyManager : public QtAbstractPropertyManager
  281. {
  282. Q_OBJECT
  283. public:
  284. QtLocalePropertyManager(QObject *parent = 0);
  285. ~QtLocalePropertyManager();
  286. QtEnumPropertyManager *subEnumPropertyManager() const;
  287. QLocale value(const QtProperty *property) const;
  288. public Q_SLOTS:
  289. void setValue(QtProperty *property, const QLocale &val);
  290. Q_SIGNALS:
  291. void valueChanged(QtProperty *property, const QLocale &val);
  292. protected:
  293. QString valueText(const QtProperty *property) const;
  294. virtual void initializeProperty(QtProperty *property);
  295. virtual void uninitializeProperty(QtProperty *property);
  296. private:
  297. QScopedPointer<QtLocalePropertyManagerPrivate> d_ptr;
  298. Q_DECLARE_PRIVATE(QtLocalePropertyManager)
  299. Q_DISABLE_COPY_MOVE(QtLocalePropertyManager)
  300. Q_PRIVATE_SLOT(d_func(), void slotEnumChanged(QtProperty *, int))
  301. Q_PRIVATE_SLOT(d_func(), void slotPropertyDestroyed(QtProperty *))
  302. };
  303. class QtPointPropertyManagerPrivate;
  304. class QtPointPropertyManager : public QtAbstractPropertyManager
  305. {
  306. Q_OBJECT
  307. public:
  308. QtPointPropertyManager(QObject *parent = 0);
  309. ~QtPointPropertyManager();
  310. QtIntPropertyManager *subIntPropertyManager() const;
  311. QPoint value(const QtProperty *property) const;
  312. public Q_SLOTS:
  313. void setValue(QtProperty *property, const QPoint &val);
  314. Q_SIGNALS:
  315. void valueChanged(QtProperty *property, const QPoint &val);
  316. protected:
  317. QString valueText(const QtProperty *property) const;
  318. virtual void initializeProperty(QtProperty *property);
  319. virtual void uninitializeProperty(QtProperty *property);
  320. private:
  321. QScopedPointer<QtPointPropertyManagerPrivate> d_ptr;
  322. Q_DECLARE_PRIVATE(QtPointPropertyManager)
  323. Q_DISABLE_COPY_MOVE(QtPointPropertyManager)
  324. Q_PRIVATE_SLOT(d_func(), void slotIntChanged(QtProperty *, int))
  325. Q_PRIVATE_SLOT(d_func(), void slotPropertyDestroyed(QtProperty *))
  326. };
  327. class QtPointFPropertyManagerPrivate;
  328. class QtPointFPropertyManager : public QtAbstractPropertyManager
  329. {
  330. Q_OBJECT
  331. public:
  332. QtPointFPropertyManager(QObject *parent = 0);
  333. ~QtPointFPropertyManager();
  334. QtDoublePropertyManager *subDoublePropertyManager() const;
  335. QPointF value(const QtProperty *property) const;
  336. int decimals(const QtProperty *property) const;
  337. public Q_SLOTS:
  338. void setValue(QtProperty *property, const QPointF &val);
  339. void setDecimals(QtProperty *property, int prec);
  340. Q_SIGNALS:
  341. void valueChanged(QtProperty *property, const QPointF &val);
  342. void decimalsChanged(QtProperty *property, int prec);
  343. protected:
  344. QString valueText(const QtProperty *property) const;
  345. virtual void initializeProperty(QtProperty *property);
  346. virtual void uninitializeProperty(QtProperty *property);
  347. private:
  348. QScopedPointer<QtPointFPropertyManagerPrivate> d_ptr;
  349. Q_DECLARE_PRIVATE(QtPointFPropertyManager)
  350. Q_DISABLE_COPY_MOVE(QtPointFPropertyManager)
  351. Q_PRIVATE_SLOT(d_func(), void slotDoubleChanged(QtProperty *, double))
  352. Q_PRIVATE_SLOT(d_func(), void slotPropertyDestroyed(QtProperty *))
  353. };
  354. class QtSizePropertyManagerPrivate;
  355. class QtSizePropertyManager : public QtAbstractPropertyManager
  356. {
  357. Q_OBJECT
  358. public:
  359. QtSizePropertyManager(QObject *parent = 0);
  360. ~QtSizePropertyManager();
  361. QtIntPropertyManager *subIntPropertyManager() const;
  362. QSize value(const QtProperty *property) const;
  363. QSize minimum(const QtProperty *property) const;
  364. QSize maximum(const QtProperty *property) const;
  365. public Q_SLOTS:
  366. void setValue(QtProperty *property, const QSize &val);
  367. void setMinimum(QtProperty *property, const QSize &minVal);
  368. void setMaximum(QtProperty *property, const QSize &maxVal);
  369. void setRange(QtProperty *property, const QSize &minVal, const QSize &maxVal);
  370. Q_SIGNALS:
  371. void valueChanged(QtProperty *property, const QSize &val);
  372. void rangeChanged(QtProperty *property, const QSize &minVal, const QSize &maxVal);
  373. protected:
  374. QString valueText(const QtProperty *property) const;
  375. virtual void initializeProperty(QtProperty *property);
  376. virtual void uninitializeProperty(QtProperty *property);
  377. private:
  378. QScopedPointer<QtSizePropertyManagerPrivate> d_ptr;
  379. Q_DECLARE_PRIVATE(QtSizePropertyManager)
  380. Q_DISABLE_COPY_MOVE(QtSizePropertyManager)
  381. Q_PRIVATE_SLOT(d_func(), void slotIntChanged(QtProperty *, int))
  382. Q_PRIVATE_SLOT(d_func(), void slotPropertyDestroyed(QtProperty *))
  383. };
  384. class QtSizeFPropertyManagerPrivate;
  385. class QtSizeFPropertyManager : public QtAbstractPropertyManager
  386. {
  387. Q_OBJECT
  388. public:
  389. QtSizeFPropertyManager(QObject *parent = 0);
  390. ~QtSizeFPropertyManager();
  391. QtDoublePropertyManager *subDoublePropertyManager() const;
  392. QSizeF value(const QtProperty *property) const;
  393. QSizeF minimum(const QtProperty *property) const;
  394. QSizeF maximum(const QtProperty *property) const;
  395. int decimals(const QtProperty *property) const;
  396. public Q_SLOTS:
  397. void setValue(QtProperty *property, const QSizeF &val);
  398. void setMinimum(QtProperty *property, const QSizeF &minVal);
  399. void setMaximum(QtProperty *property, const QSizeF &maxVal);
  400. void setRange(QtProperty *property, const QSizeF &minVal, const QSizeF &maxVal);
  401. void setDecimals(QtProperty *property, int prec);
  402. Q_SIGNALS:
  403. void valueChanged(QtProperty *property, const QSizeF &val);
  404. void rangeChanged(QtProperty *property, const QSizeF &minVal, const QSizeF &maxVal);
  405. void decimalsChanged(QtProperty *property, int prec);
  406. protected:
  407. QString valueText(const QtProperty *property) const;
  408. virtual void initializeProperty(QtProperty *property);
  409. virtual void uninitializeProperty(QtProperty *property);
  410. private:
  411. QScopedPointer<QtSizeFPropertyManagerPrivate> d_ptr;
  412. Q_DECLARE_PRIVATE(QtSizeFPropertyManager)
  413. Q_DISABLE_COPY_MOVE(QtSizeFPropertyManager)
  414. Q_PRIVATE_SLOT(d_func(), void slotDoubleChanged(QtProperty *, double))
  415. Q_PRIVATE_SLOT(d_func(), void slotPropertyDestroyed(QtProperty *))
  416. };
  417. class QtRectPropertyManagerPrivate;
  418. class QtRectPropertyManager : public QtAbstractPropertyManager
  419. {
  420. Q_OBJECT
  421. public:
  422. QtRectPropertyManager(QObject *parent = 0);
  423. ~QtRectPropertyManager();
  424. QtIntPropertyManager *subIntPropertyManager() const;
  425. QRect value(const QtProperty *property) const;
  426. QRect constraint(const QtProperty *property) const;
  427. public Q_SLOTS:
  428. void setValue(QtProperty *property, const QRect &val);
  429. void setConstraint(QtProperty *property, const QRect &constraint);
  430. Q_SIGNALS:
  431. void valueChanged(QtProperty *property, const QRect &val);
  432. void constraintChanged(QtProperty *property, const QRect &constraint);
  433. protected:
  434. QString valueText(const QtProperty *property) const;
  435. virtual void initializeProperty(QtProperty *property);
  436. virtual void uninitializeProperty(QtProperty *property);
  437. private:
  438. QScopedPointer<QtRectPropertyManagerPrivate> d_ptr;
  439. Q_DECLARE_PRIVATE(QtRectPropertyManager)
  440. Q_DISABLE_COPY_MOVE(QtRectPropertyManager)
  441. Q_PRIVATE_SLOT(d_func(), void slotIntChanged(QtProperty *, int))
  442. Q_PRIVATE_SLOT(d_func(), void slotPropertyDestroyed(QtProperty *))
  443. };
  444. class QtRectFPropertyManagerPrivate;
  445. class QtRectFPropertyManager : public QtAbstractPropertyManager
  446. {
  447. Q_OBJECT
  448. public:
  449. QtRectFPropertyManager(QObject *parent = 0);
  450. ~QtRectFPropertyManager();
  451. QtDoublePropertyManager *subDoublePropertyManager() const;
  452. QRectF value(const QtProperty *property) const;
  453. QRectF constraint(const QtProperty *property) const;
  454. int decimals(const QtProperty *property) const;
  455. public Q_SLOTS:
  456. void setValue(QtProperty *property, const QRectF &val);
  457. void setConstraint(QtProperty *property, const QRectF &constraint);
  458. void setDecimals(QtProperty *property, int prec);
  459. Q_SIGNALS:
  460. void valueChanged(QtProperty *property, const QRectF &val);
  461. void constraintChanged(QtProperty *property, const QRectF &constraint);
  462. void decimalsChanged(QtProperty *property, int prec);
  463. protected:
  464. QString valueText(const QtProperty *property) const;
  465. virtual void initializeProperty(QtProperty *property);
  466. virtual void uninitializeProperty(QtProperty *property);
  467. private:
  468. QScopedPointer<QtRectFPropertyManagerPrivate> d_ptr;
  469. Q_DECLARE_PRIVATE(QtRectFPropertyManager)
  470. Q_DISABLE_COPY_MOVE(QtRectFPropertyManager)
  471. Q_PRIVATE_SLOT(d_func(), void slotDoubleChanged(QtProperty *, double))
  472. Q_PRIVATE_SLOT(d_func(), void slotPropertyDestroyed(QtProperty *))
  473. };
  474. class QtEnumPropertyManagerPrivate;
  475. class QtEnumPropertyManager : public QtAbstractPropertyManager
  476. {
  477. Q_OBJECT
  478. public:
  479. QtEnumPropertyManager(QObject *parent = 0);
  480. ~QtEnumPropertyManager();
  481. int value(const QtProperty *property) const;
  482. QStringList enumNames(const QtProperty *property) const;
  483. QMap<int, QIcon> enumIcons(const QtProperty *property) const;
  484. public Q_SLOTS:
  485. void setValue(QtProperty *property, int val);
  486. void setEnumNames(QtProperty *property, const QStringList &names);
  487. void setEnumIcons(QtProperty *property, const QMap<int, QIcon> &icons);
  488. Q_SIGNALS:
  489. void valueChanged(QtProperty *property, int val);
  490. void enumNamesChanged(QtProperty *property, const QStringList &names);
  491. void enumIconsChanged(QtProperty *property, const QMap<int, QIcon> &icons);
  492. protected:
  493. QString valueText(const QtProperty *property) const;
  494. QIcon valueIcon(const QtProperty *property) const;
  495. virtual void initializeProperty(QtProperty *property);
  496. virtual void uninitializeProperty(QtProperty *property);
  497. private:
  498. QScopedPointer<QtEnumPropertyManagerPrivate> d_ptr;
  499. Q_DECLARE_PRIVATE(QtEnumPropertyManager)
  500. Q_DISABLE_COPY_MOVE(QtEnumPropertyManager)
  501. };
  502. class QtFlagPropertyManagerPrivate;
  503. class QtFlagPropertyManager : public QtAbstractPropertyManager
  504. {
  505. Q_OBJECT
  506. public:
  507. QtFlagPropertyManager(QObject *parent = 0);
  508. ~QtFlagPropertyManager();
  509. QtBoolPropertyManager *subBoolPropertyManager() const;
  510. int value(const QtProperty *property) const;
  511. QStringList flagNames(const QtProperty *property) const;
  512. public Q_SLOTS:
  513. void setValue(QtProperty *property, int val);
  514. void setFlagNames(QtProperty *property, const QStringList &names);
  515. Q_SIGNALS:
  516. void valueChanged(QtProperty *property, int val);
  517. void flagNamesChanged(QtProperty *property, const QStringList &names);
  518. protected:
  519. QString valueText(const QtProperty *property) const;
  520. virtual void initializeProperty(QtProperty *property);
  521. virtual void uninitializeProperty(QtProperty *property);
  522. private:
  523. QScopedPointer<QtFlagPropertyManagerPrivate> d_ptr;
  524. Q_DECLARE_PRIVATE(QtFlagPropertyManager)
  525. Q_DISABLE_COPY_MOVE(QtFlagPropertyManager)
  526. Q_PRIVATE_SLOT(d_func(), void slotBoolChanged(QtProperty *, bool))
  527. Q_PRIVATE_SLOT(d_func(), void slotPropertyDestroyed(QtProperty *))
  528. };
  529. class QtSizePolicyPropertyManagerPrivate;
  530. class QtSizePolicyPropertyManager : public QtAbstractPropertyManager
  531. {
  532. Q_OBJECT
  533. public:
  534. QtSizePolicyPropertyManager(QObject *parent = 0);
  535. ~QtSizePolicyPropertyManager();
  536. QtIntPropertyManager *subIntPropertyManager() const;
  537. QtEnumPropertyManager *subEnumPropertyManager() const;
  538. QSizePolicy value(const QtProperty *property) const;
  539. public Q_SLOTS:
  540. void setValue(QtProperty *property, const QSizePolicy &val);
  541. Q_SIGNALS:
  542. void valueChanged(QtProperty *property, const QSizePolicy &val);
  543. protected:
  544. QString valueText(const QtProperty *property) const;
  545. virtual void initializeProperty(QtProperty *property);
  546. virtual void uninitializeProperty(QtProperty *property);
  547. private:
  548. QScopedPointer<QtSizePolicyPropertyManagerPrivate> d_ptr;
  549. Q_DECLARE_PRIVATE(QtSizePolicyPropertyManager)
  550. Q_DISABLE_COPY_MOVE(QtSizePolicyPropertyManager)
  551. Q_PRIVATE_SLOT(d_func(), void slotIntChanged(QtProperty *, int))
  552. Q_PRIVATE_SLOT(d_func(), void slotEnumChanged(QtProperty *, int))
  553. Q_PRIVATE_SLOT(d_func(), void slotPropertyDestroyed(QtProperty *))
  554. };
  555. class QtFontPropertyManagerPrivate;
  556. class QtFontPropertyManager : public QtAbstractPropertyManager
  557. {
  558. Q_OBJECT
  559. public:
  560. QtFontPropertyManager(QObject *parent = 0);
  561. ~QtFontPropertyManager();
  562. QtIntPropertyManager *subIntPropertyManager() const;
  563. QtEnumPropertyManager *subEnumPropertyManager() const;
  564. QtBoolPropertyManager *subBoolPropertyManager() const;
  565. QFont value(const QtProperty *property) const;
  566. public Q_SLOTS:
  567. void setValue(QtProperty *property, const QFont &val);
  568. Q_SIGNALS:
  569. void valueChanged(QtProperty *property, const QFont &val);
  570. protected:
  571. QString valueText(const QtProperty *property) const;
  572. QIcon valueIcon(const QtProperty *property) const;
  573. virtual void initializeProperty(QtProperty *property);
  574. virtual void uninitializeProperty(QtProperty *property);
  575. private:
  576. QScopedPointer<QtFontPropertyManagerPrivate> d_ptr;
  577. Q_DECLARE_PRIVATE(QtFontPropertyManager)
  578. Q_DISABLE_COPY_MOVE(QtFontPropertyManager)
  579. Q_PRIVATE_SLOT(d_func(), void slotIntChanged(QtProperty *, int))
  580. Q_PRIVATE_SLOT(d_func(), void slotEnumChanged(QtProperty *, int))
  581. Q_PRIVATE_SLOT(d_func(), void slotBoolChanged(QtProperty *, bool))
  582. Q_PRIVATE_SLOT(d_func(), void slotPropertyDestroyed(QtProperty *))
  583. Q_PRIVATE_SLOT(d_func(), void slotFontDatabaseChanged())
  584. Q_PRIVATE_SLOT(d_func(), void slotFontDatabaseDelayedChange())
  585. };
  586. class QtColorPropertyManagerPrivate;
  587. class QtColorPropertyManager : public QtAbstractPropertyManager
  588. {
  589. Q_OBJECT
  590. public:
  591. QtColorPropertyManager(QObject *parent = 0);
  592. ~QtColorPropertyManager();
  593. QtIntPropertyManager *subIntPropertyManager() const;
  594. QColor value(const QtProperty *property) const;
  595. public Q_SLOTS:
  596. void setValue(QtProperty *property, const QColor &val);
  597. Q_SIGNALS:
  598. void valueChanged(QtProperty *property, const QColor &val);
  599. protected:
  600. QString valueText(const QtProperty *property) const;
  601. QIcon valueIcon(const QtProperty *property) const;
  602. virtual void initializeProperty(QtProperty *property);
  603. virtual void uninitializeProperty(QtProperty *property);
  604. private:
  605. QScopedPointer<QtColorPropertyManagerPrivate> d_ptr;
  606. Q_DECLARE_PRIVATE(QtColorPropertyManager)
  607. Q_DISABLE_COPY_MOVE(QtColorPropertyManager)
  608. Q_PRIVATE_SLOT(d_func(), void slotIntChanged(QtProperty *, int))
  609. Q_PRIVATE_SLOT(d_func(), void slotPropertyDestroyed(QtProperty *))
  610. };
  611. class QtCursorPropertyManagerPrivate;
  612. class QtCursorPropertyManager : public QtAbstractPropertyManager
  613. {
  614. Q_OBJECT
  615. public:
  616. QtCursorPropertyManager(QObject *parent = 0);
  617. ~QtCursorPropertyManager();
  618. #ifndef QT_NO_CURSOR
  619. QCursor value(const QtProperty *property) const;
  620. #endif
  621. public Q_SLOTS:
  622. void setValue(QtProperty *property, const QCursor &val);
  623. Q_SIGNALS:
  624. void valueChanged(QtProperty *property, const QCursor &val);
  625. protected:
  626. QString valueText(const QtProperty *property) const;
  627. QIcon valueIcon(const QtProperty *property) const;
  628. virtual void initializeProperty(QtProperty *property);
  629. virtual void uninitializeProperty(QtProperty *property);
  630. private:
  631. QScopedPointer<QtCursorPropertyManagerPrivate> d_ptr;
  632. Q_DECLARE_PRIVATE(QtCursorPropertyManager)
  633. Q_DISABLE_COPY_MOVE(QtCursorPropertyManager)
  634. };
  635. QT_END_NAMESPACE
  636. #endif