Merge pull request #4828 from arthomnix/feature-prefill-suggested-name

GH-4812 Prefill instance name to allow making adjustments
This commit is contained in:
Petr Mrázek 2022-07-19 17:23:55 +02:00 committed by GitHub
commit cf49f171b3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 53 additions and 13 deletions

View File

@ -103,6 +103,8 @@ NewInstanceDialog::NewInstanceDialog(const QString & initialGroup, const QString
importPage->setUrl(url);
}
connect(APPLICATION, &QApplication::focusChanged, this, &NewInstanceDialog::onFocusChanged);
updateDialogState();
restoreGeometry(QByteArray::fromBase64(APPLICATION->settings()->get("NewInstanceGeometry").toByteArray()));
@ -150,8 +152,15 @@ NewInstanceDialog::~NewInstanceDialog()
void NewInstanceDialog::setSuggestedPack(const QString& name, InstanceTask* task)
{
creationTask.reset(task);
defaultInstName = name;
ui->instNameTextBox->setPlaceholderText(name);
if (!instNameChanged)
{
ui->instNameTextBox->setText(name);
}
if(!task)
{
ui->iconButton->setIcon(APPLICATION->icons()->getIcon("default"));
@ -238,11 +247,29 @@ void NewInstanceDialog::on_iconButton_clicked()
}
}
void NewInstanceDialog::on_resetNameButton_clicked()
{
ui->instNameTextBox->setText(defaultInstName);
instNameChanged = false;
}
void NewInstanceDialog::on_instNameTextBox_textChanged(const QString &arg1)
{
updateDialogState();
}
void NewInstanceDialog::on_instNameTextBox_textEdited(const QString &text)
{
instNameChanged = true;
}
void NewInstanceDialog::onFocusChanged(QWidget *, QWidget *newWidget)
{
if (newWidget == ui->instNameTextBox && !instNameChanged) {
QTimer::singleShot(0, ui->instNameTextBox, &QLineEdit::selectAll);
}
}
void NewInstanceDialog::importIconNow()
{
if(importIcon) {

View File

@ -56,10 +56,13 @@ public:
public slots:
void accept() override;
void reject() override;
void onFocusChanged(QWidget *, QWidget *newWidget);
private slots:
void on_iconButton_clicked();
void on_resetNameButton_clicked();
void on_instNameTextBox_textChanged(const QString &arg1);
void on_instNameTextBox_textEdited(const QString &text);
private:
Ui::NewInstanceDialog *ui = nullptr;
@ -75,4 +78,7 @@ private:
QString importIconName;
void importIconNow();
QString defaultInstName;
bool instNameChanged = false;
};

View File

@ -26,6 +26,9 @@
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<layout class="QGridLayout" name="gridLayout_2">
<item row="0" column="2">
<widget class="QLineEdit" name="instNameTextBox"/>
</item>
<item row="1" column="2">
<widget class="QComboBox" name="groupBox">
<property name="editable">
@ -33,6 +36,16 @@
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QLabel" name="nameLabel">
<property name="text">
<string>&amp;Name:</string>
</property>
<property name="buddy">
<cstring>instNameTextBox</cstring>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QLabel" name="groupLabel">
<property name="text">
@ -43,19 +56,6 @@
</property>
</widget>
</item>
<item row="0" column="2">
<widget class="QLineEdit" name="instNameTextBox"/>
</item>
<item row="0" column="1">
<widget class="QLabel" name="nameLabel">
<property name="text">
<string>&amp;Name:</string>
</property>
<property name="buddy">
<cstring>instNameTextBox</cstring>
</property>
</widget>
</item>
<item row="0" column="0" rowspan="2">
<widget class="QToolButton" name="iconButton">
<property name="iconSize">
@ -66,6 +66,13 @@
</property>
</widget>
</item>
<item row="0" column="3">
<widget class="QPushButton" name="resetNameButton">
<property name="text">
<string>Reset</string>
</property>
</widget>
</item>
</layout>
</item>
<item>