[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    [kconfig] /: REVIEW: 118039
From:       Thomas Braxton <kde.braxton () gmail ! com>
Date:       2014-05-26 10:12:15
Message-ID: E1Wort9-0001zf-4y () scm ! kde ! org
[Download RAW message or body]

Git commit 5f4dc2973f10cd44b2c70680fee72dd8fc545d2f by Thomas Braxton.
Committed on 26/05/2014 at 09:50.
Pushed by braxton into branch 'master'.

REVIEW: 118039
Simplify KConfigGroup::readEntry/writeEntry.

KConfigGroup::readCheck/writeCheck caused some compilers to complain
since they were private functions that were being reimplemented outside
the class definition.

Updated KCONFIGGROUP_DECLARE_ENUM_QOBJECT/
deprecated global functions created in KDE4 times.

M  +8    -8    autotests/kconfigtest.cpp
M  +46   -63   src/core/kconfiggroup.h

http://commits.kde.org/kconfig/5f4dc2973f10cd44b2c70680fee72dd8fc545d2f

diff --git a/autotests/kconfigtest.cpp b/autotests/kconfigtest.cpp
index d82d8ca..2b6de0d 100644
--- a/autotests/kconfigtest.cpp
+++ b/autotests/kconfigtest.cpp
@@ -165,10 +165,10 @@ void KConfigTest::initTestCase()
     cg.writePathEntry("homepathescape", HOMEPATHESCAPE);
 
     cg = KConfigGroup(&sc, "Enum Types");
-    writeEntry(cg, "enum-10", Tens);
-    writeEntry(cg, "enum-100", Hundreds);
-    writeEntry(cg, "flags-bit0", Flags(bit0));
-    writeEntry(cg, "flags-bit0-bit1", Flags(bit0 | bit1));
+    cg.writeEntry("enum-10", Tens);
+    cg.writeEntry("enum-100", Hundreds);
+    cg.writeEntry("flags-bit0", Flags(bit0));
+    cg.writeEntry("flags-bit0-bit1", Flags(bit0 | bit1));
 
     cg = KConfigGroup(&sc, "ParentGroup");
     KConfigGroup cg1(&cg, "SubGroup1");
@@ -563,11 +563,11 @@ void KConfigTest::testEnums()
     KConfigGroup sc3(&sc, "Enum Types");
 
     QCOMPARE(sc3.readEntry("enum-10"), QString("Tens"));
-    QVERIFY(readEntry(sc3, "enum-100", Ones) != Ones);
-    QVERIFY(readEntry(sc3, "enum-100", Ones) != Tens);
+    QVERIFY(sc3.readEntry("enum-100", Ones) != Ones);
+    QVERIFY(sc3.readEntry("enum-100", Ones) != Tens);
 
     QCOMPARE(sc3.readEntry("flags-bit0"), QString("bit0"));
-    QVERIFY(readEntry(sc3, "flags-bit0", Flags()) == bit0);
+    QVERIFY(sc3.readEntry("flags-bit0", Flags()) == bit0);
 
     int eid = staticMetaObject.indexOfEnumerator("Flags");
     QVERIFY(eid != -1);
@@ -575,7 +575,7 @@ void KConfigTest::testEnums()
     Flags bitfield = bit0 | bit1;
 
     QCOMPARE(sc3.readEntry("flags-bit0-bit1"), QString(me.valueToKeys(bitfield)));
-    QVERIFY(readEntry(sc3, "flags-bit0-bit1", Flags()) == bitfield);
+    QVERIFY(sc3.readEntry("flags-bit0-bit1", Flags()) == bitfield);
 }
 
 void KConfigTest::testEntryMap()
diff --git a/src/core/kconfiggroup.h b/src/core/kconfiggroup.h
index 1bcce58..3c4bce8 100644
--- a/src/core/kconfiggroup.h
+++ b/src/core/kconfiggroup.h
@@ -243,16 +243,13 @@ public:
      * @see writeEntry(), deleteEntry(), hasKey()
      */
     template <typename T>
-    inline T readEntry(const QString &key, const T &aDefault) const
+    T readEntry(const QString &key, const T &aDefault) const
     {
-        return readCheck(key.toUtf8().constData(), aDefault);
+        return readEntry(key.toUtf8().constData(), aDefault);
     }
     /** Overload for readEntry(const QString&, const T&) const */
     template <typename T>
-    inline T readEntry(const char *key, const T &aDefault) const
-    {
-        return readCheck(key, aDefault);
-    }
+    T readEntry(const char *key, const T &aDefault) const;
 
     /**
      * Reads the value of an entry specified by @p key in the current group
@@ -322,16 +319,13 @@ public:
      * @see readXdgListEntry(), writeEntry(), deleteEntry(), hasKey()
      */
     template<typename T>
-    inline QList<T> readEntry(const QString &key, const QList<T> &aDefault) const
+    QList<T> readEntry(const QString &key, const QList<T> &aDefault) const
     {
-        return readListCheck(key.toUtf8().constData(), aDefault);
+        return readEntry(key.toUtf8().constData(), aDefault);
     }
     /** Overload for readEntry(const QString&, const QList<T>&) */
     template<typename T>
-    inline QList<T> readEntry(const char *key, const QList<T> &aDefault) const
-    {
-        return readListCheck(key, aDefault);
-    }
+    QList<T> readEntry(const char *key, const QList<T> &aDefault) const;
 
     /**
      * Reads a list of strings from the config object, following XDG
@@ -428,15 +422,12 @@ public:
 
     /** Overload for writeEntry(const QString&, const QVariant&, WriteConfigFlags) \
*/  template <typename T>
-    inline void writeEntry(const char *key, const T &value, WriteConfigFlags pFlags \
                = Normal)
-    {
-        writeCheck(key, value, pFlags);
-    }
+    void writeEntry(const char *key, const T &value, WriteConfigFlags pFlags = \
                Normal);
     /** Overload for writeEntry(const QString&, const QVariant&, WriteConfigFlags) \
*/  template <typename T>
-    inline void writeEntry(const QString &key, const T &value, WriteConfigFlags \
pFlags = Normal) +    void writeEntry(const QString &key, const T &value, \
WriteConfigFlags pFlags = Normal)  {
-        writeCheck(key.toUtf8().constData(), value, pFlags);
+        writeEntry(key.toUtf8().constData(), value, pFlags);
     }
 
     /** Overload for writeEntry(const QString&, const QVariant&, WriteConfigFlags) \
*/ @@ -455,16 +446,13 @@ public:
 
     /** Overload for writeEntry(const QString&, const QVariant&, WriteConfigFlags) \
*/  template <typename T>
-    inline void writeEntry(const QString &key, const QList<T> &value, \
WriteConfigFlags pFlags = Normal) +    void writeEntry(const QString &key, const \
QList<T> &value, WriteConfigFlags pFlags = Normal)  {
-        writeListCheck(key.toUtf8().constData(), value, pFlags);
+        writeEntry(key.toUtf8().constData(), value, pFlags);
     }
     /** Overload for writeEntry(const QString&, const QVariant&, WriteConfigFlags) \
*/  template <typename T>
-    inline void writeEntry(const char *key, const QList<T> &value, WriteConfigFlags \
                pFlags = Normal)
-    {
-        writeListCheck(key, value, pFlags);
-    }
+    void writeEntry(const char *key, const QList<T> &value, WriteConfigFlags pFlags \
= Normal);  
     /**
      * Writes a list of strings to the config object, following XDG
@@ -645,18 +633,6 @@ protected:
 private:
     QExplicitlySharedDataPointer<KConfigGroupPrivate> d;
 
-    template<typename T>
-    inline T readCheck(const char *key, const T &defaultValue) const;
-
-    template<typename T>
-    inline QList<T> readListCheck(const char *key, const QList<T> &defaultValue) \
                const;
-
-    template<typename T>
-    inline void writeCheck(const char *key, const T &value, WriteConfigFlags \
                pFlags);
-
-    template<typename T>
-    inline void writeListCheck(const char *key, const QList<T> &value, \
                WriteConfigFlags pFlags);
-
     friend class KConfigGroupPrivate;
 
     /**
@@ -683,63 +659,72 @@ private:
  * use the macro
  * <code>KCONFIGGROUP_DECLARE_ENUM_QOBJECT(MyClass, MyEnum)</code>
  *
- * After that, you can use readEntry(group, key, value) and writeEntry(group, key, \
                value[, flags]).
- * Note that those are global functions, NOT member functions of KConfigGroup.
- *
  */
-#define KCONFIGGROUP_DECLARE_ENUM_QOBJECT(Class, Enum)                     \
-    inline Class::Enum readEntry(const KConfigGroup& group, const char* key, const \
                Class::Enum& def) \
-    {                                                                          \
+#define KCONFIGGROUP_DECLARE_ENUM_QOBJECT(Class, Enum)                             \
+    template<>                                                                     \
+    Class::Enum KConfigGroup::readEntry(const char* key, const Class::Enum& def) \
const\ +    {                                                                         \
                \
         const QMetaObject* M_obj = &Class::staticMetaObject;                       \
         const int M_index = M_obj->indexOfEnumerator(#Enum);                       \
         if(M_index == -1) qFatal(KCONFIGGROUP_ENUMERATOR_ERROR(#Enum));            \
         const QMetaEnum M_enum = M_obj->enumerator(M_index);                       \
-        const QByteArray M_data = group.readEntry(key, \
QByteArray(M_enum.valueToKey(def)));\ +        const QByteArray M_data = \
                readEntry(key, QByteArray(M_enum.valueToKey(def)));\
         return static_cast<Class::Enum>(M_enum.keyToValue(M_data.constData()));    \
-    }                                                                          \
-    inline void writeEntry(KConfigGroup& group, const char* key, const Class::Enum& \
                value, KConfigBase::WriteConfigFlags flags = KConfigBase::Normal)\
-    {                                                                          \
+    }                                                                              \
+    inline Class::Enum Q_DECL_DEPRECATED readEntry(const KConfigGroup& group, const \
char* key, const Class::Enum& def)\ +    { return group.readEntry(key, def); }        \
\ +    template<>                                                                     \
\ +    void KConfigGroup::writeEntry(const char* key, const Class::Enum& value, \
KConfigBase::WriteConfigFlags flags)\ +    {                                          \
                \
         const QMetaObject* M_obj = &Class::staticMetaObject;                       \
         const int M_index = M_obj->indexOfEnumerator(#Enum);                       \
         if(M_index == -1) qFatal(KCONFIGGROUP_ENUMERATOR_ERROR(#Enum));            \
         const QMetaEnum M_enum = M_obj->enumerator(M_index);                       \
-        group.writeEntry(key, QByteArray(M_enum.valueToKey(value)), flags);        \
-    }
+        writeEntry(key, QByteArray(M_enum.valueToKey(value)), flags);              \
+    }                                                                              \
+    inline void Q_DECL_DEPRECATED writeEntry(KConfigGroup& group, const char* key, \
const Class::Enum& value, KConfigBase::WriteConfigFlags flags = KConfigBase::Normal)\ \
+    { group.writeEntry(key, value, flags); }  
 /**
  * Similar to KCONFIGGROUP_DECLARE_ENUM_QOBJECT but for flags declared with \
                Q_FLAGS()
  * (where multiple values can be set at the same time)
  */
-#define KCONFIGGROUP_DECLARE_FLAGS_QOBJECT(Class, Flags)                    \
-    inline Class::Flags readEntry(const KConfigGroup& group, const char* key, const \
                Class::Flags& def) \
-    {                                                                           \
+#define KCONFIGGROUP_DECLARE_FLAGS_QOBJECT(Class, Flags)                            \
\ +    template<>                                                                     \
\ +    Class::Flags KConfigGroup::readEntry(const char* key, const Class::Flags& def) \
const\ +    {                                                                         \
                \
         const QMetaObject* M_obj = &Class::staticMetaObject;                        \
                \
         const int M_index = M_obj->indexOfEnumerator(#Flags);                       \
                \
         if(M_index == -1) qFatal(KCONFIGGROUP_ENUMERATOR_ERROR(#Flags));            \
                \
         const QMetaEnum M_enum = M_obj->enumerator(M_index);                        \
                \
-        const QByteArray M_data = group.readEntry(key, \
QByteArray(M_enum.valueToKeys(def)));\ +        const QByteArray M_data = \
                readEntry(key, QByteArray(M_enum.valueToKeys(def)));\
         return static_cast<Class::Flags>(M_enum.keysToValue(M_data.constData()));   \
                \
-    }                                                                           \
-    inline void writeEntry(KConfigGroup& group, const char* key, const Class::Flags& \
                value, KConfigBase::WriteConfigFlags flags = KConfigBase::Normal)\
-    {                                                                           \
+    }                                                                               \
\ +    inline Class::Flags Q_DECL_DEPRECATED readEntry(const KConfigGroup& group, \
const char* key, const Class::Flags& def)\ +    { return group.readEntry(key, def);}  \
\ +    template<>                                                                     \
\ +    void KConfigGroup::writeEntry(const char* key, const Class::Flags& value, \
KConfigBase::WriteConfigFlags flags)\ +    {                                          \
                \
         const QMetaObject* M_obj = &Class::staticMetaObject;                        \
                \
         const int M_index = M_obj->indexOfEnumerator(#Flags);                       \
                \
         if(M_index == -1) qFatal(KCONFIGGROUP_ENUMERATOR_ERROR(#Flags));            \
                \
         const QMetaEnum M_enum = M_obj->enumerator(M_index);                        \
                \
-        group.writeEntry(key, QByteArray(M_enum.valueToKeys(value)), flags);        \
                \
-    }
+        writeEntry(key, QByteArray(M_enum.valueToKeys(value)), flags);              \
\ +    }                                                                              \
\ +    inline void Q_DECL_DEPRECATED writeEntry(KConfigGroup& group, const char* key, \
const Class::Flags& value, KConfigBase::WriteConfigFlags flags = \
KConfigBase::Normal)\ +    { group.writeEntry(key, value, flags); }
 
 #include "conversioncheck.h"
 
 template <typename T>
-T KConfigGroup::readCheck(const char *key, const T &defaultValue) const
+T KConfigGroup::readEntry(const char *key, const T &defaultValue) const
 {
     ConversionCheck::to_QVariant<T>();
     return qvariant_cast<T>(readEntry(key, qVariantFromValue(defaultValue)));
 }
 
 template <typename T>
-QList<T> KConfigGroup::readListCheck(const char *key, const QList<T> &defaultValue) \
const +QList<T> KConfigGroup::readEntry(const char *key, const QList<T> \
&defaultValue) const  {
     ConversionCheck::to_QVariant<T>();
     ConversionCheck::to_QString<T>();
@@ -760,16 +745,14 @@ QList<T> KConfigGroup::readListCheck(const char *key, const \
QList<T> &defaultVal  }
 
 template <typename T>
-void KConfigGroup::writeCheck(const char *key, const T &value,
-                              WriteConfigFlags pFlags)
+void KConfigGroup::writeEntry(const char *key, const T &value, WriteConfigFlags \
pFlags)  {
     ConversionCheck::to_QVariant<T>();
     writeEntry(key, qVariantFromValue(value), pFlags);
 }
 
 template <typename T>
-void KConfigGroup::writeListCheck(const char *key, const QList<T> &list,
-                                  WriteConfigFlags pFlags)
+void KConfigGroup::writeEntry(const char *key, const QList<T> &list, \
WriteConfigFlags pFlags)  {
     ConversionCheck::to_QVariant<T>();
     ConversionCheck::to_QString<T>();


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic