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());
|
return locale.formattedDataSize(instanceWorld.world.bytes());
|
||||||
|
|
||||||
case InfoColumn:
|
case InfoColumn:
|
||||||
for (QString path : instDirPaths()) { //use canonical paths instead of for loops? iy
|
for (QString path : instDirPaths()) {
|
||||||
if (instanceWorld.world.isSymLinkUnder(path)) {
|
if (instanceWorld.world.isSymLinkUnder(path)) {
|
||||||
return tr("This world is symbolically linked from elsewhere.");
|
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: {
|
case Qt::ToolTipRole: {
|
||||||
if (column == InfoColumn) {
|
if (column == InfoColumn) {
|
||||||
for (QString path : instDirPaths()) { //use canonical paths instead of for loops? iy
|
for (QString path : instDirPaths()) {
|
||||||
if (instanceWorld.world.isSymLinkUnder(path)) {
|
if (instanceWorld.world.isSymLinkUnder(path)) {
|
||||||
return tr("Warning: This world is symbolically linked from elsewhere. Editing it will also change the original."
|
return tr("Warning: This world is symbolically linked from elsewhere. Editing it will also change the original."
|
||||||
"\nCanonical Path: %1")
|
"\nCanonical Path: %1")
|
||||||
|
|
@ -277,7 +277,7 @@ QVariant MultiWorldList::data(const QModelIndex& index, int role) const
|
||||||
return QVariant::fromValue<void*>((void*)&instanceWorld);
|
return QVariant::fromValue<void*>((void*)&instanceWorld);
|
||||||
}
|
}
|
||||||
case FolderRole: {
|
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: {
|
case SeedRole: {
|
||||||
return QVariant::fromValue<qlonglong>(instanceWorld.world.seed());
|
return QVariant::fromValue<qlonglong>(instanceWorld.world.seed());
|
||||||
|
|
|
||||||
|
|
@ -242,10 +242,12 @@ void MultiWorldListPage::on_actionData_Packs_triggered()
|
||||||
|
|
||||||
GenericPageProvider provider(dialog->windowTitle());
|
GenericPageProvider provider(dialog->windowTitle());
|
||||||
|
|
||||||
bool isIndexed = !APPLICATION->settings()->get("ModMetadataDisabled").toBool();
|
auto instance = (static_cast<InstanceWorld*>(m_worlds->data(index, MultiWorldList::ObjectRole).value<void*>()))->instance;
|
||||||
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
|
|
||||||
|
|
||||||
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);
|
auto layout = new QVBoxLayout(dialog);
|
||||||
|
|
||||||
|
|
@ -265,9 +267,12 @@ void MultiWorldListPage::on_actionData_Packs_triggered()
|
||||||
|
|
||||||
dialog->setLayout(layout);
|
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()
|
void MultiWorldListPage::on_actionReset_Icon_triggered()
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue