summaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorLiang Qi <liang.qi@theqtcompany.com>2016-02-15 20:43:25 +0100
committerLiang Qi <liang.qi@theqtcompany.com>2016-02-15 20:43:25 +0100
commit05808fb8b011c760a2af6dd520b781447db4a0ba (patch)
tree2319d622b05c7ff70e2e3874ace5ecd0aec75531 /tools
parent307cd0ed678b37395f02bfb11fd58f8d000da6af (diff)
parent450651e8155bbdec44253a9c282ec385257b2f8a (diff)
downloadqtactiveqt-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.cpp34
-rw-r--r--tools/testcon/invokemethod.cpp2
-rw-r--r--tools/testcon/main.cpp20
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);