From 139be6f779111c9f1c6a85e2375b68875d390a93 Mon Sep 17 00:00:00 2001 From: Dave Friedel Date: Wed, 7 Jan 2026 12:24:55 -0500 Subject: [PATCH] Add debug logging for dropdown selection and power unsupported state MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Added detailed logging in CreateInputRow to help diagnose dropdown selection issues after config label changes - Power button now shows "Power Unsupported" and is disabled for monitors that don't support DDC/CI power control 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 --- DellMonitorControl/DellMonitorControl.csproj | 6 +-- DellMonitorControl/MainWindow.xaml.cs | 42 ++++++++++++++------ 2 files changed, 32 insertions(+), 16 deletions(-) diff --git a/DellMonitorControl/DellMonitorControl.csproj b/DellMonitorControl/DellMonitorControl.csproj index 5f56174..e5b9748 100644 --- a/DellMonitorControl/DellMonitorControl.csproj +++ b/DellMonitorControl/DellMonitorControl.csproj @@ -13,9 +13,9 @@ - 1.0.16 - 1.0.16.0 - 1.0.16.0 + 1.0.17 + 1.0.17.0 + 1.0.17.0 diff --git a/DellMonitorControl/MainWindow.xaml.cs b/DellMonitorControl/MainWindow.xaml.cs index 2c32041..6e74270 100644 --- a/DellMonitorControl/MainWindow.xaml.cs +++ b/DellMonitorControl/MainWindow.xaml.cs @@ -371,6 +371,10 @@ public partial class MainWindow : Window private StackPanel CreateInputRow(int? currentInput, List options, string serialNumber) { + DebugLogger.Log($" CreateInputRow: currentInput={currentInput}, optionCount={options.Count}"); + foreach (var opt in options) + DebugLogger.Log($" Option: Value={opt.Value}, Name={opt.Name}"); + var row = new StackPanel { Orientation = Orientation.Horizontal, Margin = new Thickness(0, 3, 0, 3) }; row.Children.Add(new TextBlock { Text = "Input", Foreground = Brushes.LightGray, Width = 70, FontSize = 12, VerticalAlignment = VerticalAlignment.Center }); @@ -390,9 +394,14 @@ public partial class MainWindow : Window if (currentInput.HasValue) { var index = options.FindIndex(o => o.Value == currentInput.Value); + DebugLogger.Log($" Selection: Looking for Value={currentInput.Value}, found at index={index}"); if (index >= 0) combo.SelectedIndex = index; } + else + { + DebugLogger.Log($" Selection: currentInput is null, no selection"); + } // Add event handler AFTER setting the initial selection combo.SelectionChanged += async (s, e) => @@ -410,26 +419,33 @@ public partial class MainWindow : Window var row = new StackPanel { Orientation = Orientation.Horizontal, Margin = new Thickness(0, 3, 0, 3) }; row.Children.Add(new TextBlock { Text = "Power", Foreground = Brushes.LightGray, Width = 70, FontSize = 12, VerticalAlignment = VerticalAlignment.Center }); + var isUnsupported = string.IsNullOrEmpty(status) || status == "Unknown"; + var btn = new Button { - Content = status, + Content = isUnsupported ? "Power Unsupported" : status, Width = 170, Tag = serialNumber, - Style = (Style)FindResource("DarkButton") + Style = (Style)FindResource("DarkButton"), + IsEnabled = !isUnsupported }; - btn.Click += async (s, e) => + + if (!isUnsupported) { - if (s is Button b && b.Tag is string sn) + btn.Click += async (s, e) => { - var current = await CMMCommand.GetMonPowerStatus(sn); - if (current == "Sleep" || current == "PowerOff") - await CMMCommand.PowerOn(sn); - else - await CMMCommand.Sleep(sn); - await Task.Delay(1000); - b.Content = await CMMCommand.GetMonPowerStatus(sn); - } - }; + if (s is Button b && b.Tag is string sn) + { + var current = await CMMCommand.GetMonPowerStatus(sn); + if (current == "Sleep" || current == "PowerOff") + await CMMCommand.PowerOn(sn); + else + await CMMCommand.Sleep(sn); + await Task.Delay(1000); + b.Content = await CMMCommand.GetMonPowerStatus(sn); + } + }; + } row.Children.Add(btn); return row;