Commit 80a9fc2e50a78bd2d43b5c1a6e64c7d2c5e6e42f

Authored by Scott Klum
1 parent 3dee491d

Updated subjectviewer to show number of images per subject

openbr/gui/subjectviewer.cpp
@@ -3,10 +3,24 @@ @@ -3,10 +3,24 @@
3 using namespace br; 3 using namespace br;
4 4
5 SubjectViewer::SubjectViewer(QWidget *parent) 5 SubjectViewer::SubjectViewer(QWidget *parent)
6 - : TemplateViewer(parent) 6 + : QWidget(parent)
7 { 7 {
8 files = FileList(); 8 files = FileList();
9 currentIndex = 0; 9 currentIndex = 0;
  10 +
  11 + info.setText("-");
  12 + info.setAlignment(Qt::AlignCenter);
  13 + info.setSizePolicy(QSizePolicy::Ignored, QSizePolicy::Maximum);
  14 +
  15 + layout.addWidget(&viewer);
  16 + layout.addWidget(&info);
  17 +
  18 + setLayout(&layout);
  19 +
  20 + connect(&viewer, SIGNAL(newInput(br::File)), this, SIGNAL(newInput(br::File)));
  21 + connect(&viewer, SIGNAL(newInput(QImage)), this, SIGNAL(newInput(QImage)));
  22 + connect(&viewer, SIGNAL(newMousePoint(QPointF)), this, SIGNAL(newMousePoint(QPointF)));
  23 + connect(&viewer, SIGNAL(selectedInput(br::File)), this, SIGNAL(selectedInput(br::File)));
10 } 24 }
11 25
12 void SubjectViewer::setFiles(const FileList &files) 26 void SubjectViewer::setFiles(const FileList &files)
@@ -15,17 +29,22 @@ void SubjectViewer::setFiles(const FileList &files) @@ -15,17 +29,22 @@ void SubjectViewer::setFiles(const FileList &files)
15 29
16 currentIndex = 0; 30 currentIndex = 0;
17 this->files = files; 31 this->files = files;
18 - TemplateViewer::setFile(this->files[currentIndex]); 32 +
  33 + info.setText(QString::number(currentIndex+1) + "/" + QString::number(files.size()));
  34 + viewer.setFile(this->files[currentIndex]);
19 } 35 }
20 36
21 void SubjectViewer::wheelEvent(QWheelEvent *event) 37 void SubjectViewer::wheelEvent(QWheelEvent *event)
22 { 38 {
23 QPoint numDegrees = event->angleDelta(); 39 QPoint numDegrees = event->angleDelta();
24 40
25 - if (numDegrees.y() < 0 && currentIndex > 0)  
26 - TemplateViewer::setFile(this->files[--currentIndex]);  
27 - else if (numDegrees.y() > 0 && currentIndex < files.size()-1)  
28 - TemplateViewer::setFile(this->files[++currentIndex]); 41 + if (numDegrees.y() < 0 && currentIndex > 0) {
  42 + viewer.setFile(this->files[--currentIndex]);
  43 + info.setText(QString::number(currentIndex+1) + "/" + QString::number(files.size()));
  44 + } else if (numDegrees.y() > 0 && currentIndex < files.size()-1) {
  45 + viewer.setFile(this->files[++currentIndex]);
  46 + info.setText(QString::number(currentIndex+1) + "/" + QString::number(files.size()));
  47 + }
29 48
30 event->accept(); 49 event->accept();
31 } 50 }
openbr/gui/subjectviewer.h
1 #ifndef SUBJECTVIEWER_H 1 #ifndef SUBJECTVIEWER_H
2 #define SUBJECTVIEWER_H 2 #define SUBJECTVIEWER_H
3 3
  4 +#include <QObject>
  5 +#include <QSharedPointer>
4 #include <QList> 6 #include <QList>
  7 +#include <QVBoxLayout>
5 8
6 #include <openbr/openbr_plugin.h> 9 #include <openbr/openbr_plugin.h>
7 #include <openbr/gui/templateviewer.h> 10 #include <openbr/gui/templateviewer.h>
@@ -9,19 +12,31 @@ @@ -9,19 +12,31 @@
9 namespace br 12 namespace br
10 { 13 {
11 14
12 -class BR_EXPORT SubjectViewer : public TemplateViewer 15 +class BR_EXPORT SubjectViewer : public QWidget
13 { 16 {
  17 + Q_OBJECT
  18 +
  19 + QVBoxLayout layout;
  20 + QLabel info;
14 FileList files; 21 FileList files;
15 int currentIndex; 22 int currentIndex;
16 23
17 public: 24 public:
18 explicit SubjectViewer(QWidget *parent = 0); 25 explicit SubjectViewer(QWidget *parent = 0);
19 26
  27 + TemplateViewer viewer;
  28 +
20 public slots: 29 public slots:
21 void setFiles(const FileList &files); 30 void setFiles(const FileList &files);
22 31
23 protected slots: 32 protected slots:
24 void wheelEvent(QWheelEvent *); 33 void wheelEvent(QWheelEvent *);
  34 +
  35 +signals:
  36 + void newInput(br::File);
  37 + void newInput(QImage);
  38 + void newMousePoint(QPointF);
  39 + void selectedInput(br::File);
25 }; 40 };
26 41
27 } 42 }
openbr/gui/subjectviewergrid.cpp
@@ -6,6 +6,7 @@ SubjectViewerGrid::SubjectViewerGrid(QWidget *parent) : @@ -6,6 +6,7 @@ SubjectViewerGrid::SubjectViewerGrid(QWidget *parent) :
6 QWidget(parent) 6 QWidget(parent)
7 { 7 {
8 setLayout(&gridLayout); 8 setLayout(&gridLayout);
  9 + setFiles(QList<FileList>());
9 } 10 }
10 11
11 void SubjectViewerGrid::setFiles(const QList<FileList> &files) 12 void SubjectViewerGrid::setFiles(const QList<FileList> &files)
@@ -34,10 +35,10 @@ void SubjectViewerGrid::setFiles(const QList&lt;FileList&gt; &amp;files) @@ -34,10 +35,10 @@ void SubjectViewerGrid::setFiles(const QList&lt;FileList&gt; &amp;files)
34 if (i < files.size()) { 35 if (i < files.size()) {
35 subjectViewers[i]->setFiles(files[i]); 36 subjectViewers[i]->setFiles(files[i]);
36 } else { 37 } else {
37 - subjectViewers[i]->setDefaultText("<b>"+ (size > 1 ? QString() : QString("Drag Photo or Folder Here")) +"</b>"); 38 + subjectViewers[i]->viewer.setDefaultText("<b>"+ (size > 1 ? QString() : QString("Drag Photo or Folder Here")) +"</b>");
38 subjectViewers[i]->setFiles(FileList()); 39 subjectViewers[i]->setFiles(FileList());
39 } 40 }
40 41
41 - subjectViewers[i]->setEditable(files.size() == 1); 42 + subjectViewers[i]->viewer.setEditable(files.size() == 1);
42 } 43 }
43 } 44 }
openbr/gui/subjectviewergrid.h
@@ -25,6 +25,11 @@ public: @@ -25,6 +25,11 @@ public:
25 public slots: 25 public slots:
26 void setFiles(const QList<br::FileList> &file); 26 void setFiles(const QList<br::FileList> &file);
27 27
  28 +signals:
  29 + void newInput(br::File);
  30 + void newInput(QImage);
  31 + void newMousePoint(QPointF);
  32 + void selectedInput(br::File);
28 }; 33 };
29 34
30 } 35 }
openbr/gui/templateviewer.cpp
@@ -45,7 +45,7 @@ void TemplateViewer::setFile(const File &amp;file_) @@ -45,7 +45,7 @@ void TemplateViewer::setFile(const File &amp;file_)
45 landmarks.append(QPointF()); 45 landmarks.append(QPointF());
46 nearestLandmark = -1; 46 nearestLandmark = -1;
47 47
48 - QtConcurrent::run(this, &TemplateViewer::refreshImage); 48 + TemplateViewer::refreshImage();
49 } 49 }
50 50
51 void TemplateViewer::setEditable(bool enabled) 51 void TemplateViewer::setEditable(bool enabled)