mirror of
https://github.com/UltimMC/Launcher.git
synced 2025-10-03 16:51:30 +00:00
Merge pull request #5162 from arthomnix/quickplay-shortcut-fix
NOISSUE Fix shortcut dialog bugs
This commit is contained in:
@@ -45,17 +45,25 @@ CreateShortcutDialog::CreateShortcutDialog(QWidget *parent, InstancePtr instance
|
|||||||
|
|
||||||
// TODO: check if version is affected by crashing when joining servers on launch, ideally in meta
|
// TODO: check if version is affected by crashing when joining servers on launch, ideally in meta
|
||||||
|
|
||||||
|
bool instanceSupportsQuickPlay = false;
|
||||||
|
|
||||||
auto mcInstance = std::dynamic_pointer_cast<MinecraftInstance>(instance);
|
auto mcInstance = std::dynamic_pointer_cast<MinecraftInstance>(instance);
|
||||||
mcInstance->getPackProfile()->reload(Net::Mode::Offline);
|
if (mcInstance)
|
||||||
if (mcInstance && mcInstance->getPackProfile()->getComponent("net.minecraft")->getReleaseDateTime() >= g_VersionFilterData.quickPlayBeginsDate)
|
|
||||||
{
|
{
|
||||||
|
mcInstance->getPackProfile()->reload(Net::Mode::Online);
|
||||||
|
|
||||||
|
if (mcInstance->getPackProfile()->getComponent("net.minecraft")->getReleaseDateTime() >= g_VersionFilterData.quickPlayBeginsDate)
|
||||||
|
{
|
||||||
|
instanceSupportsQuickPlay = true;
|
||||||
mcInstance->worldList()->update();
|
mcInstance->worldList()->update();
|
||||||
for (const auto &world : mcInstance->worldList()->allWorlds())
|
for (const auto &world : mcInstance->worldList()->allWorlds())
|
||||||
{
|
{
|
||||||
ui->joinSingleplayer->addItem(world.folderName());
|
ui->joinSingleplayer->addItem(world.folderName());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
}
|
||||||
|
|
||||||
|
if (!instanceSupportsQuickPlay)
|
||||||
{
|
{
|
||||||
ui->joinServerRadioButton->setChecked(true);
|
ui->joinServerRadioButton->setChecked(true);
|
||||||
ui->joinSingleplayerRadioButton->setVisible(false);
|
ui->joinSingleplayerRadioButton->setVisible(false);
|
||||||
@@ -68,6 +76,8 @@ CreateShortcutDialog::CreateShortcutDialog(QWidget *parent, InstancePtr instance
|
|||||||
ui->createScriptCheckBox->setChecked(true);
|
ui->createScriptCheckBox->setChecked(true);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
connect(ui->joinWorldCheckBox, &QCheckBox::toggled, this, &CreateShortcutDialog::updateDialogState);
|
||||||
|
|
||||||
updateDialogState();
|
updateDialogState();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -111,9 +121,11 @@ void CreateShortcutDialog::updateDialogState()
|
|||||||
{
|
{
|
||||||
ui->buttonBox->button(QDialogButtonBox::StandardButton::Ok)->setEnabled(
|
ui->buttonBox->button(QDialogButtonBox::StandardButton::Ok)->setEnabled(
|
||||||
!ui->shortcutPath->text().isEmpty()
|
!ui->shortcutPath->text().isEmpty()
|
||||||
&& (!ui->joinWorldCheckBox->isChecked() || ui->joinServerRadioButton->isChecked() || ui->joinSingleplayerRadioButton->isChecked())
|
&& (
|
||||||
&& (!ui->joinServerRadioButton->isChecked() || !ui->joinServer->text().isEmpty())
|
!ui->joinWorldCheckBox->isChecked()
|
||||||
&& (!ui->joinSingleplayerRadioButton->isChecked() || !ui->joinSingleplayer->currentText().isEmpty())
|
|| (ui->joinServerRadioButton->isChecked() && !ui->joinServer->text().isEmpty())
|
||||||
|
|| (ui->joinSingleplayerRadioButton->isChecked() && !ui->joinSingleplayer->currentText().isEmpty())
|
||||||
|
)
|
||||||
&& (!ui->offlineUsernameCheckBox->isChecked() || !ui->offlineUsername->text().isEmpty())
|
&& (!ui->offlineUsernameCheckBox->isChecked() || !ui->offlineUsername->text().isEmpty())
|
||||||
&& (!ui->useProfileCheckBox->isChecked() || !ui->profileComboBox->currentText().isEmpty())
|
&& (!ui->useProfileCheckBox->isChecked() || !ui->profileComboBox->currentText().isEmpty())
|
||||||
);
|
);
|
||||||
|
Reference in New Issue
Block a user