Commit 63f5d25770c1e03dbd748fcbf09c51ce22bccdfd

Authored by Charles Otto
1 parent f58c9b50

In dbGallery, store the value of the second column using its field name

This, rather than always storing it as label. The name of the column can be
set in the SQL query, so there is no particular need to change it in dbGallery
Showing 1 changed file with 10 additions and 2 deletions
openbr/plugins/gallery.cpp
@@ -701,11 +701,16 @@ class dbGallery : public Gallery @@ -701,11 +701,16 @@ class dbGallery : public Gallery
701 query = query.mid(1, query.size()-2); 701 query = query.mid(1, query.size()-2);
702 if (!q.exec(query)) 702 if (!q.exec(query))
703 qFatal("%s.", qPrintable(q.lastError().text())); 703 qFatal("%s.", qPrintable(q.lastError().text()));
  704 +
704 if ((q.record().count() == 0) || (q.record().count() > 3)) 705 if ((q.record().count() == 0) || (q.record().count() > 3))
705 qFatal("Query record expected one to three fields, got %d.", q.record().count()); 706 qFatal("Query record expected one to three fields, got %d.", q.record().count());
706 const bool hasMetadata = (q.record().count() >= 2); 707 const bool hasMetadata = (q.record().count() >= 2);
707 const bool hasFilter = (q.record().count() >= 3); 708 const bool hasFilter = (q.record().count() >= 3);
708 709
  710 + QString labelName = "Label";
  711 + if (q.record().count() >= 2)
  712 + labelName = q.record().fieldName(1);
  713 +
709 // subset = seed:subjectMaxSize:numSubjects:subjectMinSize or 714 // subset = seed:subjectMaxSize:numSubjects:subjectMinSize or
710 // subset = seed:{Metadata,...,Metadata}:numSubjects 715 // subset = seed:{Metadata,...,Metadata}:numSubjects
711 int seed = 0, subjectMaxSize = std::numeric_limits<int>::max(), numSubjects = std::numeric_limits<int>::max(), subjectMinSize = 0; 716 int seed = 0, subjectMaxSize = std::numeric_limits<int>::max(), numSubjects = std::numeric_limits<int>::max(), subjectMinSize = 0;
@@ -731,6 +736,7 @@ class dbGallery : public Gallery @@ -731,6 +736,7 @@ class dbGallery : public Gallery
731 QHash<QString, QList<Entry> > entries; // QHash<Label, QList<Entry> > 736 QHash<QString, QList<Entry> > entries; // QHash<Label, QList<Entry> >
732 while (q.next()) { 737 while (q.next()) {
733 if (hasFilter && (seed >= 0) && (qHash(q.value(2).toString()) % 2 != (uint)seed % 2)) continue; // Ensures training and testing filters don't overlap 738 if (hasFilter && (seed >= 0) && (qHash(q.value(2).toString()) % 2 != (uint)seed % 2)) continue; // Ensures training and testing filters don't overlap
  739 +
734 if (metadataFields.isEmpty()) 740 if (metadataFields.isEmpty())
735 entries[hasMetadata ? q.value(1).toString() : ""].append(QPair<QString,QString>(q.value(0).toString(), hasFilter ? q.value(2).toString() : "")); 741 entries[hasMetadata ? q.value(1).toString() : ""].append(QPair<QString,QString>(q.value(0).toString(), hasFilter ? q.value(2).toString() : ""));
736 else 742 else
@@ -765,8 +771,10 @@ class dbGallery : public Gallery @@ -765,8 +771,10 @@ class dbGallery : public Gallery
765 771
766 if (entryList.size() > subjectMaxSize) 772 if (entryList.size() > subjectMaxSize)
767 std::random_shuffle(entryList.begin(), entryList.end()); 773 std::random_shuffle(entryList.begin(), entryList.end());
768 - foreach (const Entry &entry, entryList.mid(0, subjectMaxSize))  
769 - templates.append(File(entry.first, label)); 774 + foreach (const Entry &entry, entryList.mid(0, subjectMaxSize)) {
  775 + templates.append(File(entry.first));
  776 + templates.last().file.set(labelName, label);
  777 + }
770 numSubjects--; 778 numSubjects--;
771 } 779 }
772 } 780 }