aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Fix RuntimeError: dictionary changed size during iterationJulien Schueller2019-07-191-1/+1
| | | | | | | | Seems the dictionary of modules needs to be copied before iterating Fixes https://github.com/spyder-ide/qtpy/issues/195 Change-Id: I8517e031c4a250856d3318b364b1cd5dab3f8f80 Reviewed-by: Christian Tismer <tismer@stackless.com>
* Merge "Merge remote-tracking branch 'origin/5.12' into 5.13"Alex Blasche2019-07-1857-294/+773
|\
| * Merge remote-tracking branch 'origin/5.12' into 5.13Alex Blasche2019-07-1857-294/+773
| |\ |/ / | | | | Change-Id: Ic2c43ef80769e3063dac771518c803861510f72e
| * Cleanup signature module before substantial changeChristian Tismer2019-07-179-277/+562
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There were some refinements applied while developing "Support Pointer Primitive Types by Arrays or Result Tuples". This patch moves these changes out which are not essential for that patch. They include - sort all mapping groups by name - replace huge regex by a pattern generator - replace dictionary string entries by SimpleNameSpace - improve PEP 563 handling - simplify "zero(sometype)" substantially - better handling of "QGenericMatrix" (preview) A test for the generated pattern against a reference parser was added. Task-number: PYSIDE-795 Task-number: PYSIDE-951 Change-Id: I5a6b236850c63a7db77b7f7b88881486fd1e61be Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
| * Change QtQml tests file permissions to 644Cristián Maureira-Fredes2019-07-1734-0/+0
| | | | | | | | | | Change-Id: I0447da5e1ace3f6acc930aa4296576ec447f1be5 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
| * Add optional support for types in QSettings::valueCristián Maureira-Fredes2019-07-176-8/+145
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This add an optional named parameter to the function value() to automatically cast the type that is being returned by the function. An example of this situation could be an ini file that contains the value of a one-element list: settings.setValue('var', ['a']) The the ini file will be: [General] var=a # we cannot know that this is a list! Once we read it, we could specify if we want the default behavior, a str, or to cast the output to a list. settings.value('var') # Will get "a" settings.value('var', type=list) # Will get ["a"] The cppgenerator was modified to add a verification step before trying to get the named parameter, since it could be optional and having one named parameter was assumming that all of them were provided. Change-Id: I8f379debea86b42cf89019d432e990084c9e6614 Fixes: PYSIDE-1010 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Christian Tismer <tismer@stackless.com>
| * Use PyInstaller version 3.4Cristian Maureira-Fredes2019-07-161-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | The newest version, 3.5, seems to have an issue related to out test, which sadly is making the test to fail. Until this is not figured out, let's use 3.4 to avoid other patches to be merged. Change-Id: I71e8aa616dff37b6c5b2552711140c0c0bf10d21 Reviewed-by: Christian Tismer <tismer@stackless.com>
| * shiboken: Improve handling of pointer types for CONVERTTOCPP in injected codeFriedemann Kleint2019-07-134-4/+47
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Code snippets like: QByteArray *cppSelf = %CONVERTTOCPP[QByteArray *](obj); cause an assert in shiboken since the '*' is captured into the target of the assignment and is not considered part of the type. Make the error message a bit clearer and add documentation. Fixes: PYSIDE-1037 Change-Id: Ie8da2f57ba91325ea677e1a00852e91726c0e09b Reviewed-by: Christian Tismer <tismer@stackless.com>
| * wheel_tester.py: Add a command line option to disable wheel installationFriedemann Kleint2019-07-121-4/+12
| | | | | | | | | | | | | | This is useful when testing in a local developer build. Change-Id: Ib875dabd21d437951d3909030b47805b807fac9d Reviewed-by: Christian Tismer <tismer@stackless.com>
| * shiboken: List location of anonymous structs in rejected classesFriedemann Kleint2019-07-082-0/+5
| | | | | | | | | | | | | | | | Anonymous structs showed up as mysterious, empty entries in mjb_rejected_classes.log. Output the location. Change-Id: I0754e426a9fff3d1dac03aa587747ab0d7816df5 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* | Add missing space after comma according to style guidePaul Wicking2019-07-171-4/+4
| | | | | | | | | | Change-Id: I66b59ef11aa268e17434832f69af4e2e27146286 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* | Merge "Merge remote-tracking branch 'origin/5.12' into 5.13"Friedemann Kleint2019-07-0512-2960/+3151
|\ \
| * \ Merge remote-tracking branch 'origin/5.12' into 5.13Friedemann Kleint2019-07-0512-2960/+3151
| |\ \ |/ / / | | _ | | Change-Id: I3b3285a4e0315aea8da0426f179515866f53a7f8
| * Add support for parameterNames in SignalsCristian Maureira-Fredes2019-07-046-5/+161
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There were many uses cases when a proper interaction between Python and Qml was needed, one of them was the case to emit signals from Python an get those values via an argument name in QML. A simple example describing this situation can be found in PYSIDE-634: Python: sumResult = Signal(int, arguments=["sum"]) sumResult.emit(42) Qml: onSumResult: console.log(sum) // will print 42 A test case based on the same example was added. Change-Id: I0908f97d88eaadc0c02d81bc4daca936f72f6c6a Fixes: PYSIDE-634 Reviewed-by: Christian Tismer <tismer@stackless.com>
| * PySide2/QtCore: Remove duplicated type entry for "bool"Friedemann Kleint2019-07-041-1/+0
| | | | | | | | | | | | | | Another entry with converters exists a few lines below. Change-Id: Id1de3835e42869a55e0bf865aa992f38748f2e88 Reviewed-by: Christian Tismer <tismer@stackless.com>
| * shiboken: Move typesystem parser out of typesystem.cppFriedemann Kleint2019-07-045-2954/+2990
| | | | | | | | | | | | | | | | The file is too large to be maintainable. Task-number: PYSIDE-1024 Change-Id: I9e95ede1b7e7ce804059ef510dcec9dc9e773a48 Reviewed-by: Christian Tismer <tismer@stackless.com>
* | Merge "Merge remote-tracking branch 'origin/5.12' into 5.13"Friedemann Kleint2019-07-023-11/+8
|\ \
| * \ Merge remote-tracking branch 'origin/5.12' into 5.13Friedemann Kleint2019-07-023-11/+8
| |\ \ |/ / / | | _ | | Change-Id: I79d2166f18d8ed941c6c34fcbc7b185c2da02f0c
| * Leave QVariantMap as a name, not a typeCristian Maureira-Fredes2019-07-022-6/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The problem happened on the QtLocation module, when the QVariantMap argument was being used in several functions, and this type was declared as a primitive-type in QtCore. An approach to change the type to a container-type failed, because since QVariantMap is a typedef, is was already registered as a name associated to the definition QMap<QString, QVariant>. The solution was to register the name at the beginning of the module (like QVariantList), and remove the type declaration, leaving it only as a name. Previously, the wrongly generated code looked like this: Shiboken::Conversions::PrimitiveTypeConverter<QVariantList>() but with this patch, it looks like: SbkPySide2_QtLocationTypeConverters[SBK_QTLOCATION_QMAP_QSTRING_QVARIANT_IDX] which is the proper name established by the code on glue/qtcore.cpp: Shiboken::Conversions::registerConverterName(SbkPySide2_QtCoreTypeConverters[SBK_QTCORE_QMAP_QSTRING_QVARIANT_IDX], "QVariantMap"); Change-Id: Id172cf5b1e3ac784bc9497359279e81fcba1d8ec Fixes: PYSIDE-1028 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Christian Tismer <tismer@stackless.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
| * Update pyside2-tools submoduleFriedemann Kleint2019-07-011-0/+0
| | | | | | | | | | | | Task-number: PYSIDE-1020 Change-Id: Iab80959720e1fd98090cd7793ff31cdee1f3911c Reviewed-by: Christian Tismer <tismer@stackless.com>
| * Fix qApp import of QCoreApplicationChristian Tismer2019-06-281-5/+7
| | | | | | | | | | | | | | | | | | | | The qApp fix for embedding has a recursion bug when QCoreApplication is imported. This patch avoids imports altogether and uses the already captured module, instead. Change-Id: I1af7293a31840f6b09f8611446f6f35952dedd21 Reviewed-by: Milian Wolff <milian.wolff@kdab.com>
* | Update pyside2-tools submoduleFriedemann Kleint2019-07-021-0/+0
| | | | | | | | | | | | Task-number: PYSIDE-1020 Change-Id: I17e517e0b03d717b5f38c14900feafbf9099d37b Reviewed-by: Christian Tismer <tismer@stackless.com>
* | Merge "Merge remote-tracking branch 'origin/5.12' into 5.13"Friedemann Kleint2019-06-26336-24401/+819
|\ \
| * \ Merge remote-tracking branch 'origin/5.12' into 5.13Friedemann Kleint2019-06-26336-24401/+819
| |\ \ |/ / / | | _ | | Change-Id: I5bfa45782938d3bf43e16164f1ecd69f53bfcf8e
| * shiboken: Fix various clang warningsFriedemann Kleint2019-06-2531-153/+151
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Avoid copying complex types by using const ref - Use isEmpty() to check for container emptyness - Use range-based for - Use Q_DISABLE_COPY in 'public:' area - Fix spelling error - Use '= default' for trivial constructors/destructors - Remove non-null checks before deletion - Fix misleading indentation - Fix else after return - Simplify boolean expressions - Fix unused parameters, streamline code Change-Id: I8c6cadd8653e220ba8e5bdb4dd55524d13a81768 Reviewed-by: Christian Tismer <tismer@stackless.com>
| * shiboken: Replace C-style casts by C++ castsFriedemann Kleint2019-06-256-20/+19
| | | | | | | | | | | | | | | | Also change some reinterpret_cast<> to static_cast<> and use standard types for pointer arithmetics. Change-Id: Iafeeab5abffbca87d6f9767da9836bac342058c2 Reviewed-by: Christian Tismer <tismer@stackless.com>
| * shiboken: Replace 'typedef' by 'using'Friedemann Kleint2019-06-2543-145/+133
| | | | | | | | | | | | | | | | Apply Fixits by Qt Creator with some amendments. Remove iterator types by using auto instead. Change-Id: I8a75323da6ae5cdcc6b67af8be9376408953986b Reviewed-by: Christian Tismer <tismer@stackless.com>
| * shiboken: Introduce autoFriedemann Kleint2019-06-2521-128/+127
| | | | | | | | | | | | | | Apply Fixits by Qt Creator with some amendments. Change-Id: Ib2be1012ef7e8a2ad0e6cd130371bf1e941c4264 Reviewed-by: Christian Tismer <tismer@stackless.com>
| * shiboken: Introduce nullptrFriedemann Kleint2019-06-2565-278/+278
| | | | | | | | | | | | | | Apply Fixits by Qt Creator with some amendments. Change-Id: Ie8300ddb834adb8b649324562f2c912a4e8cf4ce Reviewed-by: Christian Tismer <tismer@stackless.com>
| * Cleanup pointer and trailing whitespace (omissions)Christian Tismer2019-06-2524-82/+82
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The "Cleanup pointer whitespace" patch was augmented by some C++11 changes. Unfortunately, this was done in the same commit, and so some old whitespace that was removed could re-appear invisibly, since it was in the original version. This fix tries to remove all trailing whitespace and also adds a few " *" corrections that were lost. The "type *" entries in XML files were changed back to "type*". Change-Id: Ic5c945ad64a47455fb15eebdf184b126af5ecd1d Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
| * Remove left-over C++ example snippetsFriedemann Kleint2019-06-25207-23560/+0
| | | | | | | | | | | | Change-Id: I15d5c647e68344ae4a05898be6d8a334cf25f3b4 Reviewed-by: Christian Tismer <tismer@stackless.com>
| * shiboken: Introduce member initializationFriedemann Kleint2019-06-2515-35/+29
| | | | | | | | | | | | | | | | | | Use member initialization, use default bodies for constructors. Initialize missing members as reported by clang. Change-Id: Ibc51e46a37b310912ec8f274543092dfdda78e1b Reviewed-by: Christian Tismer <tismer@stackless.com>
* | Add changelog for 5.13.0Cristián Maureira-Fredes2019-06-241-0/+33
| | | | | | | | | | Change-Id: Ic9038d04d1fe47d213a598e7300fc2d780e25e0c Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* | Merge "Merge remote-tracking branch 'origin/5.12' into 5.13"Friedemann Kleint2019-06-2489-2577/+2800
|\ \
| * \ Merge remote-tracking branch 'origin/5.12' into 5.13Friedemann Kleint2019-06-2489-2577/+2800
| |\ \ |/ / / | | _ | | Change-Id: Ia09beccd944e1276caa6aecbeb248e69917b7115
| * shiboken: Fix out of bounds string accessFriedemann Kleint2019-06-241-1/+1
| | | | | | | | | | | | | | | | | | | | | | Fix warning: (shiboken) Using QCharRef with an index pointing outside the valid range of a QString. The corresponding behavior is deprecated, and will be changed in a future version of Qt. introduced by qtbase/c2d2757bccc68e1b981df059786c2e76f2969530 (5.14). This happens when endPos is modified by the prior call to parseType(). Change-Id: I3b81e674c0aa118bd003aa25d8c61d89d772366f Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
| * Add script to generate changelogsCristian Maureira-Fredes2019-06-171-0/+219
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This tool generate the changelog for the Qt for Python project. Since the structure is different from other Qt project, this script split the changes between the ones to shiboken, and pyside. A shiboken change must contain the word "shiboken" in the title, everything else will be consider a "pyside" change. The only reported commits are the one associated with a certain task: Fixes or Task-number. The option accepts tags, branches or SHAs. Usage: python create_changelog.py -v v5.12.0..v5.12.1 -r 5.12.1 python create_changelog.py -v v5.11.4..5.13.0 -r 5.13.0 -t minor python create_changelog.py -v 9e13465a..5.12 -r 5.12 python create_changelog.py -v 5.17..6.0 -r 6.0 -t major The availables arguments are the following: -d DIRECTORY, --directory DIRECTORY Repository directory, the current one is default. -v VERSIONS, --versions VERSIONS Tags, branches, or SHA to compare e.g.: v5.12.1..5.12 v5.12.0..v5.12.1 cebc32a5..5.12 -r RELEASE, --release RELEASE Release version: e.g.: 5.12.4 -t TYPE, --type TYPE Release type: bug-fix (default), minor, or major There was an issue related to commits that were found twice, having no task number on the second time. Added type annotations for the functions. Sorted the changelog by task-number. Change-Id: Ia283864fa8add03e136afd75fe7a139ce7e190d8 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
| * Cleanup pointer whitespace everywhereChristian Tismer2019-06-2487-2576/+2580
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Among other files to fix, basewrapper.(cpp|h) was full of uncommon pointer whitespace. After fixing that, I could not resist and fixed also libshiboken, generators, and after acceptance also PySide. Most of the time, this regex worked fine (\w\w+)([*&]+)[ ]*(?![&*]*[/=]) replaced with \1 \2 but everything was checked by hand. I did not touch the shiboken tests which are quite hairy. It turned out that inserting a space between a variable and asterisk causes a crash of shiboken, if the same line contains "CONVERTTOCPP". This was temporarily fixed by adding another space after it. Example.. sources/pyside2/PySide2/glue/qtcore.cpp line 977 QByteArray * cppSelf = %CONVERTTOCPP[QByteArray *](obj); //XXX /|\ omitting this space crashes shiboken! cppgenerator.cpp was special, since it was modified to _generate_ correct pointer whitespace. This caused a few testcases to fail, which had to be adjusted, again. This was difficult since some internal names must end on "*" and generated code normally not. Removing the last errors involved binary search on path sets... Apply C++ 11 fixits to the changed code, where applicable. Done-with: Friedemann.Kleint@qt.io Task-number: PYSIDE-1037 Change-Id: I4ac070f52c5efb296c05d581c9d46e6f397a6c81 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* | Doc: Fix minor issuesVenugopal Shivashankar2019-06-193-6/+8
| | | | | | | | | | | | | | | | | | - Removed links to old qml tutorials - Fixed a note with overflowing text - Fixed the order of chapters list in a tutorial Change-Id: Ic42c35271dd161235ed8b08f596100e104f6139e Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* | Doc: Fix typoVenugopal Shivashankar2019-06-131-1/+1
| | | | | | | | | | | | | | | | Change-Id: I1aebb1c1b680e92506274033285807d21c7b862b Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* | Merge "Merge remote-tracking branch 'origin/5.12' into 5.13"Friedemann Kleint2019-06-201-2/+3
|\ \
| * \ Merge remote-tracking branch 'origin/5.12' into 5.13Friedemann Kleint2019-06-201-2/+3
| |\ \ |/ / / | | _ | | Change-Id: Id64bec735875c78c8c7d50a38d4cae63b84b2813
| * Use default compiler on macOSCristián Maureira-Fredes2019-06-191-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | While building on macOS the detection of the compiler properly works, but at the time of getting the header libraries we rely on the command: <compiler> -E -x c++ - -v The problem is that since CMake resolves the full path of the compiler we do not properly get the includes that we should, calling the compiler directly via an absolute path (and not via the /usr/bin/clang shim) does not include the default SDK sysroot path. Here is an extract of both executions: * /Library/Developer/CommandLineTools/usr/bin/c++ -E -x c++ - -v #include <...> search starts here: /Library/Developer/CommandLineTools/usr/include/c++/v1 /usr/local/include /Library/Developer/CommandLineTools/usr/lib/clang/10.0.1/include /Library/Developer/CommandLineTools/usr/include /System/Library/Frameworks (framework directory) /Library/Frameworks (framework directory) End of search list. * c++ -E -x c++ - -v #include <...> search starts here: /usr/local/include /Library/Developer/CommandLineTools/usr/include/c++/v1 /Library/Developer/CommandLineTools/usr/lib/clang/10.0.1/include /Library/Developer/CommandLineTools/usr/include /Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/usr/include /Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/System/Library/Frameworks (framework directory) End of search list. Change-Id: Iff300b3b543f5fb3a43f9ce1ea8986f9bc172323 Fixes: PYSIDE-1032 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io> Reviewed-by: Christian Tismer <tismer@stackless.com>
* | Unpin wheel packageSimo Fält2019-06-183-13/+2
| | | | | | | | | | | | | | | | The fix we were waiting for has landed to released wheel package. Change-Id: I1d83be7cd9662ca2e076e9c03c03c38f1b0c9ecb Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* | Example: Move the SQL statementsVenugopal Shivashankar2019-06-183-57/+61
| | | | | | | | | | | | | | | | | | | | | | Moving the SQL statements into separate variables outside the scope of the 'init_db' function, improves readability. Change-Id: I716dfceef6dc343287afab17f74e8de7fae618c6 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io> Reviewed-by: Paul Wicking <paul.wicking@qt.io> Reviewed-by: Christian Tismer <tismer@stackless.com>
* | Merge "Merge remote-tracking branch 'origin/5.12' into 5.13"Friedemann Kleint2019-06-1926-138/+398
|\ \
| * \ Merge remote-tracking branch 'origin/5.12' into 5.13Friedemann Kleint2019-06-1926-138/+398
| |\ \ |/ / / | | _ | | Change-Id: I42955abfeb1fe8b7c6443a9b334154984286b9cc
| * Fix type name for lookup of QFlags<> convertersFriedemann Kleint2019-06-181-8/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For enum/flags registration, the converters were registered under invalid names like: Shiboken::Conversions::registerConverterName(converter, "QFlags<QFlags<QUrl::ComponentFormattingOption>"); Shiboken::Conversions::registerConverterName(converter, "QFlags<ComponentFormattingOption>"); In addition, QFlags<> is not used for type names in Python. Use the flags name as specified in the typesystem instead: Shiboken::Conversions::registerConverterName(converter, "QUrl::ComponentFormattingOptions"); Shiboken::Conversions::registerConverterName(converter, "ComponentFormattingOptions"); Change-Id: I79525643850bf4296516dfb9576f75b51adf6414 Fixes: PYSIDE-1029 Reviewed-by: Christian Tismer <tismer@stackless.com>
| * shiboken: Generate code for smart pointers only within declaring packageFriedemann Kleint2019-06-131-2/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Check on the type entry whether code needs to be generated in the current package. Fixes: PYSIDE-1024 Change-Id: I82132b077ac6192b96d979cb5596d0e6fecbc76b Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
| * Support the qApp macro in "scriptable application"Christian Tismer2019-06-175-15/+47
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Renamed from "Fix scriptable application to support the qApp macro" because qApp was improved instead of scriptable application. The qApp macro needed some extra effort to support the qApp "macro" which is only defined in the Python wrappers. I took some generated code, created a QApplication instance in Python and used then reduced generated code to get at the object and adjust the refcount. This solution was then rejected, because I can do better, and in fact, scriptable application now has a correct qApp macro too, without any change to scriptable application. The central idea was to look into the module init function at import time and to see if a Q*Application already exists. I was not aware of that import. Many thanks for the rejection! :-) Update.. -------- After many attempts to make the qApp variable correctly behave like always, I recognized that pre-existing Q*Application instances have no wrappers or constructors at all! With that, it is not possible to create a sophisticated qApp macro as a singleton variable in the desired way. Fortunately, this is also not necessary, because a C++ Q*Application cannot be deleted from Python, and there is no point in supporting more that a simple variable. So in case of a pre-existing instance, the qApp variable now gets redirected to that instance. A small test was added to application_test.py that is triggered by an import. A weird effect when "qApp" was typed interactively before calling "QApplication()" was fixed, too. Change-Id: Ic69dd6a21c964838a90f63e316d299b62a54d612 Fixes: PYSIDE-571 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>