Enhance mod+num launching

This commit is contained in:
Grzegorz Dziedzic 2020-05-03 19:17:16 +02:00
parent eeadcdfe57
commit 10c16f059e
25 changed files with 76 additions and 13 deletions

View file

@ -10,6 +10,7 @@ namespace Flow.Launcher.Infrastructure.UserSettings
public class Settings : BaseModel
{
public string Hotkey { get; set; } = "Alt + Space";
public string OpenResultModifiers { get; set; } = "Alt";
public string Language { get; set; } = "en";
public string Theme { get; set; } = "Dark";
public string QueryBoxFont { get; set; } = FontFamily.GenericSansSerif.Name;

View file

@ -0,0 +1,22 @@
using System.Globalization;
using System.Windows.Controls;
using System.Windows.Data;
namespace Flow.Launcher.Converters
{
public class OrdinalConverter : IValueConverter
{
public object Convert(object value, System.Type targetType, object parameter, CultureInfo culture)
{
if (value is ListBoxItem listBoxItem)
{
ListBox listBox = ItemsControl.ItemsControlFromItemContainer(listBoxItem) as ListBox;
return listBox.ItemContainerGenerator.IndexFromContainer(listBoxItem) + 1;
}
return 0;
}
public object ConvertBack(object value, System.Type targetType, object parameter, CultureInfo culture) => throw new System.InvalidOperationException();
}
}

View file

@ -51,6 +51,7 @@
<!--Setting Hotkey-->
<system:String x:Key="hotkey">Genvejstast</system:String>
<system:String x:Key="flowlauncherHotkey">Flow Launcher genvejstast</system:String>
<system:String x:Key="openResultModifiers">Åbn resultatmodifikatorer</system:String>
<system:String x:Key="customQueryHotkey">Tilpasset søgegenvejstast</system:String>
<system:String x:Key="delete">Slet</system:String>
<system:String x:Key="edit">Rediger</system:String>

View file

@ -51,6 +51,7 @@
<!--Setting Hotkey-->
<system:String x:Key="hotkey">Tastenkombination</system:String>
<system:String x:Key="flowlauncherHotkey">Flow Launcher Tastenkombination</system:String>
<system:String x:Key="openResultModifiers">Öffnen Sie die Ergebnismodifikatoren</system:String>
<system:String x:Key="customQueryHotkey">Benutzerdefinierte Abfrage Tastenkombination</system:String>
<system:String x:Key="delete">Löschen</system:String>
<system:String x:Key="edit">Bearbeiten</system:String>

View file

@ -60,6 +60,7 @@
<!--Setting Hotkey-->
<system:String x:Key="hotkey">Hotkey</system:String>
<system:String x:Key="flowlauncherHotkey">Flow Launcher Hotkey</system:String>
<system:String x:Key="openResultModifiers">Open Result Modifiers</system:String>
<system:String x:Key="customQueryHotkey">Custom Query Hotkey</system:String>
<system:String x:Key="delete">Delete</system:String>
<system:String x:Key="edit">Edit</system:String>

View file

@ -55,6 +55,7 @@
<!--Setting Hotkey-->
<system:String x:Key="hotkey">Raccourcis</system:String>
<system:String x:Key="flowlauncherHotkey">Ouvrir Flow Launcher</system:String>
<system:String x:Key="openResultModifiers">Modificateurs de résultats ouverts</system:String>
<system:String x:Key="customQueryHotkey">Requêtes personnalisées</system:String>
<system:String x:Key="delete">Supprimer</system:String>
<system:String x:Key="edit">Modifier</system:String>

View file

@ -55,6 +55,7 @@
<!--Setting Hotkey-->
<system:String x:Key="hotkey">Tasti scelta rapida</system:String>
<system:String x:Key="flowlauncherHotkey">Tasto scelta rapida Flow Launcher</system:String>
<system:String x:Key="openResultModifiers">Apri modificatori di risultato</system:String>
<system:String x:Key="customQueryHotkey">Tasti scelta rapida per ricerche personalizzate</system:String>
<system:String x:Key="delete">Cancella</system:String>
<system:String x:Key="edit">Modifica</system:String>

View file

@ -58,6 +58,7 @@
<!--Setting Hotkey-->
<system:String x:Key="hotkey">ホットキー</system:String>
<system:String x:Key="flowlauncherHotkey">Flow Launcher ホットキー</system:String>
<system:String x:Key="openResultModifiers">結果修飾子を開く</system:String>
<system:String x:Key="customQueryHotkey">カスタムクエリ ホットキー</system:String>
<system:String x:Key="delete">削除</system:String>
<system:String x:Key="edit">編集</system:String>

View file

@ -55,6 +55,7 @@
<!--Setting Hotkey-->
<system:String x:Key="hotkey">핫키</system:String>
<system:String x:Key="flowlauncherHotkey">Flow Launcher 핫키</system:String>
<system:String x:Key="openResultModifiers">결과 수정 자 열기</system:String>
<system:String x:Key="customQueryHotkey">사용자지정 쿼리 핫키</system:String>
<system:String x:Key="delete">삭제</system:String>
<system:String x:Key="edit">편집</system:String>

View file

@ -55,6 +55,7 @@
<!--Setting Hotkey-->
<system:String x:Key="hotkey">Hurtigtast</system:String>
<system:String x:Key="flowlauncherHotkey">Flow Launcher-hurtigtast</system:String>
<system:String x:Key="openResultModifiers">Åpne resultatmodifiserere</system:String>
<system:String x:Key="customQueryHotkey">Egendefinerd spørringshurtigtast</system:String>
<system:String x:Key="delete">Slett</system:String>
<system:String x:Key="edit">Rediger</system:String>

View file

@ -51,6 +51,7 @@
<!--Setting Hotkey-->
<system:String x:Key="hotkey">Sneltoets</system:String>
<system:String x:Key="flowlauncherHotkey">Flow Launcher Sneltoets</system:String>
<system:String x:Key="openResultModifiers">Open resultaatmodificatoren</system:String>
<system:String x:Key="customQueryHotkey">Custom Query Sneltoets</system:String>
<system:String x:Key="delete">Verwijder</system:String>
<system:String x:Key="edit">Bewerken</system:String>

View file

@ -51,6 +51,7 @@
<!--Setting Hotkey-->
<system:String x:Key="hotkey">Skrót klawiszowy</system:String>
<system:String x:Key="flowlauncherHotkey">Skrót klawiszowy Flow Launcher</system:String>
<system:String x:Key="openResultModifiers">Modyfikatory klawiszów otwierających wyniki</system:String>
<system:String x:Key="customQueryHotkey">Skrót klawiszowy niestandardowych zapytań</system:String>
<system:String x:Key="delete">Usuń</system:String>
<system:String x:Key="edit">Edytuj</system:String>

View file

@ -55,6 +55,7 @@
<!--Setting Hotkey-->
<system:String x:Key="hotkey">Atalho</system:String>
<system:String x:Key="flowlauncherHotkey">Atalho do Flow Launcher</system:String>
<system:String x:Key="openResultModifiers">Modificadores de resultado aberto</system:String>
<system:String x:Key="customQueryHotkey">Atalho de Consulta Personalizada</system:String>
<system:String x:Key="delete">Apagar</system:String>
<system:String x:Key="edit">Editar</system:String>

View file

@ -51,6 +51,7 @@
<!--Setting Hotkey-->
<system:String x:Key="hotkey">Горячие клавиши</system:String>
<system:String x:Key="flowlauncherHotkey">Горячая клавиша Flow Launcher</system:String>
<system:String x:Key="openResultModifiers">Модификаторы открытого результата</system:String>
<system:String x:Key="customQueryHotkey">Задаваемые горячие клавиши для запросов</system:String>
<system:String x:Key="delete">Удалить</system:String>
<system:String x:Key="edit">Изменить</system:String>

View file

@ -56,6 +56,7 @@
<!--Setting Hotkey-->
<system:String x:Key="hotkey">Klávesová skratka</system:String>
<system:String x:Key="flowlauncherHotkey">Klávesová skratka pre Flow Launcher</system:String>
<system:String x:Key="openResultModifiers">Otvorte modifikátory výsledkov</system:String>
<system:String x:Key="customQueryHotkey">Vlastná klávesová skratka pre dopyt</system:String>
<system:String x:Key="delete">Odstrániť</system:String>
<system:String x:Key="edit">Upraviť</system:String>

View file

@ -55,6 +55,7 @@
<!--Setting Hotkey-->
<system:String x:Key="hotkey">Prečica</system:String>
<system:String x:Key="flowlauncherHotkey">Flow Launcher prečica</system:String>
<system:String x:Key="openResultModifiers">Отворите модификаторе резултата</system:String>
<system:String x:Key="customQueryHotkey">prečica za ručno dodat upit</system:String>
<system:String x:Key="delete">Obriši</system:String>
<system:String x:Key="edit">Izmeni</system:String>

View file

@ -59,6 +59,7 @@
<!--Setting Hotkey-->
<system:String x:Key="hotkey">Kısayol Tuşu</system:String>
<system:String x:Key="flowlauncherHotkey">Flow Launcher Kısayolu</system:String>
<system:String x:Key="openResultModifiers">Açık Sonuç Değiştiricileri</system:String>
<system:String x:Key="customQueryHotkey">Özel Sorgu Kısayolları</system:String>
<system:String x:Key="delete">Sil</system:String>
<system:String x:Key="edit">Düzenle</system:String>

View file

@ -51,6 +51,7 @@
<!--Setting Hotkey-->
<system:String x:Key="hotkey">Гарячі клавіші</system:String>
<system:String x:Key="flowlauncherHotkey">Гаряча клавіша Flow Launcher</system:String>
<system:String x:Key="openResultModifiers">Відкриті модифікатори результатів</system:String>
<system:String x:Key="customQueryHotkey">Задані гарячі клавіші для запитів</system:String>
<system:String x:Key="delete">Видалити</system:String>
<system:String x:Key="edit">Змінити</system:String>

View file

@ -58,6 +58,7 @@
<!--设置,热键-->
<system:String x:Key="hotkey">热键</system:String>
<system:String x:Key="flowlauncherHotkey">Flow Launcher激活热键</system:String>
<system:String x:Key="openResultModifiers">开放结果修饰符</system:String>
<system:String x:Key="customQueryHotkey">自定义查询热键</system:String>
<system:String x:Key="delete">删除</system:String>
<system:String x:Key="edit">编辑</system:String>

View file

@ -51,6 +51,7 @@
<!--設置,熱鍵-->
<system:String x:Key="hotkey">熱鍵</system:String>
<system:String x:Key="flowlauncherHotkey">Flow Launcher 執行熱鍵</system:String>
<system:String x:Key="openResultModifiers">開放結果修飾符</system:String>
<system:String x:Key="customQueryHotkey">自定義熱鍵查詢</system:String>
<system:String x:Key="delete">刪除</system:String>
<system:String x:Key="edit">編輯</system:String>

View file

@ -48,15 +48,15 @@
<KeyBinding Key="Enter" Command="{Binding OpenResultCommand}"></KeyBinding>
<KeyBinding Key="Enter" Modifiers="Ctrl" Command="{Binding OpenResultCommand}"></KeyBinding>
<KeyBinding Key="Enter" Modifiers="Alt" Command="{Binding OpenResultCommand}"></KeyBinding>
<KeyBinding Key="D1" Modifiers="Alt" Command="{Binding OpenResultCommand}" CommandParameter="0"></KeyBinding>
<KeyBinding Key="D2" Modifiers="Alt" Command="{Binding OpenResultCommand}" CommandParameter="1"></KeyBinding>
<KeyBinding Key="D3" Modifiers="Alt" Command="{Binding OpenResultCommand}" CommandParameter="2"></KeyBinding>
<KeyBinding Key="D4" Modifiers="Alt" Command="{Binding OpenResultCommand}" CommandParameter="3"></KeyBinding>
<KeyBinding Key="D5" Modifiers="Alt" Command="{Binding OpenResultCommand}" CommandParameter="4"></KeyBinding>
<KeyBinding Key="D6" Modifiers="Alt" Command="{Binding OpenResultCommand}" CommandParameter="5"></KeyBinding>
<KeyBinding Key="D7" Modifiers="Alt" Command="{Binding OpenResultCommand}" CommandParameter="6"></KeyBinding>
<KeyBinding Key="D8" Modifiers="Alt" Command="{Binding OpenResultCommand}" CommandParameter="7"></KeyBinding>
<KeyBinding Key="D9" Modifiers="Alt" Command="{Binding OpenResultCommand}" CommandParameter="8"></KeyBinding>
<KeyBinding Key="D1" Modifiers="{Binding OpenResultCommandModifiers}" Command="{Binding OpenResultCommand}" CommandParameter="0"></KeyBinding>
<KeyBinding Key="D2" Modifiers="{Binding OpenResultCommandModifiers}" Command="{Binding OpenResultCommand}" CommandParameter="1"></KeyBinding>
<KeyBinding Key="D3" Modifiers="{Binding OpenResultCommandModifiers}" Command="{Binding OpenResultCommand}" CommandParameter="2"></KeyBinding>
<KeyBinding Key="D4" Modifiers="{Binding OpenResultCommandModifiers}" Command="{Binding OpenResultCommand}" CommandParameter="3"></KeyBinding>
<KeyBinding Key="D5" Modifiers="{Binding OpenResultCommandModifiers}" Command="{Binding OpenResultCommand}" CommandParameter="4"></KeyBinding>
<KeyBinding Key="D6" Modifiers="{Binding OpenResultCommandModifiers}" Command="{Binding OpenResultCommand}" CommandParameter="5"></KeyBinding>
<KeyBinding Key="D7" Modifiers="{Binding OpenResultCommandModifiers}" Command="{Binding OpenResultCommand}" CommandParameter="6"></KeyBinding>
<KeyBinding Key="D8" Modifiers="{Binding OpenResultCommandModifiers}" Command="{Binding OpenResultCommand}" CommandParameter="7"></KeyBinding>
<KeyBinding Key="D9" Modifiers="{Binding OpenResultCommandModifiers}" Command="{Binding OpenResultCommand}" CommandParameter="8"></KeyBinding>
</Window.InputBindings>
<Border Style="{DynamicResource WindowBorderStyle}" MouseDown="OnMouseDown" >
<StackPanel Orientation="Vertical">

View file

@ -33,6 +33,7 @@
Cursor="Hand" UseLayoutRounding="False">
<Grid.Resources>
<converter:HighlightTextConverter x:Key="HighlightTextConverter"/>
<converter:OrdinalConverter x:Key="OrdinalConverter" />
</Grid.Resources>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="32" />
@ -46,6 +47,8 @@
<RowDefinition />
<RowDefinition Height="Auto" x:Name="SubTitleRowDefinition" />
</Grid.RowDefinitions>
<TextBlock Margin="0 5 5 0" Text="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=ListBoxItem},
Converter={StaticResource ResourceKey=OrdinalConverter}, StringFormat={}Mod+{0}}" Style="{DynamicResource ItemTitleStyle}" HorizontalAlignment="Right" Opacity="0.3" />
<TextBlock Style="{DynamicResource ItemTitleStyle}" DockPanel.Dock="Left"
VerticalAlignment="Center" ToolTip="{Binding Result.Title}" x:Name="Title"
Text="{Binding Result.Title}">

View file

@ -287,9 +287,10 @@
<TabItem Header="{DynamicResource hotkey}">
<Grid Margin="10">
<Grid.RowDefinitions>
<RowDefinition Height="35" />
<RowDefinition Height="35" />
<RowDefinition Height="20" />
<RowDefinition Height="400" />
<RowDefinition Height="365" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<StackPanel Grid.Row="0" Orientation="Horizontal" VerticalAlignment="Center" Height="24"
@ -298,11 +299,18 @@
<flowlauncher:HotkeyControl x:Name="HotkeyControl" HotkeyChanged="OnHotkeyChanged"
Loaded="OnHotkeyControlLoaded" />
</StackPanel>
<TextBlock VerticalAlignment="Center" Grid.Row="1" Margin="0,3,10,2"
<StackPanel Grid.Row="1" Orientation="Horizontal" VerticalAlignment="Center" Height="24"
Margin="0,4,0,3">
<TextBlock VerticalAlignment="Center" Margin="0 0 10 0" Text="{DynamicResource openResultModifiers}" />
<ComboBox Margin="0 0 0 0" Width="120"
ItemsSource="{Binding OpenResultModifiersList}"
SelectedItem="{Binding Settings.OpenResultModifiers}" />
</StackPanel>
<TextBlock VerticalAlignment="Center" Grid.Row="2" Margin="0,3,10,2"
Text="{DynamicResource customQueryHotkey}" />
<ListView ItemsSource="{Binding Settings.CustomPluginHotkeys}"
SelectedItem="{Binding SelectedCustomPluginHotkey}"
Margin="0 5 0 0" Grid.Row="2">
Margin="0 5 0 0" Grid.Row="3">
<ListView.View>
<GridView>
<GridViewColumn Header="{DynamicResource hotkey}" Width="180">
@ -322,7 +330,7 @@
</GridView>
</ListView.View>
</ListView>
<StackPanel Grid.Row="3" HorizontalAlignment="Right" VerticalAlignment="Bottom"
<StackPanel Grid.Row="4" HorizontalAlignment="Right" VerticalAlignment="Bottom"
Orientation="Horizontal" Height="40" Width="360">
<Button Click="OnDeleteCustomHotkeyClick" Width="100"
Margin="10" Content="{DynamicResource delete}" />

View file

@ -26,6 +26,8 @@ namespace Flow.Launcher.ViewModel
{
#region Private Fields
private const string DefaultOpenResultModifiers = "Alt";
private bool _isQueryRunning;
private Query _lastQuery;
private string _queryTextBeforeLeaveResults;
@ -74,6 +76,7 @@ namespace Flow.Launcher.ViewModel
SetHotkey(_settings.Hotkey, OnHotkey);
SetCustomPluginHotkey();
SetOpenResultModifiers();
}
private void RegisterResultsUpdatedEvent()
@ -277,6 +280,8 @@ namespace Flow.Launcher.ViewModel
public ICommand LoadHistoryCommand { get; set; }
public ICommand OpenResultCommand { get; set; }
public string OpenResultCommandModifiers { get; private set; }
#endregion
public void Query()
@ -594,6 +599,11 @@ namespace Flow.Launcher.ViewModel
}
}
private void SetOpenResultModifiers()
{
OpenResultCommandModifiers = _settings.OpenResultModifiers ?? DefaultOpenResultModifiers;
}
private void OnHotkey(object sender, HotkeyEventArgs e)
{
if (!ShouldIgnoreHotkeys())

View file

@ -139,6 +139,7 @@ namespace Flow.Launcher.ViewModel
}
}
public List<string> OpenResultModifiersList => new List<string> { "Alt", "Ctrl", "Ctrl+Alt" };
private Internationalization _translater => InternationalizationManager.Instance;
public List<Language> Languages => _translater.LoadAvailableLanguages();
public IEnumerable<int> MaxResultsRange => Enumerable.Range(2, 16);