Commit 5008f63761793bee0c81e88e6f12ad9aff63e12c
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 | { |