88 if (idx >= 0 && idx < m_addonsList.size()) {
89 auto path = m_addonsList[idx];
90 if (!m_addonsMap.contains(path)) {
91 if ((role ==
PathRole) || (role == Qt::DisplayRole)) {
98 auto addon = m_addonsMap[path].addon;
102 if (role == Qt::DisplayRole) {
103 QString
name = QString::fromStdString(addon->getName());
104 QString desc = QString::fromStdString(addon->getShortDescription());
105 return tr(
"%1 - %2").arg(
name).arg(desc);
107 else if (role ==
IdRole) {
108 return QString::fromStdString(addon->getId());
111 return QString::fromStdString(addon->getName());
117 const auto v = addon->getVersion()->str();
118 return QString::fromStdString(v);
122 for (
auto author : addon->getAuthors()) {
123 authors.push_back(QString::fromStdString(author->getName()));
128 QStringList maintainers;
129 for (
auto maintainer : addon->getMaintainers()) {
130 maintainers.push_back(QString::fromStdString(maintainer->getName()));
135 return QString::fromStdString(addon->getShortDescription());
138 return QString::fromStdString(addon->getLongDescription());
141 return QString::fromStdString(addon->getLicenseDesignation());
144 return QUrl(QString::fromStdString(addon->getLicenseUrl()));
148 for (
auto tag : addon->getTags()) {
149 tags.push_back(QString::fromStdString(tag));
154 const auto v = addon->getMinFGVersionRequired();
156 return QStringLiteral(
"-");
157 return QString::fromStdString(v);
160 const auto v = addon->getMaxFGVersionRequired();
162 return QStringLiteral(
"-");
163 return QString::fromStdString(v);
166 return QUrl(QString::fromStdString(addon->getHomePage()));
169 return QUrl(QString::fromStdString(addon->getDownloadUrl()));
172 return QUrl(QString::fromStdString(addon->getSupportUrl()));
175 return QUrl(QString::fromStdString(addon->getCodeRepositoryUrl()));
216 if ((row < 0) || (row >= m_addonsList.size())) {
220 auto path = m_addonsList[row];
221 if (!m_addonsMap.contains(path))
224 const bool wasEnabled = m_addonsMap[path].enable;
226 if (wasEnabled == nowEnabled)
229 m_addonsMap[path].enable = nowEnabled;
230 const auto mindex = index(row, 0);
231 emit dataChanged(mindex, mindex, {
EnableRole});
239 if (!m_addonsMap.contains(path)) {
244 std::string minFGversion = m_addonsMap[path].addon->getMinFGVersionRequired();
245 if (strutils::compare_versions(FLIGHTGEAR_VERSION, minFGversion) < 0) {
249 std::string maxFGversion = m_addonsMap[path].addon->getMaxFGVersionRequired();
250 if (maxFGversion !=
"none" &&
251 strutils::compare_versions(FLIGHTGEAR_VERSION, maxFGversion) > 0) {