diff --git a/.vscode/tasks.json b/.vscode/tasks.json index 2a82bf3..756c0a6 100644 --- a/.vscode/tasks.json +++ b/.vscode/tasks.json @@ -9,7 +9,8 @@ "build", "${workspaceFolder}/EmoTracker.sln", "/property:GenerateFullPaths=true", - "/consoleloggerparameters:NoSummary" + "/consoleloggerparameters:NoSummary", + "/p:EmoTrackerRegularBuild=1" ], "problemMatcher": "$msCompile", "group": { @@ -29,8 +30,10 @@ "--configuration", "Debug", "/property:GenerateFullPaths=true", - "/consoleloggerparameters:NoSummary" + "/consoleloggerparameters:NoSummary", + "/p:EmoTrackerRegularBuild=1" ], + "problemMatcher": "$msCompile" }, { @@ -45,8 +48,10 @@ "--configuration", "Release", "/property:GenerateFullPaths=true", - "/consoleloggerparameters:NoSummary" + "/consoleloggerparameters:NoSummary", + "/p:EmoTrackerRegularBuild=1" ], + "problemMatcher": "$msCompile" }, { @@ -59,8 +64,10 @@ "--configuration", "Release", "/property:GenerateFullPaths=true", - "/consoleloggerparameters:NoSummary" + "/consoleloggerparameters:NoSummary", + "/p:EmoTrackerRegularBuild=1" ], + "problemMatcher": "$msCompile" }, { diff --git a/EmoTracker.SourceGenerators/EmoTracker.SourceGenerators.csproj b/EmoTracker.SourceGenerators/EmoTracker.SourceGenerators.csproj index 6168791..b649810 100644 --- a/EmoTracker.SourceGenerators/EmoTracker.SourceGenerators.csproj +++ b/EmoTracker.SourceGenerators/EmoTracker.SourceGenerators.csproj @@ -23,6 +23,24 @@ $(NoWarn);RS2008 + + + bin\$(Configuration)-build\$(TargetFramework)\ + + diff --git a/EmoTracker.UI/Converters/VisibilityConverters.cs b/EmoTracker.UI/Converters/VisibilityConverters.cs index a2c5b4b..11d19a5 100644 --- a/EmoTracker.UI/Converters/VisibilityConverters.cs +++ b/EmoTracker.UI/Converters/VisibilityConverters.cs @@ -61,6 +61,22 @@ public object ConvertBack(object value, Type targetType, object parameter, Cultu => throw new NotSupportedException(); } + /// + /// Returns 0.0 (zero height) when the value is null or empty; otherwise returns + /// Double.PositiveInfinity (no maximum). Use for MaxHeight bindings on badge overlays + /// that should have zero layout footprint when there is no badge text, preventing the + /// invisible badge from inflating the parent container's measured height while keeping + /// data bindings active (avoiding the blank-text flash that IsVisible can cause). + /// + public class NonEmptyStringToMaxHeightConverter : Singleton, IValueConverter + { + public object Convert(object value, Type targetType, object parameter, CultureInfo culture) + => value is string s && s.Length > 0 ? double.PositiveInfinity : 0.0; + + public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) + => throw new NotSupportedException(); + } + /// /// Returns true when the integer/uint value is non-zero. /// diff --git a/EmoTracker/UI/TrackableItemControl.axaml b/EmoTracker/UI/TrackableItemControl.axaml index 355b732..e6d5c6f 100644 --- a/EmoTracker/UI/TrackableItemControl.axaml +++ b/EmoTracker/UI/TrackableItemControl.axaml @@ -63,6 +63,7 @@