mirror of
https://github.com/PrismLauncher/PrismLauncher.git
synced 2026-07-30 09:58:18 -04:00
Add wildcard support to instance name field
Signed-off-by: Vishrut Sachan <vishrutsachan2004@gmail.com>
This commit is contained in:
@@ -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();
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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");
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user