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

List:       kde-core-devel
Subject:    KDE/kdelibs/kdecore
From:       David Faure <faure () kde ! org>
Date:       2009-08-17 18:22:48
Message-ID: 1250533368.959513.25131.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 1012502 by dfaure:

Add a "bool enable" to registerArea so that verbose debug areas can be \
disabled by default This BIC, but the method is new in trunk, so no big \
                deal, just more recompilation.
CCMAIL: kde-core-devel@kde.org


 M  +5 -5      io/kdebug.cpp  
 M  +3 -1      io/kdebug.h  
 M  +10 -0     tests/kdebug_unittest.cpp  
 M  +1 -0      tests/kdebug_unittest.h  


--- trunk/KDE/kdelibs/kdecore/io/kdebug.cpp #1012501:1012502
@@ -401,7 +401,7 @@
             static bool s_firstDebugFromApplication = true;
             if (s_firstDebugFromApplication) {
                 s_firstDebugFromApplication = false;
-                writeGroupForNamedArea(it->name);
+                writeGroupForNamedArea(it->name, true);
             }
         }
 
@@ -614,7 +614,7 @@
         return printHeader(s, areaName, debugFile, line, funcinfo, type, \
colored);  }
 
-    void writeGroupForNamedArea(const QByteArray& areaName)
+    void writeGroupForNamedArea(const QByteArray& areaName, bool enabled)
     {
         // Ensure that this area name appears in kdebugrc, so that users \
(via kdebugdialog)  // can turn it off.
@@ -623,7 +623,7 @@
             KConfigGroup cg(cfgObj, QString::fromUtf8(areaName));
             const QString key = QString::fromLatin1("InfoOutput");
             if (!cg.hasKey(key)) {
-                cg.writeEntry(key, int(KDebugPrivate::QtOutput));
+                cg.writeEntry(key, int(enabled ? KDebugPrivate::QtOutput : \
KDebugPrivate::NoOutput));  }
         }
     }
@@ -770,7 +770,7 @@
     return KDebug::hasNullOutput(type, area);
 }
 
-int KDebug::registerArea(const QByteArray& areaName)
+int KDebug::registerArea(const QByteArray& areaName, bool enabled)
 {
     // TODO for optimization: static int s_lastAreaNumber = 1;
     KDebugPrivate* d = kDebug_data;
@@ -782,7 +782,7 @@
     KDebugPrivate::Area areaData;
     areaData.name = areaName;
     d->cache.insert(areaNumber, areaData);
-    d->writeGroupForNamedArea(areaName);
+    d->writeGroupForNamedArea(areaName, enabled);
     return areaNumber;
 }
 
--- trunk/KDE/kdelibs/kdecore/io/kdebug.h #1012501:1012502
@@ -254,6 +254,8 @@
      * @since 4.4
      * Register a debug area dynamically.
      * @param areaName the name of the area
+     * @param enabled whether debug output should be enabled by default
+     * (users can override this in kdebugdialog or with DisableAll=true in \
                kdebugrc)
      * @return the area code that was allocated for this area
      *
      * Typical usage:
@@ -270,7 +272,7 @@
      * declare it in one file without static, and use "extern int \
                debugArea();"
      * in other files (with a better name for the function of course).
      */
-    static KDECORE_EXPORT int registerArea(const QByteArray& areaName);
+    static KDECORE_EXPORT int registerArea(const QByteArray& areaName, \
bool enabled = true);  };
 
 
--- trunk/KDE/kdelibs/kdecore/tests/kdebug_unittest.cpp #1012501:1012502
@@ -160,6 +160,16 @@
     compareLines(expected, "myarea.dbg");
 }
 
+void KDebugTest::testDisabledDynamicArea()
+{
+    const int verboseArea = KDebug::registerArea("verbosearea", false);
+    QVERIFY(verboseArea > 0);
+    kClearDebugConfig(); // force a sync() of KDebug's own kdebugrc so \
that it gets written out +    KConfig config("kdebugrc");
+    QVERIFY(config.hasGroup("verbosearea"));
+    kDebug(verboseArea) << "TEST DEBUG using verboseArea" << verboseArea;
+}
+
 #include <QThreadPool>
 #include <qtconcurrentrun.h>
 
--- trunk/KDE/kdelibs/kdecore/tests/kdebug_unittest.h #1012501:1012502
@@ -34,6 +34,7 @@
     void testDebugToFile();
     void testDisableArea();
     void testDynamicArea();
+    void testDisabledDynamicArea();
     void testMultipleThreads();
 
 private:


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

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