summaryrefslogtreecommitdiff
path: root/plan.plan.md
diff options
context:
space:
mode:
Diffstat (limited to 'plan.plan.md')
-rw-r--r--plan.plan.md113
1 files changed, 0 insertions, 113 deletions
diff --git a/plan.plan.md b/plan.plan.md
deleted file mode 100644
index 5b6f1f2..0000000
--- a/plan.plan.md
+++ /dev/null
@@ -1,113 +0,0 @@
-# Refactoring Plan: Control Center Panes
-
-## Overview
-
-After analyzing the last 30 commits, I've identified significant code duplication and opportunities for modularization in the control center panels. This plan focuses on extracting common patterns into reusable components.
-
-## Key Refactoring Opportunities
-
-### 1. Details Component Consolidation
-
-**Files affected:** `modules/controlcenter/network/Details.qml`, `modules/controlcenter/ethernet/EthernetDetails.qml`
-
-**Issue:** Both files share identical structure:
-
-- Header with icon and title
-- Connection status section
-- Properties section
-- Connection information section (IP, subnet, gateway, DNS)
-
-**Solution:** Create `components/ConnectionDetails.qml` that accepts:
-
-- Device/network object
-- Icon name
-- Title property path
-- Details source (wirelessDeviceDetails vs ethernetDeviceDetails)
-
-**Impact:** Reduces ~200 lines of duplication.
-
-### 2. ToggleButton Component Extraction
-
-**Files affected:** `modules/controlcenter/network/NetworkList.qml`, `modules/controlcenter/ethernet/EthernetList.qml`
-
-**Issue:** Both files define identical `ToggleButton` component (lines 228-301 in NetworkList, 170-243 in EthernetList).
-
-**Solution:** Move to `components/controls/ToggleButton.qml` and import in both files.
-
-**Impact:** Eliminates ~70 lines of duplication.
-
-### 3. Switch/SpinBox Row Components
-
-**Files affected:** `modules/controlcenter/appearance/AppearancePane.qml`, `modules/controlcenter/taskbar/TaskbarPane.qml`
-
-**Issue:** Repeated patterns for:
-
-- Switch rows (label + StyledSwitch)
-- SpinBox rows (label + CustomSpinBox)
-- Same layout, spacing, and styling
-
-**Solution:** Create:
-
-- `components/controls/SwitchRow.qml` - label + switch with config save callback
-- `components/controls/SpinBoxRow.qml` - label + spinbox with config save callback
-
-**Impact:** Reduces ~30-40 lines per row instance (20+ instances total).
-
-### 4. Font List Delegate Consolidation
-
-**Files affected:** `modules/controlcenter/appearance/AppearancePane.qml`
-
-**Issue:** Three nearly identical font list implementations (Material, Mono, Sans) with only the property binding differing.
-
-**Solution:** Create `components/FontList.qml` that accepts:
-
-- Current font property
-- Save callback function
-- Title text
-
-**Impact:** Reduces ~150 lines of duplication.
-
-### 5. List Item Selection Pattern
-
-**Files affected:** Multiple list delegates across panes
-
-**Issue:** Repeated pattern for selected item highlighting:
-
-- Color with alpha based on selection
-- Border width/color based on selection
-- StateLayer click handler
-
-**Solution:** Create `components/SelectableListItem.qml` wrapper that handles selection styling.
-
-**Impact:** Reduces ~10-15 lines per list delegate.
-
-## Implementation Order
-
-1. **ConnectionDetails consolidation** (medium impact)
-2. **FontList consolidation** (low-medium impact)
-3. **SelectableListItem pattern** (nice-to-have, lower priority)
-
-## Files to Create
-
-- `components/controls/SelectableListItem.qml`
-- `components/ConnectionDetails.qml`
-- `components/FontList.qml`
-
-## Completed Items
-
-- ✅ `components/controls/CollapsibleSection.qml` - DONE
-- ✅ `components/controls/SwitchRow.qml` - DONE
-- ✅ `components/controls/SpinBoxRow.qml` - DONE
-- ✅ `components/controls/ToggleButton.qml` - DONE
-
-## Estimated Impact
-
-- **Lines removed:** ~400-500 lines of duplicated code (from remaining items)
-- **Maintainability:** Significantly improved - changes to common patterns only need to be made once
-- **Readability:** Panes become more declarative and easier to understand
-- **Testability:** Reusable components can be tested independently
-
-## Completed Refactoring
-
-- **Lines removed so far:** ~1300+ lines of duplicated code
-- **Components created:** CollapsibleSection, SwitchRow, SpinBoxRow, ToggleButton \ No newline at end of file