From 2fa3a9485d45cfa27593848fbcee1b21ed1bfa57 Mon Sep 17 00:00:00 2001 From: Hugo Parente Lima Date: Thu, 10 Feb 2011 18:57:40 -0200 Subject: Add function getClassTargetFullName to get what AbstractMetaClass.fullName would return. --- generator.cpp | 26 ++++++++++++++++++++++++++ generator.h | 3 +++ 2 files changed, 29 insertions(+) diff --git a/generator.cpp b/generator.cpp index f11eed77f..376f56050 100644 --- a/generator.cpp +++ b/generator.cpp @@ -335,3 +335,29 @@ QString Generator::subDirectoryForPackage(QString packageName) const return QString(packageName).replace(".", QDir::separator()); } +template +static QString getClassTargetFullName_(const T* t, bool includePackageName) +{ + QString name = t->name(); + const AbstractMetaClass* context = t->enclosingClass(); + while (context) { + name.prepend('.'); + name.prepend(context->name()); + context = context->enclosingClass(); + } + if (includePackageName) { + name.prepend('.'); + name.prepend(t->package()); + } + return name; +} + +QString getClassTargetFullName(const AbstractMetaClass* metaClass, bool includePackageName) +{ + return getClassTargetFullName_(metaClass, includePackageName); +} + +QString getClassTargetFullName(const AbstractMetaEnum* metaEnum, bool includePackageName) +{ + return getClassTargetFullName_(metaEnum, includePackageName); +} diff --git a/generator.h b/generator.h index c45890100..0ebe1b55b 100644 --- a/generator.h +++ b/generator.h @@ -45,6 +45,9 @@ QTextStream& formatCode(QTextStream &s, const QString& code, Indentor &indentor) GENRUNNER_API void verifyDirectoryFor(const QFile &file); +GENRUNNER_API QString getClassTargetFullName(const AbstractMetaClass* metaClass, bool includePackageName = true); +GENRUNNER_API QString getClassTargetFullName(const AbstractMetaEnum* metaEnum, bool includePackageName = true); + /** * Base class for all generators. The default implementations does nothing, * you must subclass this to create your own generators. -- cgit v1.2.3