diff --git a/sdk/core/bee.cpp b/sdk/core/bee.cpp index f81cc24..430d949 100644 --- a/sdk/core/bee.cpp +++ b/sdk/core/bee.cpp @@ -34,7 +34,7 @@ using namespace cv; using namespace br; /**** BEE ****/ -FileList BEE::readSigset(QString sigset, bool ignoreMetadata) +FileList BEE::readSigset(const QString &sigset, bool ignoreMetadata) { FileList fileList; @@ -90,24 +90,22 @@ FileList BEE::readSigset(QString sigset, bool ignoreMetadata) return fileList; } -void BEE::writeSigset(const QString &sigset, const br::FileList &fileList) +void BEE::writeSigset(const QString &sigset, const br::FileList &files, bool ignoreMetadata) { - typedef QPair Signature; // QPair - QList signatures; - - foreach (const File &file, fileList) - signatures.append(Signature(file.subject(), file.name)); - - QFile file(sigset); - file.open(QFile::WriteOnly); - file.write("\n" - "\n"); - foreach (const Signature &signature, signatures) - file.write(qPrintable(QString("\t\n" - "\t\t\n" - "\t\n").arg(signature.first, signature.second))); - file.write("\n"); - file.close(); + QStringList lines; lines.reserve(3*files.size()+3); + lines.append(""); + lines.append(""); + foreach (const File &file, files) { + QStringList metadata; + if (!ignoreMetadata) + foreach (const QString &key, file.localKeys()) + metadata.append(key+"=\""+file.getString(key, "?")+"\""); + lines.append("\t"); + lines.append("\t\t"); + lines.append("\t"); + } + lines.append(""); + QtUtils::writeFile(sigset, lines); } template diff --git a/sdk/core/bee.h b/sdk/core/bee.h index f51c1c3..220a3f4 100644 --- a/sdk/core/bee.h +++ b/sdk/core/bee.h @@ -35,8 +35,8 @@ namespace BEE typedef uchar Mask_t; // Sigset IO - br::FileList readSigset(QString sigset, bool ignoreMetadata = false); - void writeSigset(const QString &sigset, const br::FileList &metadataList); + br::FileList readSigset(const QString &sigset, bool ignoreMetadata = false); + void writeSigset(const QString &sigset, const br::FileList &files, bool ignoreMetadata = false); // Matrix IO cv::Mat readSimmat(const br::File &simmat); diff --git a/sdk/openbr_plugin.h b/sdk/openbr_plugin.h index 7144360..5fdc954 100644 --- a/sdk/openbr_plugin.h +++ b/sdk/openbr_plugin.h @@ -330,6 +330,7 @@ struct TemplateList : public QList