forked from qt-creator/qt-creator
If the project has a header file whose name suggests that it might declare the base class, then add an include statement for it. While we cannot guarantee that the include statement is resolvable as- is, it's at least a basis for the user to adapt accordingly, while without any include statement the class will definitely not compile. Fixes: QTCREATORBUG-3855 Change-Id: I55ec43d58a9a13b9b59a5bbe6415a457b974b654 Reviewed-by: Eike Ziller <eike.ziller@qt.io>
67 lines
2.3 KiB
C++
67 lines
2.3 KiB
C++
%{Cpp:LicenseTemplate}\
|
|
@if '%{Cpp:PragmaOnce}'
|
|
#pragma once
|
|
@else
|
|
#ifndef %{GUARD}
|
|
#define %{GUARD}
|
|
@endif
|
|
|
|
%{JS: Cpp.includeStatement('%{Base}', Util.preferredSuffix('text/x-c++hdr'), ['QObject', 'QWidget', 'QMainWindow', 'QQuickItem', 'QSharedData'], '%{TargetPath}')}\
|
|
%{JS: QtSupport.qtIncludes([ ( '%{IncludeQObject}' ) ? 'QtCore/%{IncludeQObject}' : '',
|
|
( '%{IncludeQWidget}' ) ? 'QtGui/%{IncludeQWidget}' : '',
|
|
( '%{IncludeQMainWindow}' ) ? 'QtGui/%{IncludeQMainWindow}' : '',
|
|
( '%{IncludeQDeclarativeItem}' ) ? 'QtDeclarative/%{IncludeQDeclarativeItem}' : '',
|
|
( '%{IncludeQSharedData}' ) ? 'QtCore/QSharedDataPointer' : '' ],
|
|
[ ( '%{IncludeQObject}' ) ? 'QtCore/%{IncludeQObject}' : '',
|
|
( '%{IncludeQWidget}' ) ? 'QtWidgets/%{IncludeQWidget}' : '',
|
|
( '%{IncludeQMainWindow}' ) ? 'QtWidgets/%{IncludeQMainWindow}' : '',
|
|
( '%{IncludeQDeclarativeItem}' ) ? 'QtQuick1/%{IncludeQDeclarativeItem}' : '',
|
|
( '%{IncludeQQuickItem}' ) ? 'QtDeclarative/%{IncludeQQuickItem}' : '',
|
|
( '%{IncludeQSharedData}' ) ? 'QtCore/QSharedDataPointer' : '' ])}\
|
|
%{JS: Cpp.openNamespaces('%{Class}')}
|
|
@if '%{IncludeQSharedData}'
|
|
class %{CN}Data;
|
|
|
|
@endif
|
|
@if '%{Base}'
|
|
class %{CN} : public %{Base}
|
|
@else
|
|
class %{CN}
|
|
@endif
|
|
{
|
|
@if '%{AddQObjectMacro}'
|
|
Q_OBJECT
|
|
@endif
|
|
public:
|
|
@if '%{Base}' === 'QObject'
|
|
explicit %{CN}(QObject *parent = nullptr);
|
|
@elsif '%{Base}' === 'QWidget' || '%{Base}' === 'QMainWindow'
|
|
explicit %{CN}(QWidget *parent = nullptr);
|
|
@else
|
|
%{CN}();
|
|
@endif
|
|
@if '%{IncludeQSharedData}'
|
|
%{CN}(const %{CN} &);
|
|
%{CN} &operator=(const %{CN} &);
|
|
~%{CN}();
|
|
@endif
|
|
@if %{isQObject}
|
|
|
|
@if %{QtKeywordsEnabled}
|
|
signals:
|
|
@else
|
|
Q_SIGNALS:
|
|
@endif
|
|
|
|
@endif
|
|
@if '%{IncludeQSharedData}'
|
|
|
|
private:
|
|
QSharedDataPointer<%{CN}Data> data;
|
|
@endif
|
|
};
|
|
%{JS: Cpp.closeNamespaces('%{Class}')}
|
|
@if ! '%{Cpp:PragmaOnce}'
|
|
#endif // %{GUARD}
|
|
@endif
|