feat(Mods): hide 'Provider' column when no mods have providers
This makes the mod list look a bit less polluted in the common case of mods having no provider whatsoever. Signed-off-by: flow <flowlnlnln@gmail.com>
This commit is contained in:
parent
257970c27d
commit
141e94369e
@ -14,6 +14,9 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include "ModListView.h"
|
#include "ModListView.h"
|
||||||
|
|
||||||
|
#include "minecraft/mod/ModFolderModel.h"
|
||||||
|
|
||||||
#include <QHeaderView>
|
#include <QHeaderView>
|
||||||
#include <QMouseEvent>
|
#include <QMouseEvent>
|
||||||
#include <QPainter>
|
#include <QPainter>
|
||||||
@ -63,4 +66,17 @@ void ModListView::setModel ( QAbstractItemModel* model )
|
|||||||
for(int i = 1; i < head->count(); i++)
|
for(int i = 1; i < head->count(); i++)
|
||||||
head->setSectionResizeMode(i, QHeaderView::ResizeToContents);
|
head->setSectionResizeMode(i, QHeaderView::ResizeToContents);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
auto real_model = model;
|
||||||
|
if (auto proxy_model = dynamic_cast<QSortFilterProxyModel*>(model); proxy_model)
|
||||||
|
real_model = proxy_model->sourceModel();
|
||||||
|
|
||||||
|
if (auto mod_model = dynamic_cast<ModFolderModel*>(real_model); mod_model) {
|
||||||
|
connect(mod_model, &ModFolderModel::updateFinished, this, [this, mod_model]{
|
||||||
|
auto mods = mod_model->allMods();
|
||||||
|
// Hide the 'Provider' column if no mod has a defined provider!
|
||||||
|
setColumnHidden(ModFolderModel::Columns::ProviderColumn,
|
||||||
|
std::none_of(mods.constBegin(), mods.constEnd(), [](auto const mod){ return mod->provider().has_value(); }));
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user