Esempio n. 1
0
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);
}