From fec896e712ecdf1e17763276c062b22128557c7e Mon Sep 17 00:00:00 2001 From: Christian Kandeler Date: Fri, 12 Jul 2024 11:32:14 +0200 Subject: [PATCH] Utils: Add convenience function for generating a unique Id Change-Id: I74516ef5077009ebcf1d47c724ca63e502729ede Reviewed-by: hjk --- src/libs/utils/id.cpp | 6 ++++++ src/libs/utils/id.h | 2 ++ src/plugins/axivion/axivionsettings.cpp | 3 +-- src/plugins/clangtools/diagnosticconfigswidget.cpp | 3 +-- src/plugins/cmakeprojectmanager/cmakesettingspage.cpp | 3 +-- src/plugins/cmakeprojectmanager/cmaketool.cpp | 5 ++--- src/plugins/cppeditor/clangdiagnosticconfigsmodel.cpp | 3 +-- src/plugins/diffeditor/diffeditordocument.cpp | 1 - src/plugins/gitlab/gitlaboptionspage.cpp | 3 +-- src/plugins/languageclient/client.cpp | 2 +- src/plugins/mesonprojectmanager/mesonwrapper.cpp | 2 -- src/plugins/mesonprojectmanager/tooltreeitem.cpp | 5 ++--- src/plugins/mesonprojectmanager/toolwrapper.cpp | 6 ++---- src/plugins/projectexplorer/customparserssettingspage.cpp | 3 +-- src/plugins/projectexplorer/customtoolchain.cpp | 1 - src/plugins/projectexplorer/devicesupport/devicemanager.cpp | 3 +-- src/plugins/projectexplorer/devicesupport/idevice.cpp | 3 +-- src/plugins/projectexplorer/gnumakeparser.cpp | 2 -- src/plugins/projectexplorer/kit.cpp | 3 +-- src/plugins/texteditor/texteditor.cpp | 2 +- 20 files changed, 25 insertions(+), 36 deletions(-) diff --git a/src/libs/utils/id.cpp b/src/libs/utils/id.cpp index 383d992da0d..b8fbb64a60e 100644 --- a/src/libs/utils/id.cpp +++ b/src/libs/utils/id.cpp @@ -11,6 +11,7 @@ #include #include #include +#include #include namespace Utils { @@ -132,6 +133,11 @@ Id::Id(const char *name) : m_id(theId(name, 0)) {} +Id Id::generate() +{ + return {QUuid::createUuid().toByteArray()}; +} + /*! Returns an internal representation of the id. */ diff --git a/src/libs/utils/id.h b/src/libs/utils/id.h index d1ac2355dd7..0e619c3e345 100644 --- a/src/libs/utils/id.h +++ b/src/libs/utils/id.h @@ -25,6 +25,8 @@ public: Id(const char *name); // Good to use. Id(const QLatin1String &) = delete; + static Id generate(); + Id withSuffix(int suffix) const; Id withSuffix(const char *suffix) const; Id withSuffix(const QString &suffix) const; diff --git a/src/plugins/axivion/axivionsettings.cpp b/src/plugins/axivion/axivionsettings.cpp index 7d54525e06a..66df83726d4 100644 --- a/src/plugins/axivion/axivionsettings.cpp +++ b/src/plugins/axivion/axivionsettings.cpp @@ -22,7 +22,6 @@ #include #include #include -#include #include using namespace Core; @@ -261,7 +260,7 @@ AxivionServer DashboardSettingsWidget::dashboardServer() const if (m_id.isValid()) result.id = m_id; else - result.id = Id::fromName(QUuid::createUuid().toByteArray()); + result.id = Id::generate(); result.dashboard = fixUrl(m_dashboardUrl()); result.username = m_username(); return result; diff --git a/src/plugins/clangtools/diagnosticconfigswidget.cpp b/src/plugins/clangtools/diagnosticconfigswidget.cpp index 51aec7c0400..69369803645 100644 --- a/src/plugins/clangtools/diagnosticconfigswidget.cpp +++ b/src/plugins/clangtools/diagnosticconfigswidget.cpp @@ -42,7 +42,6 @@ #include #include #include -#include using namespace CppEditor; using namespace Utils; @@ -1295,7 +1294,7 @@ void disableChecks(const QList &diagnostics) QTC_ASSERT(configs.isEmpty(), return); config = builtinConfig(); config.setIsReadOnly(false); - config.setId(Utils::Id::fromString(QUuid::createUuid().toString())); + config.setId(Id::generate()); config.setDisplayName(Tr::tr("Custom Configuration")); configs << config; RunSettings runSettings = settings->runSettings(); diff --git a/src/plugins/cmakeprojectmanager/cmakesettingspage.cpp b/src/plugins/cmakeprojectmanager/cmakesettingspage.cpp index ef502436d6f..d8ecf393751 100644 --- a/src/plugins/cmakeprojectmanager/cmakesettingspage.cpp +++ b/src/plugins/cmakeprojectmanager/cmakesettingspage.cpp @@ -29,7 +29,6 @@ #include #include #include -#include using namespace Utils; @@ -95,7 +94,7 @@ public: const FilePath &qchFile, bool autoRun, bool autodetected) - : m_id(Id::fromString(QUuid::createUuid().toString())) + : m_id(Id::generate()) , m_name(name) , m_executable(executable) , m_qchFile(qchFile) diff --git a/src/plugins/cmakeprojectmanager/cmaketool.cpp b/src/plugins/cmakeprojectmanager/cmaketool.cpp index 444ff299f9a..14b57082fba 100644 --- a/src/plugins/cmakeprojectmanager/cmaketool.cpp +++ b/src/plugins/cmakeprojectmanager/cmaketool.cpp @@ -22,7 +22,6 @@ #include #include #include -#include #include @@ -104,7 +103,7 @@ CMakeTool::CMakeTool(Detection d, const Id &id) , m_isAutoDetected(d == AutoDetection) , m_introspection(std::make_unique()) { - QTC_ASSERT(m_id.isValid(), m_id = Id::fromString(QUuid::createUuid().toString())); + QTC_ASSERT(m_id.isValid(), m_id = Id::generate()); } CMakeTool::CMakeTool(const Store &map, bool fromSdk) : @@ -133,7 +132,7 @@ CMakeTool::~CMakeTool() = default; Id CMakeTool::createId() { - return Id::fromString(QUuid::createUuid().toString()); + return Id::generate(); } void CMakeTool::setFilePath(const FilePath &executable) diff --git a/src/plugins/cppeditor/clangdiagnosticconfigsmodel.cpp b/src/plugins/cppeditor/clangdiagnosticconfigsmodel.cpp index 8ebc5ffdb8e..13523337812 100644 --- a/src/plugins/cppeditor/clangdiagnosticconfigsmodel.cpp +++ b/src/plugins/cppeditor/clangdiagnosticconfigsmodel.cpp @@ -10,7 +10,6 @@ #include #include -#include namespace CppEditor { @@ -70,7 +69,7 @@ ClangDiagnosticConfig ClangDiagnosticConfigsModel::createCustomConfig( const ClangDiagnosticConfig &baseConfig, const QString &displayName) { ClangDiagnosticConfig copied = baseConfig; - copied.setId(Utils::Id::fromString(QUuid::createUuid().toString())); + copied.setId(Utils::Id::generate()); copied.setDisplayName(displayName); copied.setIsReadOnly(false); diff --git a/src/plugins/diffeditor/diffeditordocument.cpp b/src/plugins/diffeditor/diffeditordocument.cpp index 1339a326874..9b456a152df 100644 --- a/src/plugins/diffeditor/diffeditordocument.cpp +++ b/src/plugins/diffeditor/diffeditordocument.cpp @@ -19,7 +19,6 @@ #include #include #include -#include using namespace Core; using namespace Utils; diff --git a/src/plugins/gitlab/gitlaboptionspage.cpp b/src/plugins/gitlab/gitlaboptionspage.cpp index 181d5fba829..9a9c666aad9 100644 --- a/src/plugins/gitlab/gitlaboptionspage.cpp +++ b/src/plugins/gitlab/gitlaboptionspage.cpp @@ -23,7 +23,6 @@ #include #include #include -#include using namespace Utils; @@ -110,7 +109,7 @@ GitLabServerWidget::GitLabServerWidget(Mode m, QWidget *parent) GitLabServer GitLabServerWidget::gitLabServer() const { GitLabServer result; - result.id = m_mode == Edit ? Id::fromName(QUuid::createUuid().toByteArray()) : m_id; + result.id = m_mode == Edit ? Id::generate() : m_id; result.host = m_host(); result.description = m_description(); result.token = m_token(); diff --git a/src/plugins/languageclient/client.cpp b/src/plugins/languageclient/client.cpp index 4c2fcf101f6..c680e313bc3 100644 --- a/src/plugins/languageclient/client.cpp +++ b/src/plugins/languageclient/client.cpp @@ -128,7 +128,7 @@ class ClientPrivate : public QObject public: ClientPrivate(Client *client, BaseClientInterface *clientInterface, const Utils::Id &id) : q(client) - , m_id(id.isValid() ? id : Utils::Id::fromString(QUuid::createUuid().toString())) + , m_id(id.isValid() ? id : Id::generate()) , m_clientCapabilities(q->defaultClientCapabilities()) , m_clientInterface(new InterfaceController(clientInterface)) , m_documentSymbolCache(q) diff --git a/src/plugins/mesonprojectmanager/mesonwrapper.cpp b/src/plugins/mesonprojectmanager/mesonwrapper.cpp index b56863692d0..61c295c98be 100644 --- a/src/plugins/mesonprojectmanager/mesonwrapper.cpp +++ b/src/plugins/mesonprojectmanager/mesonwrapper.cpp @@ -6,8 +6,6 @@ #include #include -#include - namespace { template void impl_option_cat(QStringList &list, const First &first) diff --git a/src/plugins/mesonprojectmanager/tooltreeitem.cpp b/src/plugins/mesonprojectmanager/tooltreeitem.cpp index d5915b548d5..56760f86b9f 100644 --- a/src/plugins/mesonprojectmanager/tooltreeitem.cpp +++ b/src/plugins/mesonprojectmanager/tooltreeitem.cpp @@ -8,7 +8,6 @@ #include #include -#include namespace MesonProjectManager { namespace Internal { @@ -16,7 +15,7 @@ namespace Internal { ToolTreeItem::ToolTreeItem(const QString &name) : m_name{name} , m_autoDetected{false} - , m_id(Utils::Id::fromString(QUuid::createUuid().toString())) + , m_id(Utils::Id::generate()) , m_unsavedChanges{true} { self_check(); @@ -37,7 +36,7 @@ ToolTreeItem::ToolTreeItem(const ToolTreeItem &other) : m_name{Tr::tr("Clone of %1").arg(other.m_name)} , m_executable{other.m_executable} , m_autoDetected{false} - , m_id{Utils::Id::fromString(QUuid::createUuid().toString())} + , m_id{Utils::Id::generate()} , m_unsavedChanges{true} { self_check(); diff --git a/src/plugins/mesonprojectmanager/toolwrapper.cpp b/src/plugins/mesonprojectmanager/toolwrapper.cpp index c0da501ec4b..2263c0d512c 100644 --- a/src/plugins/mesonprojectmanager/toolwrapper.cpp +++ b/src/plugins/mesonprojectmanager/toolwrapper.cpp @@ -5,8 +5,6 @@ #include -#include - namespace MesonProjectManager { namespace Internal { @@ -14,7 +12,7 @@ ToolWrapper::ToolWrapper(const QString &name, const Utils::FilePath &path, bool : m_version(read_version(path)) , m_isValid{path.exists() && m_version.isValid} , m_autoDetected{autoDetected} - , m_id{Utils::Id::fromString(QUuid::createUuid().toString())} + , m_id{Utils::Id::generate()} , m_exe{path} , m_name{name} {} @@ -30,7 +28,7 @@ ToolWrapper::ToolWrapper(const QString &name, , m_exe{path} , m_name{name} { - QTC_ASSERT(m_id.isValid(), m_id = Utils::Id::fromString(QUuid::createUuid().toString())); + QTC_ASSERT(m_id.isValid(), m_id = Utils::Id::generate()); } void ToolWrapper::setExe(const Utils::FilePath &newExe) diff --git a/src/plugins/projectexplorer/customparserssettingspage.cpp b/src/plugins/projectexplorer/customparserssettingspage.cpp index b1238f684ac..4f3e429c91a 100644 --- a/src/plugins/projectexplorer/customparserssettingspage.cpp +++ b/src/plugins/projectexplorer/customparserssettingspage.cpp @@ -17,7 +17,6 @@ #include #include #include -#include #include namespace ProjectExplorer { @@ -55,7 +54,7 @@ public: if (dlg.exec() != QDialog::Accepted) return; CustomParserSettings newParser = dlg.settings(); - newParser.id = Utils::Id::fromString(QUuid::createUuid().toString()); + newParser.id = Utils::Id::generate(); newParser.displayName = Tr::tr("New Parser"); m_customParsers << newParser; resetListView(); diff --git a/src/plugins/projectexplorer/customtoolchain.cpp b/src/plugins/projectexplorer/customtoolchain.cpp index 7af523c4376..dd5c03a36cd 100644 --- a/src/plugins/projectexplorer/customtoolchain.cpp +++ b/src/plugins/projectexplorer/customtoolchain.cpp @@ -28,7 +28,6 @@ #include #include #include -#include using namespace Utils; diff --git a/src/plugins/projectexplorer/devicesupport/devicemanager.cpp b/src/plugins/projectexplorer/devicesupport/devicemanager.cpp index 015b215fef5..a00ca0fa7c4 100644 --- a/src/plugins/projectexplorer/devicesupport/devicemanager.cpp +++ b/src/plugins/projectexplorer/devicesupport/devicemanager.cpp @@ -530,7 +530,6 @@ IDevice::ConstPtr DeviceManager::defaultDevice(Id deviceType) const #include #include #include -#include namespace ProjectExplorer { @@ -539,7 +538,7 @@ class TestDevice : public IDevice public: TestDevice() { - setupId(AutoDetected, Id::fromString(QUuid::createUuid().toString())); + setupId(AutoDetected, Id::generate()); setType(testTypeId()); setMachineType(Hardware); setOsType(HostOsInfo::hostOs()); diff --git a/src/plugins/projectexplorer/devicesupport/idevice.cpp b/src/plugins/projectexplorer/devicesupport/idevice.cpp index 7e290b2fd22..fcef5f3c60e 100644 --- a/src/plugins/projectexplorer/devicesupport/idevice.cpp +++ b/src/plugins/projectexplorer/devicesupport/idevice.cpp @@ -30,7 +30,6 @@ #include #include #include -#include /*! * \class ProjectExplorer::IDevice::DeviceAction @@ -89,7 +88,7 @@ namespace ProjectExplorer { static Id newId() { - return Id::fromString(QUuid::createUuid().toString()); + return Id::generate(); } const char DisplayNameKey[] = "Name"; diff --git a/src/plugins/projectexplorer/gnumakeparser.cpp b/src/plugins/projectexplorer/gnumakeparser.cpp index 015d030d180..d8f877fd325 100644 --- a/src/plugins/projectexplorer/gnumakeparser.cpp +++ b/src/plugins/projectexplorer/gnumakeparser.cpp @@ -131,8 +131,6 @@ bool GnuMakeParser::hasFatalErrors() const #ifdef WITH_TESTS # include -# include - # include "outputparser_test.h" # include "projectexplorer_test.h" diff --git a/src/plugins/projectexplorer/kit.cpp b/src/plugins/projectexplorer/kit.cpp index fee30ed23fb..23a416a5f53 100644 --- a/src/plugins/projectexplorer/kit.cpp +++ b/src/plugins/projectexplorer/kit.cpp @@ -23,7 +23,6 @@ #include #include -#include #include #include @@ -60,7 +59,7 @@ public: m_id(id) { if (!id.isValid()) - m_id = Id::fromString(QUuid::createUuid().toString()); + m_id = Id::generate(); m_unexpandedDisplayName.setDefaultValue(Tr::tr("Unnamed")); diff --git a/src/plugins/texteditor/texteditor.cpp b/src/plugins/texteditor/texteditor.cpp index f973cfe9cc3..43784c79936 100644 --- a/src/plugins/texteditor/texteditor.cpp +++ b/src/plugins/texteditor/texteditor.cpp @@ -1068,7 +1068,7 @@ TextEditorWidgetPrivate::TextEditorWidgetPrivate(TextEditorWidget *parent) , m_codeAssistant(parent) , m_hoverHandlerRunner(parent, m_hoverHandlers) , m_autoCompleter(new AutoCompleter) - , m_editorContext(Id::fromString(QUuid::createUuid().toString())) + , m_editorContext(Id::generate()) { m_selectionHighlightOverlay->show(); auto aggregate = new Aggregation::Aggregate;