From 636d28ac545f3b33258eafb34e3e50a9a2f03527 Mon Sep 17 00:00:00 2001 From: Frank Skare Date: Mon, 28 Dec 2020 02:30:45 +0100 Subject: [PATCH] history feature can be configured --- Changelog.md | 4 +++ Manual.md | 8 ++++- img/Avatar.png | Bin 10861 -> 0 bytes mpv.net/Misc/App.cs | 8 ++--- mpv.net/Misc/PowerShell.cs | 10 +++--- mpv.net/WPF/EverythingWindow.xaml.cs | 2 +- mpv.net/WPF/InputWindow.xaml.cs | 3 +- mpv.net/mpv/Core.cs | 49 +++++++++++++-------------- 8 files changed, 45 insertions(+), 39 deletions(-) delete mode 100644 img/Avatar.png diff --git a/Changelog.md b/Changelog.md index f9a3cc9..a2ec649 100644 --- a/Changelog.md +++ b/Changelog.md @@ -2,6 +2,10 @@ 5.4.8.7 Beta (202?-??-??) ========================= +- history feature can be configured to ingore defined paths/keywords: + script-opt = history-discard=path1;path2 + + 5.4.8.6 Beta (2020-12-24) ========================= diff --git a/Manual.md b/Manual.md index 3bb528a..9709b8f 100644 --- a/Manual.md +++ b/Manual.md @@ -1090,8 +1090,14 @@ Shows the command palette window which allows to quickly find and execute comman ### Tools > Show History -Shows a text file that contains the file history. If the file don't exist it asks if the file should be created in the settings folder. Once the file exist then the history is logged. It logges the playback history containing the time and filename. +Shows a text file that contains the file history. If the file don't exist +it asks if the file should be created in the settings folder. Once the file +exist then the history is logged. It logges the playback history containing +the time and filename. +To ignore certain paths: + +script-opt = history-discard=path1;path2 ### Tools > Set/clear A-B loop points diff --git a/img/Avatar.png b/img/Avatar.png deleted file mode 100644 index 98ad90ceea69cc84b3804551f23ad64e72d99217..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10861 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 ROt5YlTr{~*sD1t6{{ag&Mj!wH diff --git a/mpv.net/Misc/App.cs b/mpv.net/Misc/App.cs index cf19162..2448c90 100644 --- a/mpv.net/Misc/App.cs +++ b/mpv.net/Misc/App.cs @@ -91,13 +91,9 @@ namespace mpvnet public static void RunAction(Action action) { Task.Run(() => { - try - { + try { action.Invoke(); - Debug.WriteLine(Environment.TickCount); - } - catch (Exception e) - { + } catch (Exception e) { ShowException(e); } }); diff --git a/mpv.net/Misc/PowerShell.cs b/mpv.net/Misc/PowerShell.cs index b693a68..d88124d 100644 --- a/mpv.net/Misc/PowerShell.cs +++ b/mpv.net/Misc/PowerShell.cs @@ -138,19 +138,19 @@ namespace mpvnet switch (type) { case "bool": case "boolean": - core.observe_property_bool(name, (value) => Task.Run(() => PropertyChanged.Invoke(name, value))); + core.observe_property_bool(name, (value) => App.RunAction(() => PropertyChanged.Invoke(name, value))); break; case "string": - core.observe_property_string(name, (value) => Task.Run(() => PropertyChanged.Invoke(name, value))); + core.observe_property_string(name, (value) => App.RunAction(() => PropertyChanged.Invoke(name, value))); break; case "int": case "integer": - core.observe_property_int(name, (value) => Task.Run(() => PropertyChanged.Invoke(name, value))); + core.observe_property_int(name, (value) => App.RunAction(() => PropertyChanged.Invoke(name, value))); break; case "float": case "double": - core.observe_property_double(name, (value) => Task.Run(() => PropertyChanged.Invoke(name, value))); + core.observe_property_double(name, (value) => App.RunAction(() => PropertyChanged.Invoke(name, value))); break; case "nil": case "none": case "native": - core.observe_property(name, () => Task.Run(() => PropertyChanged.Invoke(name, null))); + core.observe_property(name, () => App.RunAction(() => PropertyChanged.Invoke(name, null))); break; default: App.ShowError("Invalid Type", "Valid types are: bool or boolean, string, int or integer, float or double, nil or none or native"); diff --git a/mpv.net/WPF/EverythingWindow.xaml.cs b/mpv.net/WPF/EverythingWindow.xaml.cs index 20b2761..20dc175 100644 --- a/mpv.net/WPF/EverythingWindow.xaml.cs +++ b/mpv.net/WPF/EverythingWindow.xaml.cs @@ -119,7 +119,7 @@ namespace mpvnet void FilterTextBox_TextChanged(object sender, TextChangedEventArgs e) { string searchtext = FilterTextBox.Text; - Task.Run(() => Search(searchtext)); + App.RunAction(() => Search(searchtext)); } object LockObject = new object(); diff --git a/mpv.net/WPF/InputWindow.xaml.cs b/mpv.net/WPF/InputWindow.xaml.cs index 2406459..c1ecf8d 100644 --- a/mpv.net/WPF/InputWindow.xaml.cs +++ b/mpv.net/WPF/InputWindow.xaml.cs @@ -141,8 +141,9 @@ namespace mpvnet protected override void OnKeyDown(KeyEventArgs e) { base.OnKeyDown(e); + if (e.Key == Key.Escape) Close(); } } -} \ No newline at end of file +} diff --git a/mpv.net/mpv/Core.cs b/mpv.net/mpv/Core.cs index e526e7e..eed6747 100644 --- a/mpv.net/mpv/Core.cs +++ b/mpv.net/mpv/Core.cs @@ -123,7 +123,7 @@ namespace mpvnet mpv_request_log_messages(Handle, "terminal-default"); - Task.Run(() => EventLoop()); + App.RunAction(() => EventLoop()); if (App.IsStartedFromTerminal) { @@ -472,9 +472,9 @@ namespace mpvnet VideoSizeAutoResetEvent.Set(); - Task.Run(new Action(() => ReadMetaData())); + App.RunAction(new Action(() => ReadMetaData())); - Task.Run(new Action(() => { + App.RunAction(new Action(() => { string path = core.get_property_string("path"); if (path.Contains("://")) @@ -652,16 +652,7 @@ namespace mpvnet foreach (Action a in action.GetInvocationList()) { var a2 = a; - Task.Run(() => { - try - { - a2.Invoke(t); - } - catch (Exception e) - { - App.ShowException(e); - } - }); + App.RunAction(() => a2.Invoke(t)); } } } @@ -673,16 +664,7 @@ namespace mpvnet foreach (Action a in action.GetInvocationList()) { var a2 = a; - Task.Run(() => { - try - { - a2.Invoke(t1, t2); - } - catch (Exception e) - { - App.ShowException(e); - } - }); + App.RunAction(() => a2.Invoke(t1, t2)); } } } @@ -1112,7 +1094,7 @@ namespace mpvnet set_property_int("playlist-pos", 0); if (loadFolder && !append) - Task.Run(() => LoadFolder()); + App.RunAction(() => LoadFolder()); } public void LoadISO(string path) @@ -1214,7 +1196,7 @@ namespace mpvnet int totalMinutes = Convert.ToInt32((DateTime.Now - LastHistoryStartDateTime).TotalMinutes); - if (LastHistoryPath != null && totalMinutes > 1) + if (LastHistoryPath != null && totalMinutes > 1 && !HistoryDiscard()) File.AppendAllText(ConfigFolder + "history.txt", DateTime.Now.ToString().Substring(0, 16) + " " + totalMinutes.ToString().PadLeft(3) + " " + LastHistoryPath + "\r\n"); @@ -1222,6 +1204,23 @@ namespace mpvnet LastHistoryStartDateTime = DateTime.Now; } + string HistoryDiscardOption; + + bool HistoryDiscard() + { + if (HistoryDiscardOption == null) + HistoryDiscardOption = core.get_opt("history-discard"); + + if (string.IsNullOrEmpty(HistoryDiscardOption)) + return false; + + foreach (string i in HistoryDiscardOption.Split(';')) + if (LastHistoryPath.Contains(i)) + return true; + + return false; + } + public void ShowLogo() { if (MainForm.Instance is null)