MCPcopy Create free account
hub / github.com/YtFlow/Maple / LoadConfigs

Method LoadConfigs

Maple.App/MainPage.cpp:119–148  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

117 }
118
119 IAsyncAction MainPage::LoadConfigs()
120 {
121 const auto lifetime = get_strong();
122 const auto& appData = ApplicationData::Current();
123 m_configFolder = co_await ConfigUtil::GetConfigFolder();
124 SetValue(m_usingDefaultConfigFolderProperty, box_value(ConfigUtil::UsingDefaultConfigFolder()));
125 CustomConfigFolderPathText().Text(m_configFolder.Path());
126 auto configFiles = co_await m_configFolder.GetFilesAsync();
127 if (configFiles.Size() == 0) {
128 const auto& defaultConfigDst = co_await CopyDefaultConfig(m_configFolder, DEFAULT_CONF_FILE_PATH, L"default.conf");
129 appData.LocalSettings().Values().Insert(CONFIG_PATH_SETTING_KEY, box_value(defaultConfigDst.Path()));
130 configFiles = co_await m_configFolder.GetFilesAsync();
131 }
132
133 std::vector<Maple_App::ConfigViewModel> configModels;
134 configModels.reserve(static_cast<size_t>(configFiles.Size()));
135
136 m_defaultConfig = nullptr;
137 const auto& defaultConfigPath = appData.LocalSettings().Values().TryLookup(CONFIG_PATH_SETTING_KEY).try_as<hstring>();
138 for (const auto& file : configFiles) {
139 const auto isDefault = file.Path() == defaultConfigPath;
140 const auto& instance = configModels.emplace_back(co_await ConfigViewModel::FromFile(file, isDefault));
141 if (isDefault) {
142 m_defaultConfig = instance;
143 }
144 }
145
146 SetValue(m_configItemsProperty, single_threaded_observable_vector<Maple_App::ConfigViewModel>(std::move(configModels)));
147 ConfigListView().SelectedItem(m_defaultConfig);
148 }
149
150 void MainPage::ConfigSetAsDefaultMenuItem_Click(IInspectable const& sender, RoutedEventArgs const&)
151 {

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected