From ae8c6f056f44d51fbae4c15c1680f888d73eb1ce Mon Sep 17 00:00:00 2001 From: teekay Date: Mon, 4 May 2026 12:06:13 -0400 Subject: [PATCH] Retarget to .NET 10, drop NET48, bump version to 1.2.0 --- .github/workflows/dotnet-desktop.yml | 2 +- .github/workflows/publish-to-nuget.yml | 2 +- .../WaveformTimelineDemo/NuGetUpgradeLog.html | 166 ----------------- .../WaveformTimelineDemo.csproj | 146 --------------- .../WaveformTimelineDemo/packages.config | 10 -- .../WaveformTimeline/NuGetUpgradeLog.html | 167 ------------------ .../WaveformTimeline/WaveformTimeline.csproj | 114 ------------ .../b60356df/WaveformTimeline/packages.config | 11 -- .../NuGetUpgradeLog.html | 162 ----------------- .../WaveformTimelineTests.csproj | 75 -------- .../WaveformTimelineTests/packages.config | 4 - README.md | 3 +- WaveformTimeline/Controls/Curtains.cs | 10 +- .../Controls/Timeline/Timeline.cs | 19 +- .../Controls/Waveform/Waveform.cs | 4 +- WaveformTimeline/Properties/AssemblyInfo.cs | 6 +- WaveformTimeline/WaveformTimeline.csproj | 10 +- .../WaveformTimelineDemo.csproj | 2 +- .../WaveformTimelineTests.csproj | 2 +- 19 files changed, 31 insertions(+), 884 deletions(-) delete mode 100644 MigrationBackup/4b838dfc/WaveformTimelineDemo/NuGetUpgradeLog.html delete mode 100644 MigrationBackup/4b838dfc/WaveformTimelineDemo/WaveformTimelineDemo.csproj delete mode 100644 MigrationBackup/4b838dfc/WaveformTimelineDemo/packages.config delete mode 100644 MigrationBackup/b60356df/WaveformTimeline/NuGetUpgradeLog.html delete mode 100644 MigrationBackup/b60356df/WaveformTimeline/WaveformTimeline.csproj delete mode 100644 MigrationBackup/b60356df/WaveformTimeline/packages.config delete mode 100644 MigrationBackup/b7f2ddbc/WaveformTimelineTests/NuGetUpgradeLog.html delete mode 100644 MigrationBackup/b7f2ddbc/WaveformTimelineTests/WaveformTimelineTests.csproj delete mode 100644 MigrationBackup/b7f2ddbc/WaveformTimelineTests/packages.config diff --git a/.github/workflows/dotnet-desktop.yml b/.github/workflows/dotnet-desktop.yml index 91b2c1f..14a0043 100644 --- a/.github/workflows/dotnet-desktop.yml +++ b/.github/workflows/dotnet-desktop.yml @@ -31,7 +31,7 @@ jobs: - name: Install .NET Core uses: actions/setup-dotnet@v1 with: - dotnet-version: 8.0.x + dotnet-version: 10.0.x # Execute all unit tests in the solution - name: Execute unit tests diff --git a/.github/workflows/publish-to-nuget.yml b/.github/workflows/publish-to-nuget.yml index 6168004..109ba53 100644 --- a/.github/workflows/publish-to-nuget.yml +++ b/.github/workflows/publish-to-nuget.yml @@ -22,7 +22,7 @@ jobs: - name: Install .NET Core uses: actions/setup-dotnet@v1 with: - dotnet-version: 8.0.x + dotnet-version: 10.0.x - name: Extract Version from AssemblyInfo.cs (if not provided) if: ${{ github.event.inputs.version == '' }} diff --git a/MigrationBackup/4b838dfc/WaveformTimelineDemo/NuGetUpgradeLog.html b/MigrationBackup/4b838dfc/WaveformTimelineDemo/NuGetUpgradeLog.html deleted file mode 100644 index 330082b..0000000 --- a/MigrationBackup/4b838dfc/WaveformTimelineDemo/NuGetUpgradeLog.html +++ /dev/null @@ -1,166 +0,0 @@ - - - - - NuGetMigrationLog -

- NuGet Migration Report - WaveformTimelineDemo

Overview

Migration to PackageReference was completed successfully. Please build and run your solution to verify that all packages are available.
- If you run into any problems, have feedback, questions, or concerns, please - file an issue on the NuGet GitHub repository.

Packages processed

Top-level dependencies:

Package IdVersion
JetBrains.Annotations - v2018.2.1
NAudio - v1.8.5
System.Reactive - v4.1.2
taglib-sharp-netstandard2.0 - v2.1.0

Transitive dependencies:

Package IdVersion
System.Runtime.CompilerServices.Unsafe - v4.5.0
System.Threading.Tasks.Extensions - v4.5.1
System.ValueTuple - v4.4.0

Package compatibility issues

Description
- No issues were found. -
\ No newline at end of file diff --git a/MigrationBackup/4b838dfc/WaveformTimelineDemo/WaveformTimelineDemo.csproj b/MigrationBackup/4b838dfc/WaveformTimelineDemo/WaveformTimelineDemo.csproj deleted file mode 100644 index 968d29e..0000000 --- a/MigrationBackup/4b838dfc/WaveformTimelineDemo/WaveformTimelineDemo.csproj +++ /dev/null @@ -1,146 +0,0 @@ - - - - - Debug - AnyCPU - {2061D02E-C467-4B94-AAA3-28574DF51804} - WinExe - WaveformTimelineDemo - WaveformTimelineDemo - v4.6.1 - 512 - {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} - 4 - true - true - - - AnyCPU - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - AnyCPU - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - - ..\packages\JetBrains.Annotations.2018.2.1\lib\net20\JetBrains.Annotations.dll - - - ..\packages\NAudio.1.8.5\lib\net35\NAudio.dll - - - - - ..\packages\System.Reactive.4.1.2\lib\net46\System.Reactive.dll - - - ..\packages\System.Runtime.CompilerServices.Unsafe.4.5.0\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll - - - ..\packages\System.Threading.Tasks.Extensions.4.5.1\lib\netstandard2.0\System.Threading.Tasks.Extensions.dll - - - ..\packages\System.ValueTuple.4.4.0\lib\net461\System.ValueTuple.dll - True - True - - - - - - - - - - - 4.0 - - - ..\packages\taglib-sharp-netstandard2.0.2.1.0\lib\netstandard2.0\taglib-sharp.dll - - - - - - - - MSBuild:Compile - Designer - - - - - - - - - - - - - - - - - - - MSBuild:Compile - Designer - - - App.xaml - Code - - - MainWindow.xaml - Code - - - - - Code - - - True - True - Resources.resx - - - True - Settings.settings - True - - - ResXFileCodeGenerator - Resources.Designer.cs - - - - SettingsSingleFileGenerator - Settings.Designer.cs - - - - - - - - {8f005a5d-9325-4cb5-8359-53a7203b9daf} - WaveformTimeline - - - - \ No newline at end of file diff --git a/MigrationBackup/4b838dfc/WaveformTimelineDemo/packages.config b/MigrationBackup/4b838dfc/WaveformTimelineDemo/packages.config deleted file mode 100644 index a67378a..0000000 --- a/MigrationBackup/4b838dfc/WaveformTimelineDemo/packages.config +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - \ No newline at end of file diff --git a/MigrationBackup/b60356df/WaveformTimeline/NuGetUpgradeLog.html b/MigrationBackup/b60356df/WaveformTimeline/NuGetUpgradeLog.html deleted file mode 100644 index ba2a0ae..0000000 --- a/MigrationBackup/b60356df/WaveformTimeline/NuGetUpgradeLog.html +++ /dev/null @@ -1,167 +0,0 @@ - - - - - NuGetMigrationLog -

- NuGet Migration Report - WaveformTimeline

Overview

Migration to PackageReference was completed successfully. Please build and run your solution to verify that all packages are available.
- If you run into any problems, have feedback, questions, or concerns, please - file an issue on the NuGet GitHub repository.

Packages processed

Top-level dependencies:

Package IdVersion
JetBrains.Annotations - v2018.3.0
Microsoft.CSharp - v4.5.0
morelinq - v3.2.0
System.Reactive - v4.2.0
System.Reactive.Linq - v4.2.0

Transitive dependencies:

Package IdVersion
System.Runtime.CompilerServices.Unsafe - v4.5.2
System.Threading.Tasks.Extensions - v4.5.3
System.ValueTuple - v4.5.0

Package compatibility issues

Description
- No issues were found. -
\ No newline at end of file diff --git a/MigrationBackup/b60356df/WaveformTimeline/WaveformTimeline.csproj b/MigrationBackup/b60356df/WaveformTimeline/WaveformTimeline.csproj deleted file mode 100644 index 484b480..0000000 --- a/MigrationBackup/b60356df/WaveformTimeline/WaveformTimeline.csproj +++ /dev/null @@ -1,114 +0,0 @@ - - - - - Debug - AnyCPU - {8F005A5D-9325-4CB5-8359-53A7203B9DAF} - Library - Properties - WaveformTimeline - WaveformTimeline - v4.6.1 - 512 - true - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - - ..\..\Embrace\packages\JetBrains.Annotations.2018.3.0\lib\net20\JetBrains.Annotations.dll - - - ..\..\Embrace\packages\morelinq.3.2.0\lib\net451\MoreLinq.dll - - - - - - - ..\..\Embrace\packages\System.Reactive.4.2.0\lib\net46\System.Reactive.dll - - - ..\..\Embrace\packages\System.Reactive.Linq.4.2.0\lib\net46\System.Reactive.Linq.dll - - - ..\..\Embrace\packages\System.Runtime.CompilerServices.Unsafe.4.5.2\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll - - - ..\..\Embrace\packages\System.Threading.Tasks.Extensions.4.5.3\lib\netstandard2.0\System.Threading.Tasks.Extensions.dll - - - ..\packages\System.ValueTuple.4.5.0\lib\net461\System.ValueTuple.dll - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - MSBuild:Compile - Designer - - - - - - Designer - - - - - \ No newline at end of file diff --git a/MigrationBackup/b60356df/WaveformTimeline/packages.config b/MigrationBackup/b60356df/WaveformTimeline/packages.config deleted file mode 100644 index 6a0843e..0000000 --- a/MigrationBackup/b60356df/WaveformTimeline/packages.config +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - \ No newline at end of file diff --git a/MigrationBackup/b7f2ddbc/WaveformTimelineTests/NuGetUpgradeLog.html b/MigrationBackup/b7f2ddbc/WaveformTimelineTests/NuGetUpgradeLog.html deleted file mode 100644 index c005189..0000000 --- a/MigrationBackup/b7f2ddbc/WaveformTimelineTests/NuGetUpgradeLog.html +++ /dev/null @@ -1,162 +0,0 @@ - - - - - NuGetMigrationLog -

- NuGet Migration Report - WaveformTimelineTests

Overview

Migration to PackageReference was completed successfully. Please build and run your solution to verify that all packages are available.
- If you run into any problems, have feedback, questions, or concerns, please - file an issue on the NuGet GitHub repository.

Packages processed

Top-level dependencies:

Package IdVersion
NUnit - v3.10.1

Transitive dependencies:

Package IdVersion
- No transitive dependencies found. -

Package compatibility issues

Description
- No issues were found. -
\ No newline at end of file diff --git a/MigrationBackup/b7f2ddbc/WaveformTimelineTests/WaveformTimelineTests.csproj b/MigrationBackup/b7f2ddbc/WaveformTimelineTests/WaveformTimelineTests.csproj deleted file mode 100644 index e0e571c..0000000 --- a/MigrationBackup/b7f2ddbc/WaveformTimelineTests/WaveformTimelineTests.csproj +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - Debug - AnyCPU - {4868A7D9-93E1-4344-9D69-76EBB802DD06} - Library - Properties - WaveformTimelineTests - WaveformTimelineTests - v4.6.1 - 512 - true - - - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - - ..\packages\NUnit.3.10.1\lib\net45\nunit.framework.dll - - - - - - - - - - - - - - - - - - - - - - - - - - {8f005a5d-9325-4cb5-8359-53a7203b9daf} - WaveformTimeline - - - - - - This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. - - - - \ No newline at end of file diff --git a/MigrationBackup/b7f2ddbc/WaveformTimelineTests/packages.config b/MigrationBackup/b7f2ddbc/WaveformTimelineTests/packages.config deleted file mode 100644 index ebeb58f..0000000 --- a/MigrationBackup/b7f2ddbc/WaveformTimelineTests/packages.config +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/README.md b/README.md index 05d7754..653ec2b 100644 --- a/README.md +++ b/README.md @@ -9,8 +9,7 @@ This can be useful to you when you develop WPF apps that deal with audio. WaveformTimeline control built for your convenience. # Dependencies -* .NET 8 -* morelinq 3.3.2 +* .NET 10 * System.Reactive 5.0.0 * System.Reactive.Linq 5.0.0 diff --git a/WaveformTimeline/Controls/Curtains.cs b/WaveformTimeline/Controls/Curtains.cs index 4eae35e..2d24b0b 100644 --- a/WaveformTimeline/Controls/Curtains.cs +++ b/WaveformTimeline/Controls/Curtains.cs @@ -1,5 +1,4 @@ #nullable enable -using MoreLinq; using System; using System.Collections.Generic; using System.ComponentModel; @@ -337,7 +336,8 @@ protected override void Render() .Select(t => ( Line: CueLine(t.Cue, t.Location), Polygon: CueHandle(t.Cue, t.Location, _cueMarksCanvas.RenderSize.Height / 2))); - curtains.ForEach(AddCurtain); + foreach (var curtain in curtains) + AddCurtain(curtain); } private void AddCurtain((Line Line, Polygon Polygon) t) @@ -393,9 +393,11 @@ private Line CueLine(double cp, double xLocation) public void Clear() { - _cuePointMarks.ForEach(mark => _cueMarksCanvas?.Children.Remove(mark)); + foreach (var mark in _cuePointMarks) + _cueMarksCanvas?.Children.Remove(mark); _cuePointMarks.Clear(); - _cuePointLines.ForEach(line => MainCanvas?.Children.Remove(line)); + foreach (var line in _cuePointLines) + MainCanvas?.Children.Remove(line); _cuePointLines.Clear(); if (_leftSideCurtain != null) _leftSideCurtain.Width = 0; diff --git a/WaveformTimeline/Controls/Timeline/Timeline.cs b/WaveformTimeline/Controls/Timeline/Timeline.cs index 4221a4d..d76db50 100644 --- a/WaveformTimeline/Controls/Timeline/Timeline.cs +++ b/WaveformTimeline/Controls/Timeline/Timeline.cs @@ -9,7 +9,6 @@ using System.Windows.Controls; using System.Windows.Media; using System.Windows.Shapes; -using MoreLinq; using WaveformTimeline.Commons; using WaveformTimeline.Primitives; using Brush = System.Windows.Media.Brush; @@ -51,7 +50,11 @@ public static readonly DependencyProperty TimelineTickBrushProperty private static void OnTimelineTickBrushChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) => (d as Timeline)?.OnTimelineTickBrushChanged((Brush)e.NewValue); - private void OnTimelineTickBrushChanged(Brush newBrush) => MainCanvas.Children.OfType().ForEach(line => line.Stroke = newBrush); + private void OnTimelineTickBrushChanged(Brush newBrush) + { + foreach (var line in MainCanvas.Children.OfType()) + line.Stroke = newBrush; + } /// /// Color of the timeline line and ticks @@ -248,16 +251,20 @@ protected override void Render() _timestampTextBlocks.AddRange(majorTicksAt .Select(sec => (Second: sec, Location: timelineTickLocation.LocationOnXAxis(sec))) .Select(sec => WithMargin(DrawText(timelineSource.TimespanAsString(sec.Second)), sec.Location))); - _timeLineTicks.ForEach(line => MainCanvas.Children.Add(line)); - _timestampTextBlocks.ForEach(tb => MainCanvas.Children.Add(tb)); + foreach (var line in _timeLineTicks) + MainCanvas.Children.Add(line); + foreach (var tb in _timestampTextBlocks) + MainCanvas.Children.Add(tb); } private void Clear() { MainCanvas.Children.Clear(); // clear the canvas - _timestampTextBlocks.ForEach(textblock => MainCanvas.Children.Remove(textblock)); + foreach (var textblock in _timestampTextBlocks) + MainCanvas.Children.Remove(textblock); _timestampTextBlocks.Clear(); - _timeLineTicks.ForEach(line => MainCanvas.Children.Remove(line)); + foreach (var line in _timeLineTicks) + MainCanvas.Children.Remove(line); _timeLineTicks.Clear(); } diff --git a/WaveformTimeline/Controls/Waveform/Waveform.cs b/WaveformTimeline/Controls/Waveform/Waveform.cs index 42a4b2d..454b1bd 100644 --- a/WaveformTimeline/Controls/Waveform/Waveform.cs +++ b/WaveformTimeline/Controls/Waveform/Waveform.cs @@ -10,7 +10,6 @@ using System.Windows.Controls; using System.Windows.Media; using System.Windows.Shapes; -using MoreLinq.Extensions; using WaveformTimeline.Commons; using WaveformTimeline.Contracts; @@ -502,7 +501,8 @@ void AddDash(Line dash) dashes.Add(dash); MainCanvas.Children.Add(dash); } - lines.ForEach(AddDash); + foreach (var line in lines) + AddDash(line); } public void Clear() diff --git a/WaveformTimeline/Properties/AssemblyInfo.cs b/WaveformTimeline/Properties/AssemblyInfo.cs index 8e6b07b..06f3177 100644 --- a/WaveformTimeline/Properties/AssemblyInfo.cs +++ b/WaveformTimeline/Properties/AssemblyInfo.cs @@ -13,7 +13,7 @@ #endif [assembly: AssemblyCompany("Tomáš Kohl")] [assembly: AssemblyProduct("WaveformTimeline")] -[assembly: AssemblyCopyright("Copyright © 2025 Tomáš Kohl")] +[assembly: AssemblyCopyright("Copyright © 2026 Tomáš Kohl")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] @@ -35,6 +35,6 @@ // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.1.2")] -[assembly: AssemblyInformationalVersion("1.1.2")] +[assembly: AssemblyVersion("1.2.0")] +[assembly: AssemblyInformationalVersion("1.2.0")] [assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/WaveformTimeline/WaveformTimeline.csproj b/WaveformTimeline/WaveformTimeline.csproj index 492f392..92b74a9 100644 --- a/WaveformTimeline/WaveformTimeline.csproj +++ b/WaveformTimeline/WaveformTimeline.csproj @@ -1,6 +1,6 @@ - net8.0-windows;net48 + net10.0-windows latest true WaveformTimeline @@ -30,13 +30,7 @@ - - 4.5.0 - - - 3.3.2 - - + 5.0.0 diff --git a/WaveformTimelineDemo/WaveformTimelineDemo.csproj b/WaveformTimelineDemo/WaveformTimelineDemo.csproj index 5c55f2b..ea5eb3d 100644 --- a/WaveformTimelineDemo/WaveformTimelineDemo.csproj +++ b/WaveformTimelineDemo/WaveformTimelineDemo.csproj @@ -1,6 +1,6 @@  - net8.0-windows;net48 + net10.0-windows latest WinExe true diff --git a/WaveformTimelineTests/WaveformTimelineTests.csproj b/WaveformTimelineTests/WaveformTimelineTests.csproj index e8c3b98..476768a 100644 --- a/WaveformTimelineTests/WaveformTimelineTests.csproj +++ b/WaveformTimelineTests/WaveformTimelineTests.csproj @@ -1,6 +1,6 @@  - net8.0-windows;net48 + net10.0-windows latest WaveformTimelineTests WaveformTimelineTests