From b52d3d0a7185e2815d0fa01389543a4e754fa203 Mon Sep 17 00:00:00 2001 From: rokujyushi Date: Mon, 10 Jul 2023 23:26:20 +0900 Subject: [PATCH 1/5] Track header layout adjustment and volume and Pan values can now be entered --- OpenUtau/Controls/TrackHeader.axaml | 98 ++++++++++++-------------- OpenUtau/Controls/TrackHeader.axaml.cs | 52 ++++++++++++++ 2 files changed, 96 insertions(+), 54 deletions(-) diff --git a/OpenUtau/Controls/TrackHeader.axaml b/OpenUtau/Controls/TrackHeader.axaml index 67cf6970e..874c44f2a 100644 --- a/OpenUtau/Controls/TrackHeader.axaml +++ b/OpenUtau/Controls/TrackHeader.axaml @@ -1,10 +1,8 @@ + xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" + xmlns:d="http://schemas.microsoft.com/expression/blend/2008" + xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" + xmlns:vm="using:OpenUtau.App.ViewModels" mc:Ignorable="d" d:DesignWidth="300" d:DesignHeight="104" x:Class="OpenUtau.App.Controls.TrackHeader" Width="300" TrackNo="{Binding TrackNo}"> @@ -16,23 +14,15 @@ - + - - + + - - - - + @@ -93,9 +75,7 @@ - + @@ -105,11 +85,8 @@ - - - - - + + + + + - - - - - + + + + + + - - + + diff --git a/OpenUtau/Controls/TrackHeader.axaml.cs b/OpenUtau/Controls/TrackHeader.axaml.cs index 7570f6d67..fe1900f4c 100644 --- a/OpenUtau/Controls/TrackHeader.axaml.cs +++ b/OpenUtau/Controls/TrackHeader.axaml.cs @@ -154,6 +154,58 @@ void TrackSettingsButtonClicked(object sender, RoutedEventArgs args) { } } + void ButtonClicked(object sender, RoutedEventArgs args) { + if (sender is Button button) { + if (button.Name != null) { + if (button.Name.Equals("VolumeButton") && ViewModel != null) { + VolumeTextBox.Text = ViewModel.Volume.ToString(); + VolumeButton.IsVisible = false; + VolumeTextBox.IsVisible = true; + args.Handled = true; + } else if (button.Name.Equals("PanButton") && ViewModel != null) { + PanTextBox.Text = ViewModel.Pan.ToString(); + PanButton.IsVisible = false; + PanTextBox.IsVisible = true; + args.Handled = true; + } + } + } + } + void TextBoxEnter(object sender, KeyEventArgs args) { + if (sender is TextBox textBox) { + if (textBox.Name != null) { + if (args.Key == Key.Enter) { + if (textBox.Name.Equals("VolumeTextBox") && ViewModel != null) { + if (double.TryParse(VolumeTextBox.Text, out double number)) { + number = number > VolumeSlider.Minimum ? number < VolumeSlider.Maximum ? number : VolumeSlider.Maximum : VolumeSlider.Minimum; + ViewModel.Volume = number; + } + VolumeButton.IsVisible = true; + VolumeTextBox.IsVisible = false; + args.Handled = true; + } else if (textBox.Name.Equals("PanTextBox") && ViewModel != null) { + if (int.TryParse(PanTextBox.Text, out int number)) { + number = (int)(number > PanSlider.Minimum ? number < PanSlider.Maximum ? number : PanSlider.Maximum : PanSlider.Minimum); + ViewModel.Pan = number; + } + PanButton.IsVisible = true; + PanTextBox.IsVisible = false; + args.Handled = true; + } + } + } + } + } + + void TextBoxLeave(object sender, PointerEventArgs args) { + if (sender is TextBox textBox) { + VolumeButton.IsVisible = true; + PanButton.IsVisible = true; + textBox.IsVisible = false; + args.Handled = true; + } + } + public void Dispose() { unbinds.ForEach(u => u.Dispose()); unbinds.Clear(); From 5f1f62055fd2425ed920cd0b2b01cc2365b4329e Mon Sep 17 00:00:00 2001 From: rokujyushi Date: Tue, 11 Jul 2023 21:21:10 +0900 Subject: [PATCH 2/5] Revert "Track header layout adjustment and volume and Pan values can now be entered" This reverts commit b52d3d0a7185e2815d0fa01389543a4e754fa203. --- OpenUtau/Controls/TrackHeader.axaml | 98 ++++++++++++++------------ OpenUtau/Controls/TrackHeader.axaml.cs | 52 -------------- 2 files changed, 54 insertions(+), 96 deletions(-) diff --git a/OpenUtau/Controls/TrackHeader.axaml b/OpenUtau/Controls/TrackHeader.axaml index 874c44f2a..67cf6970e 100644 --- a/OpenUtau/Controls/TrackHeader.axaml +++ b/OpenUtau/Controls/TrackHeader.axaml @@ -1,8 +1,10 @@ + xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" + xmlns:d="http://schemas.microsoft.com/expression/blend/2008" + xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" + xmlns:vm="using:OpenUtau.App.ViewModels" + mc:Ignorable="d" d:DesignWidth="300" d:DesignHeight="104" + x:Class="OpenUtau.App.Controls.TrackHeader" Width="300" TrackNo="{Binding TrackNo}"> @@ -14,15 +16,23 @@ - + - - + + - - - - + @@ -75,7 +93,9 @@ - + @@ -85,8 +105,11 @@ - - - - - - + + + + - - - - - - + + + + + - - + + diff --git a/OpenUtau/Controls/TrackHeader.axaml.cs b/OpenUtau/Controls/TrackHeader.axaml.cs index fe1900f4c..7570f6d67 100644 --- a/OpenUtau/Controls/TrackHeader.axaml.cs +++ b/OpenUtau/Controls/TrackHeader.axaml.cs @@ -154,58 +154,6 @@ void TrackSettingsButtonClicked(object sender, RoutedEventArgs args) { } } - void ButtonClicked(object sender, RoutedEventArgs args) { - if (sender is Button button) { - if (button.Name != null) { - if (button.Name.Equals("VolumeButton") && ViewModel != null) { - VolumeTextBox.Text = ViewModel.Volume.ToString(); - VolumeButton.IsVisible = false; - VolumeTextBox.IsVisible = true; - args.Handled = true; - } else if (button.Name.Equals("PanButton") && ViewModel != null) { - PanTextBox.Text = ViewModel.Pan.ToString(); - PanButton.IsVisible = false; - PanTextBox.IsVisible = true; - args.Handled = true; - } - } - } - } - void TextBoxEnter(object sender, KeyEventArgs args) { - if (sender is TextBox textBox) { - if (textBox.Name != null) { - if (args.Key == Key.Enter) { - if (textBox.Name.Equals("VolumeTextBox") && ViewModel != null) { - if (double.TryParse(VolumeTextBox.Text, out double number)) { - number = number > VolumeSlider.Minimum ? number < VolumeSlider.Maximum ? number : VolumeSlider.Maximum : VolumeSlider.Minimum; - ViewModel.Volume = number; - } - VolumeButton.IsVisible = true; - VolumeTextBox.IsVisible = false; - args.Handled = true; - } else if (textBox.Name.Equals("PanTextBox") && ViewModel != null) { - if (int.TryParse(PanTextBox.Text, out int number)) { - number = (int)(number > PanSlider.Minimum ? number < PanSlider.Maximum ? number : PanSlider.Maximum : PanSlider.Minimum); - ViewModel.Pan = number; - } - PanButton.IsVisible = true; - PanTextBox.IsVisible = false; - args.Handled = true; - } - } - } - } - } - - void TextBoxLeave(object sender, PointerEventArgs args) { - if (sender is TextBox textBox) { - VolumeButton.IsVisible = true; - PanButton.IsVisible = true; - textBox.IsVisible = false; - args.Handled = true; - } - } - public void Dispose() { unbinds.ForEach(u => u.Dispose()); unbinds.Clear(); From e7ae505ea3fdbbf1d2d37173f9066500f3f6596e Mon Sep 17 00:00:00 2001 From: rokujyushi Date: Tue, 11 Jul 2023 21:25:07 +0900 Subject: [PATCH 3/5] Corrected the points pointed out. --- OpenUtau/Controls/TrackHeader.axaml | 45 ++++++++++++++-------- OpenUtau/Controls/TrackHeader.axaml.cs | 53 ++++++++++++++++++++++++++ 2 files changed, 82 insertions(+), 16 deletions(-) diff --git a/OpenUtau/Controls/TrackHeader.axaml b/OpenUtau/Controls/TrackHeader.axaml index 67cf6970e..ea32077db 100644 --- a/OpenUtau/Controls/TrackHeader.axaml +++ b/OpenUtau/Controls/TrackHeader.axaml @@ -118,28 +118,41 @@ - - - - + + + + + - - - - - + + + + + + - - + + diff --git a/OpenUtau/Controls/TrackHeader.axaml.cs b/OpenUtau/Controls/TrackHeader.axaml.cs index 7570f6d67..e3a947384 100644 --- a/OpenUtau/Controls/TrackHeader.axaml.cs +++ b/OpenUtau/Controls/TrackHeader.axaml.cs @@ -154,6 +154,59 @@ void TrackSettingsButtonClicked(object sender, RoutedEventArgs args) { } } + void ButtonClicked(object sender, RoutedEventArgs args) { + if (sender is Button button) { + if (button.Name != null) { + if (button.Name.Equals("VolumeButton") && ViewModel != null) { + VolumeTextBox.Text = ViewModel.Volume.ToString(); + VolumeButton.IsVisible = false; + VolumeTextBox.IsVisible = true; + args.Handled = true; + } else if (button.Name.Equals("PanButton") && ViewModel != null) { + PanTextBox.Text = ViewModel.Pan.ToString(); + PanButton.IsVisible = false; + PanTextBox.IsVisible = true; + args.Handled = true; + } + } + } + } + void TextBoxEnter(object sender, KeyEventArgs args) { + if (sender is TextBox textBox) { + if (textBox.Name != null) { + if (args.Key == Key.Enter) { + if (textBox.Name.Equals("VolumeTextBox") && ViewModel != null) { + if (double.TryParse(VolumeTextBox.Text, out double number)) { + number = number > VolumeSlider.Minimum ? number < VolumeSlider.Maximum ? number : VolumeSlider.Maximum : VolumeSlider.Minimum; + ViewModel.Volume = number; + } + VolumeButton.IsVisible = true; + VolumeTextBox.IsVisible = false; + args.Handled = true; + } else if (textBox.Name.Equals("PanTextBox") && ViewModel != null) { + if (int.TryParse(PanTextBox.Text, out int number)) { + number = (int)(number > PanSlider.Minimum ? number < PanSlider.Maximum ? number : PanSlider.Maximum : PanSlider.Minimum); + ViewModel.Pan = number; + } + PanButton.IsVisible = true; + PanTextBox.IsVisible = false; + args.Handled = true; + } + } + } + } + } + + void TextBoxLeave(object sender, PointerEventArgs args) { + if (sender is TextBox textBox) { + VolumeButton.IsVisible = true; + PanButton.IsVisible = true; + textBox.IsVisible = false; + args.Handled = true; + } + } + + public void Dispose() { unbinds.ForEach(u => u.Dispose()); unbinds.Clear(); From 42ec0c5b6319cb758432c25a3d58a832680005f0 Mon Sep 17 00:00:00 2001 From: rokujyushi Date: Wed, 12 Jul 2023 00:07:54 +0900 Subject: [PATCH 4/5] As we search from the parent element. --- OpenUtau/Controls/TrackHeader.axaml | 14 ++-- OpenUtau/Controls/TrackHeader.axaml.cs | 96 ++++++++++++++++---------- 2 files changed, 68 insertions(+), 42 deletions(-) diff --git a/OpenUtau/Controls/TrackHeader.axaml b/OpenUtau/Controls/TrackHeader.axaml index ea32077db..473baf5e0 100644 --- a/OpenUtau/Controls/TrackHeader.axaml +++ b/OpenUtau/Controls/TrackHeader.axaml @@ -118,9 +118,9 @@ - - - - + - - - + diff --git a/OpenUtau/Controls/TrackHeader.axaml.cs b/OpenUtau/Controls/TrackHeader.axaml.cs index e3a947384..9a98feba2 100644 --- a/OpenUtau/Controls/TrackHeader.axaml.cs +++ b/OpenUtau/Controls/TrackHeader.axaml.cs @@ -154,44 +154,62 @@ void TrackSettingsButtonClicked(object sender, RoutedEventArgs args) { } } - void ButtonClicked(object sender, RoutedEventArgs args) { - if (sender is Button button) { - if (button.Name != null) { - if (button.Name.Equals("VolumeButton") && ViewModel != null) { - VolumeTextBox.Text = ViewModel.Volume.ToString(); - VolumeButton.IsVisible = false; - VolumeTextBox.IsVisible = true; + void VolumeButtonClicked(object sender, RoutedEventArgs args) { + if (sender is Button button && ViewModel != null) { + if (button.Parent is Grid parentGrid) { + if (parentGrid.Children[2] is TextBox volumeTextBox) { + volumeTextBox.Text = ViewModel.Volume.ToString(); + volumeTextBox.IsVisible = true; + button.IsVisible = false; args.Handled = true; - } else if (button.Name.Equals("PanButton") && ViewModel != null) { - PanTextBox.Text = ViewModel.Pan.ToString(); - PanButton.IsVisible = false; - PanTextBox.IsVisible = true; + } + } + } + } + void PanButtonClicked(object sender, RoutedEventArgs args) { + if (sender is Button button && ViewModel != null) { + if (button.Parent is Grid parentGrid) { + if (parentGrid.Children[5] is TextBox panTextBox) { + panTextBox.Text = ViewModel.Pan.ToString(); + panTextBox.IsVisible = true; + button.IsVisible = false; args.Handled = true; } } } } - void TextBoxEnter(object sender, KeyEventArgs args) { - if (sender is TextBox textBox) { - if (textBox.Name != null) { - if (args.Key == Key.Enter) { - if (textBox.Name.Equals("VolumeTextBox") && ViewModel != null) { - if (double.TryParse(VolumeTextBox.Text, out double number)) { - number = number > VolumeSlider.Minimum ? number < VolumeSlider.Maximum ? number : VolumeSlider.Maximum : VolumeSlider.Minimum; - ViewModel.Volume = number; - } - VolumeButton.IsVisible = true; - VolumeTextBox.IsVisible = false; - args.Handled = true; - } else if (textBox.Name.Equals("PanTextBox") && ViewModel != null) { - if (int.TryParse(PanTextBox.Text, out int number)) { - number = (int)(number > PanSlider.Minimum ? number < PanSlider.Maximum ? number : PanSlider.Maximum : PanSlider.Minimum); - ViewModel.Pan = number; - } - PanButton.IsVisible = true; - PanTextBox.IsVisible = false; - args.Handled = true; + void VolumeTextBoxEnter(object sender, KeyEventArgs args) { + if (sender is TextBox textBox && ViewModel != null && Key.Enter.Equals(args.Key)) { + if (textBox.Parent is Grid parentGrid) { + if (parentGrid.Children[0] is Slider volumeSlider) { + if (double.TryParse(textBox.Text, out double number)) { + number = number > volumeSlider.Minimum ? number < volumeSlider.Maximum ? number : volumeSlider.Maximum : volumeSlider.Minimum; + ViewModel.Volume = number; + } + + } else + if (parentGrid.Children[1] is Button volumeButton) { + textBox.IsVisible = false; + volumeButton.IsVisible = true; + args.Handled = true; + } + } + } + } + void PanTextBoxEnter(object sender, KeyEventArgs args) { + if (sender is TextBox textBox && ViewModel != null && Key.Enter.Equals(args.Key)) { + if (textBox.Parent is Grid parentGrid) { + if (parentGrid.Children[3] is Slider panSlider) { + if (double.TryParse(textBox.Text, out double number)) { + number = number > panSlider.Minimum ? number < panSlider.Maximum ? number : panSlider.Maximum : panSlider.Minimum; + ViewModel.Pan = number; } + + } else + if (parentGrid.Children[4] is Button panButton) { + textBox.IsVisible = false; + panButton.IsVisible = true; + args.Handled = true; } } } @@ -199,10 +217,18 @@ void TextBoxEnter(object sender, KeyEventArgs args) { void TextBoxLeave(object sender, PointerEventArgs args) { if (sender is TextBox textBox) { - VolumeButton.IsVisible = true; - PanButton.IsVisible = true; - textBox.IsVisible = false; - args.Handled = true; + if (textBox.Parent is Grid parentGrid) { + if (parentGrid.Children[1] is Button volumeButton) { + textBox.IsVisible = false; + volumeButton.IsVisible = true; + args.Handled = true; + } + if (parentGrid.Children[4] is Button panButton) { + textBox.IsVisible = false; + panButton.IsVisible = true; + args.Handled = true; + } + } } } From 885580cccd8dd3526ab8bdc26fb8a82d39823e0f Mon Sep 17 00:00:00 2001 From: Maiko Date: Wed, 12 Jul 2023 11:22:56 +0900 Subject: [PATCH 5/5] Reflect mute in track header text box --- OpenUtau/Controls/TrackHeader.axaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/OpenUtau/Controls/TrackHeader.axaml b/OpenUtau/Controls/TrackHeader.axaml index 473baf5e0..140d581ae 100644 --- a/OpenUtau/Controls/TrackHeader.axaml +++ b/OpenUtau/Controls/TrackHeader.axaml @@ -118,8 +118,8 @@ - - + +