summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTopi Reinio <topi.reinio@qt.io>2021-01-11 13:50:56 +0100
committerTopi Reinio <topi.reinio@qt.io>2021-01-12 10:36:31 +0100
commitc520da133a11564cac61ce534a89aa9cc34835aa (patch)
treed4e94962e676f9341e82ab3aec2ca4b4b0fcc23f
parentc1ccf74a046ba8fa731e99fcf507c26fe8e8cc83 (diff)
downloadqttools-c520da133a11564cac61ce534a89aa9cc34835aa.tar.gz
qdoc: Fix addendums for QML signals that contain '.' in the name
QML signals may belong to a group, and the automatic note generation for corresponding signal handler must take this into account. Fixes: QTBUG-85572 Change-Id: Ibfc793475618fb78a8ba0a0344537917ad6fb0bf Reviewed-by: Paul Wicking <paul.wicking@qt.io> (cherry picked from commit 8a20d5b62dec6d45e6d6d29fd894aa362c3301fb) Reviewed-by: Topi Reiniƶ <topi.reinio@qt.io>
-rw-r--r--src/qdoc/docbookgenerator.cpp5
-rw-r--r--src/qdoc/generator.cpp5
2 files changed, 6 insertions, 4 deletions
diff --git a/src/qdoc/docbookgenerator.cpp b/src/qdoc/docbookgenerator.cpp
index 82893be97..b5acf4d7b 100644
--- a/src/qdoc/docbookgenerator.cpp
+++ b/src/qdoc/docbookgenerator.cpp
@@ -3422,8 +3422,9 @@ void DocBookGenerator::generateAddendum(const Node *node, Addendum type, CodeMar
case QmlSignalHandler:
{
QString handler(node->name());
- handler[0] = handler[0].toTitleCase();
- handler.prepend(QLatin1String("on"));
+ int prefixLocation = handler.lastIndexOf('.', -2) + 1;
+ handler[prefixLocation] = handler[prefixLocation].toTitleCase();
+ handler.insert(prefixLocation, QLatin1String("on"));
writer->writeStartElement(dbNamespace, "para");
writer->writeCharacters("The corresponding handler is ");
writer->writeTextElement(dbNamespace, "code", handler);
diff --git a/src/qdoc/generator.cpp b/src/qdoc/generator.cpp
index b3aacb623..e753d3090 100644
--- a/src/qdoc/generator.cpp
+++ b/src/qdoc/generator.cpp
@@ -1387,8 +1387,9 @@ void Generator::generateAddendum(const Node *node, Addendum type, CodeMarker *ma
case QmlSignalHandler:
{
QString handler(node->name());
- handler[0] = handler[0].toTitleCase();
- handler.prepend(QLatin1String("on"));
+ int prefixLocation = handler.lastIndexOf('.', -2) + 1;
+ handler[prefixLocation] = handler[prefixLocation].toTitleCase();
+ handler.insert(prefixLocation, QLatin1String("on"));
text << "The corresponding handler is "
<< Atom(Atom::FormattingLeft, ATOM_FORMATTING_TELETYPE) << handler
<< Atom(Atom::FormattingRight, ATOM_FORMATTING_TELETYPE) << ".";