DesktopFiles::DesktopFiles(QObject *parent) : QObject(parent), m_interface("io.papyros.session", "/PapyrosSession", "io.papyros.launcher", QDBusConnection::sessionBus()) { QStringList iconSearchPaths; iconSearchPaths << "/usr/share/icons" << "/usr/share/pixmaps" << QDir::homePath() + "/.local/share/icons"; QIcon::setThemeSearchPaths(iconSearchPaths); QStringList paths; paths << QDir::homePath() + "/.local/share/applications" << "/usr/local/share/applications" << "/usr/share/applications"; QStringList filter; filter << "*.desktop"; QStringList files = filesInPaths(paths, filter); for (QString fileName : files) { DesktopFile *desktopFile = new DesktopFile(fileName, this); if (desktopFile->isShown()) desktopList << desktopFile; } desktopList.sort(DesktopFiles::compare); fileWatcher = new QFileSystemWatcher(files, this); dirWatcher = new QFileSystemWatcher(paths, this); connect(fileWatcher, &QFileSystemWatcher::fileChanged, this, &DesktopFiles::onFileChanged); connect(dirWatcher, &QFileSystemWatcher::directoryChanged, this, &DesktopFiles::onDirectoryChanged); }
void DesktopScrobbler::componentComplete() { QStringList paths; paths << "~/.local/share/applications" << "/usr/local/share/applications" << "/usr/share/applications"; QStringList filter; filter << "*.desktop"; QStringList files = filesInPaths(paths, filter); for (QString fileName : files) { desktopList << new DesktopFile(fileName, this); } desktopList.sort(DesktopScrobbler::compare) ; fileWatcher = new QFileSystemWatcher(files, this); dirWatcher = new QFileSystemWatcher(paths, this); connect(fileWatcher, &QFileSystemWatcher::fileChanged, this, &DesktopScrobbler::onFileChanged); connect(dirWatcher, &QFileSystemWatcher::directoryChanged, this, &DesktopScrobbler::onDirectoryChanged); }