void Generator::generate() { if (m_classes.size() == 0) { ReportHandler::warning(QString("%1: no java classes, skipping") .arg(metaObject()->className())); return; } qStableSort(m_classes); foreach (AbstractMetaClass *cls, m_classes) { if (!shouldGenerate(cls)) continue; QString fileName = fileNameForClass(cls); ReportHandler::debugSparse(QString("generating: %1").arg(fileName)); FileOut fileOut(outputDirectory() + "/" + subDirectoryForClass(cls) + "/" + fileName); write(fileOut.stream, cls); if( fileOut.done() ) ++m_num_generated_written; ++m_num_generated; } }
void ShellImplGenerator::write(QTextStream &s, const AbstractMetaClass *meta_class) { QString builtIn = ShellGenerator::isBuiltIn(meta_class->name())?"_builtin":""; QString pro_file_name = meta_class->package().replace(".", "_") + builtIn + "/" + meta_class->package().replace(".", "_") + builtIn + ".pri"; priGenerator->addSource(pro_file_name, fileNameForClass(meta_class)); s << "#include \"PythonQtWrapper_" << meta_class->name() << ".h\"" << endl << endl; s << "#include <PythonQtSignalReceiver.h>" << endl; s << "#include <PythonQtMethodInfo.h>" << endl; s << "#include <PythonQtConversion.h>" << endl; //if (!meta_class->generateShellClass()) // return; IncludeList list = meta_class->typeEntry()->extraIncludes(); qSort(list.begin(), list.end()); foreach (const Include &inc, list) { ShellGenerator::writeInclude(s, inc); }
void ShellHeaderGenerator::write(QTextStream &s, const AbstractMetaClass *meta_class) { QString builtIn = ShellGenerator::isBuiltIn(meta_class->name())?"_builtin":""; QString pro_file_name = meta_class->package().replace(".", "_") + builtIn + "/" + meta_class->package().replace(".", "_") + builtIn + ".pri"; priGenerator->addHeader(pro_file_name, fileNameForClass(meta_class)); setupGenerator->addClass(meta_class->package().replace(".", "_") + builtIn, meta_class); QString include_block = "PYTHONQTWRAPPER_" + meta_class->name().toUpper() + "_H"; s << "#ifndef " << include_block << endl << "#define " << include_block << endl << endl; Include inc = meta_class->typeEntry()->include(); ShellGenerator::writeInclude(s, inc); s << "#include <QObject>" << endl << endl; s << "#include <PythonQt.h>" << endl << endl; IncludeList list = meta_class->typeEntry()->extraIncludes(); qSort(list.begin(), list.end()); foreach (const Include &inc, list) { ShellGenerator::writeInclude(s, inc); }
void QDocGenerator::generate() { QDir dir(outputDirectory() + "/" + subDirectoryForClass(0)); dir.mkpath(dir.absolutePath()); QFile f(dir.absoluteFilePath(fileNameForClass(0))); if (!f.open(QIODevice::WriteOnly)) { ReportHandler::warning(QString("failed to open file '%1' for writing") .arg(f.fileName())); return; } QTextStream s(&f); s << "<japi>" << endl; AbstractMetaClassList clazzes = classes(); foreach(AbstractMetaClass *cls, clazzes) { if (shouldGenerate(cls)) { write(s, cls); } } s << "</japi>" << endl; }