summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorisanae <14251494+isanae@users.noreply.github.com>2019-05-28 16:10:10 -0400
committerisanae <14251494+isanae@users.noreply.github.com>2019-05-31 11:54:30 -0400
commit260462fe6dd37899744b95f777cdff3c738fad2c (patch)
tree6ec726ac7a48c749aa904b7b6debcb905231e050 /src
parentab385347afc3317049d85a5ee4b011592d8b3dce (diff)
added show all/nearest mods radio buttons
Diffstat (limited to 'src')
-rw-r--r--src/modinfodialog.cpp48
-rw-r--r--src/modinfodialog.ui17
2 files changed, 55 insertions, 10 deletions
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());
}
}
}
diff --git a/src/modinfodialog.ui b/src/modinfodialog.ui
index b31f49d3..e391da46 100644
--- a/src/modinfodialog.ui
+++ b/src/modinfodialog.ui
@@ -750,6 +750,23 @@ text-align: left;</string>
</widget>
</item>
<item>
+ <widget class="QRadioButton" name="conflictsAdvancedShowAll">
+ <property name="text">
+ <string>Show all conflicting mods</string>
+ </property>
+ <property name="checked">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QRadioButton" name="conflictsAdvancedShowNearest">
+ <property name="text">
+ <string>Show nearest conflicting mod</string>
+ </property>
+ </widget>
+ </item>
+ <item>
<widget class="QWidget" name="widget_5" native="true">
<layout class="QHBoxLayout" name="horizontalLayout_8">
<property name="leftMargin">