mirror of
https://github.com/PrismLauncher/PrismLauncher.git
synced 2026-06-29 01:54:20 +03:00
made MultiWorldList not require dirs
This commit is contained in:
parent
b0a600b720
commit
b13cfd9d6a
3 changed files with 8 additions and 16 deletions
|
|
@ -48,10 +48,10 @@
|
|||
|
||||
#include "MinecraftInstance.h"
|
||||
|
||||
MultiWorldList::MultiWorldList(const QList<QString>& dirs, const QList<BaseInstance*>& instances) : QAbstractListModel(), m_instances(instances)
|
||||
MultiWorldList::MultiWorldList(const QList<BaseInstance*>& instances) : QAbstractListModel(), m_instances(instances)
|
||||
{
|
||||
for (QString dir : dirs) {
|
||||
m_dirs.append(dir);
|
||||
for (BaseInstance* inst : m_instances) {
|
||||
m_dirs.append(dynamic_cast<MinecraftInstance*>(inst)->worldDir());
|
||||
}
|
||||
|
||||
for (QDir dir : m_dirs) {
|
||||
|
|
@ -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(instanceWorld.world.canonicalFilePath()).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())); //test if canonical file path works iy
|
||||
}
|
||||
case SeedRole: {
|
||||
return QVariant::fromValue<qlonglong>(instanceWorld.world.seed());
|
||||
|
|
|
|||
|
|
@ -37,7 +37,7 @@ class MultiWorldList : public QAbstractListModel {
|
|||
|
||||
enum Roles { ObjectRole = Qt::UserRole + 1, FolderRole, SeedRole, NameRole, InstanceRole, GameModeRole, LastPlayedRole, SizeRole, IconFileRole };
|
||||
|
||||
MultiWorldList(const QList<QString>& dirs, const QList<BaseInstance*>& instances);
|
||||
MultiWorldList(const QList<BaseInstance*>& instances);
|
||||
|
||||
virtual QVariant data(const QModelIndex& index, int role = Qt::DisplayRole) const;
|
||||
|
||||
|
|
|
|||
|
|
@ -339,19 +339,15 @@ MainWindow::MainWindow(QWidget* parent) : QMainWindow(parent), ui(new Ui::MainWi
|
|||
// Create the all worlds widget
|
||||
{
|
||||
QList<BaseInstance*> allInstances = APPLICATION->instances()->getAllInstances();
|
||||
QList<QString> dirs;
|
||||
for (BaseInstance* inst : allInstances) {
|
||||
dirs.append(dynamic_cast<MinecraftInstance*>(inst)->worldDir());
|
||||
}
|
||||
|
||||
allWorlds = new MultiWorldList(dirs, allInstances);
|
||||
allWorlds = new MultiWorldList(allInstances);
|
||||
allWorlds->update();
|
||||
allWorldsPage = new MultiWorldListPage(allWorlds);
|
||||
|
||||
ui->horizontalLayout->addWidget(allWorldsPage);
|
||||
|
||||
allWorldsPage->setVisible(false);
|
||||
ui->instanceToolBar->setVisibilityState(QByteArray::fromBase64(instanceToolbarSetting->get().toString().toUtf8())); //fix instance toolbar checkbox independent of all worlds screen showing iy
|
||||
ui->instanceToolBar->setVisibilityState(QByteArray::fromBase64(instanceToolbarSetting->get().toString().toUtf8()));
|
||||
|
||||
connect(ui->actionAllWorlds, &QAction::toggled, this, &MainWindow::onAllWorldsToggled);
|
||||
connect(allWorldsPage, &MultiWorldListPage::worldJoined, this, &MainWindow::worldJoined);
|
||||
|
|
@ -880,12 +876,8 @@ void MainWindow::toggleAllWorldsScreen(bool toggled)
|
|||
{
|
||||
if (toggled) {
|
||||
QList<BaseInstance*> allInstances = APPLICATION->instances()->getAllInstances();
|
||||
QList<QString> dirs;
|
||||
for (BaseInstance* inst : allInstances) {
|
||||
dirs.append(dynamic_cast<MinecraftInstance*>(inst)->worldDir());
|
||||
}
|
||||
|
||||
allWorlds = new MultiWorldList(dirs, allInstances);
|
||||
allWorlds = new MultiWorldList(allInstances);
|
||||
allWorlds->update();
|
||||
auto newAllWorldsPage = new MultiWorldListPage(allWorlds);
|
||||
ui->horizontalLayout->replaceWidget(allWorldsPage, newAllWorldsPage);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue