@@ -52,10 +52,6 @@ void SetupGenerator::addClass(const QString& package, const AbstractMetaClass *c
5252 packHash[package].append (cls);
5353}
5454
55- void maybeDeclareMetaType (QTextStream &stream, const QString &typeName,
56- QSet<QString> ®isteredTypeNames);
57- bool hasDefaultConstructor (const AbstractMetaClass *meta_class);
58-
5955static QStringList getOperatorCodes (const AbstractMetaClass* cls) {
6056 QSet<QString> operatorCodes;
6157 AbstractMetaFunctionList returned;
@@ -247,34 +243,11 @@ void SetupGenerator::generate()
247243 continue ;
248244 std::stable_sort (list.begin (), list.end (), AbstractMetaClass::less_than);
249245
250- QString packKey = pack.key ();
251- QString packName = pack.key ();
252- QStringList components = packName.split (" _" );
253- if ((components.size () > 2 ) && (components.at (0 ) == " com" )
254- && (components.at (1 ) == " trolltech" )) {
255- // kill com.trolltech in key
256- components.removeAt (0 );
257- components.removeAt (0 );
258- }
259-
260- QString shortPackName;
261- foreach (QString comp, components) {
262- comp[0 ] = comp[0 ].toUpper ();
263- shortPackName += comp;
264- }
265- // add missing camel case (workaround..)
266- if (shortPackName == " QtWebkit" ) {
267- shortPackName = " QtWebKit" ;
268- } else if (shortPackName == " QtXmlpatterns" ) {
269- shortPackName = " QtXmlPatterns" ;
270- } else if (shortPackName == " QtWebenginewidgets" ) {
271- shortPackName = " QtWebEngineWidgets" ;
272- } else if (shortPackName == " QtOpengl" ) {
273- shortPackName = " QtOpenGL" ;
274- } else if (shortPackName == " QtUitools" ) {
275- shortPackName = " QtUiTools" ;
276- }
277-
246+ QString packKey = ShellGenerator::toFileNameBase (pack.key ());
247+ QString packName = packKey;
248+ QString qtPackageName = " Qt" + pack.key ().split (' .' ).back ().split (' _' ).front ();
249+ bool isBuiltin = packKey.endsWith (" _builtin" );
250+ QString initName = qtPackageName + (isBuiltin ? " Builtin" : " " );
278251
279252 {
280253 QString fileName (packName + " /" + packKey + " _init.cpp" );
@@ -291,7 +264,7 @@ void SetupGenerator::generate()
291264 s << endl;
292265
293266 QStringList polymorphicHandlers;
294- if (!packName. endsWith ( " _builtin " ) ) {
267+ if (!isBuiltin ) {
295268 polymorphicHandlers = writePolymorphicHandler (s, list.at (0 )->package (), classes_with_polymorphic_id, list);
296269 s << endl;
297270 }
@@ -328,11 +301,7 @@ void SetupGenerator::generate()
328301 s << endl;
329302
330303 // declare individual class creation functions
331- s << " void PythonQt_init_" << shortPackName << " (PyObject* module) {" << endl;
332-
333- if (shortPackName.endsWith (" Builtin" )) {
334- shortPackName = shortPackName.mid (0 , shortPackName.length ()-strlen (" builtin" ));
335- }
304+ s << " void PythonQt_init_" << initName << " (PyObject* module) {" << endl;
336305
337306 foreach (const AbstractMetaClass *cls, list) {
338307 if (cls->qualifiedCppName ().contains (" Ssl" )) {
@@ -367,10 +336,10 @@ void SetupGenerator::generate()
367336 operatorCodes = " 0" ;
368337 }
369338 if (cls->isQObject ()) {
370- s << " PythonQt::priv()->registerClass(&" << cls->qualifiedCppName () << " ::staticMetaObject, \" " << shortPackName <<" \" , PythonQtCreateObject<PythonQtWrapper_" << cls->name () << " >" << shellCreator << " , module, " << operatorCodes <<" );" << endl;
339+ s << " PythonQt::priv()->registerClass(&" << cls->qualifiedCppName () << " ::staticMetaObject, \" " << qtPackageName <<" \" , PythonQtCreateObject<PythonQtWrapper_" << cls->name () << " >" << shellCreator << " , module, " << operatorCodes <<" );" << endl;
371340 } else {
372341 QString baseName = cls->baseClass ()?cls->baseClass ()->qualifiedCppName ():" " ;
373- s << " PythonQt::priv()->registerCPPClass(\" " << cls->qualifiedCppName () << " \" , \" " << baseName << " \" , \" " << shortPackName <<" \" , PythonQtCreateObject<PythonQtWrapper_" << cls->name () << " >" << shellCreator << " , module, " << operatorCodes <<" );" << endl;
342+ s << " PythonQt::priv()->registerCPPClass(\" " << cls->qualifiedCppName () << " \" , \" " << baseName << " \" , \" " << qtPackageName <<" \" , PythonQtCreateObject<PythonQtWrapper_" << cls->name () << " >" << shellCreator << " , module, " << operatorCodes <<" );" << endl;
374343 }
375344 for (AbstractMetaClass* interface : cls->interfaces ()) {
376345 // the interface might be our own class... (e.g. QPaintDevice)
0 commit comments