private void OpenResultsEvent(object index, bool isMouseClick) { var results = SelectedResults; if (index != null) { // Using InvariantCulture since this is internal results.SelectedIndex = int.Parse(index.ToString(), CultureInfo.InvariantCulture); } if (results.SelectedItem != null) { bool executeResultRequired = false; if (isMouseClick) { executeResultRequired = true; } else { // If there is a context button selected fire the action for that button instead, and the main command will not be executed executeResultRequired = !results.SelectedItem.ExecuteSelectedContextButton(); } if (executeResultRequired) { var result = results.SelectedItem.Result; // SelectedItem returns null if selection is empty. if (result != null && result.Action != null) { MainWindowVisibility = Visibility.Collapsed; Application.Current.Dispatcher.Invoke(() => { result.Action(new ActionContext { SpecialKeyState = KeyboardHelper.CheckModifiers(), }); }); if (SelectedIsFromQueryResults()) { // todo: revert _userSelectedRecordStorage.Save() and _historyItemsStorage.Save() after https://github.com/microsoft/PowerToys/issues/9164 is done _userSelectedRecord.Add(result); _userSelectedRecordStorage.Save(); _history.Add(result.OriginQuery.RawQuery); _historyItemsStorage.Save(); } else { SelectedResults = Results; } } } } }
public void Handle(QueryHistoryEvent message) { QueryHistory.Add(message); while (QueryHistory.Count > _globalOptions.QueryHistoryMaxItems) { QueryHistory.RemoveAt(0); } SaveHistoryFile(message); }
private void OpenResultsEvent(object index, bool isMouseClick) { var results = SelectedResults; if (index != null) { // Using InvariantCulture since this is internal results.SelectedIndex = int.Parse(index.ToString(), CultureInfo.InvariantCulture); } if (results.SelectedItem != null) { bool executeResultRequired = false; if (isMouseClick) { executeResultRequired = true; } else { // If there is a context button selected fire the action for that button instead, and the main command will not be executed executeResultRequired = !results.SelectedItem.ExecuteSelectedContextButton(); } if (executeResultRequired) { var result = results.SelectedItem.Result; // SelectedItem returns null if selection is empty. if (result != null && result.Action != null) { Hide(); Application.Current.Dispatcher.Invoke(() => { result.Action(new ActionContext { SpecialKeyState = KeyboardHelper.CheckModifiers(), }); }); if (SelectedIsFromQueryResults()) { _userSelectedRecord.Add(result); _history.Add(result.OriginQuery.RawQuery); } else { SelectedResults = Results; } } } } }
public static void AddQueryHistory(string uid) { if (!QueryHistory.Contains(uid)) { MainWindow.ComboBoxUserId.Items.Add(uid); QueryHistory.Add(uid); if (QueryHistory.Count > MAX_QUERY_HISTORY_COUNT) { MainWindow.ComboBoxUserId.Items.RemoveAt(0); QueryHistory.RemoveAt(0); } } }
public async Task Handle(QueryHistoryEvent message) { // don't add a history record if the query text is empty if (string.IsNullOrWhiteSpace(message.QueryText)) { Log.Debug("{class} {method} {message}", nameof(GlobalQueryHistory), "Handle<QueryHistoryEvent>", "Skipping saving Query History as QueryText is empty"); return; } QueryHistory.Add(message); while (QueryHistory.Count > _globalOptions.QueryHistoryMaxItems) { QueryHistory.RemoveAt(0); } await SaveHistoryFileAsync(message); }
private void InitializeKeyCommands() { IgnoreCommand = new RelayCommand(_ => { }); EscCommand = new RelayCommand(_ => { if (!SelectedIsFromQueryResults()) { SelectedResults = Results; } else { MainWindowVisibility = Visibility.Collapsed; } }); SelectNextItemCommand = new RelayCommand(_ => { SelectedResults.SelectNextResult(); }); SelectPrevItemCommand = new RelayCommand(_ => { SelectedResults.SelectPrevResult(); }); SelectNextTabItemCommand = new RelayCommand(_ => { SelectedResults.SelectNextTabItem(); }); SelectPrevTabItemCommand = new RelayCommand(_ => { SelectedResults.SelectPrevTabItem(); }); SelectNextContextMenuItemCommand = new RelayCommand(_ => { SelectedResults.SelectNextContextMenuItem(); }); SelectPreviousContextMenuItemCommand = new RelayCommand(_ => { SelectedResults.SelectPreviousContextMenuItem(); }); SelectNextPageCommand = new RelayCommand(_ => { SelectedResults.SelectNextPage(); }); SelectPrevPageCommand = new RelayCommand(_ => { SelectedResults.SelectPrevPage(); }); SelectFirstResultCommand = new RelayCommand(_ => SelectedResults.SelectFirstResult()); StartHelpCommand = new RelayCommand(_ => { Process.Start("http://doc.wox.one/"); }); OpenResultCommand = new RelayCommand(index => { var results = SelectedResults; if (index != null) { results.SelectedIndex = int.Parse(index.ToString(), CultureInfo.InvariantCulture); } if (results.SelectedItem != null) { //If there is a context button selected fire the action for that button before the main command. bool didExecuteContextButton = results.SelectedItem.ExecuteSelectedContextButton(); if (!didExecuteContextButton) { var result = results.SelectedItem.Result; if (result != null && result.Action != null) // SelectedItem returns null if selection is empty. { MainWindowVisibility = Visibility.Collapsed; Application.Current.Dispatcher.Invoke(() => { result.Action(new ActionContext { SpecialKeyState = KeyboardHelper.CheckModifiers() }); }); if (SelectedIsFromQueryResults()) { _userSelectedRecord.Add(result); _history.Add(result.OriginQuery.RawQuery); } else { SelectedResults = Results; } } } } }); LoadContextMenuCommand = new RelayCommand(_ => { if (SelectedIsFromQueryResults()) { SelectedResults = ContextMenu; } else { SelectedResults = Results; } }); LoadHistoryCommand = new RelayCommand(_ => { if (SelectedIsFromQueryResults()) { SelectedResults = History; History.SelectedIndex = _history.Items.Count - 1; } else { SelectedResults = Results; } }); ClearQueryCommand = new RelayCommand(_ => { if (!string.IsNullOrEmpty(QueryText)) { ChangeQueryText(string.Empty, true); //Push Event to UI SystemQuery has changed OnPropertyChanged(nameof(SystemQueryText)); } }); }
private void InitializeKeyCommands() { EscCommand = new RelayCommand(_ => { if (ContextMenuVisibility.IsVisible()) { ContextMenuVisibility = Visibility.Collapsed; } else { MainWindowVisibility = Visibility.Collapsed; } }); SelectNextItemCommand = new RelayCommand(_ => { if (ContextMenuVisibility.IsVisible()) { ContextMenu.SelectNextResult(); } else { Results.SelectNextResult(); } }); SelectPrevItemCommand = new RelayCommand(_ => { if (ContextMenuVisibility.IsVisible()) { ContextMenu.SelectPrevResult(); } else { Results.SelectPrevResult(); } }); /** * DisplayNextQueryCommand = new RelayCommand(_ => * { * var nextQuery = _queryHistory.Next(); * DisplayQueryHistory(nextQuery); * }); * * DisplayPrevQueryCommand = new RelayCommand(_ => * { * var prev = _queryHistory.Previous(); * DisplayQueryHistory(prev); * }); **/ SelectNextPageCommand = new RelayCommand(_ => { Results.SelectNextPage(); }); SelectPrevPageCommand = new RelayCommand(_ => { Results.SelectPrevPage(); }); StartHelpCommand = new RelayCommand(_ => { Process.Start("http://doc.getwox.com"); }); OpenResultCommand = new RelayCommand(index => { var results = ContextMenuVisibility.IsVisible() ? ContextMenu : Results; if (index != null) { results.SelectedIndex = int.Parse(index.ToString()); } var result = results.SelectedItem?.RawResult; if (result != null) // SelectedItem returns null if selection is empty. { bool hideWindow = result.Action != null && result.Action(new ActionContext { SpecialKeyState = GlobalHotkey.Instance.CheckModifiers() }); if (hideWindow) { MainWindowVisibility = Visibility.Collapsed; } if (!ContextMenuVisibility.IsVisible()) { _userSelectedRecord.Add(result); _queryHistory.Add(result.OriginQuery.RawQuery); } } }); LoadContextMenuCommand = new RelayCommand(_ => { if (!ContextMenuVisibility.IsVisible()) { var result = Results.SelectedItem?.RawResult; if (result != null) // SelectedItem returns null if selection is empty. { var id = result.PluginID; var menus = PluginManager.GetContextMenusForPlugin(result); menus.Add(ContextMenuTopMost(result)); menus.Add(ContextMenuPluginInfo(id)); ContextMenu.Clear(); Task.Run(() => { ContextMenu.AddResults(menus, id); }, _updateToken); ContextMenuVisibility = Visibility.Visible; } } else { ContextMenuVisibility = Visibility.Collapsed; } }); }
private void InitializeKeyCommands() { EscCommand = new RelayCommand(_ => { if (ContextMenuVisibility.IsVisible()) { ContextMenuVisibility = Visibility.Collapsed; } else { MainWindowVisibility = Visibility.Collapsed; } }); SelectNextItemCommand = new RelayCommand(_ => { if (ContextMenuVisibility.IsVisible()) { ContextMenu.SelectNextResult(); } else { Results.SelectNextResult(); } }); SelectPrevItemCommand = new RelayCommand(_ => { if (ContextMenuVisibility.IsVisible()) { ContextMenu.SelectPrevResult(); } else { Results.SelectPrevResult(); } }); DisplayNextQueryCommand = new RelayCommand(_ => { var nextQuery = _queryHistory.Next(); DisplayQueryHistory(nextQuery); }); DisplayPrevQueryCommand = new RelayCommand(_ => { var prev = _queryHistory.Previous(); DisplayQueryHistory(prev); }); SelectNextPageCommand = new RelayCommand(_ => { Results.SelectNextPage(); }); SelectPrevPageCommand = new RelayCommand(_ => { Results.SelectPrevPage(); }); StartHelpCommand = new RelayCommand(_ => { Process.Start("http://doc.getwox.com"); }); OpenResultCommand = new RelayCommand(o => { var results = ContextMenuVisibility.IsVisible() ? ContextMenu : Results; if (o != null) { var index = int.Parse(o.ToString()); results.SelectResult(index); } var result = results.SelectedResult.RawResult; bool hideWindow = result.Action(new ActionContext { SpecialKeyState = GlobalHotkey.Instance.CheckModifiers() }); if (hideWindow) { MainWindowVisibility = Visibility.Collapsed; } if (!ContextMenuVisibility.IsVisible()) { _userSelectedRecord.Add(result); _queryHistory.Add(result.OriginQuery.RawQuery); } }); LoadContextMenuCommand = new RelayCommand(_ => { if (!ContextMenuVisibility.IsVisible()) { var result = Results.SelectedResult.RawResult; var id = result.PluginID; var menus = PluginManager.GetContextMenusForPlugin(result); menus.Add(ContextMenuTopMost(result)); menus.Add(ContextMenuPluginInfo(id)); ContextMenu.Clear(); ContextMenu.AddResults(menus, id); ContextMenuVisibility = Visibility.Visible; } else { ContextMenuVisibility = Visibility.Collapsed; } }); BackCommand = new RelayCommand(_ => { ListeningKeyPressed?.Invoke(this, new ListeningKeyPressedEventArgs(_ as KeyEventArgs)); }); }