diff options
Diffstat (limited to 'src/tools/uic/python/pythonwriteimports.h')
-rw-r--r-- | src/tools/uic/python/pythonwriteimports.h | 62 |
1 files changed, 26 insertions, 36 deletions
diff --git a/src/tools/uic/python/pythonwriteimports.h b/src/tools/uic/python/pythonwriteimports.h index 5462453962..4497b8dc33 100644 --- a/src/tools/uic/python/pythonwriteimports.h +++ b/src/tools/uic/python/pythonwriteimports.h @@ -1,55 +1,45 @@ -/**************************************************************************** -** -** Copyright (C) 2018 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the tools applications of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:GPL-EXCEPT$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 as published by the Free Software -** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ +// Copyright (C) 2018 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 #ifndef PYTHONWRITEIMPORTS_H #define PYTHONWRITEIMPORTS_H -#include <treewalker.h> +#include <writeincludesbase.h> -QT_BEGIN_NAMESPACE +#include <QtCore/qhash.h> +#include <QtCore/qmap.h> +#include <QtCore/qstringlist.h> -class Uic; +QT_BEGIN_NAMESPACE namespace Python { -struct WriteImports : public TreeWalker +class WriteImports : public WriteIncludesBase { public: + using ClassesPerModule = QMap<QString, QStringList>; + explicit WriteImports(Uic *uic); void acceptUI(DomUI *node) override; - void acceptCustomWidget(DomCustomWidget *node) override; + void acceptProperty(DomProperty *node) override; -private: - void writeImport(const QString &module); - QString qtModuleOf(const DomCustomWidget *node) const; +protected: + void doAdd(const QString &className, const DomCustomWidget *dcw = nullptr) override; - Uic *const m_uic; +private: + void addPythonCustomWidget(const QString &className, const DomCustomWidget *dcw); + bool addQtClass(const QString &className); + void addEnumBaseClass(const QString &v); + void writeResourceImport(const QString &module); + QString resourceAbsolutePath(QString resource) const; + + QHash<QString, QString> m_classToModule; + // Module->class (modules sorted) + + ClassesPerModule m_qtClasses; + ClassesPerModule m_customWidgets; + QStringList m_plainCustomWidgets; // Custom widgets without any module }; } // namespace Python |