aboutsummaryrefslogtreecommitdiffstats
path: root/share
diff options
context:
space:
mode:
authorChristian Stenger <christian.stenger@qt.io>2020-05-19 16:44:15 +0200
committerChristian Stenger <christian.stenger@qt.io>2020-07-02 06:58:51 +0000
commit5b4b09481af83ac82802ed48b24f58db0aa37ff4 (patch)
tree3d7d0893a3e97041bae757f5d1c2a2b0d6362f30 /share
parent4174d0c72c08ad05f45c76f717762c83d2fc1e87 (diff)
Wizards: Improve python class wizard
Some minor fixes, simplifications and improvements. In detail: * create valid Python code * allow creating a Python class also without a Qt package * hint about the need for a Qt package depending on the base class * remove QDeclarativeItem as base class as this is not present in recent Qt packages Change-Id: I7198f315b3a9eec9a04f52d7438d05ccce40c3f7 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io> Reviewed-by: David Schulz <david.schulz@qt.io>
Diffstat (limited to 'share')
-rw-r--r--share/qtcreator/templates/wizards/classes/python/file.py34
-rw-r--r--share/qtcreator/templates/wizards/classes/python/wizard.json24
2 files changed, 25 insertions, 33 deletions
diff --git a/share/qtcreator/templates/wizards/classes/python/file.py b/share/qtcreator/templates/wizards/classes/python/file.py
index 5698022dd8..6b16b9d952 100644
--- a/share/qtcreator/templates/wizards/classes/python/file.py
+++ b/share/qtcreator/templates/wizards/classes/python/file.py
@@ -1,38 +1,24 @@
# This Python file uses the following encoding: utf-8
-@if '%{Module}' === 'PySide2'
- @if '%{ImportQtCore}'
-from PySide2 import QtCore
+@if '%{Module}' !== '<None>'
+ @if '%{ImportQtCore}' !== ''
+from %{Module} import QtCore
@endif
- @if '%{ImportQtWidgets}'
-from PySide2 import QtWidgets
+ @if '%{ImportQtWidgets}' !== ''
+from %{Module} import QtWidgets
@endif
- @if '%{ImportQtQuick}'
-from PySide2 import QtQuick
- @endif
-@else
- @if '%{ImportQtCore}'
-from PyQt5 import QtCore
- @endif
- @if '%{ImportQtWidgets}'
-from PyQt5 import QtWidgets
- @endif
- @if '%{ImportQtQuick}'
-from PyQt5 import QtQuick
+ @if '%{ImportQtQuick}' !== ''
+from %{Module} import QtQuick
@endif
@endif
@if '%{Base}'
-class %{Class}(%{Base}):
+class %{Class}(%{FullBase}):
@else
class %{Class}:
@endif
def __init__(self):
-@if '%{Base}' === 'QWidget'
- QtWidgets.QWidget.__init__(self)
-@elif '%{Base}' === 'QMainWindow'
- QtWidgets.QMainWindow.__init__(self)
-@elif '%{Base}' === 'QQuickItem'
- QtQuick.QQuickItem.__init__(self)
+@if %{JS: [ "QObject", "QWidget", "QMainWindow", "QQuickItem" ].indexOf("%Base")} >= 0
+ %{FullBase}.__init__(self)
@endif
pass
diff --git a/share/qtcreator/templates/wizards/classes/python/wizard.json b/share/qtcreator/templates/wizards/classes/python/wizard.json
index aeebd1f2a3..d8a6734144 100644
--- a/share/qtcreator/templates/wizards/classes/python/wizard.json
+++ b/share/qtcreator/templates/wizards/classes/python/wizard.json
@@ -12,7 +12,8 @@
"options":
[
{ "key": "Base", "value":"%{JS: value('BaseCB') === '' ? value('BaseEdit') : value('BaseCB')}" },
- { "key": "Imports", "value": "%{ImportQtCore}%{ImportQtWidgets}%{ImportQtDeclarative}"}
+ { "key": "Package", "value": "%{JS: [ 'QWidget', 'QMainWindow' ].indexOf(value('Base')) >= 0 ? 'QtWidgets' : (value('Base') === 'QQuickItem' ? 'QtQuick' : (value('Base') === 'QObject' ? 'QtCore' : ''))}" },
+ { "key": "FullBase", "value": "%{JS: value('Package') === '' ? value('Base') : value('Package') + '.' + value('Base')}" }
],
"pages":
@@ -32,11 +33,11 @@
},
{
"name": "Module",
- "trDisplayName": "Python module:",
+ "trDisplayName": "Qt for Python module:",
"type": "ComboBox",
"data":
{
- "items": ["PySide2", "PyQt5"]
+ "items": ["<None>", "PySide2", "PyQt5"]
}
},
{
@@ -46,8 +47,10 @@
"data":
{
"items": [ { "trKey": "<Custom>", "value": "" },
- "QObject", "QWidget", "QMainWindow", "QDeclarativeItem", "QQuickItem" ]
- }
+ "QObject", "QWidget", "QMainWindow", "QQuickItem" ]
+ },
+ "isComplete": "%{JS: (value('Module') === '<None>' && value('BaseCB') === '') || value('Module') !== '<None>'}",
+ "trIncompleteMessage": "You can choose Qt classes only if you select a Qt for Python module."
},
{
"name": "BaseEdit",
@@ -67,33 +70,36 @@
"name": "ImportQtCore",
"trDisplayName": "Import QtCore",
"type": "CheckBox",
+ "enabled": "%{JS: value('Module') !== '<None>'}",
"data":
{
"checkedValue": "QtCore",
"uncheckedValue": "",
- "checked": "%{JS: value('Base') !== ''}"
+ "checked": "%{JS: value('BaseCB') !== ''}"
}
},
{
- "name": "ImportQWidget",
+ "name": "ImportQtWidgets",
"trDisplayName": "Import QtWidgets",
"type": "CheckBox",
+ "enabled": "%{JS: value('Module') !== '<None>'}",
"data":
{
"checkedValue": "QtWidgets",
"uncheckedValue": "",
- "checked": "%{JS: value('Base') === 'QWidget'}"
+ "checked": "%{JS: [ 'QWidget', 'QMainWindow' ].indexOf(value('BaseCB')) >= 0}"
}
},
{
"name": "ImportQtQuick",
"trDisplayName": "Import QtQuick",
"type": "CheckBox",
+ "enabled": "%{JS: value('Module') !== '<None>'}",
"data":
{
"checkedValue": "QtQuick",
"uncheckedValue": "",
- "checked": "%{JS: value('Base') === 'QQuickItem'}"
+ "checked": "%{JS: value('BaseCB') === 'QQuickItem'}"
}
},
{