MCPcopy Create free account
hub / github.com/PolyMC/PolyMC / saveGroupList

Method saveGroupList

launcher/InstanceList.cpp:603–655  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

601}
602
603void InstanceList::saveGroupList()
604{
605 qDebug() << "Will save group list now.";
606 if (!m_instancesProbed) {
607 qDebug() << "Group saving prevented because we don't know the full list of instances yet.";
608 return;
609 }
610 WatchLock foo(m_watcher, m_instDir);
611 QString groupFileName = m_instDir + "/instgroups.json";
612 QMap<QString, QSet<QString>> reverseGroupMap;
613 for (auto iter = m_instanceGroupIndex.begin(); iter != m_instanceGroupIndex.end(); iter++) {
614 QString id = iter.key();
615 QString group = iter.value();
616 if (group.isEmpty())
617 continue;
618 if (!instanceSet.contains(id)) {
619 qDebug() << "Skipping saving missing instance" << id << "to groups list.";
620 continue;
621 }
622
623 if (!reverseGroupMap.count(group)) {
624 QSet<QString> set;
625 set.insert(id);
626 reverseGroupMap[group] = set;
627 } else {
628 QSet<QString>& set = reverseGroupMap[group];
629 set.insert(id);
630 }
631 }
632 QJsonObject toplevel;
633 toplevel.insert("formatVersion", QJsonValue(QString("1")));
634 QJsonObject groupsArr;
635 for (auto iter = reverseGroupMap.begin(); iter != reverseGroupMap.end(); iter++) {
636 auto list = iter.value();
637 auto name = iter.key();
638 QJsonObject groupObj;
639 QJsonArray instanceArr;
640 groupObj.insert("hidden", QJsonValue(m_collapsedGroups.contains(name)));
641 for (auto item : list) {
642 instanceArr.append(QJsonValue(item));
643 }
644 groupObj.insert("instances", instanceArr);
645 groupsArr.insert(name, groupObj);
646 }
647 toplevel.insert("groups", groupsArr);
648 QJsonDocument doc(toplevel);
649 try {
650 FS::write(groupFileName, doc.toJson());
651 qDebug() << "Group list saved.";
652 } catch (const FS::FileSystemException& e) {
653 qCritical() << "Failed to write instance group file :" << e.cause();
654 }
655}
656
657void InstanceList::loadGroupList()
658{

Callers

nothing calls this directly

Calls 11

QStringClass · 0.85
beginMethod · 0.80
endMethod · 0.80
isEmptyMethod · 0.80
insertMethod · 0.80
appendMethod · 0.80
toJsonMethod · 0.80
causeMethod · 0.80
writeFunction · 0.70
containsMethod · 0.45
countMethod · 0.45

Tested by

no test coverage detected