mirror of
https://github.com/Flow-Launcher/Flow.Launcher.git
synced 2026-03-11 08:54:32 +00:00
add method comments
This commit is contained in:
parent
25037e3f5f
commit
55673cdb4b
3 changed files with 45 additions and 10 deletions
|
|
@ -68,11 +68,20 @@ namespace Flow.Launcher.Plugin
|
|||
public string AutoCompleteText { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The image to be displayed for the result.
|
||||
/// Path or URI to the icon image for this result.
|
||||
/// Updates <IcoPathAbsolute/> appropriately when set.
|
||||
/// </summary>
|
||||
/// <value>Can be a local file path or a URL.</value>
|
||||
/// <remarks>
|
||||
/// GlyphInfo is prioritized if not null</remarks>
|
||||
/// Preferred usage: provide a path relative to the plugin directory (for example: "Images\icon.png").
|
||||
/// Because <see cref="IcoPath"/> is serialized, using relative paths keeps the icon reference portable
|
||||
/// when Flow is moved.
|
||||
///
|
||||
/// Accepted formats:
|
||||
/// - Relative file paths (resolved against <see cref="PluginDirectory"/> into <see cref="IcoPathAbsolute"/>)
|
||||
/// - Absolute file paths (left as-is)
|
||||
/// - HTTP/HTTPS URLs (left as-is)
|
||||
/// - Data URIs (left as-is)
|
||||
/// </remarks>
|
||||
public string IcoPath
|
||||
{
|
||||
get => _icoPath;
|
||||
|
|
@ -98,7 +107,10 @@ namespace Flow.Launcher.Plugin
|
|||
}
|
||||
|
||||
/// <summary>
|
||||
/// TODO COMMENT
|
||||
/// Absolute path or URI which is used to load and display the result icon for Flow.
|
||||
/// This is populated by the <see cref="IcoPath"/> setter.
|
||||
/// If a relative path was provided to <see cref="IcoPath"/>, this property will contain the resolved
|
||||
/// absolute local path after combining with <see cref="PluginDirectory"/>.
|
||||
/// </summary>
|
||||
public string IcoPathAbsolute => _icoPathAbsolute;
|
||||
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
using System;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text.Json.Serialization;
|
||||
|
|
@ -20,6 +20,11 @@ namespace Flow.Launcher.Storage
|
|||
|
||||
private readonly int _maxHistory = 300;
|
||||
|
||||
/// <summary>
|
||||
/// Migrate legacy history data (stored in <see cref="Items"/>) into the new
|
||||
/// <see cref="LastOpenedHistoryResult"/> format and append them to
|
||||
/// <see cref="LastOpenedHistoryItems"/>.
|
||||
/// </summary>
|
||||
public void PopulateHistoryFromLegacyHistory()
|
||||
{
|
||||
if (Items.Count == 0) return;
|
||||
|
|
@ -78,6 +83,10 @@ namespace Flow.Launcher.Storage
|
|||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Attempts to find an existing <see cref="LastOpenedHistoryResult"/> in <see cref="LastOpenedHistoryItems"/>
|
||||
/// that is considered equal to the supplied <paramref name="result"/>.
|
||||
/// </summary>
|
||||
private bool TryGetLastOpenedHistoryResult(Result result, out LastOpenedHistoryResult historyItem)
|
||||
{
|
||||
historyItem = LastOpenedHistoryItems.FirstOrDefault(x => x.Equals(result));
|
||||
|
|
@ -85,12 +94,15 @@ namespace Flow.Launcher.Storage
|
|||
}
|
||||
|
||||
/// <summary>
|
||||
/// Refresh stored PluginDirectory (and optionally normalize relative ico paths)
|
||||
/// using current plugin metadata. Call this after plugins are loaded/initialized.
|
||||
/// Flow uses IcoPathAbsolute property to display result the icons. This refreshes the IcoPathAbsolute
|
||||
/// property using current plugin metadata by updating the PluginDirectory property, which in turn also
|
||||
/// updates IcoPath. This keeps the saved icon paths of results updated correctly if flow is moved around.
|
||||
/// </summary>
|
||||
/// <remarks> Call this after plugins are loaded/initialized.</remarks>
|
||||
public void UpdateIcoPathAbsolute()
|
||||
{
|
||||
if (LastOpenedHistoryItems.Count == 0) return;
|
||||
if (LastOpenedHistoryItems.Count == 0)
|
||||
return;
|
||||
|
||||
foreach (var item in LastOpenedHistoryItems)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1372,12 +1372,23 @@ namespace Flow.Launcher.ViewModel
|
|||
}
|
||||
|
||||
/// <summary>
|
||||
/// TODO COMMENT- Requires the plugins to have initialized first because
|
||||
/// it needs the plugin directory paths for initialization
|
||||
/// Refreshes the last-opened history storage by migrating legacy entries and
|
||||
/// updating stored icon paths to their resolved (absolute) locations.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Calls <see cref="History.UpdateIcoPathAbsolute"/> to refresh absolute icon
|
||||
/// paths on the migrated/saved history entries by updating each item's
|
||||
/// <c>PluginDirectory</c> (which in turn resolves <c>IcoPathAbsolute</c>).
|
||||
///
|
||||
/// Important:
|
||||
/// - Plugins must be initialized (their metadata and <c>PluginDirectory</c> set)
|
||||
/// before calling this method; otherwise icon resolution cannot be performed.
|
||||
/// </remarks>
|
||||
internal void RefreshLastOpenedHistoryResults()
|
||||
{
|
||||
// TODO: remove after release v2.3.0
|
||||
_history.PopulateHistoryFromLegacyHistory();
|
||||
|
||||
_history.UpdateIcoPathAbsolute();
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue