jellyfin-server/MediaBrowser.Plugins.DefaultTheme/DisplayPreferences/IndexMenuPage.xaml.cs
2013-02-20 20:33:05 -05:00

96 lines
3.0 KiB
C#

using MediaBrowser.Model.Net;
using MediaBrowser.UI;
using MediaBrowser.UI.Controls;
using System;
using System.Windows;
using System.Windows.Controls;
namespace MediaBrowser.Plugins.DefaultTheme.DisplayPreferences
{
/// <summary>
/// Interaction logic for IndexMenuPage.xaml
/// </summary>
public partial class IndexMenuPage : BaseDisplayPreferencesPage
{
/// <summary>
/// Initializes a new instance of the <see cref="IndexMenuPage" /> class.
/// </summary>
public IndexMenuPage()
{
InitializeComponent();
chkRememberIndex.Click += chkRememberIndex_Click;
}
/// <summary>
/// Handles the Click event of the chkRememberIndex control.
/// </summary>
/// <param name="sender">The source of the event.</param>
/// <param name="e">The <see cref="RoutedEventArgs" /> instance containing the event data.</param>
async void chkRememberIndex_Click(object sender, RoutedEventArgs e)
{
try
{
await MainPage.UpdateRememberIndex(chkRememberIndex.IsChecked.HasValue && chkRememberIndex.IsChecked.Value);
}
catch (HttpException)
{
App.Instance.ShowDefaultErrorMessage();
}
}
/// <summary>
/// Called when [loaded].
/// </summary>
protected override void OnLoaded()
{
chkRememberIndex.IsChecked = MainPage.DisplayPreferences.RememberIndexing;
var index = 0;
var currentValue = MainPage.IndexBy ?? string.Empty;
foreach (var option in MainPage.Folder.IndexOptions)
{
var radio = new ExtendedRadioButton { GroupName = "Options" };
radio.SetResourceReference(StyleProperty, "ViewMenuRadioButton");
var textblock = new TextBlock { Text = option };
textblock.SetResourceReference(StyleProperty, "TextBlockStyle");
radio.Content = textblock;
if (string.IsNullOrEmpty(MainPage.DisplayPreferences.IndexBy))
{
radio.IsChecked = index == 0;
}
else
{
radio.IsChecked = currentValue.Equals(option, StringComparison.OrdinalIgnoreCase);
}
radio.Tag = option;
radio.Click += radio_Click;
pnlOptions.Children.Add(radio);
index++;
}
base.OnLoaded();
}
/// <summary>
/// Handles the Click event of the radio control.
/// </summary>
/// <param name="sender">The source of the event.</param>
/// <param name="e">The <see cref="RoutedEventArgs" /> instance containing the event data.</param>
async void radio_Click(object sender, RoutedEventArgs e)
{
await MainPage.UpdateIndexOption((sender as RadioButton).Tag.ToString());
}
}
}