From 41a77c65d6154411d67c89b530c582ebfd9bbdd7 Mon Sep 17 00:00:00 2001 From: Burak Hancerli Date: Mon, 28 Apr 2025 16:18:25 +0200 Subject: [PATCH] QmlDesigner: Move source location into Category Change-Id: Id3979a854be03aae0fa2ef062bc9d84ecb08d5ae Reviewed-by: Marco Bubke --- src/libs/nanotrace/nanotracehr.h | 41 ++++++++++++++ .../libs/designercore/CMakeLists.txt | 1 - .../libs/designercore/include/modelnode.h | 2 +- .../libs/designercore/include/nodemetainfo.h | 2 +- .../designercore/tracing/qmldesignertracing.h | 1 + .../qmldesignertracingsourcelocation.h | 56 ------------------- 6 files changed, 44 insertions(+), 59 deletions(-) delete mode 100644 src/plugins/qmldesigner/libs/designercore/tracing/qmldesignertracingsourcelocation.h diff --git a/src/libs/nanotrace/nanotracehr.h b/src/libs/nanotrace/nanotracehr.h index e70e66e22fc..afe66867831 100644 --- a/src/libs/nanotrace/nanotracehr.h +++ b/src/libs/nanotrace/nanotracehr.h @@ -7,6 +7,7 @@ #include "staticstring.h" +#include #include #include #include @@ -1155,6 +1156,14 @@ template class Category { public: + class SourceLocation + { + public: + template + friend void convertToString(String &, SourceLocation) + {} + }; + using IsActive = std::false_type; using ArgumentType = typename TraceEvent::ArgumentType; using ArgumentsStringType = typename TraceEvent::ArgumentsStringType; @@ -1207,6 +1216,38 @@ class Category {}; public: + class SourceLocation : public Sqlite::source_location + { + public: + consteval SourceLocation( + const char *fileName = __builtin_FILE(), + const char *functionName = __builtin_FUNCTION(), + const uint_least32_t line = __builtin_LINE()) + : Sqlite::source_location(Sqlite::source_location::current(fileName, functionName, line)) + {} + + template + friend void convertToString(String &string, SourceLocation sourceLocation) + { + using NanotraceHR::dictonary; + using NanotraceHR::keyValue; + auto dict = dictonary( + keyValue("file", sourceLocation.file_name()), + keyValue("function", sourceLocation.function_name()), + keyValue("line", sourceLocation.line())); + convertToString(string, dict); + + string.append(','); + convertToString(string, "id"); + string.append(':'); + string.append('\"'); + string.append(sourceLocation.file_name()); + string.append(':'); + string.append(sourceLocation.line()); + string.append('\"'); + } + }; + using IsActive = std::true_type; using ArgumentType = typename TraceEvent::ArgumentType; using ArgumentsStringType = typename TraceEvent::ArgumentsStringType; diff --git a/src/plugins/qmldesigner/libs/designercore/CMakeLists.txt b/src/plugins/qmldesigner/libs/designercore/CMakeLists.txt index 3a7196d412a..b5f529c8e3a 100644 --- a/src/plugins/qmldesigner/libs/designercore/CMakeLists.txt +++ b/src/plugins/qmldesigner/libs/designercore/CMakeLists.txt @@ -162,7 +162,6 @@ extend_qtc_library(QmlDesignerCore SOURCES_PREFIX tracing SOURCES qmldesignertracing.cpp qmldesignertracing.h - qmldesignertracingsourcelocation.h ) extend_qtc_library(QmlDesignerCore diff --git a/src/plugins/qmldesigner/libs/designercore/include/modelnode.h b/src/plugins/qmldesigner/libs/designercore/include/modelnode.h index 5e0661b79bf..1f894e976b5 100644 --- a/src/plugins/qmldesigner/libs/designercore/include/modelnode.h +++ b/src/plugins/qmldesigner/libs/designercore/include/modelnode.h @@ -6,7 +6,7 @@ #include "abstractproperty.h" #include "auxiliarydata.h" -#include +#include QT_BEGIN_NAMESPACE class QTextStream; diff --git a/src/plugins/qmldesigner/libs/designercore/include/nodemetainfo.h b/src/plugins/qmldesigner/libs/designercore/include/nodemetainfo.h index 641394af487..afdc18f2a78 100644 --- a/src/plugins/qmldesigner/libs/designercore/include/nodemetainfo.h +++ b/src/plugins/qmldesigner/libs/designercore/include/nodemetainfo.h @@ -9,7 +9,7 @@ #include #include #include -#include +#include #include #include diff --git a/src/plugins/qmldesigner/libs/designercore/tracing/qmldesignertracing.h b/src/plugins/qmldesigner/libs/designercore/tracing/qmldesignertracing.h index 93c351cf385..b27cab01d0c 100644 --- a/src/plugins/qmldesigner/libs/designercore/tracing/qmldesignertracing.h +++ b/src/plugins/qmldesigner/libs/designercore/tracing/qmldesignertracing.h @@ -40,6 +40,7 @@ constexpr NanotraceHR::Tracing tracingStatus() } using Category = NanotraceHR::StringCategory; +using SourceLocation = Category::SourceLocation; using AsynchronousToken = Category::AsynchronousTokenType; [[gnu::pure]] QMLDESIGNERCORE_EXPORT Category &category(); diff --git a/src/plugins/qmldesigner/libs/designercore/tracing/qmldesignertracingsourcelocation.h b/src/plugins/qmldesigner/libs/designercore/tracing/qmldesignertracingsourcelocation.h deleted file mode 100644 index 67d3fc53105..00000000000 --- a/src/plugins/qmldesigner/libs/designercore/tracing/qmldesignertracingsourcelocation.h +++ /dev/null @@ -1,56 +0,0 @@ -// Copyright (C) 2025 The Qt Company Ltd. -// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 - -#pragma once - -#include -#include - -namespace QmlDesigner { - -namespace ModelTracing { - -#ifdef ENABLE_MODEL_TRACING -class SourceLocation : public Sqlite::source_location -{ -public: - consteval SourceLocation(const char *fileName = __builtin_FILE(), - const char *functionName = __builtin_FUNCTION(), - const uint_least32_t line = __builtin_LINE()) - : Sqlite::source_location(Sqlite::source_location::current(fileName, functionName, line)) - {} - - template - friend void convertToString(String &string, SourceLocation sourceLocation) - { - using NanotraceHR::dictonary; - using NanotraceHR::keyValue; - auto dict = dictonary(keyValue("file", sourceLocation.file_name()), - keyValue("function", sourceLocation.function_name()), - keyValue("line", sourceLocation.line())); - convertToString(string, dict); - - string.append(','); - convertToString(string, "id"); - string.append(':'); - string.append('\"'); - string.append(sourceLocation.file_name()); - string.append(':'); - string.append(sourceLocation.line()); - string.append('\"'); - } -}; - -#else -class SourceLocation -{ -public: - template - friend void convertToString(String &, SourceLocation) - {} -}; -#endif - -} // namespace ModelTracing - -} // namespace QmlDesigner