--- /dev/null
+// --------------------------------------------------------------------------------------------------------------------
+// <copyright file="OptionTabConverter.cs" company="HandBrake Project (http://handbrake.fr)">
+// This file is part of the HandBrake source code - It may be used under the terms of the GNU General Public License.
+// </copyright>
+// <summary>
+// Controls display of tab pages
+// </summary>
+// --------------------------------------------------------------------------------------------------------------------
+
+namespace HandBrakeWPF.Converters
+{
+ using System;
+ using System.Globalization;
+ using System.Linq;
+ using System.Windows.Data;
+
+ using HandBrakeWPF.Model;
+ using HandBrakeWPF.Utilities;
+
+ public class OptionTabConverter : IValueConverter
+ {
+ public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
+ {
+ OptionsTab[] tabs = value as OptionsTab[];
+ if (tabs != null && UwpDetect.IsUWP())
+ {
+ return tabs.Where(s => s != OptionsTab.Updates).ToArray();
+ }
+
+ return value;
+ }
+
+ public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
+ {
+ throw new NotImplementedException();
+ }
+ }
+}
<Compile Include="Converters\Filters\SharpenPresetConverter.cs" />\r
<Compile Include="Converters\Options\FileSizeConverter.cs" />\r
<Compile Include="Converters\Options\LogLevelConverter.cs" />\r
+ <Compile Include="Converters\OptionTabConverter.cs" />\r
<Compile Include="Converters\PresetsMenuConverter.cs" />\r
<Compile Include="Converters\Queue\PictureSettingsDescConveter.cs" />\r
<Compile Include="Converters\Subtitles\SubtitleBurnInBehaviourConverter.cs" />\r
<Compile Include="Utilities\Portable.cs" />\r
<Compile Include="Utilities\DirectoryUtilities.cs" />\r
<Compile Include="Utilities\SystemInfo.cs" />\r
+ <Compile Include="Utilities\UwpDetect.cs" />\r
<Compile Include="Utilities\Win32.cs" />\r
<Compile Include="Utilities\Win7.cs" />\r
<Compile Include="ViewModels\Interfaces\IManagePresetViewModel.cs" />\r
using HandBrake.ApplicationServices.Utilities;\r
using HandBrakeWPF.Model;\r
using HandBrakeWPF.Services.Interfaces;\r
+ using HandBrakeWPF.Utilities;\r
+\r
using AppcastReader = HandBrakeWPF.Utilities.AppcastReader;\r
\r
/// <summary>\r
/// </param>\r
public void PerformStartupUpdateCheck(Action<UpdateCheckInformation> callback)\r
{\r
+ if (UwpDetect.IsUWP())\r
+ {\r
+ return; // Disable Update checker if we are in a UWP container.\r
+ }\r
+\r
// Make sure it's running on the calling thread\r
if (this.userSettingService.GetUserSetting<bool>(UserSettingConstants.UpdateStatus))\r
{\r
--- /dev/null
+// --------------------------------------------------------------------------------------------------------------------
+// <copyright file="UwpDetect.cs" company="HandBrake Project (http://handbrake.fr)">
+// This file is part of the HandBrake source code - It may be used under the terms of the GNU General Public License.
+// </copyright>
+// <summary>
+// Helper class to detect if we are running in a UWP container.
+// https://msdn.microsoft.com/en-us/library/windows/desktop/hh446599(v=vs.85).aspx
+// </summary>
+// --------------------------------------------------------------------------------------------------------------------
+
+namespace HandBrakeWPF.Utilities
+{
+ using System;
+ using System.Runtime.InteropServices;
+
+ public class UwpDetect
+ {
+ [DllImport("kernel32.dll")]
+ static extern int GetCurrentPackageFullName(ref int length, IntPtr fullName);
+
+ public static bool IsUWP()
+ {
+ if (Environment.OSVersion.Version.Major == 6 && Environment.OSVersion.Version.Minor <= 1)
+ {
+ return false;
+ }
+
+ int length = 0;
+ IntPtr name = IntPtr.Zero;
+ GetCurrentPackageFullName(ref length, name); // Only available in 6.2 or later.
+
+ if (length > 0)
+ {
+ return true;
+ }
+
+ return false;
+ }
+ }
+}
/// </summary>\r
public bool IsQueueShowingInLine { get; set; } = false;\r
\r
+ public bool IsUWP { get; } = UwpDetect.IsUWP();\r
+\r
#endregion\r
\r
#region Commands \r
\r
#region Properties\r
\r
+ public bool IsUWP\r
+ {\r
+ get\r
+ {\r
+ return UwpDetect.IsUWP();\r
+ }\r
+ }\r
+\r
#region General\r
\r
/// <summary>\r
<Image Width="16" Height="16" Source="Images/information.png" />\r
</MenuItem.Icon>\r
</MenuItem>\r
- <Separator />\r
- <MenuItem Header="_Check for Updates" cal:Message.Attach="[Event Click] = [Action CheckForUpdates]" />\r
+ <Separator Visibility="{Binding IsUWP, Converter={StaticResource boolToVisConverter}, ConverterParameter=true}" />\r
+ <MenuItem Header="_Check for Updates" cal:Message.Attach="[Event Click] = [Action CheckForUpdates]" Visibility="{Binding IsUWP, Converter={StaticResource boolToVisConverter}, ConverterParameter=true}" />\r
<Separator />\r
<MenuItem Header="_About..." cal:Message.Attach="[Event Click] = [Action OpenAboutApplication]" />\r
</MenuItem>\r
<Converters:EnumComboConverter x:Key="enumComboConverter" />\r
<Options:LogLevelConverter x:Key="LogLevelConverter" />\r
<Options:FileSizeConverter x:Key="fileSizeConverter" />\r
+ <Converters:OptionTabConverter x:Key="optionTabConverter" />\r
\r
\r
<Converters:BooleanToVisibilityConverter x:Key="boolToVisConverter" />\r
<Border BorderBrush="DarkGray" Grid.Column="0" Grid.Row="1" BorderThickness="0,0,1,0">\r
<StackPanel Orientation="Vertical" Margin="11,5,-1,0">\r
\r
- <ListBox ItemsSource="{Binding Source={StaticResource OptionTabsList}}" SelectedItem="{Binding SelectedTab}"\r
+ <ListBox ItemsSource="{Binding Source={StaticResource OptionTabsList}, Converter={StaticResource optionTabConverter}}" SelectedItem="{Binding SelectedTab}"\r
BorderThickness="0" Background="Transparent">\r
<ListBox.ItemTemplate>\r
<DataTemplate>\r