#include "desktopfile.h" #include #include #include #include #include DesktopFile::DesktopFile(const QString& fileName) { open(fileName); } bool DesktopFile::operator==(const DesktopFile& in) { return execName == in.execName; } bool DesktopFile::open(const QString& fileName) { if(QFile::exists(fileName)) { QSettings desktopFile(fileName, QSettings::IniFormat); desktopFile.beginGroup("Desktop Entry"); name = desktopFile.value("Name").toString(); command = desktopFile.value("Exec").toString(); execName = QFileInfo(command).fileName().split(' ').at(0); execName.truncate(15); return true; } else { qDebug()< DesktopFile::getDesktopFiles(const QList& desktopFileDirs) { QList desktopFiles; for(int i = 0; i < desktopFileDirs.size(); ++i) { QDir directory(desktopFileDirs[i] + "/applications"); if(directory.exists()) { QStringList desktopFileNames = directory.entryList(QStringList() << "*.desktop",QDir::Files); for(int j = 0; j < desktopFileNames.size(); ++j) { DesktopFile desktopFile(directory.path() + "/" + desktopFileNames[j]); bool found = desktopFile.execName == ""; for(int k = 0; k < desktopFiles.size(); ++k)if( desktopFile == desktopFiles[k] ) { found = true; break; } if(!found)desktopFiles.push_back(desktopFile); } } } return desktopFiles; }