diff options
| author | LostDragonist <lost.dragonist@gmail.com> | 2019-03-09 21:41:20 -0600 |
|---|---|---|
| committer | LostDragonist <lost.dragonist@gmail.com> | 2019-03-09 21:41:20 -0600 |
| commit | e8e7f70dedd8808d44cc3156ec2687c83153f5e9 (patch) | |
| tree | fc4a4c71cc8710eb793eb3cb3a941a4fa90cfa1e | |
| parent | abfbf684699d8f14a058ed4648e231024fe3c077 (diff) | |
Allow selecting overwrite to trigger mod conflict highlights
| -rw-r--r-- | src/modflagicondelegate.cpp | 4 | ||||
| -rw-r--r-- | src/modinfo.cpp | 7 | ||||
| -rw-r--r-- | src/modinfo.h | 3 | ||||
| -rw-r--r-- | src/modinfooverwrite.cpp | 5 | ||||
| -rw-r--r-- | src/modinfooverwrite.h | 6 | ||||
| -rw-r--r-- | src/modinfowithconflictinfo.cpp | 20 |
6 files changed, 27 insertions, 18 deletions
diff --git a/src/modflagicondelegate.cpp b/src/modflagicondelegate.cpp index fbd951eb..c3142962 100644 --- a/src/modflagicondelegate.cpp +++ b/src/modflagicondelegate.cpp @@ -36,6 +36,10 @@ QList<QString> ModFlagIconDelegate::getIcons(const QModelIndex &index) const { ModInfo::Ptr info = ModInfo::getByIndex(modid.toInt());
std::vector<ModInfo::EFlag> flags = info->getFlags();
+ // Don't do flags for overwrite
+ if (std::find(flags.begin(), flags.end(),ModInfo::FLAG_OVERWRITE) != flags.end())
+ return result;
+
// insert conflict icons to provide nicer alignment
{ // insert loose file conflicts first
auto iter = std::find_first_of(flags.begin(), flags.end(),
diff --git a/src/modinfo.cpp b/src/modinfo.cpp index 661681d8..13b40aba 100644 --- a/src/modinfo.cpp +++ b/src/modinfo.cpp @@ -114,11 +114,12 @@ QString ModInfo::getContentTypeName(int contentType) } } -void ModInfo::createFromOverwrite(PluginContainer *pluginContainer) +void ModInfo::createFromOverwrite(PluginContainer *pluginContainer, + MOShared::DirectoryEntry **directoryStructure) { QMutexLocker locker(&s_Mutex); - s_Collection.push_back(ModInfo::Ptr(new ModInfoOverwrite(pluginContainer))); + s_Collection.push_back(ModInfo::Ptr(new ModInfoOverwrite(pluginContainer, directoryStructure))); } unsigned int ModInfo::getNumMods() @@ -255,7 +256,7 @@ void ModInfo::updateFromDisc(const QString &modDirectory, } } - createFromOverwrite(pluginContainer); + createFromOverwrite(pluginContainer, directoryStructure); std::sort(s_Collection.begin(), s_Collection.end(), ModInfo::ByName); diff --git a/src/modinfo.h b/src/modinfo.h index 365dfe50..81f59b61 100644 --- a/src/modinfo.h +++ b/src/modinfo.h @@ -750,7 +750,8 @@ protected: private: - static void createFromOverwrite(PluginContainer *pluginContainer); + static void createFromOverwrite(PluginContainer *pluginContainer, + MOShared::DirectoryEntry **directoryStructure); protected: diff --git a/src/modinfooverwrite.cpp b/src/modinfooverwrite.cpp index 0e428483..37c8c650 100644 --- a/src/modinfooverwrite.cpp +++ b/src/modinfooverwrite.cpp @@ -6,7 +6,8 @@ #include <QApplication> #include <QDirIterator> -ModInfoOverwrite::ModInfoOverwrite(PluginContainer *pluginContainer) : ModInfo(pluginContainer) +ModInfoOverwrite::ModInfoOverwrite(PluginContainer *pluginContainer, MOShared::DirectoryEntry **directoryStructure) + : ModInfoWithConflictInfo(pluginContainer, directoryStructure) { testValid(); } @@ -31,6 +32,8 @@ std::vector<ModInfo::EFlag> ModInfoOverwrite::getFlags() const result.push_back(FLAG_OVERWRITE); if (m_PluginSelected) result.push_back(FLAG_PLUGIN_SELECTED); + for (auto flag : ModInfoWithConflictInfo::getFlags()) + result.push_back(flag); return result; } diff --git a/src/modinfooverwrite.h b/src/modinfooverwrite.h index ff0d8cd4..c5f58c2e 100644 --- a/src/modinfooverwrite.h +++ b/src/modinfooverwrite.h @@ -1,11 +1,11 @@ #ifndef MODINFOOVERWRITE_H #define MODINFOOVERWRITE_H -#include "modinfo.h" +#include "modinfowithconflictinfo.h" #include <QDateTime> -class ModInfoOverwrite : public ModInfo +class ModInfoOverwrite : public ModInfoWithConflictInfo { Q_OBJECT @@ -67,7 +67,7 @@ public: private: - ModInfoOverwrite(PluginContainer *pluginContainer); + ModInfoOverwrite(PluginContainer *pluginContainer, MOShared::DirectoryEntry **directoryStructure ); }; diff --git a/src/modinfowithconflictinfo.cpp b/src/modinfowithconflictinfo.cpp index 744f323c..7a2b0071 100644 --- a/src/modinfowithconflictinfo.cpp +++ b/src/modinfowithconflictinfo.cpp @@ -46,16 +46,16 @@ std::vector<ModInfo::EFlag> ModInfoWithConflictInfo::getFlags() const default: { /* NOP */ } } switch (isArchiveConflicted()) { - case CONFLICT_MIXED: { - result.push_back(ModInfo::FLAG_ARCHIVE_CONFLICT_MIXED); - } break; - case CONFLICT_OVERWRITE: { - result.push_back(ModInfo::FLAG_ARCHIVE_CONFLICT_OVERWRITE); - } break; - case CONFLICT_OVERWRITTEN: { - result.push_back(ModInfo::FLAG_ARCHIVE_CONFLICT_OVERWRITTEN); - } break; - default: { /* NOP */ } + case CONFLICT_MIXED: { + result.push_back(ModInfo::FLAG_ARCHIVE_CONFLICT_MIXED); + } break; + case CONFLICT_OVERWRITE: { + result.push_back(ModInfo::FLAG_ARCHIVE_CONFLICT_OVERWRITE); + } break; + case CONFLICT_OVERWRITTEN: { + result.push_back(ModInfo::FLAG_ARCHIVE_CONFLICT_OVERWRITTEN); + } break; + default: { /* NOP */ } } return result; } |
