Fix different UI aggregation styles for widget project wizard

This got lost during the transition to JSON.
Amends 241efa353d

Fixes: QTCREATORBUG-24422
Change-Id: I51dec2e84adb3c5944ecaf83697f3e776bd3d7f1
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
This commit is contained in:
Eike Ziller
2020-08-13 15:27:53 +02:00
parent 51e7bce109
commit a71dbd4b33
4 changed files with 52 additions and 5 deletions

View File

@@ -1,24 +1,30 @@
%{Cpp:LicenseTemplate}\
#include "%{JS: Util.relativeFilePath('%{Path}/%{HdrFileName}', '%{Path}' + '/' + Util.path('%{SrcFileName}'))}"
@if %{GenerateForm}
@if %{GenerateForm} && %{JS: QtSupport.uiAsPointer() }
#include "%{UiHdrFileName}"
@endif
%{JS: Cpp.openNamespaces('%{Class}')}\
%{CN}::%{CN}(QWidget *parent)
: %{BaseClass}(parent)
@if %{GenerateForm}
@if %{GenerateForm} && %{JS: QtSupport.uiAsPointer() }
, ui(new Ui::%{CN})
@endif
{
@if %{GenerateForm}
@if %{JS: QtSupport.uiAsPointer() }
ui->setupUi(this);
@elsif %{JS: QtSupport.uiAsMember() }
ui.setupUi(this);
@else
setupUi(this);
@endif
@endif
}
%{CN}::~%{CN}()
{
@if %{GenerateForm}
@if %{GenerateForm} && %{JS: QtSupport.uiAsPointer() }
delete ui;
@endif
}

View File

@@ -6,9 +6,13 @@
#define %{GUARD}
@endif
@if %{GenerateForm} && ! %{JS: QtSupport.uiAsPointer() }
#include "%{UiHdrFileName}"
@endif
%{JS: QtSupport.qtIncludes([ 'QtGui/%{BaseClass}' ], [ 'QtWidgets/%{BaseClass}' ]) }\
%{JS: Cpp.openNamespaces('%{Class}')}\
@if %{GenerateForm}
@if %{GenerateForm} && %{JS: QtSupport.uiAsPointer() }
@if ! %{JS: Cpp.hasNamespaces('%{Class}')}
QT_BEGIN_NAMESPACE
@@ -19,7 +23,12 @@ QT_END_NAMESPACE
@endif
@endif
class %{CN} : public %{BaseClass}
class %{CN} : public %{BaseClass}\
@if %{GenerateForm} && %{JS: QtSupport.uiAsInheritance() }
, private Ui::%{CN}
@else
@endif
{
Q_OBJECT
@@ -27,9 +36,15 @@ public:
%{CN}(QWidget *parent = nullptr);
~%{CN}();
@if %{GenerateForm}
@if %{JS: QtSupport.uiAsPointer() }
private:
Ui::%{CN} *ui;
@elsif %{JS: QtSupport.uiAsMember() }
private:
Ui::%{CN} ui;
@endif
@endif
};
%{JS: Cpp.closeNamespaces('%{Class}')}\

View File

@@ -197,4 +197,25 @@ QString CodeGenerator::qtIncludes(const QStringList &qt4, const QStringList &qt5
return result;
}
bool CodeGenerator::uiAsPointer()
{
CodeGenSettings settings;
settings.fromSettings(Core::ICore::settings());
return settings.embedding == CodeGenSettings::PointerAggregatedUiClass;
}
bool CodeGenerator::uiAsMember()
{
CodeGenSettings settings;
settings.fromSettings(Core::ICore::settings());
return settings.embedding == CodeGenSettings::AggregatedUiClass;
}
bool CodeGenerator::uiAsInheritance()
{
CodeGenSettings settings;
settings.fromSettings(Core::ICore::settings());
return settings.embedding == CodeGenSettings::InheritedUiClass;
}
} // namespace QtSupport

View File

@@ -50,6 +50,11 @@ public:
// Generic Qt:
Q_INVOKABLE static QString qtIncludes(const QStringList &qt4, const QStringList &qt5);
// UI file integration
Q_INVOKABLE static bool uiAsPointer();
Q_INVOKABLE static bool uiAsMember();
Q_INVOKABLE static bool uiAsInheritance();
};
} // namespace QtSupport