mirror of
https://github.com/nomic-ai/gpt4all.git
synced 2025-07-19 17:50:25 +00:00
modellist: prefer const iterators to avoid detach
Signed-off-by: Jared Van Bortel <jared@nomic.ai>
This commit is contained in:
parent
6cde7cb671
commit
d3840fb817
@ -542,7 +542,7 @@ const QList<ModelInfo> ModelList::selectableModelList() const
|
|||||||
// FIXME: This needs to be kept in sync with m_selectableModels so should probably be merged
|
// FIXME: This needs to be kept in sync with m_selectableModels so should probably be merged
|
||||||
QMutexLocker locker(&m_mutex);
|
QMutexLocker locker(&m_mutex);
|
||||||
QList<ModelInfo> infos;
|
QList<ModelInfo> infos;
|
||||||
for (ModelInfo *info : m_models)
|
for (auto *info : std::as_const(m_models))
|
||||||
if (info->installed && !info->isEmbeddingModel)
|
if (info->installed && !info->isEmbeddingModel)
|
||||||
infos.append(*info);
|
infos.append(*info);
|
||||||
return infos;
|
return infos;
|
||||||
@ -560,7 +560,7 @@ ModelInfo ModelList::defaultModelInfo() const
|
|||||||
const bool hasUserDefaultName = !userDefaultModelName.isEmpty() && userDefaultModelName != "Application default";
|
const bool hasUserDefaultName = !userDefaultModelName.isEmpty() && userDefaultModelName != "Application default";
|
||||||
|
|
||||||
ModelInfo *defaultModel = nullptr;
|
ModelInfo *defaultModel = nullptr;
|
||||||
for (ModelInfo *info : m_models) {
|
for (auto *info : std::as_const(m_models)) {
|
||||||
if (!info->installed)
|
if (!info->installed)
|
||||||
continue;
|
continue;
|
||||||
defaultModel = info;
|
defaultModel = info;
|
||||||
@ -589,7 +589,7 @@ bool ModelList::contains(const QString &id) const
|
|||||||
bool ModelList::containsByFilename(const QString &filename) const
|
bool ModelList::containsByFilename(const QString &filename) const
|
||||||
{
|
{
|
||||||
QMutexLocker locker(&m_mutex);
|
QMutexLocker locker(&m_mutex);
|
||||||
for (ModelInfo *info : m_models)
|
for (auto *info : std::as_const(m_models))
|
||||||
if (info->filename() == filename)
|
if (info->filename() == filename)
|
||||||
return true;
|
return true;
|
||||||
return false;
|
return false;
|
||||||
@ -804,7 +804,7 @@ QVariant ModelList::data(const QString &id, int role) const
|
|||||||
QVariant ModelList::dataByFilename(const QString &filename, int role) const
|
QVariant ModelList::dataByFilename(const QString &filename, int role) const
|
||||||
{
|
{
|
||||||
QMutexLocker locker(&m_mutex);
|
QMutexLocker locker(&m_mutex);
|
||||||
for (ModelInfo *info : m_models)
|
for (auto *info : std::as_const(m_models))
|
||||||
if (info->filename() == filename)
|
if (info->filename() == filename)
|
||||||
return dataInternal(info, role);
|
return dataInternal(info, role);
|
||||||
return QVariant();
|
return QVariant();
|
||||||
@ -1035,7 +1035,7 @@ void ModelList::updateDataByFilename(const QString &filename, QVector<QPair<int,
|
|||||||
QVector<QString> modelsById;
|
QVector<QString> modelsById;
|
||||||
{
|
{
|
||||||
QMutexLocker locker(&m_mutex);
|
QMutexLocker locker(&m_mutex);
|
||||||
for (ModelInfo *info : m_models)
|
for (auto *info : std::as_const(m_models))
|
||||||
if (info->filename() == filename)
|
if (info->filename() == filename)
|
||||||
modelsById.append(info->id());
|
modelsById.append(info->id());
|
||||||
}
|
}
|
||||||
@ -1045,7 +1045,7 @@ void ModelList::updateDataByFilename(const QString &filename, QVector<QPair<int,
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (const QString &id : modelsById)
|
for (auto &id : std::as_const(modelsById))
|
||||||
updateData(id, data);
|
updateData(id, data);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1060,7 +1060,7 @@ ModelInfo ModelList::modelInfo(const QString &id) const
|
|||||||
ModelInfo ModelList::modelInfoByFilename(const QString &filename) const
|
ModelInfo ModelList::modelInfoByFilename(const QString &filename) const
|
||||||
{
|
{
|
||||||
QMutexLocker locker(&m_mutex);
|
QMutexLocker locker(&m_mutex);
|
||||||
for (ModelInfo *info : m_models)
|
for (auto *info : std::as_const(m_models))
|
||||||
if (info->filename() == filename)
|
if (info->filename() == filename)
|
||||||
return *info;
|
return *info;
|
||||||
return ModelInfo();
|
return ModelInfo();
|
||||||
@ -1069,10 +1069,9 @@ ModelInfo ModelList::modelInfoByFilename(const QString &filename) const
|
|||||||
bool ModelList::isUniqueName(const QString &name) const
|
bool ModelList::isUniqueName(const QString &name) const
|
||||||
{
|
{
|
||||||
QMutexLocker locker(&m_mutex);
|
QMutexLocker locker(&m_mutex);
|
||||||
for (const ModelInfo *info : m_models) {
|
for (auto *info : std::as_const(m_models))
|
||||||
if(info->name() == name)
|
if (info->name() == name)
|
||||||
return false;
|
return false;
|
||||||
}
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1169,8 +1168,8 @@ QString ModelList::uniqueModelName(const ModelInfo &model) const
|
|||||||
int maxSuffixNumber = 0;
|
int maxSuffixNumber = 0;
|
||||||
bool baseNameExists = false;
|
bool baseNameExists = false;
|
||||||
|
|
||||||
for (const ModelInfo *info : m_models) {
|
for (auto *info : std::as_const(m_models)) {
|
||||||
if(info->name() == baseName)
|
if (info->name() == baseName)
|
||||||
baseNameExists = true;
|
baseNameExists = true;
|
||||||
|
|
||||||
QRegularExpressionMatch match = re.match(info->name());
|
QRegularExpressionMatch match = re.match(info->name());
|
||||||
@ -1291,7 +1290,7 @@ void ModelList::processModelDirectory(const QString &path)
|
|||||||
QVector<QString> modelsById;
|
QVector<QString> modelsById;
|
||||||
{
|
{
|
||||||
QMutexLocker locker(&m_mutex);
|
QMutexLocker locker(&m_mutex);
|
||||||
for (ModelInfo *info : m_models)
|
for (auto *info : std::as_const(m_models))
|
||||||
if (info->filename() == filename)
|
if (info->filename() == filename)
|
||||||
modelsById.append(info->id());
|
modelsById.append(info->id());
|
||||||
}
|
}
|
||||||
@ -1302,7 +1301,7 @@ void ModelList::processModelDirectory(const QString &path)
|
|||||||
modelsById.append(filename);
|
modelsById.append(filename);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (const QString &id : modelsById) {
|
for (auto &id : std::as_const(modelsById)) {
|
||||||
QVector<QPair<int, QVariant>> data {
|
QVector<QPair<int, QVariant>> data {
|
||||||
{ InstalledRole, true },
|
{ InstalledRole, true },
|
||||||
{ FilenameRole, filename },
|
{ FilenameRole, filename },
|
||||||
@ -1469,7 +1468,7 @@ void ModelList::parseModelsJsonFile(const QByteArray &jsonData, bool save)
|
|||||||
QJsonArray jsonArray = document.array();
|
QJsonArray jsonArray = document.array();
|
||||||
const QString currentVersion = QCoreApplication::applicationVersion();
|
const QString currentVersion = QCoreApplication::applicationVersion();
|
||||||
|
|
||||||
for (const QJsonValue &value : jsonArray) {
|
for (auto &value : std::as_const(jsonArray)) {
|
||||||
QJsonObject obj = value.toObject();
|
QJsonObject obj = value.toObject();
|
||||||
|
|
||||||
QString modelName = obj["name"].toString();
|
QString modelName = obj["name"].toString();
|
||||||
@ -1749,7 +1748,7 @@ void ModelList::updateModelsFromSettings()
|
|||||||
{
|
{
|
||||||
QSettings settings;
|
QSettings settings;
|
||||||
QStringList groups = settings.childGroups();
|
QStringList groups = settings.childGroups();
|
||||||
for (const QString &g: groups) {
|
for (auto &g : std::as_const(groups)) {
|
||||||
if (!g.startsWith("model-"))
|
if (!g.startsWith("model-"))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
@ -1916,11 +1915,11 @@ void ModelList::clearDiscoveredModels()
|
|||||||
QList<ModelInfo> infos;
|
QList<ModelInfo> infos;
|
||||||
{
|
{
|
||||||
QMutexLocker locker(&m_mutex);
|
QMutexLocker locker(&m_mutex);
|
||||||
for (ModelInfo *info : m_models)
|
for (auto *info : std::as_const(m_models))
|
||||||
if (info->isDiscovered() && !info->installed)
|
if (info->isDiscovered() && !info->installed)
|
||||||
infos.append(*info);
|
infos.append(*info);
|
||||||
}
|
}
|
||||||
for (ModelInfo &info : infos)
|
for (auto &info : std::as_const(infos))
|
||||||
removeInternal(info);
|
removeInternal(info);
|
||||||
emit layoutChanged();
|
emit layoutChanged();
|
||||||
}
|
}
|
||||||
@ -2047,7 +2046,7 @@ void ModelList::parseDiscoveryJsonFile(const QByteArray &jsonData)
|
|||||||
|
|
||||||
QJsonArray jsonArray = document.array();
|
QJsonArray jsonArray = document.array();
|
||||||
|
|
||||||
for (const QJsonValue &value : jsonArray) {
|
for (auto &value : std::as_const(jsonArray)) {
|
||||||
QJsonObject obj = value.toObject();
|
QJsonObject obj = value.toObject();
|
||||||
QJsonDocument jsonDocument(obj);
|
QJsonDocument jsonDocument(obj);
|
||||||
QByteArray jsonData = jsonDocument.toJson();
|
QByteArray jsonData = jsonDocument.toJson();
|
||||||
@ -2055,7 +2054,7 @@ void ModelList::parseDiscoveryJsonFile(const QByteArray &jsonData)
|
|||||||
QString repo_id = obj["id"].toString();
|
QString repo_id = obj["id"].toString();
|
||||||
QJsonArray siblingsArray = obj["siblings"].toArray();
|
QJsonArray siblingsArray = obj["siblings"].toArray();
|
||||||
QList<QPair<QuantType, QString>> filteredAndSortedFilenames;
|
QList<QPair<QuantType, QString>> filteredAndSortedFilenames;
|
||||||
for (const QJsonValue &sibling : siblingsArray) {
|
for (auto &sibling : std::as_const(siblingsArray)) {
|
||||||
|
|
||||||
QJsonObject s = sibling.toObject();
|
QJsonObject s = sibling.toObject();
|
||||||
QString filename = s["rfilename"].toString();
|
QString filename = s["rfilename"].toString();
|
||||||
|
Loading…
Reference in New Issue
Block a user