diff options
author | Kai Koehne <kai.koehne@nokia.com> | 2011-09-19 10:56:12 +0200 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2011-09-19 16:37:51 +0200 |
commit | 9a096d9eb078f83b1e6f934ebaf863145f067fbc (patch) | |
tree | 45e811e81566f6274b2b8341d3549347538ffb80 /src/corelib/kernel | |
parent | 86ad092dff995f10d30022bb4e4a8955063dc3d1 (diff) |
Move handling of -qmljsdebugger argument to QCoreApplication
Move handling of -qmljsdebugger= argument from QApplication
to QCoreApplication. It makes sense to allow debugging also
for applications based on QCoreApplication (which we intend
to support in QtDeclarative).
Change-Id: I5a03a4510fc166cea5aad146da673ee0e7cd5d36
Reviewed-on: http://codereview.qt-project.org/5121
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Kent Hansen <kent.hansen@nokia.com>
Diffstat (limited to 'src/corelib/kernel')
-rw-r--r-- | src/corelib/kernel/qcoreapplication.cpp | 24 | ||||
-rw-r--r-- | src/corelib/kernel/qcoreapplication_p.h | 4 |
2 files changed, 28 insertions, 0 deletions
diff --git a/src/corelib/kernel/qcoreapplication.cpp b/src/corelib/kernel/qcoreapplication.cpp index d716c7b0f6..d7fb9d3270 100644 --- a/src/corelib/kernel/qcoreapplication.cpp +++ b/src/corelib/kernel/qcoreapplication.cpp @@ -210,6 +210,28 @@ bool QCoreApplicationPrivate::checkInstance(const char *function) return b; } +void QCoreApplicationPrivate::processCommandLineArguments() +{ + int j = argc ? 1 : 0; + for (int i = 1; i < argc; ++i) { + if (argv[i] && *argv[i] != '-') { + argv[j++] = argv[i]; + continue; + } + QByteArray arg = argv[i]; + if (arg.startsWith("-qmljsdebugger=")) { + qmljs_debug_arguments = QString::fromLocal8Bit(arg.right(arg.length() - 15)); + } else { + argv[j++] = argv[i]; + } + } + + if (j < argc) { + argv[j] = 0; + argc = j; + } +} + // Support for introspection QSignalSpyCallbackSet Q_CORE_EXPORT qt_signal_spy_callback_set = { 0, 0, 0, 0 }; @@ -674,6 +696,8 @@ void QCoreApplication::init() } #endif + d->processCommandLineArguments(); + qt_startup_hook(); } diff --git a/src/corelib/kernel/qcoreapplication_p.h b/src/corelib/kernel/qcoreapplication_p.h index 0914b24a16..d61a5a1bf5 100644 --- a/src/corelib/kernel/qcoreapplication_p.h +++ b/src/corelib/kernel/qcoreapplication_p.h @@ -141,6 +141,10 @@ public: static uint attribs; static inline bool testAttribute(uint flag) { return attribs & (1 << flag); } static int app_compile_version; + + void processCommandLineArguments(); + QString qmljs_debug_arguments; // a string containing arguments for js/qml debugging. + inline QString qmljsDebugArgumentsString() { return qmljs_debug_arguments; } }; QT_END_NAMESPACE |