From c1622951b3239c54c26674edb8548278fabb8a67 Mon Sep 17 00:00:00 2001 From: Klaus Basan Date: Thu, 23 Apr 2020 20:15:57 +0200 Subject: [PATCH] Util. function for class name --- src/blackmisc/metadatautils.cpp | 24 +++++++++++++++++++++++- src/blackmisc/metadatautils.h | 9 ++++++++- 2 files changed, 31 insertions(+), 2 deletions(-) diff --git a/src/blackmisc/metadatautils.cpp b/src/blackmisc/metadatautils.cpp index 3b6afa86e..bd38e4965 100644 --- a/src/blackmisc/metadatautils.cpp +++ b/src/blackmisc/metadatautils.cpp @@ -9,8 +9,9 @@ #include "metadatautils.h" #include -#include #include +#include +#include namespace BlackMisc { @@ -43,6 +44,27 @@ namespace BlackMisc return meta; } + QString className(const QObject *object) + { + if (!object) { return "nullptr"; } + return object->metaObject()->className(); + } + + QString classNameShort(const QObject *object) + { + if (!object) { return "nullptr"; } + const QString fn = object->metaObject()->className(); + if (fn.contains("::")) + { + const int index = fn.lastIndexOf("::"); + if (fn.length() > index + 3) + { + return fn.mid(index + 2); + } + } + return fn; + } + #ifdef Q_CC_MSVC #include diff --git a/src/blackmisc/metadatautils.h b/src/blackmisc/metadatautils.h index d4ff41071..212c572c5 100644 --- a/src/blackmisc/metadatautils.h +++ b/src/blackmisc/metadatautils.h @@ -13,11 +13,12 @@ #include "blackmisc/blackmiscexport.h" -#include #include +#include class QMetaType; class QTextStream; +class QObject; struct QMetaObject; //! Metadata util functions @@ -36,6 +37,12 @@ namespace BlackMisc //! Real heap size of an object BLACKMISC_EXPORT size_t heapSizeOf(const QMetaObject &objectType); + //! Class name as from QMetaObject::className with namespace + BLACKMISC_EXPORT QString className(const QObject *object); + + //! Class name as from QMetaObject::className without namespace + BLACKMISC_EXPORT QString classNameShort(const QObject *object); + } // ns #endif // guard