Refractor ImageInfoData

This commit is contained in:
2022-04-08 12:36:13 +02:00
parent 5a8582c8b0
commit c7e36bd4d6
4 changed files with 99 additions and 47 deletions
+28 -13
View File
@@ -1,24 +1,39 @@
#include "imageinfo.h"
static const QVector<QByteArray> noEditableKey = {"SIMPLE", "BITPIX", "NAXIS", "NAXIS1", "NAXIS2", "NAXIS3", "EXTEND", "BZERO", "BSCALE"};
bool FITSRecord::editable() const
{
return noEditableKey.count(key);
}
ImageInfo::ImageInfo(QWidget *parent) : QTreeWidget(parent)
{
setColumnCount(2);
setHeaderLabels({tr("Property"), tr("Value")});
setColumnCount(3);
setHeaderLabels({tr("Property"), tr("Value"), tr("Comment")});
setIndentation(5);
}
void ImageInfo::setInfo(ImageInfoData info)
void ImageInfo::setInfo(const ImageInfoData &info)
{
clear();
QList<QTreeWidgetItem*> items;
QTreeWidgetItem *w;
int i=0;
for(StringPair item : info)
if(info.fitsHeader.size())
{
w = new QTreeWidgetItem({item.first, item.second});
w->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled);
items.append(w);
i++;
QTreeWidgetItem *fitsHeader = new QTreeWidgetItem({tr("FITS Header")});
for(const FITSRecord &record : info.fitsHeader)
{
new QTreeWidgetItem(fitsHeader, {record.key, record.value.toString(), record.comment});
}
addTopLevelItem(fitsHeader);
}
insertTopLevelItems(0, items);
if(info.info.size())
{
QTreeWidgetItem *infoHeader = new QTreeWidgetItem({tr("Image info")});
for(auto &item : info.info)
{
new QTreeWidgetItem(infoHeader, {item.first, item.second});
}
addTopLevelItem(infoHeader);
}
expandAll();
}