|
|
@ -17,21 +17,36 @@ |
|
|
|
// DEALINGS IN THE SOFTWARE.
|
|
|
|
// DEALINGS IN THE SOFTWARE.
|
|
|
|
|
|
|
|
|
|
|
|
using System; |
|
|
|
using System; |
|
|
|
|
|
|
|
using System.Collections.Generic; |
|
|
|
|
|
|
|
using System.Linq; |
|
|
|
using System.Threading.Tasks; |
|
|
|
using System.Threading.Tasks; |
|
|
|
using System.Windows; |
|
|
|
|
|
|
|
using ICSharpCode.ILSpy.TextView; |
|
|
|
using ICSharpCode.ILSpy.TextView; |
|
|
|
|
|
|
|
|
|
|
|
namespace ICSharpCode.ILSpy.ViewModels |
|
|
|
namespace ICSharpCode.ILSpy.ViewModels |
|
|
|
{ |
|
|
|
{ |
|
|
|
public class TabPageModel : PaneModel |
|
|
|
public class TabPageModel : PaneModel |
|
|
|
{ |
|
|
|
{ |
|
|
|
|
|
|
|
private readonly Dictionary<Language, LanguageVersion> languageVersionHistory = new Dictionary<Language, LanguageVersion>(); |
|
|
|
|
|
|
|
|
|
|
|
private Language language; |
|
|
|
private Language language; |
|
|
|
public Language Language { |
|
|
|
public Language Language { |
|
|
|
get => language; |
|
|
|
get => language; |
|
|
|
set { |
|
|
|
set { |
|
|
|
if (language != value) { |
|
|
|
if (language != value) { |
|
|
|
|
|
|
|
if (language != null && language.HasLanguageVersions) { |
|
|
|
|
|
|
|
languageVersionHistory[language] = languageVersion; |
|
|
|
|
|
|
|
} |
|
|
|
language = value; |
|
|
|
language = value; |
|
|
|
RaisePropertyChanged(nameof(Language)); |
|
|
|
RaisePropertyChanged(nameof(Language)); |
|
|
|
|
|
|
|
if (language.HasLanguageVersions) { |
|
|
|
|
|
|
|
if (languageVersionHistory.TryGetValue(value, out var version)) { |
|
|
|
|
|
|
|
LanguageVersion = version; |
|
|
|
|
|
|
|
} else { |
|
|
|
|
|
|
|
LanguageVersion = Language.LanguageVersions.Last(); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} else { |
|
|
|
|
|
|
|
LanguageVersion = default; |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
@ -42,6 +57,9 @@ namespace ICSharpCode.ILSpy.ViewModels |
|
|
|
set { |
|
|
|
set { |
|
|
|
if (languageVersion != value) { |
|
|
|
if (languageVersion != value) { |
|
|
|
languageVersion = value; |
|
|
|
languageVersion = value; |
|
|
|
|
|
|
|
if (language.HasLanguageVersions) { |
|
|
|
|
|
|
|
languageVersionHistory[language] = languageVersion; |
|
|
|
|
|
|
|
} |
|
|
|
RaisePropertyChanged(nameof(LanguageVersion)); |
|
|
|
RaisePropertyChanged(nameof(LanguageVersion)); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|