From 87e91069e01fa2e196affe06f52e150382b3e58c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B8rn=20Erik=20Jensen?= Date: Tue, 22 May 2018 15:10:31 +0200 Subject: [PATCH] #2947 File hierarchy dialog. Fix effective filter --- .../Commands/RicFileHierarchyDialog.cpp | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/ApplicationCode/Commands/RicFileHierarchyDialog.cpp b/ApplicationCode/Commands/RicFileHierarchyDialog.cpp index f4dbe65eb9..e138056f52 100644 --- a/ApplicationCode/Commands/RicFileHierarchyDialog.cpp +++ b/ApplicationCode/Commands/RicFileHierarchyDialog.cpp @@ -69,7 +69,7 @@ static const QChar SEPARATOR = RiaFilePathTools::SEPARATOR; static QStringList prefixStrings(const QStringList& strings, const QString& prefix); static QStringList trimLeftStrings(const QStringList& strings, const QString& trimText); static void sortStringsByLength(QStringList& strings, bool ascending = true); - +static QString effectivePathFilter(const QString& enteredPathFilter); //-------------------------------------------------------------------------------------------------- /// @@ -602,7 +602,7 @@ void RicFileHierarchyDialog::updateEffectiveFilter() { QString effFilter = QString("%1/%2/%3%4") .arg(m_rootDir->text()) - .arg(!m_pathFilter->text().isEmpty() ? m_pathFilter->text() : "*") + .arg(effectivePathFilter(m_pathFilter->text())) .arg(fileNameFilter()) .arg(fileExtensionsText()); @@ -853,3 +853,13 @@ void sortStringsByLength(QStringList& strings, bool ascending /*= true*/) } + +QString effectivePathFilter(const QString& enteredPathFilter) +{ + QString p = RiaFilePathTools::toInternalSeparator(enteredPathFilter); + + if (p.endsWith(QString(SEPARATOR) + "**")) return p; + else if (p.endsWith(QString(SEPARATOR) + "*")) return p + "*"; + else if (p.endsWith("**")) return p.replace("**", "*/**"); + else return p + "/**"; +} \ No newline at end of file