/* * This file is part of the Carpe Diem Active Learning Software, * Copyright (C) 2017 Clemens-Alexander Brust (ikosa dot de at gmail dot com). * * For licensing information, see the LICENSE file included with this project. */ #include "SelectSegmentDialog.h" #include "ui_SelectSegmentDialog.h" #include #include SelectSegmentDialog::SelectSegmentDialog(QWidget *parent, Conv::SegmentSet* set, Project* project): QDialog(parent), project(project), set(set), ui(new Ui::SelectSegmentDialog) { ui->setupUi(this); ui->buttonBox->button(QDialogButtonBox::Ok)->setText("Review"); if(set != nullptr && project != nullptr) { UpdateSegments(); } else { reject(); } } SelectSegmentDialog::~SelectSegmentDialog() { delete ui; } void SelectSegmentDialog::UpdateSegments() { ui->segmentListWidget->clear(); for(unsigned int s = 0; s < set->GetSegmentCount(); s++) { Conv::Segment* segment = set->GetSegment(s); ui->segmentListWidget->addItem(QString::fromStdString(segment->name)); } if(set->GetSegmentCount() > 0) { segment = set->GetSegment(0); ui->segmentListWidget->setCurrentRow(0); ui->segmentListWidget->item(0)->setSelected(true); ui->removeButton->setEnabled(true); } else { ui->buttonBox->button(QDialogButtonBox::Ok)->setEnabled(false); ui->removeButton->setEnabled(false); } } void SelectSegmentDialog::on_segmentListWidget_currentItemChanged(QListWidgetItem *current, QListWidgetItem *previous) { if(current != nullptr) { segment = set->GetSegment(ui->segmentListWidget->row(current)); } } void SelectSegmentDialog::on_removeButton_clicked() { if(segment != nullptr) { set->RemoveSegment(ui->segmentListWidget->currentRow()); UpdateSegments(); } } void SelectSegmentDialog::on_moveToNewButton_clicked() { if(segment != nullptr) { set->RemoveSegment(ui->segmentListWidget->currentRow()); for(unsigned int sample = 0; sample < segment->GetSampleCount(); sample++) { Conv::JSON& sample_json = segment->GetSample(sample); std::string filename = sample_json["image_rpath"]; if(!(project->AddSample(filename))) { QMessageBox::critical(this, tr("Error"), tr("Could not import unlabeled sample! See log for details."), QMessageBox::Ok); } } UpdateSegments(); } }