aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDavid Edmundson <kde@davidedmundson.co.uk>2019-12-10 08:41:32 +0000
committerDavid Edmundson <kde@davidedmundson.co.uk>2019-12-10 08:41:47 +0000
commit89fb70b571155deaee5a20af97d86c01460f9dcd (patch)
treeae773443141a7955e0c665abeda6c76d3821bbe2 /src
parente89d3ff397b8df2f1240130127864c7a76e20784 (diff)
downloadkconfig-89fb70b571155deaee5a20af97d86c01460f9dcd.tar.gz
kconfig-89fb70b571155deaee5a20af97d86c01460f9dcd.tar.bz2
Fix writeFlags with KConfigCompilerSignallingItem
Summary: KConfigCompilerSignallingItem both inherits KConfigSkeletonItem and internally is powered by a separate KConfigSkeletonItem The generated code calls setWriteFlags on the outer KConfigCompilerSignallingItem instance, but the real writing is performed by the internal version. We need to set the flags in the right place. Ideally we would do this in an overload of KConfigSkeletonItem, but given we can't, I've shadowed the method. This isn't pretty, but given the docs say it should generally only be used from auto generated code, should be fine. Test Plan: Used in workspace KCM Reviewers: ervin Reviewed By: ervin Subscribers: kde-frameworks-devel Tags: #frameworks Differential Revision: https://phabricator.kde.org/D25791
Diffstat (limited to 'src')
-rw-r--r--src/core/kcoreconfigskeleton.cpp10
-rw-r--r--src/core/kcoreconfigskeleton.h4
2 files changed, 14 insertions, 0 deletions
diff --git a/src/core/kcoreconfigskeleton.cpp b/src/core/kcoreconfigskeleton.cpp
index a2b44fde..7566301b 100644
--- a/src/core/kcoreconfigskeleton.cpp
+++ b/src/core/kcoreconfigskeleton.cpp
@@ -1587,3 +1587,13 @@ void KConfigCompilerSignallingItem::swapDefault()
invokeNotifyFunction();
}
}
+
+void KConfigCompilerSignallingItem::setWriteFlags(KConfigBase::WriteConfigFlags flags)
+{
+ mItem->setWriteFlags(flags);
+}
+
+KConfigBase::WriteConfigFlags KConfigCompilerSignallingItem::writeFlags() const
+{
+ return mItem->writeFlags();
+}
diff --git a/src/core/kcoreconfigskeleton.h b/src/core/kcoreconfigskeleton.h
index c6e49c63..0251609d 100644
--- a/src/core/kcoreconfigskeleton.h
+++ b/src/core/kcoreconfigskeleton.h
@@ -430,6 +430,10 @@ public:
QVariant property() const override;
void setDefault() override;
void swapDefault() override;
+ // shadow the method in KConfigSkeletonItem, which should be fine for autogenerated code
+ // KF6 TODO - fix this
+ void setWriteFlags(KConfigBase::WriteConfigFlags flags);
+ KConfigBase::WriteConfigFlags writeFlags() const;
private:
inline void invokeNotifyFunction()
{