diff options
author | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2019-10-08 08:17:29 +0200 |
---|---|---|
committer | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2019-10-08 08:17:29 +0200 |
commit | 66a0fa21efb94ac7cc16032213c91a33c0670e2f (patch) | |
tree | 622759bac23da5d32d06aaa56805570698c10cdf | |
parent | 9698a678937c3dfd23e38b890a29b16ad6885d96 (diff) | |
parent | e2774ff5350fa94352858672aa165a8ff22aa3b1 (diff) |
Merge remote-tracking branch 'origin/5.13' into 5.14
Change-Id: Ibe15176ae36ea31bd1799d9bf8a39b57f9338ca0
71 files changed, 274 insertions, 7 deletions
diff --git a/examples/3d/3d.pyproject b/examples/3d/3d.pyproject new file mode 100644 index 000000000..4c85ba5a4 --- /dev/null +++ b/examples/3d/3d.pyproject @@ -0,0 +1,3 @@ +{ + "files": ["simple3d.py"] +} diff --git a/examples/axcontainer/axcontainer.pyproject b/examples/axcontainer/axcontainer.pyproject new file mode 100644 index 000000000..b054d6f18 --- /dev/null +++ b/examples/axcontainer/axcontainer.pyproject @@ -0,0 +1,3 @@ +{ + "files": ["axviewer.py"] +} diff --git a/examples/charts/charts.pyproject b/examples/charts/charts.pyproject new file mode 100644 index 000000000..a4e6c01c1 --- /dev/null +++ b/examples/charts/charts.pyproject @@ -0,0 +1,3 @@ +{ + "files": ["percentbarchart.py", "donutbreakdown.py", "legend.py", "nesteddonuts.py", "modeldata.py", "lineandbar.py", "memoryusage.py", "callout.py", "audio.py"] +} diff --git a/examples/charts/chartthemes/chartthemes.pyproject b/examples/charts/chartthemes/chartthemes.pyproject new file mode 100644 index 000000000..4a0b38795 --- /dev/null +++ b/examples/charts/chartthemes/chartthemes.pyproject @@ -0,0 +1,3 @@ +{ + "files": ["main.py", "README.md", "themewidget.ui"] +} diff --git a/examples/corelib/threads/threads.pyproject b/examples/corelib/threads/threads.pyproject new file mode 100644 index 000000000..254aabec0 --- /dev/null +++ b/examples/corelib/threads/threads.pyproject @@ -0,0 +1,3 @@ +{ + "files": ["mandelbrot.py"] +} diff --git a/examples/corelib/tools/codecs/codecs.pyproject b/examples/corelib/tools/codecs/codecs.pyproject new file mode 100644 index 000000000..72237d60b --- /dev/null +++ b/examples/corelib/tools/codecs/codecs.pyproject @@ -0,0 +1,3 @@ +{ + "files": ["codecs.py"] +} diff --git a/examples/corelib/tools/settingseditor/settingseditor.pyproject b/examples/corelib/tools/settingseditor/settingseditor.pyproject new file mode 100644 index 000000000..9eb637af2 --- /dev/null +++ b/examples/corelib/tools/settingseditor/settingseditor.pyproject @@ -0,0 +1,3 @@ +{ + "files": ["settingseditor.py"] +} diff --git a/examples/corelib/tools/tools.pyproject b/examples/corelib/tools/tools.pyproject new file mode 100644 index 000000000..63f9c6198 --- /dev/null +++ b/examples/corelib/tools/tools.pyproject @@ -0,0 +1,3 @@ +{ + "files": ["regexp.py"] +} diff --git a/examples/datavisualization/datavisualization.pyproject b/examples/datavisualization/datavisualization.pyproject new file mode 100644 index 000000000..415133f09 --- /dev/null +++ b/examples/datavisualization/datavisualization.pyproject @@ -0,0 +1,3 @@ +{ + "files": ["bars3d.py"] +} diff --git a/examples/declarative/declarative.pyproject b/examples/declarative/declarative.pyproject new file mode 100644 index 000000000..e64c1d934 --- /dev/null +++ b/examples/declarative/declarative.pyproject @@ -0,0 +1,3 @@ +{ + "files": ["view.qml", "scrolling.py", "usingmodel.py"] +} diff --git a/examples/declarative/extending/chapter1-basics/chapter1-basics.pyproject b/examples/declarative/extending/chapter1-basics/chapter1-basics.pyproject new file mode 100644 index 000000000..869556bb8 --- /dev/null +++ b/examples/declarative/extending/chapter1-basics/chapter1-basics.pyproject @@ -0,0 +1,3 @@ +{ + "files": ["basics.py", "app.qml"] +} diff --git a/examples/declarative/extending/chapter2-methods/chapter2-methods.pyproject b/examples/declarative/extending/chapter2-methods/chapter2-methods.pyproject new file mode 100644 index 000000000..cdf33be7f --- /dev/null +++ b/examples/declarative/extending/chapter2-methods/chapter2-methods.pyproject @@ -0,0 +1,3 @@ +{ + "files": ["methods.py", "app.qml"] +} diff --git a/examples/declarative/extending/chapter3-bindings/chapter3-bindings.pyproject b/examples/declarative/extending/chapter3-bindings/chapter3-bindings.pyproject new file mode 100644 index 000000000..6e21f86f9 --- /dev/null +++ b/examples/declarative/extending/chapter3-bindings/chapter3-bindings.pyproject @@ -0,0 +1,3 @@ +{ + "files": ["app.qml", "bindings.py"] +} diff --git a/examples/declarative/extending/chapter4-customPropertyTypes/chapter4-customPropertyTypes.pyproject b/examples/declarative/extending/chapter4-customPropertyTypes/chapter4-customPropertyTypes.pyproject new file mode 100644 index 000000000..af1cfefb7 --- /dev/null +++ b/examples/declarative/extending/chapter4-customPropertyTypes/chapter4-customPropertyTypes.pyproject @@ -0,0 +1,3 @@ +{ + "files": ["app.qml", "customPropertyTypes.py"] +} diff --git a/examples/declarative/extending/chapter5-listproperties/chapter5-listproperties.pyproject b/examples/declarative/extending/chapter5-listproperties/chapter5-listproperties.pyproject new file mode 100644 index 000000000..a3f89d575 --- /dev/null +++ b/examples/declarative/extending/chapter5-listproperties/chapter5-listproperties.pyproject @@ -0,0 +1,3 @@ +{ + "files": ["app.qml", "listproperties.py"] +} diff --git a/examples/declarative/signals/pytoqml1/pytoqml1.pyproject b/examples/declarative/signals/pytoqml1/pytoqml1.pyproject new file mode 100644 index 000000000..e6f087cce --- /dev/null +++ b/examples/declarative/signals/pytoqml1/pytoqml1.pyproject @@ -0,0 +1,3 @@ +{ + "files": ["main.py", "view.qml"] +} diff --git a/examples/declarative/signals/qmltopy1/qmltopy1.pyproject b/examples/declarative/signals/qmltopy1/qmltopy1.pyproject new file mode 100644 index 000000000..e6f087cce --- /dev/null +++ b/examples/declarative/signals/qmltopy1/qmltopy1.pyproject @@ -0,0 +1,3 @@ +{ + "files": ["main.py", "view.qml"] +} diff --git a/examples/declarative/signals/qmltopy2/qmltopy2.pyproject b/examples/declarative/signals/qmltopy2/qmltopy2.pyproject new file mode 100644 index 000000000..e6f087cce --- /dev/null +++ b/examples/declarative/signals/qmltopy2/qmltopy2.pyproject @@ -0,0 +1,3 @@ +{ + "files": ["main.py", "view.qml"] +} diff --git a/examples/declarative/signals/qmltopy3/qmltopy3.pyproject b/examples/declarative/signals/qmltopy3/qmltopy3.pyproject new file mode 100644 index 000000000..e6f087cce --- /dev/null +++ b/examples/declarative/signals/qmltopy3/qmltopy3.pyproject @@ -0,0 +1,3 @@ +{ + "files": ["main.py", "view.qml"] +} diff --git a/examples/declarative/signals/qmltopy4/qmltopy4.pyproject b/examples/declarative/signals/qmltopy4/qmltopy4.pyproject new file mode 100644 index 000000000..e6f087cce --- /dev/null +++ b/examples/declarative/signals/qmltopy4/qmltopy4.pyproject @@ -0,0 +1,3 @@ +{ + "files": ["main.py", "view.qml"] +} diff --git a/examples/declarative/textproperties/textproperties.pyproject b/examples/declarative/textproperties/textproperties.pyproject new file mode 100644 index 000000000..e6f087cce --- /dev/null +++ b/examples/declarative/textproperties/textproperties.pyproject @@ -0,0 +1,3 @@ +{ + "files": ["main.py", "view.qml"] +} diff --git a/examples/macextras/macextras.pyproject b/examples/macextras/macextras.pyproject new file mode 100644 index 000000000..d559b7ca4 --- /dev/null +++ b/examples/macextras/macextras.pyproject @@ -0,0 +1,3 @@ +{ + "files": ["macpasteboardmime.py"] +} diff --git a/examples/multimedia/multimedia.pyproject b/examples/multimedia/multimedia.pyproject new file mode 100644 index 000000000..a0b8b441c --- /dev/null +++ b/examples/multimedia/multimedia.pyproject @@ -0,0 +1,3 @@ +{ + "files": ["player.py", "audiooutput.py", "camera.py"] +} diff --git a/examples/network/network.pyproject b/examples/network/network.pyproject new file mode 100644 index 000000000..44b9ec433 --- /dev/null +++ b/examples/network/network.pyproject @@ -0,0 +1,4 @@ +{ + "files": ["blockingfortuneclient.py", "fortuneserver.py", + "threadedfortuneserver.py", "fortuneclient.py"] +} diff --git a/examples/opengl/opengl.pyproject b/examples/opengl/opengl.pyproject new file mode 100644 index 000000000..12f435daf --- /dev/null +++ b/examples/opengl/opengl.pyproject @@ -0,0 +1,5 @@ +{ + "files": ["grabber.py", "samplebuffers.py", "hellogl.py", + "hellogl2.py", "contextinfo.py", "2dpainting.py", + "overpainting.py"] +} diff --git a/examples/opengl/textures/textures.pyproject b/examples/opengl/textures/textures.pyproject new file mode 100644 index 000000000..05416190a --- /dev/null +++ b/examples/opengl/textures/textures.pyproject @@ -0,0 +1,3 @@ +{ + "files": ["textures.qrc", "textures_rc.py", "textures.py"] +} diff --git a/examples/remoteobjects/modelview/modelview.pyproject b/examples/remoteobjects/modelview/modelview.pyproject new file mode 100644 index 000000000..0b3a1b5e3 --- /dev/null +++ b/examples/remoteobjects/modelview/modelview.pyproject @@ -0,0 +1,3 @@ +{ + "files": ["modelviewserver.py", "modelviewclient.py"] +} diff --git a/examples/script/script.pyproject b/examples/script/script.pyproject new file mode 100644 index 000000000..5beba8c3a --- /dev/null +++ b/examples/script/script.pyproject @@ -0,0 +1,3 @@ +{ + "files": ["README.md", "helloscript.py"] +} diff --git a/examples/texttospeech/texttospeech.pyproject b/examples/texttospeech/texttospeech.pyproject new file mode 100644 index 000000000..69fc13f90 --- /dev/null +++ b/examples/texttospeech/texttospeech.pyproject @@ -0,0 +1,3 @@ +{ + "files": ["texttospeech.py"] +} diff --git a/examples/tutorial/tutorial.pyproject b/examples/tutorial/tutorial.pyproject new file mode 100644 index 000000000..09478e108 --- /dev/null +++ b/examples/tutorial/tutorial.pyproject @@ -0,0 +1,5 @@ +{ + "files": ["t6.py", "t9.py", "t8.py", "t13.py", "t10.py", "t7.py", + "t3.py", "t4.py", "t1.py", "t12.py", "t2.py", "t5.py", + "t11.py", "t14.py"] +} diff --git a/examples/webenginequick/webenginequick.pyproject b/examples/webenginequick/webenginequick.pyproject new file mode 100644 index 000000000..dd9039229 --- /dev/null +++ b/examples/webenginequick/webenginequick.pyproject @@ -0,0 +1,3 @@ +{ + "files": ["quicknanobrowser.py", "browser.qml"] +} diff --git a/examples/webenginewidgets/webenginewidgets.pyproject b/examples/webenginewidgets/webenginewidgets.pyproject new file mode 100644 index 000000000..6bc12af6b --- /dev/null +++ b/examples/webenginewidgets/webenginewidgets.pyproject @@ -0,0 +1,3 @@ +{ + "files": ["simplebrowser.py"] +} diff --git a/examples/widgets/animation/animatedtiles/animatedtiles.pyproject b/examples/widgets/animation/animatedtiles/animatedtiles.pyproject new file mode 100644 index 000000000..08ee55685 --- /dev/null +++ b/examples/widgets/animation/animatedtiles/animatedtiles.pyproject @@ -0,0 +1,4 @@ +{ + "files": ["animatedtiles.qrc", "animatedtiles.py", + "animatedtiles_rc.py"] +} diff --git a/examples/widgets/animation/appchooser/appchooser.pyproject b/examples/widgets/animation/appchooser/appchooser.pyproject new file mode 100644 index 000000000..14bc351a1 --- /dev/null +++ b/examples/widgets/animation/appchooser/appchooser.pyproject @@ -0,0 +1,3 @@ +{ + "files": ["appchooser_rc.py", "appchooser.py", "appchooser.qrc"] +} diff --git a/examples/widgets/animation/easing/easing.pyproject b/examples/widgets/animation/easing/easing.pyproject new file mode 100644 index 000000000..2677e28ea --- /dev/null +++ b/examples/widgets/animation/easing/easing.pyproject @@ -0,0 +1,4 @@ +{ + "files": ["easing.qrc", "ui_form.py", "easing.py", "easing_rc.py", + "form.ui"] +} diff --git a/examples/widgets/animation/states/states.pyproject b/examples/widgets/animation/states/states.pyproject new file mode 100644 index 000000000..d94cf2e65 --- /dev/null +++ b/examples/widgets/animation/states/states.pyproject @@ -0,0 +1,3 @@ +{ + "files": ["states.py", "states_rc.py"] +} diff --git a/examples/widgets/dialogs/classwizard/classwizard.pyproject b/examples/widgets/dialogs/classwizard/classwizard.pyproject new file mode 100644 index 000000000..1c1fe9998 --- /dev/null +++ b/examples/widgets/dialogs/classwizard/classwizard.pyproject @@ -0,0 +1,4 @@ +{ + "files": ["classwizard.qrc", "classwizard.py", "classwizard_rc.py", + "classwizard_rc.pyc"] +} diff --git a/examples/widgets/dialogs/dialogs.pyproject b/examples/widgets/dialogs/dialogs.pyproject new file mode 100644 index 000000000..001fd141b --- /dev/null +++ b/examples/widgets/dialogs/dialogs.pyproject @@ -0,0 +1,4 @@ +{ + "files": ["findfiles.py", "standarddialogs.py", "extension.py", + "trivialwizard.py"] +} diff --git a/examples/widgets/draganddrop/draggabletext/draggabletext.pyproject b/examples/widgets/draganddrop/draggabletext/draggabletext.pyproject new file mode 100644 index 000000000..0d422076e --- /dev/null +++ b/examples/widgets/draganddrop/draggabletext/draggabletext.pyproject @@ -0,0 +1,4 @@ +{ + "files": ["draggabletext_rc.py", "words.txt", "draggabletext.qrc", + "draggabletext.py"] +} diff --git a/examples/widgets/effects/effects.pyproject b/examples/widgets/effects/effects.pyproject new file mode 100644 index 000000000..c64fe46d4 --- /dev/null +++ b/examples/widgets/effects/effects.pyproject @@ -0,0 +1,3 @@ +{ + "files": ["lighting.py"] +} diff --git a/examples/widgets/graphicsview/collidingmice/collidingmice.pyproject b/examples/widgets/graphicsview/collidingmice/collidingmice.pyproject new file mode 100644 index 000000000..ea5821866 --- /dev/null +++ b/examples/widgets/graphicsview/collidingmice/collidingmice.pyproject @@ -0,0 +1,3 @@ +{ + "files": ["collidingmice.py", "mice_rc.py"] +} diff --git a/examples/widgets/graphicsview/diagramscene/diagramscene.pyproject b/examples/widgets/graphicsview/diagramscene/diagramscene.pyproject new file mode 100644 index 000000000..0acabdd78 --- /dev/null +++ b/examples/widgets/graphicsview/diagramscene/diagramscene.pyproject @@ -0,0 +1,3 @@ +{ + "files": ["diagramscene.qrc", "diagramscene.py", "diagramscene_rc.py"] +} diff --git a/examples/widgets/graphicsview/dragdroprobot/dragdroprobot.pyproject b/examples/widgets/graphicsview/dragdroprobot/dragdroprobot.pyproject new file mode 100644 index 000000000..587484a97 --- /dev/null +++ b/examples/widgets/graphicsview/dragdroprobot/dragdroprobot.pyproject @@ -0,0 +1,3 @@ +{ + "files": ["dragdroprobot.qrc", "dragdroprobot_rc.py", "dragdroprobot.py"] +} diff --git a/examples/widgets/graphicsview/graphicsview.pyproject b/examples/widgets/graphicsview/graphicsview.pyproject new file mode 100644 index 000000000..007d36bd2 --- /dev/null +++ b/examples/widgets/graphicsview/graphicsview.pyproject @@ -0,0 +1,3 @@ +{ + "files": ["elasticnodes.py", "anchorlayout.py"] +} diff --git a/examples/widgets/itemviews/addressbook/addressbook.pyproject b/examples/widgets/itemviews/addressbook/addressbook.pyproject new file mode 100644 index 000000000..2aa763753 --- /dev/null +++ b/examples/widgets/itemviews/addressbook/addressbook.pyproject @@ -0,0 +1,4 @@ +{ + "files": ["tablemodel.py", "addressbook.py", "adddialogwidget.py", + "addresswidget.py", "newaddresstab.py"] +} diff --git a/examples/widgets/itemviews/itemviews.pyproject b/examples/widgets/itemviews/itemviews.pyproject new file mode 100644 index 000000000..a582259cc --- /dev/null +++ b/examples/widgets/itemviews/itemviews.pyproject @@ -0,0 +1,3 @@ +{ + "files": ["basicsortfiltermodel.py", "fetchmore.py"] +} diff --git a/examples/widgets/itemviews/stardelegate/stardelegate.pyproject b/examples/widgets/itemviews/stardelegate/stardelegate.pyproject new file mode 100644 index 000000000..13fdf9dde --- /dev/null +++ b/examples/widgets/itemviews/stardelegate/stardelegate.pyproject @@ -0,0 +1,3 @@ +{ + "files": ["stardelegate.py", "stareditor.py", "starrating.py"] +} diff --git a/examples/widgets/layouts/layouts.pyproject b/examples/widgets/layouts/layouts.pyproject new file mode 100644 index 000000000..85eb22785 --- /dev/null +++ b/examples/widgets/layouts/layouts.pyproject @@ -0,0 +1,3 @@ +{ + "files": ["basiclayouts.py", "dynamiclayouts.py", "flowlayout.py"] +} diff --git a/examples/widgets/mainwindows/application/application.pyproject b/examples/widgets/mainwindows/application/application.pyproject new file mode 100644 index 000000000..0e0413982 --- /dev/null +++ b/examples/widgets/mainwindows/application/application.pyproject @@ -0,0 +1,3 @@ +{ + "files": ["application.qrc", "application.py", "application_rc.py"] +} diff --git a/examples/widgets/mainwindows/dockwidgets/dockwidgets.pyproject b/examples/widgets/mainwindows/dockwidgets/dockwidgets.pyproject new file mode 100644 index 000000000..2df11468e --- /dev/null +++ b/examples/widgets/mainwindows/dockwidgets/dockwidgets.pyproject @@ -0,0 +1,3 @@ +{ + "files": ["dockwidgets.qrc", "dockwidgets.py", "dockwidgets_rc.py"] +} diff --git a/examples/widgets/mainwindows/mdi/mdi.pyproject b/examples/widgets/mainwindows/mdi/mdi.pyproject new file mode 100644 index 000000000..7df26fd77 --- /dev/null +++ b/examples/widgets/mainwindows/mdi/mdi.pyproject @@ -0,0 +1,3 @@ +{ + "files": ["mdi_rc.py", "mdi.py", "mdi.qrc"] +} diff --git a/examples/widgets/painting/basicdrawing/basicdrawing.pyproject b/examples/widgets/painting/basicdrawing/basicdrawing.pyproject new file mode 100644 index 000000000..9ecbfadcf --- /dev/null +++ b/examples/widgets/painting/basicdrawing/basicdrawing.pyproject @@ -0,0 +1,3 @@ +{ + "files": ["basicdrawing_rc.py", "basicdrawing.qrc", "basicdrawing.py"] +} diff --git a/examples/widgets/painting/painting.pyproject b/examples/widgets/painting/painting.pyproject new file mode 100644 index 000000000..ed24e12b0 --- /dev/null +++ b/examples/widgets/painting/painting.pyproject @@ -0,0 +1,3 @@ +{ + "files": ["concentriccircles.py"] +} diff --git a/examples/widgets/richtext/richtext.pyproject b/examples/widgets/richtext/richtext.pyproject new file mode 100644 index 000000000..e91a98961 --- /dev/null +++ b/examples/widgets/richtext/richtext.pyproject @@ -0,0 +1,3 @@ +{ + "files": ["syntaxhighlighter.py", "orderform.py"] +} diff --git a/examples/widgets/richtext/syntaxhighlighter/syntaxhighlighter.pyproject b/examples/widgets/richtext/syntaxhighlighter/syntaxhighlighter.pyproject new file mode 100644 index 000000000..e42b221a8 --- /dev/null +++ b/examples/widgets/richtext/syntaxhighlighter/syntaxhighlighter.pyproject @@ -0,0 +1,4 @@ +{ + "files": ["syntaxhighlighter_rc.py", "syntaxhighlighter.py", + "syntaxhighlighter.qrc"] +} diff --git a/examples/widgets/richtext/textobject/textobject.pyproject b/examples/widgets/richtext/textobject/textobject.pyproject new file mode 100644 index 000000000..ed4135844 --- /dev/null +++ b/examples/widgets/richtext/textobject/textobject.pyproject @@ -0,0 +1,3 @@ +{ + "files": ["textobject.py"] +} diff --git a/examples/widgets/state-machine/state-machine.pyproject b/examples/widgets/state-machine/state-machine.pyproject new file mode 100644 index 000000000..dafb204c8 --- /dev/null +++ b/examples/widgets/state-machine/state-machine.pyproject @@ -0,0 +1,4 @@ +{ + "files": ["pingpong.py", "trafficlight.py", "twowaybutton.py", + "eventtrans.py", "rogue.py", "factstates.py"] +} diff --git a/examples/widgets/tutorials/addressbook/addressbook.pyproject b/examples/widgets/tutorials/addressbook/addressbook.pyproject new file mode 100644 index 000000000..13d739e1b --- /dev/null +++ b/examples/widgets/tutorials/addressbook/addressbook.pyproject @@ -0,0 +1,4 @@ +{ + "files": ["part3.py", "part1.py", "part5.py", "part2.py", + "part7.py", "part6.py", "part4.py"] +} diff --git a/examples/widgets/widgets/widgets.pyproject b/examples/widgets/widgets/widgets.pyproject new file mode 100644 index 000000000..b4e3ef67e --- /dev/null +++ b/examples/widgets/widgets/widgets.pyproject @@ -0,0 +1,3 @@ +{ + "files": ["tetrix.py", "hellogl_openglwidget_legacy.py"] +} diff --git a/examples/xml/dombookmarks/dombookmarks.pyproject b/examples/xml/dombookmarks/dombookmarks.pyproject new file mode 100644 index 000000000..9a688558d --- /dev/null +++ b/examples/xml/dombookmarks/dombookmarks.pyproject @@ -0,0 +1,3 @@ +{ + "files": ["jennifer.xbel", "frank.xbel", "dombookmarks.py"] +} diff --git a/examples/xmlpatterns/schema/schema.pyproject b/examples/xmlpatterns/schema/schema.pyproject new file mode 100644 index 000000000..697e58d70 --- /dev/null +++ b/examples/xmlpatterns/schema/schema.pyproject @@ -0,0 +1,4 @@ +{ + "files": ["schema.qrc", "schema.py", "schema.ui", "ui_schema.py", + "schema_rc.py"] +} diff --git a/sources/pyside2/tests/pysidetest/qapp_like_a_macro_test.py b/sources/pyside2/tests/pysidetest/qapp_like_a_macro_test.py index c58aba82e..1c0d5d55d 100644 --- a/sources/pyside2/tests/pysidetest/qapp_like_a_macro_test.py +++ b/sources/pyside2/tests/pysidetest/qapp_like_a_macro_test.py @@ -33,7 +33,10 @@ import PySide2 # It also uses the qApp variable to finish the instance and start over. class qAppMacroTest(unittest.TestCase): + _test_1093_is_first = True + def test_qApp_is_like_a_macro_and_can_restart(self): + self._test_1093_is_first = False from PySide2 import QtCore try: from PySide2 import QtGui, QtWidgets @@ -72,5 +75,20 @@ class qAppMacroTest(unittest.TestCase): # and they are again all the same self.assertTrue(qApp is QtCore.qApp is QtGui.qApp is QtWidgets.qApp) + def test_1093(self): + # Test that without creating a QApplication staticMetaObject still exists. + # Please see https://bugreports.qt.io/browse/PYSIDE-1093 for explanation. + # Note: This test must run first, otherwise we would be mislead! + assert self._test_1093_is_first + from PySide2 import QtCore + self.assertTrue(QtCore.QObject.staticMetaObject is not None) + app = QtCore.QCoreApplication.instance() + self.assertTrue(QtCore.QObject.staticMetaObject is not None) + if app is None: + app = QtCore.QCoreApplication([]) + self.assertTrue(QtCore.QObject.staticMetaObject is not None) + del __builtins__.qApp + + if __name__ == '__main__': unittest.main() diff --git a/sources/shiboken2/generator/qtdoc/qtdocgenerator.cpp b/sources/shiboken2/generator/qtdoc/qtdocgenerator.cpp index 9cad400f3..dd29c02f0 100644 --- a/sources/shiboken2/generator/qtdoc/qtdocgenerator.cpp +++ b/sources/shiboken2/generator/qtdoc/qtdocgenerator.cpp @@ -1023,6 +1023,8 @@ QtXmlToSphinx::LinkContext *QtXmlToSphinx::handleLinkStart(const QString &type, result->type = LinkContext::External; else result->type = LinkContext::Reference; + } else if (type == QLatin1String("external")) { + result->type = LinkContext::External; } else { result->type = LinkContext::Reference; } diff --git a/sources/shiboken2/generator/shiboken2/cppgenerator.cpp b/sources/shiboken2/generator/shiboken2/cppgenerator.cpp index 5e9d9378e..547aecc61 100644 --- a/sources/shiboken2/generator/shiboken2/cppgenerator.cpp +++ b/sources/shiboken2/generator/shiboken2/cppgenerator.cpp @@ -6018,6 +6018,7 @@ QString CppGenerator::writeReprFunction(QTextStream &s, GeneratorContext &contex Indentation indent(INDENT); s << INDENT << "str.replace(0, idx, Py_TYPE(self)->tp_name);" << endl; } + s << INDENT << "str = str.trimmed();" << endl; s << INDENT << "PyObject *mod = PyDict_GetItem(Py_TYPE(self)->tp_dict, Shiboken::PyMagicName::module());" << endl; // PYSIDE-595: The introduction of heap types has the side effect that the module name // is always prepended to the type name. Therefore the strchr check: diff --git a/sources/shiboken2/generator/shiboken2/shibokengenerator.cpp b/sources/shiboken2/generator/shiboken2/shibokengenerator.cpp index 6d94af248..a94d3c8a7 100644 --- a/sources/shiboken2/generator/shiboken2/shibokengenerator.cpp +++ b/sources/shiboken2/generator/shiboken2/shibokengenerator.cpp @@ -573,11 +573,11 @@ QString ShibokenGenerator::guessScopeForDefaultValue(const AbstractMetaFunction { QString value = arg->defaultValueExpression(); - if (value.isEmpty()) - return QString(); - - if (isPointer(arg->type())) + if (value.isEmpty() + || arg->hasModifiedDefaultValueExpression() + || isPointer(arg->type())) { return value; + } static const QRegularExpression enumValueRegEx(QStringLiteral("^([A-Za-z_]\\w*)?$")); Q_ASSERT(enumValueRegEx.isValid()); diff --git a/sources/shiboken2/libshiboken/qapp_macro.cpp b/sources/shiboken2/libshiboken/qapp_macro.cpp index 12af9613c..306f53b74 100644 --- a/sources/shiboken2/libshiboken/qapp_macro.cpp +++ b/sources/shiboken2/libshiboken/qapp_macro.cpp @@ -120,6 +120,7 @@ reset_qApp_var(void) PyObject * MakeSingletonQAppWrapper(PyTypeObject *type) { + static bool app_created = false; if (type == nullptr) type = Py_NONE_TYPE; if (!(type == Py_NONE_TYPE || Py_TYPE(qApp_content) == Py_NONE_TYPE)) { @@ -145,6 +146,9 @@ MakeSingletonQAppWrapper(PyTypeObject *type) Py_REFCNT(qApp_var) = 1; // fuse is armed... } if (type == Py_NONE_TYPE) { + // PYSIDE-1093: Ignore None when no instance has ever been created. + if (!app_created) + Py_RETURN_NONE; // Debug mode showed that we need to do more than just remove the // reference. To keep everything in the right order, it is easiest // to do a full shutdown, using QtCore.__moduleShutdown(). @@ -158,9 +162,10 @@ MakeSingletonQAppWrapper(PyTypeObject *type) Py_REFCNT(qApp_content) = Py_REFCNT(Py_None); if (__moduleShutdown != nullptr) Py_XDECREF(PyObject_CallFunction(__moduleShutdown, const_cast<char *>("()"))); + } else { + PyObject_INIT(qApp_content, type); + app_created = true; } - else - (void)PyObject_INIT(qApp_content, type); Py_INCREF(qApp_content); return qApp_content; } diff --git a/sources/shiboken2/shibokenmodule/files.dir/shibokensupport/signature/parser.py b/sources/shiboken2/shibokenmodule/files.dir/shibokensupport/signature/parser.py index df2b9fa92..8d970956b 100644 --- a/sources/shiboken2/shibokenmodule/files.dir/shibokensupport/signature/parser.py +++ b/sources/shiboken2/shibokenmodule/files.dir/shibokensupport/signature/parser.py @@ -106,7 +106,8 @@ def _parse_line(line): $ """ ret = SimpleNamespace(**re.match(line_re, line, re.VERBOSE).groupdict()) - argstr = ret.arglist + # PYSIDE-1095: Handle arbitrary default expressions + argstr = ret.arglist.replace("->", ".deref.") arglist = _parse_arglist(argstr) args = [] for arg in arglist: diff --git a/sources/shiboken2/tests/libsample/modifications.cpp b/sources/shiboken2/tests/libsample/modifications.cpp index 98b22f09b..56ba81875 100644 --- a/sources/shiboken2/tests/libsample/modifications.cpp +++ b/sources/shiboken2/tests/libsample/modifications.cpp @@ -149,3 +149,19 @@ Modifications::nonConversionRuleForArgumentWithDefaultValue(ObjectType** object) *object = m_object; return true; } + +void Modifications::setEnumValue(TestEnum e) +{ + m_enumValue = e; +} + +Modifications::TestEnum Modifications::enumValue() const +{ + return m_enumValue; +} + +Modifications::TestEnum Modifications::defaultEnumValue() const +{ + return TestEnumValue2; +} + diff --git a/sources/shiboken2/tests/libsample/modifications.h b/sources/shiboken2/tests/libsample/modifications.h index fa32bdec3..674a05f27 100644 --- a/sources/shiboken2/tests/libsample/modifications.h +++ b/sources/shiboken2/tests/libsample/modifications.h @@ -51,6 +51,11 @@ public: Overloaded_ibPP }; + enum TestEnum { + TestEnumValue1, + TestEnumValue2 + }; + // those overloaded methods should be heavily modified // to push the overload decisor to its limits inline OverloadedModFunc overloaded(int a0, bool b0, int c0, double d0) { return Overloaded_ibid; } @@ -123,8 +128,13 @@ public: // Inject code with a %CONVERTTOPYTHON that receives an user's primitive type. static inline OddBool passOddBool(OddBool ob) { return ob; } + void setEnumValue(TestEnum e = TestEnumValue1); + TestEnum enumValue() const; + TestEnum defaultEnumValue() const; + private: ObjectType* m_object; + TestEnum m_enumValue = TestEnumValue1; }; class LIBSAMPLE_API AbstractModifications : public Modifications diff --git a/sources/shiboken2/tests/samplebinding/modifications_test.py b/sources/shiboken2/tests/samplebinding/modifications_test.py index 1dcd50359..e9a1eaf7f 100644 --- a/sources/shiboken2/tests/samplebinding/modifications_test.py +++ b/sources/shiboken2/tests/samplebinding/modifications_test.py @@ -220,5 +220,15 @@ class ModificationsTest(unittest.TestCase): self.assertTrue(isinstance(res, float)) self.assertEqual(res, em.increment) + def testDefaultValueModifications(self): + # PSYIDE-1095: setEnumValue() has the default value modified to + # calling defaultEnumValue() which returns Modifications.TestEnumValue2. + # This used to generated broken code since defaultEnumValue() was + # qualified by the enum scope. + modifications = Modifications() + modifications.setEnumValue() + self.assertEqual(modifications.enumValue(), Modifications.TestEnumValue2) + + if __name__ == '__main__': unittest.main() diff --git a/sources/shiboken2/tests/samplebinding/typesystem_sample.xml b/sources/shiboken2/tests/samplebinding/typesystem_sample.xml index 2cf2ecab3..30ad5def7 100644 --- a/sources/shiboken2/tests/samplebinding/typesystem_sample.xml +++ b/sources/shiboken2/tests/samplebinding/typesystem_sample.xml @@ -955,6 +955,7 @@ <object-type name="Modifications"> <enum-type name="OverloadedModFunc"/> + <enum-type name="TestEnum"/> <modify-function signature="overloaded(int, bool, int, double)"> <modify-argument index="2"> @@ -1286,6 +1287,11 @@ %PYARG_0 = %CONVERTTOPYTHON[OddBool](%0); </inject-code> </modify-function> + <modify-function signature="setEnumValue(Modifications::TestEnum)"> + <modify-argument index="1"> + <replace-default-expression with="cppSelf->defaultEnumValue()"/> + </modify-argument> + </modify-function> </object-type> <object-type name="AbstractModifications"> |