DYTSrouce/src/ui/Panel/DataPanel.cpp

90 lines
2.5 KiB
C++
Raw Normal View History

2025-10-16 03:29:25 +00:00
#include "ui/Panel/DataPanel.h"
#include "ui/DockWidget.h"
#include "common/SpdLogger.h"
#include <QVBoxLayout>
#include <QLabel>
#include <QFileInfo>
#include <QCloseEvent>
DataPanel::DataPanel(int index, FileEntryType fileType, const QString& filePath, QWidget* parent)
: QWidget(parent)
, index_(index)
, fileType_(fileType)
, filePath_(filePath)
, title_()
, dockWidget_(nullptr)
{
title_ = GenerateTitle();
2025-10-27 01:28:06 +00:00
InitUI();
2025-10-16 03:29:25 +00:00
LOG_INFO("Created DataPanel {} for {} file: {}", index_, FileEntryTypeToString(fileType_), filePath_.toStdString());
}
2025-10-27 00:35:04 +00:00
DataPanel::DataPanel(int index, std::shared_ptr<FileEntry> fileEntry, QWidget* parent)
: QWidget(parent)
, index_(index)
, fileType_(fileEntry->GetType())
, filePath_(fileEntry->GetPath())
, title_()
, dockWidget_(nullptr)
, fileEntry_(fileEntry)
{
}
2025-10-16 03:29:25 +00:00
DataPanel::~DataPanel()
{
LOG_INFO("Destroyed DataPanel {} ({})", index_, FileEntryTypeToString(fileType_));
}
void DataPanel::closeEvent(QCloseEvent* event)
{
emit PanelClosed();
event->accept();
}
void DataPanel::InitUI()
{
2025-10-27 00:35:04 +00:00
// // Create basic layout
// QVBoxLayout* layout = new QVBoxLayout(this);
2025-10-16 03:29:25 +00:00
2025-10-27 00:35:04 +00:00
// // Add placeholder label showing panel information
// QString typeDisplayName = GetTypeDisplayName();
// QLabel* infoLabel = new QLabel(QString("Panel %1 (%2)\nFile: %3\n\n%4 Data Area\nPlease inherit this class to implement specific functionality")
// .arg(index_)
// .arg(typeDisplayName)
// .arg(QFileInfo(filePath_).fileName())
// .arg(typeDisplayName));
// infoLabel->setAlignment(Qt::AlignCenter);
// infoLabel->setStyleSheet("QLabel { color: #666; font-size: 12px; padding: 20px; }");
2025-10-16 03:29:25 +00:00
2025-10-27 00:35:04 +00:00
// layout->addWidget(infoLabel);
// setLayout(layout);
2025-10-27 02:39:03 +00:00
//RefreshPanel();
2025-10-16 03:29:25 +00:00
}
QString DataPanel::GenerateTitle()
{
QFileInfo fileInfo(filePath_);
QString typeDisplayName = GetTypeDisplayName();
return QString("%1 Panel %2 - %3").arg(typeDisplayName).arg(index_).arg(fileInfo.baseName());
}
QString DataPanel::GetTypeDisplayName() const
{
switch (fileType_) {
case FileEntryType::Curve:
return "Curve";
case FileEntryType::Surface:
return "Surface";
case FileEntryType::Table:
return "Table";
case FileEntryType::Light:
return "Light";
2025-10-31 15:10:35 +00:00
case FileEntryType::Polar:
return "Polar";
2025-10-16 03:29:25 +00:00
default:
return "Unknown";
}
}