From 8d6c715672023577dca5a6528ff49081dede1052 Mon Sep 17 00:00:00 2001 From: Silarn Date: Wed, 11 Apr 2018 17:46:59 -0500 Subject: Initial archive conflict parsing Squashed commit: Basic archive conflict parsing - pass 1 Merge fixes for archive parsing Basic archive conflict parsing - pass 1 Merge fixes for archive parsing Should fix conflict detection for archive files --- src/modinfodialog.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'src/modinfodialog.cpp') diff --git a/src/modinfodialog.cpp b/src/modinfodialog.cpp index 416eca58..204b539b 100644 --- a/src/modinfodialog.cpp +++ b/src/modinfodialog.cpp @@ -312,10 +312,10 @@ void ModInfoDialog::refreshLists() QString fileName = relativeName.mid(0).prepend(m_RootPath); bool archive; if ((*iter)->getOrigin(archive) == m_Origin->getID()) { - std::vector> alternatives = (*iter)->getAlternatives(); + std::vector>> alternatives = (*iter)->getAlternatives(); if (!alternatives.empty()) { std::wostringstream altString; - for (std::vector>::iterator altIter = alternatives.begin(); + for (std::vector>>::iterator altIter = alternatives.begin(); altIter != alternatives.end(); ++altIter) { if (altIter != alternatives.begin()) { altString << ", "; @@ -326,8 +326,8 @@ void ModInfoDialog::refreshLists() fields.append(ToQString(altString.str())); QTreeWidgetItem *item = new QTreeWidgetItem(fields); item->setData(0, Qt::UserRole, fileName); - item->setData(1, Qt::UserRole, ToQString(m_Directory->getOriginByID(alternatives.begin()->first).getName())); - item->setData(1, Qt::UserRole + 1, alternatives.begin()->first); + item->setData(1, Qt::UserRole, ToQString(m_Directory->getOriginByID(alternatives.back().first).getName())); + item->setData(1, Qt::UserRole + 1, alternatives.back().first); item->setData(1, Qt::UserRole + 2, archive); ui->overwriteTree->addTopLevelItem(item); ++numOverwrite; -- cgit v1.3.1 From b05f56c8084fc95590f8a79b9d8a7faf4e0b1844 Mon Sep 17 00:00:00 2001 From: Al12rs Date: Thu, 2 Aug 2018 13:12:31 -0500 Subject: Added red archive conflict icon and made the conflicts tab change font for files that come from an archive. --- src/modinfodialog.cpp | 15 ++++++++++++++- src/modinfowithconflictinfo.cpp | 3 ++- src/resources.qrc | 2 +- src/resources/red-archive-conflict-loser.png | Bin 0 -> 746 bytes 4 files changed, 17 insertions(+), 3 deletions(-) create mode 100644 src/resources/red-archive-conflict-loser.png (limited to 'src/modinfodialog.cpp') diff --git a/src/modinfodialog.cpp b/src/modinfodialog.cpp index 204b539b..d1d8d82a 100644 --- a/src/modinfodialog.cpp +++ b/src/modinfodialog.cpp @@ -324,11 +324,18 @@ void ModInfoDialog::refreshLists() } QStringList fields(relativeName.prepend("...")); fields.append(ToQString(altString.str())); - QTreeWidgetItem *item = new QTreeWidgetItem(fields); + + QTreeWidgetItem *item = new QTreeWidgetItem(fields); item->setData(0, Qt::UserRole, fileName); item->setData(1, Qt::UserRole, ToQString(m_Directory->getOriginByID(alternatives.back().first).getName())); item->setData(1, Qt::UserRole + 1, alternatives.back().first); item->setData(1, Qt::UserRole + 2, archive); + if (archive) { + QFont font = item->font(0); + font.setItalic(true); + item->setFont(0, font); + item->setFont(1, font); + } ui->overwriteTree->addTopLevelItem(item); ++numOverwrite; } else {// otherwise don't display the file @@ -342,6 +349,12 @@ void ModInfoDialog::refreshLists() item->setData(0, Qt::UserRole, fileName); item->setData(1, Qt::UserRole, ToQString(realOrigin.getName())); item->setData(1, Qt::UserRole + 2, archive); + if (archive) { + QFont font = item->font(0); + font.setItalic(true); + item->setFont(0, font); + item->setFont(1, font); + } ui->overwrittenTree->addTopLevelItem(item); ++numOverwritten; } diff --git a/src/modinfowithconflictinfo.cpp b/src/modinfowithconflictinfo.cpp index 68b5b265..79896cc3 100644 --- a/src/modinfowithconflictinfo.cpp +++ b/src/modinfowithconflictinfo.cpp @@ -34,7 +34,8 @@ std::vector ModInfoWithConflictInfo::getFlags() const } switch (isLooseArchiveConflicted()) { case CONFLICT_MIXED: { - result.push_back(ModInfo::FLAG_ARCHIVE_LOOSE_CONFLICT_MIXED); + result.push_back(ModInfo::FLAG_ARCHIVE_LOOSE_CONFLICT_OVERWRITE); + result.push_back(ModInfo::FLAG_ARCHIVE_LOOSE_CONFLICT_OVERWRITTEN); } break; case CONFLICT_OVERWRITE: { result.push_back(ModInfo::FLAG_ARCHIVE_LOOSE_CONFLICT_OVERWRITE); diff --git a/src/resources.qrc b/src/resources.qrc index 9e4c9192..5ed1780e 100644 --- a/src/resources.qrc +++ b/src/resources.qrc @@ -50,7 +50,7 @@ resources/conflict-redundant.png resources/conflict-mixed-blue.png resources/conflict-overwrite-blue.png - resources/conflict-overwritten-blue.png + resources/red-archive-conflict-loser.png resources/accessories-text-editor.png resources/x-office-calendar.png resources/dialog-warning_16.png diff --git a/src/resources/red-archive-conflict-loser.png b/src/resources/red-archive-conflict-loser.png new file mode 100644 index 00000000..18284ee2 Binary files /dev/null and b/src/resources/red-archive-conflict-loser.png differ -- cgit v1.3.1