aboutsummaryrefslogtreecommitdiff
path: root/launcher/ui/MainWindow.cpp
diff options
context:
space:
mode:
authorADudeCalledLeo <7997354+Leo40Git@users.noreply.github.com>2022-10-28 17:42:29 +0300
committerADudeCalledLeo <7997354+Leo40Git@users.noreply.github.com>2022-11-12 20:19:28 +0200
commit4d4dfab38869bca82626e171336cbe8f7c89a1a1 (patch)
treeb6beabf50de53e2483ad5135ee197394ebb81d9d /launcher/ui/MainWindow.cpp
parentb83f9be1bd65f784bbed603e550fbe9f650b0367 (diff)
downloadPrismLauncher-4d4dfab38869bca82626e171336cbe8f7c89a1a1.tar.gz
PrismLauncher-4d4dfab38869bca82626e171336cbe8f7c89a1a1.tar.bz2
PrismLauncher-4d4dfab38869bca82626e171336cbe8f7c89a1a1.zip
Windows: add instance icon to shortcut
Signed-off-by: ADudeCalledLeo <7997354+Leo40Git@users.noreply.github.com>
Diffstat (limited to 'launcher/ui/MainWindow.cpp')
-rw-r--r--launcher/ui/MainWindow.cpp27
1 files changed, 24 insertions, 3 deletions
diff --git a/launcher/ui/MainWindow.cpp b/launcher/ui/MainWindow.cpp
index 34c51ec6..9743c822 100644
--- a/launcher/ui/MainWindow.cpp
+++ b/launcher/ui/MainWindow.cpp
@@ -2107,11 +2107,28 @@ void MainWindow::on_actionCreateInstanceShortcut_triggered()
auto icon = APPLICATION->icons()->icon(m_selectedInstance->iconKey());
QString iconPath;
+ bool iconGenerated = false;
#if defined(Q_OS_WIN)
- // TODO
- // need to convert icon to ICO format and save it somewhere...
- iconPath = "";
+ iconPath = FS::PathCombine(m_selectedInstance->instanceRoot(), "icon.ico");
+
+ QFile iconFile(iconPath);
+ if (!iconFile.open(QFile::WriteOnly))
+ {
+ QMessageBox::critical(this, tr("Create instance shortcut"), tr("Failed to create instance shortcut!"));
+ return;
+ }
+
+ if (!icon->icon().pixmap(64, 64).save(&iconFile, "ICO"))
+ {
+ iconFile.close();
+ iconFile.remove();
+ QMessageBox::critical(this, tr("Create instance shortcut"), tr("Failed to create instance shortcut!"));
+ return;
+ }
+
+ iconFile.close();
+ iconGenerated = true;
#else
iconPath = icon->getFilePath();
#endif
@@ -2121,6 +2138,10 @@ void MainWindow::on_actionCreateInstanceShortcut_triggered()
}
else
{
+ if (iconGenerated)
+ {
+ QFile::remove(iconPath);
+ }
QMessageBox::critical(this, tr("Create instance shortcut"), tr("Failed to create instance shortcut!"));
}
#endif