File indexing completed on 2024-05-12 17:13:27

0001 #include <QtCore/QObject>
0002 
0003 class A {
0004 public:
0005 };
0006 
0007 namespace NS {
0008 class A {
0009 public:
0010 };
0011 }
0012 
0013 typedef int FooInt;
0014 
0015 enum Enum1 {};
0016 
0017 
0018 class MyObj : public QObject
0019 {
0020     Q_OBJECT
0021     Q_PROPERTY(int r_good READ r_good CONSTANT)
0022     Q_PROPERTY(int r_bad READ r_bad CONSTANT)
0023 
0024     Q_PROPERTY(int m_good MEMBER)
0025     Q_PROPERTY(int m_bad MEMBER)
0026 
0027     Q_PROPERTY(int rw_good READ rw_good WRITE set_rw_good NOTIFY rw_good_changed)
0028     Q_PROPERTY(int rw_bad READ rw_bad WRITE set_rw_bad NOTIFY rw_bad_changed)
0029 
0030     Q_PROPERTY(int rw_good_cref READ rw_good_cref WRITE set_rw_good_cref NOTIFY rw_good_cref_changed)
0031     Q_PROPERTY(int rw_bad_cref READ rw_bad_cref WRITE set_rw_bad_cref NOTIFY rw_bad_cref_changed)
0032 
0033     Q_PROPERTY(int* rw_good_ptr READ rw_good_ptr WRITE set_rw_good_ptr NOTIFY rw_good_ptr_changed)
0034     Q_PROPERTY(int* rw_bad_ptr READ rw_bad_ptr WRITE set_rw_bad_ptr NOTIFY rw_bad_ptr_changed)
0035 
0036     Q_PROPERTY(bool boolTest READ boolTest CONSTANT)
0037     Q_PROPERTY(A* classTest1 READ classTest1 CONSTANT)
0038     Q_PROPERTY(A classTest2 READ classTest2 CONSTANT)
0039     Q_PROPERTY(NS::A* classTest3 READ classTest3 CONSTANT)
0040     Q_PROPERTY(NS::A classTest4 READ classTest4 CONSTANT)
0041     Q_PROPERTY(A *classTest5 READ classTest3 CONSTANT)
0042     Q_PROPERTY(Enum1 enumTest READ enumTest CONSTANT)
0043     Q_PROPERTY(Enum1 enumTest READ enumTest NOTIFY zeroArgsSignal)
0044     Q_PROPERTY(InnerEnum innerEnum READ innerEnum CONSTANT)
0045     Q_PROPERTY(MyObj::InnerEnum innerEnum1 READ innerEnum1 CONSTANT)
0046     Q_PROPERTY(FooInt intTypedef1 READ intTypedef1 CONSTANT)
0047     Q_PROPERTY(int intTypedef2 READ intTypedef2 CONSTANT)
0048     Q_PROPERTY(FooInt intTypedef3 READ intTypedef3 CONSTANT)
0049     Q_PROPERTY(Qt::Alignment intTypedef4 READ intTypedef4 CONSTANT)
0050     Q_PROPERTY(InnerEnums intTypedef5 READ intTypedef5 CONSTANT)
0051 
0052     enum InnerEnum {};
0053     Q_DECLARE_FLAGS(InnerEnums, InnerEnum)
0054 
0055     int r_good(); // OK    
0056     float r_bad(); // Warn
0057 
0058     int m_good; // OK
0059     float m_bad; // Warn
0060  
0061     int rw_good(); // OK
0062     void set_rw_good(int); // OK
0063 
0064     float rw_bad(); // Warn
0065     void set_rw_bad(float); // Warn
0066     
0067     const int& rw_good_cref(); // OK
0068     void set_rw_good_cref(const int&); // OK
0069 
0070     const float& rw_bad_cref(); // Warn
0071     void set_rw_bad_cref(const float&); // Warn
0072 
0073     int* rw_good_ptr(); // OK
0074     void set_rw_good_ptr(int*); // OK
0075 
0076     float* rw_bad_ptr(); // Warn
0077     void set_rw_bad_ptr(float*); // Warn
0078 
0079     bool boolTest() const;
0080     A* classTest1() const;
0081     A classTest2() const;
0082     NS::A* classTest3() const;
0083     NS::A classTest4() const;
0084     A* classTest5() const;
0085     Enum1 enumTest() const;
0086     InnerEnum innerEnum () const;
0087     InnerEnum innerEnum1 () const;
0088 
0089     int intTypedef1() const;
0090     FooInt intTypedef2() const;
0091     FooInt intTypedef3() const;
0092     Qt::Alignment intTypedef4() const;
0093     InnerEnums intTypedef5() const;
0094 
0095 signals:
0096     void rw_good_changed(int); // OK
0097     void rw_bad_changed(float); // Warn
0098     void rw_good_cref_changed(const int&); // OK
0099     void rw_bad_cref_changed(const float&); // Warn
0100     void rw_good_ptr_changed(int*); // OK
0101     void rw_bad_ptr_changed(float*); // Warn
0102     void zeroArgsSignal();
0103 };
0104 
0105 class MyGadget
0106 {
0107     Q_GADGET
0108     Q_PROPERTY(int good MEMBER)
0109     Q_PROPERTY(int bad MEMBER)
0110 
0111     int good; // Ok
0112     float bad; // Warn
0113 };