summaryrefslogtreecommitdiff
path: root/src/mainwindow.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mainwindow.cpp')
-rw-r--r--src/mainwindow.cpp40
1 files changed, 25 insertions, 15 deletions
diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp
index ce1dc3d1..6c3801da 100644
--- a/src/mainwindow.cpp
+++ b/src/mainwindow.cpp
@@ -3118,41 +3118,51 @@ void MainWindow::displayModInformation(int row, ModInfoTabIDs tabID)
void MainWindow::ignoreMissingData_clicked()
{
- QItemSelectionModel *selection = ui->modList->selectionModel();
- if (selection->hasSelection() && selection->selectedRows().count() > 1) {
- for (QModelIndex idx : selection->selectedRows()) {
+ const auto rows = ui->modList->selectionModel()->selectedRows();
+
+ if (rows.count() > 1) {
+ std::vector<ModInfo::Ptr> changed;
+
+ for (QModelIndex idx : rows) {
int row_idx = idx.data(Qt::UserRole + 1).toInt();
ModInfo::Ptr info = ModInfo::getByIndex(row_idx);
info->markValidated(true);
- connect(this, SIGNAL(modListDataChanged(QModelIndex, QModelIndex)), m_OrganizerCore.modList(), SIGNAL(dataChanged(QModelIndex, QModelIndex)));
+ changed.push_back(info);
+ }
- emit modListDataChanged(m_OrganizerCore.modList()->index(row_idx, 0), m_OrganizerCore.modList()->index(row_idx, m_OrganizerCore.modList()->columnCount() - 1));
+ for (auto&& m : changed) {
+ int row_idx = ModInfo::getIndex(m->internalName());
+ m_OrganizerCore.modList()->notifyChange(row_idx);
}
} else {
ModInfo::Ptr info = ModInfo::getByIndex(m_ContextRow);
info->markValidated(true);
- connect(this, SIGNAL(modListDataChanged(QModelIndex, QModelIndex)), m_OrganizerCore.modList(), SIGNAL(dataChanged(QModelIndex, QModelIndex)));
-
- emit modListDataChanged(m_OrganizerCore.modList()->index(m_ContextRow, 0), m_OrganizerCore.modList()->index(m_ContextRow, m_OrganizerCore.modList()->columnCount() - 1));
+ m_OrganizerCore.modList()->notifyChange(m_ContextRow);
}
}
void MainWindow::markConverted_clicked()
{
- QItemSelectionModel *selection = ui->modList->selectionModel();
- if (selection->hasSelection() && selection->selectedRows().count() > 1) {
- for (QModelIndex idx : selection->selectedRows()) {
+ const auto rows = ui->modList->selectionModel()->selectedRows();
+
+ if (rows.count() > 1) {
+ std::vector<ModInfo::Ptr> changed;
+
+ for (QModelIndex idx : rows) {
int row_idx = idx.data(Qt::UserRole + 1).toInt();
ModInfo::Ptr info = ModInfo::getByIndex(row_idx);
info->markConverted(true);
- connect(this, SIGNAL(modListDataChanged(QModelIndex, QModelIndex)), m_OrganizerCore.modList(), SIGNAL(dataChanged(QModelIndex, QModelIndex)));
- emit modListDataChanged(m_OrganizerCore.modList()->index(row_idx, 0), m_OrganizerCore.modList()->index(row_idx, m_OrganizerCore.modList()->columnCount() - 1));
+ changed.push_back(info);
+ }
+
+ for (auto&& m : changed) {
+ int row_idx = ModInfo::getIndex(m->internalName());
+ m_OrganizerCore.modList()->notifyChange(row_idx);
}
} else {
ModInfo::Ptr info = ModInfo::getByIndex(m_ContextRow);
info->markConverted(true);
- connect(this, SIGNAL(modListDataChanged(QModelIndex, QModelIndex)), m_OrganizerCore.modList(), SIGNAL(dataChanged(QModelIndex, QModelIndex)));
- emit modListDataChanged(m_OrganizerCore.modList()->index(m_ContextRow, 0), m_OrganizerCore.modList()->index(m_ContextRow, m_OrganizerCore.modList()->columnCount() - 1));
+ m_OrganizerCore.modList()->notifyChange(m_ContextRow);
}
}