Add wildcard support to instance name field

Signed-off-by: Vishrut Sachan <vishrutsachan2004@gmail.com>
This commit is contained in:
Vishrut Sachan
2026-07-25 22:40:35 +05:30
parent 44077cb5c8
commit a452a2c8ce
4 changed files with 38 additions and 4 deletions

View File

@@ -255,7 +255,7 @@ InstanceTask* NewInstanceDialog::extractTask()
InstanceTask* extracted = creationTask.release();
InstanceName inst_name(ui->instNameTextBox->placeholderText().trimmed(), importVersion);
inst_name.setName(ui->instNameTextBox->text().trimmed());
inst_name.setName(resolveWildcardName(ui->instNameTextBox->text().trimmed()));
extracted->setName(inst_name);
extracted->setGroup(instGroup());
@@ -276,7 +276,7 @@ QString NewInstanceDialog::instName() const
{
auto result = ui->instNameTextBox->text().trimmed();
if (result.size()) {
return result;
return resolveWildcardName(result);
}
result = ui->instNameTextBox->placeholderText().trimmed();
if (result.size()) {
@@ -285,6 +285,17 @@ QString NewInstanceDialog::instName() const
return QString();
}
QString NewInstanceDialog::resolveWildcardName(const QString& typed) const
{
if (!typed.contains('*')) {
return typed;
}
auto suggested = ui->instNameTextBox->placeholderText().trimmed();
QString result = typed;
return result.replace('*', suggested);
}
QString NewInstanceDialog::instGroup() const
{
return ui->groupBox->currentText();

View File

@@ -75,6 +75,8 @@ class NewInstanceDialog : public QDialog, public BasePageProvider {
QString instGroup() const;
QString iconKey() const;
QString resolveWildcardName(const QString& typed) const;
public slots:
void accept() override;
void reject() override;

View File

@@ -184,6 +184,26 @@ QString CustomPage::selectedLoader() const
return m_selectedLoader;
}
QString CustomPage::selectedLoaderName() const
{
if (ui->neoForgeFilter->isChecked()) {
return ui->neoForgeFilter->text();
}
if (ui->forgeFilter->isChecked()) {
return ui->forgeFilter->text();
}
if (ui->fabricFilter->isChecked()) {
return ui->fabricFilter->text();
}
if (ui->quiltFilter->isChecked()) {
return ui->quiltFilter->text();
}
if (ui->liteLoaderFilter->isChecked()) {
return ui->liteLoaderFilter->text();
}
return QString();
}
void CustomPage::suggestCurrent()
{
if (!isOpened) {
@@ -199,8 +219,8 @@ void CustomPage::suggestCurrent()
if (ui->loaderVersionList->selectedVersion() == nullptr)
dialog->setSuggestedPack(m_selectedVersion->descriptor(), new VanillaCreationTask(m_selectedVersion));
else {
dialog->setSuggestedPack(m_selectedVersion->descriptor(),
new VanillaCreationTask(m_selectedVersion, m_selectedLoader, m_selectedLoaderVersion));
QString suggestedName = QString("%1 %2").arg(m_selectedVersion->descriptor(), selectedLoaderName());
dialog->setSuggestedPack(suggestedName, new VanillaCreationTask(m_selectedVersion, m_selectedLoader, m_selectedLoaderVersion));
}
dialog->setSuggestedIcon("default");
}

View File

@@ -65,6 +65,7 @@ class CustomPage : public QWidget, public BasePage {
BaseVersion::Ptr selectedVersion() const;
BaseVersion::Ptr selectedLoaderVersion() const;
QString selectedLoader() const;
QString selectedLoaderName() const;
public slots:
void setSelectedVersion(BaseVersion::Ptr version);