1 //=========================================== 2 // Lumina-DE source code 3 // Copyright (c) 2013-2017, Ken Moore 4 // Available under the 3-clause BSD license 5 // See the LICENSE file for full details 6 //=========================================== 7 // These structures/classes are for conforming to the FreeDesktop standards 8 // REFERENCE: 9 // (DATABASE) https://www.freedesktop.org/wiki/Specifications/shared-mime-info-spec/ 10 // (APPLICATIONS) https://www.freedesktop.org/wiki/Specifications/mime-apps-spec/ 11 // Mime Application Version Compliance: 1.0.1 (11/14/14) (Skips random *.desktop parsing: ~80% compliant) 12 //=========================================== 13 #ifndef _LUMINA_LIBRARY_XDG_MIME_CLASS_H 14 #define _LUMINA_LIBRARY_XDG_MIME_CLASS_H 15 16 #include <QFile> 17 #include <QDir> 18 #include <QFileInfo> 19 #include <QStringList> 20 #include <QString> 21 #include <QList> 22 #include <QDateTime> 23 #include <QTextStream> 24 #include <QRegExp> 25 #include <QDebug> 26 27 class XDGMime{ 28 public: 29 // PRIMARY FUNCTIONS 30 static QString fromFileName(QString filename); //Convert a filename into a mimetype 31 static QStringList listFromFileName(QString filename); //Convert a filename into a list of mimetypes (arranged in descending priority) 32 static QString toIconName(QString mime); //Mime type to icon name 33 //Find the file extension for a particular mime-type 34 static QStringList toFileExtensions(QString mime); 35 36 // LESSER-USED FUNCTIONS 37 //List all the mime-type directories 38 static QStringList systemMimeDirs(); 39 //Find the mime-type of a particular file extension 40 static QString findAppMimeForFile(QString filename, bool multiple = false); 41 // Simplification function for finding all info regarding current mime defaults 42 static QStringList listFileMimeDefaults(); 43 //Find the localized comment string for a particular mime-type 44 static QString findMimeComment(QString mime); 45 //Find the default application for a mime-type 46 static QString findDefaultAppForMime(QString mime); 47 //Fine the available applications for a mime-type 48 static QStringList findAvailableAppsForMime(QString mime); 49 //Set the default application for a mime-type 50 static void setDefaultAppForMime(QString mime, QString app); 51 //List all the registered audio/video file extensions 52 static QStringList findAVFileExtensions(); 53 //Load all the "globs2" mime database files 54 static QStringList loadMimeFileGlobs2(); 55 56 }; 57 #endif 58