From 489727663c583b75305ad612b7520f79dcbcfbac Mon Sep 17 00:00:00 2001 From: djairoh Date: Tue, 28 May 2024 19:36:09 +0200 Subject: [PATCH] feat: added QT pause button --- particle-track-and-trace/src/QT/MainWindow.cpp | 4 +++- particle-track-and-trace/src/QT/MainWindow.h | 1 + particle-track-and-trace/src/QT/ui_mainwindow.h | 9 +++++++++ .../src/commands/TimerCallbackCommand.cpp | 4 +--- 4 files changed, 14 insertions(+), 4 deletions(-) diff --git a/particle-track-and-trace/src/QT/MainWindow.cpp b/particle-track-and-trace/src/QT/MainWindow.cpp index 5761cee..f147e87 100644 --- a/particle-track-and-trace/src/QT/MainWindow.cpp +++ b/particle-track-and-trace/src/QT/MainWindow.cpp @@ -84,7 +84,6 @@ void MainWindow::setupTechniques() { this->timer->SetClientData(program); this->timer->setDt(DT); intr->AddObserver(vtkCommand::TimerEvent, this->timer); - intr->AddObserver(vtkCommand::KeyPressEvent, this->timer); intr->CreateRepeatingTimer(17); // 60 fps == 1000 / 60 == 16.7 ms per frame } @@ -236,3 +235,6 @@ void MainWindow::on_IregularlySubsampledButton_clicked(bool checked) { } +void MainWindow::on_pauseButton_clicked(bool checked) { + this->timer->togglePaused(); +} diff --git a/particle-track-and-trace/src/QT/MainWindow.h b/particle-track-and-trace/src/QT/MainWindow.h index 21cb135..dd5616c 100644 --- a/particle-track-and-trace/src/QT/MainWindow.h +++ b/particle-track-and-trace/src/QT/MainWindow.h @@ -32,6 +32,7 @@ private slots: void on_FullySampledButton_clicked(bool checked); void on_RegularlySubsampledButton_clicked(bool checked); void on_IregularlySubsampledButton_clicked(bool checked); + void on_pauseButton_clicked(bool checked); private: Ui::MainWindow* ui; diff --git a/particle-track-and-trace/src/QT/ui_mainwindow.h b/particle-track-and-trace/src/QT/ui_mainwindow.h index 16dd934..0a3c634 100644 --- a/particle-track-and-trace/src/QT/ui_mainwindow.h +++ b/particle-track-and-trace/src/QT/ui_mainwindow.h @@ -18,6 +18,7 @@ #include #include #include +#include QT_BEGIN_NAMESPACE @@ -54,6 +55,7 @@ public: QRadioButton *RegularlySubsampledButton; QRadioButton *IregularlySubsampledButton; Program *program; + QPushButton *pauseButton; void setupUi(QMainWindow *MainWindow) { @@ -234,6 +236,12 @@ public: horizontalLayout->addWidget(program); + + pauseButton = new QPushButton("pause", settingsBox); + pauseButton->setGeometry(QRect(QPoint(100, 100), QSize(200, 50))); + pauseButton->setObjectName(QString::fromUtf8("pauseButton")); + verticalLayout_3->addWidget(pauseButton); + MainWindow->setCentralWidget(centralWidget); retranslateUi(MainWindow); @@ -265,6 +273,7 @@ public: FullySampledButton->setText(QCoreApplication::translate("MainWindow", "Fully sampled", nullptr)); RegularlySubsampledButton->setText(QCoreApplication::translate("MainWindow", "Regularly subsampled", nullptr)); IregularlySubsampledButton->setText(QCoreApplication::translate("MainWindow", "Irregularly subsampled", nullptr)); + pauseButton->setText(QCoreApplication::translate("MainWindow", "Pause Simulation", nullptr)); } // retranslateUi }; diff --git a/particle-track-and-trace/src/commands/TimerCallbackCommand.cpp b/particle-track-and-trace/src/commands/TimerCallbackCommand.cpp index 8a206d0..515feea 100644 --- a/particle-track-and-trace/src/commands/TimerCallbackCommand.cpp +++ b/particle-track-and-trace/src/commands/TimerCallbackCommand.cpp @@ -15,9 +15,7 @@ TimerCallbackCommand* TimerCallbackCommand::New(Program *program) { void TimerCallbackCommand::Execute(vtkObject* caller, unsigned long eventId, void* vtkNotUsed(callData)) { auto intr = reinterpret_cast(caller); - if (eventId == vtkCommand::KeyPressEvent and not strcmp("space", intr->GetKeySym())) { - this->paused = ! this->paused; - } else if (eventId == vtkCommand::TimerEvent and not this->paused) { + if (eventId == vtkCommand::TimerEvent and not this->paused) { this->time += this->dt; if (this->time >= this->maxTime) {