mirror of
https://github.com/Flow-Launcher/Flow.Launcher.git
synced 2026-03-11 08:54:32 +00:00
Merge branch 'dev' into folder-editor
This commit is contained in:
commit
d2970a1f35
25 changed files with 302 additions and 165 deletions
|
|
@ -4,7 +4,7 @@ using System.Globalization;
|
|||
using System.Reflection;
|
||||
using System.Windows.Data;
|
||||
|
||||
namespace Flow.Launcher.Core
|
||||
namespace Flow.Launcher.Core.Resource
|
||||
{
|
||||
public class LocalizationConverter : IValueConverter
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1,7 +1,6 @@
|
|||
using System.ComponentModel;
|
||||
using Flow.Launcher.Core.Resource;
|
||||
|
||||
namespace Flow.Launcher.Core
|
||||
namespace Flow.Launcher.Core.Resource
|
||||
{
|
||||
public class LocalizedDescriptionAttribute : DescriptionAttribute
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1,11 +1,10 @@
|
|||
using System;
|
||||
using System.Globalization;
|
||||
using System.Windows.Data;
|
||||
using Flow.Launcher.Core.Resource;
|
||||
|
||||
namespace Flow.Launcher.Converters
|
||||
namespace Flow.Launcher.Core.Resource
|
||||
{
|
||||
public class TranlationConverter : IValueConverter
|
||||
public class TranslationConverter : IValueConverter
|
||||
{
|
||||
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
|
||||
{
|
||||
|
|
@ -147,6 +147,7 @@ namespace Flow.Launcher.Infrastructure.UserSettings
|
|||
/// </summary>
|
||||
public bool ShouldUsePinyin { get; set; } = false;
|
||||
public bool AlwaysPreview { get; set; } = false;
|
||||
public bool AlwaysStartEn { get; set; } = false;
|
||||
|
||||
[JsonInclude, JsonConverter(typeof(JsonStringEnumConverter))]
|
||||
public SearchPrecisionScore QuerySearchPrecision { get; private set; } = SearchPrecisionScore.Regular;
|
||||
|
|
|
|||
|
|
@ -49,7 +49,7 @@
|
|||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Moq" Version="4.16.1" />
|
||||
<PackageReference Include="nunit" Version="3.13.2" />
|
||||
<PackageReference Include="nunit" Version="3.13.3" />
|
||||
<PackageReference Include="NUnit3TestAdapter" Version="4.2.1">
|
||||
<PrivateAssets>all</PrivateAssets>
|
||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
||||
|
|
|
|||
55
Flow.Launcher/Converters/BoolToIMEConversionModeConverter.cs
Normal file
55
Flow.Launcher/Converters/BoolToIMEConversionModeConverter.cs
Normal file
|
|
@ -0,0 +1,55 @@
|
|||
using System;
|
||||
using System.Globalization;
|
||||
using System.Windows.Data;
|
||||
using System.Windows.Input;
|
||||
|
||||
namespace Flow.Launcher.Converters
|
||||
{
|
||||
internal class BoolToIMEConversionModeConverter : IValueConverter
|
||||
{
|
||||
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
|
||||
{
|
||||
if (value is bool v)
|
||||
{
|
||||
if (v)
|
||||
{
|
||||
return ImeConversionModeValues.Alphanumeric;
|
||||
}
|
||||
else
|
||||
{
|
||||
return ImeConversionModeValues.DoNotCare;
|
||||
}
|
||||
}
|
||||
return ImeConversionModeValues.DoNotCare;
|
||||
}
|
||||
|
||||
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
}
|
||||
|
||||
internal class BoolToIMEStateConverter : IValueConverter
|
||||
{
|
||||
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
|
||||
{
|
||||
if (value is bool v)
|
||||
{
|
||||
if (v)
|
||||
{
|
||||
return InputMethodState.Off;
|
||||
}
|
||||
else
|
||||
{
|
||||
return InputMethodState.DoNotCare;
|
||||
}
|
||||
}
|
||||
return InputMethodState.DoNotCare;
|
||||
}
|
||||
|
||||
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -18,6 +18,8 @@
|
|||
<system:String x:Key="copy">Copy</system:String>
|
||||
<system:String x:Key="cut">Cut</system:String>
|
||||
<system:String x:Key="paste">Paste</system:String>
|
||||
<system:String x:Key="undo">Undo</system:String>
|
||||
<system:String x:Key="selectAll">Select All</system:String>
|
||||
<system:String x:Key="fileTitle">File</system:String>
|
||||
<system:String x:Key="folderTitle">Folder</system:String>
|
||||
<system:String x:Key="textTitle">Text</system:String>
|
||||
|
|
@ -55,6 +57,8 @@
|
|||
<system:String x:Key="defaultFileManagerToolTip">Select the file manager to use when opening the folder.</system:String>
|
||||
<system:String x:Key="defaultBrowser">Default Web Browser</system:String>
|
||||
<system:String x:Key="defaultBrowserToolTip">Setting for New Tab, New Window, Private Mode.</system:String>
|
||||
<system:String x:Key="typingStartEn">Always Start Typing in English Mode</system:String>
|
||||
<system:String x:Key="typingStartEnTooltip">Temporarily change your input method to English mode when activating Flow.</system:String>
|
||||
<system:String x:Key="pythonDirectory">Python Directory</system:String>
|
||||
<system:String x:Key="autoUpdates">Auto Update</system:String>
|
||||
<system:String x:Key="selectPythonDirectory">Select</system:String>
|
||||
|
|
@ -66,7 +70,7 @@
|
|||
<system:String x:Key="ShouldUsePinyin">Search with Pinyin</system:String>
|
||||
<system:String x:Key="ShouldUsePinyinToolTip">Allows using Pinyin to search. Pinyin is the standard system of romanized spelling for translating Chinese.</system:String>
|
||||
<system:String x:Key="AlwaysPreview">Always Preview</system:String>
|
||||
<system:String x:Key="AlwaysPreviewToolTip">Always open preview panel when Flow starts. Press F1 to toggle preview. </system:String>
|
||||
<system:String x:Key="AlwaysPreviewToolTip">Always open preview panel when Flow starts. Press F1 to toggle preview.</system:String>
|
||||
<system:String x:Key="shadowEffectNotAllowed">Shadow effect is not allowed while current theme has blur effect enabled</system:String>
|
||||
|
||||
<!-- Setting Plugin -->
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@
|
|||
xmlns:svgc="http://sharpvectors.codeplex.com/svgc/"
|
||||
xmlns:ui="http://schemas.modernwpf.com/2019"
|
||||
xmlns:vm="clr-namespace:Flow.Launcher.ViewModel"
|
||||
d:DataContext="{d:DesignInstance Type=vm:MainViewModel}"
|
||||
Name="FlowMainWindow"
|
||||
Title="Flow Launcher"
|
||||
MinWidth="{Binding MainWindowWidth, Mode=OneWay}"
|
||||
|
|
@ -37,6 +38,8 @@
|
|||
<converters:QuerySuggestionBoxConverter x:Key="QuerySuggestionBoxConverter" />
|
||||
<converters:BorderClipConverter x:Key="BorderClipConverter" />
|
||||
<converters:BoolToVisibilityConverter x:Key="BoolToVisibilityConverter" />
|
||||
<converters:BoolToIMEConversionModeConverter x:Key="BoolToIMEConversionModeConverter"/>
|
||||
<converters:BoolToIMEStateConverter x:Key="BoolToIMEStateConverter"/>
|
||||
</Window.Resources>
|
||||
<Window.InputBindings>
|
||||
<KeyBinding Key="Escape" Command="{Binding EscCommand}" />
|
||||
|
|
@ -204,6 +207,8 @@
|
|||
PreviewKeyUp="QueryTextBox_KeyUp"
|
||||
Style="{DynamicResource QueryBoxStyle}"
|
||||
Text="{Binding QueryText, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
|
||||
InputMethod.PreferredImeConversionMode="{Binding StartWithEnglishMode, Converter={StaticResource BoolToIMEConversionModeConverter}}"
|
||||
InputMethod.PreferredImeState="{Binding StartWithEnglishMode, Converter={StaticResource BoolToIMEStateConverter}}"
|
||||
Visibility="Visible">
|
||||
<TextBox.CommandBindings>
|
||||
<CommandBinding Command="ApplicationCommands.Copy" Executed="OnCopy" />
|
||||
|
|
@ -244,6 +249,7 @@
|
|||
</TextBox>
|
||||
</Grid>
|
||||
</Border>
|
||||
|
||||
<StackPanel
|
||||
x:Name="ClockPanel"
|
||||
IsHitTestVisible="False"
|
||||
|
|
|
|||
|
|
@ -20,20 +20,10 @@ using Flow.Launcher.Infrastructure;
|
|||
using System.Windows.Media;
|
||||
using Flow.Launcher.Infrastructure.Hotkey;
|
||||
using Flow.Launcher.Plugin.SharedCommands;
|
||||
using System.Text;
|
||||
using DataObject = System.Windows.DataObject;
|
||||
using System.Diagnostics;
|
||||
using Microsoft.AspNetCore.Http;
|
||||
using System.IO;
|
||||
using System.Windows.Threading;
|
||||
using System.Windows.Data;
|
||||
using ModernWpf.Controls;
|
||||
using System.Drawing;
|
||||
using System.Windows.Forms.Design.Behavior;
|
||||
using System.Security.Cryptography;
|
||||
using System.Runtime.CompilerServices;
|
||||
using Microsoft.VisualBasic.Devices;
|
||||
using Microsoft.FSharp.Data.UnitSystems.SI.UnitNames;
|
||||
using Key = System.Windows.Input.Key;
|
||||
|
||||
namespace Flow.Launcher
|
||||
{
|
||||
|
|
|
|||
|
|
@ -4,6 +4,30 @@
|
|||
xmlns:system="clr-namespace:System;assembly=mscorlib"
|
||||
xmlns:ui="http://schemas.modernwpf.com/2019">
|
||||
|
||||
<ContextMenu x:Key="TextBoxContextMenu">
|
||||
<MenuItem Command="ApplicationCommands.Cut" Header="{DynamicResource cut}">
|
||||
<MenuItem.Icon>
|
||||
<ui:FontIcon Glyph="" />
|
||||
</MenuItem.Icon>
|
||||
</MenuItem>
|
||||
<MenuItem Command="ApplicationCommands.Copy" Header="{DynamicResource copy}">
|
||||
<MenuItem.Icon>
|
||||
<ui:FontIcon Glyph="" />
|
||||
</MenuItem.Icon>
|
||||
</MenuItem>
|
||||
<MenuItem Command="ApplicationCommands.Paste" Header="{DynamicResource paste}">
|
||||
<MenuItem.Icon>
|
||||
<ui:FontIcon Glyph="" />
|
||||
</MenuItem.Icon>
|
||||
</MenuItem>
|
||||
<MenuItem Command="ApplicationCommands.Undo" Header="{DynamicResource undo}">
|
||||
<MenuItem.Icon>
|
||||
<ui:FontIcon Glyph="" />
|
||||
</MenuItem.Icon>
|
||||
</MenuItem>
|
||||
<MenuItem Command="ApplicationCommands.SelectAll" Header="{DynamicResource selectAll}" />
|
||||
</ContextMenu>
|
||||
|
||||
|
||||
<Style TargetType="{x:Type ContentControl}">
|
||||
<Setter Property="Foreground" Value="{DynamicResource Color05B}" />
|
||||
|
|
@ -1357,7 +1381,13 @@
|
|||
</Setter>
|
||||
</Style>
|
||||
|
||||
<Style BasedOn="{StaticResource DefaultTextBoxStyle}" TargetType="TextBox" />
|
||||
<Style BasedOn="{StaticResource DefaultTextBoxStyle}" TargetType="TextBox">
|
||||
<Setter Property="ContextMenu" Value="{StaticResource TextBoxContextMenu}" />
|
||||
</Style>
|
||||
|
||||
<Style BasedOn="{StaticResource DefaultPasswordBoxStyle}" TargetType="PasswordBox">
|
||||
<Setter Property="ContextMenu" Value="{StaticResource TextBoxContextMenu}" />
|
||||
</Style>
|
||||
|
||||
<Style
|
||||
x:Key="DataGridTextBoxStyle"
|
||||
|
|
@ -2969,6 +2999,8 @@
|
|||
<Setter TargetName="KeyboardAcceleratorTextBlock" Property="Foreground" Value="{DynamicResource MenuFlyoutItemKeyboardAcceleratorTextForegroundPressed}" />
|
||||
</Trigger>
|
||||
<Trigger Property="IsEnabled" Value="False">
|
||||
<!-- Hide Disabled Item -->
|
||||
<Setter TargetName="LayoutRoot" Property="Visibility" Value="Collapsed" />
|
||||
<Setter TargetName="LayoutRoot" Property="Background" Value="{DynamicResource MenuFlyoutItemBackgroundDisabled}" />
|
||||
<Setter TargetName="LayoutRoot" Property="TextElement.Foreground" Value="{DynamicResource MenuFlyoutItemForegroundDisabled}" />
|
||||
<Setter TargetName="ContentPresenter" Property="TextElement.Foreground" Value="{DynamicResource MenuFlyoutItemForegroundDisabled}" />
|
||||
|
|
@ -3252,4 +3284,6 @@
|
|||
</Trigger>
|
||||
</Style.Triggers>
|
||||
</Style>
|
||||
|
||||
|
||||
</ResourceDictionary>
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@
|
|||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:converters="clr-namespace:Flow.Launcher.Converters"
|
||||
xmlns:core="clr-namespace:Flow.Launcher.Core.Resource;assembly=Flow.Launcher.Core"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:flowlauncher="clr-namespace:Flow.Launcher"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
|
|
@ -42,7 +43,7 @@
|
|||
<converters:BorderClipConverter x:Key="BorderClipConverter" />
|
||||
<converters:BoolToVisibilityConverter x:Key="BoolToVisibilityConverter" />
|
||||
<converters:TextConverter x:Key="TextConverter" />
|
||||
<converters:TranlationConverter x:Key="TranslationConverter" />
|
||||
<core:TranslationConverter x:Key="TranslationConverter" />
|
||||
<CollectionViewSource x:Key="SortedFonts" Source="{Binding Source={x:Static Fonts.SystemFontFamilies}}">
|
||||
<CollectionViewSource.SortDescriptions>
|
||||
<scm:SortDescription PropertyName="Source" />
|
||||
|
|
@ -737,30 +738,14 @@
|
|||
<TextBlock Style="{DynamicResource SettingTitleLabel}" Text="{DynamicResource AlwaysPreview}" />
|
||||
<TextBlock Style="{DynamicResource SettingSubTitleLabel}" Text="{DynamicResource AlwaysPreviewToolTip}" />
|
||||
</StackPanel>
|
||||
<CheckBox
|
||||
IsChecked="{Binding Settings.AlwaysPreview}"
|
||||
Style="{DynamicResource SideControlCheckBox}"
|
||||
ToolTip="{DynamicResource AlwaysPreviewToolTip}" />
|
||||
<TextBlock Style="{StaticResource Glyph}">
|
||||

|
||||
</TextBlock>
|
||||
</ItemsControl>
|
||||
</Border>
|
||||
|
||||
<Border Margin="0,30,0,0" Style="{DynamicResource SettingGroupBox}">
|
||||
<ItemsControl Style="{StaticResource SettingGrid}">
|
||||
<StackPanel Style="{StaticResource TextPanel}">
|
||||
<TextBlock Style="{DynamicResource SettingTitleLabel}" Text="{DynamicResource ShouldUsePinyin}" />
|
||||
<TextBlock Style="{DynamicResource SettingSubTitleLabel}" Text="{DynamicResource ShouldUsePinyinToolTip}" />
|
||||
</StackPanel>
|
||||
<ui:ToggleSwitch
|
||||
Grid.Column="2"
|
||||
FocusVisualMargin="5"
|
||||
IsOn="{Binding Settings.ShouldUsePinyin}"
|
||||
IsOn="{Binding Settings.AlwaysPreview}"
|
||||
Style="{DynamicResource SideToggleSwitch}"
|
||||
ToolTip="{DynamicResource ShouldUsePinyinToolTip}" />
|
||||
ToolTip="{DynamicResource AlwaysPreviewToolTip}" />
|
||||
<TextBlock Style="{StaticResource Glyph}">
|
||||

|
||||

|
||||
</TextBlock>
|
||||
</ItemsControl>
|
||||
</Border>
|
||||
|
|
@ -943,13 +928,52 @@
|
|||
Text="{Binding Settings.PluginSettings.PythonDirectory, TargetNullValue='No Setting'}" />
|
||||
<Button
|
||||
Height="34"
|
||||
Margin="10,10,18,10"
|
||||
Margin="10,0,18,0"
|
||||
Click="OnSelectPythonDirectoryClick"
|
||||
Content="{DynamicResource selectPythonDirectory}" />
|
||||
</StackPanel>
|
||||
</ItemsControl>
|
||||
</Border>
|
||||
|
||||
<Border Margin="0,30,0,0" Style="{DynamicResource SettingGroupBox}">
|
||||
<ItemsControl Style="{StaticResource SettingGrid}">
|
||||
<StackPanel Style="{StaticResource TextPanel}">
|
||||
<TextBlock
|
||||
Grid.Column="1"
|
||||
VerticalAlignment="Center"
|
||||
Style="{DynamicResource SettingTitleLabel}"
|
||||
Text="{DynamicResource typingStartEn}" />
|
||||
<TextBlock Style="{DynamicResource SettingSubTitleLabel}" Text="{DynamicResource typingStartEnTooltip}" />
|
||||
</StackPanel>
|
||||
<ui:ToggleSwitch
|
||||
Grid.Column="2"
|
||||
FocusVisualMargin="5"
|
||||
IsOn="{Binding Settings.AlwaysStartEn}"
|
||||
Style="{DynamicResource SideToggleSwitch}" />
|
||||
<TextBlock Style="{StaticResource Glyph}">
|
||||

|
||||
</TextBlock>
|
||||
</ItemsControl>
|
||||
</Border>
|
||||
|
||||
<Border Margin="0,4,0,0" Style="{DynamicResource SettingGroupBox}">
|
||||
<ItemsControl Style="{StaticResource SettingGrid}">
|
||||
<StackPanel Style="{StaticResource TextPanel}">
|
||||
<TextBlock Style="{DynamicResource SettingTitleLabel}" Text="{DynamicResource ShouldUsePinyin}" />
|
||||
<TextBlock Style="{DynamicResource SettingSubTitleLabel}" Text="{DynamicResource ShouldUsePinyinToolTip}" />
|
||||
</StackPanel>
|
||||
<ui:ToggleSwitch
|
||||
Grid.Column="2"
|
||||
FocusVisualMargin="5"
|
||||
IsOn="{Binding Settings.ShouldUsePinyin}"
|
||||
Style="{DynamicResource SideToggleSwitch}"
|
||||
ToolTip="{DynamicResource ShouldUsePinyinToolTip}" />
|
||||
<TextBlock Style="{StaticResource Glyph}">
|
||||

|
||||
</TextBlock>
|
||||
</ItemsControl>
|
||||
</Border>
|
||||
|
||||
<Border Style="{DynamicResource SettingGroupBox}">
|
||||
<ItemsControl Style="{StaticResource SettingGrid}">
|
||||
<StackPanel Style="{StaticResource TextPanel}">
|
||||
|
|
@ -1015,6 +1039,7 @@
|
|||
Height="34"
|
||||
Margin="0,5,26,0"
|
||||
HorizontalAlignment="Right"
|
||||
ContextMenu="{StaticResource TextBoxContextMenu}"
|
||||
DockPanel.Dock="Right"
|
||||
FontSize="14"
|
||||
KeyDown="PluginFilterTxb_OnKeyDown"
|
||||
|
|
@ -1406,6 +1431,7 @@
|
|||
Height="34"
|
||||
Margin="0,0,26,0"
|
||||
HorizontalAlignment="Right"
|
||||
ContextMenu="{StaticResource TextBoxContextMenu}"
|
||||
DockPanel.Dock="Right"
|
||||
FontSize="14"
|
||||
KeyDown="PluginStoreFilterTxb_OnKeyDown"
|
||||
|
|
|
|||
|
|
@ -71,6 +71,9 @@ namespace Flow.Launcher.ViewModel
|
|||
case nameof(Settings.WindowSize):
|
||||
OnPropertyChanged(nameof(MainWindowWidth));
|
||||
break;
|
||||
case nameof(Settings.AlwaysStartEn):
|
||||
OnPropertyChanged(nameof(StartWithEnglishMode));
|
||||
break;
|
||||
}
|
||||
};
|
||||
|
||||
|
|
@ -514,6 +517,8 @@ namespace Flow.Launcher.ViewModel
|
|||
|
||||
public string Image => Constant.QueryTextBoxIconImagePath;
|
||||
|
||||
public bool StartWithEnglishMode => Settings.AlwaysStartEn;
|
||||
|
||||
#endregion
|
||||
|
||||
public void Query()
|
||||
|
|
|
|||
|
|
@ -775,8 +775,12 @@ namespace Flow.Launcher.ViewModel
|
|||
var shortcutSettingWindow = new CustomShortcutSetting(item.Key, item.Value, this);
|
||||
if (shortcutSettingWindow.ShowDialog() == true)
|
||||
{
|
||||
// Fix un-selectable shortcut item after the first selection
|
||||
// https://stackoverflow.com/questions/16789360/wpf-listbox-items-with-changing-hashcode
|
||||
SelectedCustomShortcut = null;
|
||||
item.Key = shortcutSettingWindow.Key;
|
||||
item.Value = shortcutSettingWindow.Value;
|
||||
SelectedCustomShortcut = item;
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
|
|
|
|||
|
|
@ -1,11 +1,5 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Globalization;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using Flow.Launcher.Core;
|
||||
using System.ComponentModel;
|
||||
using Flow.Launcher.Core.Resource;
|
||||
|
||||
namespace Flow.Launcher.Plugin.Caculator
|
||||
{
|
||||
|
|
@ -21,4 +15,4 @@ namespace Flow.Launcher.Plugin.Caculator
|
|||
[LocalizedDescription("flowlauncher_plugin_calculator_decimal_seperator_comma")]
|
||||
Comma
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:calculator="clr-namespace:Flow.Launcher.Plugin.Caculator"
|
||||
xmlns:core="clr-namespace:Flow.Launcher.Core;assembly=Flow.Launcher.Core"
|
||||
xmlns:core="clr-namespace:Flow.Launcher.Core.Resource;assembly=Flow.Launcher.Core"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
xmlns:ui="clr-namespace:Flow.Launcher.Infrastructure.UI;assembly=Flow.Launcher.Infrastructure"
|
||||
|
|
|
|||
|
|
@ -45,11 +45,15 @@ namespace Flow.Launcher.Plugin.Explorer
|
|||
if (record.Type == ResultType.Folder && !string.IsNullOrEmpty(Settings.FolderEditorPath))
|
||||
contextMenus.Add(CreateOpenWithEditorResult(record, Settings.FolderEditorPath));
|
||||
|
||||
if (record.Type == ResultType.Folder && record.WindowsIndexed)
|
||||
if (record.Type == ResultType.Folder)
|
||||
{
|
||||
contextMenus.Add(CreateAddToIndexSearchExclusionListResult(record));
|
||||
contextMenus.Add(CreateOpenWithShellResult(record));
|
||||
if (record.WindowsIndexed)
|
||||
{
|
||||
contextMenus.Add(CreateAddToIndexSearchExclusionListResult(record));
|
||||
}
|
||||
}
|
||||
|
||||
contextMenus.Add(CreateOpenContainingFolderResult(record));
|
||||
|
||||
if (record.WindowsIndexed)
|
||||
|
|
@ -58,14 +62,14 @@ namespace Flow.Launcher.Plugin.Explorer
|
|||
}
|
||||
|
||||
var icoPath = (record.Type == ResultType.File) ? Constants.FileImagePath : Constants.FolderImagePath;
|
||||
var fileOrFolder = (record.Type == ResultType.File) ? "file" : "folder";
|
||||
bool isFile = record.Type == ResultType.File;
|
||||
|
||||
if (Settings.QuickAccessLinks.All(x => !x.Path.Equals(record.FullPath, StringComparison.OrdinalIgnoreCase)))
|
||||
{
|
||||
contextMenus.Add(new Result
|
||||
{
|
||||
Title = Context.API.GetTranslation("plugin_explorer_add_to_quickaccess_title"),
|
||||
SubTitle = string.Format(Context.API.GetTranslation("plugin_explorer_add_to_quickaccess_subtitle"), fileOrFolder),
|
||||
SubTitle = Context.API.GetTranslation("plugin_explorer_add_to_quickaccess_subtitle"),
|
||||
Action = (context) =>
|
||||
{
|
||||
Settings.QuickAccessLinks.Add(new AccessLink
|
||||
|
|
@ -74,10 +78,8 @@ namespace Flow.Launcher.Plugin.Explorer
|
|||
});
|
||||
|
||||
Context.API.ShowMsg(Context.API.GetTranslation("plugin_explorer_addfilefoldersuccess"),
|
||||
string.Format(
|
||||
Context.API.GetTranslation("plugin_explorer_addfilefoldersuccess_detail"),
|
||||
fileOrFolder),
|
||||
Constants.ExplorerIconImageFullPath);
|
||||
Constants.ExplorerIconImageFullPath);
|
||||
|
||||
ViewModel.Save();
|
||||
|
||||
|
|
@ -94,16 +96,14 @@ namespace Flow.Launcher.Plugin.Explorer
|
|||
contextMenus.Add(new Result
|
||||
{
|
||||
Title = Context.API.GetTranslation("plugin_explorer_remove_from_quickaccess_title"),
|
||||
SubTitle = string.Format(Context.API.GetTranslation("plugin_explorer_remove_from_quickaccess_subtitle"), fileOrFolder),
|
||||
SubTitle = Context.API.GetTranslation("plugin_explorer_remove_from_quickaccess_subtitle"),
|
||||
Action = (context) =>
|
||||
{
|
||||
Settings.QuickAccessLinks.Remove(Settings.QuickAccessLinks.FirstOrDefault(x => x.Path == record.FullPath));
|
||||
Settings.QuickAccessLinks.Remove(Settings.QuickAccessLinks.FirstOrDefault(x => string.Equals(x.Path, record.FullPath, StringComparison.OrdinalIgnoreCase)));
|
||||
|
||||
Context.API.ShowMsg(Context.API.GetTranslation("plugin_explorer_removefilefoldersuccess"),
|
||||
string.Format(
|
||||
Context.API.GetTranslation("plugin_explorer_removefilefoldersuccess_detail"),
|
||||
fileOrFolder),
|
||||
Constants.ExplorerIconImageFullPath);
|
||||
Constants.ExplorerIconImageFullPath);
|
||||
|
||||
ViewModel.Save();
|
||||
|
||||
|
|
@ -119,7 +119,7 @@ namespace Flow.Launcher.Plugin.Explorer
|
|||
contextMenus.Add(new Result
|
||||
{
|
||||
Title = Context.API.GetTranslation("plugin_explorer_copypath"),
|
||||
SubTitle = $"Copy the current {fileOrFolder} path to clipboard",
|
||||
SubTitle = Context.API.GetTranslation("plugin_explorer_copypath_subtitle"),
|
||||
Action = _ =>
|
||||
{
|
||||
try
|
||||
|
|
@ -141,8 +141,8 @@ namespace Flow.Launcher.Plugin.Explorer
|
|||
|
||||
contextMenus.Add(new Result
|
||||
{
|
||||
Title = Context.API.GetTranslation("plugin_explorer_copyfilefolder") + $" {fileOrFolder}",
|
||||
SubTitle = $"Copy the {fileOrFolder} to clipboard",
|
||||
Title = Context.API.GetTranslation("plugin_explorer_copyfilefolder"),
|
||||
SubTitle = isFile ? Context.API.GetTranslation("plugin_explorer_copyfile_subtitle") : Context.API.GetTranslation("plugin_explorer_copyfolder_subtitle"),
|
||||
Action = _ =>
|
||||
{
|
||||
try
|
||||
|
|
@ -155,7 +155,7 @@ namespace Flow.Launcher.Plugin.Explorer
|
|||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
var message = $"Fail to set {fileOrFolder} in clipboard";
|
||||
var message = $"Fail to set file/folder in clipboard";
|
||||
LogException(message, e);
|
||||
Context.API.ShowMsg(message);
|
||||
return false;
|
||||
|
|
@ -170,21 +170,21 @@ namespace Flow.Launcher.Plugin.Explorer
|
|||
if (record.Type is ResultType.File or ResultType.Folder)
|
||||
contextMenus.Add(new Result
|
||||
{
|
||||
Title = Context.API.GetTranslation("plugin_explorer_deletefilefolder") + $" {fileOrFolder}",
|
||||
SubTitle = Context.API.GetTranslation("plugin_explorer_deletefilefolder_subtitle") + $" {fileOrFolder}",
|
||||
Title = Context.API.GetTranslation("plugin_explorer_deletefilefolder"),
|
||||
SubTitle = isFile ? Context.API.GetTranslation("plugin_explorer_deletefile_subtitle") : Context.API.GetTranslation("plugin_explorer_deletefolder_subtitle"),
|
||||
Action = (context) =>
|
||||
{
|
||||
try
|
||||
{
|
||||
if (MessageBox.Show(
|
||||
string.Format(Context.API.GetTranslation("plugin_explorer_deletefilefolderconfirm"), fileOrFolder),
|
||||
Context.API.GetTranslation("plugin_explorer_deletefilefolderconfirm"),
|
||||
string.Empty,
|
||||
MessageBoxButton.YesNo,
|
||||
MessageBoxIcon.Warning)
|
||||
== DialogResult.No)
|
||||
return false;
|
||||
|
||||
if (record.Type == ResultType.File)
|
||||
if (isFile)
|
||||
File.Delete(record.FullPath);
|
||||
else
|
||||
Directory.Delete(record.FullPath, true);
|
||||
|
|
@ -192,13 +192,13 @@ namespace Flow.Launcher.Plugin.Explorer
|
|||
_ = Task.Run(() =>
|
||||
{
|
||||
Context.API.ShowMsg(Context.API.GetTranslation("plugin_explorer_deletefilefoldersuccess"),
|
||||
string.Format(Context.API.GetTranslation("plugin_explorer_deletefilefoldersuccess_detail"), fileOrFolder),
|
||||
string.Format(Context.API.GetTranslation("plugin_explorer_deletefilefoldersuccess_detail"), record.FullPath),
|
||||
Constants.ExplorerIconImageFullPath);
|
||||
});
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
var message = $"Fail to delete {fileOrFolder} at {record.FullPath}";
|
||||
var message = $"Fail to delete {record.FullPath}";
|
||||
LogException(message, e);
|
||||
Context.API.ShowMsgError(message);
|
||||
return false;
|
||||
|
|
@ -383,7 +383,7 @@ namespace Flow.Launcher.Plugin.Explorer
|
|||
SubTitle = Context.API.GetTranslation("plugin_explorer_path") + " " + record.FullPath,
|
||||
Action = _ =>
|
||||
{
|
||||
if (!Settings.IndexSearchExcludedSubdirectoryPaths.Any(x => x.Path == record.FullPath))
|
||||
if (!Settings.IndexSearchExcludedSubdirectoryPaths.Any(x => string.Equals(x.Path, record.FullPath, StringComparison.OrdinalIgnoreCase)))
|
||||
Settings.IndexSearchExcludedSubdirectoryPaths.Add(new AccessLink
|
||||
{
|
||||
Path = record.FullPath
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
<ResourceDictionary
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:system="clr-namespace:System;assembly=mscorlib">
|
||||
|
||||
|
|
@ -6,9 +7,10 @@
|
|||
<system:String x:Key="plugin_explorer_make_selection_warning">Please make a selection first</system:String>
|
||||
<system:String x:Key="plugin_explorer_select_folder_link_warning">Please select a folder link</system:String>
|
||||
<system:String x:Key="plugin_explorer_delete_folder_link">Are you sure you want to delete {0}?</system:String>
|
||||
<system:String x:Key="plugin_explorer_deletefilefolderconfirm">Are you sure you want to permanently delete this {0}?</system:String>
|
||||
<system:String x:Key="plugin_explorer_deletefolderconfirm">Are you sure you want to permanently delete this folder?</system:String>
|
||||
<system:String x:Key="plugin_explorer_deletefileconfirm">Are you sure you want to permanently delete this file?</system:String>
|
||||
<system:String x:Key="plugin_explorer_deletefilefoldersuccess">Deletion successful</system:String>
|
||||
<system:String x:Key="plugin_explorer_deletefilefoldersuccess_detail">Successfully deleted the {0}</system:String>
|
||||
<system:String x:Key="plugin_explorer_deletefilefoldersuccess_detail">Successfully deleted {0}</system:String>
|
||||
<system:String x:Key="plugin_explorer_globalActionKeywordInvalid">Assigning the global action keyword could bring up too many results during search. Please choose a specific action keyword</system:String>
|
||||
<system:String x:Key="plugin_explorer_quickaccess_globalActionKeywordInvalid">Quick Access can not be set to the global action keyword when enabled. Please choose a specific action keyword</system:String>
|
||||
<system:String x:Key="plugin_explorer_windowsSearchServiceNotRunning">The required service for Windows Index Search does not appear to be running</system:String>
|
||||
|
|
@ -31,7 +33,7 @@
|
|||
<system:String x:Key="plugin_explorer_editor_path">Editor Path</system:String>
|
||||
<system:String x:Key="plugin_explorer_shell_path">Shell Path</system:String>
|
||||
<system:String x:Key="plugin_explorer_indexsearchexcludedpaths_header">Index Search Excluded Paths</system:String>
|
||||
<system:String x:Key="plugin_explorer_use_location_as_working_dir">Use search result's location as executable working directory</system:String>
|
||||
<system:String x:Key="plugin_explorer_use_location_as_working_dir">Use search result's location as the working directory of the excutable</system:String>
|
||||
<system:String x:Key="plugin_explorer_usewindowsindexfordirectorysearch">Use Index Search For Path Search</system:String>
|
||||
<system:String x:Key="plugin_explorer_manageindexoptions">Indexing Options</system:String>
|
||||
<system:String x:Key="plugin_explorer_actionkeywordview_search">Search:</system:String>
|
||||
|
|
@ -64,14 +66,19 @@
|
|||
|
||||
<!-- Context menu items -->
|
||||
<system:String x:Key="plugin_explorer_copypath">Copy path</system:String>
|
||||
<system:String x:Key="plugin_explorer_copypath_subtitle">Copy path of current result to clipboard</system:String>
|
||||
<system:String x:Key="plugin_explorer_copyfilefolder">Copy</system:String>
|
||||
<system:String x:Key="plugin_explorer_copyfile_subtitle">Copy current file to clipboard</system:String>
|
||||
<system:String x:Key="plugin_explorer_copyfolder_subtitle">Copy current folder to clipboard</system:String>
|
||||
<system:String x:Key="plugin_explorer_deletefilefolder">Delete</system:String>
|
||||
<system:String x:Key="plugin_explorer_deletefile_subtitle">Permanently delete current file</system:String>
|
||||
<system:String x:Key="plugin_explorer_deletefolder_subtitle">Permanently delete current folder</system:String>
|
||||
<system:String x:Key="plugin_explorer_path">Path:</system:String>
|
||||
<system:String x:Key="plugin_explorer_deletefilefolder_subtitle">Delete the selected</system:String>
|
||||
<system:String x:Key="plugin_explorer_runasdifferentuser">Run as different user</system:String>
|
||||
<system:String x:Key="plugin_explorer_runasdifferentuser_subtitle">Run the selected using a different user account</system:String>
|
||||
<system:String x:Key="plugin_explorer_opencontainingfolder">Open containing folder</system:String>
|
||||
<system:String x:Key="plugin_explorer_opencontainingfolder_subtitle">Opens the location that contains the file or folder</system:String>
|
||||
<system:String x:Key="plugin_explorer_opencontainingfolder_subtitle">Opens the location that contains the item</system:String>
|
||||
<system:String x:Key="plugin_explorer_openwitheditor">Open With Editor:</system:String>
|
||||
<system:String x:Key="plugin_explorer_openwitheditor_error">Failed to open file at {0} with Editor {1} at {2}</system:String>
|
||||
<system:String x:Key="plugin_explorer_openwithshell">Open With Shell:</system:String>
|
||||
|
|
@ -82,7 +89,7 @@
|
|||
<system:String x:Key="plugin_explorer_openindexingoptions_subtitle">Manage indexed files and folders</system:String>
|
||||
<system:String x:Key="plugin_explorer_openindexingoptions_errormsg">Failed to open Windows Indexing Options</system:String>
|
||||
<system:String x:Key="plugin_explorer_add_to_quickaccess_title">Add to Quick Access</system:String>
|
||||
<system:String x:Key="plugin_explorer_add_to_quickaccess_subtitle">Add the current {0} to Quick Access</system:String>
|
||||
<system:String x:Key="plugin_explorer_add_to_quickaccess_subtitle">Add current result to Quick Access</system:String>
|
||||
<system:String x:Key="plugin_explorer_addfilefoldersuccess">Successfully Added</system:String>
|
||||
<system:String x:Key="plugin_explorer_addfilefoldersuccess_detail">Successfully added to Quick Access</system:String>
|
||||
<system:String x:Key="plugin_explorer_removefilefoldersuccess">Successfully Removed</system:String>
|
||||
|
|
@ -90,11 +97,11 @@
|
|||
<system:String x:Key="plugin_explorer_contextmenu_titletooltip">Add to Quick Access so it can be opened with Explorer's Search Activation action keyword</system:String>
|
||||
<system:String x:Key="plugin_explorer_contextmenu_remove_titletooltip">Remove from Quick Access</system:String>
|
||||
<system:String x:Key="plugin_explorer_remove_from_quickaccess_title">Remove from Quick Access</system:String>
|
||||
<system:String x:Key="plugin_explorer_remove_from_quickaccess_subtitle">Remove the current {0} from Quick Access</system:String>
|
||||
<system:String x:Key="plugin_explorer_remove_from_quickaccess_subtitle">Remove current result from Quick Access</system:String>
|
||||
<system:String x:Key="plugin_explorer_show_contextmenu_title">Show Windows Context Menu</system:String>
|
||||
|
||||
|
||||
<!-- Everything -->
|
||||
<system:String x:Key="flowlauncher_plugin_everything_sdk_issue">Everything SDK Loaded Fail</system:String>
|
||||
<system:String x:Key="flowlauncher_plugin_everything_sdk_issue">Failed to load Everything SDK</system:String>
|
||||
<system:String x:Key="flowlauncher_plugin_everything_is_not_running">Warning: Everything service is not running</system:String>
|
||||
<system:String x:Key="flowlauncher_plugin_everything_query_error">Error while querying Everything</system:String>
|
||||
<system:String x:Key="flowlauncher_plugin_everything_sort_by">Sort By</system:String>
|
||||
|
|
@ -122,5 +129,7 @@
|
|||
<system:String x:Key="flowlauncher_plugin_everything_installationfailed_subtitle">Failed to automatically install Everything service. Please manually install it from https://www.voidtools.com</system:String>
|
||||
<system:String x:Key="flowlauncher_plugin_everything_run_service">Click here to start it</system:String>
|
||||
<system:String x:Key="flowlauncher_plugin_everything_installing_select">Unable to find an Everything installation, would you like to manually select a location?{0}{0}Click no and Everything will be automatically installed for you</system:String>
|
||||
<system:String x:Key="flowlauncher_plugin_everything_enable_content_search">Do you want to enable content search for Everything?</system:String>
|
||||
<system:String x:Key="flowlauncher_plugin_everything_enable_content_search_tips">"It can be very slow without index (which is only supported in Everything v1.5+)"</system:String>
|
||||
|
||||
</ResourceDictionary>
|
||||
|
|
@ -1,18 +1,21 @@
|
|||
<?xml version="1.0"?>
|
||||
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:system="clr-namespace:System;assembly=mscorlib">
|
||||
<ResourceDictionary
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:system="clr-namespace:System;assembly=mscorlib">
|
||||
|
||||
<!-- Dialogues -->
|
||||
<system:String x:Key="plugin_explorer_make_selection_warning">Please make a selection first</system:String>
|
||||
<system:String x:Key="plugin_explorer_make_selection_warning">항목을 먼저 선택하세요</system:String>
|
||||
<system:String x:Key="plugin_explorer_select_folder_link_warning">폴더 링크를 선택하세요</system:String>
|
||||
<system:String x:Key="plugin_explorer_delete_folder_link">Are you sure you want to delete {0}?</system:String>
|
||||
<system:String x:Key="plugin_explorer_deletefilefolderconfirm">Are you sure you want to permanently delete this {0}?</system:String>
|
||||
<system:String x:Key="plugin_explorer_deletefilefoldersuccess">Deletion successful</system:String>
|
||||
<system:String x:Key="plugin_explorer_deletefilefoldersuccess_detail">Successfully deleted the {0}</system:String>
|
||||
<system:String x:Key="plugin_explorer_globalActionKeywordInvalid">Assigning the global action keyword could bring up too many results during search. Please choose a specific action keyword</system:String>
|
||||
<system:String x:Key="plugin_explorer_quickaccess_globalActionKeywordInvalid">Quick Access can not be set to the global action keyword when enabled. Please choose a specific action keyword</system:String>
|
||||
<system:String x:Key="plugin_explorer_windowsSearchServiceNotRunning">The required service for Windows Index Search does not appear to be running</system:String>
|
||||
<system:String x:Key="plugin_explorer_windowsSearchServiceFix">To fix this, start the Windows Search service. Select here to remove this warning</system:String>
|
||||
<system:String x:Key="plugin_explorer_alternative">The warning message has been switched off. As an alternative for searching files and folders, would you like to install Everything plugin?{0}{0}Select 'Yes' to install Everything plugin, or 'No' to return</system:String>
|
||||
<system:String x:Key="plugin_explorer_delete_folder_link">{0} - 삭제하시겠습니까?</system:String>
|
||||
<system:String x:Key="plugin_explorer_deletefolderconfirm">이 폴더를 영구적으로 삭제하시겠습니까?</system:String>
|
||||
<system:String x:Key="plugin_explorer_deletefileconfirm">이 파일을 영구적으로 삭제하시겠습니까?</system:String>
|
||||
<system:String x:Key="plugin_explorer_deletefilefoldersuccess">삭제 완료</system:String>
|
||||
<system:String x:Key="plugin_explorer_deletefilefoldersuccess_detail">{0} - 성공적으로 삭제했습니다.</system:String>
|
||||
<system:String x:Key="plugin_explorer_globalActionKeywordInvalid">글로벌 액션 키워드는 너무 많은 결과를 불러오게 될 수 있습니다. 특정한 액션 키워드를 선택하세요.</system:String>
|
||||
<system:String x:Key="plugin_explorer_quickaccess_globalActionKeywordInvalid">빠른 접근은 글로벌 액션키워드로 사용할 수 없습니다. 특정한 액션 키워드를 선택하세요.</system:String>
|
||||
<system:String x:Key="plugin_explorer_windowsSearchServiceNotRunning">윈도우색인 검색에 필요한 서비스가 실행되어 있지 않습니다.</system:String>
|
||||
<system:String x:Key="plugin_explorer_windowsSearchServiceFix">이 문제를 해결하려면 Windows Search Service를 시작하세요. 이 경고를 제거하려면 여기를 선택하세요.</system:String>
|
||||
<system:String x:Key="plugin_explorer_alternative">경고 메시지가 꺼졌습니다. 파일 및 폴더 검색을 위한 대안으로 Everything 플러그인을 설치하시겠습니까?{0}{0}Everything 플러그인을 설치하려면 '예'를 선택하고, 반환하려면 '아니오'를 선택하십시오</system:String>
|
||||
<system:String x:Key="plugin_explorer_alternative_title">Explorer Alternative</system:String>
|
||||
<system:String x:Key="plugin_explorer_directoryinfosearch_error">Error occurred during search: {0}</system:String>
|
||||
|
||||
|
|
@ -20,86 +23,90 @@
|
|||
<system:String x:Key="plugin_explorer_delete">삭제</system:String>
|
||||
<system:String x:Key="plugin_explorer_edit">편집</system:String>
|
||||
<system:String x:Key="plugin_explorer_add">추가</system:String>
|
||||
<system:String x:Key="plugin_explorer_generalsetting_header">General Setting</system:String>
|
||||
<system:String x:Key="plugin_explorer_generalsetting_header">일반 설정</system:String>
|
||||
<system:String x:Key="plugin_explorer_manageactionkeywords_header">사용자 지정 액션 키워드</system:String>
|
||||
<system:String x:Key="plugin_explorer_quickaccesslinks_header">Quick Access Links</system:String>
|
||||
<system:String x:Key="plugin_explorer_everything_setting_header">Everything Setting</system:String>
|
||||
<system:String x:Key="plugin_explorer_everything_sort_option">Sort Option:</system:String>
|
||||
<system:String x:Key="plugin_explorer_everything_installed_path">Everything Path:</system:String>
|
||||
<system:String x:Key="plugin_explorer_quickaccesslinks_header">빠른 접근 항목</system:String>
|
||||
<system:String x:Key="plugin_explorer_everything_setting_header">Everything 설정</system:String>
|
||||
<system:String x:Key="plugin_explorer_everything_sort_option">정렬:</system:String>
|
||||
<system:String x:Key="plugin_explorer_everything_installed_path">Everything 경로:</system:String>
|
||||
<system:String x:Key="plugin_explorer_launch_hidden">Launch Hidden</system:String>
|
||||
<system:String x:Key="plugin_explorer_editor_path">Editor Path</system:String>
|
||||
<system:String x:Key="plugin_explorer_shell_path">Shell Path</system:String>
|
||||
<system:String x:Key="plugin_explorer_indexsearchexcludedpaths_header">Index Search Excluded Paths</system:String>
|
||||
<system:String x:Key="plugin_explorer_use_location_as_working_dir">Use search result's location as executable working directory</system:String>
|
||||
<system:String x:Key="plugin_explorer_editor_path">에디터 경로</system:String>
|
||||
<system:String x:Key="plugin_explorer_shell_path">쉘 경로</system:String>
|
||||
<system:String x:Key="plugin_explorer_indexsearchexcludedpaths_header">색인 제외 경로</system:String>
|
||||
<system:String x:Key="plugin_explorer_use_location_as_working_dir">검색 결과위치를 실행 가능한 작업 디렉토리(Working Directory)로 사용</system:String>
|
||||
<system:String x:Key="plugin_explorer_usewindowsindexfordirectorysearch">Use Index Search For Path Search</system:String>
|
||||
<system:String x:Key="plugin_explorer_manageindexoptions">색인 옵션</system:String>
|
||||
<system:String x:Key="plugin_explorer_manageindexoptions">Indexing Options</system:String>
|
||||
<system:String x:Key="plugin_explorer_actionkeywordview_search">검색:</system:String>
|
||||
<system:String x:Key="plugin_explorer_actionkeywordview_pathsearch">경로 검색:</system:String>
|
||||
<system:String x:Key="plugin_explorer_actionkeywordview_filecontentsearch">파일 내용 검색:</system:String>
|
||||
<system:String x:Key="plugin_explorer_actionkeywordview_indexsearch">색인 검색:</system:String>
|
||||
<system:String x:Key="plugin_explorer_actionkeywordview_quickaccess">Quick Access:</system:String>
|
||||
<system:String x:Key="plugin_explorer_actionkeyword_current">Current Action Keyword</system:String>
|
||||
<system:String x:Key="plugin_explorer_actionkeywordview_quickaccess">빠른 접근:</system:String>
|
||||
<system:String x:Key="plugin_explorer_actionkeyword_current">현재 액션 키워드</system:String>
|
||||
<system:String x:Key="plugin_explorer_actionkeyword_done">완료</system:String>
|
||||
<system:String x:Key="plugin_explorer_actionkeyword_enabled">켬</system:String>
|
||||
<system:String x:Key="plugin_explorer_actionkeyword_enabled_tooltip">When disabled Flow will not execute this search option, and will additionally revert back to '*' to free up the action keyword</system:String>
|
||||
<system:String x:Key="plugin_explorer_actionkeyword_enabled">사용</system:String>
|
||||
<system:String x:Key="plugin_explorer_actionkeyword_enabled_tooltip">비활성화하면 Flow가 이 검색 옵션을 실행하지 않고 추가로 '*'로 되돌아가 액션 키워드를 해제합니다.</system:String>
|
||||
<system:String x:Key="plugin_explorer_engine_everything">Everything</system:String>
|
||||
<system:String x:Key="plugin_explorer_engine_windows_index">Windows Index</system:String>
|
||||
<system:String x:Key="plugin_explorer_path_enumeration_engine_none">Direct Enumeration</system:String>
|
||||
<system:String x:Key="plugin_explorer_engine_windows_index">윈도우 색인</system:String>
|
||||
<system:String x:Key="plugin_explorer_path_enumeration_engine_none">Flow Launcher</system:String>
|
||||
<system:String x:Key="plugin_explorer_file_editor_path">파일 편집기 경로</system:String>
|
||||
<system:String x:Key="plugin_explorer_folder_editor_path">폴더 편집기 경로</system:String>
|
||||
|
||||
<system:String x:Key="plugin_explorer_Content_Search_Engine">Content Search Engine</system:String>
|
||||
<system:String x:Key="plugin_explorer_Directory_Recursive_Search_Engine">Directory Recursive Search Engine</system:String>
|
||||
<system:String x:Key="plugin_explorer_Index_Search_Engine">Index Search Engine</system:String>
|
||||
<system:String x:Key="plugin_explorer_Open_Window_Index_Option">Open Windows Index Option</system:String>
|
||||
<system:String x:Key="plugin_explorer_Content_Search_Engine">내용 검색 엔진</system:String>
|
||||
<system:String x:Key="plugin_explorer_Directory_Recursive_Search_Engine">경로 재귀 검색 엔진</system:String>
|
||||
<system:String x:Key="plugin_explorer_Index_Search_Engine">색인 검색 엔진</system:String>
|
||||
<system:String x:Key="plugin_explorer_Open_Window_Index_Option">윈도우 색인 설정 열기</system:String>
|
||||
|
||||
<!-- Plugin Infos -->
|
||||
<system:String x:Key="plugin_explorer_plugin_name">탐색기</system:String>
|
||||
<system:String x:Key="plugin_explorer_plugin_description">Window Index Search를 사용하여 파일과 폴더를 검색 및 관리합니다</system:String>
|
||||
<system:String x:Key="plugin_explorer_plugin_description">윈도우 색인 또는 Everything을 사용하여 파일과 폴더를 검색 및 관리합니다</system:String>
|
||||
|
||||
<!-- Plugin Tooltip -->
|
||||
<system:String x:Key="plugin_explorer_plugin_ToolTipOpenDirectory">Ctrl + Enter to open the directory</system:String>
|
||||
<system:String x:Key="plugin_explorer_plugin_ToolTipOpenContainingFolder">Ctrl + Enter to open the containing folder</system:String>
|
||||
<system:String x:Key="plugin_explorer_plugin_ToolTipOpenDirectory">Ctrl + Enter으로 폴더 열기</system:String>
|
||||
<system:String x:Key="plugin_explorer_plugin_ToolTipOpenContainingFolder">Ctrl + Enter으로 포함된 폴더 열기</system:String>
|
||||
|
||||
<!-- Context menu items -->
|
||||
<system:String x:Key="plugin_explorer_copypath">경로 복사</system:String>
|
||||
<system:String x:Key="plugin_explorer_copypath_subtitle">이 항목의 경로를 클립보드에 복사</system:String>
|
||||
<system:String x:Key="plugin_explorer_copyfilefolder">복사하기</system:String>
|
||||
<system:String x:Key="plugin_explorer_copyfile_subtitle">이 파일을 클립보드에 복사</system:String>
|
||||
<system:String x:Key="plugin_explorer_copyfolder_subtitle">이 폴더를 클립보드에 복사</system:String>
|
||||
<system:String x:Key="plugin_explorer_deletefilefolder">삭제</system:String>
|
||||
<system:String x:Key="plugin_explorer_deletefile_subtitle">이 파일을 영구적으로 삭제</system:String>
|
||||
<system:String x:Key="plugin_explorer_deletefolder_subtitle">이 폴더를 영구적으로 삭제</system:String>
|
||||
<system:String x:Key="plugin_explorer_path">경로:</system:String>
|
||||
<system:String x:Key="plugin_explorer_deletefilefolder_subtitle">Delete the selected</system:String>
|
||||
<system:String x:Key="plugin_explorer_deletefilefolder_subtitle">선택 항목을 삭제</system:String>
|
||||
<system:String x:Key="plugin_explorer_runasdifferentuser">다른 유저 권한으로 실행</system:String>
|
||||
<system:String x:Key="plugin_explorer_runasdifferentuser_subtitle">Run the selected using a different user account</system:String>
|
||||
<system:String x:Key="plugin_explorer_runasdifferentuser_subtitle">선택한 다른 사용자 계정으로 실행</system:String>
|
||||
<system:String x:Key="plugin_explorer_opencontainingfolder">포함된 폴더 열기</system:String>
|
||||
<system:String x:Key="plugin_explorer_opencontainingfolder_subtitle">Opens the location that contains the file or folder</system:String>
|
||||
<system:String x:Key="plugin_explorer_openwitheditor">편집기에서 열기:</system:String>
|
||||
<system:String x:Key="plugin_explorer_opencontainingfolder_subtitle">이 항목이 포함된 위치를 열기</system:String>
|
||||
<system:String x:Key="plugin_explorer_openwitheditor">에디터로 열기:</system:String>
|
||||
<system:String x:Key="plugin_explorer_openwitheditor_error">Failed to open file at {0} with Editor {1} at {2}</system:String>
|
||||
<system:String x:Key="plugin_explorer_openwithshell">Open With Shell:</system:String>
|
||||
<system:String x:Key="plugin_explorer_openwithshell">쉘로 열기:</system:String>
|
||||
<system:String x:Key="plugin_explorer_openwithshell_error">Failed to open folder {0} with Shell {1} at {2}</system:String>
|
||||
<system:String x:Key="plugin_explorer_excludefromindexsearch">Exclude current and sub-directories from Index Search</system:String>
|
||||
<system:String x:Key="plugin_explorer_excludedfromindexsearch_msg">Excluded from Index Search</system:String>
|
||||
<system:String x:Key="plugin_explorer_openindexingoptions">윈도우 인덱싱 옵션 열기</system:String>
|
||||
<system:String x:Key="plugin_explorer_openindexingoptions_subtitle">Manage indexed files and folders</system:String>
|
||||
<system:String x:Key="plugin_explorer_openindexingoptions_errormsg">윈도우 인덱싱 옵션 열기에 실패했습니다</system:String>
|
||||
<system:String x:Key="plugin_explorer_add_to_quickaccess_title">Add to Quick Access</system:String>
|
||||
<system:String x:Key="plugin_explorer_add_to_quickaccess_subtitle">Add the current {0} to Quick Access</system:String>
|
||||
<system:String x:Key="plugin_explorer_addfilefoldersuccess">성공적으로 추가되었습니다</system:String>
|
||||
<system:String x:Key="plugin_explorer_addfilefoldersuccess_detail">Successfully added to Quick Access</system:String>
|
||||
<system:String x:Key="plugin_explorer_removefilefoldersuccess">성공적으로 제거했습니다</system:String>
|
||||
<system:String x:Key="plugin_explorer_removefilefoldersuccess_detail">Successfully removed from Quick Access</system:String>
|
||||
<system:String x:Key="plugin_explorer_excludefromindexsearch">현재 폴더 및 하위폴더를 색인 검색에서 제외</system:String>
|
||||
<system:String x:Key="plugin_explorer_excludedfromindexsearch_msg">색인 검색에서 제외했습니다</system:String>
|
||||
<system:String x:Key="plugin_explorer_openindexingoptions">윈도우 색인 설정 열기</system:String>
|
||||
<system:String x:Key="plugin_explorer_openindexingoptions_subtitle">폴더 및 파일의 색인 관리</system:String>
|
||||
<system:String x:Key="plugin_explorer_openindexingoptions_errormsg">윈도우 색인 설정을 여는데 실패했습니다</system:String>
|
||||
<system:String x:Key="plugin_explorer_add_to_quickaccess_title">빠른 접근에 추가</system:String>
|
||||
<system:String x:Key="plugin_explorer_add_to_quickaccess_subtitle">빠른 접근에 이 항목을 추가</system:String>
|
||||
<system:String x:Key="plugin_explorer_addfilefoldersuccess">추가 완료</system:String>
|
||||
<system:String x:Key="plugin_explorer_addfilefoldersuccess_detail">빠른 접근에 추가했습니다</system:String>
|
||||
<system:String x:Key="plugin_explorer_removefilefoldersuccess">제거 완료</system:String>
|
||||
<system:String x:Key="plugin_explorer_removefilefoldersuccess_detail">빠른 접근에서 제거했습니다</system:String>
|
||||
<system:String x:Key="plugin_explorer_contextmenu_titletooltip">Add to Quick Access so it can be opened with Explorer's Search Activation action keyword</system:String>
|
||||
<system:String x:Key="plugin_explorer_contextmenu_remove_titletooltip">Remove from Quick Access</system:String>
|
||||
<system:String x:Key="plugin_explorer_remove_from_quickaccess_title">Remove from Quick Access</system:String>
|
||||
<system:String x:Key="plugin_explorer_remove_from_quickaccess_subtitle">Remove the current {0} from Quick Access</system:String>
|
||||
<system:String x:Key="plugin_explorer_show_contextmenu_title">Show Windows Context Menu</system:String>
|
||||
|
||||
<system:String x:Key="plugin_explorer_remove_from_quickaccess_title">빠른 접근에서 제거</system:String>
|
||||
<system:String x:Key="plugin_explorer_remove_from_quickaccess_subtitle">이 항목을 빠른 접근에서 제거</system:String>
|
||||
<system:String x:Key="plugin_explorer_show_contextmenu_title">우클릭 메뉴 보기</system:String>
|
||||
|
||||
<!-- Everything -->
|
||||
<system:String x:Key="flowlauncher_plugin_everything_sdk_issue">Everything SDK Loaded Fail</system:String>
|
||||
<system:String x:Key="flowlauncher_plugin_everything_is_not_running">Warning: Everything service is not running</system:String>
|
||||
<system:String x:Key="flowlauncher_plugin_everything_sdk_issue">Everything SDK를 불러오는데 실패했습니다</system:String>
|
||||
<system:String x:Key="flowlauncher_plugin_everything_is_not_running">경고: Everything 서비스가 실행 중이 아닙니다</system:String>
|
||||
<system:String x:Key="flowlauncher_plugin_everything_query_error">Error while querying Everything</system:String>
|
||||
<system:String x:Key="flowlauncher_plugin_everything_sort_by">Sort By</system:String>
|
||||
<system:String x:Key="flowlauncher_plugin_everything_sort_by_name">Name</system:String>
|
||||
<system:String x:Key="flowlauncher_plugin_everything_sort_by_path">Path</system:String>
|
||||
<system:String x:Key="flowlauncher_plugin_everything_sort_by_size">크기</system:String>
|
||||
<system:String x:Key="flowlauncher_plugin_everything_sort_by_size">Size</system:String>
|
||||
<system:String x:Key="flowlauncher_plugin_everything_sort_by_extension">Extension</system:String>
|
||||
<system:String x:Key="flowlauncher_plugin_everything_sort_by_type_name">Type Name</system:String>
|
||||
<system:String x:Key="flowlauncher_plugin_everything_sort_by_date_created">Date Created</system:String>
|
||||
|
|
@ -110,16 +117,18 @@
|
|||
<system:String x:Key="flowlauncher_plugin_everything_sort_by_date_recently_changed">Date Recently Changed</system:String>
|
||||
<system:String x:Key="flowlauncher_plugin_everything_sort_by_date_accessed">Date Accessed</system:String>
|
||||
<system:String x:Key="flowlauncher_plugin_everything_sort_by_date_run">Date Run</system:String>
|
||||
<system:String x:Key="flowlauncher_plugin_everything_sort_by_ascending">↑</system:String>
|
||||
<system:String x:Key="flowlauncher_plugin_everything_sort_by_descending">↓</system:String>
|
||||
<system:String x:Key="flowlauncher_plugin_everything_sort_by_ascending">↑</system:String>
|
||||
<system:String x:Key="flowlauncher_plugin_everything_sort_by_descending">↓</system:String>
|
||||
<system:String x:Key="flowlauncher_plugin_everything_nonfastsort_warning">Warning: This is not a Fast Sort option, searches may be slow</system:String>
|
||||
|
||||
<system:String x:Key="flowlauncher_plugin_everything_click_to_launch_or_install">Click to Launch or Install Everything</system:String>
|
||||
<system:String x:Key="flowlauncher_plugin_everything_installing_title">Everything Installation</system:String>
|
||||
<system:String x:Key="flowlauncher_plugin_everything_installing_subtitle">Installing Everything service. Please wait...</system:String>
|
||||
<system:String x:Key="flowlauncher_plugin_everything_installationsuccess_subtitle">Successfully installed Everything service</system:String>
|
||||
<system:String x:Key="flowlauncher_plugin_everything_installationfailed_subtitle">Failed to automatically install Everything service. Please manually install it from https://www.voidtools.com</system:String>
|
||||
<system:String x:Key="flowlauncher_plugin_everything_run_service">Click here to start it</system:String>
|
||||
<system:String x:Key="flowlauncher_plugin_everything_installing_select">Unable to find an Everything installation, would you like to manually select a location?{0}{0}Click no and Everything will be automatically installed for you</system:String>
|
||||
<system:String x:Key="flowlauncher_plugin_everything_click_to_launch_or_install">Everything을 실행 또는 설치하려면 클릭하세요</system:String>
|
||||
<system:String x:Key="flowlauncher_plugin_everything_installing_title">Everything 설치</system:String>
|
||||
<system:String x:Key="flowlauncher_plugin_everything_installing_subtitle">Everything 서비스 설치 중. 잠시 기다려주세요...</system:String>
|
||||
<system:String x:Key="flowlauncher_plugin_everything_installationsuccess_subtitle">Everything 설치 완료</system:String>
|
||||
<system:String x:Key="flowlauncher_plugin_everything_installationfailed_subtitle">Everything 서비스 자동 설치에 실패했습니다. https://www.voidtools.com를 방문하여 직접 설치해주세요.</system:String>
|
||||
<system:String x:Key="flowlauncher_plugin_everything_run_service">여기를 클릭하여 시작</system:String>
|
||||
<system:String x:Key="flowlauncher_plugin_everything_installing_select">설치된 Everything 찾을 수 없습니다. 위치를 수동으로 선택하시겠습니까?{0}{0}아니오를 클릭하면 모든 항목이 자동으로 설치됩니다.</system:String>
|
||||
<system:String x:Key="flowlauncher_plugin_everything_enable_content_search">Eveyrhing으로 내용 검색을 활성화하시겠습니까?</system:String>
|
||||
<system:String x:Key="flowlauncher_plugin_everything_enable_content_search_tips">"인덱스가 없으면 매우 느릴 수 있습니다.(Everything v1.5+에서만 지원)"</system:String>
|
||||
|
||||
</ResourceDictionary>
|
||||
</ResourceDictionary>
|
||||
|
|
@ -145,8 +145,8 @@ namespace Flow.Launcher.Plugin.Explorer.Search
|
|||
{
|
||||
new()
|
||||
{
|
||||
Title = "Do you want to enable content search for Everything?",
|
||||
SubTitle = "It can be very slow without index (which is only supported in Everything v1.5+)",
|
||||
Title = Context.API.GetTranslation("flowlauncher_plugin_everything_enable_content_search"),
|
||||
SubTitle = Context.API.GetTranslation("flowlauncher_plugin_everything_enable_content_search_tips"),
|
||||
IcoPath = "Images/index_error.png",
|
||||
Action = c =>
|
||||
{
|
||||
|
|
|
|||
|
|
@ -112,15 +112,15 @@ namespace Flow.Launcher.Plugin.Explorer.ViewModels
|
|||
ActionKeywordsModels = new List<ActionKeywordModel>
|
||||
{
|
||||
new(Settings.ActionKeyword.SearchActionKeyword,
|
||||
Context.API.GetTranslation("plugin_explorer_actionkeywordview_search")),
|
||||
"plugin_explorer_actionkeywordview_search"),
|
||||
new(Settings.ActionKeyword.FileContentSearchActionKeyword,
|
||||
Context.API.GetTranslation("plugin_explorer_actionkeywordview_filecontentsearch")),
|
||||
"plugin_explorer_actionkeywordview_filecontentsearch"),
|
||||
new(Settings.ActionKeyword.PathSearchActionKeyword,
|
||||
Context.API.GetTranslation("plugin_explorer_actionkeywordview_pathsearch")),
|
||||
"plugin_explorer_actionkeywordview_pathsearch"),
|
||||
new(Settings.ActionKeyword.IndexSearchActionKeyword,
|
||||
Context.API.GetTranslation("plugin_explorer_actionkeywordview_indexsearch")),
|
||||
"plugin_explorer_actionkeywordview_indexsearch"),
|
||||
new(Settings.ActionKeyword.QuickAccessActionKeyword,
|
||||
Context.API.GetTranslation("plugin_explorer_actionkeywordview_quickaccess"))
|
||||
"plugin_explorer_actionkeywordview_quickaccess")
|
||||
};
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@
|
|||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:converters="clr-namespace:Flow.Launcher.Plugin.Explorer.Views.Converters"
|
||||
xmlns:core="clr-namespace:Flow.Launcher.Core.Resource;assembly=Flow.Launcher.Core"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
xmlns:qa="clr-namespace:Flow.Launcher.Plugin.Explorer.Search.QuickAccessLinks"
|
||||
|
|
@ -106,12 +107,13 @@
|
|||
<DataTemplate x:Key="ListViewTemplateAccessLinks" DataType="qa:AccessLink">
|
||||
<TextBlock Margin="0,5,0,5" Text="{Binding Path, Mode=OneTime}" />
|
||||
</DataTemplate>
|
||||
<core:TranslationConverter x:Key="TranslationConverter" />
|
||||
<DataTemplate x:Key="ListViewActionKeywords" DataType="{x:Type views:ActionKeywordModel}">
|
||||
<Grid>
|
||||
<TextBlock
|
||||
Margin="0,5,0,0"
|
||||
IsEnabled="{Binding Enabled}"
|
||||
Text="{Binding Description, Mode=OneTime}">
|
||||
Text="{Binding Description, Mode=OneTime, Converter={StaticResource TranslationConverter}}">
|
||||
<TextBlock.Style>
|
||||
<Style TargetType="{x:Type TextBlock}">
|
||||
<Style.Triggers>
|
||||
|
|
|
|||
|
|
@ -620,7 +620,7 @@ namespace Flow.Launcher.Plugin.Program.Programs
|
|||
autoIndexPrograms = autoIndexPrograms.Concat(startMenu);
|
||||
}
|
||||
|
||||
if (settings.EnablePATHSource)
|
||||
if (settings.EnablePathSource)
|
||||
{
|
||||
var path = PATHPrograms(settings.GetSuffixes(), protocols, commonParents);
|
||||
programs = programs.Concat(path);
|
||||
|
|
|
|||
|
|
@ -118,7 +118,7 @@ namespace Flow.Launcher.Plugin.Program
|
|||
public bool EnableDescription { get; set; } = false;
|
||||
public bool HideAppsPath { get; set; } = true;
|
||||
public bool EnableRegistrySource { get; set; } = true;
|
||||
public bool EnablePATHSource { get; set; } = true;
|
||||
public bool EnablePathSource { get; set; } = false;
|
||||
|
||||
public string CustomizedExplorer { get; set; } = Explorer;
|
||||
public string CustomizedArgs { get; set; } = ExplorerArgs;
|
||||
|
|
|
|||
|
|
@ -69,10 +69,10 @@ namespace Flow.Launcher.Plugin.Program.Views
|
|||
|
||||
public bool EnablePATHSource
|
||||
{
|
||||
get => _settings.EnablePATHSource;
|
||||
get => _settings.EnablePathSource;
|
||||
set
|
||||
{
|
||||
_settings.EnablePATHSource = value;
|
||||
_settings.EnablePathSource = value;
|
||||
ReIndexing();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
"Name": "Program",
|
||||
"Description": "Search programs in Flow.Launcher",
|
||||
"Author": "qianlifeng",
|
||||
"Version": "2.0.0",
|
||||
"Version": "2.0.1",
|
||||
"Language": "csharp",
|
||||
"Website": "https://github.com/Flow-Launcher/Flow.Launcher",
|
||||
"ExecuteFileName": "Flow.Launcher.Plugin.Program.dll",
|
||||
|
|
|
|||
Loading…
Reference in a new issue