[Hosts] Consolidate launch (#27173)

* consolidate hosts editor launch

* improve readability

* improve readability
This commit is contained in:
Davide Giacometti
2023-07-14 09:56:50 +02:00
committed by GitHub
parent 53e104e858
commit b0cb40eaff
4 changed files with 44 additions and 44 deletions

View File

@@ -147,7 +147,17 @@ public:
if (m_enabled && err == ERROR_SUCCESS) if (m_enabled && err == ERROR_SUCCESS)
{ {
Logger::trace(L"{} event was signaled", CommonSharedConstants::SHOW_HOSTS_EVENT); Logger::trace(L"{} event was signaled", CommonSharedConstants::SHOW_HOSTS_EVENT);
launch_process(false);
if (is_process_running())
{
bring_process_to_front();
}
else
{
launch_process(false);
}
Trace::ActivateEditor();
} }
}); });
@@ -156,7 +166,17 @@ public:
if (m_enabled && err == ERROR_SUCCESS) if (m_enabled && err == ERROR_SUCCESS)
{ {
Logger::trace(L"{} event was signaled", CommonSharedConstants::SHOW_HOSTS_ADMIN_EVENT); Logger::trace(L"{} event was signaled", CommonSharedConstants::SHOW_HOSTS_ADMIN_EVENT);
launch_process(true);
if (is_process_running())
{
bring_process_to_front();
}
else
{
launch_process(true);
}
Trace::ActivateEditor();
} }
}); });
} }
@@ -209,31 +229,8 @@ public:
return false; return false;
} }
virtual void call_custom_action(const wchar_t* action) override virtual void call_custom_action(const wchar_t* /*action*/) override
{ {
try
{
PowerToysSettings::CustomActionObject action_object =
PowerToysSettings::CustomActionObject::from_json_string(action);
if (is_process_running())
{
bring_process_to_front();
}
else if (action_object.get_name() == L"Launch")
{
launch_process(false);
}
else if (action_object.get_name() == L"LaunchAdministrator")
{
launch_process(true);
}
Trace::ActivateEditor();
}
catch (std::exception&)
{
Logger::error(L"Failed to parse action. {}", action);
}
} }
virtual void set_config(const wchar_t* /*config*/) override virtual void set_config(const wchar_t* /*config*/) override

View File

@@ -2,7 +2,6 @@
// The Microsoft Corporation licenses this file to you under the MIT license. // The Microsoft Corporation licenses this file to you under the MIT license.
// See the LICENSE file in the project root for more information. // See the LICENSE file in the project root for more information.
using System; using System;
using System.Collections.ObjectModel;
using System.Threading; using System.Threading;
using global::Windows.System; using global::Windows.System;
using interop; using interop;
@@ -10,7 +9,6 @@ using Microsoft.PowerToys.Settings.UI.Controls;
using Microsoft.PowerToys.Settings.UI.Library; using Microsoft.PowerToys.Settings.UI.Library;
using Microsoft.PowerToys.Settings.UI.Library.Telemetry.Events; using Microsoft.PowerToys.Settings.UI.Library.Telemetry.Events;
using Microsoft.PowerToys.Settings.UI.ViewModels; using Microsoft.PowerToys.Settings.UI.ViewModels;
using Microsoft.PowerToys.Settings.UI.Views;
using Microsoft.PowerToys.Telemetry; using Microsoft.PowerToys.Telemetry;
using Microsoft.UI.Xaml; using Microsoft.UI.Xaml;
using Microsoft.UI.Xaml.Controls; using Microsoft.UI.Xaml.Controls;
@@ -54,13 +52,14 @@ namespace Microsoft.PowerToys.Settings.UI.Flyout
case "Hosts": // Launch Hosts case "Hosts": // Launch Hosts
{ {
bool launchAdmin = SettingsRepository<HostsSettings>.GetInstance(new SettingsUtils()).SettingsConfig.Properties.LaunchAdministrator; bool launchAdmin = SettingsRepository<HostsSettings>.GetInstance(new SettingsUtils()).SettingsConfig.Properties.LaunchAdministrator;
var actionName = "Launch"; string eventName = !App.IsElevated && launchAdmin
if (!App.IsElevated && launchAdmin) ? Constants.ShowHostsAdminSharedEvent()
{ : Constants.ShowHostsSharedEvent();
actionName = "LaunchAdministrator";
}
Views.ShellPage.SendDefaultIPCMessage("{\"action\":{\"Hosts\":{\"action_name\":\"" + actionName + "\", \"value\":\"\"}}}"); using (var eventHandle = new EventWaitHandle(false, EventResetMode.AutoReset, eventName))
{
eventHandle.Set();
}
} }
break; break;

View File

@@ -2,6 +2,8 @@
// The Microsoft Corporation licenses this file to you under the MIT license. // The Microsoft Corporation licenses this file to you under the MIT license.
// See the LICENSE file in the project root for more information. // See the LICENSE file in the project root for more information.
using System.Threading;
using interop;
using Microsoft.PowerToys.Settings.UI.Library; using Microsoft.PowerToys.Settings.UI.Library;
using Microsoft.PowerToys.Settings.UI.OOBE.Enums; using Microsoft.PowerToys.Settings.UI.OOBE.Enums;
using Microsoft.PowerToys.Settings.UI.OOBE.ViewModel; using Microsoft.PowerToys.Settings.UI.OOBE.ViewModel;
@@ -35,14 +37,14 @@ namespace Microsoft.PowerToys.Settings.UI.OOBE.Views
private void Launch_Hosts_Click(object sender, Microsoft.UI.Xaml.RoutedEventArgs e) private void Launch_Hosts_Click(object sender, Microsoft.UI.Xaml.RoutedEventArgs e)
{ {
bool launchAdmin = SettingsRepository<HostsSettings>.GetInstance(new SettingsUtils()).SettingsConfig.Properties.LaunchAdministrator; bool launchAdmin = SettingsRepository<HostsSettings>.GetInstance(new SettingsUtils()).SettingsConfig.Properties.LaunchAdministrator;
var actionName = "Launch"; string eventName = !App.IsElevated && launchAdmin
? Constants.ShowHostsAdminSharedEvent()
: Constants.ShowHostsSharedEvent();
if (!App.IsElevated && launchAdmin) using (var eventHandle = new EventWaitHandle(false, EventResetMode.AutoReset, eventName))
{ {
actionName = "LaunchAdministrator"; eventHandle.Set();
} }
ShellPage.SendDefaultIPCMessage("{\"action\":{\"Hosts\":{\"action_name\":\"" + actionName + "\", \"value\":\"\"}}}");
} }
private void Launch_Settings_Click(object sender, Microsoft.UI.Xaml.RoutedEventArgs e) private void Launch_Settings_Click(object sender, Microsoft.UI.Xaml.RoutedEventArgs e)

View File

@@ -4,7 +4,9 @@
using System; using System;
using System.Runtime.CompilerServices; using System.Runtime.CompilerServices;
using System.Threading;
using global::PowerToys.GPOWrapper; using global::PowerToys.GPOWrapper;
using interop;
using Microsoft.PowerToys.Settings.UI.Library; using Microsoft.PowerToys.Settings.UI.Library;
using Microsoft.PowerToys.Settings.UI.Library.Helpers; using Microsoft.PowerToys.Settings.UI.Library.Helpers;
using Microsoft.PowerToys.Settings.UI.Library.Interfaces; using Microsoft.PowerToys.Settings.UI.Library.Interfaces;
@@ -155,14 +157,14 @@ namespace Microsoft.PowerToys.Settings.UI.ViewModels
public void Launch() public void Launch()
{ {
var actionName = "Launch"; string eventName = !_isElevated && LaunchAdministrator
? Constants.ShowHostsAdminSharedEvent()
: Constants.ShowHostsSharedEvent();
if (!_isElevated && LaunchAdministrator) using (var eventHandle = new EventWaitHandle(false, EventResetMode.AutoReset, eventName))
{ {
actionName = "LaunchAdministrator"; eventHandle.Set();
} }
SendConfigMSG("{\"action\":{\"Hosts\":{\"action_name\":\"" + actionName + "\", \"value\":\"\"}}}");
} }
public void NotifyPropertyChanged([CallerMemberName] string propertyName = null) public void NotifyPropertyChanged([CallerMemberName] string propertyName = null)