Fix missing input source in dropdown and update metadata
- Add current input to options if monitor doesn't report it in possible values - Never hide the currently active input port in config filtering - Make GetInputSourceName public for reuse - Update company to MarketAlly, author to David H. Friedel Jr - Add application icon to exe 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
parent
139be6f779
commit
ac53fbf80e
@ -8,14 +8,16 @@
|
||||
<RootNamespace>DellMonitorControl</RootNamespace>
|
||||
<Product>ControlMyMonitorManagement</Product>
|
||||
<UseWPF>true</UseWPF>
|
||||
<Company>Dang</Company>
|
||||
<Copyright>Copyright © DangWang $([System.DateTime]::Now.ToString(yyyy))</Copyright>
|
||||
<Company>MarketAlly</Company>
|
||||
<Authors>David H. Friedel Jr</Authors>
|
||||
<Copyright>Copyright © MarketAlly $([System.DateTime]::Now.ToString(yyyy))</Copyright>
|
||||
<ApplicationIcon>MonitorIcon.ico</ApplicationIcon>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup>
|
||||
<Version>1.0.17</Version>
|
||||
<AssemblyVersion>1.0.17.0</AssemblyVersion>
|
||||
<FileVersion>1.0.17.0</FileVersion>
|
||||
<Version>1.0.18</Version>
|
||||
<AssemblyVersion>1.0.18.0</AssemblyVersion>
|
||||
<FileVersion>1.0.18.0</FileVersion>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
|
||||
@ -181,6 +181,15 @@ public partial class MainWindow : Window
|
||||
var inputOptions = await CMMCommand.GetInputSourceOptions(m.SerialNumber);
|
||||
DebugLogger.Log($" Input options count: {inputOptions.Count}");
|
||||
|
||||
// Some monitors don't report current input in their possible values list
|
||||
// Add it if missing so user can see what's currently selected
|
||||
if (inputSource.HasValue && !inputOptions.Any(o => o.Value == inputSource.Value))
|
||||
{
|
||||
var currentInputName = CMMCommand.GetInputSourceName(inputSource.Value);
|
||||
inputOptions.Insert(0, new InputSourceOption(inputSource.Value, currentInputName));
|
||||
DebugLogger.Log($" Added missing current input: {inputSource.Value} ({currentInputName})");
|
||||
}
|
||||
|
||||
DebugLogger.Log($" Getting power status...");
|
||||
var powerStatus = await CMMCommand.GetMonPowerStatus(m.SerialNumber) ?? "Unknown";
|
||||
DebugLogger.Log($" Power status: {powerStatus}");
|
||||
@ -188,7 +197,8 @@ public partial class MainWindow : Window
|
||||
_loadedMonitors.Add((m, inputOptions));
|
||||
|
||||
// Apply config to filter hidden ports and use custom labels
|
||||
var filteredOptions = MonitorConfigManager.ApplyConfigToOptions(m.SerialNumber, inputOptions);
|
||||
// Pass currentInput so we never hide the currently active port
|
||||
var filteredOptions = MonitorConfigManager.ApplyConfigToOptions(m.SerialNumber, inputOptions, inputSource);
|
||||
DebugLogger.Log($" Filtered options count: {filteredOptions.Count}");
|
||||
|
||||
// Monitor name header with Config button
|
||||
|
||||
@ -86,7 +86,8 @@ public static class MonitorConfigManager
|
||||
|
||||
public static List<InputSourceOption> ApplyConfigToOptions(
|
||||
string serialNumber,
|
||||
List<InputSourceOption> options)
|
||||
List<InputSourceOption> options,
|
||||
int? currentInput = null)
|
||||
{
|
||||
var monitorConfig = GetMonitorConfig(serialNumber);
|
||||
|
||||
@ -101,8 +102,11 @@ public static class MonitorConfigManager
|
||||
|
||||
if (portConfig != null)
|
||||
{
|
||||
// Respect hidden setting - don't show hidden ports
|
||||
if (portConfig.IsHidden)
|
||||
// Never hide the currently active input - user needs to see what's selected
|
||||
bool isCurrentInput = currentInput.HasValue && option.Value == currentInput.Value;
|
||||
|
||||
// Respect hidden setting - don't show hidden ports (unless it's the current input)
|
||||
if (portConfig.IsHidden && !isCurrentInput)
|
||||
continue;
|
||||
|
||||
if (!string.IsNullOrWhiteSpace(portConfig.CustomLabel))
|
||||
|
||||
@ -130,7 +130,7 @@ public static class CMMCommand
|
||||
return options;
|
||||
}
|
||||
|
||||
private static string GetInputSourceName(int vcpValue)
|
||||
public static string GetInputSourceName(int vcpValue)
|
||||
{
|
||||
return vcpValue switch
|
||||
{
|
||||
|
||||
Loading…
Reference in New Issue
Block a user