aboutsummaryrefslogtreecommitdiff
path: root/launcher/ui/dialogs/NewInstanceDialog.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'launcher/ui/dialogs/NewInstanceDialog.cpp')
-rw-r--r--launcher/ui/dialogs/NewInstanceDialog.cpp28
1 files changed, 25 insertions, 3 deletions
diff --git a/launcher/ui/dialogs/NewInstanceDialog.cpp b/launcher/ui/dialogs/NewInstanceDialog.cpp
index 675f8b15..d203795a 100644
--- a/launcher/ui/dialogs/NewInstanceDialog.cpp
+++ b/launcher/ui/dialogs/NewInstanceDialog.cpp
@@ -51,6 +51,7 @@
#include <QFileDialog>
#include <QValidator>
#include <QDialogButtonBox>
+#include <utility>
#include "ui/widgets/PageContainer.h"
#include "ui/pages/modplatform/VanillaPage.h"
@@ -180,10 +181,27 @@ NewInstanceDialog::~NewInstanceDialog()
void NewInstanceDialog::setSuggestedPack(const QString& name, InstanceTask* task)
{
creationTask.reset(task);
+
ui->instNameTextBox->setPlaceholderText(name);
+ importVersion.clear();
- if(!task)
- {
+ if (!task) {
+ ui->iconButton->setIcon(APPLICATION->icons()->getIcon("default"));
+ importIcon = false;
+ }
+
+ auto allowOK = task && !instName().isEmpty();
+ m_buttons->button(QDialogButtonBox::Ok)->setEnabled(allowOK);
+}
+
+void NewInstanceDialog::setSuggestedPack(const QString& name, QString version, InstanceTask* task)
+{
+ creationTask.reset(task);
+
+ ui->instNameTextBox->setPlaceholderText(name);
+ importVersion = std::move(version);
+
+ if (!task) {
ui->iconButton->setIcon(APPLICATION->icons()->getIcon("default"));
importIcon = false;
}
@@ -214,7 +232,11 @@ InstanceTask * NewInstanceDialog::extractTask()
{
InstanceTask * extracted = creationTask.get();
creationTask.release();
- extracted->setName(instName());
+
+ InstanceName inst_name(ui->instNameTextBox->placeholderText().trimmed(), importVersion);
+ inst_name.setName(ui->instNameTextBox->text().trimmed());
+ extracted->setName(inst_name);
+
extracted->setGroup(instGroup());
extracted->setIcon(iconKey());
return extracted;