diff --git a/Deploy/local_build.ps1 b/Deploy/local_build.ps1
deleted file mode 100644
index 9dd7582b191..00000000000
--- a/Deploy/local_build.ps1
+++ /dev/null
@@ -1,4 +0,0 @@
-New-Alias nuget.exe ".\packages\NuGet.CommandLine.*\tools\NuGet.exe"
-$env:APPVEYOR_BUILD_FOLDER = Convert-Path .
-$env:APPVEYOR_BUILD_VERSION = "1.2.0"
-& .\Deploy\squirrel_installer.ps1
\ No newline at end of file
diff --git a/Directory.Build.props b/Directory.Build.props
new file mode 100644
index 00000000000..fa499273c56
--- /dev/null
+++ b/Directory.Build.props
@@ -0,0 +1,5 @@
+
+
+ true
+
+
\ No newline at end of file
diff --git a/Flow.Launcher.Core/ExternalPlugins/Environments/AbstractPluginEnvironment.cs b/Flow.Launcher.Core/ExternalPlugins/Environments/AbstractPluginEnvironment.cs
index 9ebacc9422b..0c139f521b0 100644
--- a/Flow.Launcher.Core/ExternalPlugins/Environments/AbstractPluginEnvironment.cs
+++ b/Flow.Launcher.Core/ExternalPlugins/Environments/AbstractPluginEnvironment.cs
@@ -41,18 +41,6 @@ internal IEnumerable Setup()
if (!PluginMetadataList.Any(o => o.Language.Equals(Language, StringComparison.OrdinalIgnoreCase)))
return new List();
- // TODO: Remove. This is backwards compatibility for 1.10.0 release- changed PythonEmbeded to Environments/Python
- if (Language.Equals(AllowedLanguage.Python, StringComparison.OrdinalIgnoreCase))
- {
- FilesFolders.RemoveFolderIfExists(Path.Combine(DataLocation.DataDirectory(), "PythonEmbeddable"));
-
- if (!string.IsNullOrEmpty(PluginSettings.PythonDirectory) && PluginSettings.PythonDirectory.StartsWith(Path.Combine(DataLocation.DataDirectory(), "PythonEmbeddable")))
- {
- InstallEnvironment();
- PluginSettings.PythonDirectory = string.Empty;
- }
- }
-
if (!string.IsNullOrEmpty(PluginsSettingsFilePath) && FilesFolders.FileExists(PluginsSettingsFilePath))
{
// Ensure latest only if user is using Flow's environment setup.
diff --git a/Flow.Launcher.Core/Plugin/QueryBuilder.cs b/Flow.Launcher.Core/Plugin/QueryBuilder.cs
index 84f36e91aef..3dc7877acc2 100644
--- a/Flow.Launcher.Core/Plugin/QueryBuilder.cs
+++ b/Flow.Launcher.Core/Plugin/QueryBuilder.cs
@@ -1,4 +1,4 @@
-using System;
+using System;
using System.Collections.Generic;
using Flow.Launcher.Plugin;
@@ -33,9 +33,13 @@ public static Query Build(string text, Dictionary nonGlobalP
searchTerms = terms;
}
- var query = new Query(rawQuery, search,terms, searchTerms, actionKeyword);
-
- return query;
+ return new Query ()
+ {
+ Search = search,
+ RawQuery = rawQuery,
+ SearchTerms = searchTerms,
+ ActionKeyword = actionKeyword
+ };
}
}
}
\ No newline at end of file
diff --git a/Flow.Launcher.CrashReporter/Flow.Launcher.CrashReporter.csproj b/Flow.Launcher.CrashReporter/Flow.Launcher.CrashReporter.csproj
deleted file mode 100644
index 1e0a3fe5252..00000000000
--- a/Flow.Launcher.CrashReporter/Flow.Launcher.CrashReporter.csproj
+++ /dev/null
@@ -1,115 +0,0 @@
-
-
-
-
- Debug
- AnyCPU
- {2FEB2298-7653-4009-B1EA-FFFB1A768BCC}
- Library
- Properties
- Flow.Launcher.CrashReporter
- Flow.Launcher.CrashReporter
- v4.5.2
- 512
- ..\
-
-
-
- true
- full
- false
- ..\Output\Debug\
- DEBUG;TRACE
- prompt
- 4
- false
-
-
- pdbonly
- true
- ..\Output\Release\
- TRACE
- prompt
- 4
- false
-
-
-
- ..\packages\Exceptionless.1.5.2121\lib\net45\Exceptionless.dll
- True
-
-
- ..\packages\Exceptionless.1.5.2121\lib\net45\Exceptionless.Models.dll
- True
-
-
- ..\packages\JetBrains.Annotations.10.1.4\lib\net20\JetBrains.Annotations.dll
- True
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Properties\SolutionAssemblyInfo.cs
-
-
-
-
- ReportWindow.xaml
-
-
-
-
- Designer
- MSBuild:Compile
-
-
-
-
- {B749F0DB-8E75-47DB-9E5E-265D16D0C0D2}
- Flow.Launcher.Core
-
-
- {4fd29318-a8ab-4d8f-aa47-60bc241b8da3}
- Flow.Launcher.Infrastructure
-
-
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
-
-
- PreserveNewest
-
-
-
-
- PreserveNewest
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/Flow.Launcher.CrashReporter/Images/app_error.png b/Flow.Launcher.CrashReporter/Images/app_error.png
deleted file mode 100644
index 70599f5042b..00000000000
Binary files a/Flow.Launcher.CrashReporter/Images/app_error.png and /dev/null differ
diff --git a/Flow.Launcher.CrashReporter/Images/crash_go.png b/Flow.Launcher.CrashReporter/Images/crash_go.png
deleted file mode 100644
index 2dd2c45f2ef..00000000000
Binary files a/Flow.Launcher.CrashReporter/Images/crash_go.png and /dev/null differ
diff --git a/Flow.Launcher.CrashReporter/Images/crash_stop.png b/Flow.Launcher.CrashReporter/Images/crash_stop.png
deleted file mode 100644
index 022fbc197ae..00000000000
Binary files a/Flow.Launcher.CrashReporter/Images/crash_stop.png and /dev/null differ
diff --git a/Flow.Launcher.CrashReporter/Images/crash_warning.png b/Flow.Launcher.CrashReporter/Images/crash_warning.png
deleted file mode 100644
index 8d29625ee73..00000000000
Binary files a/Flow.Launcher.CrashReporter/Images/crash_warning.png and /dev/null differ
diff --git a/Flow.Launcher.CrashReporter/Properties/AssemblyInfo.cs b/Flow.Launcher.CrashReporter/Properties/AssemblyInfo.cs
deleted file mode 100644
index acf2adca1b8..00000000000
--- a/Flow.Launcher.CrashReporter/Properties/AssemblyInfo.cs
+++ /dev/null
@@ -1,5 +0,0 @@
-using System.Reflection;
-using System.Runtime.InteropServices;
-
-[assembly: AssemblyTitle("Flow.Launcher.CrashReporter")]
-[assembly: Guid("0ea3743c-2c0d-4b13-b9ce-e5e1f85aea23")]
\ No newline at end of file
diff --git a/Flow.Launcher.CrashReporter/packages.config b/Flow.Launcher.CrashReporter/packages.config
deleted file mode 100644
index ddad0d3b3ed..00000000000
--- a/Flow.Launcher.CrashReporter/packages.config
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/Flow.Launcher.Infrastructure/Storage/ISavable.cs b/Flow.Launcher.Infrastructure/Storage/ISavable.cs
deleted file mode 100644
index ba2b58c6a18..00000000000
--- a/Flow.Launcher.Infrastructure/Storage/ISavable.cs
+++ /dev/null
@@ -1,8 +0,0 @@
-using System;
-
-namespace Flow.Launcher.Infrastructure.Storage
-{
- [Obsolete("Deprecated as of Flow Launcher v1.8.0, on 2021.06.21. " +
- "This is used only for Everything plugin v1.4.9 or below backwards compatibility")]
- public interface ISavable : Plugin.ISavable { }
-}
\ No newline at end of file
diff --git a/Flow.Launcher.Infrastructure/UserSettings/PluginSettings.cs b/Flow.Launcher.Infrastructure/UserSettings/PluginSettings.cs
index 130e25d7bf1..98f4dccda18 100644
--- a/Flow.Launcher.Infrastructure/UserSettings/PluginSettings.cs
+++ b/Flow.Launcher.Infrastructure/UserSettings/PluginSettings.cs
@@ -26,9 +26,6 @@ public string NodeExecutablePath
}
}
- // TODO: Remove. This is backwards compatibility for 1.10.0 release.
- public string PythonDirectory { get; set; }
-
public Dictionary Plugins { get; set; } = new Dictionary();
public void UpdatePluginSettings(List metadatas)
@@ -38,25 +35,6 @@ public void UpdatePluginSettings(List metadatas)
if (Plugins.ContainsKey(metadata.ID))
{
var settings = Plugins[metadata.ID];
-
- if (metadata.ID == "572be03c74c642baae319fc283e561a8" && metadata.ActionKeywords.Count > settings.ActionKeywords.Count)
- {
- // TODO: Remove. This is backwards compatibility for Explorer 1.8.0 release.
- // Introduced two new action keywords in Explorer, so need to update plugin setting in the UserData folder.
- if (settings.Version.CompareTo("1.8.0") < 0)
- {
- settings.ActionKeywords.Add(Query.GlobalPluginWildcardSign); // for index search
- settings.ActionKeywords.Add(Query.GlobalPluginWildcardSign); // for path search
- settings.ActionKeywords.Add(Query.GlobalPluginWildcardSign); // for quick access action keyword
- }
-
- // TODO: Remove. This is backwards compatibility for Explorer 1.9.0 release.
- // Introduced a new action keywords in Explorer since 1.8.0, so need to update plugin setting in the UserData folder.
- if (settings.Version.CompareTo("1.8.0") > 0)
- {
- settings.ActionKeywords.Add(Query.GlobalPluginWildcardSign); // for quick access action keyword
- }
- }
if (string.IsNullOrEmpty(settings.Version))
settings.Version = metadata.Version;
diff --git a/Flow.Launcher.Plugin/Interfaces/IPublicAPI.cs b/Flow.Launcher.Plugin/Interfaces/IPublicAPI.cs
index a07975f3c76..9b9a9525d5c 100644
--- a/Flow.Launcher.Plugin/Interfaces/IPublicAPI.cs
+++ b/Flow.Launcher.Plugin/Interfaces/IPublicAPI.cs
@@ -133,13 +133,6 @@ public interface IPublicAPI
///
List GetAllPlugins();
- ///
- /// Fired after global keyboard events
- /// if you want to hook something like Ctrl+R, you should use this event
- ///
- [Obsolete("Unable to Retrieve correct return value")]
- event FlowLauncherGlobalKeyboardEventHandler GlobalKeyboardEvent;
-
///
/// Register a callback for Global Keyboard Event
///
diff --git a/Flow.Launcher.Plugin/Query.cs b/Flow.Launcher.Plugin/Query.cs
index edc5b1277bf..67228584008 100644
--- a/Flow.Launcher.Plugin/Query.cs
+++ b/Flow.Launcher.Plugin/Query.cs
@@ -6,16 +6,11 @@ public class Query
{
public Query() { }
- ///
- /// to allow unit tests for plug ins
- ///
+ [Obsolete("Use the default Query constructor.")]
public Query(string rawQuery, string search, string[] terms, string[] searchTerms, string actionKeyword = "")
{
Search = search;
RawQuery = rawQuery;
-#pragma warning disable CS0618
- Terms = terms;
-#pragma warning restore CS0618
SearchTerms = searchTerms;
ActionKeyword = actionKeyword;
}
@@ -47,28 +42,16 @@ public Query(string rawQuery, string search, string[] terms, string[] searchTerm
///
public string[] SearchTerms { get; init; }
- ///
- /// The raw query split into a string array
- ///
- [Obsolete("It may or may not include action keyword, which can be confusing. Use SearchTerms instead")]
- public string[] Terms { get; init; }
-
///
/// Query can be splited into multiple terms by whitespace
///
public const string TermSeparator = " ";
- [Obsolete("Typo")]
- public const string TermSeperater = TermSeparator;
-
///
/// User can set multiple action keywords seperated by ';'
///
public const string ActionKeywordSeparator = ";";
- [Obsolete("Typo")]
- public const string ActionKeywordSeperater = ActionKeywordSeparator;
-
///
/// Wildcard action keyword. Plugins using this value will be queried on every search.
diff --git a/Flow.Launcher.Plugin/Result.cs b/Flow.Launcher.Plugin/Result.cs
index 6810a6d471a..dd4497a3cde 100644
--- a/Flow.Launcher.Plugin/Result.cs
+++ b/Flow.Launcher.Plugin/Result.cs
@@ -133,12 +133,6 @@ public string IcoPath
///
public IList TitleHighlightData { get; set; }
- ///
- /// Deprecated as of Flow Launcher v1.9.1. Subtitle highlighting is no longer offered
- ///
- [Obsolete("Deprecated as of Flow Launcher v1.9.1. Subtitle highlighting is no longer offered")]
- public IList SubTitleHighlightData { get; set; }
-
///
/// Query information associated with the result
///
diff --git a/Flow.Launcher.Plugin/SharedCommands/SearchWeb.cs b/Flow.Launcher.Plugin/SharedCommands/SearchWeb.cs
index 6588132b940..a7744ffaca6 100644
--- a/Flow.Launcher.Plugin/SharedCommands/SearchWeb.cs
+++ b/Flow.Launcher.Plugin/SharedCommands/SearchWeb.cs
@@ -1,4 +1,4 @@
-using Microsoft.Win32;
+using Microsoft.Win32;
using System;
using System.Diagnostics;
using System.IO;
@@ -71,12 +71,6 @@ public static void OpenInBrowserWindow(this string url, string browserPath = "",
}
}
- [Obsolete("This is provided for backwards compatibility after 1.9.0 release, e.g. GitHub plugin. Use the new method instead")]
- public static void NewBrowserWindow(this string url, string browserPath = "")
- {
- OpenInBrowserWindow(url, browserPath);
- }
-
///
/// Opens search as a tab in the default browser chosen in Windows settings.
///
@@ -111,11 +105,5 @@ public static void OpenInBrowserTab(this string url, string browserPath = "", bo
});
}
}
-
- [Obsolete("This is provided for backwards compatibility after 1.9.0 release, e.g. GitHub plugin. Use the new method instead")]
- public static void NewTabInBrowser(this string url, string browserPath = "")
- {
- OpenInBrowserTab(url, browserPath);
- }
}
}
\ No newline at end of file
diff --git a/Flow.Launcher.Test/QueryBuilderTest.cs b/Flow.Launcher.Test/QueryBuilderTest.cs
index 45ff8fc9ef3..aa0c8da12b9 100644
--- a/Flow.Launcher.Test/QueryBuilderTest.cs
+++ b/Flow.Launcher.Test/QueryBuilderTest.cs
@@ -15,10 +15,19 @@ public void ExclusivePluginQueryTest()
{">", new PluginPair {Metadata = new PluginMetadata {ActionKeywords = new List {">"}}}}
};
- Query q = QueryBuilder.Build("> file.txt file2 file3", nonGlobalPlugins);
+ Query q = QueryBuilder.Build("> ping google.com -n 20 -6", nonGlobalPlugins);
- Assert.AreEqual("file.txt file2 file3", q.Search);
+ Assert.AreEqual("> ping google.com -n 20 -6", q.RawQuery);
+ Assert.AreEqual("ping google.com -n 20 -6", q.Search, "Search should not start with the ActionKeyword.");
Assert.AreEqual(">", q.ActionKeyword);
+
+ Assert.AreEqual(5, q.SearchTerms.Length, "The length of SearchTerms should match.");
+
+ Assert.AreEqual("ping", q.FirstSearch);
+ Assert.AreEqual("google.com", q.SecondSearch);
+ Assert.AreEqual("-n", q.ThirdSearch);
+
+ Assert.AreEqual("google.com -n 20 -6", q.SecondToEndSearch, "SecondToEndSearch should be trimmed of multiple whitespace characters");
}
[Test]
@@ -29,9 +38,13 @@ public void ExclusivePluginQueryIgnoreDisabledTest()
{">", new PluginPair {Metadata = new PluginMetadata {ActionKeywords = new List {">"}, Disabled = true}}}
};
- Query q = QueryBuilder.Build("> file.txt file2 file3", nonGlobalPlugins);
+ Query q = QueryBuilder.Build("> ping google.com -n 20 -6", nonGlobalPlugins);
- Assert.AreEqual("> file.txt file2 file3", q.Search);
+ Assert.AreEqual("> ping google.com -n 20 -6", q.Search);
+ Assert.AreEqual(q.Search, q.RawQuery, "RawQuery should be equal to Search.");
+ Assert.AreEqual(6, q.SearchTerms.Length, "The length of SearchTerms should match.");
+ Assert.AreNotEqual(">", q.ActionKeyword, "ActionKeyword should not match that of a disabled plugin.");
+ Assert.AreEqual("ping google.com -n 20 -6", q.SecondToEndSearch, "SecondToEndSearch should be trimmed of multiple whitespace characters");
}
[Test]
diff --git a/Flow.Launcher.sln b/Flow.Launcher.sln
index 1d403c5a1f7..df1daf1dd2a 100644
--- a/Flow.Launcher.sln
+++ b/Flow.Launcher.sln
@@ -47,6 +47,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution
.gitattributes = .gitattributes
.gitignore = .gitignore
appveyor.yml = appveyor.yml
+ Directory.Build.props = Directory.Build.props
Directory.Build.targets = Directory.Build.targets
Scripts\flowlauncher.nuspec = Scripts\flowlauncher.nuspec
LICENSE = LICENSE
diff --git a/Flow.Launcher/PublicAPIInstance.cs b/Flow.Launcher/PublicAPIInstance.cs
index c1a9d8cd20b..4312df3c386 100644
--- a/Flow.Launcher/PublicAPIInstance.cs
+++ b/Flow.Launcher/PublicAPIInstance.cs
@@ -69,9 +69,6 @@ public void RestartApp()
UpdateManager.RestartApp(Constant.ApplicationFileName);
}
- [Obsolete("Typo")]
- public void RestarApp() => RestartApp();
-
public void ShowMainWindow() => _mainVM.Show();
public void HideMainWindow() => _mainVM.Hide();
@@ -295,8 +292,6 @@ public void OpenAppUri(Uri appUri)
OpenUri(appUri);
}
- public event FlowLauncherGlobalKeyboardEventHandler GlobalKeyboardEvent;
-
private readonly List> _globalKeyboardHandlers = new();
public void RegisterGlobalKeyboardCallback(Func callback) => _globalKeyboardHandlers.Add(callback);
@@ -309,10 +304,6 @@ public void OpenAppUri(Uri appUri)
private bool KListener_hookedKeyboardCallback(KeyEvent keyevent, int vkcode, SpecialKeyState state)
{
var continueHook = true;
- if (GlobalKeyboardEvent != null)
- {
- continueHook = GlobalKeyboardEvent((int)keyevent, vkcode, state);
- }
foreach (var x in _globalKeyboardHandlers)
{
continueHook &= x((int)keyevent, vkcode, state);