/* * This file is part of smolbote. It's copyrighted by the contributors recorded * in the version control history of the file, available from its original * location: https://neueland.iserlohn-fortress.net/gitea/aqua/smolbote * * SPDX-License-Identifier: GPL-3.0 */ #include "util.h" #include #include #include #include #define ListSeparator QLatin1String(";") const QStringList Util::files(const QString &location, const QStringList &nameFilters) { if(location.isEmpty()) return QStringList(); QStringList filelist; // check if location is a list of locations (contains a ';') if(location.contains(ListSeparator)) { const QStringList locations = location.split(ListSeparator); for(const QString &l : locations) { filelist.append(Util::files(l, nameFilters)); } return filelist; } const QFileInfo info(location); // check if location is a folder if(info.isDir()) { const auto entryList = QDir(info.absoluteFilePath()).entryInfoList(nameFilters, QDir::Files | QDir::Readable, QDir::Time); for(const QFileInfo &entryInfo : entryList) { filelist.append(entryInfo.absoluteFilePath()); } } else if(info.isFile()) { filelist.append(info.absoluteFilePath()); } return filelist; } // icon names: https://specifications.freedesktop.org/icon-naming-spec/icon-naming-spec-latest.html QIcon Util::icon(QStyle::StandardPixmap id) { switch(id) { case QStyle::SP_ArrowBack: return QIcon::fromTheme("go-previous", qApp->style()->standardIcon(id)); case QStyle::SP_ArrowForward: return QIcon::fromTheme("go-next", qApp->style()->standardIcon(id)); case QStyle::SP_BrowserStop: return QIcon::fromTheme("process-stop", qApp->style()->standardIcon(id)); case QStyle::SP_BrowserReload: return QIcon::fromTheme("view-refresh", qApp->style()->standardIcon(id)); case QStyle::SP_DirHomeIcon: return QIcon::fromTheme("go-home", qApp->style()->standardIcon(id)); default: spdlog::warn("FIXME: unhandled StandardPixmap"); return qApp->style()->standardIcon(id); } }