diff --git a/include/moCapSelectionWidget.h b/include/moCapSelectionWidget.h index 2bb92cde5868f5fc7afa93d7a2ee150eb05eda58..d9ecd261dab51cd37a17d0189f1434a6934e354e 100644 --- a/include/moCapSelectionWidget.h +++ b/include/moCapSelectionWidget.h @@ -29,6 +29,7 @@ public: ~MoCapSelectionWidget() override; void setFileName(); + void setFileName(QString filename); MoCapPersonMetadata getMetadata() const; bool isFilledOut() const; diff --git a/src/moCapSelectionWidget.cpp b/src/moCapSelectionWidget.cpp index e35b043be920efe6292f89ede35957121c5ab1c0..689928adda20e2cec9bdcaab939d34049945c17b 100644 --- a/src/moCapSelectionWidget.cpp +++ b/src/moCapSelectionWidget.cpp @@ -21,7 +21,7 @@ MoCapSelectionWidget::MoCapSelectionWidget(QWidget *parent, const QMap<QString, mUi->offSetSpinBox->setRange(-offsetRange, offsetRange); mUi->offSetSpinBox->setSingleStep(0.01); - connect(mUi->browseFileButton, &QPushButton::clicked, this, &MoCapSelectionWidget::setFileName); + connect(mUi->browseFileButton, &QPushButton::clicked, this, QOverload<>::of(&MoCapSelectionWidget::setFileName)); connect(mUi->btnDelete, &QPushButton::clicked, this, &MoCapSelectionWidget::deleteLater); } @@ -69,6 +69,20 @@ void MoCapSelectionWidget::setFileName() extensionsString << ")"; QString filename = QFileDialog::getOpenFileName( this, tr("Open C3D File"), QDir::currentPath(), QString::fromStdString(extensionsString.str())); + setFileName(filename); +} + +/** + * @brief Sets the filename to the given string + * + * Sets filePathLabel. Also sets mFilledOut to true if + * a file was selected, i.e. name != "" or false if + * name == "" + * + * @param filename name of MoCap-file + */ +void MoCapSelectionWidget::setFileName(QString filename) +{ mUi->filePathLabel->clear(); mUi->filePathLabel->setText(filename); mFilledOut = !filename.isEmpty(); diff --git a/src/openMoCapDialog.cpp b/src/openMoCapDialog.cpp index 75620b484f39b88906fdb9a07f44633cbbfa8631..a4e46a64fd3d87a1d49344e70bab376ca18de438 100644 --- a/src/openMoCapDialog.cpp +++ b/src/openMoCapDialog.cpp @@ -105,5 +105,19 @@ OpenMoCapDialog::~OpenMoCapDialog() void OpenMoCapDialog::on_btnAddSelection_clicked() { - mUi->moCapSelections->layout()->addWidget(new MoCapSelectionWidget(this, mMoCapSystems)); + std::stringstream extensions; + extensions << "All MoCap File Types ("; + for(const auto &extension : moCapFileExtensions) + { + extensions << " *." << extension.second; + } + extensions << ")"; + auto selectedFiles = QFileDialog::getOpenFileNames( + this, tr("Open C3D File"), QDir::currentPath(), QString::fromStdString(extensions.str())); + for(const auto &file : selectedFiles) + { + MoCapSelectionWidget *widget = new MoCapSelectionWidget(this, mMoCapSystems); + widget->setFileName(file); + mUi->moCapSelections->layout()->addWidget(widget); + } }