diff options
author | Liang Qi <liang.qi@theqtcompany.com> | 2016-02-15 20:43:25 +0100 |
---|---|---|
committer | Liang Qi <liang.qi@theqtcompany.com> | 2016-02-15 20:43:25 +0100 |
commit | 05808fb8b011c760a2af6dd520b781447db4a0ba (patch) | |
tree | 2319d622b05c7ff70e2e3874ace5ecd0aec75531 /tools | |
parent | 307cd0ed678b37395f02bfb11fd58f8d000da6af (diff) | |
parent | 450651e8155bbdec44253a9c282ec385257b2f8a (diff) | |
download | qtactiveqt-05808fb8b011c760a2af6dd520b781447db4a0ba.tar.gz |
Merge remote-tracking branch 'origin/5.6' into 5.7v5.7.0-alpha1
Conflicts:
.qmake.conf
Change-Id: I06247d29c4b05020e91bb377a7f93e5374184f47
Diffstat (limited to 'tools')
-rw-r--r-- | tools/dumpcpp/main.cpp | 34 | ||||
-rw-r--r-- | tools/testcon/invokemethod.cpp | 2 | ||||
-rw-r--r-- | tools/testcon/main.cpp | 20 |
3 files changed, 43 insertions, 13 deletions
diff --git a/tools/dumpcpp/main.cpp b/tools/dumpcpp/main.cpp index 981039a..aa96d8c 100644 --- a/tools/dumpcpp/main.cpp +++ b/tools/dumpcpp/main.cpp @@ -65,6 +65,9 @@ enum ObjectCategory Licensed = 0x100, }; +Q_DECLARE_FLAGS(ObjectCategories, ObjectCategory) +Q_DECLARE_OPERATORS_FOR_FLAGS(ObjectCategories) + extern QMetaObject *qax_readEnumInfo(ITypeLib *typeLib, const QMetaObject *parentObject); extern QMetaObject *qax_readClassInfo(ITypeLib *typeLib, ITypeInfo *typeInfo, const QMetaObject *parentObject); extern QMetaObject *qax_readInterfaceInfo(ITypeLib *typeLib, ITypeInfo *typeInfo, const QMetaObject *parentObject); @@ -149,7 +152,9 @@ QByteArray constRefify(const QByteArray &type) return ctype; } -void generateClassDecl(QTextStream &out, const QString &controlID, const QMetaObject *mo, const QByteArray &className, const QByteArray &nameSpace, ObjectCategory category) +void generateClassDecl(QTextStream &out, const QString &controlID, const QMetaObject *mo, + const QByteArray &className, const QByteArray &nameSpace, + ObjectCategories category) { QList<QByteArray> functions; @@ -409,7 +414,7 @@ void generateClassDecl(QTextStream &out, const QString &controlID, const QMetaOb if (slotSignature.endsWith("()")) { // no parameters - no names slotNamedSignature = slotSignature; } else { - slotNamedSignature = slotSignature.left(slotSignature.indexOf('(') + 1); + slotNamedSignature.truncate(slotSignature.indexOf('(') + 1); QByteArray slotSignatureTruncated(slotSignature.mid(slotNamedSignature.length())); slotSignatureTruncated.truncate(slotSignatureTruncated.length() - 1); @@ -684,7 +689,8 @@ void generateMethodParameters(QTextStream &out, const QMetaObject *mo, const QMe out << endl; } -void generateClassImpl(QTextStream &out, const QMetaObject *mo, const QByteArray &className, const QByteArray &nameSpace, ObjectCategory category) +void generateClassImpl(QTextStream &out, const QMetaObject *mo, const QByteArray &className, + const QByteArray &nameSpace, ObjectCategories category) { Q_STATIC_ASSERT_X(QMetaObjectPrivate::OutputRevision == 7, "dumpcpp should generate the same version as moc"); @@ -928,7 +934,7 @@ static QByteArrayList vTableOnlyStubsFromTypeLib(ITypeLib *typelib, const QStrin } bool generateTypeLibrary(QString typeLibFile, QString outname, - const QString &nameSpace, ObjectCategory category) + const QString &nameSpace, ObjectCategories category) { typeLibFile.replace(QLatin1Char('/'), QLatin1Char('\\')); @@ -1087,7 +1093,7 @@ bool generateTypeLibrary(QString typeLibFile, QString outname, QByteArray refTypeLib; if (refType.contains("::")) { refTypeLib = refType; - refType = refType.mid(refType.lastIndexOf("::") + 2); + refType.remove(0, refType.lastIndexOf("::") + 2); if (refTypeLib.contains(' ')) { refType = refTypeLib.left(refTypeLib.indexOf(' ')) + ' ' + refType; } @@ -1165,7 +1171,7 @@ bool generateTypeLibrary(QString typeLibFile, QString outname, TYPEKIND typekind; typelib->GetTypeInfoType(index, &typekind); - uint object_category = category; + ObjectCategories object_category = category; if (!(typeattr->wTypeFlags & TYPEFLAG_FCANCREATE)) object_category |= SubObject; else if (typeattr->wTypeFlags & TYPEFLAG_FCONTROL) @@ -1219,18 +1225,22 @@ bool generateTypeLibrary(QString typeLibFile, QString outname, if (typeattr->wTypeFlags & TYPEFLAG_FLICENSED) object_category |= Licensed; if (typekind == TKIND_COCLASS) { // write those later... - generateClassDecl(classesOut, guid.toString(), metaObject, className, libName.toLatin1(), (ObjectCategory)(object_category|NoInlines)); + generateClassDecl(classesOut, guid.toString(), metaObject, className, libName.toLatin1(), + object_category | NoInlines); classesOut << endl; } else { - generateClassDecl(declOut, guid.toString(), metaObject, className, libName.toLatin1(), (ObjectCategory)(object_category|NoInlines)); + generateClassDecl(declOut, guid.toString(), metaObject, className, libName.toLatin1(), + object_category | NoInlines); declOut << endl; } subtypes << className; - generateClassDecl(inlinesOut, guid.toString(), metaObject, className, libName.toLatin1(), (ObjectCategory)(object_category|OnlyInlines)); + generateClassDecl(inlinesOut, guid.toString(), metaObject, className, libName.toLatin1(), + object_category | OnlyInlines); inlinesOut << endl; } if (implFile.isOpen()) - generateClassImpl(classImplOut, metaObject, className, libName.toLatin1(), (ObjectCategory)object_category); + generateClassImpl(classImplOut, metaObject, className, libName.toLatin1(), + object_category); } currentTypeInfo = 0; } @@ -1411,7 +1421,7 @@ struct Options Options() : mode(GenerateMode), category(DefaultObject), dispatchEqualsIDispatch(false) {} ProgramMode mode; - uint category; + ObjectCategories category; bool dispatchEqualsIDispatch; QString outname; @@ -1594,7 +1604,7 @@ int main(int argc, char **argv) return -2; } - if (!generateTypeLibrary(typeLib, options.outname, options.nameSpace, (ObjectCategory)options.category)) { + if (!generateTypeLibrary(typeLib, options.outname, options.nameSpace, options.category)) { qWarning("dumpcpp: error processing type library '%s'", qPrintable(typeLib)); return -1; } diff --git a/tools/testcon/invokemethod.cpp b/tools/testcon/invokemethod.cpp index d8cafb3..92c7a91 100644 --- a/tools/testcon/invokemethod.cpp +++ b/tools/testcon/invokemethod.cpp @@ -109,7 +109,7 @@ void InvokeMethod::on_comboMethods_activated(const QString &method) const QMetaObject *mo = activex->metaObject(); const QMetaMethod slot = mo->method(mo->indexOfSlot(method.toLatin1())); QString signature = QString::fromLatin1(slot.methodSignature()); - signature = signature.mid(signature.indexOf(QLatin1Char('(')) + 1); + signature.remove(0, signature.indexOf(QLatin1Char('(')) + 1); signature.truncate(signature.length()-1); QList<QByteArray> pnames = slot.parameterNames(); diff --git a/tools/testcon/main.cpp b/tools/testcon/main.cpp index 7891452..cce315c 100644 --- a/tools/testcon/main.cpp +++ b/tools/testcon/main.cpp @@ -44,6 +44,15 @@ QAXFACTORY_DEFAULT(MainWindow, QT_USE_NAMESPACE +static bool isOptionSet(int argc, char *argv[], const char *option) +{ + for (int i = 1; i < argc; ++i) { + if (!qstrcmp(argv[i], option)) + return true; + } + return false; +} + static void redirectDebugOutput(QtMsgType, const QMessageLogContext &, const QString &msg) { if (MainWindow *mainWindow = MainWindow::instance()) @@ -52,6 +61,11 @@ static void redirectDebugOutput(QtMsgType, const QMessageLogContext &, const QSt int main( int argc, char **argv ) { + if (isOptionSet(argc, argv, "--no-scaling")) + QCoreApplication::setAttribute(Qt::AA_DisableHighDpiScaling); + if (isOptionSet(argc, argv, "--no-native-siblings")) + QCoreApplication::setAttribute(Qt::AA_DontCreateNativeWidgetSiblings); + QApplication app( argc, argv ); QCoreApplication::setApplicationName(QLatin1String("TestCon")); QCoreApplication::setOrganizationName(QLatin1String("QtProject")); @@ -67,6 +81,12 @@ int main( int argc, char **argv ) QCommandLineOption noMessageHandlerOption(QLatin1String("no-messagehandler"), QLatin1String("Suppress installation of the message handler.")); parser.addOption(noMessageHandlerOption); + QCommandLineOption noScalingDummy(QLatin1String("no-scaling"), + QLatin1String("Set Qt::AA_DisableHighDpiScaling.")); + parser.addOption(noScalingDummy); + QCommandLineOption noNativeSiblingsDummy(QLatin1String("no-native-siblings"), + QLatin1String("Set Qt::AA_DontCreateNativeWidgetSiblings.")); + parser.addOption(noNativeSiblingsDummy); parser.addPositionalArgument(QLatin1String("clsid/file"), QLatin1String("The clsid/file to show.")); parser.process(app); |