umbrello 25.12.3
Umbrello UML Modeller is a Unified Modelling Language (UML) diagram program based on KDE Technology
debug_utils.h File Reference
#include <QtGlobal>
#include <QLoggingCategory>
#include <QMetaEnum>
#include <QTreeWidget>
Include dependency graph for debug_utils.h:

Go to the source code of this file.

Classes

class  Tracer
 The singleton class for switching on or off debug messages. More...
 
class  Tracer::MapEntry
 

Macros

#define uDebug()
 
#define uError()
 
#define uWarning()
 
#define DBG_SRC   QString::fromLatin1(metaObject()->className())
 
#define DEBUG_SHOW_FILTER()
 
#define DEBUG_N(latin1str)
 
#define DEBUG()
 
#define IS_DEBUG_ENABLED()
 
#define DEBUG_REGISTER(src)
 
#define DEBUG_REGISTER_DISABLED(src)
 
#define uIgnoreZeroPointer(a)
 
#define ENUM_NAME(o, e, v)
 
#define logDebug0(s)
 
#define logInfo0(s)
 
#define logWarn0(s)
 
#define logError0(s)
 
#define logDebug1(s, a)
 
#define logInfo1(s, a)
 
#define logWarn1(s, a)
 
#define logError1(s, a)
 
#define logDebug2(s, a, b)
 
#define logInfo2(s, a, b)
 
#define logWarn2(s, a, b)
 
#define logError2(s, a, b)
 
#define logDebug3(s, a, b, c)
 
#define logInfo3(s, a, b, c)
 
#define logWarn3(s, a, b, c)
 
#define logError3(s, a, b, c)
 
#define logDebug4(s, a, b, c, d)
 
#define logInfo4(s, a, b, c, d)
 
#define logWarn4(s, a, b, c, d)
 
#define logError4(s, a, b, c, d)
 
#define logDebug5(s, a, b, c, d, e)
 
#define logInfo5(s, a, b, c, d, e)
 
#define logWarn5(s, a, b, c, d, e)
 
#define logError5(s, a, b, c, d, e)
 
#define logDebug6(s, a, b, c, d, e, f)
 

Functions

template<typename T>
QString toString (const T &value)
 

Macro Definition Documentation

◆ DBG_SRC

#define DBG_SRC   QString::fromLatin1(metaObject()->className())

◆ DEBUG

#define DEBUG ( )
Value:
#define DBG_SRC
Definition assocrules.cpp:10
#define DEBUG_N(latin1str)
Definition debug_utils.h:116

◆ DEBUG_N

#define DEBUG_N ( latin1str)
Value:
if (Tracer::instance()->logToConsole() || Tracer::instance()->isEnabled(latin1str)) uDebug()
static Tracer * instance()
Definition debug_utils.cpp:109
#define uDebug()
Definition debug_utils.h:108

◆ DEBUG_REGISTER

#define DEBUG_REGISTER ( src)
Value:
class src##Tracer { \
public: \
src##Tracer() { Tracer::registerClass(#src, true, __FILE__); } \
}; \
static src##Tracer src##TracerGlobal;
The singleton class for switching on or off debug messages.
Definition debug_utils.h:58
static void registerClass(const char *name, bool state=true, const char *filePath=nullptr)
Definition debug_utils.cpp:237

◆ DEBUG_REGISTER_DISABLED

#define DEBUG_REGISTER_DISABLED ( src)
Value:
class src##Tracer { \
public: \
src##Tracer() { Tracer::registerClass(#src, false, __FILE__); } \
}; \
static src##Tracer src##TracerGlobal;

◆ DEBUG_SHOW_FILTER

#define DEBUG_SHOW_FILTER ( )
Value:

◆ ENUM_NAME

#define ENUM_NAME ( o,
e,
v )
Value:
(o::staticMetaObject.enumerator(o::staticMetaObject.indexOfEnumerator(#e)).valueToKey((v)))
std::vector< std::string > v
Definition cxx11-initializer-lists.h:19

In a Q_OBJECT class define any enum as Q_ENUMS. With the above the following macro returns the name of a given enum. This can be used in debug output. TODO: convert it to a function.

◆ IS_DEBUG_ENABLED

#define IS_DEBUG_ENABLED ( )
Value:
bool isEnabled(const QString &name) const
Definition debug_utils.cpp:157

◆ logDebug0

#define logDebug0 ( s)
Value:
if (UMLApp::app()->logToConsole() || Tracer::instance()->isEnabled(DBG_SRC)) \
UMLApp::app()->logDebug(QStringLiteral(s))
static UMLApp * app()
Definition umlapp.cpp:284

◆ logDebug1

#define logDebug1 ( s,
a )
Value:
if (UMLApp::app()->logToConsole() || Tracer::instance()->isEnabled(DBG_SRC)) \
do { QString fmt = QString(QStringLiteral(s)).arg(a); UMLApp::app()->logDebug(fmt); } while (0)
void logDebug(const QString &s)
Definition umlapp.cpp:1777
QString a
Definition petalnode.cpp:13

◆ logDebug2

#define logDebug2 ( s,
a,
b )
Value:
if (UMLApp::app()->logToConsole() || Tracer::instance()->isEnabled(DBG_SRC)) \
do { QString fmt = QString(QStringLiteral(s)).arg(a).arg(b); UMLApp::app()->logDebug(fmt); } while (0)
bool b
Definition cxx11-null-pointer-constant.h:6

◆ logDebug3

#define logDebug3 ( s,
a,
b,
c )
Value:
if (UMLApp::app()->logToConsole() || Tracer::instance()->isEnabled(DBG_SRC)) \
do { QString fmt = QString(QStringLiteral(s)).arg(a).arg(b).arg(c); UMLApp::app()->logDebug(fmt); } while (0)

◆ logDebug4

#define logDebug4 ( s,
a,
b,
c,
d )
Value:
if (UMLApp::app()->logToConsole() || Tracer::instance()->isEnabled(DBG_SRC)) \
do { QString fmt = QString(QStringLiteral(s)).arg(a).arg(b).arg(c).arg(d); UMLApp::app()->logDebug(fmt); } while (0)

◆ logDebug5

#define logDebug5 ( s,
a,
b,
c,
d,
e )
Value:
if (UMLApp::app()->logToConsole() || Tracer::instance()->isEnabled(DBG_SRC)) \
do { QString fmt = QString(QStringLiteral(s)).arg(a).arg(b).arg(c).arg(d).arg(e); \
UMLApp::app()->logDebug(fmt); } while (0)

◆ logDebug6

#define logDebug6 ( s,
a,
b,
c,
d,
e,
f )
Value:
if (UMLApp::app()->logToConsole() || Tracer::instance()->isEnabled(DBG_SRC)) \
do { QString fmt = QString(QStringLiteral(s)).arg(a).arg(b).arg(c).arg(d).arg(e).arg(f); UMLApp::app()->logDebug(fmt); } while (0)

◆ logError0

#define logError0 ( s)
Value:
UMLApp::app()->logError(QStringLiteral(s))
void logError(const QString &s)
Definition umlapp.cpp:1817

◆ logError1

#define logError1 ( s,
a )
Value:
do { QString fmt = QString(QStringLiteral(s)).arg(a); UMLApp::app()->logError(fmt); } while (0)

◆ logError2

#define logError2 ( s,
a,
b )
Value:
do { QString fmt = QString(QStringLiteral(s)).arg(a).arg(b); UMLApp::app()->logError(fmt); } while (0)

◆ logError3

#define logError3 ( s,
a,
b,
c )
Value:
do { QString fmt = QString(QStringLiteral(s)).arg(a).arg(b).arg(c); UMLApp::app()->logError(fmt); } while (0)

◆ logError4

#define logError4 ( s,
a,
b,
c,
d )
Value:
do { QString fmt = QString(QStringLiteral(s)).arg(a).arg(b).arg(c).arg(d); UMLApp::app()->logError(fmt); } while (0)

◆ logError5

#define logError5 ( s,
a,
b,
c,
d,
e )
Value:
do { QString fmt = QString(QStringLiteral(s)).arg(a).arg(b).arg(c).arg(d).arg(e); \
UMLApp::app()->logError(fmt); } while (0)

◆ logInfo0

#define logInfo0 ( s)
Value:
UMLApp::app()->logInfo(QStringLiteral(s))
void logInfo(const QString &s)
Definition umlapp.cpp:1793

◆ logInfo1

#define logInfo1 ( s,
a )
Value:
do { QString fmt = QString(QStringLiteral(s)).arg(a); UMLApp::app()->logInfo(fmt); } while (0)

◆ logInfo2

#define logInfo2 ( s,
a,
b )
Value:
do { QString fmt = QString(QStringLiteral(s)).arg(a).arg(b); UMLApp::app()->logInfo(fmt); } while (0)

◆ logInfo3

#define logInfo3 ( s,
a,
b,
c )
Value:
do { QString fmt = QString(QStringLiteral(s)).arg(a).arg(b).arg(c); UMLApp::app()->logInfo(fmt); } while (0)

◆ logInfo4

#define logInfo4 ( s,
a,
b,
c,
d )
Value:
do { QString fmt = QString(QStringLiteral(s)).arg(a).arg(b).arg(c).arg(d); UMLApp::app()->logInfo(fmt); } while (0)

◆ logInfo5

#define logInfo5 ( s,
a,
b,
c,
d,
e )
Value:
do { QString fmt = QString(QStringLiteral(s)).arg(a).arg(b).arg(c).arg(d).arg(e); \
UMLApp::app()->logInfo(fmt); } while (0)

◆ logWarn0

#define logWarn0 ( s)
Value:
UMLApp::app()->logWarn(QStringLiteral(s))
void logWarn(const QString &s)
Definition umlapp.cpp:1805

◆ logWarn1

#define logWarn1 ( s,
a )
Value:
do { QString fmt = QString(QStringLiteral(s)).arg(a); UMLApp::app()->logWarn(fmt); } while (0)

◆ logWarn2

#define logWarn2 ( s,
a,
b )
Value:
do { QString fmt = QString(QStringLiteral(s)).arg(a).arg(b); UMLApp::app()->logWarn(fmt); } while (0)

◆ logWarn3

#define logWarn3 ( s,
a,
b,
c )
Value:
do { QString fmt = QString(QStringLiteral(s)).arg(a).arg(b).arg(c); UMLApp::app()->logWarn(fmt); } while (0)

◆ logWarn4

#define logWarn4 ( s,
a,
b,
c,
d )
Value:
do { QString fmt = QString(QStringLiteral(s)).arg(a).arg(b).arg(c).arg(d); UMLApp::app()->logWarn(fmt); } while (0)

◆ logWarn5

#define logWarn5 ( s,
a,
b,
c,
d,
e )
Value:
do { QString fmt = QString(QStringLiteral(s)).arg(a).arg(b).arg(c).arg(d).arg(e); \
UMLApp::app()->logWarn(fmt); } while (0)

◆ uDebug

#define uDebug ( )
Value:
qCDebug(UMBRELLO)

◆ uError

#define uError ( )
Value:
qCCritical(UMBRELLO)

◆ uIgnoreZeroPointer

#define uIgnoreZeroPointer ( a)
Value:
if (!a) { uDebug() << "zero pointer detected" << __FILE__ << __LINE__; continue; }

◆ uWarning

#define uWarning ( )
Value:
qCWarning(UMBRELLO)

Function Documentation

◆ toString()

template<typename T>
QString toString ( const T & value)