Generated dummy node to handle the path hierarchy.

Signed-off-by: Emanoil Kotsev <deloptes@gmail.com>
Emanoil Kotsev 5 years ago committed by Slávek Banko
parent 2272ebde20
commit 5198e048e1
Signed by: SlavekB
GPG Key ID: 608F5293A04BE668

@ -431,6 +431,8 @@ static void openClassDeclaration(const Class& classData,
stream << endl;
stream << " bool registerObject(const TQT_DBusConnection& connection, "
<< "const TQString& path);" << endl;
stream << " bool registerObject(const TQT_DBusConnection& connection, "
<< "const TQString& path, const TQString& next);" << endl;
stream << endl;
stream << " void unregisterObject();" << endl;
stream << endl;

@ -392,6 +392,32 @@ int main(int argc, char** argv)
headerStream, sourceStream);
ClassGenerator::finishStreams(baseName, headerStream, sourceStream);
// create dummy node to handle the path hierarchy
if ( nameParts.size() > 1 ) {
TQTextStream headerStreamDBusBaseNode;
TQTextStream sourceStreamDBusBaseNode;
Class classDataDBusBaseNode;
classDataDBusBaseNode.name = "DBusBaseNode";
TQValueList<Class> interfacesDBusBase;
TQString baseNameDBusBaseNode = classDataDBusBaseNode.name.lower();
if (!ClassGenerator::initStreams(baseNameDBusBaseNode, headerStreamDBusBaseNode, sourceStreamDBusBaseNode))
{
std::cerr << "dbusxml2qt3: interface files, using base name '"
<< baseNameDBusBaseNode.local8Bit().data()
<< "', could not be opened for writing"
<< std::endl;
exit(4);
}
ClassGenerator::generateNode(classDataDBusBaseNode, interfacesDBusBase,
headerStreamDBusBaseNode, sourceStreamDBusBaseNode);
ClassGenerator::finishStreams(baseNameDBusBaseNode, headerStreamDBusBaseNode, sourceStreamDBusBaseNode);
}
}
return 0;

@ -553,6 +553,56 @@ static void writeNodeInitialization(const Class& classData,
stream << " return true;" << endl;
stream << "}" << endl;
stream << endl;
stream << "bool " << classData.name
<< "::registerObject(const TQT_DBusConnection& connection, "
<< "const TQString& path, const TQString& next)" << endl;
stream << "{" << endl;
stream << " if (path.isEmpty()) return false;" << endl;
stream << endl;
stream << " if (!m_private->objectPath.isEmpty()) unregisterObject();"
<< endl;
stream << endl;
stream << " m_private->connection = connection;" << endl;
stream << " m_private->objectPath = path;" << endl;
stream << " m_private->nextNode = next;" << endl;
stream << endl;
stream << " if (!m_private->connection.registerObject(path, this))" << endl;
stream << " {" << endl;
stream << " m_private->connection = TQT_DBusConnection();" << endl;
stream << " m_private->objectPath = TQString();" << endl;
stream << " m_private->nextNode = TQString();" << endl;
stream << endl;
stream << " return false;" << endl;
stream << " }" << endl;
stream << endl;
stream << " if (m_private->interfaces.isEmpty())" << endl;
stream << " {" << endl;
stream << " TQString name = \"org.freedesktop.DBus.Introspectable\";"
<< endl;
stream << " TQT_DBusObjectBase* interface = m_private;" << endl;
stream << " m_private->interfaces.insert(name, interface);" << endl;
it = interfaces.begin();
endIt = interfaces.end();
for (; it != endIt; ++it)
{
stream << endl;
stream << " name = \"" << (*it).dbusName << "\";" << endl;
stream << " interface = createInterface(name);" << endl;
stream << " Q_ASSERT(interface != 0);" << endl;
stream << " m_private->interfaces.insert(name, interface);" << endl;
}
stream << " }" << endl;
stream << endl;
stream << " return true;" << endl;
stream << "}" << endl;
stream << endl;
}
static void writeNodeIntrospection(const Class& classData,
const TQValueList<Class>& interfaces, TQTextStream& stream)
@ -587,6 +637,13 @@ static void writeNodeIntrospection(const Class& classData,
stream << " nodeElement.appendChild(interfaceElement);" << endl;
}
stream << endl;
stream << " if (!nextNode.isEmpty()) {" << endl;
stream << " TQDomElement nodeElement1 = doc.createElement(\"node\");" << endl;
stream << " nodeElement1.setAttribute ( \"name\", nextNode );" << endl;
stream << " nodeElement.appendChild(nodeElement1);" << endl;
stream << " }" << endl;
stream << endl;
stream << " doc.appendChild(nodeElement);" << endl;
stream << endl;
@ -1724,6 +1781,7 @@ void MethodGenerator::writeNodePrivate(const Class& classData, TQTextStream& str
stream << endl;
stream << " TQT_DBusConnection connection;" << endl;
stream << " TQString objectPath;" << endl;
stream << " TQString nextNode;" << endl;
stream << endl;
stream << "protected:" << endl;

Loading…
Cancel
Save