From f3b8b12306695a5c7996fedfb3bbc694057fef7b Mon Sep 17 00:00:00 2001 From: Jerome Pasion Date: Mon, 3 Dec 2012 17:34:37 +0100 Subject: Qt D-Bus: Editing QCH titles. Task-number: QTBUG-28341 Change-Id: Icf0f87e8c108bc12575512b7e4ecac46779fc362 Reviewed-by: Sergio Ahumada --- src/dbus/doc/qtdbus.qdocconf | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'src/dbus') diff --git a/src/dbus/doc/qtdbus.qdocconf b/src/dbus/doc/qtdbus.qdocconf index 20b327f9fb..264bd12ff3 100644 --- a/src/dbus/doc/qtdbus.qdocconf +++ b/src/dbus/doc/qtdbus.qdocconf @@ -37,11 +37,12 @@ qhp.qtdbus.namespace = org.qt-project.qtdbus.500 # Title for the package, will be the main title for the package in # Assistant/Creator. -qhp.qtdbus.indexTitle = Qt Script Documentation +qhp.qtdbus.indexTitle = Qt D-Bus # Only update the name of the project for the next variables. qhp.qtdbus.virtualFolder = qtdbus qhp.qtdbus.subprojects = classes -qhp.qtdbus.subprojects.classes.title = Qt D-Bus C++ Classes +qhp.qtdbus.subprojects.classes.title = C++ Classes +qhp.qtdbus.subprojects.classes.indexTitle = Qt D-Bus C++ Classes qhp.qtdbus.subprojects.classes.selectors = class fake:headerfile qhp.qtdbus.subprojects.classes.sortPages = true -- cgit v1.2.3 From 7cccb7b92474a73468e46ac5c83e8083077f684b Mon Sep 17 00:00:00 2001 From: Shawn Rutledge Date: Mon, 3 Dec 2012 13:49:28 +0100 Subject: duplicate URL example image for the dbus index doc Change-Id: Icd25711e4ede9fd3292d087103402f25a755d102 Reviewed-by: Paul Olav Tvete --- src/dbus/doc/images/qurl-ftppath.png | Bin 0 -> 1974 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 src/dbus/doc/images/qurl-ftppath.png (limited to 'src/dbus') diff --git a/src/dbus/doc/images/qurl-ftppath.png b/src/dbus/doc/images/qurl-ftppath.png new file mode 100644 index 0000000000..d88df4922b Binary files /dev/null and b/src/dbus/doc/images/qurl-ftppath.png differ -- cgit v1.2.3 From 5b3e7c8dfa4856b04013ace24d19bbd104dc3bd0 Mon Sep 17 00:00:00 2001 From: Kevin Ottens Date: Fri, 30 Nov 2012 11:51:05 +0100 Subject: Generate the introspection string during parsing Commit 0696071316b3dacb8d1ca15a269e4f4215642b9d moved away from QDom but also lost the ability to fill the introspection field of the created QDBusIntrospection::Interface instances. This commit now generate the string again as we proceed with the QXmlStreamReader based parsing. Task-number: QTBUG-26668 Change-Id: I8f406e1f4e9d3e667a8557db69da36cac369ba4f Reviewed-by: Thiago Macieira --- src/dbus/qdbusxmlparser.cpp | 156 ++++++++++++++++++++++++++++---------------- 1 file changed, 101 insertions(+), 55 deletions(-) (limited to 'src/dbus') diff --git a/src/dbus/qdbusxmlparser.cpp b/src/dbus/qdbusxmlparser.cpp index 315b4a2e24..c2c1b8daff 100644 --- a/src/dbus/qdbusxmlparser.cpp +++ b/src/dbus/qdbusxmlparser.cpp @@ -59,7 +59,8 @@ QT_BEGIN_NAMESPACE -static bool parseArg(const QXmlStreamAttributes &attributes, QDBusIntrospection::Argument &argData) +static bool parseArg(const QXmlStreamAttributes &attributes, QDBusIntrospection::Argument &argData, + QDBusIntrospection::Interface *ifaceData) { const QString argType = attributes.value(QLatin1String("type")).toString(); @@ -72,10 +73,21 @@ static bool parseArg(const QXmlStreamAttributes &attributes, QDBusIntrospection: argData.name = attributes.value(QLatin1String("name")).toString(); argData.type = argType; + ifaceData->introspection += QLatin1String(" introspection += QLatin1String(" direction=\"") + direction + QLatin1String("\""); + } + ifaceData->introspection += QLatin1String(" type=\"") + argData.type + QLatin1String("\""); + if (!argData.name.isEmpty()) + ifaceData->introspection += QLatin1String(" name=\"") + argData.name + QLatin1String("\""); + ifaceData->introspection += QLatin1String("/>\n"); + return ok; } -static bool parseAnnotation(const QXmlStreamReader &xml, QDBusIntrospection::Annotations &annotations) +static bool parseAnnotation(const QXmlStreamReader &xml, QDBusIntrospection::Annotations &annotations, + QDBusIntrospection::Interface *ifaceData, bool interfaceAnnotation = false) { Q_ASSERT(xml.isStartElement() && xml.name() == QLatin1String("annotation")); @@ -87,12 +99,16 @@ static bool parseAnnotation(const QXmlStreamReader &xml, QDBusIntrospection::Ann qPrintable(name)); return false; } - annotations.insert(name, attributes.value(QLatin1String("value")).toString()); + const QString value = attributes.value(QLatin1String("value")).toString(); + annotations.insert(name, value); + if (!interfaceAnnotation) + ifaceData->introspection += QLatin1String(" "); + ifaceData->introspection += QLatin1String(" \n"); return true; } static bool parseProperty(QXmlStreamReader &xml, QDBusIntrospection::Property &propertyData, - const QString &ifaceName) + QDBusIntrospection::Interface *ifaceData) { Q_ASSERT(xml.isStartElement() && xml.name() == QLatin1String("property")); @@ -100,7 +116,7 @@ static bool parseProperty(QXmlStreamReader &xml, QDBusIntrospection::Property &p const QString propertyName = attributes.value(QLatin1String("name")).toString(); if (!QDBusUtil::isValidMemberName(propertyName)) { qDBusParserError("Invalid D-BUS member name '%s' found in interface '%s' while parsing introspection", - qPrintable(propertyName), qPrintable(ifaceName)); + qPrintable(propertyName), qPrintable(ifaceData->name)); xml.skipCurrentElement(); return false; } @@ -112,7 +128,7 @@ static bool parseProperty(QXmlStreamReader &xml, QDBusIntrospection::Property &p if (!QDBusUtil::isValidSingleSignature(propertyData.type)) { // cannot be! qDBusParserError("Invalid D-BUS type signature '%s' found in property '%s.%s' while parsing introspection", - qPrintable(propertyData.type), qPrintable(ifaceName), + qPrintable(propertyData.type), qPrintable(ifaceData->name), qPrintable(propertyName)); } @@ -125,18 +141,28 @@ static bool parseProperty(QXmlStreamReader &xml, QDBusIntrospection::Property &p propertyData.access = QDBusIntrospection::Property::ReadWrite; else { qDBusParserError("Invalid D-BUS property access '%s' found in property '%s.%s' while parsing introspection", - qPrintable(access), qPrintable(ifaceName), + qPrintable(access), qPrintable(ifaceData->name), qPrintable(propertyName)); return false; // invalid one! } - while (xml.readNextStartElement()) { - if (xml.name() == QLatin1String("annotation")) { - parseAnnotation(xml, propertyData.annotations); - } else if (xml.prefix().isEmpty()) { - qDBusParserError() << "Unknown element" << xml.name() << "while checking for annotations"; - } - xml.skipCurrentElement(); + ifaceData->introspection += QLatin1String(" introspection += QLatin1String("/>\n"); + } else { + ifaceData->introspection += QLatin1String(">\n"); + + do { + if (xml.name() == QLatin1String("annotation")) { + parseAnnotation(xml, propertyData.annotations, ifaceData); + } else if (xml.prefix().isEmpty()) { + qDBusParserError() << "Unknown element" << xml.name() << "while checking for annotations"; + } + xml.skipCurrentElement(); + } while (xml.readNextStartElement()); + + ifaceData->introspection += QLatin1String(" \n"); } if (!xml.isEndElement() || xml.name() != QLatin1String("property")) { @@ -148,7 +174,7 @@ static bool parseProperty(QXmlStreamReader &xml, QDBusIntrospection::Property &p } static bool parseMethod(QXmlStreamReader &xml, QDBusIntrospection::Method &methodData, - const QString &ifaceName) + QDBusIntrospection::Interface *ifaceData) { Q_ASSERT(xml.isStartElement() && xml.name() == QLatin1String("method")); @@ -156,35 +182,44 @@ static bool parseMethod(QXmlStreamReader &xml, QDBusIntrospection::Method &metho const QString methodName = attributes.value(QLatin1String("name")).toString(); if (!QDBusUtil::isValidMemberName(methodName)) { qDBusParserError("Invalid D-BUS member name '%s' found in interface '%s' while parsing introspection", - qPrintable(methodName), qPrintable(ifaceName)); + qPrintable(methodName), qPrintable(ifaceData->name)); return false; } methodData.name = methodName; + ifaceData->introspection += QLatin1String(" introspection += QLatin1String("/>\n"); + } else { + ifaceData->introspection += QLatin1String(">\n"); + + do { + if (xml.name() == QLatin1String("annotation")) { + parseAnnotation(xml, annotations, ifaceData); + } else if (xml.name() == QLatin1String("arg")) { + const QXmlStreamAttributes attributes = xml.attributes(); + const QString direction = attributes.value(QLatin1String("direction")).toString(); + QDBusIntrospection::Argument argument; + if (!attributes.hasAttribute(QLatin1String("direction")) + || direction == QLatin1String("in")) { + parseArg(attributes, argument, ifaceData); + inArguments << argument; + } else if (direction == QLatin1String("out")) { + parseArg(attributes, argument, ifaceData); + outArguments << argument; + } + } else if (xml.prefix().isEmpty()) { + qDBusParserError() << "Unknown element" << xml.name() << "while checking for method arguments"; } - } else if (xml.prefix().isEmpty()) { - qDBusParserError() << "Unknown element" << xml.name() << "while checking for method arguments"; - } - xml.skipCurrentElement(); + xml.skipCurrentElement(); + } while (xml.readNextStartElement()); + + ifaceData->introspection += QLatin1String(" \n"); } methodData.inputArgs = inArguments; @@ -196,7 +231,7 @@ static bool parseMethod(QXmlStreamReader &xml, QDBusIntrospection::Method &metho static bool parseSignal(QXmlStreamReader &xml, QDBusIntrospection::Signal &signalData, - const QString &ifaceName) + QDBusIntrospection::Interface *ifaceData) { Q_ASSERT(xml.isStartElement() && xml.name() == QLatin1String("signal")); @@ -205,31 +240,39 @@ static bool parseSignal(QXmlStreamReader &xml, QDBusIntrospection::Signal &signa if (!QDBusUtil::isValidMemberName(signalName)) { qDBusParserError("Invalid D-BUS member name '%s' found in interface '%s' while parsing introspection", - qPrintable(signalName), qPrintable(ifaceName)); + qPrintable(signalName), qPrintable(ifaceData->name)); return false; } signalData.name = signalName; - + ifaceData->introspection += QLatin1String(" introspection += QLatin1String("/>\n"); + } else { + ifaceData->introspection += QLatin1String(">\n"); + + do { + if (xml.name() == QLatin1String("annotation")) { + parseAnnotation(xml, annotations, ifaceData); + } else if (xml.name() == QLatin1String("arg")) { + const QXmlStreamAttributes attributes = xml.attributes(); + QDBusIntrospection::Argument argument; + if (!attributes.hasAttribute(QLatin1String("direction")) || + attributes.value(QLatin1String("direction")) == QLatin1String("out")) { + parseArg(attributes, argument, ifaceData); + arguments << argument; + } + } else { + qDBusParserError() << "Unknown element" << xml.name() << "while checking for signal arguments"; } - } else { - qDBusParserError() << "Unknown element" << xml.name() << "while checking for signal arguments"; - } - xml.skipCurrentElement(); + xml.skipCurrentElement(); + } while (xml.readNextStartElement()); + + ifaceData->introspection += QLatin1String(" \n"); } signalData.outputArgs = arguments; @@ -252,22 +295,23 @@ static void readInterface(QXmlStreamReader &xml, QDBusIntrospection::Object *obj QDBusIntrospection::Interface *ifaceData = new QDBusIntrospection::Interface; ifaceData->name = ifaceName; + ifaceData->introspection += QLatin1String(" \n"); while (xml.readNextStartElement()) { if (xml.name() == QLatin1String("method")) { QDBusIntrospection::Method methodData; - if (parseMethod(xml, methodData, ifaceName)) + if (parseMethod(xml, methodData, ifaceData)) ifaceData->methods.insert(methodData.name, methodData); } else if (xml.name() == QLatin1String("signal")) { QDBusIntrospection::Signal signalData; - if (parseSignal(xml, signalData, ifaceName)) + if (parseSignal(xml, signalData, ifaceData)) ifaceData->signals_.insert(signalData.name, signalData); } else if (xml.name() == QLatin1String("property")) { QDBusIntrospection::Property propertyData; - if (parseProperty(xml, propertyData, ifaceName)) + if (parseProperty(xml, propertyData, ifaceData)) ifaceData->properties.insert(propertyData.name, propertyData); } else if (xml.name() == QLatin1String("annotation")) { - parseAnnotation(xml, ifaceData->annotations); + parseAnnotation(xml, ifaceData->annotations, ifaceData, true); xml.skipCurrentElement(); // skip over annotation object } else { if (xml.prefix().isEmpty()) { @@ -277,6 +321,8 @@ static void readInterface(QXmlStreamReader &xml, QDBusIntrospection::Object *obj } } + ifaceData->introspection += QLatin1String(" "); + interfaces->insert(ifaceName, QSharedDataPointer(ifaceData)); if (!xml.isEndElement() || xml.name() != QLatin1String("interface")) { -- cgit v1.2.3 From eaa31066bc159829d35d9b4099d42355cec3dae1 Mon Sep 17 00:00:00 2001 From: Christiaan Janssen Date: Wed, 12 Dec 2012 16:32:44 +0100 Subject: D-Bus Examples: added qdoc files and path Change-Id: I59b3db3f3c5d076b60a2e6f909d7919d5126a1e6 Reviewed-by: hjk Reviewed-by: Jerome Pasion --- src/dbus/doc/qtdbus.qdocconf | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'src/dbus') diff --git a/src/dbus/doc/qtdbus.qdocconf b/src/dbus/doc/qtdbus.qdocconf index 264bd12ff3..8915e1ee2e 100644 --- a/src/dbus/doc/qtdbus.qdocconf +++ b/src/dbus/doc/qtdbus.qdocconf @@ -14,9 +14,12 @@ exampledirs += ../../../examples/dbus \ headerdirs += .. imagedirs += images -sourcedirs += .. +sourcedirs += .. \ + ../../../examples/dbus/doc/src excludedirs += ../../../examples/widgets/doc +examplesinstallpath = dbus + depends += qtcore # The following parameters are for creating a qhp file, the qhelpgenerator -- cgit v1.2.3 From 7426102c734509269701a1e1dfaecfd76143294f Mon Sep 17 00:00:00 2001 From: Sergio Ahumada Date: Thu, 20 Dec 2012 12:31:53 +0100 Subject: Bump Qt version to 5.0.1 Change-Id: Ie8f437b8dfe8a67c7b34321439dd988a02612437 Reviewed-by: Thiago Macieira --- src/dbus/doc/qtdbus.qdocconf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/dbus') diff --git a/src/dbus/doc/qtdbus.qdocconf b/src/dbus/doc/qtdbus.qdocconf index 8915e1ee2e..7a58dada63 100644 --- a/src/dbus/doc/qtdbus.qdocconf +++ b/src/dbus/doc/qtdbus.qdocconf @@ -36,7 +36,7 @@ qhp.qtdbus.file = qtdbus.qhp # Namespace for the output file. This namespace is used to distinguish between # different documentation files in Creator/Assistant. -qhp.qtdbus.namespace = org.qt-project.qtdbus.500 +qhp.qtdbus.namespace = org.qt-project.qtdbus.501 # Title for the package, will be the main title for the package in # Assistant/Creator. -- cgit v1.2.3