summaryrefslogtreecommitdiff
path: root/src/yuzu/util
diff options
context:
space:
mode:
authorboludoz <francomaro@gmail.com>2023-10-15 02:02:22 -0300
committerboludoz <francomaro@gmail.com>2023-10-15 02:02:22 -0300
commit3062a35eb1297067446156c43e9d0df2f684edff (patch)
treef2ca58e0b8a6c413f3c6783a1501204729e0394c /src/yuzu/util
parent1a4abd184f8085f29a18453bdc4aabb3c038907a (diff)
Improved shortcut: add games in applist for Windows, question for start game at fullscreen & better unicode support for some Windows path funcs.
Diffstat (limited to 'src/yuzu/util')
-rw-r--r--src/yuzu/util/util.cpp17
-rw-r--r--src/yuzu/util/util.h14
2 files changed, 25 insertions, 6 deletions
diff --git a/src/yuzu/util/util.cpp b/src/yuzu/util/util.cpp
index f2854c8ec..4d199ebd1 100644
--- a/src/yuzu/util/util.cpp
+++ b/src/yuzu/util/util.cpp
@@ -42,7 +42,7 @@ QPixmap CreateCirclePixmapFromColor(const QColor& color) {
return circle_pixmap;
}
-bool SaveIconToFile(const std::string_view path, const QImage& image) {
+bool SaveIconToFile(const QImage& image, const std::filesystem::path& icon_path) {
#if defined(WIN32)
#pragma pack(push, 2)
struct IconDir {
@@ -73,7 +73,7 @@ bool SaveIconToFile(const std::string_view path, const QImage& image) {
.id_count = static_cast<WORD>(scale_sizes.size()),
};
- Common::FS::IOFile icon_file(path, Common::FS::FileAccessMode::Write,
+ Common::FS::IOFile icon_file(icon_path.string(), Common::FS::FileAccessMode::Write,
Common::FS::FileType::BinaryFile);
if (!icon_file.IsOpen()) {
return false;
@@ -135,7 +135,16 @@ bool SaveIconToFile(const std::string_view path, const QImage& image) {
icon_file.Close();
return true;
-#else
- return false;
+#elif defined(__linux__) || defined(__FreeBSD__)
+ // Convert and write the icon as a PNG
+ if (!image.save(QString::fromStdString(icon_path.string()))) {
+ LOG_ERROR(Frontend, "Could not write icon as PNG to file");
+ } else {
+ LOG_INFO(Frontend, "Wrote an icon to {}", icon_path.string());
+ }
+
+ return true;
#endif
+
+ return false;
}
diff --git a/src/yuzu/util/util.h b/src/yuzu/util/util.h
index 09c14ce3f..8839e160a 100644
--- a/src/yuzu/util/util.h
+++ b/src/yuzu/util/util.h
@@ -3,26 +3,36 @@
#pragma once
+#include <filesystem>
#include <QFont>
#include <QString>
/// Returns a QFont object appropriate to use as a monospace font for debugging widgets, etc.
+
[[nodiscard]] QFont GetMonospaceFont();
/// Convert a size in bytes into a readable format (KiB, MiB, etc.)
+
[[nodiscard]] QString ReadableByteSize(qulonglong size);
/**
* Creates a circle pixmap from a specified color
+ *
* @param color The color the pixmap shall have
+ *
* @return QPixmap circle pixmap
*/
+
[[nodiscard]] QPixmap CreateCirclePixmapFromColor(const QColor& color);
/**
* Saves a windows icon to a file
- * @param path The icons path
+ *
* @param image The image to save
+ *
+ * @param path The icons path
+ *
* @return bool If the operation succeeded
*/
-[[nodiscard]] bool SaveIconToFile(const std::string_view path, const QImage& image);
+
+[[nodiscard]] bool SaveIconToFile(const QImage& image, const std::filesystem::path& icon_path);