diff --git a/src/plugins/vcpkg/vcpkgplugin.cpp b/src/plugins/vcpkg/vcpkgplugin.cpp index 4ef89499a76..d6d323d7372 100644 --- a/src/plugins/vcpkg/vcpkgplugin.cpp +++ b/src/plugins/vcpkg/vcpkgplugin.cpp @@ -7,7 +7,6 @@ #include "vcpkg_test.h" #endif // WITH_TESTS #include "vcpkgmanifesteditor.h" -#include "vcpkgsettings.h" #include @@ -17,7 +16,6 @@ class VcpkgPluginPrivate { public: VcpkgManifestEditorFactory manifestEditorFactory; - VcpkgSettings settings; }; VcpkgPlugin::~VcpkgPlugin() diff --git a/src/plugins/vcpkg/vcpkgsettings.cpp b/src/plugins/vcpkg/vcpkgsettings.cpp index aa223651cf2..21d3b239dd1 100644 --- a/src/plugins/vcpkg/vcpkgsettings.cpp +++ b/src/plugins/vcpkg/vcpkgsettings.cpp @@ -6,6 +6,8 @@ #include "vcpkgconstants.h" #include "vcpkgtr.h" +#include + #include #include @@ -19,21 +21,15 @@ using namespace Utils; namespace Vcpkg::Internal { -static VcpkgSettings *theSettings = nullptr; - VcpkgSettings &settings() { - return *theSettings; + static VcpkgSettings theSettings; + return theSettings; } VcpkgSettings::VcpkgSettings() { - theSettings = this; - setSettingsGroup("Vcpkg"); - setId(Constants::TOOLSSETTINGSPAGE_ID); - setDisplayName("Vcpkg"); - setCategory(CMakeProjectManager::Constants::Settings::CATEGORY); vcpkgRoot.setSettingsKey("VcpkgRoot"); vcpkgRoot.setExpectedKind(PathChooser::ExistingDirectory); @@ -72,4 +68,18 @@ VcpkgSettings::VcpkgSettings() readSettings(); } +class VcpkgSettingsPage : public Core::IOptionsPage +{ +public: + VcpkgSettingsPage() + { + setId(Constants::TOOLSSETTINGSPAGE_ID); + setDisplayName("Vcpkg"); + setCategory(CMakeProjectManager::Constants::Settings::CATEGORY); + setSettingsProvider([] { return &settings(); }); + } +}; + +static const VcpkgSettingsPage settingsPage; + } // Vcpkg::Internal diff --git a/src/plugins/vcpkg/vcpkgsettings.h b/src/plugins/vcpkg/vcpkgsettings.h index 6a00fd506f7..dd266ad3716 100644 --- a/src/plugins/vcpkg/vcpkgsettings.h +++ b/src/plugins/vcpkg/vcpkgsettings.h @@ -3,11 +3,11 @@ #pragma once -#include +#include namespace Vcpkg::Internal { -class VcpkgSettings : public Core::PagedSettings +class VcpkgSettings : public Utils::AspectContainer { public: VcpkgSettings();