mirror of
https://github.com/lantean-code/qbtmud.git
synced 2025-10-23 04:52:22 +00:00
2.9 KiB
2.9 KiB
Upgrade to qBittorrent WebUI v5 – UI Alignment Plan
Torrent List Filtering
- Regex toggle & field selector: Introduce the regex checkbox and the "Filter by" (Name/Save path) select found in v5. Update
FilterState
/LoggedInLayout
to carry both values, wire them toTorrentList
’s toolbar, and validate invalid patterns gracefully. - Filter helper parity: Rework
FilterHelper.ContainsAllTerms/FilterTerms
to mirrorwindow.qBittorrent.Misc.containsAllTerms
(evaluate every term, respect+
/-
prefixes). Ensure filtering applies to the selected field, not just the torrent name. - New status buckets: Add
Running
andMoving
toStatus
enum, updateFilterHelper.FilterStatus
,DisplayHelpers
, andFiltersNav
so counts/icons match upstream.
Tracker Filters
- Special buckets: Extend
FilterHelper
/DataManager
to create sets for "Announce error", "Error", "Warning", and "Trackerless" in addition to "All". Store the required flags on the UITorrent
model (HasTrackerError
,HasTrackerWarning
,HasOtherAnnounceError
,TrackersCount
, etc.). - Tracker grouping & removal: When grouping trackers by host in
FiltersNav
, retain original URL entries so removal can target the right string. Replace the placeholder "Remove tracker" action with a real implementation and disable it for synthetic buckets.
Torrent Data Model & Columns
Model sync: BringLantean.QBTMud.Models.Torrent
into parity with v5 (Popularity
,DownloadPath
,RootPath
,InfoHashV1/2
,IsPrivate
, share-limit action fields, tracker flags, etc.) and map them inDataManager.CreateTorrent
.Column set alignment: Match the v5 table defaults—add missing columns (Popularity, Reannounce in, Info hashes, Download path, Private, etc.), fix "Ratio Limit" to displayRatioLimit
, and ensure column ordering/enabled state mirrorsDynamicTable.TorrentsTable
.Helper updates: ExtendDisplayHelpers
to format the new fields (popularity, private flag, info hashes, error state icons).
Actions & Dialogs
Copy submenu: Add "Copy comment" and "Copy content path" to the copy submenu inTorrentActions
, keeping clipboard behaviour identical to v5.Share ratio dialog: UpdateShareRatioDialog
,ShareRatio/ShareRatioMax
, andDialogHelper.InvokeShareRatioDialog
to surfaceShareLimitAction
, fix theMaxInactiveSeedingTime
mapping, and callSetTorrentShareLimit
with the action.
Add-Torrent Flow
- Mirror the v5 add-torrent pane: add controls for incomplete save path, tags, auto-start, queue position, share-limit action, etc., in
AddTorrentOptions.razor
, and wire the new fields into the submission object.
Preferences & Local Settings
Introduce new v5 toggles such as "Display full tracker URL" inAdvancedOptions
, persist them via the preferences service, and respect the setting in the tracker column rendering.