Commit Graph

25 Commits

Author SHA1 Message Date
Andrew
c3ebf38a07 Prevent hidden action execution
Block execution of actions from an empty list
until user input specifies a selection, ensuring
actions not displayed don't trigger unexpectedly.
2026-07-13 19:20:15 +08:00
Andrew
592e5f92f8 Tone down inactive favourite stars 2026-07-13 16:00:32 +08:00
Andrew
39357533b2 Harden speed dial helper inputs 2026-07-13 16:00:29 +08:00
Andrew
c29ffdfc1a Extract script actions into an action source
Move plugin capability enumeration, loader
subscriptions, and action construction into
ScriptActionSource. Keep ActionRegistry focused
on generic action state, dispatch, and snapshots.

Use source rather than package for generic origin
metadata so future non-plugin providers share the
same interface. Action IDs and persisted
configuration remain unchanged.

Subscribe before initial enumeration so plugin
events cannot be missed between the snapshot and
callback registration. Add a focused test for
source startup.
2026-07-13 14:28:05 +08:00
Andrew
7b19145226 Share one fuzzy matcher across both dialogs
Plugins dialog and the Speed Dial popup each
carried a private copy of the same fuzzy
matcher and had already drifted. Move the
pure functions into a shared module loaded
by both pages, and add a unit test beside
it.
2026-07-10 17:32:31 +08:00
Andrew
df5c293d2e Stabilize action counts and tile ordinals 2026-07-10 17:18:30 +08:00
Andrew
35d189f1c7 Add right-click menu to reorder or unpin favs
Right-clicking a fav tile now opens a small
context menu with Move left, Move right, and
Unpin, instead of relying on drag-only reorder.

- speeddial.js: oncontextmenu handler, the
  menu build/position/dismiss logic, and an
  Escape-key close.
- style.css: .ctx-menu/.ctx-item styling.
- ActionRegistry: reorder_favourites persists
  the new bar order to AppConfig.
- SpeedDialDialog: routes the new
  reorder_favourites command from the page.
2026-07-10 17:18:00 +08:00
Andrew
7c9fa801fb Remove dead always-true runnable action field
runnable was hardcoded true on every action,
and only loaded+enabled capabilities ever
reach the registry, so every JS === false
branch was unreachable. Drop the field, its
JSON, the guards, and the orphan .disabled
CSS rule.
2026-07-10 17:12:52 +08:00
Andrew
73a1913447 Put package initial first in tile monogram (GC, not CG) 2026-07-10 15:08:33 +08:00
Andrew
672429cf17 Complete speed dial launcher helper layer; fix tile clip and arrow-nav
Wire the search-first launcher's pure helpers to their node-vm spec:
resultCountText, selectedActionId, actionLabel (accessible row/tile labels
with plugin-key disambiguation), and tileCode (collision-escalating
title/pkg/ordinal monogram). Plus three fixes surfaced by the test + review:

- visibleFavourites drops non-runnable favourites - a dead fav tile
  otherwise renders and run()s to a silent no-op on click.
- .fav-tile mirrors the list tile's inline-flex centering + 12px so a
  multi-char monogram (e.g. "EA1") no longer clips the bare button.
- Arrow Left/Right stop swallowing the search caret in the list zone;
  they only navigate when inside the favourites bar.
2026-07-10 15:06:44 +08:00
Andrew
3dfa83e407 Add search count indication 2026-07-10 14:33:25 +08:00
Andrew
6daef171c1 Add actions speed dial 2026-07-09 16:21:53 +08:00
Andrew
fb2c0ef237 Update search button icons and styles
Revise button labels and styling for search
options to improve UI consistency.
2026-07-07 16:28:48 +08:00
Andrew
8ddb4db0de Recompute scrollbar gutter on every render
Address issues with search and sort re-renders
by ensuring the scrollbar gutter is consistently
updated with each rendering cycle.
2026-07-06 18:14:26 +08:00
Andrew
bc21551185 Implement plugin search functionality 2026-07-06 18:14:26 +08:00
Andrew
a11e442f1d Add version sorting for plugins
Enhance plugin dialog with semver-aware sorting
by version, enabling users to sort plugins based
on version comparisons.
2026-07-06 15:25:09 +08:00
Andrew
714fe54f77 Move plugin sort from dropdown to clickable column headers
Replace the toolbar sort dropdown with sortable Name/Source/Status column
headers that cycle ascending, descending, then clear. Add a Source column
and a PluginSortKey::None baseline for the cleared state. The whole header
cell is the click target and the sort triangle snaps in without a fade.
2026-07-06 15:03:14 +08:00
Andrew
b724cb6631 Implement plugin sorting functionality
Add support for sorting plugins by status, name,
or source in both ascending and descending order.
2026-07-06 12:31:34 +08:00
SoftFever
5d8aa9610a unify orca web dialog style 2026-07-05 10:39:25 +08:00
Andrew
c334d05214 Remove 'Open Terminal' button in PluginsDialog HTML. 2026-07-03 15:40:13 +08:00
SoftFever
6fd1176661 add status bar for plugin/capability status instead of message box 2026-07-03 14:57:35 +08:00
Ian Chua
e3c6ec309d feat: UI for mixed capability state 2026-07-03 14:48:49 +08:00
Ian Chua
ecddf3d18f feat: Python Plugins 2026-07-02 17:49:36 +08:00
Ian Chua
8e868118d2 fix: fix type name from preset to process in the preset bundle dialog 2026-06-29 15:16:11 +08:00
SoftFever
c04be9ab37 Introducing Orca Cloud: https://cloud.orcaslicer.com (#13414)
* Add OrcaCloud sync platform and preset bundle sharing system

  Introduce OrcaCloud, a cloud sync platform for user presets, alongside
  a preset bundle system that enables sharing printer/filament/process
  profiles as local exportable bundles or subscribed cloud bundles.

  OrcaCloud platform:
  - Auth to Orca Cloud
  - Encrypted token storage (file-based or system keychain)
  - User preset sync with
  - Profile migration from default/bambu folders on first login
  - Homepage integration with entrance to cloud.orcaslicer.com

  Preset bundles:
  - Local bundle import/export with bundle_structure.json metadata
  - Subscribed cloud bundles with version-based update checking
  - Thread-safe concurrent bundle access with read-write mutex
  - Canonical bundle preset naming (_local/<id>/... and _subscribed/<id>/...)
  - Bundle presets are read-only; grouped under subheaders in combo boxes
  - PresetBundleDialog with auto-sync toggle, refresh, update notifications
  - Hyperlinked bundle names to cloud bundle pages

  Co-authored-by: Sabriel Koh <sabrielkcr@gmail.com>
  Co-authored-by: Derrick <derrick992110@gmail.com>
  Co-authored-by: Mykola Nahirnyi <mnahirnyi@amcbridge.com>
  Co-authored-by: Ian Chua <iancrb00@gmail.com>
  Co-authored-by: Draginraptor <draginraptor@gmail.com>
  Co-authored-by: ExPikaPaka <112851715+ExPikaPaka@users.noreply.github.com>
  Co-authored-by: Ian Bassi <ian.bassi@outlook.com>
  Co-authored-by: Ocraftyone <Ocraftyone@users.noreply.github.com>
  Co-authored-by: yw4z <ywsyildiz@gmail.com>
  Co-authored-by: peterm-m <101202951+peterm-m@users.noreply.github.com>

* Fixed an issue on Windows it failed to login Orca Cloud with Google account
2026-05-01 18:01:29 +08:00