Skip to content

Commit 611d465

Browse files
author
RandomEngy
committed
Moved preview button to be in line with Stop/Pause/Encode buttons and made it disappear when the preview window is open.
1 parent b435805 commit 611d465

3 files changed

Lines changed: 141 additions & 111 deletions

File tree

VidCoder/View/EncodingWindow.xaml

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -79,8 +79,10 @@
7979
</Button>
8080
</ToolBar>
8181
</ToolBarPanel>
82-
<Button Height="26" Margin="0,4,12,0" VerticalAlignment="Top" IsEnabled="{Binding HasSourceData}"
83-
Command="{Binding PreviewCommand}" HorizontalAlignment="Right" Width="77">
82+
<Button
83+
Height="26" Margin="0,4,12,0" VerticalAlignment="Top" IsEnabled="{Binding HasSourceData}"
84+
Command="{Binding PreviewCommand}" HorizontalAlignment="Right" Width="77"
85+
Visibility="{Binding MainViewModel.PreviewWindowOpen, Converter={StaticResource VisibilityConverter}, ConverterParameter=True}">
8486
<StackPanel Orientation="Horizontal">
8587
<Image Source="/Icons/preview.png" />
8688
<TextBlock Text="Preview" Margin="5,0,0,0" VerticalAlignment="Center" />

VidCoder/View/MainWindow.xaml

Lines changed: 132 additions & 109 deletions
Original file line numberDiff line numberDiff line change
@@ -430,7 +430,7 @@
430430

431431
<!-- Video choices on load -->
432432
<Grid
433-
Margin="26,30,12,7" VerticalAlignment="Top"
433+
Margin="26,30,12,12" VerticalAlignment="Top"
434434
MinHeight="105" MinWidth="220"
435435
Visibility="{Binding SourceOptionsVisible, Converter={StaticResource VisibilityConverter}}">
436436
<Grid.ColumnDefinitions>
@@ -627,7 +627,7 @@
627627
<Grid Grid.Row="2" Background="{StaticResource SectionBackground}">
628628
<TextBlock Text="Destination:" Style="{StaticResource SectionHeader}" HorizontalAlignment="Left" Width="80" Height="19" Margin="12,9,0,0" VerticalAlignment="Top" />
629629
<Grid
630-
Height="22" Margin="98,7,88,0" VerticalAlignment="Top"
630+
Height="22" Margin="98,8,88,0" VerticalAlignment="Top"
631631
Visibility="{Binding OutputFolderChosen, Converter={StaticResource VisibilityConverter}}">
632632
<TextBox
633633
Name="destinationEditBox"
@@ -639,7 +639,7 @@
639639
Background="Transparent"
640640
Visibility="{Binding EditingDestination, Converter={StaticResource VisibilityConverter}, ConverterParameter=True}"
641641
MouseLeftButtonDown="DestinationReadAreaMouseLeftButtonDown"
642-
ToolTip="Click to change the encode destination." Margin="0,1,0,-1">
642+
ToolTip="Click to change the encode destination." Margin="0">
643643
<Border
644644
CornerRadius="3"
645645
BorderBrush="#7DA2CE" BorderThickness="1"
@@ -679,6 +679,15 @@
679679
<TextBlock HorizontalAlignment="Left" Margin="12,16,0,0" Width="77.534"
680680
Text="Encoding:"
681681
Style="{StaticResource SectionHeader}" Height="21" VerticalAlignment="Top" />
682+
683+
<Button Margin="94,13,0,0" Height="30" VerticalAlignment="Top" HorizontalAlignment="Left" Width="90"
684+
Command="{Binding OpenEncodingWindowCommand}">
685+
<StackPanel Orientation="Horizontal">
686+
<Image Source="/Icons/tools.png" Width="22" Height="22" />
687+
<TextBlock Text="Settings" VerticalAlignment="Center" Margin="7,0,0,0" />
688+
</StackPanel>
689+
</Button>
690+
682691
<ComboBox HorizontalAlignment="Left" Margin="263,18,0,0" Name="presetComboBox" Width="140" Height="22.76" VerticalAlignment="Top"
683692
ItemsSource="{Binding AllPresets}" SelectedItem="{Binding SelectedPreset}"
684693
ItemContainerStyle="{StaticResource EncodingContainerStyle}">
@@ -706,139 +715,153 @@
706715
</DataTemplate>
707716
</ComboBox.ItemTemplate>
708717
</ComboBox>
709-
<Button Margin="94,13,0,0" Height="30" VerticalAlignment="Top" HorizontalAlignment="Left" Width="90"
710-
Command="{Binding OpenEncodingWindowCommand}">
711-
<StackPanel Orientation="Horizontal">
712-
<Image Source="/Icons/tools.png" Width="22" Height="22" />
713-
<TextBlock Text="Settings" VerticalAlignment="Center" Margin="7,0,0,0" />
714-
</StackPanel>
715-
</Button>
716-
<Button
717-
Height="26" HorizontalAlignment="Right" Margin="0,16,12,0" VerticalAlignment="Top" Width="77"
718-
Command="{Binding OpenPreviewWindowCommand}"
719-
IsEnabled="{Binding HasVideoSource}">
720-
<StackPanel Orientation="Horizontal">
721-
<Image Source="/Icons/preview.png" />
722-
<TextBlock Text="Preview" Margin="5,0,0,0" VerticalAlignment="Center" />
723-
</StackPanel>
724-
</Button>
725-
726-
<Button Height="37" HorizontalAlignment="Left" Margin="6,56,0,0" VerticalAlignment="Top" Width="114"
727-
Command="{Binding AddToQueueCommand}"
728-
ToolTip="{Binding EnqueueToolTip}" ToolTipService.ShowOnDisabled="True">
729-
<StackPanel Orientation="Horizontal">
730-
<Image Source="/Icons/downarrow_shadow.png" Height="26" />
731-
<TextBlock Text="Add to Queue" VerticalAlignment="Center" Margin="5,0,0,0" />
732-
</StackPanel>
733-
</Button>
734-
<TextBlock Text="Task" HorizontalAlignment="Left" VerticalAlignment="Top" Height="15.96" Margin="135,60,0,0" Width="26.25"
735-
Visibility="{Binding Encoding, Converter={StaticResource VisibilityConverter}}"/>
736-
<TextBlock HorizontalAlignment="Left" Margin="163,60,0,0" VerticalAlignment="Top" Width="33"
737-
Text="{Binding TaskDetails}"
738-
Visibility="{Binding Encoding, Converter={StaticResource VisibilityConverter}}"/>
739-
<TextBlock
740-
Text="ETA:" Width="25" HorizontalAlignment="Left" VerticalAlignment="Top" Margin="135,77,0,0"
741-
ToolTip="{x:Static resx:Resources.QueueEtaToolTip}"
742-
Visibility="{Binding EncodeSpeedDetailsAvailable, Converter={StaticResource VisibilityConverter}}" />
743-
<TextBlock
744-
Text="{Binding EstimatedTimeRemaining}" Width="50" HorizontalAlignment="Left" VerticalAlignment="Top" Margin="163,77,0,0"
745-
ToolTip="{x:Static resx:Resources.QueueEtaToolTip}"
746-
Visibility="{Binding EncodeSpeedDetailsAvailable, Converter={StaticResource VisibilityConverter}}"/>
747-
748718

749719
<Grid
750-
Margin="220,66,179,0" VerticalAlignment="Top" Height="20.44"
751-
Visibility="{Binding Encoding, Converter={StaticResource VisibilityConverter}}" MouseEnter="ProgressMouseEnter" MouseLeave="ProgressMouseLeave">
752-
<ProgressBar
753-
Name="overallEncodeProgressBar"
754-
Value="{Binding OverallEncodeProgressPercent, Mode=OneWay}" Height="20.44" VerticalAlignment="Top"
755-
Foreground="{Binding ProgressBarColor}" />
720+
Margin="0,54,0,0">
721+
<Grid.ColumnDefinitions>
722+
<ColumnDefinition />
723+
<ColumnDefinition Width="Auto" />
724+
<ColumnDefinition Width="Auto" />
725+
<ColumnDefinition Width="Auto" />
726+
</Grid.ColumnDefinitions>
727+
728+
<Button Height="37" HorizontalAlignment="Left" Margin="6,2,0,0" VerticalAlignment="Top" Width="114"
729+
Command="{Binding AddToQueueCommand}"
730+
ToolTip="{Binding EnqueueToolTip}" ToolTipService.ShowOnDisabled="True">
731+
<StackPanel Orientation="Horizontal">
732+
<Image Source="/Icons/downarrow_shadow.png" Height="26" />
733+
<TextBlock Text="Add to Queue" VerticalAlignment="Center" Margin="5,0,0,0" />
734+
</StackPanel>
735+
</Button>
736+
<TextBlock Text="Task" HorizontalAlignment="Left" VerticalAlignment="Top" Height="15.96" Margin="135,6,0,0" Width="26.25"
737+
Visibility="{Binding Encoding, Converter={StaticResource VisibilityConverter}}"/>
738+
<TextBlock HorizontalAlignment="Left" Margin="163,6,0,0" VerticalAlignment="Top" Width="33"
739+
Text="{Binding TaskDetails}"
740+
Visibility="{Binding Encoding, Converter={StaticResource VisibilityConverter}}"/>
756741
<TextBlock
757-
Text="{Binding OverallEncodeProgressPercent, Mode=OneWay, Converter={StaticResource PercentDisplayConverter}}"
758-
VerticalAlignment="Center" HorizontalAlignment="Center" />
742+
Text="ETA:" Width="25" HorizontalAlignment="Left" VerticalAlignment="Top" Margin="135,23,0,0"
743+
ToolTip="{x:Static resx:Resources.QueueEtaToolTip}"
744+
Visibility="{Binding EncodeSpeedDetailsAvailable, Converter={StaticResource VisibilityConverter}}" />
745+
<TextBlock
746+
Text="{Binding EstimatedTimeRemaining}" Width="50" HorizontalAlignment="Left" VerticalAlignment="Top" Margin="163,23,0,0"
747+
ToolTip="{x:Static resx:Resources.QueueEtaToolTip}"
748+
Visibility="{Binding EncodeSpeedDetailsAvailable, Converter={StaticResource VisibilityConverter}}"/>
759749

760-
<Popup
761-
Name="encodeProgressDetailsPopup" IsOpen="False"
762-
PlacementTarget="{Binding ElementName=overallEncodeProgressBar}"
763-
Placement="Bottom"
764-
HorizontalOffset="50"
765-
VerticalOffset="10"
766-
AllowsTransparency="True">
767-
<Border
750+
<!-- Progress bar -->
751+
<Grid
752+
Margin="220,12,5,0" VerticalAlignment="Top" Height="20.44"
753+
Visibility="{Binding Encoding, Converter={StaticResource VisibilityConverter}}" MouseEnter="ProgressMouseEnter" MouseLeave="ProgressMouseLeave">
754+
<ProgressBar
755+
Name="overallEncodeProgressBar"
756+
Value="{Binding OverallEncodeProgressPercent, Mode=OneWay}" Height="20.44" VerticalAlignment="Top"
757+
Foreground="{Binding ProgressBarColor}" />
758+
<TextBlock
759+
Text="{Binding OverallEncodeProgressPercent, Mode=OneWay, Converter={StaticResource PercentDisplayConverter}}"
760+
VerticalAlignment="Center" HorizontalAlignment="Center" />
761+
762+
<Popup
763+
Name="encodeProgressDetailsPopup" IsOpen="False"
764+
PlacementTarget="{Binding ElementName=overallEncodeProgressBar}"
765+
Placement="Bottom"
766+
HorizontalOffset="50"
767+
VerticalOffset="10"
768+
AllowsTransparency="True">
769+
<Border
768770
BorderBrush="Gray"
769771
BorderThickness="1"
770772
CornerRadius="4"
771773
Margin="10"
772774
Visibility="{Binding EncodeSpeedDetailsAvailable, Converter={StaticResource VisibilityConverter}}">
773-
<Border.Effect>
774-
<DropShadowEffect ShadowDepth="6" BlurRadius="3" Direction="315" Opacity="0.3" />
775-
</Border.Effect>
776-
<Border.Background>
777-
<LinearGradientBrush StartPoint="0,0" EndPoint="0,1">
778-
<GradientStop Color="White" Offset="0.0" />
779-
<GradientStop Color="LightGray" Offset="1.0" />
780-
</LinearGradientBrush>
781-
</Border.Background>
782-
<Grid Margin="7,2,7,2">
783-
<Grid.ColumnDefinitions>
784-
<ColumnDefinition Width="Auto" />
785-
<ColumnDefinition Width="40" />
786-
</Grid.ColumnDefinitions>
787-
<Grid.RowDefinitions>
788-
<RowDefinition Height="Auto" />
789-
<RowDefinition Height="Auto" />
790-
</Grid.RowDefinitions>
791-
<TextBlock
775+
<Border.Effect>
776+
<DropShadowEffect ShadowDepth="6" BlurRadius="3" Direction="315" Opacity="0.3" />
777+
</Border.Effect>
778+
<Border.Background>
779+
<LinearGradientBrush StartPoint="0,0" EndPoint="0,1">
780+
<GradientStop Color="White" Offset="0.0" />
781+
<GradientStop Color="LightGray" Offset="1.0" />
782+
</LinearGradientBrush>
783+
</Border.Background>
784+
<Grid Margin="7,2,7,2">
785+
<Grid.ColumnDefinitions>
786+
<ColumnDefinition Width="Auto" />
787+
<ColumnDefinition Width="40" />
788+
</Grid.ColumnDefinitions>
789+
<Grid.RowDefinitions>
790+
<RowDefinition Height="Auto" />
791+
<RowDefinition Height="Auto" />
792+
</Grid.RowDefinitions>
793+
<TextBlock
792794
Text="Current FPS:" Grid.Row="0" Grid.Column="0"
793795
Visibility="{Binding EncodeSpeedDetailsAvailable, Converter={StaticResource VisibilityConverter}}"
794796
Style="{StaticResource EncodeDetailsHeader}"/>
795-
<TextBlock
797+
<TextBlock
796798
Text="{Binding CurrentFps, Mode=OneWay, Converter={StaticResource DoubleDisplayConverter}}"
797799
Grid.Row="0" Grid.Column="1" TextAlignment="Center"
798800
Visibility="{Binding EncodeSpeedDetailsAvailable, Converter={StaticResource VisibilityConverter}}"
799801
Style="{StaticResource EncodeDetailsText}"/>
800-
<TextBlock
802+
<TextBlock
801803
Text="Average FPS:" Grid.Row="1" Grid.Column="0"
802804
Visibility="{Binding EncodeSpeedDetailsAvailable, Converter={StaticResource VisibilityConverter}}"
803805
Style="{StaticResource EncodeDetailsHeader}"/>
804-
<TextBlock
806+
<TextBlock
805807
Text="{Binding AverageFps, Mode=OneWay, Converter={StaticResource DoubleDisplayConverter}}"
806808
Grid.Row="1" Grid.Column="1" TextAlignment="Center"
807809
Visibility="{Binding EncodeSpeedDetailsAvailable, Converter={StaticResource VisibilityConverter}}"
808810
Style="{StaticResource EncodeDetailsText}"/>
809-
</Grid>
810-
</Border>
811-
</Popup>
811+
</Grid>
812+
</Border>
813+
</Popup>
814+
</Grid>
815+
816+
<Button
817+
Grid.Column="1"
818+
Height="37" HorizontalAlignment="Right" Margin="0,0,5,0" VerticalAlignment="Bottom" Width="86"
819+
Command="{Binding OpenPreviewWindowCommand}"
820+
IsEnabled="{Binding HasVideoSource}"
821+
Visibility="{Binding PreviewWindowOpen, Converter={StaticResource VisibilityConverter}, ConverterParameter=True}">
822+
<StackPanel Orientation="Horizontal">
823+
<Image Source="/Icons/preview.png" Height="26" />
824+
<TextBlock Text="Preview" Margin="5,0,0,0" VerticalAlignment="Center" />
825+
</StackPanel>
826+
</Button>
827+
828+
<Button
829+
Grid.Column="2" Height="37" HorizontalAlignment="Right" Margin="0,0,5,0" VerticalAlignment="Bottom" Width="78"
830+
Command="{Binding StopEncodeCommand}"
831+
Visibility="{Binding Encoding, Converter={StaticResource VisibilityConverter}}">
832+
<StackPanel Orientation="Horizontal">
833+
<Image Source="/Icons/stop_shadow.png" />
834+
<TextBlock Text="Stop" VerticalAlignment="Center" Margin="4,0,0,0" />
835+
</StackPanel>
836+
</Button>
837+
838+
<Button
839+
Grid.Column="3" Height="37" HorizontalAlignment="Right" Margin="0,0,6,0" VerticalAlignment="Bottom" Width="82"
840+
Command="{Binding EncodeCommand}"
841+
Visibility="{Binding PauseVisible, Converter={StaticResource VisibilityConverter}, ConverterParameter=True}"
842+
ToolTip="{Binding EncodeToolTip}" ToolTipService.ShowOnDisabled="True">
843+
<StackPanel Orientation="Horizontal">
844+
<Image Source="/Icons/encode_160.png" Height="26" />
845+
<TextBlock Margin="7,0,0,0" Text="{Binding EncodeButtonText}" VerticalAlignment="Center" />
846+
</StackPanel>
847+
</Button>
848+
<Button
849+
Grid.Column="3" Height="37" HorizontalAlignment="Right" Margin="0,0,6,0" VerticalAlignment="Bottom" Width="82"
850+
Command="{Binding PauseCommand}"
851+
Visibility="{Binding PauseVisible, Converter={StaticResource VisibilityConverter}}">
852+
<StackPanel Orientation="Horizontal">
853+
<Image Source="/Icons/pause2.png" Height="28" />
854+
<TextBlock Margin="7,0,0,0" Text="Pause" VerticalAlignment="Center" />
855+
</StackPanel>
856+
</Button>
812857
</Grid>
813858

814859

815860

816-
<Button Height="37" HorizontalAlignment="Right" Margin="0,56,94,0" VerticalAlignment="Top" Width="78"
817-
Command="{Binding StopEncodeCommand}"
818-
Visibility="{Binding Encoding, Converter={StaticResource VisibilityConverter}}">
819-
<StackPanel Orientation="Horizontal">
820-
<Image Source="/Icons/stop_shadow.png" />
821-
<TextBlock Text="Stop" VerticalAlignment="Center" Margin="4,0,0,0" />
822-
</StackPanel>
823-
</Button>
824-
<Button Height="37" HorizontalAlignment="Right" Margin="0,56,6,0" VerticalAlignment="Top" Width="82"
825-
Command="{Binding EncodeCommand}"
826-
Visibility="{Binding PauseVisible, Converter={StaticResource VisibilityConverter}, ConverterParameter=True}"
827-
ToolTip="{Binding EncodeToolTip}" ToolTipService.ShowOnDisabled="True">
828-
<StackPanel Orientation="Horizontal">
829-
<Image Source="/Icons/encode_160.png" Height="26" />
830-
<TextBlock Margin="7,0,0,0" Text="{Binding EncodeButtonText}" VerticalAlignment="Center" />
831-
</StackPanel>
832-
</Button>
833-
<Button
834-
Height="37" HorizontalAlignment="Right" Margin="0,56,6,0" VerticalAlignment="Top" Width="82"
835-
Command="{Binding PauseCommand}"
836-
Visibility="{Binding PauseVisible, Converter={StaticResource VisibilityConverter}}">
837-
<StackPanel Orientation="Horizontal">
838-
<Image Source="/Icons/pause2.png" Height="28" />
839-
<TextBlock Margin="7,0,0,0" Text="Pause" VerticalAlignment="Center" />
840-
</StackPanel>
841-
</Button>
861+
862+
863+
864+
842865

843866
<Label Height="28" Margin="215,15,0,0" VerticalAlignment="Top" HorizontalAlignment="Left" Width="47">Preset:</Label>
844867
</Grid>

VidCoder/View/Panels/AudioPanel.xaml.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,11 @@ public AudioPanel()
4747
private void OnDataContextChanged(object sender, DependencyPropertyChangedEventArgs e)
4848
{
4949
var audioPanelVM = e.NewValue as AudioPanelViewModel;
50+
if (audioPanelVM == null)
51+
{
52+
return;
53+
}
54+
5055
this.audioEncodings = audioPanelVM.AudioEncodings;
5156

5257
foreach (AudioEncodingViewModel encodingVM in this.audioEncodings)

0 commit comments

Comments
 (0)