diff options
author | Ken Moore <ken@ixsystems.com> | 2016-12-16 10:09:33 -0500 |
---|---|---|
committer | Ken Moore <ken@ixsystems.com> | 2016-12-16 10:09:33 -0500 |
commit | 0249c04c50ece0177c899f180cb6067c921039f2 (patch) | |
tree | c42cda9cfdc008f19c8d1a58704f8a85d5cf45c4 /src-qt5/core/libLumina/LuminaXDG.cpp | |
parent | A bit more cleanup for the terminal. (diff) | |
download | lumina-0249c04c50ece0177c899f180cb6067c921039f2.tar.gz lumina-0249c04c50ece0177c899f180cb6067c921039f2.tar.bz2 lumina-0249c04c50ece0177c899f180cb6067c921039f2.zip |
Fix the mimetype matching routine to support multiple-extension formats better (*.tar.gz as opposed to *.gz)
Diffstat (limited to 'src-qt5/core/libLumina/LuminaXDG.cpp')
-rw-r--r-- | src-qt5/core/libLumina/LuminaXDG.cpp | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/src-qt5/core/libLumina/LuminaXDG.cpp b/src-qt5/core/libLumina/LuminaXDG.cpp index d6342269..b01eaccb 100644 --- a/src-qt5/core/libLumina/LuminaXDG.cpp +++ b/src-qt5/core/libLumina/LuminaXDG.cpp @@ -868,16 +868,18 @@ QIcon LXDG::findMimeIcon(QString extension){ QString LXDG::findAppMimeForFile(QString filename, bool multiple){ QString out; - QString extension = filename.section(".",-1); + QString extension = filename.section(".",1,-1); if("."+extension == filename){ extension.clear(); } //hidden file without extension //qDebug() << "MIME SEARCH:" << filename << extension; QStringList mimefull = LXDG::loadMimeFileGlobs2(); QStringList mimes; - //Just in case the extension/filename is a mimetype itself + //Just in case the filename is a mimetype itself if( mimefull.filter(":"+filename+":").length() == 1){ return filename; } - else if(mimefull.filter(":"+extension+":").length() == 1){ +while(mimes.isEmpty()){ + //Check for an exact mimetype match + if(mimefull.filter(":"+extension+":").length() == 1){ return extension; } //Look for globs at the end of the filename @@ -898,7 +900,12 @@ QString LXDG::findAppMimeForFile(QString filename, bool multiple){ for(int i=0; i<mimes.length(); i++){ if(!filename.startsWith( mimes[i].section(":",3,50,QString::SectionSkipEmpty).section("*",0,0), Qt::CaseInsensitive )){ mimes.removeAt(i); i--; } } - } + } + if(mimes.isEmpty()){ + if(extension.contains(".")){ extension = extension.section(".",1,-1); } + else{ break; } + } + } //end of mimes while loop mimes.sort(); //this automatically puts them in weight order (100 on down) QStringList matches; //qDebug() << "Mimes:" << mimes; |