aboutsummaryrefslogtreecommitdiffstats
path: root/sources
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@qt.io>2020-10-22 09:15:03 +0200
committerFriedemann Kleint <Friedemann.Kleint@qt.io>2020-10-27 09:05:31 +0000
commitd3ee9402ebc0abcf973ea8a7f4268c9f6aacd364 (patch)
tree81959ca1a57c8d20b5a93f2ba4d0f82be8c21208 /sources
parent87b8b73945affdf94c886bf17c43545c0a0d5d89 (diff)
shiboken2: Split out class Documentation
It is required for further refactorings. Change-Id: Ied5c73494546f3345cc76d2c9f1a808b7c5ee1e0 Reviewed-by: Christian Tismer <tismer@stackless.com>
Diffstat (limited to 'sources')
-rw-r--r--sources/shiboken2/ApiExtractor/CMakeLists.txt1
-rw-r--r--sources/shiboken2/ApiExtractor/abstractmetalang.cpp43
-rw-r--r--sources/shiboken2/ApiExtractor/abstractmetalang.h34
-rw-r--r--sources/shiboken2/ApiExtractor/documentation.cpp73
-rw-r--r--sources/shiboken2/ApiExtractor/documentation.h73
5 files changed, 148 insertions, 76 deletions
diff --git a/sources/shiboken2/ApiExtractor/CMakeLists.txt b/sources/shiboken2/ApiExtractor/CMakeLists.txt
index 043f3830d..062ccf808 100644
--- a/sources/shiboken2/ApiExtractor/CMakeLists.txt
+++ b/sources/shiboken2/ApiExtractor/CMakeLists.txt
@@ -10,6 +10,7 @@ apiextractor.cpp
abstractmetabuilder.cpp
abstractmetatype.cpp
abstractmetalang.cpp
+documentation.cpp
fileout.cpp
graph.cpp
messages.cpp
diff --git a/sources/shiboken2/ApiExtractor/abstractmetalang.cpp b/sources/shiboken2/ApiExtractor/abstractmetalang.cpp
index 4ffe24cb3..217365d6c 100644
--- a/sources/shiboken2/ApiExtractor/abstractmetalang.cpp
+++ b/sources/shiboken2/ApiExtractor/abstractmetalang.cpp
@@ -90,49 +90,6 @@ const AbstractMetaClass *recurseClassHierarchy(const AbstractMetaClass *klass,
}
/*******************************************************************************
- * Documentation
- */
-
-Documentation::Documentation(const QString &value, Documentation::Type t, Documentation::Format fmt)
-{
- setValue(value, t, fmt);
-}
-
-bool Documentation::isEmpty() const
-{
- for (int i = 0; i < Type::Last; i++) {
- if (!m_data.value(static_cast<Type>(i)).isEmpty())
- return false;
- }
- return true;
-}
-
-QString Documentation::value(Documentation::Type t) const
-{
- return m_data.value(t);
-}
-
-void Documentation::setValue(const QString &value, Documentation::Type t, Documentation::Format fmt)
-{
- const QString v = value.trimmed();
- if (v.isEmpty())
- m_data.remove(t);
- else
- m_data[t] = value.trimmed();
- m_format = fmt;
-}
-
-Documentation::Format Documentation::format() const
-{
- return m_format;
-}
-
-void Documentation::setFormat(Documentation::Format f)
-{
- m_format = f;
-}
-
-/*******************************************************************************
* AbstractMetaVariable
*/
diff --git a/sources/shiboken2/ApiExtractor/abstractmetalang.h b/sources/shiboken2/ApiExtractor/abstractmetalang.h
index 4f5b1476b..66331bbd9 100644
--- a/sources/shiboken2/ApiExtractor/abstractmetalang.h
+++ b/sources/shiboken2/ApiExtractor/abstractmetalang.h
@@ -31,6 +31,7 @@
#include "abstractmetalang_typedefs.h"
#include "abstractmetatype.h"
+#include "documentation.h"
#include "sourcelocation.h"
#include "typesystem_enums.h"
#include "typesystem_typedefs.h"
@@ -41,7 +42,6 @@
#include <QtCore/qobjectdefs.h>
#include <QtCore/QStringList>
#include <QtCore/QSharedDataPointer>
-#include <QtCore/QMap>
QT_FORWARD_DECLARE_CLASS(QDebug)
@@ -67,38 +67,6 @@ struct FieldModification;
struct FunctionModification;
struct ReferenceCount;
-class Documentation
-{
-public:
- enum Format {
- Native,
- Target
- };
- enum Type {
- Detailed,
- Brief,
- Last
- };
-
- Documentation() = default;
- Documentation(const QString& value, Type t = Documentation::Detailed,
- Format fmt = Documentation::Native);
-
- bool isEmpty() const;
-
- QString value(Type t = Documentation::Detailed) const;
- void setValue(const QString& value, Type t = Documentation::Detailed,
- Format fmt = Documentation::Native);
-
- Documentation::Format format() const;
- void setFormat(Format f);
-
-private:
- QMap<Type, QString> m_data;
- Format m_format = Documentation::Native;
-
-};
-
class AbstractMetaAttributes
{
Q_GADGET
diff --git a/sources/shiboken2/ApiExtractor/documentation.cpp b/sources/shiboken2/ApiExtractor/documentation.cpp
new file mode 100644
index 000000000..c042b3b8a
--- /dev/null
+++ b/sources/shiboken2/ApiExtractor/documentation.cpp
@@ -0,0 +1,73 @@
+/****************************************************************************
+**
+** Copyright (C) 2020 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of Qt for Python.
+**
+** $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$
+**
+****************************************************************************/
+
+#include "documentation.h"
+
+Documentation::Documentation(const QString &value, Documentation::Type t, Documentation::Format fmt)
+{
+ setValue(value, t, fmt);
+}
+
+bool Documentation::isEmpty() const
+{
+ for (int i = 0; i < Type::Last; i++) {
+ if (!m_data.value(static_cast<Type>(i)).isEmpty())
+ return false;
+ }
+ return true;
+}
+
+QString Documentation::value(Documentation::Type t) const
+{
+ return m_data.value(t);
+}
+
+void Documentation::setValue(const QString &value, Documentation::Type t, Documentation::Format fmt)
+{
+ const QString v = value.trimmed();
+ if (v.isEmpty())
+ m_data.remove(t);
+ else
+ m_data[t] = value.trimmed();
+ m_format = fmt;
+}
+
+Documentation::Format Documentation::format() const
+{
+ return m_format;
+}
+
+void Documentation::setFormat(Documentation::Format f)
+{
+ m_format = f;
+}
+
+bool Documentation::equals(const Documentation &rhs) const
+{
+ return m_format == rhs.m_format && m_data == rhs.m_data;
+}
diff --git a/sources/shiboken2/ApiExtractor/documentation.h b/sources/shiboken2/ApiExtractor/documentation.h
new file mode 100644
index 000000000..b0083c2be
--- /dev/null
+++ b/sources/shiboken2/ApiExtractor/documentation.h
@@ -0,0 +1,73 @@
+/****************************************************************************
+**
+** Copyright (C) 2020 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of Qt for Python.
+**
+** $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$
+**
+****************************************************************************/
+
+#ifndef DOCUMENTATION_H
+#define DOCUMENTATION_H
+
+#include <QtCore/QMap>
+#include <QtCore/QString>
+
+class Documentation
+{
+public:
+ enum Format {
+ Native,
+ Target
+ };
+ enum Type {
+ Detailed,
+ Brief,
+ Last
+ };
+
+ Documentation() = default;
+ Documentation(const QString& value, Type t = Documentation::Detailed,
+ Format fmt = Documentation::Native);
+
+ bool isEmpty() const;
+
+ QString value(Type t = Documentation::Detailed) const;
+ void setValue(const QString& value, Type t = Documentation::Detailed,
+ Format fmt = Documentation::Native);
+
+ Documentation::Format format() const;
+ void setFormat(Format f);
+
+ bool equals(const Documentation &rhs) const;
+
+private:
+ QMap<Type, QString> m_data;
+ Format m_format = Documentation::Native;
+};
+
+inline bool operator==(const Documentation &d1, const Documentation &d2)
+{ return d1.equals(d2); }
+inline bool operator!=(const Documentation &d1, const Documentation &d2)
+{ return !d1.equals(d2); }
+
+#endif // DOCUMENTATION_H