DolphinQt: Restrict size of banner image in game properties info tab.

This commit is contained in:
Jordan Woyak 2024-10-11 22:56:33 -05:00
parent d6e10e586a
commit 23ba1c9133
3 changed files with 9 additions and 5 deletions

View File

@ -15,10 +15,6 @@
namespace DiscIO namespace DiscIO
{ {
constexpr u32 BANNER_WIDTH = 192;
constexpr u32 BANNER_HEIGHT = 64;
constexpr u32 BANNER_SIZE = BANNER_WIDTH * BANNER_HEIGHT * 2;
constexpr u32 ICON_WIDTH = 48; constexpr u32 ICON_WIDTH = 48;
constexpr u32 ICON_HEIGHT = 48; constexpr u32 ICON_HEIGHT = 48;
constexpr u32 ICON_SIZE = ICON_WIDTH * ICON_HEIGHT * 2; constexpr u32 ICON_SIZE = ICON_WIDTH * ICON_HEIGHT * 2;
@ -31,6 +27,8 @@ WiiSaveBanner::WiiSaveBanner(u64 title_id)
WiiSaveBanner::WiiSaveBanner(const std::string& path) : m_path(path) WiiSaveBanner::WiiSaveBanner(const std::string& path) : m_path(path)
{ {
constexpr u32 BANNER_SIZE = BANNER_WIDTH * BANNER_HEIGHT * 2;
constexpr size_t MINIMUM_SIZE = sizeof(Header) + BANNER_SIZE + ICON_SIZE; constexpr size_t MINIMUM_SIZE = sizeof(Header) + BANNER_SIZE + ICON_SIZE;
File::IOFile file(path, "rb"); File::IOFile file(path, "rb");
if (!file.ReadArray(&m_header, 1)) if (!file.ReadArray(&m_header, 1))

View File

@ -13,6 +13,9 @@ namespace DiscIO
class WiiSaveBanner class WiiSaveBanner
{ {
public: public:
static constexpr u32 BANNER_WIDTH = 192;
static constexpr u32 BANNER_HEIGHT = 64;
explicit WiiSaveBanner(u64 title_id); explicit WiiSaveBanner(u64 title_id);
explicit WiiSaveBanner(const std::string& path); explicit WiiSaveBanner(const std::string& path);

View File

@ -18,6 +18,7 @@
#include "DiscIO/Blob.h" #include "DiscIO/Blob.h"
#include "DiscIO/Enums.h" #include "DiscIO/Enums.h"
#include "DiscIO/Volume.h" #include "DiscIO/Volume.h"
#include "DiscIO/WiiSaveBanner.h"
#include "DolphinQt/QtUtils/DolphinFileDialog.h" #include "DolphinQt/QtUtils/DolphinFileDialog.h"
#include "DolphinQt/QtUtils/ImageConverter.h" #include "DolphinQt/QtUtils/ImageConverter.h"
@ -179,7 +180,9 @@ QWidget* InfoWidget::CreateBannerGraphic(const QPixmap& image)
QHBoxLayout* layout = new QHBoxLayout(); QHBoxLayout* layout = new QHBoxLayout();
QLabel* banner = new QLabel(); QLabel* banner = new QLabel();
banner->setPixmap(image); banner->setPixmap(image.scaled(image.size().boundedTo(
QSize{DiscIO::WiiSaveBanner::BANNER_WIDTH, DiscIO::WiiSaveBanner::BANNER_HEIGHT})));
QPushButton* save = new QPushButton(tr("Save as...")); QPushButton* save = new QPushButton(tr("Save as..."));
connect(save, &QPushButton::clicked, this, &InfoWidget::SaveBanner); connect(save, &QPushButton::clicked, this, &InfoWidget::SaveBanner);