From f8340e16201c214eef5327c4e810432e12b23805 Mon Sep 17 00:00:00 2001 From: Jonathan Feenstra <26406078+JonathanFeenstra@users.noreply.github.com> Date: Thu, 2 Jan 2025 08:52:38 +0100 Subject: Highlight mods that contain selected files in data tab (#2179) --- src/datatab.cpp | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'src/datatab.cpp') diff --git a/src/datatab.cpp b/src/datatab.cpp index dc8419cf..e4d0a215 100644 --- a/src/datatab.cpp +++ b/src/datatab.cpp @@ -2,6 +2,7 @@ #include "filetree.h" #include "filetreemodel.h" #include "messagedialog.h" +#include "modelutils.h" #include "organizercore.h" #include "settings.h" #include "ui_mainwindow.h" @@ -57,6 +58,17 @@ DataTab::DataTab(OrganizerCore& core, PluginContainer& pc, QWidget* parent, onHiddenFiles(); }); + connect(ui.tree->selectionModel(), &QItemSelectionModel::selectionChanged, [=] { + const auto* fileTreeModel = m_filetree->model(); + const auto& selectedIndexList = MOShared::indexViewToModel( + ui.tree->selectionModel()->selectedRows(), fileTreeModel); + std::set mods; + for (auto& idx : selectedIndexList) { + mods.insert(fileTreeModel->itemFromIndex(idx)->mod()); + } + mwui->modList->setHighlightedMods(mods); + }); + connect(m_filetree.get(), &FileTree::executablesChanged, this, &DataTab::executablesChanged); @@ -92,6 +104,8 @@ void DataTab::activated() if (m_needUpdate) { updateTree(); } + // update highlighted mods + ui.tree->selectionModel()->selectionChanged({}, {}); } bool DataTab::isActive() const -- cgit v1.3.1