diff --git a/snapshot.cpp b/snapshot.cpp --- a/snapshot.cpp +++ b/snapshot.cpp @@ -66,3 +66,10 @@ QString SnapShot::name() { return _name; } + +void SnapShot::setName(QString name) +{ + _name = name; + _showAction.setText(_name); + emit nameChanged(this); +} diff --git a/snapshot.h b/snapshot.h --- a/snapshot.h +++ b/snapshot.h @@ -5,6 +5,7 @@ #include #include #include +#include class SnapShotView; @@ -21,9 +22,11 @@ public: QAction* deleteAction(); QString name(); + void setName(QString name); signals: void deleteRequested(SnapShot*); + void nameChanged(SnapShot*); private: QString _name; diff --git a/snapshotmanager.cpp b/snapshotmanager.cpp --- a/snapshotmanager.cpp +++ b/snapshotmanager.cpp @@ -52,6 +52,8 @@ void SnapshotManager::takeSnapshot() snapshots.append(snapShot); QObject::connect(snapShot, &SnapShot::deleteRequested, this, &SnapshotManager::deleteSnapshot); + QObject::connect(snapShot, &SnapShot::deleteRequested, + this, &SnapshotManager::updateMenu); updateMenu(); } diff --git a/snapshotmanager.h b/snapshotmanager.h --- a/snapshotmanager.h +++ b/snapshotmanager.h @@ -38,7 +38,6 @@ private slots: void takeSnapshot(); void clearSnapshots(); void deleteSnapshot(SnapShot* snapshot); - }; #endif /* SNAPSHOTMANAGER_H */ diff --git a/snapshotview.cpp b/snapshotview.cpp --- a/snapshotview.cpp +++ b/snapshotview.cpp @@ -3,8 +3,11 @@ SnapShotView::SnapShotView(QWidget *parent, SnapShot* snapShot) : QMainWindow(parent), - ui(new Ui::SnapShotView) + ui(new Ui::SnapShotView), + renameDialog(this) { + _snapShot = snapShot; + ui->setupUi(this); ui->toolBar->addAction(snapShot->deleteAction()); this->setWindowTitle(snapShot->name()); @@ -20,7 +23,10 @@ SnapShotView::SnapShotView(QWidget *pare curve->attach(ui->plot); } - _snapShot = snapShot; + renameDialog.setWindowTitle("Rename Snapshot"); + renameDialog.setLabelText("Enter new name:"); + connect(ui->actionRename, &QAction::triggered, + this, &SnapShotView::showRenameDialog); } SnapShotView::~SnapShotView() @@ -37,3 +43,15 @@ void SnapShotView::closeEvent(QCloseEven 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); +} diff --git a/snapshotview.h b/snapshotview.h --- a/snapshotview.h +++ b/snapshotview.h @@ -2,6 +2,7 @@ #define SNAPSHOTVIEW_H #include +#include #include #include #include @@ -28,9 +29,14 @@ signals: private: Ui::SnapShotView *ui; QList curves; + SnapShot* _snapShot; + QInputDialog renameDialog; - SnapShot* _snapShot; void closeEvent(QCloseEvent *event); + +private slots: + void showRenameDialog(); + void renameSnapshot(QString name); }; #endif // SNAPSHOTVIEW_H diff --git a/snapshotview.ui b/snapshotview.ui --- a/snapshotview.ui +++ b/snapshotview.ui @@ -29,10 +29,11 @@ 27 - + - File + Snapshot + @@ -40,7 +41,7 @@ View - + @@ -53,13 +54,20 @@ false - Export CSV + + + Rename + + + Rename this snapshot + +