mirror of
https://github.com/microsoft/PowerToys.git
synced 2026-04-03 09:46:54 +02:00
Use WinRT JSON parser instead of custom cpprestsdk solution (#822)
This commit is contained in:
@@ -112,25 +112,25 @@ void FancyZonesSettings::LoadSettings(PCWSTR config, bool fromFile) noexcept try
|
||||
|
||||
for (auto const& setting : m_configBools)
|
||||
{
|
||||
if (values.is_bool_value(setting.name))
|
||||
if (const auto val = values.get_bool_value(setting.name))
|
||||
{
|
||||
*setting.value = values.get_bool_value(setting.name);
|
||||
*setting.value = *val;
|
||||
}
|
||||
}
|
||||
|
||||
if (values.is_string_value(m_zoneHiglightName))
|
||||
if (auto val = values.get_string_value(m_zoneHiglightName))
|
||||
{
|
||||
m_settings.zoneHightlightColor = values.get_string_value(m_zoneHiglightName);
|
||||
m_settings.zoneHightlightColor = std::move(*val);
|
||||
}
|
||||
|
||||
if (values.is_object_value(m_editorHotkeyName))
|
||||
if (const auto val = values.get_json(m_editorHotkeyName))
|
||||
{
|
||||
m_settings.editorHotkey = PowerToysSettings::HotkeyObject::from_json(values.get_json(m_editorHotkeyName));
|
||||
m_settings.editorHotkey = PowerToysSettings::HotkeyObject::from_json(*val);
|
||||
}
|
||||
|
||||
if (values.is_string_value(m_excludedAppsName))
|
||||
if (auto val = values.get_string_value(m_excludedAppsName))
|
||||
{
|
||||
m_settings.excludedApps = values.get_string_value(m_excludedAppsName);
|
||||
m_settings.excludedApps = std::move(*val);
|
||||
m_settings.excludedAppsArray.clear();
|
||||
auto excludedUppercase = m_settings.excludedApps;
|
||||
CharUpperBuffW(excludedUppercase.data(), (DWORD)excludedUppercase.length());
|
||||
@@ -163,7 +163,7 @@ void FancyZonesSettings::SaveSettings() noexcept try
|
||||
}
|
||||
|
||||
values.add_property(m_zoneHiglightName, m_settings.zoneHightlightColor);
|
||||
values.add_property(m_editorHotkeyName, m_settings.editorHotkey);
|
||||
values.add_property(m_editorHotkeyName, m_settings.editorHotkey.get_json());
|
||||
values.add_property(m_excludedAppsName, m_settings.excludedApps);
|
||||
|
||||
values.save_to_settings_file();
|
||||
|
||||
@@ -252,11 +252,11 @@ public:
|
||||
PowerToysSettings::PowerToyValues values =
|
||||
PowerToysSettings::PowerToyValues::from_json_string(config);
|
||||
|
||||
CSettings::SetPersistState(values.get_bool_value(L"bool_persist_input"));
|
||||
CSettings::SetMRUEnabled(values.get_bool_value(L"bool_mru_enabled"));
|
||||
CSettings::SetMaxMRUSize(values.get_int_value(L"int_max_mru_size"));
|
||||
CSettings::SetShowIconOnMenu(values.get_bool_value(L"bool_show_icon_on_menu"));
|
||||
CSettings::SetExtendedContextMenuOnly(values.get_bool_value(L"bool_show_extended_menu"));
|
||||
CSettings::SetPersistState(values.get_bool_value(L"bool_persist_input").value());
|
||||
CSettings::SetMRUEnabled(values.get_bool_value(L"bool_mru_enabled").value());
|
||||
CSettings::SetMaxMRUSize(values.get_int_value(L"int_max_mru_size").value());
|
||||
CSettings::SetShowIconOnMenu(values.get_bool_value(L"bool_show_icon_on_menu").value());
|
||||
CSettings::SetExtendedContextMenuOnly(values.get_bool_value(L"bool_show_extended_menu").value());
|
||||
}
|
||||
catch (std::exception) {
|
||||
// Improper JSON.
|
||||
|
||||
@@ -61,39 +61,37 @@ void OverlayWindow::set_config(const wchar_t * config) {
|
||||
try {
|
||||
PowerToysSettings::PowerToyValues _values =
|
||||
PowerToysSettings::PowerToyValues::from_json_string(config);
|
||||
if (_values.is_int_value(pressTime.name)) {
|
||||
int press_delay_time = _values.get_int_value(pressTime.name);
|
||||
pressTime.value = press_delay_time;
|
||||
if (const auto press_delay_time = _values.get_int_value(pressTime.name)) {
|
||||
pressTime.value = *press_delay_time;
|
||||
if (target_state) {
|
||||
target_state->set_delay(press_delay_time);
|
||||
target_state->set_delay(*press_delay_time);
|
||||
}
|
||||
}
|
||||
if (_values.is_int_value(overlayOpacity.name)) {
|
||||
int overlay_opacity = _values.get_int_value(overlayOpacity.name);
|
||||
overlayOpacity.value = overlay_opacity;
|
||||
if (const auto overlay_opacity = _values.get_int_value(overlayOpacity.name)) {
|
||||
overlayOpacity.value = *overlay_opacity;
|
||||
if (winkey_popup) {
|
||||
winkey_popup->apply_overlay_opacity(((float)overlayOpacity.value) / 100.0f);
|
||||
}
|
||||
}
|
||||
if (_values.is_string_value(theme.name)) {
|
||||
theme.value = _values.get_string_value(theme.name);
|
||||
if (auto val = _values.get_string_value(theme.name)) {
|
||||
theme.value = std::move(*val);
|
||||
winkey_popup->set_theme(theme.value);
|
||||
}
|
||||
_values.save_to_settings_file();
|
||||
Trace::SettingsChanged(pressTime.value, overlayOpacity.value, theme.value);
|
||||
}
|
||||
catch (std::exception&) {
|
||||
// Improper JSON.
|
||||
catch (...) {
|
||||
// Improper JSON. TODO: handle the error.
|
||||
}
|
||||
}
|
||||
|
||||
void OverlayWindow::enable() {
|
||||
if (!_enabled) {
|
||||
Trace::EnableShortcutGuide(true);
|
||||
winkey_popup = new D2DOverlayWindow();
|
||||
winkey_popup = std::make_unique<D2DOverlayWindow>();
|
||||
winkey_popup->apply_overlay_opacity(((float)overlayOpacity.value)/100.0f);
|
||||
winkey_popup->set_theme(theme.value);
|
||||
target_state = new TargetState(pressTime.value);
|
||||
target_state = std::make_unique<TargetState>(pressTime.value);
|
||||
winkey_popup->initialize();
|
||||
}
|
||||
_enabled = true;
|
||||
@@ -107,10 +105,8 @@ void OverlayWindow::disable(bool trace_event) {
|
||||
}
|
||||
winkey_popup->hide();
|
||||
target_state->exit();
|
||||
delete target_state;
|
||||
delete winkey_popup;
|
||||
target_state = nullptr;
|
||||
winkey_popup = nullptr;
|
||||
target_state.reset();
|
||||
winkey_popup.reset();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -164,14 +160,14 @@ void OverlayWindow::init_settings() {
|
||||
try {
|
||||
PowerToysSettings::PowerToyValues settings =
|
||||
PowerToysSettings::PowerToyValues::load_from_settings_file(OverlayWindow::get_name());
|
||||
if (settings.is_int_value(pressTime.name)) {
|
||||
pressTime.value = settings.get_int_value(pressTime.name);
|
||||
if (const auto val = settings.get_int_value(pressTime.name)) {
|
||||
pressTime.value = *val;
|
||||
}
|
||||
if (settings.is_int_value(overlayOpacity.name)) {
|
||||
overlayOpacity.value = settings.get_int_value(overlayOpacity.name);
|
||||
if (const auto val = settings.get_int_value(overlayOpacity.name)) {
|
||||
overlayOpacity.value = *val;
|
||||
}
|
||||
if (settings.is_string_value(theme.name)) {
|
||||
theme.value = settings.get_string_value(theme.name);
|
||||
if (auto val = settings.get_string_value(theme.name)) {
|
||||
theme.value = std::move(*val);
|
||||
}
|
||||
}
|
||||
catch (std::exception&) {
|
||||
|
||||
@@ -32,8 +32,8 @@ public:
|
||||
virtual void destroy() override;
|
||||
|
||||
private:
|
||||
TargetState* target_state;
|
||||
D2DOverlayWindow *winkey_popup;
|
||||
std::unique_ptr<TargetState> target_state;
|
||||
std::unique_ptr<D2DOverlayWindow> winkey_popup;
|
||||
bool _enabled = false;
|
||||
|
||||
void init_settings();
|
||||
|
||||
Reference in New Issue
Block a user