diff options
-rw-r--r-- | win/CS/HandBrakeWPF/Services/Scan/LibScan.cs | 3 | ||||
-rw-r--r-- | win/CS/HandBrakeWPF/Services/Scan/Model/Title.cs | 50 | ||||
-rw-r--r-- | win/CS/HandBrakeWPF/Views/MainView.xaml | 24 |
3 files changed, 71 insertions, 6 deletions
diff --git a/win/CS/HandBrakeWPF/Services/Scan/LibScan.cs b/win/CS/HandBrakeWPF/Services/Scan/LibScan.cs index beceb9361..7558bc163 100644 --- a/win/CS/HandBrakeWPF/Services/Scan/LibScan.cs +++ b/win/CS/HandBrakeWPF/Services/Scan/LibScan.cs @@ -388,7 +388,8 @@ namespace HandBrakeWPF.Services.Scan MainTitle = titles.MainFeature == title.Index, Playlist = title.Type == 1 ? string.Format(" {0:d5}.MPLS", title.Playlist).Trim() : null, FramerateNumerator = title.FrameRate.Num, - FramerateDenominator = title.FrameRate.Den + FramerateDenominator = title.FrameRate.Den, + Type = title.Type }; int currentTrack = 1; diff --git a/win/CS/HandBrakeWPF/Services/Scan/Model/Title.cs b/win/CS/HandBrakeWPF/Services/Scan/Model/Title.cs index 32fddb36d..e60520fa7 100644 --- a/win/CS/HandBrakeWPF/Services/Scan/Model/Title.cs +++ b/win/CS/HandBrakeWPF/Services/Scan/Model/Title.cs @@ -11,10 +11,14 @@ namespace HandBrakeWPF.Services.Scan.Model { using System; using System.Collections.Generic; + using System.IO; using System.Linq; using HandBrake.ApplicationServices.Interop.Model; + using HandBrakeWPF.Model; + using HandBrakeWPF.Utilities; + /// <summary> /// An object that represents a single Title of a DVD /// </summary> @@ -123,6 +127,52 @@ namespace HandBrakeWPF.Services.Scan.Model /// </summary> public string SourceName { get; set; } + public string SourceDisplayName + { + get + { + switch (this.Type) + { + case 0: // HB_DVD_TYPE + case 1: // HB_BD_TYPE + default: + return string.Empty; + case 2: // HB_STREAM_TYPE + case 3: // HB_FF_STREAM_TYPE + return Path.GetFileNameWithoutExtension(this.SourceName); + } + } + } + + public string ItemDisplayText + { + get + { + return string.Format( + "{0}{1} ({2:00}:{3:00}:{4:00}) {5}", + this.TitleNumber, + this.Playlist, + this.Duration.Hours, + this.Duration.Minutes, + this.Duration.Seconds, + this.SourceDisplayName); + } + } + + public string ItemDisplayTextClosed + { + get + { + return string.Format( + "{0}{1} ({2:00}:{3:00}:{4:00})", + this.TitleNumber, + this.Playlist, + this.Duration.Hours, + this.Duration.Minutes, + this.Duration.Seconds); + } + } + #endregion /// <summary> diff --git a/win/CS/HandBrakeWPF/Views/MainView.xaml b/win/CS/HandBrakeWPF/Views/MainView.xaml index f4fffe924..d8e7a27fa 100644 --- a/win/CS/HandBrakeWPF/Views/MainView.xaml +++ b/win/CS/HandBrakeWPF/Views/MainView.xaml @@ -304,11 +304,25 @@ <StackPanel Orientation="Horizontal" Grid.Row="1" Margin="0,5,0,0">
<Label FontWeight="Bold" Content="{x:Static Properties:ResourcesUI.MainView_Title}" />
<ComboBox Name="Titles"
- MinWidth="100"
- Margin="17,0,0,0"
- ItemsSource="{Binding ScannedSource.Titles}"
- ToolTip="{x:Static Properties:ResourcesTooltips.MainView_Title}"
- SelectedItem="{Binding Path=SelectedTitle}" />
+ Width="160"
+ Margin="17,0,0,0"
+ ItemsSource="{Binding ScannedSource.Titles}"
+ ToolTip="{x:Static Properties:ResourcesTooltips.MainView_Title}"
+ SelectedItem="{Binding Path=SelectedTitle}" >
+
+ <ComboBox.Style>
+ <Style TargetType="{x:Type ComboBox}">
+ <Style.Triggers>
+ <DataTrigger Binding="{Binding Path=IsDropDownOpen, ElementName=Titles}" Value="True">
+ <Setter Property="DisplayMemberPath" Value="ItemDisplayText" />
+ </DataTrigger>
+ <DataTrigger Binding="{Binding Path=IsDropDownOpen, ElementName=Titles}" Value="False">
+ <Setter Property="DisplayMemberPath" Value="ItemDisplayTextClosed" />
+ </DataTrigger>
+ </Style.Triggers>
+ </Style>
+ </ComboBox.Style>
+ </ComboBox>
<Label Margin="8,0,0,0" FontWeight="Bold" Content="{x:Static Properties:ResourcesUI.MainView_Angle}" />
<ComboBox Name="Angles"
|