ProjectModel::ProjectModel(ProjectExplorerPlugin *plugin, QObject *parent) : QAbstractListModel(parent), m_plugin(plugin) { QHash<int, QByteArray> roleNames; roleNames[Qt::DisplayRole] = "displayName"; roleNames[FilePathRole] = "filePath"; roleNames[PrettyFilePathRole] = "prettyFilePath"; setRoleNames(roleNames); connect(plugin, SIGNAL(recentProjectsChanged()), SLOT(resetProjects())); }
void AvatarPackager::addCurrentProjectToRecentProjects() { const int MAX_RECENT_PROJECTS = 5; const QString& fstPath = _currentAvatarProject->getFSTPath(); auto removeProjects = QVector<RecentAvatarProject>(); for (const auto& project : _recentProjects) { if (project.getProjectFSTPath() == fstPath) { removeProjects.append(project); } } for (const auto& removeProject : removeProjects) { _recentProjects.removeOne(removeProject); } const auto newRecentProject = RecentAvatarProject(_currentAvatarProject->getProjectName(), fstPath, _currentAvatarProject->getHasErrors()); _recentProjects.prepend(newRecentProject); while (_recentProjects.size() > MAX_RECENT_PROJECTS) { _recentProjects.pop_back(); } _recentProjectsSetting.set(recentProjectsToVariantList(false)); emit recentProjectsChanged(); }