From 1fd38bad143e0918141bdd807bdbb4a663643d83 Mon Sep 17 00:00:00 2001 From: Alexander Eckart Date: Sun, 17 Jun 2012 14:31:39 +0200 Subject: [PATCH 1/2] better handling for combined chars in song sorting (sort letter) --- Vocaluxe/Base/CSongs.cs | 33 +++------------------------------ 1 file changed, 3 insertions(+), 30 deletions(-) diff --git a/Vocaluxe/Base/CSongs.cs b/Vocaluxe/Base/CSongs.cs index eeaf0d1a..cc33b1ed 100644 --- a/Vocaluxe/Base/CSongs.cs +++ b/Vocaluxe/Base/CSongs.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using System.Diagnostics; +using System.Globalization; using System.IO; using System.Text; using System.Text.RegularExpressions; @@ -612,21 +613,7 @@ namespace Vocaluxe.Base int NotLetterCat = -1; for (int i=0; i < _SongsSortList.Length; i++) { - Char firstLetter = Char.ToUpper(_SongsSortList[i].SortString[0]); - - //Fix for german Umlaute - switch (firstLetter) - { - case 'Ä': - firstLetter = 'A'; - break; - case 'Ö': - firstLetter = 'O'; - break; - case 'Ü': - firstLetter = 'U'; - break; - } + Char firstLetter = Char.ToUpper(_SongsSortList[i].SortString.Normalize(NormalizationForm.FormD)[0]); if (!Char.IsLetter(firstLetter)) { @@ -684,21 +671,7 @@ namespace Vocaluxe.Base NotLetterCat = -1; for (int i=0; i < _SongsSortList.Length; i++) { - Char firstLetter = Char.ToUpper(_SongsSortList[i].SortString[0]); - - //Fix for german Umlaute - switch (firstLetter) - { - case 'Ä': - firstLetter = 'A'; - break; - case 'Ö': - firstLetter = 'O'; - break; - case 'Ü': - firstLetter = 'U'; - break; - } + Char firstLetter = Char.ToUpper(_SongsSortList[i].SortString.Normalize(NormalizationForm.FormD)[0]); if (!Char.IsLetter(firstLetter)) { From e85a3426a5ed415e4c69d695e8e33a193f60033e Mon Sep 17 00:00:00 2001 From: Alexander Eckart Date: Sun, 17 Jun 2012 15:01:35 +0200 Subject: [PATCH 2/2] added drawing of song menu to the sorting method in CMenu.cs --- Vocaluxe/Menu/CMenu.cs | 3 ++- Vocaluxe/Menu/SongMenu/CSongMenu.cs | 4 ++-- Vocaluxe/Menu/SongMenu/CSongMenuFramework.cs | 2 +- Vocaluxe/Screens/CScreenSong.cs | 1 - 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Vocaluxe/Menu/CMenu.cs b/Vocaluxe/Menu/CMenu.cs index eb870b8c..2e11171d 100644 --- a/Vocaluxe/Menu/CMenu.cs +++ b/Vocaluxe/Menu/CMenu.cs @@ -997,7 +997,8 @@ namespace Vocaluxe.Menu _Interactions[i].Type == EType.TSelectSlide || _Interactions[i].Type == EType.TStatic || _Interactions[i].Type == EType.TNameSelection || - _Interactions[i].Type == EType.TText)) + _Interactions[i].Type == EType.TText || + _Interactions[i].Type == EType.TSongMenu)) { ZSort zs = new ZSort(); zs.ID = i; diff --git a/Vocaluxe/Menu/SongMenu/CSongMenu.cs b/Vocaluxe/Menu/SongMenu/CSongMenu.cs index 24dd94d1..b37e1e04 100644 --- a/Vocaluxe/Menu/SongMenu/CSongMenu.cs +++ b/Vocaluxe/Menu/SongMenu/CSongMenu.cs @@ -33,8 +33,8 @@ namespace Vocaluxe.Menu.SongMenu public bool Visible { - get { return _SongMenu.IsSelected(); } - set { _SongMenu.SetSelected(value); } + get { return _SongMenu.IsVisible(); } + set { _SongMenu.SetVisible(value); } } public SRectF Rect diff --git a/Vocaluxe/Menu/SongMenu/CSongMenuFramework.cs b/Vocaluxe/Menu/SongMenu/CSongMenuFramework.cs index 7c5c069e..ac6bf659 100644 --- a/Vocaluxe/Menu/SongMenu/CSongMenuFramework.cs +++ b/Vocaluxe/Menu/SongMenu/CSongMenuFramework.cs @@ -177,7 +177,7 @@ namespace Vocaluxe.Menu.SongMenu public SRectF GetRect() { - return Rect; + return _Rect; } public SColorF Color diff --git a/Vocaluxe/Screens/CScreenSong.cs b/Vocaluxe/Screens/CScreenSong.cs index 92a4ee3f..7617a044 100644 --- a/Vocaluxe/Screens/CScreenSong.cs +++ b/Vocaluxe/Screens/CScreenSong.cs @@ -222,7 +222,6 @@ namespace Vocaluxe.Screens public override bool Draw() { base.Draw(); - SongMenus[htSongMenus(SongMenu)].Draw(); return true; }