diff --git a/openbr/gui/subjectviewer.cpp b/openbr/gui/subjectviewer.cpp index d3861da..3727d61 100644 --- a/openbr/gui/subjectviewer.cpp +++ b/openbr/gui/subjectviewer.cpp @@ -3,10 +3,24 @@ using namespace br; SubjectViewer::SubjectViewer(QWidget *parent) - : TemplateViewer(parent) + : QWidget(parent) { files = FileList(); currentIndex = 0; + + info.setText("-"); + info.setAlignment(Qt::AlignCenter); + info.setSizePolicy(QSizePolicy::Ignored, QSizePolicy::Maximum); + + layout.addWidget(&viewer); + layout.addWidget(&info); + + setLayout(&layout); + + connect(&viewer, SIGNAL(newInput(br::File)), this, SIGNAL(newInput(br::File))); + connect(&viewer, SIGNAL(newInput(QImage)), this, SIGNAL(newInput(QImage))); + connect(&viewer, SIGNAL(newMousePoint(QPointF)), this, SIGNAL(newMousePoint(QPointF))); + connect(&viewer, SIGNAL(selectedInput(br::File)), this, SIGNAL(selectedInput(br::File))); } void SubjectViewer::setFiles(const FileList &files) @@ -15,17 +29,22 @@ void SubjectViewer::setFiles(const FileList &files) currentIndex = 0; this->files = files; - TemplateViewer::setFile(this->files[currentIndex]); + + info.setText(QString::number(currentIndex+1) + "/" + QString::number(files.size())); + viewer.setFile(this->files[currentIndex]); } void SubjectViewer::wheelEvent(QWheelEvent *event) { QPoint numDegrees = event->angleDelta(); - if (numDegrees.y() < 0 && currentIndex > 0) - TemplateViewer::setFile(this->files[--currentIndex]); - else if (numDegrees.y() > 0 && currentIndex < files.size()-1) - TemplateViewer::setFile(this->files[++currentIndex]); + if (numDegrees.y() < 0 && currentIndex > 0) { + viewer.setFile(this->files[--currentIndex]); + info.setText(QString::number(currentIndex+1) + "/" + QString::number(files.size())); + } else if (numDegrees.y() > 0 && currentIndex < files.size()-1) { + viewer.setFile(this->files[++currentIndex]); + info.setText(QString::number(currentIndex+1) + "/" + QString::number(files.size())); + } event->accept(); } diff --git a/openbr/gui/subjectviewer.h b/openbr/gui/subjectviewer.h index 083c64f..742fb91 100644 --- a/openbr/gui/subjectviewer.h +++ b/openbr/gui/subjectviewer.h @@ -1,7 +1,10 @@ #ifndef SUBJECTVIEWER_H #define SUBJECTVIEWER_H +#include +#include #include +#include #include #include @@ -9,19 +12,31 @@ namespace br { -class BR_EXPORT SubjectViewer : public TemplateViewer +class BR_EXPORT SubjectViewer : public QWidget { + Q_OBJECT + + QVBoxLayout layout; + QLabel info; FileList files; int currentIndex; public: explicit SubjectViewer(QWidget *parent = 0); + TemplateViewer viewer; + public slots: void setFiles(const FileList &files); protected slots: void wheelEvent(QWheelEvent *); + +signals: + void newInput(br::File); + void newInput(QImage); + void newMousePoint(QPointF); + void selectedInput(br::File); }; } diff --git a/openbr/gui/subjectviewergrid.cpp b/openbr/gui/subjectviewergrid.cpp index b6bd96e..09e1a8e 100644 --- a/openbr/gui/subjectviewergrid.cpp +++ b/openbr/gui/subjectviewergrid.cpp @@ -6,6 +6,7 @@ SubjectViewerGrid::SubjectViewerGrid(QWidget *parent) : QWidget(parent) { setLayout(&gridLayout); + setFiles(QList()); } void SubjectViewerGrid::setFiles(const QList &files) @@ -34,10 +35,10 @@ void SubjectViewerGrid::setFiles(const QList &files) if (i < files.size()) { subjectViewers[i]->setFiles(files[i]); } else { - subjectViewers[i]->setDefaultText(""+ (size > 1 ? QString() : QString("Drag Photo or Folder Here")) +""); + subjectViewers[i]->viewer.setDefaultText(""+ (size > 1 ? QString() : QString("Drag Photo or Folder Here")) +""); subjectViewers[i]->setFiles(FileList()); } - subjectViewers[i]->setEditable(files.size() == 1); + subjectViewers[i]->viewer.setEditable(files.size() == 1); } } diff --git a/openbr/gui/subjectviewergrid.h b/openbr/gui/subjectviewergrid.h index 966b0f6..df4edc7 100644 --- a/openbr/gui/subjectviewergrid.h +++ b/openbr/gui/subjectviewergrid.h @@ -25,6 +25,11 @@ public: public slots: void setFiles(const QList &file); +signals: + void newInput(br::File); + void newInput(QImage); + void newMousePoint(QPointF); + void selectedInput(br::File); }; } diff --git a/openbr/gui/templateviewer.cpp b/openbr/gui/templateviewer.cpp index b313f71..c108a0b 100644 --- a/openbr/gui/templateviewer.cpp +++ b/openbr/gui/templateviewer.cpp @@ -45,7 +45,7 @@ void TemplateViewer::setFile(const File &file_) landmarks.append(QPointF()); nearestLandmark = -1; - QtConcurrent::run(this, &TemplateViewer::refreshImage); + TemplateViewer::refreshImage(); } void TemplateViewer::setEditable(bool enabled)