Commit 8b767b4e603b8386a6447c775e3cb3893d32673e
1 parent
1e61fbe1
Added some functionality to removetemplates
Showing
1 changed file
with
11 additions
and
4 deletions
openbr/plugins/metadata/removetemplates.cpp
| ... | ... | @@ -31,15 +31,22 @@ class RemoveTemplatesTransform : public UntrainableMetaTransform |
| 31 | 31 | Q_OBJECT |
| 32 | 32 | Q_PROPERTY(QString regexp READ get_regexp WRITE set_regexp RESET reset_regexp STORED false) |
| 33 | 33 | Q_PROPERTY(QString key READ get_key WRITE set_key RESET reset_key STORED false) |
| 34 | + Q_PROPERTY(bool keep READ get_keep WRITE set_keep RESET reset_keep STORED false) | |
| 34 | 35 | BR_PROPERTY(QString, regexp, "") |
| 35 | 36 | BR_PROPERTY(QString, key, "") |
| 37 | + BR_PROPERTY(bool, keep, false) | |
| 36 | 38 | |
| 37 | 39 | void project(const Template &src, Template &dst) const |
| 38 | 40 | { |
| 39 | - const QRegularExpression re(regexp); | |
| 40 | - const QRegularExpressionMatch match = re.match(key.isEmpty() ? src.file.suffix() : src.file.get<QString>(key)); | |
| 41 | - if (match.hasMatch()) dst = Template(); | |
| 42 | - else dst = src; | |
| 41 | + dst = src; | |
| 42 | + QRegExp re(regexp); | |
| 43 | + re.setPatternSyntax(QRegExp::Wildcard); | |
| 44 | + bool match = re.exactMatch(key.isEmpty() ? src.file.suffix() : src.file.get<QString>(key)); | |
| 45 | + | |
| 46 | + if (keep && !match) | |
| 47 | + dst.file.fte = true; | |
| 48 | + else if (!keep && match) | |
| 49 | + dst.file.fte = true; | |
| 43 | 50 | } |
| 44 | 51 | }; |
| 45 | 52 | ... | ... |