| 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 | { |
nothing calls this directly
no outgoing calls
no test coverage detected