diff options
| author | Mikaƫl Capelle <capelle.mikael@gmail.com> | 2021-01-11 12:49:42 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-01-11 12:49:42 +0100 |
| commit | 1dc2b225485a073d82e08a9820493086b2dda8b8 (patch) | |
| tree | 5a4e5478d577f065c7282cb62992c2b6c735e13f /src/modconflicticondelegate.cpp | |
| parent | a680dfa3e94b34bf6b0ebd65d29d7a9799e3183f (diff) | |
| parent | 05efc74e402ca3770d9fdaa2557f4030c31ee198 (diff) | |
Merge pull request #1350 from Holt59/collapsible-separators
Collapsible separators - Fix & Improvements.
Diffstat (limited to 'src/modconflicticondelegate.cpp')
| -rw-r--r-- | src/modconflicticondelegate.cpp | 33 |
1 files changed, 8 insertions, 25 deletions
diff --git a/src/modconflicticondelegate.cpp b/src/modconflicticondelegate.cpp index 73c47a03..fc0ee48a 100644 --- a/src/modconflicticondelegate.cpp +++ b/src/modconflicticondelegate.cpp @@ -7,21 +7,10 @@ using namespace MOBase; ModConflictIconDelegate::ModConflictIconDelegate(ModListView* view, int logicalIndex, int compactSize) - : IconDelegate(view) - , m_View(view) - , m_LogicalIndex(logicalIndex) - , m_CompactSize(compactSize) - , m_Compact(false) + : IconDelegate(view, logicalIndex, compactSize), m_view(view) { } -void ModConflictIconDelegate::columnResized(int logicalIndex, int, int newSize) -{ - if (logicalIndex == m_LogicalIndex) { - m_Compact = newSize < m_CompactSize; - } -} - QList<QString> ModConflictIconDelegate::getIconsForFlags( std::vector<ModInfo::EConflictFlag> flags, bool compact) { @@ -94,8 +83,8 @@ QList<QString> ModConflictIconDelegate::getIcons(const QModelIndex &index) const } bool compact; - auto flags = m_View->conflictFlags(index, &compact); - return getIconsForFlags(flags, compact || m_Compact); + auto flags = m_view->conflictFlags(index, &compact); + return getIconsForFlags(flags, compact || this->compact()); } QString ModConflictIconDelegate::getFlagIcon(ModInfo::EConflictFlag flag) @@ -119,19 +108,13 @@ QString ModConflictIconDelegate::getFlagIcon(ModInfo::EConflictFlag flag) size_t ModConflictIconDelegate::getNumIcons(const QModelIndex &index) const { - unsigned int modIdx = index.data(ModList::IndexRole).toInt(); - if (modIdx < ModInfo::getNumMods()) { - ModInfo::Ptr info = ModInfo::getByIndex(modIdx); - std::vector<ModInfo::EConflictFlag> flags = info->getConflictFlags(); - size_t count = flags.size(); - if (std::find_first_of(flags.begin(), flags.end(), - s_ConflictFlags.begin(), s_ConflictFlags.end()) == flags.end()) { - ++count; - } - return count; - } else { + QVariant modIndex = index.data(ModList::IndexRole); + + if (!modIndex.isValid()) { return 0; } + + return m_view->conflictFlags(index, nullptr).size(); } QSize ModConflictIconDelegate::sizeHint(const QStyleOptionViewItem &option, const QModelIndex &modelIndex) const |
