summaryrefslogtreecommitdiffstats
path: root/src/tools
diff options
context:
space:
mode:
authorQt Forward Merge Bot <qt_forward_merge_bot@qt-project.org>2020-01-16 01:00:11 +0100
committerEdward Welbourne <edward.welbourne@qt.io>2020-01-16 11:20:42 +0100
commit0a4e5bb265c4a2345a9cbffab1b5150124b8d31e (patch)
treeb243668d53f710af3d57a44c18e1ed0c40b100f7 /src/tools
parent4772a2da15ae0624633f3fc4d029d5f0e1e33892 (diff)
parentbd828bacb982a51ee21f03487f8390cfc96cc6d3 (diff)
Merge remote-tracking branch 'origin/5.15' into dev
Conflicts: src/widgets/kernel/qshortcut.cpp tests/auto/network/access/spdy/tst_spdy.cpp Change-Id: If76c434beac2c0a393440aa365f89f77439774ce
Diffstat (limited to 'src/tools')
-rw-r--r--src/tools/uic/python/pythonwriteimports.cpp28
1 files changed, 23 insertions, 5 deletions
diff --git a/src/tools/uic/python/pythonwriteimports.cpp b/src/tools/uic/python/pythonwriteimports.cpp
index be55696683..963244d450 100644
--- a/src/tools/uic/python/pythonwriteimports.cpp
+++ b/src/tools/uic/python/pythonwriteimports.cpp
@@ -41,7 +41,7 @@ QT_BEGIN_NAMESPACE
static const char *standardImports =
R"I(from PySide2.QtCore import (QCoreApplication, QMetaObject, QObject, QPoint,
QRect, QSize, QUrl, Qt)
-from PySide2.QtGui import (QBrush, QColor, QConicalGradient, QFont,
+from PySide2.QtGui import (QBrush, QColor, QConicalGradient, QCursor, QFont,
QFontDatabase, QIcon, QLinearGradient, QPalette, QPainter, QPixmap,
QRadialGradient)
from PySide2.QtWidgets import *
@@ -114,11 +114,29 @@ void WriteImports::acceptCustomWidget(DomCustomWidget *node)
const auto &className = node->elementClass();
if (className.contains(QLatin1String("::")))
return; // Exclude namespaced names (just to make tests pass).
- const QString &qtModule = qtModuleOf(node);
+ const QString &importModule = qtModuleOf(node);
auto &output = m_uic->output();
- if (!qtModule.isEmpty())
- output << "from PySide2." << qtModule << ' ';
- output << "import " << className << '\n';
+ // For starting importing PySide2 modules
+ if (!importModule.isEmpty()) {
+ output << "from ";
+ if (importModule.startsWith(QLatin1String("Qt")))
+ output << "PySide2.";
+ output << importModule;
+ if (!className.isEmpty())
+ output << " import " << className << "\n\n";
+ } else {
+ // When the elementHeader is not set, we know it's the continuation
+ // of a PySide2 import or a normal import of another module.
+ if (!node->elementHeader() || node->elementHeader()->text().isEmpty()) {
+ output << "import " << className << '\n';
+ } else { // When we do have elementHeader, we know it's a relative import.
+ QString modulePath = node->elementHeader()->text();
+ // '.h' is added by default on headers for <customwidget>
+ if (modulePath.endsWith(QLatin1String(".h")))
+ modulePath.chop(2);
+ output << "from " << modulePath << " import " << className << '\n';
+ }
+ }
}
} // namespace Python