#pragma once #include "DataPanel.h" #include "workspace/FileEntry.h" #include class LightPanel : public DataPanel { Q_OBJECT public: /** * @brief Constructor * @param index Panel index * @param filePath Associated file path * @param parent Parent widget */ explicit LightPanel(int index, const QString& filePath, QWidget* parent = nullptr); /** * @brief Constructor with chart data * @param index Panel index * @param chartData Chart data containing curve information * @param parent Parent widget */ explicit LightPanel(int index, std::shared_ptr fileEntry, QWidget* parent = nullptr); /** * @brief Destructor */ virtual ~LightPanel(); /** * @brief Get file type * @return File type (always Curve for this class) */ FileEntryType GetFileType() const override { return FileEntryType::Light; } /** * @brief Refresh panel content */ void RefreshPanel() override; protected: /** * @brief Initialize UI for curve-specific layout */ virtual void InitUI(); /** * @brief Get type display name * @return Display name for curve type */ QString GetTypeDisplayName() const override; void OnDataPanelUpdated(FileEntryLight* fileEntry); virtual void OnTimeChanged(double time); private: void updateTitle(const QString& title); };