MCPcopy Create free account
hub / github.com/ElyPrismLauncher/Launcher / loadColumns

Method loadColumns

launcher/minecraft/mod/ResourceFolderModel.cpp:663–704  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

661}
662
663void ResourceFolderModel::loadColumns(QTreeView* tree)
664{
665 auto const stateSettingName = QString("UI/%1_Page/Columns").arg(id());
666 auto const overrideSettingName = QString("UI/%1_Page/ColumnsOverride").arg(id());
667 auto const visibilitySettingName = QString("UI/%1_Page/ColumnsVisibility").arg(id());
668
669 auto stateSetting = m_instance->settings()->getOrRegisterSetting(stateSettingName, "");
670 tree->header()->restoreState(QByteArray::fromBase64(stateSetting->get().toString().toUtf8()));
671
672 auto setVisible = [this, tree](QVariant value) {
673 auto visibility = Json::toMap(value.toString());
674 for (auto i = 0; i < m_column_names.size(); ++i) {
675 if (m_columnsHideable[i]) {
676 auto name = m_column_names[i];
677 tree->setColumnHidden(i, !visibility.value(name, false).toBool());
678 }
679 }
680 };
681
682 auto const defaultValue = Json::fromMap({
683 { "Image", true },
684 { "Version", true },
685 { "Last Modified", true },
686 { "Provider", true },
687 { "Pack Format", true },
688 });
689 // neither passthrough nor override settings works for this usecase as I need to only set the global when the gate is false
690 auto settings = m_instance->settings();
691 if (!settings->getOrRegisterSetting(overrideSettingName, false)->get().toBool()) {
692 settings = APPLICATION->settings();
693 }
694 auto visibility = settings->getOrRegisterSetting(visibilitySettingName, defaultValue);
695 setVisible(visibility->get());
696
697 // allways connect the signal in case the setting is toggled on and off
698 auto gSetting = APPLICATION->settings()->getOrRegisterSetting(visibilitySettingName, defaultValue);
699 connect(gSetting.get(), &Setting::SettingChanged, tree, [this, setVisible, overrideSettingName](const Setting&, QVariant value) {
700 if (!m_instance->settings()->get(overrideSettingName).toBool()) {
701 setVisible(value);
702 }
703 });
704}
705
706QMenu* ResourceFolderModel::createHeaderContextMenu(QTreeView* tree)
707{

Callers 1

ExternalResourcesPageMethod · 0.80

Calls 10

toMapFunction · 0.85
fromMapFunction · 0.85
getOrRegisterSettingMethod · 0.80
valueMethod · 0.80
QStringClass · 0.50
idFunction · 0.50
settingsMethod · 0.45
toStringMethod · 0.45
getMethod · 0.45
sizeMethod · 0.45

Tested by

no test coverage detected