diff options
| author | LostDragonist <lost.dragonist@gmail.com> | 2019-02-21 21:36:09 -0600 |
|---|---|---|
| committer | LostDragonist <lost.dragonist@gmail.com> | 2019-02-21 21:36:09 -0600 |
| commit | 8f0f41f08cbb97b52e9bb5696aa4599b8c779460 (patch) | |
| tree | ee3ce0b76f5b775c7ee2bdcfb77eb5f655ce1623 /src | |
| parent | 6984711a01d0e8cdf8e89b4770efc99edf30dc92 (diff) | |
Invalidate mod list sort proxy when mods find updates
Diffstat (limited to 'src')
| -rw-r--r-- | src/mainwindow.cpp | 21 |
1 files changed, 11 insertions, 10 deletions
diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 26853a36..a946bba4 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -2333,9 +2333,8 @@ void MainWindow::modorder_changed() m_OrganizerCore.modList()->setOverwriteMarkers(modInfo->getModOverwrite(), modInfo->getModOverwritten()); m_OrganizerCore.modList()->setArchiveOverwriteMarkers(modInfo->getModArchiveOverwrite(), modInfo->getModArchiveOverwritten()); m_OrganizerCore.modList()->setArchiveLooseOverwriteMarkers(modInfo->getModArchiveLooseOverwrite(), modInfo->getModArchiveLooseOverwritten()); - if (m_ModListSortProxy != nullptr) { + if (m_ModListSortProxy != nullptr) m_ModListSortProxy->invalidate(); - } ui->modList->verticalScrollBar()->repaint(); } } @@ -2582,10 +2581,6 @@ void MainWindow::modlistSelectionChanged(const QModelIndex ¤t, const QMode m_OrganizerCore.modList()->setArchiveOverwriteMarkers(std::set<unsigned int>(), std::set<unsigned int>()); m_OrganizerCore.modList()->setArchiveLooseOverwriteMarkers(std::set<unsigned int>(), std::set<unsigned int>()); } -/* if ((m_ModListSortProxy != nullptr) - && !m_ModListSortProxy->beingInvalidated()) { - m_ModListSortProxy->invalidate(); - }*/ ui->modList->verticalScrollBar()->repaint(); } @@ -4060,9 +4055,8 @@ void MainWindow::ignoreUpdate() { ModInfo::Ptr info = ModInfo::getByIndex(m_ContextRow); info->ignoreUpdate(true); } - if (m_ModListSortProxy != nullptr) { + if (m_ModListSortProxy != nullptr) m_ModListSortProxy->invalidate(); - } } void MainWindow::checkModUpdates_clicked() @@ -4094,9 +4088,8 @@ void MainWindow::unignoreUpdate() ModInfo::Ptr info = ModInfo::getByIndex(m_ContextRow); info->ignoreUpdate(false); } - if (m_ModListSortProxy != nullptr) { + if (m_ModListSortProxy != nullptr) m_ModListSortProxy->invalidate(); - } } void MainWindow::addPrimaryCategoryCandidates(QMenu *primaryCategoryMenu, @@ -5565,6 +5558,8 @@ void MainWindow::nxmUpdateInfoAvailable(QString gameName, QVariant userData, QVa return ModInfo::filteredMods(gameNameReal, resultList, userData.toBool(), true); }); watcher->setFuture(future); + if (m_ModListSortProxy != nullptr) + m_ModListSortProxy->invalidate(); } void MainWindow::finishUpdateInfo() @@ -5664,6 +5659,8 @@ void MainWindow::nxmUpdatesAvailable(QString gameName, int modID, QVariant userD if (foundUpdate) { // Just get the standard data updates for endorsements and descriptions mod->setLastNexusUpdate(QDateTime::currentDateTimeUtc()); + if (m_ModListSortProxy != nullptr) + m_ModListSortProxy->invalidate(); } else { // Scrape mod data here so we can use the mod version if no file update was located requiresInfo = true; @@ -5677,6 +5674,7 @@ void MainWindow::nxmUpdatesAvailable(QString gameName, int modID, QVariant userD void MainWindow::nxmModInfoAvailable(QString gameName, int modID, QVariant userData, QVariant resultData, int requestID) { QVariantMap result = resultData.toMap(); + bool foundUpdate = false; QString gameNameReal; for (IPluginGame *game : m_PluginContainer.plugins<IPluginGame>()) { if (game->gameNexusName() == gameName) { @@ -5691,6 +5689,7 @@ void MainWindow::nxmModInfoAvailable(QString gameName, int modID, QVariant userD if (now >= updateTarget) { mod->setNewestVersion(result["version"].toString()); mod->setLastNexusUpdate(QDateTime::currentDateTimeUtc()); + foundUpdate = true; } mod->setNexusDescription(result["description"].toString()); if ((mod->endorsedState() != ModInfo::ENDORSED_NEVER) && (result.contains("endorsement"))) { @@ -5707,6 +5706,8 @@ void MainWindow::nxmModInfoAvailable(QString gameName, int modID, QVariant userD mod->setNexusLastModified(QDateTime::fromSecsSinceEpoch(result["updated_timestamp"].toInt(), Qt::UTC)); mod->saveMeta(); } + if (foundUpdate && m_ModListSortProxy != nullptr) + m_ModListSortProxy->invalidate(); } void MainWindow::nxmEndorsementToggled(QString, int, QVariant, QVariant resultData, int) |
