[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: KDE/kdelibs/kio/kfile
From: Robertson Bayer <rob.bayer () gmail ! com>
Date: 2009-04-03 1:04:43
Message-ID: 1238720683.997811.26801.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 948437 by rbayer:
Make KFileDialog behave more normally with Native Dialogs enables
M +8 -20 kfiledialog.cpp
--- trunk/KDE/kdelibs/kio/kfile/kfiledialog.cpp #948436:948437
@@ -77,7 +77,7 @@
{
QString converted;
QStringList filters = _filters;
- qSort( filters );
+
foreach (const QString& current, filters) {
QString new_f; //filter part
QString new_name; //filter name part
@@ -90,37 +90,25 @@
new_f = current.left(p);
new_name = current.mid(p+1);
}
- // remove (.....) from name
- p = new_name.indexOf('(');
- int p2 = new_name.lastIndexOf(')');
- QString new_name1, new_name2;
- if (p!=-1)
- new_name1 = new_name.left(p);
- if (p2!=-1)
- new_name2 = new_name.mid(p2+1);
- if (!new_name1.isEmpty() || !new_name2.isEmpty())
- new_name = new_name1.trimmed() + QLatin1Char(' ') + new_name2.trimmed();
- new_name.remove('(');
- new_name.remove(')');
- new_name = new_name.trimmed();
+ //Qt filters assume anything in () is the file extension list
+ new_name = new_name.replace('(', '[').replace(')',']').trimmed();
- // make filters unique: remove uppercase extensions (case doesn't matter on win32, BTW)
+ //convert everything to lower case and remove dupes (doesn't matter on win32)
QStringList allfiltersUnique;
const QStringList origList( new_f.split(' ', QString::SkipEmptyParts) );
foreach (const QString& origFilter, origList) {
- if (origFilter == origFilter.toLower())
- allfiltersUnique += origFilter;
+ if (!allfiltersUnique.contains(origFilter, Qt::CaseInsensitive))
+ allfiltersUnique += origFilter.toLower();
}
if (!converted.isEmpty())
converted += ";;";
converted += (new_name + " (" + allfiltersUnique.join(" ") + QLatin1Char(')'));
- } // foreach
+ }
// Strip escape characters from escaped '/' characters.
- for (int pos = 0; (pos = converted.indexOf("\\/", pos)) != -1; ++pos)
- converted.remove(pos, 1);
+ converted.replace("\\/","/");
return converted;
}
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic