Add an Open Settings link to the "Default Terminal" tip (#11491)
This commit switches the [X] button in the info bar to permanently dismiss the tip and fixes a focus transition issue. Closes #11483
This commit is contained in:
parent
462d8003a7
commit
a89c3e2f85
|
@ -727,4 +727,8 @@
|
||||||
<data name="ElevationShield.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
|
<data name="ElevationShield.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
|
||||||
<value>This Terminal window is running as Admin</value>
|
<value>This Terminal window is running as Admin</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="SetAsDefaultTip_OpenSettingsLink.Content" xml:space="preserve">
|
||||||
|
<value>Open Settings</value>
|
||||||
|
<comment>This is a call-to-action hyperlink; it will open the settings.</comment>
|
||||||
|
</data>
|
||||||
</root>
|
</root>
|
||||||
|
|
|
@ -2902,6 +2902,7 @@ namespace winrt::TerminalApp::implementation
|
||||||
|
|
||||||
if (const auto infoBar = FindName(L"SetAsDefaultInfoBar").try_as<MUX::Controls::InfoBar>())
|
if (const auto infoBar = FindName(L"SetAsDefaultInfoBar").try_as<MUX::Controls::InfoBar>())
|
||||||
{
|
{
|
||||||
|
TraceLoggingWrite(g_hTerminalAppProvider, "SetAsDefaultTipPresented", TraceLoggingKeyword(MICROSOFT_KEYWORD_MEASURES), TelemetryPrivacyDataTag(PDT_ProductAndServicePerformance));
|
||||||
infoBar.IsOpen(true);
|
infoBar.IsOpen(true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -3333,13 +3334,31 @@ namespace winrt::TerminalApp::implementation
|
||||||
// - <none>
|
// - <none>
|
||||||
// Return Value:
|
// Return Value:
|
||||||
// - <none>
|
// - <none>
|
||||||
void TerminalPage::_SetAsDefaultDismissHandler(const IInspectable& /*sender*/, const IInspectable& /*args*/) const
|
void TerminalPage::_SetAsDefaultDismissHandler(const IInspectable& /*sender*/, const IInspectable& /*args*/)
|
||||||
{
|
{
|
||||||
_DismissMessage(InfoBarMessage::SetAsDefault);
|
_DismissMessage(InfoBarMessage::SetAsDefault);
|
||||||
if (const auto infoBar = FindName(L"SetAsDefaultInfoBar").try_as<MUX::Controls::InfoBar>())
|
if (const auto infoBar = FindName(L"SetAsDefaultInfoBar").try_as<MUX::Controls::InfoBar>())
|
||||||
{
|
{
|
||||||
infoBar.IsOpen(false);
|
infoBar.IsOpen(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TraceLoggingWrite(g_hTerminalAppProvider, "SetAsDefaultTipDismissed", TraceLoggingKeyword(MICROSOFT_KEYWORD_MEASURES), TelemetryPrivacyDataTag(PDT_ProductAndServiceUsage));
|
||||||
|
|
||||||
|
_FocusCurrentTab(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Method Description:
|
||||||
|
// - Dismisses the Default Terminal tip and opens the settings.
|
||||||
|
void TerminalPage::_SetAsDefaultOpenSettingsHandler(const IInspectable& /*sender*/, const IInspectable& /*args*/)
|
||||||
|
{
|
||||||
|
if (const auto infoBar = FindName(L"SetAsDefaultInfoBar").try_as<MUX::Controls::InfoBar>())
|
||||||
|
{
|
||||||
|
infoBar.IsOpen(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
TraceLoggingWrite(g_hTerminalAppProvider, "SetAsDefaultTipInteracted", TraceLoggingKeyword(MICROSOFT_KEYWORD_MEASURES), TelemetryPrivacyDataTag(PDT_ProductAndServiceUsage));
|
||||||
|
|
||||||
|
_OpenSettingsUI();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Method Description:
|
// Method Description:
|
||||||
|
|
|
@ -404,7 +404,8 @@ namespace winrt::TerminalApp::implementation
|
||||||
winrt::fire_and_forget _ConnectionStateChangedHandler(const winrt::Windows::Foundation::IInspectable& sender, const winrt::Windows::Foundation::IInspectable& args) const;
|
winrt::fire_and_forget _ConnectionStateChangedHandler(const winrt::Windows::Foundation::IInspectable& sender, const winrt::Windows::Foundation::IInspectable& args) const;
|
||||||
void _CloseOnExitInfoDismissHandler(const winrt::Windows::Foundation::IInspectable& sender, const winrt::Windows::Foundation::IInspectable& args) const;
|
void _CloseOnExitInfoDismissHandler(const winrt::Windows::Foundation::IInspectable& sender, const winrt::Windows::Foundation::IInspectable& args) const;
|
||||||
void _KeyboardServiceWarningInfoDismissHandler(const winrt::Windows::Foundation::IInspectable& sender, const winrt::Windows::Foundation::IInspectable& args) const;
|
void _KeyboardServiceWarningInfoDismissHandler(const winrt::Windows::Foundation::IInspectable& sender, const winrt::Windows::Foundation::IInspectable& args) const;
|
||||||
void _SetAsDefaultDismissHandler(const winrt::Windows::Foundation::IInspectable& sender, const winrt::Windows::Foundation::IInspectable& args) const;
|
void _SetAsDefaultDismissHandler(const winrt::Windows::Foundation::IInspectable& sender, const winrt::Windows::Foundation::IInspectable& args);
|
||||||
|
void _SetAsDefaultOpenSettingsHandler(const winrt::Windows::Foundation::IInspectable& sender, const winrt::Windows::Foundation::IInspectable& args);
|
||||||
static bool _IsMessageDismissed(const winrt::Microsoft::Terminal::Settings::Model::InfoBarMessage& message);
|
static bool _IsMessageDismissed(const winrt::Microsoft::Terminal::Settings::Model::InfoBarMessage& message);
|
||||||
static void _DismissMessage(const winrt::Microsoft::Terminal::Settings::Model::InfoBarMessage& message);
|
static void _DismissMessage(const winrt::Microsoft::Terminal::Settings::Model::InfoBarMessage& message);
|
||||||
|
|
||||||
|
|
|
@ -145,13 +145,14 @@
|
||||||
<mux:InfoBar x:Name="SetAsDefaultInfoBar"
|
<mux:InfoBar x:Name="SetAsDefaultInfoBar"
|
||||||
x:Uid="SetAsDefaultInfoBar"
|
x:Uid="SetAsDefaultInfoBar"
|
||||||
x:Load="False"
|
x:Load="False"
|
||||||
|
CloseButtonClick="_SetAsDefaultDismissHandler"
|
||||||
IsClosable="True"
|
IsClosable="True"
|
||||||
IsIconVisible="True"
|
IsIconVisible="True"
|
||||||
IsOpen="False"
|
IsOpen="False"
|
||||||
Severity="Informational">
|
Severity="Informational">
|
||||||
<mux:InfoBar.ActionButton>
|
<mux:InfoBar.ActionButton>
|
||||||
<Button x:Uid="InfoBarDismissButton"
|
<HyperlinkButton x:Uid="SetAsDefaultTip_OpenSettingsLink"
|
||||||
Click="_SetAsDefaultDismissHandler" />
|
Click="_SetAsDefaultOpenSettingsHandler" />
|
||||||
</mux:InfoBar.ActionButton>
|
</mux:InfoBar.ActionButton>
|
||||||
</mux:InfoBar>
|
</mux:InfoBar>
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
|
|
Loading…
Reference in a new issue