Files
mailadler/PHASE4_CLEANUP_COMPLETE.md
2026-02-04 02:47:35 +01:00

5.5 KiB

Phase 4+ Cleanup - COMPLETE

Summary

Systematically disabled all remaining MLT/Player/Playlist/Timeline references in mainwindow.cpp that would cause compilation errors due to undefined pointers (m_player, m_playlistDock, m_timelineDock).

Functions Disabled

Player/Timeline Navigation & Selection

  • onTimelineClipSelected() - MLT timeline/player switching (lines 960-967)
    • Disabled: m_player tabIndex check, m_timelineDock saveAndClearSelection, m_player onTabBarClicked

Producer Management

  • hideProducer() - MLT producer color replacement logic (lines 2358-2375)
    • Disabled: openCut operations, QScrollArea widget cleanup, m_player reset
  • closeProducer() - MLT producer closing and cleanup (lines 2376-2383)
    • Disabled: hideProducer call, m_filterController motionTracker, MLT.close, MLT.setSavedProducer
  • onProducerOpened() - Entire MLT producer opening workflow (lines 3275-3307)
    • Disabled: loadProducerWidget, playlist/multitrack loading, m_player operations

Status & Messages

  • showStatusMessage(QAction) - Player status label setting (lines 2386-2392)
    • Disabled: m_statusBarAction reset, m_player setStatusLabel
  • showStatusMessage(const QString) - Player status label with color role (lines 2394-2403)
    • Disabled: action creation and m_player setStatusLabel

Seeking Operations

  • seekPlaylist() - MLT playlist seeking with player synchronization (lines 2410-2429)
    • Disabled: MLT producer operations, m_player setIn/setOut, jack trigger, onProducerOpened, seek, focus, tab switch
  • seekTimeline() - MLT timeline seeking with player control (lines 2431-2454)
    • Disabled: multitrack checking, MLT producer operations, m_player operations, focus, tab switch, pause/seek
  • seekKeyframes() - Player seek for keyframe positioning (lines 2456-2459)
    • Disabled: m_player seek

Playlist Event Handlers

  • onPlaylistLoaded() - Marker updates and player tab enabling (lines 3684-3688)
    • Disabled: updateMarkers, m_player enableTab
  • onPlaylistCleared() - Player tab switching on playlist clear (lines 3690-3694)
    • Disabled: m_player onTabBarClicked (kept setWindowModified as non-MLT)
  • onPlaylistModified() - Player duration and tab updates on modification (lines 3713-3721)
    • Disabled: m_player onDurationChanged, updateMarkers, enableTab (kept setWindowModified)
  • onPlaylistInChanged() - Player in point blocking signal updates (lines 5868-5873)
    • Disabled: m_player blockSignals, setIn
  • onPlaylistOutChanged() - Player out point blocking signal updates (lines 5875-5880)
    • Disabled: m_player blockSignals, setOut

Multitrack/Timeline Event Handlers

  • onMultitrackCreated() - Player tab enabling and track transition setup (lines 3723-3728)
    • Disabled: m_player enableTab, m_timelineDock model track transition
  • onMultitrackClosed() - Full multitrack cleanup with player tab disabling (lines 3730-3744)
    • Disabled: setAudioChannels, setProfile, resetVideoModeMenu, resetSourceUpdated, MLT operations, m_player enableTab
  • onMultitrackModified() - Timeline dock selection and producer in/out point updates (lines 3746-3806)
    • Disabled: m_timelineDock selection operations, MLT clip info, producer property operations, MLT refreshConsumer (kept setWindowModified)
  • onMultitrackDurationChanged() - Player duration change notification (lines 3788-3793)
    • Disabled: MLT producer check, m_player onDurationChanged

Preview & External Monitoring

  • onExternalTriggered() - Full external monitor/SDI/HDMI output logic (lines 4491-4578)
    • Disabled: External GPU restart logic, MLT stop, m_player moveVideoToScreen, MLT properties, profile changes, progressive option, decklink gamma/keyer menu operations
  • on_actionPreview360_triggered() - Preview scaling at 360p (lines 5920-5927)
    • Disabled: Settings.setPlayerPreviewScale, setPreviewScale, m_player showIdleStatus
  • on_actionPreview540_triggered() - Preview scaling at 540p (lines 5929-5936)
    • Disabled: Settings.setPlayerPreviewScale, setPreviewScale, m_player showIdleStatus

Proxy Management

  • on_actionUseProxy_triggered() - Full proxy enable/disable workflow (lines 6059-6139)
    • Disabled: Complete proxy on/off workflow including MLT open, XML operations, UI conversions, proxy generation prompts, m_player status

Misc

  • onClipCopied() - Player source tab enabling (lines 5095-5098)
    • Disabled: m_player enableTab

Pattern Applied

All disabled code follows the established convention:

// DISABLED: MLT [system]
// Original code commented out
// (void)param; // For unused parameters (to avoid compiler warnings)

Code Quality Notes

  • All edits preserve function signatures for forward compatibility
  • Unused parameter warnings prevented with (void) statements
  • Comments clearly mark disabled sections for future reference
  • Non-MLT functionality preserved (e.g., setWindowModified in playlist/multitrack handlers)

Files Modified

  • src\mainwindow.cpp - 23 functions systematically disabled

Compilation Status

Syntax check passed (no diagnostics) Full compilation test pending (requires CMake setup)

Next Steps

  1. Complete full cmake/ninja build test
  2. Document any remaining linker errors
  3. Begin Phase B mail-core implementation:
    • IMAP client module
    • SMTP client module
    • Mail database schema
    • Message model/repository
  4. Phase B will preserve all infrastructure:
    • Settings system
    • Database framework
    • JobQueue for async operations
    • Logging system
    • Generic dialogs and UI utilities