diff options
| author | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2020-12-02 08:46:33 +0100 |
|---|---|---|
| committer | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2020-12-02 10:27:42 +0000 |
| commit | b69d8899b1c592aa9a6cdfa43da3137af3fa16de (patch) | |
| tree | 9d106e9a20a5c31e651e3d3c4c08be5648737024 /sources/shiboken6/ApiExtractor/modifications.cpp | |
| parent | 844f76cf8e01377fa3de6ac8c61eb8342c0c31f1 (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.cpp | 82 |
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, ...)" |
