diff options
Diffstat (limited to 'src/qdoc/generator.cpp')
-rw-r--r-- | src/qdoc/generator.cpp | 21 |
1 files changed, 18 insertions, 3 deletions
diff --git a/src/qdoc/generator.cpp b/src/qdoc/generator.cpp index 71da36e3c..e80fa5a4c 100644 --- a/src/qdoc/generator.cpp +++ b/src/qdoc/generator.cpp @@ -1294,12 +1294,27 @@ void Generator::generateReimplementsClause(const FunctionNode *fn, CodeMarker *m ClassNode* cn = static_cast<ClassNode*>(fn->parent()); const FunctionNode *overrides = cn->findOverriddenFunction(fn); if (overrides && !overrides->isPrivate() && !overrides->parent()->isPrivate()) { + if (overrides->hasDoc()) { + Text text; + text << Atom::ParaLeft << "Reimplements: "; + QString fullName = overrides->parent()->name() + "::" + overrides->signature(false, true); + appendFullName(text, overrides->parent(), fullName, overrides); + text << "." << Atom::ParaRight; + generateText(text, fn, marker); + return; + } + } + const PropertyNode* sameName = cn->findOverriddenProperty(fn); + if (sameName && sameName->hasDoc()) { Text text; - text << Atom::ParaLeft << "Reimplements: "; - QString fullName = overrides->parent()->name() + "::" + overrides->signature(false, true); - appendFullName(text, overrides->parent(), fullName, overrides); + text << Atom::ParaLeft << "Reimplements an access function for property: "; + QString fullName = sameName->parent()->name() + "::" + sameName->name(); + appendFullName(text, sameName->parent(), fullName, sameName); text << "." << Atom::ParaRight; generateText(text, fn, marker); + } else { + fn->doc().location().warning(tr("Illegal \\reimp; no documented virtual function for %1") + .arg(fn->plainSignature())); } } } |