mirror of
https://github.com/Flow-Launcher/Flow.Launcher.git
synced 2026-03-11 08:54:32 +00:00
revert QueryHistoryItems property
This commit is contained in:
parent
6b6a9a9935
commit
8d7fa1d397
2 changed files with 16 additions and 42 deletions
|
|
@ -259,7 +259,7 @@ namespace Flow.Launcher
|
|||
|
||||
await PluginManager.InitializePluginsAsync(_mainVM);
|
||||
|
||||
_mainVM.InitializeQueryHistoryItems();
|
||||
_mainVM.RefreshLastOpenedHistoryResult();
|
||||
|
||||
// Refresh home page after plugins are initialized because users may open main window during plugin initialization
|
||||
// And home page is created without full plugin list
|
||||
|
|
|
|||
|
|
@ -42,33 +42,11 @@ namespace Flow.Launcher.ViewModel
|
|||
private string _queryTextBeforeLeaveResults;
|
||||
private string _ignoredQueryText; // Used to ignore query text change when switching between context menu and query results
|
||||
|
||||
private int QueryHistoryItemsInitialized = 0;
|
||||
private FlowLauncherJsonStorage<History> _historyItemsStorage;
|
||||
private History _queryHistoryItems;
|
||||
private History QueryHistoryItems
|
||||
{
|
||||
get
|
||||
{
|
||||
if (QueryHistoryItemsInitialized == 0)
|
||||
{
|
||||
App.API.LogException(ClassName,
|
||||
"QueryHistoryItems is not initialized. Call InitializeQueryHistoryItems() before accessing QueryHistoryItems.",
|
||||
new InvalidOperationException(),
|
||||
"QueryHistoryItems");
|
||||
throw new InvalidOperationException("QueryHistoryItems is not initialized. Call InitializeQueryHistoryItems() before accessing QueryHistoryItems.");
|
||||
}
|
||||
|
||||
return _queryHistoryItems;
|
||||
}
|
||||
set
|
||||
{
|
||||
_queryHistoryItems = value;
|
||||
}
|
||||
}
|
||||
|
||||
private readonly FlowLauncherJsonStorage<History> _historyItemsStorage;
|
||||
private readonly History _history;
|
||||
private int lastHistoryIndex = 1;
|
||||
private readonly FlowLauncherJsonStorage<UserSelectedRecord> _userSelectedRecordStorage;
|
||||
private readonly FlowLauncherJsonStorageTopMostRecord _topMostRecord;
|
||||
private int lastHistoryIndex = 1;
|
||||
private readonly UserSelectedRecord _userSelectedRecord;
|
||||
|
||||
private CancellationTokenSource _updateSource; // Used to cancel old query flows
|
||||
|
|
@ -172,9 +150,10 @@ namespace Flow.Launcher.ViewModel
|
|||
};
|
||||
|
||||
_historyItemsStorage = new FlowLauncherJsonStorage<History>();
|
||||
_history = _historyItemsStorage.Load();
|
||||
_userSelectedRecordStorage = new FlowLauncherJsonStorage<UserSelectedRecord>();
|
||||
_topMostRecord = new FlowLauncherJsonStorageTopMostRecord();
|
||||
_userSelectedRecord = _userSelectedRecordStorage.Load();
|
||||
_topMostRecord = new FlowLauncherJsonStorageTopMostRecord();
|
||||
|
||||
ContextMenu = new ResultsViewModel(Settings, this)
|
||||
{
|
||||
|
|
@ -373,7 +352,7 @@ namespace Flow.Launcher.ViewModel
|
|||
if (QueryResultsSelected())
|
||||
{
|
||||
SelectedResults = History;
|
||||
History.SelectedIndex = QueryHistoryItems.LastOpenedHistoryItems.Count - 1;
|
||||
History.SelectedIndex = _history.LastOpenedHistoryItems.Count - 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
@ -401,7 +380,7 @@ namespace Flow.Launcher.ViewModel
|
|||
[RelayCommand]
|
||||
public void ReverseHistory()
|
||||
{
|
||||
var historyItems = QueryHistoryItems.LastOpenedHistoryItems;
|
||||
var historyItems = _history.LastOpenedHistoryItems;
|
||||
if (historyItems.Count > 0)
|
||||
{
|
||||
ChangeQueryText(historyItems[^lastHistoryIndex].Query);
|
||||
|
|
@ -415,7 +394,7 @@ namespace Flow.Launcher.ViewModel
|
|||
[RelayCommand]
|
||||
public void ForwardHistory()
|
||||
{
|
||||
var historyItems = QueryHistoryItems.LastOpenedHistoryItems;
|
||||
var historyItems = _history.LastOpenedHistoryItems;
|
||||
if (historyItems.Count > 0)
|
||||
{
|
||||
ChangeQueryText(historyItems[^lastHistoryIndex].Query);
|
||||
|
|
@ -557,7 +536,7 @@ namespace Flow.Launcher.ViewModel
|
|||
// Add item to history only if it is from results but not context menu or history
|
||||
if (queryResultsSelected)
|
||||
{
|
||||
QueryHistoryItems.Add(result);
|
||||
_history.Add(result);
|
||||
lastHistoryIndex = 1;
|
||||
}
|
||||
}
|
||||
|
|
@ -633,7 +612,7 @@ namespace Flow.Launcher.ViewModel
|
|||
[RelayCommand]
|
||||
private void SelectPrevItem()
|
||||
{
|
||||
var historyItems = QueryHistoryItems.LastOpenedHistoryItems;
|
||||
var historyItems = _history.LastOpenedHistoryItems;
|
||||
if (QueryResultsSelected() // Results selected
|
||||
&& string.IsNullOrEmpty(QueryText) // No input
|
||||
&& Results.Visibility != Visibility.Visible // No items in result list, e.g. when home page is off and no query text is entered, therefore the view is collapsed.
|
||||
|
|
@ -1319,7 +1298,7 @@ namespace Flow.Launcher.ViewModel
|
|||
var query = QueryText.ToLower().Trim();
|
||||
History.Clear();
|
||||
|
||||
var results = GetHistoryItems(QueryHistoryItems.LastOpenedHistoryItems);
|
||||
var results = GetHistoryItems(_history.LastOpenedHistoryItems);
|
||||
|
||||
if (!string.IsNullOrEmpty(query))
|
||||
{
|
||||
|
|
@ -1383,15 +1362,10 @@ namespace Flow.Launcher.ViewModel
|
|||
/// TODO COMMENT- Requires the plugins to have initialized first because
|
||||
/// it needs the plugin directory paths for initialization
|
||||
/// </summary>
|
||||
public void InitializeQueryHistoryItems()
|
||||
internal void RefreshLastOpenedHistoryResult()
|
||||
{
|
||||
// ensure single-run even if called from multiple threads
|
||||
if (Interlocked.Exchange(ref QueryHistoryItemsInitialized, 1) == 1)
|
||||
return;
|
||||
|
||||
QueryHistoryItems = _historyItemsStorage.Load();
|
||||
QueryHistoryItems.PopulateHistoryFromLegacyHistory();
|
||||
QueryHistoryItems.UpdateIcoAbsoluteFullPath();
|
||||
_history.PopulateHistoryFromLegacyHistory();
|
||||
_history.UpdateIcoAbsoluteFullPath();
|
||||
}
|
||||
|
||||
private async Task QueryResultsAsync(bool searchDelay, bool isReQuery = false, bool reSelect = true)
|
||||
|
|
@ -1621,7 +1595,7 @@ namespace Flow.Launcher.ViewModel
|
|||
void QueryHistoryTask(CancellationToken token)
|
||||
{
|
||||
// Select last history results and revert its order to make sure last history results are on top
|
||||
var historyItems = QueryHistoryItems.LastOpenedHistoryItems.TakeLast(Settings.MaxHistoryResultsToShowForHomePage).Reverse();
|
||||
var historyItems = _history.LastOpenedHistoryItems.TakeLast(Settings.MaxHistoryResultsToShowForHomePage).Reverse();
|
||||
|
||||
var results = GetHistoryItems(historyItems);
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue