public ResultViewModel(Result result) { if (result != null) { RawResult = result; OpenResultListBoxItemCommand = new RelayCommand(_ => { bool hideWindow = result.Action(new ActionContext { SpecialKeyState = GlobalHotkey.Instance.CheckModifiers() }); if (hideWindow) { App.API.HideApp(); UserSelectedRecordStorage.Instance.Add(RawResult); QueryHistoryStorage.Instance.Add(RawResult.OriginQuery.RawQuery); } }); OpenContextMenuItemCommand = new RelayCommand(_ => { var actions = PluginManager.GetContextMenusForPlugin(result); var pluginMetaData = PluginManager.GetPluginForId(result.PluginID).Metadata; actions.ForEach(o => { o.PluginDirectory = pluginMetaData.PluginDirectory; o.PluginID = result.PluginID; o.OriginQuery = result.OriginQuery; }); actions.Add(GetTopMostContextMenu(result)); App.API.ShowContextMenu(pluginMetaData, actions); }); } }
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 (!SelectedIsFromQueryResults()) { SelectedResults = Results; } else { MainWindowVisibility = Visibility.Collapsed; } }); SelectNextItemCommand = new RelayCommand(_ => { SelectedResults.SelectNextResult(); }); SelectPrevItemCommand = new RelayCommand(_ => { SelectedResults.SelectPrevResult(); }); SelectNextPageCommand = new RelayCommand(_ => { SelectedResults.SelectNextPage(); }); SelectPrevPageCommand = new RelayCommand(_ => { SelectedResults.SelectPrevPage(); }); 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()); } var result = results.SelectedItem?.Result; 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 (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; } }); }
private void InitializeKeyCommands() { EscCommand = new RelayCommand(_ => { if (!ResultsSelected()) { SelectedResults = Results; } else { MainWindowVisibility = Visibility.Collapsed; } }); SelectNextItemCommand = new RelayCommand(_ => { SelectedResults.SelectNextResult(); }); SelectPrevItemCommand = new RelayCommand(_ => { SelectedResults.SelectPrevResult(); }); SelectNextPageCommand = new RelayCommand(_ => { SelectedResults.SelectNextPage(); }); SelectPrevPageCommand = new RelayCommand(_ => { SelectedResults.SelectPrevPage(); }); StartHelpCommand = new RelayCommand(_ => { Process.Start("http://doc.getwox.com"); }); OpenResultCommand = new RelayCommand(index => { var results = SelectedResults; if (index != null) { results.SelectedIndex = int.Parse(index.ToString()); } var result = results.SelectedItem?.Result; 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 (ResultsSelected()) { _userSelectedRecord.Add(result); _history.Add(result.OriginQuery.RawQuery); } } }); LoadContextMenuCommand = new RelayCommand(_ => { if (ResultsSelected()) { SelectedResults = ContextMenu; } else { SelectedResults = Results; } }); LoadHistoryCommand = new RelayCommand(_ => { if (ResultsSelected()) { SelectedResults = History; History.SelectedIndex = _history.Items.Count - 1; } else { SelectedResults = Results; } }); }
private void InitializeKeyCommands() { EscCommand = new RelayCommand(_ => { if (IsContextMenuVisible) { BackToSearchMode(); } else { IsVisible = false; } }); SelectNextItemCommand = new RelayCommand(o => { if (IsContextMenuVisible) { ContextMenu.SelectNextResult(); } else { Results.SelectNextResult(); } }); SelectPrevItemCommand = new RelayCommand(_ => { if (IsContextMenuVisible) { ContextMenu.SelectPrevResult(); } else { Results.SelectPrevResult(); } }); CtrlOCommand = new RelayCommand(_ => { if (IsContextMenuVisible) { BackToSearchMode(); } else { ShowContextMenu(Results.SelectedResult.RawResult); } }); DisplayNextQueryCommand = new RelayCommand(_ => { var nextQuery = QueryHistoryStorage.Instance.Next(); DisplayQueryHistory(nextQuery); }); DisplayPrevQueryCommand = new RelayCommand(_ => { var prev = QueryHistoryStorage.Instance.Previous(); DisplayQueryHistory(prev); }); SelectNextPageCommand = new RelayCommand(_ => { Results.SelectNextPage(); }); SelectPrevPageCommand = new RelayCommand(_ => { Results.SelectPrevPage(); }); StartHelpCommand = new RelayCommand(_ => { Process.Start("http://doc.getwox.com"); }); ShiftEnterCommand = new RelayCommand(_ => { if (!IsContextMenuVisible && Results.SelectedResult != null) { ShowContextMenu(Results.SelectedResult.RawResult); } }); OpenResultCommand = new RelayCommand(o => { if (o != null) { var index = int.Parse(o.ToString()); Results.SelectResult(index); } Results.SelectedResult?.OpenResultListBoxItemCommand.Execute(null); }); BackCommand = new RelayCommand(_ => { ListeningKeyPressed?.Invoke(this, new ListeningKeyPressedEventArgs(_ as KeyEventArgs)); }); }