#2228, #2229 - Auto import pack icons and fixed to big version selection - Closes #2228, Closes #2229

This commit is contained in:
Janrupf
2018-04-07 16:15:58 +02:00
committed by Petr Mrázek
parent 38ed0c2a1f
commit 7e1c5d439a
8 changed files with 71 additions and 1 deletions

View File

@ -100,6 +100,7 @@ void NewInstanceDialog::reject()
void NewInstanceDialog::accept()
{
MMC->settings()->set("NewInstanceGeometry", saveGeometry().toBase64());
importIconNow();
QDialog::accept();
}
@ -135,6 +136,16 @@ void NewInstanceDialog::setSuggestedPack(const QString& name, InstanceTask* task
m_buttons->button(QDialogButtonBox::Ok)->setEnabled(allowOK);
}
void NewInstanceDialog::setSuggestedIconFromFile(const QString &path, const QString &name)
{
importIcon = true;
importIconPath = path;
importIconName = name;
//Hmm, for some reason they can be to small
ui->iconButton->setIcon(QIcon(path));
}
InstanceTask * NewInstanceDialog::extractTask()
{
InstanceTask * extracted = creationTask.get();
@ -177,6 +188,7 @@ QString NewInstanceDialog::iconKey() const
void NewInstanceDialog::on_iconButton_clicked()
{
importIconNow(); //so the user can switch back
IconPickerDialog dlg(this);
dlg.execWithSelection(InstIconKey);
@ -184,6 +196,7 @@ void NewInstanceDialog::on_iconButton_clicked()
{
InstIconKey = dlg.selectedIconKey;
ui->iconButton->setIcon(MMC->icons()->getIcon(InstIconKey));
importIcon = false;
}
}
@ -191,3 +204,13 @@ void NewInstanceDialog::on_instNameTextBox_textChanged(const QString &arg1)
{
updateDialogState();
}
void NewInstanceDialog::importIconNow()
{
if(importIcon) {
MMC->icons()->installIcon(importIconPath, importIconName);
InstIconKey = importIconName;
importIcon = false;
}
MMC->settings()->set("NewInstanceGeometry", saveGeometry().toBase64());
}

View File

@ -41,6 +41,8 @@ public:
void updateDialogState();
void setSuggestedPack(const QString & name = QString(), InstanceTask * task = nullptr);
void setSuggestedIconFromFile(const QString &path, const QString &name);
InstanceTask * extractTask();
QString dialogTitle() override;
@ -66,4 +68,10 @@ private:
QString InstIconKey;
ImportPage *importPage = nullptr;
std::unique_ptr<InstanceTask> creationTask;
bool importIcon = false;
QString importIconPath;
QString importIconName;
void importIconNow();
};