aboutsummaryrefslogtreecommitdiff
path: root/autotests/kconfig_compiler/test8c.cpp.ref
diff options
context:
space:
mode:
authorMartin Gräßlin <mgraesslin@kde.org>2016-11-16 14:59:28 +0100
committerMartin Gräßlin <mgraesslin@kde.org>2017-01-06 09:52:45 +0100
commite0db2422362260a2fea3a8e1de4c64011d2f183d (patch)
tree59b5ba0e74c5d24d27156e51e54eb1fc0eb02623 /autotests/kconfig_compiler/test8c.cpp.ref
parent7d53de59b6e65b0cbdf6eaad4f5dbcd341307003 (diff)
downloadkconfig-e0db2422362260a2fea3a8e1de4c64011d2f183d.tar.gz
kconfig-e0db2422362260a2fea3a8e1de4c64011d2f183d.tar.bz2
Generate an instance with KSharedConfig::Ptr for singleton and arg
Summary: In case a kcfg with arg="true" was used and singleton the static instance method only accepted a QString config name. This made it impossible to combine a singleton config with an already existing and open KSharedConfig::Ptr. With this change an overloaded instance method is added which takes a KSharedConfig::Ptr as argument. The private ctor, though, only takes a KSharedConfig::Ptr and the instance method taking a QString argument uses KSharedConfig::openConfig on the config file name. The change is source-incompatible in the following situation: * kcfgfile arg="true" * Singleton = true * Inherits is specified In this situation the previous revision created an instance method with a QString argument and passed that to the parent constructor. This is not in accordance with the documentation. Any user of this behavior was relying on a bug. With this change now the call to the parent constructor carries a KSharedConfigPtr. Test Plan: kconfigcompiler tests still pass and a config with singleton and arg="true" generates the code as I need it Reviewers: #frameworks, dfaure, mdawson Differential Revision: https://phabricator.kde.org/D3690
Diffstat (limited to 'autotests/kconfig_compiler/test8c.cpp.ref')
-rw-r--r--autotests/kconfig_compiler/test8c.cpp.ref65
1 files changed, 65 insertions, 0 deletions
diff --git a/autotests/kconfig_compiler/test8c.cpp.ref b/autotests/kconfig_compiler/test8c.cpp.ref
new file mode 100644
index 00000000..90305c1f
--- /dev/null
+++ b/autotests/kconfig_compiler/test8c.cpp.ref
@@ -0,0 +1,65 @@
+// This file is generated by kconfig_compiler_kf5 from test8c.kcfg.
+// All changes you do to this file will be lost.
+
+#include "test8c.h"
+
+#include <qglobal.h>
+#include <QtCore/QFile>
+
+#include <QDebug>
+
+class Test8cHelper
+{
+ public:
+ Test8cHelper() : q(0) {}
+ ~Test8cHelper() { delete q; }
+ Test8c *q;
+};
+Q_GLOBAL_STATIC(Test8cHelper, s_globalTest8c)
+Test8c *Test8c::self()
+{
+ if (!s_globalTest8c()->q)
+ qFatal("you need to call Test8c::instance before using");
+ return s_globalTest8c()->q;
+}
+
+void Test8c::instance(const QString& cfgfilename)
+{
+ if (s_globalTest8c()->q) {
+ qDebug() << "Test8c::instance called after the first use - ignoring";
+ return;
+ }
+ new Test8c(KSharedConfig::openConfig(cfgfilename));
+ s_globalTest8c()->q->read();
+}
+
+void Test8c::instance(KSharedConfig::Ptr config)
+{
+ if (s_globalTest8c()->q) {
+ qDebug() << "Test8c::instance called after the first use - ignoring";
+ return;
+ }
+ new Test8c(config);
+ s_globalTest8c()->q->read();
+}
+
+Test8c::Test8c( KSharedConfig::Ptr config )
+ : KConfigSkeleton( config )
+{
+ Q_ASSERT(!s_globalTest8c()->q);
+ s_globalTest8c()->q = this;
+ setCurrentGroup( QStringLiteral( "Group" ) );
+
+ KConfigSkeleton::ItemFont *itemFont;
+ itemFont = new KConfigSkeleton::ItemFont( currentGroup(), QStringLiteral( "Font" ), mFont, QFont() );
+ addItem( itemFont, QStringLiteral( "Font" ) );
+ KConfigSkeleton::ItemFont *itemTitleFont;
+ itemTitleFont = new KConfigSkeleton::ItemFont( currentGroup(), QStringLiteral( "TitleFont" ), mTitleFont, QFont() );
+ addItem( itemTitleFont, QStringLiteral( "TitleFont" ) );
+}
+
+Test8c::~Test8c()
+{
+ s_globalTest8c()->q = 0;
+}
+