diff --git a/generator/prigenerator.cpp b/generator/prigenerator.cpp index 7b81266..6d8bf38 100644 --- a/generator/prigenerator.cpp +++ b/generator/prigenerator.cpp @@ -75,8 +75,8 @@ static QString combineIncludes(const QString& text) { foreach(QString line, lines) { if (line.startsWith("#include")) { includes.insert(line); - } else if (line.startsWith("#")) { - // skip preprocessor stuff + } else if (line.startsWith("#") && line.contains("PYTHONQTWRAPPER_")) { + // skip preprocessor defines for single wrapped classes } else { result += line + "\n"; } diff --git a/generator/setupgenerator.cpp b/generator/setupgenerator.cpp index 4b33633..7ab8666 100644 --- a/generator/setupgenerator.cpp +++ b/generator/setupgenerator.cpp @@ -198,7 +198,9 @@ void SetupGenerator::generate() QStringList cppClassNames; foreach (const AbstractMetaClass *cls, list) { - + if (cls->qualifiedCppName().contains("Ssl")) { + s << "#ifndef QT_NO_OPENSSL" << endl; + } QString shellCreator; if (cls->generateShellClass()) { shellCreator = ", PythonQtSetInstanceWrapperOnShell<" + ShellGenerator::shellClassName(cls) + ">"; @@ -221,6 +223,9 @@ void SetupGenerator::generate() s << "PythonQt::self()->addParentClass(\""<< cls->qualifiedCppName() << "\", \"" << interface->qualifiedCppName() << "\",PythonQtUpcastingOffset<" << cls->qualifiedCppName() <<","<qualifiedCppName()<<">());" << endl; } } + if (cls->qualifiedCppName().contains("Ssl")) { + s << "#endif" << endl; + } } s << endl; foreach (QString handler, polymorphicHandlers) { diff --git a/generator/shellheadergenerator.cpp b/generator/shellheadergenerator.cpp index eb10ffc..898c0cc 100644 --- a/generator/shellheadergenerator.cpp +++ b/generator/shellheadergenerator.cpp @@ -104,6 +104,10 @@ void ShellHeaderGenerator::write(QTextStream &s, const AbstractMetaClass *meta_c | AbstractMetaClass::WasVisible | AbstractMetaClass::NotRemovedFromTargetLang); + if (meta_class->qualifiedCppName().contains("Ssl")) { + s << "#ifndef QT_NO_OPENSSL" << endl; + } + // Shell------------------------------------------------------------------- if (meta_class->generateShellClass()) { @@ -128,7 +132,6 @@ void ShellHeaderGenerator::write(QTextStream &s, const AbstractMetaClass *meta_c } s << endl; s << " ~" << shellClassName(meta_class) << "();" << endl; - s << endl; foreach(AbstractMetaFunction* fun, virtualsForShell) { s << "virtual "; @@ -293,8 +296,13 @@ void ShellHeaderGenerator::write(QTextStream &s, const AbstractMetaClass *meta_c writeInjectedCode(s, meta_class); - s << "};" << endl << endl - << "#endif // " << include_block << endl; + s << "};" << endl << endl; + if (meta_class->qualifiedCppName().contains("Ssl")) { + s << "#endif" << endl << endl; + } + + s << "#endif // " << include_block << endl; + } diff --git a/generator/shellimplgenerator.cpp b/generator/shellimplgenerator.cpp index 394f85b..dfd27b4 100644 --- a/generator/shellimplgenerator.cpp +++ b/generator/shellimplgenerator.cpp @@ -102,6 +102,9 @@ void ShellImplGenerator::write(QTextStream &s, const AbstractMetaClass *meta_cla // declareFunctionMetaTypes(s, functions, registeredTypeNames); // s << endl; } + if (meta_class->qualifiedCppName().contains("Ssl")) { + s << "#ifndef QT_NO_OPENSSL" << endl; + } if (meta_class->generateShellClass()) { @@ -311,6 +314,9 @@ void ShellImplGenerator::write(QTextStream &s, const AbstractMetaClass *meta_cla writeInjectedCode(s, meta_class); + if (meta_class->qualifiedCppName().contains("Ssl")) { + s << "#endif" << endl; + } } void ShellImplGenerator::writeInjectedCode(QTextStream &s, const AbstractMetaClass *meta_class) diff --git a/generator/typesystem_core.xml b/generator/typesystem_core.xml index 431c5bd..0db002e 100644 --- a/generator/typesystem_core.xml +++ b/generator/typesystem_core.xml @@ -1163,12 +1163,7 @@ PyObject* data(QByteArray* b) { - if (b->data()) { - return PyString_FromStringAndSize(b->data(), b->size()); - } else { - Py_INCREF(Py_None); - return Py_None; - } + return PyString_FromStringAndSize(b->data(), b->size()); } @@ -1550,10 +1545,6 @@ - - - - diff --git a/generator/typesystem_gui.xml b/generator/typesystem_gui.xml index 414178b..a42a108 100644 --- a/generator/typesystem_gui.xml +++ b/generator/typesystem_gui.xml @@ -1098,6 +1098,12 @@ + + + + + + @@ -1260,6 +1266,27 @@ QImage* new_QImage( const uchar * data, int width, int height, QImage::Format fo memcpy(image->bits(), data, image->byteCount()); return image; } + +PyObject* bits(QImage* image) { + return PythonQtPrivate::wrapMemoryAsBuffer(image->bits(), image->bytesPerLine()* image->height()); +} + +#if QT_VERSION >= QT_VERSION_CHECK(4,7,0) +PyObject* constBits(QImage* image) { + return PythonQtPrivate::wrapMemoryAsBuffer(image->constBits(), image->byteCount()); +} +#endif + +PyObject* scanLine(QImage* image, int line) { + return PythonQtPrivate::wrapMemoryAsBuffer(image->scanLine(line), image->bytesPerLine()); +} + +#if QT_VERSION >= QT_VERSION_CHECK(4,7,0) +PyObject* constScanLine(QImage* image, int line) { + return PythonQtPrivate::wrapMemoryAsBuffer(image->constScanLine(line), image->bytesPerLine()); +} +#endif +