Commit 5008f63761793bee0c81e88e6f12ad9aff63e12c

Authored by caotto
2 parents d177a459 9dacfb10

Merge pull request #91 from biometrics/subject_transform

Rework SubjectTransform
Showing 1 changed file with 11 additions and 7 deletions
openbr/plugins/misc.cpp
@@ -354,32 +354,36 @@ BR_REGISTER(Transform, AsTransform) @@ -354,32 +354,36 @@ BR_REGISTER(Transform, AsTransform)
354 354
355 /*! 355 /*!
356 * \ingroup transforms 356 * \ingroup transforms
357 - * \brief Change the template subject using a regular expresion matched to the file's base name. 357 + * \brief Apply the input regular expression to the value of inputProperty, store the matched portion in outputProperty.
358 * \author Josh Klontz \cite jklontz 358 * \author Josh Klontz \cite jklontz
359 */ 359 */
360 -class SubjectTransform : public UntrainableMetaTransform 360 +class RegexPropertyTransform : public UntrainableMetaTransform
361 { 361 {
362 Q_OBJECT 362 Q_OBJECT
363 Q_PROPERTY(QString regexp READ get_regexp WRITE set_regexp RESET reset_regexp STORED false) 363 Q_PROPERTY(QString regexp READ get_regexp WRITE set_regexp RESET reset_regexp STORED false)
  364 + Q_PROPERTY(QString inputProperty READ get_inputProperty WRITE set_inputProperty RESET reset_inputProperty STORED false)
  365 + Q_PROPERTY(QString outputProperty READ get_outputProperty WRITE set_outputProperty RESET reset_outputProperty STORED false)
364 BR_PROPERTY(QString, regexp, "(.*)") 366 BR_PROPERTY(QString, regexp, "(.*)")
  367 + BR_PROPERTY(QString, inputProperty, "name")
  368 + BR_PROPERTY(QString, outputProperty, "Label")
365 369
366 void project(const Template &src, Template &dst) const 370 void project(const Template &src, Template &dst) const
367 { 371 {
368 dst = src; 372 dst = src;
369 QRegularExpression re(regexp); 373 QRegularExpression re(regexp);
370 - QRegularExpressionMatch match = re.match(dst.file.baseName()); 374 + QRegularExpressionMatch match = re.match(dst.file.get<QString>(inputProprety));
371 if (!match.hasMatch()) 375 if (!match.hasMatch())
372 - qFatal("Unable to match regular expression \"%s\" to base name \"%s\"!", qPrintable(regexp), qPrintable(dst.file.baseName()));  
373 - dst.file.set("Subject", match.captured(match.lastCapturedIndex())); 376 + qFatal("Unable to match regular expression \"%s\" to base name \"%s\"!", qPrintable(regexp), qPrintable(dst.file.get<QString>(inputProperty)));
  377 + dst.file.set(outputProperty, match.captured(match.lastCapturedIndex()));
374 } 378 }
375 }; 379 };
376 380
377 -BR_REGISTER(Transform, SubjectTransform) 381 +BR_REGISTER(Transform, RegexPropertyTransform)
378 382
379 /*! 383 /*!
380 * \ingroup transforms 384 * \ingroup transforms
381 * \brief Remove templates with the specified file extension or metadata value. 385 * \brief Remove templates with the specified file extension or metadata value.
382 - * \author Josh Klontz \cite jklontz 386 + * \author Charles Otto \cite caotto
383 */ 387 */
384 class RemoveTemplatesTransform : public UntrainableMetaTransform 388 class RemoveTemplatesTransform : public UntrainableMetaTransform
385 { 389 {