1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-07-24 09:25:31 +02:00
Commit graph

5 commits

Author SHA1 Message Date
Andrew Eidsness
16083fee1e Bug 422841: Add Q_CLASSINFO to the QtIndex
Qt allows string-based key/value pairs to be inserted into QObject class
definitions.  E.g.,

    class Q : public QObject
    {
    Q_OBJECT
    Q_CLASSINFO( "key1", "value1" )
    };

The class info is accessible in the meta-object system.  See:

    http://qt-project.org/doc/qt-4.8/qmetaclassinfo.html

For more information.

This patch adds the API to access these key/value pairs from the
QtIndex.  The values are stored in a single block in the PDOM record for
the QObject.

The API returns the value for a given key if it is found in the receiver
QObject or any of its base classes.  The API returns the first such
value that is found.

This patch also adds a test case for this functionality.

Change-Id: Ie3f821a0c5f6f1347a0c0c6dafa184510ae26c29
Signed-off-by: Andrew Eidsness <eclipse@jfront.com>
Reviewed-on: https://git.eclipse.org/r/19154
Tested-by: Hudson CI
Reviewed-by: Doug Schaefer <dschaefer@qnx.com>
IP-Clean: Doug Schaefer <dschaefer@qnx.com>
Tested-by: Doug Schaefer <dschaefer@qnx.com>
2013-12-03 09:05:53 -05:00
Andrew Eidsness
0f482a80b2 Bug 422841: Add QEnum to QtIndex
The Qt meta-object system allows C++ enums to be added as simple enums
and as flags.  There is more detail at:

    http://qt-project.org/doc/qt-4.8/qobject.html#Q_ENUMS
and http://qt-project.org/doc/qt-4.8/qflags.html

This patch adds IQEnum to the QtIndex.  IQEnums are contained in
IQObjects and therefore are accessed with the IQObject.getEnums.

An IQEnum holds its name, enumerators, and a boolean indicating whether
the instance represents a Qt flag.

A Qt flag is an enum where the enumerators are intended to be used with
bitwise operations.  The Q_DECLARE_FLAGS macro is used to introduce a
type-safe container for the flags.

This patch also adds unit tests for this new functionality.

Change-Id: If51524e93533bae82a3263f3c7973a31793a8a83
Signed-off-by: Andrew Eidsness <eclipse@jfront.com>
Reviewed-on: https://git.eclipse.org/r/19147
Reviewed-by: Doug Schaefer <dschaefer@qnx.com>
IP-Clean: Doug Schaefer <dschaefer@qnx.com>
Tested-by: Doug Schaefer <dschaefer@qnx.com>
2013-12-03 09:02:31 -05:00
David Kaspar
dc746352a3 Bug 422797 - API for retrieving QMake information from Qt project
Adding ...cdt.qt.tests/SimpleTests JUnit tests

Change-Id: I68d8e56d6b81a65eb1b6823cf7f1df63f00c1a15
Signed-off-by: David Kaspar <dkaspar@blackberry.com>
Reviewed-on: https://git.eclipse.org/r/19145
Tested-by: Hudson CI
Reviewed-by: Doug Schaefer <dschaefer@qnx.com>
IP-Clean: Doug Schaefer <dschaefer@qnx.com>
2013-12-03 08:58:10 -05:00
Doug Schaefer
c8b535a52c Bug 418536 - Add Qt tests to maven build.
Change-Id: Ic194325d526a498f81ab9d73fe84841e98663065
Reviewed-on: https://git.eclipse.org/r/19164
Reviewed-by: Doug Schaefer <dschaefer@qnx.com>
IP-Clean: Doug Schaefer <dschaefer@qnx.com>
Tested-by: Doug Schaefer <dschaefer@qnx.com>
2013-11-29 23:27:13 -05:00
Andrew Eidsness
fccbec7b0d Bug 422841: Initial implementation of QtIndex
This uses the new PDOMASTProcessor extension point to create a
Qt-specifc PDOMLinkage.  This initial version of the linkage only stores
QObjects and their base classes.  Later commits will fill out other
details and introduce classes that use this data for things like Content
Assistance and Codan checking.

This patch introduces the following:

1) QtIndex: This is an index that provides access to Qt-specific data.
The index is mostly a wrapper on the CDT's existing IIndex, but it
provides very specific information about the Qt elements.  The only data
that can be accessed from the QtIndex (in this patch) is a QObject and
the QObject's that appear in its base class specifier list.

2) QtPDOMLinkage: This linkage is implemenated as an extension of the
PDOMCPPLinkage.  In some cases it adds references to Qt names from the
C++ bindings.

3) Test suite: The test suite has some base classes for parsing the Qt
source code.  The only test case is for the simple functionality that is
being added in this patch -- examining the base class specifier list of
QObjects.

These areas will be extended in later patches.

Change-Id: I13fb83beb7f50cd2efb1de97b562245dc642468d
Signed-off-by: Andrew Eidsness <eclipse@jfront.com>
Reviewed-on: https://git.eclipse.org/r/19113
Tested-by: Hudson CI
Reviewed-by: Doug Schaefer <dschaefer@qnx.com>
IP-Clean: Doug Schaefer <dschaefer@qnx.com>
2013-11-29 14:43:41 -05:00