summaryrefslogtreecommitdiffstats
path: root/application/MainWindow.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'application/MainWindow.cpp')
-rw-r--r--application/MainWindow.cpp23
1 files changed, 21 insertions, 2 deletions
diff --git a/application/MainWindow.cpp b/application/MainWindow.cpp
index 6c5aa3af..9ff120bd 100644
--- a/application/MainWindow.cpp
+++ b/application/MainWindow.cpp
@@ -1137,7 +1137,27 @@ void MainWindow::instanceFromZipPack(QString instName, QString instGroup, QStrin
}
newInstance->setName(instName);
- newInstance->setIconKey(instIcon);
+ if(instIcon != "default")
+ {
+ newInstance->setIconKey(instIcon);
+ }
+ else
+ {
+ instIcon = newInstance->iconKey();
+ auto importIconPath = PathCombine(newInstance->instanceRoot(), instIcon + ".png");
+ if (QFile::exists(importIconPath))
+ {
+ // import icon
+ auto iconList = ENV.icons();
+ // FIXME: check if the file is OK before removing the existing one...
+ if(iconList->iconFileExists(instIcon))
+ {
+ //FIXME: ask if icon should be overwritten. Show difference in the question dialog.
+ iconList->deleteIcon(instIcon);
+ }
+ iconList->installIcons({importIconPath});
+ }
+ }
newInstance->setGroupInitial(instGroup);
MMC->instances()->add(InstancePtr(newInstance));
MMC->instances()->saveGroupList();
@@ -1225,7 +1245,6 @@ void MainWindow::on_actionAddInstance_triggered()
const QUrl modpackUrl = newInstDlg.modpackUrl();
-
if (modpackUrl.isValid())
{
instanceFromZipPack(newInstDlg.instName(), newInstDlg.instGroup(), newInstDlg.iconKey(), modpackUrl);