From 260462fe6dd37899744b95f777cdff3c738fad2c Mon Sep 17 00:00:00 2001 From: isanae <14251494+isanae@users.noreply.github.com> Date: Tue, 28 May 2019 16:10:10 -0400 Subject: added show all/nearest mods radio buttons --- src/modinfodialog.cpp | 48 ++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 38 insertions(+), 10 deletions(-) (limited to 'src/modinfodialog.cpp') diff --git a/src/modinfodialog.cpp b/src/modinfodialog.cpp index 2d2cc559..e35aa0e1 100644 --- a/src/modinfodialog.cpp +++ b/src/modinfodialog.cpp @@ -441,6 +441,14 @@ ModInfoDialog::ModInfoDialog(ModInfo::Ptr modInfo, const DirectoryEntry *directo connect(ui->conflictsAdvancedShowNoConflict, &QCheckBox::clicked, [&] { refreshConflictLists(false, true); }); + + connect(ui->conflictsAdvancedShowAll, &QRadioButton::clicked, [&] { + refreshConflictLists(false, true); + }); + + connect(ui->conflictsAdvancedShowNearest, &QRadioButton::clicked, [&] { + refreshConflictLists(false, true); + }); } @@ -760,26 +768,46 @@ QTreeWidgetItem* ModInfoDialog::createAdvancedConflictItem( { auto altOrigin = m_Directory->getOriginByID(alt.first); - if (altOrigin.getPriority() > beforePrio) { + if (ui->conflictsAdvancedShowAll->isChecked()) { if (altOrigin.getPriority() < m_Origin->getPriority()) { - before = ToQString(altOrigin.getName()); - beforePrio = altOrigin.getPriority(); + if (!before.isEmpty()) { + before += ", "; + } + + before += ToQString(altOrigin.getName()); + } else if (altOrigin.getPriority() > m_Origin->getPriority()) { + if (!after.isEmpty()) { + after += ", "; + } + + after += ToQString(altOrigin.getName()); + } + } else { + if (altOrigin.getPriority() > beforePrio) { + if (altOrigin.getPriority() < m_Origin->getPriority()) { + before = ToQString(altOrigin.getName()); + beforePrio = altOrigin.getPriority(); + } } - } - if (altOrigin.getPriority() < afterPrio) { - if (altOrigin.getPriority() > m_Origin->getPriority()) { - after = ToQString(altOrigin.getName()); - afterPrio = altOrigin.getPriority(); + if (altOrigin.getPriority() < afterPrio) { + if (altOrigin.getPriority() > m_Origin->getPriority()) { + after = ToQString(altOrigin.getName()); + afterPrio = altOrigin.getPriority(); + } } } } - if (after.isEmpty()) { + if (after.isEmpty() || ui->conflictsAdvancedShowAll->isChecked()) { FilesOrigin &realOrigin = m_Directory->getOriginByID(fileOrigin); if (realOrigin.getID() != m_Origin->getID()) { - after = ToQString(realOrigin.getName()); + if (!after.isEmpty()) { + after += ", "; + } + + after += ToQString(realOrigin.getName()); } } } -- cgit v1.3.1