Some checks failed
CI / build-and-test (push) Failing after 30s
Task 39: 5-column participants table - state LED, name+codec caption, 5-bar audio meter, mono output name, ISO pill. Row height 52, full-row active-speaker tint (no left stripe). New converter LevelThresholdConverter, OutputName property on ParticipantViewModel. Task 40: Ctrl+K / Ctrl+P command palette - chromeless centered floating window, fuzzy Contains match across Label/Category/Keywords, arrow nav, Enter invoke, Esc close. Quick/Teams/Network/App categories cover top operator verbs and theme switching. Also: log startup exceptions to Serilog before the modal MessageBox fires - much better triage signal than user-pasted dialog text.
24 lines
901 B
C#
24 lines
901 B
C#
using System.Globalization;
|
|
using System.Windows;
|
|
using System.Windows.Data;
|
|
|
|
namespace TeamsISO.App.Converters;
|
|
|
|
/// <summary>
|
|
/// Tiny utility converter — null or empty string ⇒ Collapsed, otherwise
|
|
/// Visible. Used by the v2 command palette's optional shortcut chip
|
|
/// (e.g. "Ctrl+R") so rows without a bound shortcut don't render the
|
|
/// empty pill outline.
|
|
/// </summary>
|
|
public sealed class NullToCollapsedConverter : IValueConverter
|
|
{
|
|
public object Convert(object value, System.Type targetType, object parameter, CultureInfo culture)
|
|
{
|
|
if (value is null) return Visibility.Collapsed;
|
|
if (value is string s && string.IsNullOrEmpty(s)) return Visibility.Collapsed;
|
|
return Visibility.Visible;
|
|
}
|
|
|
|
public object ConvertBack(object value, System.Type targetType, object parameter, CultureInfo culture) =>
|
|
System.Windows.Data.Binding.DoNothing;
|
|
}
|