EntryConfig: Introduce (dirty) way to distinguish between user/system entries

This commit is contained in:
Albert S. 2020-09-13 15:13:28 +02:00
parent b72931cc9e
commit 27ac3155d3
2 changed files with 11 additions and 3 deletions

View File

@ -214,7 +214,7 @@ QString EntryProvider::resolveEntryPath(QString path)
return {};
}
QVector<EntryConfig> EntryProvider::readConfig(QStringList paths)
QVector<EntryConfig> EntryProvider::readConfig(QStringList paths, bool userentrymode)
{
QVector<EntryConfig> result;
for(QString &configPath : paths)
@ -228,6 +228,11 @@ QVector<EntryConfig> EntryProvider::readConfig(QStringList paths)
{
if(!entry->hidden)
{
if(userentrymode)
{
entry->userEntry = true;
entry->entryPath = path;
}
result.append(*entry);
}
}
@ -238,7 +243,7 @@ QVector<EntryConfig> EntryProvider::readConfig(QStringList paths)
QVector<EntryConfig> EntryProvider::getUserEntries()
{
return readConfig(this->userEntriesDirsPaths);
return readConfig(this->userEntriesDirsPaths, true);
}
QVector<EntryConfig> EntryProvider::getSystemEntries()

View File

@ -18,7 +18,9 @@ class ConfigFormatException : public std::runtime_error
class EntryConfig
{
public:
bool userEntry = false;
bool hidden = false;
QString entryPath;
QString key;
QString name;
QString command;
@ -39,13 +41,14 @@ class EntryProvider
EntryConfig readqsrunFile(const QString &path);
EntryConfig readFromDesktopFile(const QString &path);
std::optional<EntryConfig> readEntryFromPath(const QString &path);
QVector<EntryConfig> readConfig(QStringList paths);
QVector<EntryConfig> readConfig(QStringList paths, bool userentrymode=false);
QString resolveEntryPath(QString path);
public:
EntryProvider(QStringList userEntriesDirsPaths, QStringList systemEntriesDirsPaths);
QVector<EntryConfig> getUserEntries();
QVector<EntryConfig> getSystemEntries();
void saveUserEntry(const EntryConfig &config);
};
#endif // ENTRYPROVIDER_H