diff options
author | Filip Bucek <fbucek@atlas.cz> | 2019-01-03 10:56:36 +0100 |
---|---|---|
committer | Filip Bucek <fbucek@atlas.cz> | 2019-01-23 09:10:42 +0000 |
commit | aaa8beab88dddd7218f6d3c30fb29c04679e2098 (patch) | |
tree | b6416714fee6923386c87b0b29f72a6bccecf90e /src/plugins/designer | |
parent | 2781c2a9004f1404580c287364e10add20bcb180 (diff) |
Wizards: Support using #pragma once instead of include guards
Allow users to choose #pragma once instead of #ifndef include guards in
generated header files.
Fixes: QTCREATORBUG-12166
Change-Id: I3ba41c7570beb9c5958e174b5581fcc25855050f
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
Reviewed-by: Filip Bucek <fbucek@atlas.cz>
Diffstat (limited to 'src/plugins/designer')
-rw-r--r-- | src/plugins/designer/cpp/formclasswizarddialog.cpp | 2 | ||||
-rw-r--r-- | src/plugins/designer/cpp/formclasswizardparameters.h | 1 | ||||
-rw-r--r-- | src/plugins/designer/qtdesignerformclasscodegenerator.cpp | 12 |
3 files changed, 12 insertions, 3 deletions
diff --git a/src/plugins/designer/cpp/formclasswizarddialog.cpp b/src/plugins/designer/cpp/formclasswizarddialog.cpp index 95b099b4c4..66956b99a7 100644 --- a/src/plugins/designer/cpp/formclasswizarddialog.cpp +++ b/src/plugins/designer/cpp/formclasswizarddialog.cpp @@ -26,6 +26,7 @@ #include "formclasswizarddialog.h" #include "formclasswizardpage.h" #include "formclasswizardparameters.h" +#include <cpptools/abstracteditorsupport.h> #include <designer/formtemplatewizardpage.h> #include <qtsupport/codegenerator.h> @@ -88,6 +89,7 @@ FormClassWizardParameters FormClassWizardDialog::parameters() const m_classPage->getParameters(&rc); // Name the ui class in the Ui namespace after the class specified rc.uiTemplate = QtSupport::CodeGenerator::changeUiClassName(m_rawFormTemplate, rc.className); + rc.usePragmaOnce = CppTools::AbstractEditorSupport::usePragmaOnce(); return rc; } diff --git a/src/plugins/designer/cpp/formclasswizardparameters.h b/src/plugins/designer/cpp/formclasswizardparameters.h index 7aa25f5cb3..1396c9052c 100644 --- a/src/plugins/designer/cpp/formclasswizardparameters.h +++ b/src/plugins/designer/cpp/formclasswizardparameters.h @@ -43,6 +43,7 @@ public: QString sourceFile; QString headerFile; QString uiFile; + bool usePragmaOnce = false; }; } // namespace Designer diff --git a/src/plugins/designer/qtdesignerformclasscodegenerator.cpp b/src/plugins/designer/qtdesignerformclasscodegenerator.cpp index 7ad455e159..2584ff7de1 100644 --- a/src/plugins/designer/qtdesignerformclasscodegenerator.cpp +++ b/src/plugins/designer/qtdesignerformclasscodegenerator.cpp @@ -104,8 +104,12 @@ bool QtDesignerFormClassCodeGenerator::generateCpp(const FormClassWizardParamete // 1) Header file QTextStream headerStr(header); - headerStr << headerLicense << "#ifndef " << guard - << "\n#define " << guard << '\n' << '\n'; + headerStr << headerLicense; + + if (parameters.usePragmaOnce) + headerStr << "#pragma once\n\n"; + else + headerStr << "#ifndef " << guard << "\n#define " << guard << "\n\n"; // Include 'ui_' if (generationParameters.embedding != QtSupport::CodeGenSettings::PointerAggregatedUiClass) { @@ -165,7 +169,9 @@ bool QtDesignerFormClassCodeGenerator::generateCpp(const FormClassWizardParamete } headerStr << namespaceIndent << "};\n\n"; Utils::writeClosingNameSpaces(namespaceList, QString(), headerStr); - headerStr << "#endif // "<< guard << '\n'; + + if (!parameters.usePragmaOnce) + headerStr << "#endif // " << guard << '\n'; // 2) Source file QTextStream sourceStr(source); |