aboutsummaryrefslogtreecommitdiffstats
path: root/sources/shiboken6/ApiExtractor/modifications.cpp
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@qt.io>2020-12-02 08:46:33 +0100
committerFriedemann Kleint <Friedemann.Kleint@qt.io>2020-12-02 10:27:42 +0000
commitb69d8899b1c592aa9a6cdfa43da3137af3fa16de (patch)
tree9d106e9a20a5c31e651e3d3c4c08be5648737024 /sources/shiboken6/ApiExtractor/modifications.cpp
parent844f76cf8e01377fa3de6ac8c61eb8342c0c31f1 (diff)
shiboken6: Refactor field modifications
Decouple class FieldModification from the base class Modification since it does not need its attributes and turn in into a value class using QSharedDataPointer for consistency with FunctionModification. Remove some unused code and simplify removed handling. Change-Id: I9997559acd529bd070df5ff84610fe75c74a71a5 Reviewed-by: Christian Tismer <tismer@stackless.com>
Diffstat (limited to 'sources/shiboken6/ApiExtractor/modifications.cpp')
-rw-r--r--sources/shiboken6/ApiExtractor/modifications.cpp82
1 files changed, 82 insertions, 0 deletions
diff --git a/sources/shiboken6/ApiExtractor/modifications.cpp b/sources/shiboken6/ApiExtractor/modifications.cpp
index fb839b3b1..fe3983ce1 100644
--- a/sources/shiboken6/ApiExtractor/modifications.cpp
+++ b/sources/shiboken6/ApiExtractor/modifications.cpp
@@ -163,6 +163,88 @@ QString Modification::accessModifierString() const
return QString();
}
+// ---------------------- FieldModification
+
+class FieldModificationData : public QSharedData
+{
+public:
+ QString m_name;
+ QString m_renamedToName;
+ bool m_readable = true;
+ bool m_writable = true;
+ bool m_removed = false;
+};
+
+FieldModification::FieldModification() : d(new FieldModificationData)
+{
+}
+
+FieldModification::FieldModification(const FieldModification &) = default;
+FieldModification &FieldModification::operator=(const FieldModification &) = default;
+FieldModification::FieldModification(FieldModification &&) = default;
+FieldModification &FieldModification::operator=(FieldModification &&) = default;
+FieldModification::~FieldModification() = default;
+
+QString FieldModification::name() const
+{
+ return d->m_name;
+}
+
+void FieldModification::setName(const QString &value)
+{
+ if (d->m_name != value)
+ d->m_name = value;
+}
+
+bool FieldModification::isRenameModifier() const
+{
+ return !d->m_renamedToName.isEmpty();
+}
+
+QString FieldModification::renamedToName() const
+{
+ return d->m_renamedToName;
+}
+
+void FieldModification::setRenamedToName(const QString &value)
+{
+ if (d->m_renamedToName != value)
+ d->m_renamedToName = value;
+}
+
+bool FieldModification::isReadable() const
+{
+ return d->m_readable;
+}
+
+void FieldModification::setReadable(bool e)
+{
+ if (d->m_readable != e)
+ d->m_readable = e;
+}
+
+bool FieldModification::isWritable() const
+{
+ return d->m_writable;
+}
+
+void FieldModification::setWritable(bool e)
+{
+ if (d->m_writable != e)
+ d->m_writable = e;
+}
+
+bool FieldModification::isRemoved() const
+{
+ return d->m_removed;
+}
+
+void FieldModification::setRemoved(bool r)
+{
+ if (d->m_removed != r)
+ d->m_removed = r;
+}
+
// Helpers to split a parameter list of <add-function>, <declare-function>
// (@ denoting names), like
// "void foo(QList<X,Y> &@list@ = QList<X,Y>{1,2}, int @b@=5, ...)"