From 5fe3c853f4857003c34d93659241c1ecdf378f0e Mon Sep 17 00:00:00 2001 From: Stu Leak Date: Wed, 31 Dec 2025 13:16:10 -0500 Subject: [PATCH] feat(ui): Mark unimplemented modules as disabled Set Trim, Audio, and Blu-Ray module handlers to nil to mark them as disabled. These modules show as grey tiles with lock icons and diagonal stripes until they are implemented. Settings remains enabled despite nil handler as it has functionality. --- main.go | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/main.go b/main.go index a18487b..ca8485b 100644 --- a/main.go +++ b/main.go @@ -84,13 +84,13 @@ var ( modulesList = []Module{ {"convert", "Convert", utils.MustHex("#673AB7"), "Convert", modules.HandleConvert}, // Deep Purple (primary conversion) {"merge", "Merge", utils.MustHex("#4CAF50"), "Convert", modules.HandleMerge}, // Green (combining) - {"trim", "Trim", utils.MustHex("#F9A825"), "Convert", modules.HandleTrim}, // Dark Yellow/Gold (precision cut) + {"trim", "Trim", utils.MustHex("#F9A825"), "Convert", nil}, // Dark Yellow/Gold (not implemented yet) {"filters", "Filters", utils.MustHex("#00BCD4"), "Convert", modules.HandleFilters}, // Cyan (creative filters) {"upscale", "Upscale", utils.MustHex("#9C27B0"), "Advanced", modules.HandleUpscale}, // Purple (AI/advanced) - {"audio", "Audio", utils.MustHex("#FF8F00"), "Convert", modules.HandleAudio}, // Dark Amber (sound waves) + {"audio", "Audio", utils.MustHex("#FF8F00"), "Convert", nil}, // Dark Amber (not implemented yet) {"author", "Author", utils.MustHex("#FF5722"), "Disc", modules.HandleAuthor}, // Deep Orange (authoring) {"rip", "Rip", utils.MustHex("#FF9800"), "Disc", modules.HandleRip}, // Orange (extraction) - {"bluray", "Blu-Ray", utils.MustHex("#2196F3"), "Disc", modules.HandleBluRay}, // Blue (Blu-ray brand) + {"bluray", "Blu-Ray", utils.MustHex("#2196F3"), "Disc", nil}, // Blue (not implemented yet) {"subtitles", "Subtitles", utils.MustHex("#689F38"), "Convert", modules.HandleSubtitles}, // Dark Green (text) {"thumb", "Thumb", utils.MustHex("#00ACC1"), "Screenshots", modules.HandleThumb}, // Dark Cyan (capture) {"compare", "Compare", utils.MustHex("#E91E63"), "Inspect", modules.HandleCompare}, // Pink (comparison) @@ -1617,13 +1617,13 @@ func (s *appState) showMainMenu() { // Convert Module slice to ui.ModuleInfo slice var mods []ui.ModuleInfo for _, m := range modulesList { - // Settings module is always enabled - enabled := m.ID == "settings" || isModuleAvailable(m.ID) + // Module is enabled if: (1) it's Settings (special case) OR (2) it has a handler AND dependencies are available + enabled := m.ID == "settings" || (m.Handle != nil && isModuleAvailable(m.ID)) mods = append(mods, ui.ModuleInfo{ ID: m.ID, Label: m.Label, Color: m.Color, - Category: m.Category, + Category:m.Category, Enabled: enabled, }) }