From e970f43da76c1a23987f760ee6c0bb63d5204542 Mon Sep 17 00:00:00 2001 From: Friedemann Kleint <qtc-committer@nokia.com> Date: Fri, 19 Dec 2008 10:34:33 +0100 Subject: [PATCH] Fixes: Put the Ui:: class in the same namespace as the form class (was broken for namespaces) --- .../cpp/formclasswizardparameters.cpp | 24 +++++++++++++------ 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/src/plugins/designer/cpp/formclasswizardparameters.cpp b/src/plugins/designer/cpp/formclasswizardparameters.cpp index 19fdd7f3527..2441cddc3a0 100644 --- a/src/plugins/designer/cpp/formclasswizardparameters.cpp +++ b/src/plugins/designer/cpp/formclasswizardparameters.cpp @@ -62,8 +62,15 @@ bool FormClassWizardParameters::generateCpp(QString *header, QString *source, in return false; } + // Build the ui class (Ui::Foo) name relative to the namespace (which is the same): + const QString colonColon = QLatin1String("::"); + const int lastSeparator = uiClassName.lastIndexOf(colonColon); + if (lastSeparator != -1) + uiClassName.remove(0, lastSeparator + colonColon.size()); + uiClassName.insert(0, QLatin1String(uiNamespaceC) + colonColon); + // Do we have namespaces? - QStringList namespaceList = className.split(QLatin1String("::")); + QStringList namespaceList = className.split(colonColon); if (namespaceList.empty()) // Paranoia! return false; @@ -94,18 +101,21 @@ bool FormClassWizardParameters::generateCpp(QString *header, QString *source, in } } + const QString namespaceIndent = Core::Utils::writeOpeningNameSpaces(namespaceList, indent, headerStr); + // Forward-declare the UI class if (embedding == PointerAggregatedUiClass) { - headerStr << "\nnamespace " << uiNamespaceC << " {\n" - << indent << "class " << uiClassName << ";\n}\n"; + headerStr << '\n' + << namespaceIndent << "namespace " << uiNamespaceC << " {\n" + << namespaceIndent << indent << "class " << FormTemplateWizardPagePage::stripNamespaces(uiClassName) << ";\n" + << namespaceIndent << "}\n"; } - const QString namespaceIndent = Core::Utils::writeOpeningNameSpaces(namespaceList, indent, headerStr); // Class declaration headerStr << '\n' << namespaceIndent << "class " << unqualifiedClassName << " : public " << formBaseClass; if (embedding == InheritedUiClass) { - headerStr << ", private " << uiNamespaceC << "::" << uiClassName; + headerStr << ", private " << uiClassName; } headerStr << " {\n" << namespaceIndent << indent << "Q_OBJECT\n" << namespaceIndent << indent << "Q_DISABLE_COPY(" << unqualifiedClassName << ")\n" @@ -120,7 +130,7 @@ bool FormClassWizardParameters::generateCpp(QString *header, QString *source, in // Member variable if (embedding != InheritedUiClass) { headerStr << '\n' << namespaceIndent << "private:\n" - << namespaceIndent << indent << uiNamespaceC << "::" << uiClassName << ' '; + << namespaceIndent << indent << uiClassName << ' '; if (embedding == PointerAggregatedUiClass) headerStr << '*'; headerStr << uiMemberC << ";\n"; @@ -140,7 +150,7 @@ bool FormClassWizardParameters::generateCpp(QString *header, QString *source, in sourceStr << '\n' << namespaceIndent << unqualifiedClassName << "::" << unqualifiedClassName << "(QWidget *parent) :\n" << namespaceIndent << indent << formBaseClass << "(parent)"; if (embedding == PointerAggregatedUiClass) - sourceStr << ",\n" << namespaceIndent << indent << uiMemberC << "(new " << uiNamespaceC << "::" << uiClassName << ")\n"; + sourceStr << ",\n" << namespaceIndent << indent << uiMemberC << "(new " << uiClassName << ")\n"; sourceStr << namespaceIndent << "{\n" << namespaceIndent << indent; if (embedding != InheritedUiClass) sourceStr << uiMemberC << (embedding == PointerAggregatedUiClass ? "->" : "."); -- GitLab