mirror of
https://github.com/PrismLauncher/PrismLauncher.git
synced 2026-06-29 01:54:20 +03:00
fixed datapack screen causing crash
This commit is contained in:
parent
b13cfd9d6a
commit
3458830d42
2 changed files with 13 additions and 8 deletions
|
|
@ -240,7 +240,7 @@ QVariant MultiWorldList::data(const QModelIndex& index, int role) const
|
|||
return locale.formattedDataSize(instanceWorld.world.bytes());
|
||||
|
||||
case InfoColumn:
|
||||
for (QString path : instDirPaths()) { //use canonical paths instead of for loops? iy
|
||||
for (QString path : instDirPaths()) {
|
||||
if (instanceWorld.world.isSymLinkUnder(path)) {
|
||||
return tr("This world is symbolically linked from elsewhere.");
|
||||
}
|
||||
|
|
@ -260,7 +260,7 @@ QVariant MultiWorldList::data(const QModelIndex& index, int role) const
|
|||
|
||||
case Qt::ToolTipRole: {
|
||||
if (column == InfoColumn) {
|
||||
for (QString path : instDirPaths()) { //use canonical paths instead of for loops? iy
|
||||
for (QString path : instDirPaths()) {
|
||||
if (instanceWorld.world.isSymLinkUnder(path)) {
|
||||
return tr("Warning: This world is symbolically linked from elsewhere. Editing it will also change the original."
|
||||
"\nCanonical Path: %1")
|
||||
|
|
@ -277,7 +277,7 @@ QVariant MultiWorldList::data(const QModelIndex& index, int role) const
|
|||
return QVariant::fromValue<void*>((void*)&instanceWorld);
|
||||
}
|
||||
case FolderRole: {
|
||||
return QDir::toNativeSeparators(QDir(dynamic_cast<MinecraftInstance*>(instanceWorld.instance)->worldDir()).absoluteFilePath(instanceWorld.world.folderName())); //test if canonical file path works iy
|
||||
return QDir::toNativeSeparators(QDir(dynamic_cast<MinecraftInstance*>(instanceWorld.instance)->worldDir()).absoluteFilePath(instanceWorld.world.folderName()));
|
||||
}
|
||||
case SeedRole: {
|
||||
return QVariant::fromValue<qlonglong>(instanceWorld.world.seed());
|
||||
|
|
|
|||
|
|
@ -242,10 +242,12 @@ void MultiWorldListPage::on_actionData_Packs_triggered()
|
|||
|
||||
GenericPageProvider provider(dialog->windowTitle());
|
||||
|
||||
bool isIndexed = !APPLICATION->settings()->get("ModMetadataDisabled").toBool();
|
||||
m_datapackModel.reset(new DataPackFolderModel(folder, static_cast<InstanceWorld*>(m_worlds->data(index, MultiWorldList::ObjectRole).value<void*>())->instance, isIndexed, true)); //these cause crashes sometimes iy with null error SIGSEGV (probably due to watchers) after every first time launched -> using index 0 for instances doesnt fix it
|
||||
auto instance = (static_cast<InstanceWorld*>(m_worlds->data(index, MultiWorldList::ObjectRole).value<void*>()))->instance;
|
||||
|
||||
provider.addPageCreator([this, index] { return new DataPackPage(static_cast<InstanceWorld*>(m_worlds->data(index, MultiWorldList::ObjectRole).value<void*>())->instance, m_datapackModel.get(), this); }); //iy
|
||||
bool isIndexed = !APPLICATION->settings()->get("ModMetadataDisabled").toBool();
|
||||
m_datapackModel.reset(new DataPackFolderModel(folder, instance, isIndexed, true));
|
||||
|
||||
provider.addPageCreator([this, instance] { return new DataPackPage(instance, m_datapackModel.get(), this); });
|
||||
|
||||
auto layout = new QVBoxLayout(dialog);
|
||||
|
||||
|
|
@ -265,9 +267,12 @@ void MultiWorldListPage::on_actionData_Packs_triggered()
|
|||
|
||||
dialog->setLayout(layout);
|
||||
|
||||
dialog->exec();
|
||||
dialog->setAttribute(Qt::WA_DeleteOnClose);
|
||||
|
||||
APPLICATION->settings()->set("DataPackDownloadGeometry", dialog->saveGeometry().toBase64());
|
||||
connect(dialog, &QDialog::finished, this,
|
||||
[dialog]() { APPLICATION->settings()->set("DataPackDownloadGeometry", dialog->saveGeometry().toBase64()); });
|
||||
|
||||
dialog->open();
|
||||
}
|
||||
|
||||
void MultiWorldListPage::on_actionReset_Icon_triggered()
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue