DataPaths: Add locate function

remotes/origin/Falkon/3.0
David Rosca 8 years ago
parent f27bc89019
commit 72f9c4eb7b
No known key found for this signature in database
GPG Key ID: EBC3FC294452C6D8
  1. 13
      src/lib/app/datapaths.cpp
  2. 2
      src/lib/app/datapaths.h
  3. 11
      src/lib/app/mainapplication.cpp
  4. 10
      src/lib/plugins/plugins.cpp

@ -77,6 +77,19 @@ QStringList DataPaths::allPaths(DataPaths::Path type)
return qz_data_paths()->m_paths[type];
}
// static
QString DataPaths::locate(Path type, const QString &file)
{
const QStringList dirs = allPaths(type);
for (const QString &dir : dirs) {
const QString fullPath = QDir(dir).absoluteFilePath(file);
if (QFileInfo::exists(fullPath)) {
return fullPath;
}
}
return QString();
}
// static
QString DataPaths::currentProfilePath()
{

@ -53,6 +53,8 @@ public:
static QString path(Path type);
// Returns all paths (Themes -> /usr/share/themes, ~/.config/falkon/themes)
static QStringList allPaths(Path type);
// Returns full path of existing file
static QString locate(Path type, const QString &file);
// Convenience function for getting CurrentProfile
static QString currentProfilePath();

@ -991,16 +991,7 @@ void MainApplication::loadSettings()
void MainApplication::loadTheme(const QString &name)
{
QString activeThemePath;
const QStringList themePaths = DataPaths::allPaths(DataPaths::Themes);
foreach (const QString &path, themePaths) {
const QString theme = QString("%1/%2").arg(path, name);
if (QFile::exists(theme + QLatin1String("/main.css"))) {
activeThemePath = theme;
break;
}
}
QString activeThemePath = DataPaths::locate(DataPaths::Themes, name);
if (activeThemePath.isEmpty()) {
qWarning() << "Cannot load theme " << name;

@ -109,14 +109,8 @@ void Plugins::loadPlugins()
if (QFileInfo(pluginFile).isAbsolute()) {
fullPath = pluginFile;
} else {
const QStringList dirs = DataPaths::allPaths(DataPaths::Plugins);
for (const QString &dir : dirs) {
fullPath = dir + QL1C('/') + pluginFile;
if (QFileInfo::exists(fullPath)) {
break;
}
}
if (!QFileInfo::exists(fullPath)) {
fullPath = DataPaths::locate(DataPaths::Plugins, pluginFile);
if (fullPath.isEmpty()) {
qWarning() << "Plugin" << pluginFile << "not found";
continue;
}

Loading…
Cancel
Save