mpv.conf preview feature added to config editor
This commit is contained in:
@@ -6,6 +6,7 @@
|
|||||||
screenshot-format, screenshot-tag-colorspace, screenshot-high-bit-depth,
|
screenshot-format, screenshot-tag-colorspace, screenshot-high-bit-depth,
|
||||||
screenshot-jpeg-source-chroma, screenshot-template, screenshot-jpeg-quality,
|
screenshot-jpeg-source-chroma, screenshot-template, screenshot-jpeg-quality,
|
||||||
screenshot-png-compression, screenshot-png-filter
|
screenshot-png-compression, screenshot-png-filter
|
||||||
|
- mpv.conf preview feature added to config editor, it previews the mpv.conf content
|
||||||
|
|
||||||
### 4.7.7
|
### 4.7.7
|
||||||
|
|
||||||
|
|||||||
@@ -29,7 +29,6 @@ namespace DynamicGUI
|
|||||||
baseSetting = optionSetting;
|
baseSetting = optionSetting;
|
||||||
optionSetting.Default = setting["default"];
|
optionSetting.Default = setting["default"];
|
||||||
optionSetting.Value = optionSetting.Default;
|
optionSetting.Value = optionSetting.Default;
|
||||||
optionSetting.StartValue = optionSetting.Default;
|
|
||||||
|
|
||||||
foreach (TomlTable option in setting["options"])
|
foreach (TomlTable option in setting["options"])
|
||||||
{
|
{
|
||||||
@@ -70,7 +69,6 @@ namespace DynamicGUI
|
|||||||
{
|
{
|
||||||
public string Name { get; set; }
|
public string Name { get; set; }
|
||||||
public string Value { get; set; }
|
public string Value { get; set; }
|
||||||
public string StartValue { get; set; }
|
|
||||||
public string Help { get; set; }
|
public string Help { get; set; }
|
||||||
public string Default { get; set; }
|
public string Default { get; set; }
|
||||||
public string URL { get; set; }
|
public string URL { get; set; }
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ namespace mpvnet
|
|||||||
public class App
|
public class App
|
||||||
{
|
{
|
||||||
public static string RegPath { get; } = @"HKCU\Software\" + Application.ProductName;
|
public static string RegPath { get; } = @"HKCU\Software\" + Application.ProductName;
|
||||||
public static string ConfFilePath { get; } = mp.ConfigFolder + "\\mpvnet.conf";
|
public static string ConfPath { get; } = mp.ConfigFolder + "\\mpvnet.conf";
|
||||||
public static string DarkMode { get; set; } = "always";
|
public static string DarkMode { get; set; } = "always";
|
||||||
public static string ProcessInstance { get; set; } = "single";
|
public static string ProcessInstance { get; set; } = "single";
|
||||||
public static string DarkColor { get; set; }
|
public static string DarkColor { get; set; }
|
||||||
@@ -73,8 +73,8 @@ namespace mpvnet
|
|||||||
{
|
{
|
||||||
_Conf = new Dictionary<string, string>();
|
_Conf = new Dictionary<string, string>();
|
||||||
|
|
||||||
if (File.Exists(ConfFilePath))
|
if (File.Exists(ConfPath))
|
||||||
foreach (string i in File.ReadAllLines(ConfFilePath))
|
foreach (string i in File.ReadAllLines(ConfPath))
|
||||||
if (i.Contains("=") && !i.StartsWith("#"))
|
if (i.Contains("=") && !i.StartsWith("#"))
|
||||||
_Conf[i.Substring(0, i.IndexOf("=")).Trim()] = i.Substring(i.IndexOf("=") + 1).Trim();
|
_Conf[i.Substring(0, i.IndexOf("=")).Trim()] = i.Substring(i.IndexOf("=") + 1).Trim();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -29,6 +29,7 @@
|
|||||||
</ListBox.ItemTemplate>
|
</ListBox.ItemTemplate>
|
||||||
</ListBox>
|
</ListBox>
|
||||||
<TextBlock x:Name="OpenSettingsTextBlock" Margin="0,30,0,0" Cursor="Hand" TextWrapping="WrapWithOverflow" Foreground="{x:Static WPF:WPF.ThemeBrush}" MouseUp="OpenSettingsTextBlock_MouseUp">Open config folder</TextBlock>
|
<TextBlock x:Name="OpenSettingsTextBlock" Margin="0,30,0,0" Cursor="Hand" TextWrapping="WrapWithOverflow" Foreground="{x:Static WPF:WPF.ThemeBrush}" MouseUp="OpenSettingsTextBlock_MouseUp">Open config folder</TextBlock>
|
||||||
|
<TextBlock x:Name="PreviewTextBlock" Margin="0,15,0,0" Cursor="Hand" TextWrapping="WrapWithOverflow" Foreground="{x:Static WPF:WPF.ThemeBrush}" MouseUp="PreviewTextBlock_MouseUp">Preview mpv.conf</TextBlock>
|
||||||
<TextBlock x:Name="ShowManualTextBlock" Margin="0,15,0,0" Cursor="Hand" TextWrapping="WrapWithOverflow" Foreground="{x:Static WPF:WPF.ThemeBrush}" MouseUp="ShowManualTextBlock_MouseUp">Show mpv manual</TextBlock>
|
<TextBlock x:Name="ShowManualTextBlock" Margin="0,15,0,0" Cursor="Hand" TextWrapping="WrapWithOverflow" Foreground="{x:Static WPF:WPF.ThemeBrush}" MouseUp="ShowManualTextBlock_MouseUp">Show mpv manual</TextBlock>
|
||||||
<TextBlock x:Name="SupportTextBlock" Margin="0,15,0,0" Cursor="Hand" TextWrapping="WrapWithOverflow" Foreground="{x:Static WPF:WPF.ThemeBrush}" MouseUp="SupportTextBlock_MouseUp">Show support forum</TextBlock>
|
<TextBlock x:Name="SupportTextBlock" Margin="0,15,0,0" Cursor="Hand" TextWrapping="WrapWithOverflow" Foreground="{x:Static WPF:WPF.ThemeBrush}" MouseUp="SupportTextBlock_MouseUp">Show support forum</TextBlock>
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
|
|||||||
@@ -17,10 +17,9 @@ namespace mpvnet
|
|||||||
{
|
{
|
||||||
private List<SettingBase> SettingsDefinitions = Settings.LoadSettings(Properties.Resources.mpvConfToml);
|
private List<SettingBase> SettingsDefinitions = Settings.LoadSettings(Properties.Resources.mpvConfToml);
|
||||||
private List<SettingBase> NetSettingsDefinitions = Settings.LoadSettings(Properties.Resources.mpvNetConfToml);
|
private List<SettingBase> NetSettingsDefinitions = Settings.LoadSettings(Properties.Resources.mpvNetConfToml);
|
||||||
private Dictionary<string, Dictionary<string, string>> Comments = new Dictionary<string, Dictionary<string, string>>();
|
|
||||||
|
|
||||||
public ObservableCollection<string> FilterStrings { get; } = new ObservableCollection<string>();
|
public ObservableCollection<string> FilterStrings { get; } = new ObservableCollection<string>();
|
||||||
|
string InitialContent;
|
||||||
|
|
||||||
public ConfWindow()
|
public ConfWindow()
|
||||||
{
|
{
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
@@ -28,6 +27,8 @@ namespace mpvnet
|
|||||||
SearchControl.SearchTextBox.TextChanged += SearchTextBox_TextChanged;
|
SearchControl.SearchTextBox.TextChanged += SearchTextBox_TextChanged;
|
||||||
LoadSettings(SettingsDefinitions, Conf);
|
LoadSettings(SettingsDefinitions, Conf);
|
||||||
LoadSettings(NetSettingsDefinitions, NetConf);
|
LoadSettings(NetSettingsDefinitions, NetConf);
|
||||||
|
InitialContent = GetContent(mp.ConfPath, Conf, SettingsDefinitions) +
|
||||||
|
GetContent(App.ConfPath, NetConf, NetSettingsDefinitions);
|
||||||
SearchControl.Text = RegHelp.GetString(App.RegPath, "config editor search");
|
SearchControl.Text = RegHelp.GetString(App.RegPath, "config editor search");
|
||||||
|
|
||||||
if (App.IsDarkMode)
|
if (App.IsDarkMode)
|
||||||
@@ -59,7 +60,6 @@ namespace mpvnet
|
|||||||
if (setting.Name == pair.Key)
|
if (setting.Name == pair.Key)
|
||||||
{
|
{
|
||||||
setting.Value = pair.Value.Trim('\'', '"');
|
setting.Value = pair.Value.Trim('\'', '"');
|
||||||
setting.StartValue = pair.Value.Trim('\'', '"');
|
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -93,7 +93,7 @@ namespace mpvnet
|
|||||||
|
|
||||||
public Dictionary<string, string> NetConf {
|
public Dictionary<string, string> NetConf {
|
||||||
get {
|
get {
|
||||||
if (_NetConf == null) _NetConf = LoadConf(App.ConfFilePath);
|
if (_NetConf == null) _NetConf = LoadConf(App.ConfPath);
|
||||||
return _NetConf;
|
return _NetConf;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -101,7 +101,6 @@ namespace mpvnet
|
|||||||
private Dictionary<string, string> LoadConf(string filePath)
|
private Dictionary<string, string> LoadConf(string filePath)
|
||||||
{
|
{
|
||||||
Dictionary<string, string> conf = new Dictionary<string, string>();
|
Dictionary<string, string> conf = new Dictionary<string, string>();
|
||||||
Comments[filePath] = new Dictionary<string, string>();
|
|
||||||
|
|
||||||
if (File.Exists(filePath))
|
if (File.Exists(filePath))
|
||||||
{
|
{
|
||||||
@@ -110,15 +109,9 @@ namespace mpvnet
|
|||||||
if (i.Contains("="))
|
if (i.Contains("="))
|
||||||
{
|
{
|
||||||
int pos = i.IndexOf("=");
|
int pos = i.IndexOf("=");
|
||||||
string left = i.Substring(0, pos).Replace(" ", "").ToLower();
|
string left = i.Substring(0, pos).Trim().ToLower();
|
||||||
string right = i.Substring(pos + 1).Trim();
|
string right = i.Substring(pos + 1).Trim();
|
||||||
|
if (left.StartsWith("#")) continue;
|
||||||
if (left.StartsWith("#"))
|
|
||||||
{
|
|
||||||
Comments[filePath][left.TrimStart('#')] = right;
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (left == "fs") left = "fullscreen";
|
if (left == "fs") left = "fullscreen";
|
||||||
if (left == "loop") left = "loop-file";
|
if (left == "loop") left = "loop-file";
|
||||||
conf[left] = right;
|
conf[left] = right;
|
||||||
@@ -131,40 +124,20 @@ namespace mpvnet
|
|||||||
protected override void OnClosed(EventArgs e)
|
protected override void OnClosed(EventArgs e)
|
||||||
{
|
{
|
||||||
base.OnClosed(e);
|
base.OnClosed(e);
|
||||||
WriteToDisk();
|
string content = GetContent(mp.ConfPath, Conf, SettingsDefinitions);
|
||||||
|
string netContent = GetContent(App.ConfPath, NetConf, NetSettingsDefinitions);
|
||||||
|
if (InitialContent == content + netContent) return;
|
||||||
|
string header = "\r\n# manual: https://mpv.io/manual/master/\r\n\r\n# defaults: https://github.com/stax76/mpv.net/blob/master/mpv.net/Resources/mpvConf.txt\r\n\r\n";
|
||||||
|
File.WriteAllText(mp.ConfPath, header + content);
|
||||||
|
File.WriteAllText(App.ConfPath, netContent);
|
||||||
|
Msg.Show("Changes will be available on next mpv.net startup.");
|
||||||
RegHelp.SetObject(App.RegPath, "config editor search", SearchControl.Text);
|
RegHelp.SetObject(App.RegPath, "config editor search", SearchControl.Text);
|
||||||
}
|
}
|
||||||
|
|
||||||
void WriteToDisk()
|
string GetContent(string filePath, Dictionary<string, string> confSettings, List<SettingBase> settings)
|
||||||
{
|
|
||||||
bool isDirty = false;
|
|
||||||
|
|
||||||
foreach (SettingBase i in SettingsDefinitions)
|
|
||||||
if (i.StartValue != i.Value)
|
|
||||||
isDirty = true;
|
|
||||||
|
|
||||||
foreach (SettingBase i in NetSettingsDefinitions)
|
|
||||||
if (i.StartValue != i.Value)
|
|
||||||
isDirty = true;
|
|
||||||
|
|
||||||
if (!isDirty)
|
|
||||||
return;
|
|
||||||
|
|
||||||
WriteToDisk(mp.ConfPath, Conf, SettingsDefinitions);
|
|
||||||
WriteToDisk(App.ConfFilePath, NetConf, NetSettingsDefinitions);
|
|
||||||
|
|
||||||
Msg.Show("Changes will be available on next mpv.net startup.");
|
|
||||||
}
|
|
||||||
|
|
||||||
void WriteToDisk(string filePath,
|
|
||||||
Dictionary<string, string> confSettings,
|
|
||||||
List<SettingBase> settings)
|
|
||||||
{
|
{
|
||||||
string content = "";
|
string content = "";
|
||||||
|
|
||||||
foreach (var i in Comments[filePath])
|
|
||||||
content += $"#{i.Key} = {i.Value}\r\n";
|
|
||||||
|
|
||||||
foreach (SettingBase setting in settings)
|
foreach (SettingBase setting in settings)
|
||||||
{
|
{
|
||||||
if ((setting.Value ?? "") != setting.Default)
|
if ((setting.Value ?? "") != setting.Default)
|
||||||
@@ -186,7 +159,7 @@ namespace mpvnet
|
|||||||
foreach (var i in confSettings)
|
foreach (var i in confSettings)
|
||||||
content = content + $"{i.Key} = {i.Value}\r\n";
|
content = content + $"{i.Key} = {i.Value}\r\n";
|
||||||
|
|
||||||
File.WriteAllText(filePath, content);
|
return content;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void SearchTextBox_TextChanged(object sender, TextChangedEventArgs e)
|
private void SearchTextBox_TextChanged(object sender, TextChangedEventArgs e)
|
||||||
@@ -236,6 +209,11 @@ namespace mpvnet
|
|||||||
Process.Start(Path.GetDirectoryName(mp.ConfPath));
|
Process.Start(Path.GetDirectoryName(mp.ConfPath));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void PreviewTextBlock_MouseUp(object sender, MouseButtonEventArgs e)
|
||||||
|
{
|
||||||
|
Msg.Show("mpv.conf Preview", GetContent(mp.ConfPath, Conf, SettingsDefinitions));
|
||||||
|
}
|
||||||
|
|
||||||
private void ShowManualTextBlock_MouseUp(object sender, MouseButtonEventArgs e)
|
private void ShowManualTextBlock_MouseUp(object sender, MouseButtonEventArgs e)
|
||||||
{
|
{
|
||||||
Process.Start("https://mpv.io/manual/master/");
|
Process.Start("https://mpv.io/manual/master/");
|
||||||
|
|||||||
Reference in New Issue
Block a user