Skip to content

Recent is one list everywhere; per-app recent is its own submenu - #7

Open
combwizard wants to merge 1 commit into
mainfrom
recent-overall-list
Open

combwizard wants to merge 1 commit into
mainfrom
recent-overall-list

Conversation

@combwizard

Copy link
Copy Markdown
Owner

Problem

The Recent submenu showed different folders over Explorer and over Directory Opus. It ranked folders with a boost for the app the menu was opened over, keyed by process name, so explorer and dopus each pushed their own folders into the top 15.

Opus also recorded places inside archives, such as Downloads\solidcraft-windows-x64-portable.zip\solidcraft-0.40.0-rc.3-windows-x64-portable, and these showed in Recent.

Fix

Recent is one list. FrecencyStore.Top ranks by overall use only, so the list is the same in every app and over the tray icon.

The per-app ranking is its own submenu, Recent in , under Recent. It is off by default: Settings > Menu > Show recent folders for this app, or showAppRecent in config.json.

  • FrecencyStore.TopInApp lists only the folders used in that app, ranked by the visits made there.
  • It shows up to Recent folders entries and leaves out the current folder. Its accelerator is I.
  • It is hidden over the tray icon, and in an app with no folders yet.
  • The name is the adapter's name (Directory Opus, Explorer, Total Commander, ...). For a file dialog it is the program's file description, falling back to the process name.

Places inside archives are not recorded, and ones already in history.json are dropped when it loads. A path part with an archive extension (.zip, .7z, .rar, .iso and other common ones) counts unless it is a real folder. That keeps a folder named backup.zip, and still catches a place in an archive that has since been deleted. Only parts with those extensions are checked on disk.

The docs are updated: menu.md (new section Recent folders for this app), settings.md, config.md, how-it-works.md, dialogs.md, troubleshooting.md, building.md, the README and the landing page.

Testing

  • dotnet test: 312 passed. New tests cover TopInApp, the archive rule (archive files, a folder named like one, a deleted archive) and the new submenu in MenuComposer.
  • mkdocs build --strict: passes.
  • Against a real history.json with 202 entries, the archive rule drops 31. All of them are archive paths.
  • Not yet tried by hand in the menu. The manual checklist in building.md has the steps.

Recent ranked folders with a boost for the app the menu was opened over,
so Explorer and Directory Opus showed different lists. It now ranks by
overall use only. The per-app ranking moves to a second submenu,
"Recent in <app>", off by default (Settings > Menu > Show recent folders
for this app, showAppRecent). It lists only folders used in that app,
ranked by the visits there.

Places inside archives, such as tools.zip\bin browsed in Explorer or Opus,
are no longer recorded, and ones already in history.json are dropped on
load. A path part with an archive extension counts unless it is a real
folder.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant