]> granicus.if.org Git - handbrake/commitdiff
WinGui: Change the implementation of the Source Menu Image handling. Hopefully this...
authorsr55 <sr55.hb@outlook.com>
Tue, 3 Sep 2013 17:01:14 +0000 (17:01 +0000)
committersr55 <sr55.hb@outlook.com>
Tue, 3 Sep 2013 17:01:14 +0000 (17:01 +0000)
git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@5765 b64f7644-9d1e-0410-96f1-a4d463321fa5

win/CS/HandBrakeWPF/AttachedProperties/DriveMenu.cs
win/CS/HandBrakeWPF/Model/SourceMenuItem.cs
win/CS/HandBrakeWPF/ViewModels/MainViewModel.cs
win/CS/HandBrakeWPF/Views/MainView.xaml

index 8c12ca820d3ab564c0fdd8a0b73422fe2a09e6ac..ffe8fe634b7d669af05d520a2fc11ec98eb49390 100644 (file)
@@ -12,10 +12,8 @@ namespace HandBrakeWPF.AttachedProperties
     using System;\r
     using System.Collections.Generic;\r
     using System.Linq;\r
-    using System.Threading;\r
     using System.Windows;\r
     using System.Windows.Controls;\r
-    using System.Windows.Media.Imaging;\r
 \r
     using HandBrake.ApplicationServices.Exceptions;\r
     using HandBrake.ApplicationServices.Utilities;\r
@@ -119,7 +117,6 @@ namespace HandBrakeWPF.AttachedProperties
                                                         let driveInformation = item\r
                                                         select new SourceMenuItem\r
                                                                    {\r
-                                                                       Image = new Image { Source = new BitmapImage(new Uri("pack://application:,,,/HandBrake;component/Views/Images/disc_small.png")), Width = 16, Height = 16 },\r
                                                                        Text = string.Format("{0} ({1})", item.RootDirectory, item.VolumeLabel),\r
                                                                        Command = new SourceMenuCommand(() => mvm.ProcessDrive(driveInformation)),\r
                                                                        Tag = item,\r
index 4be52964e12820c30c0db20629cfc9c546923ff9..00cb2e28f627c393b91aef4399c92e15fef59c8f 100644 (file)
@@ -10,7 +10,6 @@
 namespace HandBrakeWPF.Model\r
 {\r
     using System.Collections.ObjectModel;\r
-    using System.Windows.Controls;\r
     using System.Windows.Input;\r
 \r
     /// <summary>\r
@@ -36,11 +35,6 @@ namespace HandBrakeWPF.Model
         /// </summary>\r
         public ICommand Command { get; set; }\r
 \r
-        /// <summary>\r
-        /// Gets or sets the image.\r
-        /// </summary>\r
-        public Image Image { get; set; }\r
-\r
         /// <summary>\r
         /// Gets or sets the children.\r
         /// </summary>\r
@@ -51,6 +45,22 @@ namespace HandBrakeWPF.Model
         /// </summary>\r
         public bool IsDrive { get; set; }\r
 \r
+        /// <summary>\r
+        /// Gets or sets a value indicating whether is open folder.\r
+        /// </summary>\r
+        public bool IsOpenFolder { get; set; }\r
+\r
+        /// <summary>\r
+        /// Gets a value indicating whether is open file.\r
+        /// </summary>\r
+        public bool IsOpenFile\r
+        {\r
+            get\r
+            {\r
+                return !this.IsOpenFolder && (this.Children == null || this.Children.Count == 0);\r
+            }\r
+        }\r
+\r
         /// <summary>\r
         /// Gets or sets the tag.\r
         /// </summary>\r
index 614964700cf71895080a2f2cf10f24ecd85db843..dce7e524bc378ade5ce8f2067b671d498f8dede1 100644 (file)
@@ -2032,7 +2032,7 @@ namespace HandBrakeWPF.ViewModels
 \r
             SourceMenuItem folderScan = new SourceMenuItem\r
             {\r
-                Image = new Image { Source = new BitmapImage(new Uri("pack://application:,,,/HandBrake;component/Views/Images/folder.png")), Width = 16, Height = 16 },\r
+                IsOpenFolder = true,\r
                 Text = "Open Folder",\r
                 Command = new SourceMenuCommand(this.FolderScan),\r
                 IsDrive = false,\r
@@ -2040,7 +2040,7 @@ namespace HandBrakeWPF.ViewModels
             };\r
             SourceMenuItem fileScan = new SourceMenuItem\r
             {\r
-                Image = new Image { Source = new BitmapImage(new Uri("pack://application:,,,/HandBrake;component/Views/Images/Movies.png")), Width = 16, Height = 16 },\r
+                IsOpenFolder = false,\r
                 Text = "Open File",\r
                 Command = new SourceMenuCommand(this.FileScan),\r
                 IsDrive = false,\r
@@ -2050,14 +2050,14 @@ namespace HandBrakeWPF.ViewModels
             SourceMenuItem titleSpecific = new SourceMenuItem { Text = "Title Specific Scan" };\r
             SourceMenuItem folderScanTitle = new SourceMenuItem\r
             {\r
-                Image = new Image { Source = new BitmapImage(new Uri("pack://application:,,,/HandBrake;component/Views/Images/folder.png")), Width = 16, Height = 16 },\r
+                IsOpenFolder = true,\r
                 Text = "Open Folder",\r
                 Command = new SourceMenuCommand(this.FolderScanTitleSpecific),\r
                 IsDrive = false\r
             };\r
             SourceMenuItem fileScanTitle = new SourceMenuItem\r
             {\r
-                Image = new Image { Source = new BitmapImage(new Uri("pack://application:,,,/HandBrake;component/Views/Images/Movies.png")), Width = 16, Height = 16 },\r
+                IsOpenFolder = false,\r
                 Text = "Open File",\r
                 Command = new SourceMenuCommand(this.FileScanTitleSpecific),\r
                 IsDrive = false\r
@@ -2076,7 +2076,6 @@ namespace HandBrakeWPF.ViewModels
                 select\r
                     new SourceMenuItem\r
                         {\r
-                            Image = new Image { Source = new BitmapImage(new Uri("pack://application:,,,/HandBrake;component/Views/Images/disc_small.png")), Width = 16, Height = 16 },\r
                             Text = string.Format("{0} ({1})", item.RootDirectory, item.VolumeLabel),\r
                             Command = new SourceMenuCommand(() => this.ProcessDrive(driveInformation)),\r
                             Tag = item,\r
index c9d87f870bcbe6755233c9f13edb37a71107a3e3..cb1fa7582372c7c8a0d9edec0f42e1ec5818b0db 100644 (file)
@@ -6,6 +6,7 @@
         xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"\r
         xmlns:Micro="clr-namespace:Caliburn.Micro;assembly=Caliburn.Micro"\r
              xmlns:attachedProperties="clr-namespace:HandBrakeWPF.AttachedProperties"\r
+             xmlns:handBrakeWpf="clr-namespace:HandBrakeWPF"\r
              AllowDrop="True"\r
         FontSize="11"\r
         Micro:Message.Attach="[Event Loaded] = [Action Load]"\r
@@ -21,7 +22,7 @@
         </i:EventTrigger>\r
     </i:Interaction.Triggers>\r
 \r
-    <UserControl.Resources>       \r
+    <UserControl.Resources>\r
         <Style TargetType="Button">\r
             <Setter Property="FontWeight" Value="Bold" />\r
             <Setter Property="Padding" Value="5,1" />\r
                                        />\r
                             </StackPanel>\r
                         </MenuItem.Header>\r
+                        <MenuItem.Resources>\r
+                            <Image x:Key="Movie" x:Shared="False" MaxWidth="16" SnapsToDevicePixels="True" Source="Images/Movies.png" />\r
+                            <Image x:Key="Folder" x:Shared="False" MaxWidth="16" SnapsToDevicePixels="True" Source="Images/folder.png" />\r
+                            <Image x:Key="Disc" x:Shared="False" MaxWidth="16" SnapsToDevicePixels="True" Source="Images/disc_small.png" />\r
+                        </MenuItem.Resources>\r
                         <MenuItem.ItemContainerStyle>\r
-                            <Style TargetType="{x:Type MenuItem}">\r
+                            <Style TargetType="{x:Type MenuItem}" x:Shared="True">\r
                                 <Setter Property="Header" Value="{Binding Text}" />\r
                                 <Setter Property="Command" Value="{Binding Command}"/>\r
                                 <Setter Property="ItemsSource" Value="{Binding Children}" />\r
-                                <Setter Property="Icon" Value="{Binding Image}" />\r
                                 <Setter Property="InputGestureText" Value="{Binding InputGestureText}" />\r
                                 <Setter Property="Tag" Value="{Binding}" />\r
+                                \r
+                                <Style.Triggers>\r
+                                    <DataTrigger Binding="{Binding Path=IsDisc}" Value="true">\r
+                                        <Setter Property="Icon" Value="{StaticResource Disc}"/>\r
+                                    </DataTrigger>\r
+                                    <DataTrigger Binding="{Binding Path=IsOpenFolder}" Value="true">\r
+                                        <Setter Property="Icon" Value="{StaticResource Folder}"/>\r
+                                    </DataTrigger>\r
+                                    <DataTrigger Binding="{Binding Path=IsOpenFile}" Value="true">\r
+                                        <Setter Property="Icon" Value="{StaticResource Movie}"/>\r
+                                    </DataTrigger>\r
+                                </Style.Triggers>\r
                             </Style>\r
                         </MenuItem.ItemContainerStyle>\r
                     </MenuItem>\r
                                 <MenuItem Header="Open this Directory" Micro:Message.Attach="[Event Click] = [Action OpenDestinationDirectory]" />\r
                             </ContextMenu>\r
                         </TextBox.ContextMenu>\r
-                        </TextBox>\r
+                    </TextBox>\r
                     <Button Name="DestinationBrowser"\r
                             Grid.Column="2"\r
                             Margin="8,0,0,0"\r
                       Header="Presets"\r
                       Margin="0,0,0,5"\r
                       Visibility="{Binding IsPresetPanelShowing, Converter={StaticResource boolToVisConverter}}">\r
-                      \r
+\r
                 <Grid>\r
                     <Grid.RowDefinitions>\r
                         <RowDefinition Height="*" />\r