| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- /*
- * 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 <QPushButton>
- #include <QMessageBox>
- 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();
- }
- }
|