Files
@ a855faafd026
Branch filter:
Location: tempo-plotter/snapshotview.cpp - annotation
a855faafd026
2.8 KiB
text/x-c++hdr
make quit application shortcut close application from any window
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 107 108 109 110 111 112 113 | b0405ffbfd80 b0405ffbfd80 b0405ffbfd80 aa3c57d8443c aa3c57d8443c b0405ffbfd80 b0405ffbfd80 f520f2a1546b f520f2a1546b b0405ffbfd80 f520f2a1546b f520f2a1546b b0405ffbfd80 45f7246b22b1 099df007158d b0405ffbfd80 b0405ffbfd80 b0405ffbfd80 b0405ffbfd80 b0405ffbfd80 b0405ffbfd80 b0405ffbfd80 b0405ffbfd80 52f54b71dc6b b0405ffbfd80 b0405ffbfd80 b0405ffbfd80 f520f2a1546b f520f2a1546b f520f2a1546b f520f2a1546b aa3c57d8443c aa3c57d8443c aa3c57d8443c e8c51b2d8584 e8c51b2d8584 e8c51b2d8584 e8c51b2d8584 e8c51b2d8584 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 ba36fde18d58 ba36fde18d58 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->insertAction(ui->actionClose, 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);
for (auto a : ui->plot->menuActions())
{
ui->menuView->addAction(a);
}
}
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"));
if (fileName.isNull()) return; // user canceled
// 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();
}
}
|