summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/plugins/cppeditor/cppclasswizard.cpp11
-rw-r--r--src/plugins/cppeditor/cppfilewizard.cpp3
-rw-r--r--src/plugins/cpptools/abstracteditorsupport.cpp4
-rw-r--r--src/plugins/cpptools/cppfilesettingspage.cpp45
-rw-r--r--src/plugins/cpptools/cppfilesettingspage.h2
-rw-r--r--src/plugins/cpptools/cppmodelmanagerinterface.h2
-rw-r--r--src/plugins/designer/cpp/formclasswizardparameters.cpp9
-rw-r--r--src/plugins/qt4projectmanager/customwidgetwizard/customwidgetwizard.cpp2
-rw-r--r--src/plugins/qt4projectmanager/customwidgetwizard/plugingenerator.cpp20
-rw-r--r--src/plugins/qt4projectmanager/customwidgetwizard/plugingenerator.h1
-rw-r--r--src/plugins/qt4projectmanager/wizards/consoleappwizard.cpp3
-rw-r--r--src/plugins/qt4projectmanager/wizards/guiappwizard.cpp9
-rw-r--r--src/plugins/qt4projectmanager/wizards/librarywizard.cpp10
-rw-r--r--src/plugins/qt4projectmanager/wizards/testwizard.cpp2
14 files changed, 78 insertions, 45 deletions
diff --git a/src/plugins/cppeditor/cppclasswizard.cpp b/src/plugins/cppeditor/cppclasswizard.cpp
index 3f7e66b56d..6c841fcd68 100644
--- a/src/plugins/cppeditor/cppclasswizard.cpp
+++ b/src/plugins/cppeditor/cppclasswizard.cpp
@@ -233,14 +233,19 @@ bool CppClassWizard::generateHeaderAndSource(const CppClassWizardParameters &par
if (namespaceList.empty()) // Paranoia!
return false;
- const QString license = CppTools::AbstractEditorSupport::licenseTemplate();
+ const QString headerLicense =
+ CppTools::AbstractEditorSupport::licenseTemplate(params.headerFile,
+ params.className);
+ const QString sourceLicense =
+ CppTools::AbstractEditorSupport::licenseTemplate(params.sourceFile,
+ params.className);
const QString unqualifiedClassName = namespaceList.takeLast();
const QString guard = Utils::headerGuard(params.headerFile);
// == Header file ==
QTextStream headerStr(header);
- headerStr << license << "#ifndef " << guard
+ headerStr << headerLicense << "#ifndef " << guard
<< "\n#define " << guard << '\n';
const QRegExp qtClassExpr(QLatin1String("^Q[A-Z3].+"));
@@ -328,7 +333,7 @@ bool CppClassWizard::generateHeaderAndSource(const CppClassWizardParameters &par
// == Source file ==
QTextStream sourceStr(source);
- sourceStr << license;
+ sourceStr << sourceLicense;
Utils::writeIncludeFileDirective(params.headerFile, false, sourceStr);
if (params.classType == Utils::NewClassWidget::SharedDataClass)
Utils::writeIncludeFileDirective(QLatin1String("QSharedData"), true, sourceStr);
diff --git a/src/plugins/cppeditor/cppfilewizard.cpp b/src/plugins/cppeditor/cppfilewizard.cpp
index eff7f24266..2a0cf9b2dd 100644
--- a/src/plugins/cppeditor/cppfilewizard.cpp
+++ b/src/plugins/cppeditor/cppfilewizard.cpp
@@ -68,10 +68,9 @@ Core::GeneratedFiles CppFileWizard::generateFilesFromPath(const QString &path,
QString CppFileWizard::fileContents(FileType type, const QString &fileName) const
{
- const QString baseName = QFileInfo(fileName).completeBaseName();
QString contents;
QTextStream str(&contents);
- str << CppTools::AbstractEditorSupport::licenseTemplate();
+ str << CppTools::AbstractEditorSupport::licenseTemplate(fileName);
switch (type) {
case Header: {
const QString guard = Utils::headerGuard(fileName);
diff --git a/src/plugins/cpptools/abstracteditorsupport.cpp b/src/plugins/cpptools/abstracteditorsupport.cpp
index 6a1578d64e..d1edabf72d 100644
--- a/src/plugins/cpptools/abstracteditorsupport.cpp
+++ b/src/plugins/cpptools/abstracteditorsupport.cpp
@@ -92,9 +92,9 @@ QString AbstractEditorSupport::functionAt(const CppModelManagerInterface *modelM
return QString();
}
-QString AbstractEditorSupport::licenseTemplate()
+QString AbstractEditorSupport::licenseTemplate(const QString &file, const QString &className)
{
- return Internal::CppFileSettings::licenseTemplate();
+ return Internal::CppFileSettings::licenseTemplate(file, className);
}
}
diff --git a/src/plugins/cpptools/cppfilesettingspage.cpp b/src/plugins/cpptools/cppfilesettingspage.cpp
index b3833e016f..397cb91280 100644
--- a/src/plugins/cpptools/cppfilesettingspage.cpp
+++ b/src/plugins/cpptools/cppfilesettingspage.cpp
@@ -41,6 +41,7 @@
#include <QtCore/QSettings>
#include <QtCore/QDebug>
#include <QtCore/QFile>
+#include <QtCore/QFileInfo>
#include <QtCore/QCoreApplication>
#include <QtCore/QDate>
#include <QtCore/QLocale>
@@ -106,10 +107,22 @@ bool CppFileSettings::equals(const CppFileSettings &rhs) const
}
// Replacements of special license template keywords.
-static QString keyWordReplacement(const QString &keyWord)
+static bool keyWordReplacement(const QString &keyWord,
+ const QString &file,
+ const QString &className,
+ QString *value)
{
if (keyWord == QLatin1String("%YEAR%")) {
- return QString::number(QDate::currentDate().year());
+ *value = QString::number(QDate::currentDate().year());
+ return true;
+ }
+ if (keyWord == QLatin1String("%CLASS%")) {
+ *value = className;
+ return true;
+ }
+ if (keyWord == QLatin1String("%FILENAME%")) {
+ *value = QFileInfo(file).fileName();
+ return true;
}
if (keyWord == QLatin1String("%DATE%")) {
static QString format;
@@ -121,26 +134,29 @@ static QString keyWordReplacement(const QString &keyWord)
if (format.count(ypsilon) == 2)
format.insert(format.indexOf(ypsilon), QString(2, ypsilon));
}
- return QDate::currentDate().toString(format);
+ *value = QDate::currentDate().toString(format);
+ return true;
}
if (keyWord == QLatin1String("%USER%")) {
#ifdef Q_OS_WIN
- return QString::fromLocal8Bit(qgetenv("USERNAME"));
+ *value = QString::fromLocal8Bit(qgetenv("USERNAME"));
#else
- return QString::fromLocal8Bit(qgetenv("USER"));
+ *value = QString::fromLocal8Bit(qgetenv("USER"));
#endif
+ return true;
}
// Environment variables (for example '%$EMAIL%').
if (keyWord.startsWith(QLatin1String("%$"))) {
const QString varName = keyWord.mid(2, keyWord.size() - 3);
- return QString::fromLocal8Bit(qgetenv(varName.toLocal8Bit()));
+ *value = QString::fromLocal8Bit(qgetenv(varName.toLocal8Bit()));
+ return true;
}
- return QString();
+ return false;
}
// Parse a license template, scan for %KEYWORD% and replace if known.
// Replace '%%' by '%'.
-static void parseLicenseTemplatePlaceholders(QString *t)
+static void parseLicenseTemplatePlaceholders(QString *t, const QString &file, const QString &className)
{
int pos = 0;
const QChar placeHolder = QLatin1Char('%');
@@ -156,19 +172,20 @@ static void parseLicenseTemplatePlaceholders(QString *t)
pos = placeHolderPos + 1;
} else {
const QString keyWord = t->mid(placeHolderPos, endPlaceHolderPos + 1 - placeHolderPos);
- const QString replacement = keyWordReplacement(keyWord);
- if (replacement.isEmpty()) {
- pos = endPlaceHolderPos + 1;
- } else {
+ QString replacement;
+ if (keyWordReplacement(keyWord, file, className, &replacement)) {
t->replace(placeHolderPos, keyWord.size(), replacement);
pos = placeHolderPos + replacement.size();
+ } else {
+ // Leave invalid keywords as is.
+ pos = endPlaceHolderPos + 1;
}
}
} while (pos < t->size());
}
// Convenience that returns the formatted license template.
-QString CppFileSettings::licenseTemplate()
+QString CppFileSettings::licenseTemplate(const QString &fileName, const QString &className)
{
const QSettings *s = Core::ICore::instance()->settings();
@@ -184,7 +201,7 @@ QString CppFileSettings::licenseTemplate()
return QString();
}
QString license = QString::fromUtf8(file.readAll());
- parseLicenseTemplatePlaceholders(&license);
+ parseLicenseTemplatePlaceholders(&license, fileName, className);
// Ensure exactly one additional new line separating stuff
const QChar newLine = QLatin1Char('\n');
if (!license.endsWith(newLine))
diff --git a/src/plugins/cpptools/cppfilesettingspage.h b/src/plugins/cpptools/cppfilesettingspage.h
index 6ee5105165..f00ce4c1f4 100644
--- a/src/plugins/cpptools/cppfilesettingspage.h
+++ b/src/plugins/cpptools/cppfilesettingspage.h
@@ -60,7 +60,7 @@ struct CppFileSettings
// Convenience to return a license template completely formatted.
// Currently made public in
- static QString licenseTemplate();
+ static QString licenseTemplate(const QString &file = QString(), const QString &className = QString());
bool equals(const CppFileSettings &rhs) const;
};
diff --git a/src/plugins/cpptools/cppmodelmanagerinterface.h b/src/plugins/cpptools/cppmodelmanagerinterface.h
index aab5cf4ad5..cf95b468a8 100644
--- a/src/plugins/cpptools/cppmodelmanagerinterface.h
+++ b/src/plugins/cpptools/cppmodelmanagerinterface.h
@@ -170,7 +170,7 @@ public:
const QString &fileName,
int line, int column);
- static QString licenseTemplate();
+ static QString licenseTemplate(const QString &file = QString(), const QString &className = QString());
private:
CppModelManagerInterface *m_modelmanager;
diff --git a/src/plugins/designer/cpp/formclasswizardparameters.cpp b/src/plugins/designer/cpp/formclasswizardparameters.cpp
index 922c97ef98..9fdd1692e9 100644
--- a/src/plugins/designer/cpp/formclasswizardparameters.cpp
+++ b/src/plugins/designer/cpp/formclasswizardparameters.cpp
@@ -341,7 +341,10 @@ bool FormClassWizardParametersPrivate::generateCpp(const FormClassWizardGenerati
const QString unqualifiedClassName = namespaceList.takeLast();
- const QString license = CppTools::AbstractEditorSupport::licenseTemplate();
+ const QString headerLicense =
+ CppTools::AbstractEditorSupport::licenseTemplate(headerFile, className);
+ const QString sourceLicense =
+ CppTools::AbstractEditorSupport::licenseTemplate(sourceFile, className);
// Include guards
const QString guard = Utils::headerGuard(headerFile);
@@ -351,7 +354,7 @@ bool FormClassWizardParametersPrivate::generateCpp(const FormClassWizardGenerati
// 1) Header file
QTextStream headerStr(header);
- headerStr << license << "#ifndef " << guard
+ headerStr << headerLicense << "#ifndef " << guard
<< "\n#define " << guard << '\n' << '\n';
// Include 'ui_'
@@ -409,7 +412,7 @@ bool FormClassWizardParametersPrivate::generateCpp(const FormClassWizardGenerati
// 2) Source file
QTextStream sourceStr(source);
- sourceStr << license;
+ sourceStr << sourceLicense;
Utils::writeIncludeFileDirective(headerFile, false, sourceStr);
if (embedding == FormClassWizardGenerationParameters::PointerAggregatedUiClass)
Utils::writeIncludeFileDirective(uiInclude, false, sourceStr);
diff --git a/src/plugins/qt4projectmanager/customwidgetwizard/customwidgetwizard.cpp b/src/plugins/qt4projectmanager/customwidgetwizard/customwidgetwizard.cpp
index cbc94a4028..c59d5f321f 100644
--- a/src/plugins/qt4projectmanager/customwidgetwizard/customwidgetwizard.cpp
+++ b/src/plugins/qt4projectmanager/customwidgetwizard/customwidgetwizard.cpp
@@ -33,7 +33,6 @@
#include "pluginoptions.h"
#include "filenamingparameters.h"
-#include <cpptools/cppmodelmanagerinterface.h>
#include <projectexplorer/projectexplorerconstants.h>
#include <QtGui/QIcon>
@@ -71,7 +70,6 @@ Core::GeneratedFiles CustomWidgetWizard::generateFiles(const QWizard *w,
GenerationParameters p;
p.fileName = cw->projectName();
p.path = cw->path();
- p.license = CppTools::AbstractEditorSupport::licenseTemplate();
p.templatePath = QtWizard::templateDir();
p.templatePath += QLatin1String("/customwidgetwizard");
return PluginGenerator::generatePlugin(p, *(cw->pluginOptions()), errorMessage);
diff --git a/src/plugins/qt4projectmanager/customwidgetwizard/plugingenerator.cpp b/src/plugins/qt4projectmanager/customwidgetwizard/plugingenerator.cpp
index 0da9c70f20..0ad9269cf7 100644
--- a/src/plugins/qt4projectmanager/customwidgetwizard/plugingenerator.cpp
+++ b/src/plugins/qt4projectmanager/customwidgetwizard/plugingenerator.cpp
@@ -32,6 +32,8 @@
#include <coreplugin/basefilewizard.h>
+#include <cpptools/cppmodelmanagerinterface.h>
+
#include <QtCore/QFileInfo>
#include <QtCore/QDir>
#include <QtCore/QSet>
@@ -103,7 +105,8 @@ QList<Core::GeneratedFile> PluginGenerator::generatePlugin(const GenerationPara
if (pluginHeaderContents.isEmpty())
return QList<Core::GeneratedFile>();
Core::GeneratedFile pluginHeader(baseDir + wo.pluginHeaderFile);
- pluginHeader.setContents(p.license + pluginHeaderContents);
+ pluginHeader.setContents(CppTools::AbstractEditorSupport::licenseTemplate(wo.pluginHeaderFile, wo.pluginClassName)
+ + pluginHeaderContents);
rc.push_back(pluginHeader);
sm.remove(QLatin1String("SINGLE_INCLUDE_GUARD"));
@@ -134,7 +137,8 @@ QList<Core::GeneratedFile> PluginGenerator::generatePlugin(const GenerationPara
if (pluginSourceContents.isEmpty())
return QList<Core::GeneratedFile>();
Core::GeneratedFile pluginSource(baseDir + wo.pluginSourceFile);
- pluginSource.setContents(p.license + pluginSourceContents);
+ pluginSource.setContents(CppTools::AbstractEditorSupport::licenseTemplate(wo.pluginSourceFile, wo.pluginClassName)
+ + pluginSourceContents);
if (i == 0 && widgetCount == 1) // Open first widget unless collection
pluginSource.setAttributes(Core::GeneratedFile::OpenEditorAttribute);
rc.push_back(pluginSource);
@@ -179,7 +183,8 @@ QList<Core::GeneratedFile> PluginGenerator::generatePlugin(const GenerationPara
if (widgetHeaderContents.isEmpty())
return QList<Core::GeneratedFile>();
Core::GeneratedFile widgetHeader(baseDir + wo.widgetHeaderFile);
- widgetHeader.setContents(p.license + widgetHeaderContents);
+ widgetHeader.setContents(CppTools::AbstractEditorSupport::licenseTemplate(wo.widgetHeaderFile, wo.widgetClassName)
+ + widgetHeaderContents);
rc.push_back(widgetHeader);
sm.remove(QLatin1String("WIDGET_INCLUDE_GUARD"));
@@ -188,7 +193,8 @@ QList<Core::GeneratedFile> PluginGenerator::generatePlugin(const GenerationPara
if (widgetSourceContents.isEmpty())
return QList<Core::GeneratedFile>();
Core::GeneratedFile widgetSource(baseDir + wo.widgetSourceFile);
- widgetSource.setContents(p.license + widgetSourceContents);
+ widgetSource.setContents(CppTools::AbstractEditorSupport::licenseTemplate(wo.widgetSourceFile, wo.widgetClassName)
+ + widgetSourceContents);
rc.push_back(widgetSource);
}
}
@@ -221,7 +227,8 @@ QList<Core::GeneratedFile> PluginGenerator::generatePlugin(const GenerationPara
if (collectionHeaderContents.isEmpty())
return QList<Core::GeneratedFile>();
Core::GeneratedFile collectionHeader(baseDir + options.collectionHeaderFile);
- collectionHeader.setContents(p.license + collectionHeaderContents);
+ collectionHeader.setContents(CppTools::AbstractEditorSupport::licenseTemplate(options.collectionHeaderFile, options.collectionClassName)
+ + collectionHeaderContents);
rc.push_back(collectionHeader);
sm.remove(QLatin1String("COLLECTION_INCLUDE_GUARD"));
@@ -241,7 +248,8 @@ QList<Core::GeneratedFile> PluginGenerator::generatePlugin(const GenerationPara
if (collectionSourceFileContents.isEmpty())
return QList<Core::GeneratedFile>();
Core::GeneratedFile collectionSource(baseDir + options.collectionSourceFile);
- collectionSource.setContents(p.license + collectionSourceFileContents);
+ collectionSource.setContents(CppTools::AbstractEditorSupport::licenseTemplate(options.collectionSourceFile, options.collectionClassName)
+ + collectionSourceFileContents);
collectionSource.setAttributes(Core::GeneratedFile::OpenEditorAttribute);
rc.push_back(collectionSource);
diff --git a/src/plugins/qt4projectmanager/customwidgetwizard/plugingenerator.h b/src/plugins/qt4projectmanager/customwidgetwizard/plugingenerator.h
index c0de7d2d57..7680dfaa82 100644
--- a/src/plugins/qt4projectmanager/customwidgetwizard/plugingenerator.h
+++ b/src/plugins/qt4projectmanager/customwidgetwizard/plugingenerator.h
@@ -51,7 +51,6 @@ struct PluginOptions;
struct GenerationParameters {
QString path;
QString fileName;
- QString license;
QString templatePath;
};
diff --git a/src/plugins/qt4projectmanager/wizards/consoleappwizard.cpp b/src/plugins/qt4projectmanager/wizards/consoleappwizard.cpp
index d12e3f0e0b..fa8dc63840 100644
--- a/src/plugins/qt4projectmanager/wizards/consoleappwizard.cpp
+++ b/src/plugins/qt4projectmanager/wizards/consoleappwizard.cpp
@@ -81,13 +81,12 @@ Core::GeneratedFiles
const ConsoleAppWizardDialog *wizard = qobject_cast< const ConsoleAppWizardDialog *>(w);
const QtProjectParameters params = wizard->parameters();
const QString projectPath = params.projectPath();
- const QString license = CppTools::AbstractEditorSupport::licenseTemplate();
// Create files: Source
const QString sourceFileName = Core::BaseFileWizard::buildFileName(projectPath, QLatin1String(mainSourceFileC), sourceSuffix());
Core::GeneratedFile source(sourceFileName);
- source.setContents(license + QLatin1String(mainCppC));
+ source.setContents(CppTools::AbstractEditorSupport::licenseTemplate(sourceFileName) + QLatin1String(mainCppC));
source.setAttributes(Core::GeneratedFile::OpenEditorAttribute);
// Create files: Profile
const QString profileName = Core::BaseFileWizard::buildFileName(projectPath, params.fileName, profileSuffix());
diff --git a/src/plugins/qt4projectmanager/wizards/guiappwizard.cpp b/src/plugins/qt4projectmanager/wizards/guiappwizard.cpp
index a112fb13ae..24e6344498 100644
--- a/src/plugins/qt4projectmanager/wizards/guiappwizard.cpp
+++ b/src/plugins/qt4projectmanager/wizards/guiappwizard.cpp
@@ -165,7 +165,8 @@ Core::GeneratedFiles GuiAppWizard::generateFiles(const QWizard *w,
Core::GeneratedFile mainSource(mainSourceFileName);
if (!parametrizeTemplate(templatePath, QLatin1String("main.cpp"), params, &contents, errorMessage))
return Core::GeneratedFiles();
- mainSource.setContents(license + contents);
+ mainSource.setContents(CppTools::AbstractEditorSupport::licenseTemplate(mainSourceFileName)
+ + contents);
// Create files: form source with or without form
const QString formSourceFileName = buildFileName(projectPath, params.sourceFileName, sourceSuffix());
const QString formHeaderName = buildFileName(projectPath, params.headerFileName, headerSuffix());
@@ -187,13 +188,15 @@ Core::GeneratedFiles GuiAppWizard::generateFiles(const QWizard *w,
const QString formSourceTemplate = QLatin1String("mywidget.cpp");
if (!parametrizeTemplate(templatePath, formSourceTemplate, params, &contents, errorMessage))
return Core::GeneratedFiles();
- formSource.setContents(license + contents);
+ formSource.setContents(CppTools::AbstractEditorSupport::licenseTemplate(formSourceFileName)
+ + contents);
formSource.setAttributes(Core::GeneratedFile::OpenEditorAttribute);
// Create files: form header
const QString formHeaderTemplate = QLatin1String("mywidget.h");
if (!parametrizeTemplate(templatePath, formHeaderTemplate, params, &contents, errorMessage))
return Core::GeneratedFiles();
- formHeader.setContents(license + contents);
+ formHeader.setContents(CppTools::AbstractEditorSupport::licenseTemplate(formHeaderName)
+ + contents);
}
// Create files: profile
const QString profileName = buildFileName(projectPath, projectParams.fileName, profileSuffix());
diff --git a/src/plugins/qt4projectmanager/wizards/librarywizard.cpp b/src/plugins/qt4projectmanager/wizards/librarywizard.cpp
index 39eede1791..e86de20dcd 100644
--- a/src/plugins/qt4projectmanager/wizards/librarywizard.cpp
+++ b/src/plugins/qt4projectmanager/wizards/librarywizard.cpp
@@ -82,7 +82,6 @@ Core::GeneratedFiles LibraryWizard::generateFiles(const QWizard *w,
const QtProjectParameters projectParams = dialog->parameters();
const QString projectPath = projectParams.projectPath();
const LibraryParameters params = dialog->libraryParameters();
- const QString license = CppTools::AbstractEditorSupport::licenseTemplate();
const QString sharedLibExportMacro = QtProjectParameters::exportMacro(projectParams.fileName);
@@ -102,7 +101,8 @@ Core::GeneratedFiles LibraryWizard::generateFiles(const QWizard *w,
const QString globalHeaderName = buildFileName(projectPath, projectParams.fileName + QLatin1String(sharedHeaderPostfixC), headerSuffix());
Core::GeneratedFile globalHeader(globalHeaderName);
globalHeaderFileName = QFileInfo(globalHeader.path()).fileName();
- globalHeader.setContents(license + LibraryParameters::generateSharedHeader(globalHeaderFileName, projectParams.fileName, sharedLibExportMacro));
+ globalHeader.setContents(CppTools::AbstractEditorSupport::licenseTemplate(globalHeaderFileName)
+ + LibraryParameters::generateSharedHeader(globalHeaderFileName, projectParams.fileName, sharedLibExportMacro));
rc.push_back(globalHeader);
}
@@ -112,8 +112,10 @@ Core::GeneratedFiles LibraryWizard::generateFiles(const QWizard *w,
globalHeaderFileName, sharedLibExportMacro,
/* indentation*/ 4, &headerContents, &sourceContents);
- source.setContents(license + sourceContents);
- header.setContents(license + headerContents);
+ source.setContents(CppTools::AbstractEditorSupport::licenseTemplate(sourceFileName, params.className)
+ + sourceContents);
+ header.setContents(CppTools::AbstractEditorSupport::licenseTemplate(headerFileFullName, params.className)
+ + headerContents);
rc.push_back(source);
rc.push_back(header);
// Create files: profile
diff --git a/src/plugins/qt4projectmanager/wizards/testwizard.cpp b/src/plugins/qt4projectmanager/wizards/testwizard.cpp
index 55b3e21ae8..a493270e2b 100644
--- a/src/plugins/qt4projectmanager/wizards/testwizard.cpp
+++ b/src/plugins/qt4projectmanager/wizards/testwizard.cpp
@@ -96,7 +96,7 @@ static QString generateTestCode(const TestWizardParameters &testParams,
const QString indent = QString(4, QLatin1Char(' '));
QTextStream str(&rc);
// Includes
- str << CppTools::AbstractEditorSupport::licenseTemplate()
+ str << CppTools::AbstractEditorSupport::licenseTemplate(testParams.fileName, testParams.className)
<< "#include <QtCore/QString>\n#include <QtTest/QtTest>\n";
if (testParams.requiresQApplication)
str << "#include <QtCore/QCoreApplication>\n";