Files
@ dd74a99bcfac
Branch filter:
Location: tempo-plotter/snapshotview.cpp - annotation
dd74a99bcfac
2.7 KiB
text/x-c++hdr
implemented load snapshot from csv file
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 | b0405ffbfd80 b0405ffbfd80 b0405ffbfd80 aa3c57d8443c aa3c57d8443c b0405ffbfd80 b0405ffbfd80 f520f2a1546b f520f2a1546b b0405ffbfd80 f520f2a1546b f520f2a1546b b0405ffbfd80 1ab619914658 099df007158d b0405ffbfd80 b0405ffbfd80 b0405ffbfd80 b0405ffbfd80 b0405ffbfd80 b0405ffbfd80 b0405ffbfd80 b0405ffbfd80 52f54b71dc6b b0405ffbfd80 b0405ffbfd80 b0405ffbfd80 f520f2a1546b f520f2a1546b f520f2a1546b f520f2a1546b aa3c57d8443c aa3c57d8443c aa3c57d8443c b0405ffbfd80 b0405ffbfd80 b0405ffbfd80 b0405ffbfd80 b0405ffbfd80 b0405ffbfd80 b0405ffbfd80 b0405ffbfd80 b0405ffbfd80 b0405ffbfd80 7c41467702e0 7c41467702e0 7c41467702e0 b616fb48842c 7c41467702e0 7c41467702e0 f520f2a1546b f520f2a1546b f520f2a1546b f520f2a1546b f520f2a1546b f520f2a1546b f520f2a1546b f520f2a1546b f520f2a1546b f520f2a1546b f520f2a1546b f520f2a1546b aa3c57d8443c aa3c57d8443c aa3c57d8443c aa3c57d8443c aa3c57d8443c aa3c57d8443c aa3c57d8443c aa3c57d8443c aa3c57d8443c aa3c57d8443c aa3c57d8443c aa3c57d8443c aa3c57d8443c aa3c57d8443c aa3c57d8443c aa3c57d8443c aa3c57d8443c aa3c57d8443c aa3c57d8443c aa3c57d8443c aa3c57d8443c aa3c57d8443c aa3c57d8443c aa3c57d8443c aa3c57d8443c aa3c57d8443c aa3c57d8443c aa3c57d8443c aa3c57d8443c aa3c57d8443c aa3c57d8443c aa3c57d8443c aa3c57d8443c aa3c57d8443c aa3c57d8443c aa3c57d8443c aa3c57d8443c aa3c57d8443c aa3c57d8443c aa3c57d8443c aa3c57d8443c aa3c57d8443c aa3c57d8443c aa3c57d8443c | #include "snapshotview.h"
#include "ui_snapshotview.h"
#include <QSaveFile>
SnapShotView::SnapShotView(QWidget *parent, SnapShot* snapShot) :
QMainWindow(parent),
ui(new Ui::SnapShotView),
renameDialog(this)
{
_snapShot = snapShot;
ui->setupUi(this);
ui->menuSnapshot->addAction(snapShot->deleteAction());
this->setWindowTitle(snapShot->name());
unsigned numOfChannels = snapShot->data.size();
for (unsigned ci = 0; ci < numOfChannels; ci++)
{
QwtPlotCurve* curve = new QwtPlotCurve();
curves.append(curve);
curve->setSamples(snapShot->data[ci]);
curve->setPen(Plot::makeColor(ci));
curve->attach(ui->plot);
}
renameDialog.setWindowTitle("Rename Snapshot");
renameDialog.setLabelText("Enter new name:");
connect(ui->actionRename, &QAction::triggered,
this, &SnapShotView::showRenameDialog);
connect(ui->actionExport, &QAction::triggered,
this, &SnapShotView::save);
}
SnapShotView::~SnapShotView()
{
for (auto curve : curves)
{
delete curve;
}
delete ui;
}
void SnapShotView::closeEvent(QCloseEvent *event)
{
QMainWindow::closeEvent(event);
emit closed();
}
void SnapShotView::showRenameDialog()
{
renameDialog.setTextValue(_snapShot->name());
renameDialog.open(this, SLOT(renameSnapshot(QString)));
}
void SnapShotView::renameSnapshot(QString name)
{
_snapShot->setName(name);
setWindowTitle(name);
}
void SnapShotView::save()
{
QString fileName = QFileDialog::getSaveFileName(this, tr("Export CSV File"));
// TODO: remove code duplication (MainWindow::onExportCsv)
QSaveFile file(fileName);
if (file.open(QIODevice::WriteOnly | QIODevice::Text))
{
QTextStream fileStream(&file);
unsigned numOfChannels = _snapShot->data.size();
unsigned numOfSamples = _snapShot->data[0].size();
// print header
for (unsigned int ci = 0; ci < numOfChannels; ci++)
{
fileStream << "Channel " << ci;
if (ci != numOfChannels-1) fileStream << ",";
}
fileStream << '\n';
// print rows
for (unsigned int i = 0; i < numOfSamples; i++)
{
for (unsigned int ci = 0; ci < numOfChannels; ci++)
{
fileStream << _snapShot->data[ci][i].y();
if (ci != numOfChannels-1) fileStream << ",";
}
fileStream << '\n';
}
if (!file.commit())
{
qCritical() << "File save error during snapshot save: " << file.error();
}
}
else
{
qCritical() << "File open error during snapshot save: " << file.error();
}
}
|