Commit a3236cabc9ad0d2d792c7e99c754068b807182b5
1 parent
153ba3ef
added option to EmptyGallery to filter based on file extension
Showing
1 changed file
with
11 additions
and
0 deletions
openbr/plugins/gallery.cpp
| @@ -14,6 +14,7 @@ | @@ -14,6 +14,7 @@ | ||
| 14 | * limitations under the License. * | 14 | * limitations under the License. * |
| 15 | * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ | 15 | * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ |
| 16 | 16 | ||
| 17 | +#include <QRegularExpression> | ||
| 17 | #include <QtConcurrentRun> | 18 | #include <QtConcurrentRun> |
| 18 | #ifndef BR_EMBEDDED | 19 | #ifndef BR_EMBEDDED |
| 19 | #include <QNetworkAccessManager> | 20 | #include <QNetworkAccessManager> |
| @@ -128,10 +129,13 @@ BR_REGISTER(Gallery, galGallery) | @@ -128,10 +129,13 @@ BR_REGISTER(Gallery, galGallery) | ||
| 128 | * \ingroup galleries | 129 | * \ingroup galleries |
| 129 | * \brief Reads/writes templates to/from folders. | 130 | * \brief Reads/writes templates to/from folders. |
| 130 | * \author Josh Klontz \cite jklontz | 131 | * \author Josh Klontz \cite jklontz |
| 132 | + * \param regexp An optional regular expression to match against the files extension. | ||
| 131 | */ | 133 | */ |
| 132 | class EmptyGallery : public Gallery | 134 | class EmptyGallery : public Gallery |
| 133 | { | 135 | { |
| 134 | Q_OBJECT | 136 | Q_OBJECT |
| 137 | + Q_PROPERTY(QString regexp READ get_regexp WRITE set_regexp RESET reset_regexp STORED false) | ||
| 138 | + BR_PROPERTY(QString, regexp, "") | ||
| 135 | 139 | ||
| 136 | void init() | 140 | void init() |
| 137 | { | 141 | { |
| @@ -160,6 +164,13 @@ class EmptyGallery : public Gallery | @@ -160,6 +164,13 @@ class EmptyGallery : public Gallery | ||
| 160 | foreach (const QString &fileName, QtUtils::getFiles(file.name, false)) | 164 | foreach (const QString &fileName, QtUtils::getFiles(file.name, false)) |
| 161 | templates.append(File(fileName, dir.dirName())); | 165 | templates.append(File(fileName, dir.dirName())); |
| 162 | 166 | ||
| 167 | + if (!regexp.isEmpty()) { | ||
| 168 | + const QRegularExpression re(regexp); | ||
| 169 | + for (int i=templates.size()-1; i>=0; i--) | ||
| 170 | + if (!re.match(templates[i].file.suffix()).hasMatch()) | ||
| 171 | + templates.removeAt(i); | ||
| 172 | + } | ||
| 173 | + | ||
| 163 | return templates; | 174 | return templates; |
| 164 | } | 175 | } |
| 165 | 176 |