DolphinQt: Fix the WiiPane hinting a larger than required size.

This commit is contained in:
Jordan Woyak 2025-05-16 19:31:00 -05:00
parent 5bc661aeca
commit 1e4dfc0956
2 changed files with 18 additions and 5 deletions

View File

@ -19,4 +19,18 @@ QWidget* CreateIconWarning(QWidget* parent, QStyle::StandardPixmap standard_pixm
// Similar to QWidget::adjustSize except maximum size is 9/10 of screen rather than 2/3.
void AdjustSizeWithinScreen(QWidget* widget);
// A QWidget that returns the minimumSizeHint as the primary sizeHint.
// Useful for QListWidget which hints a fairly large height even when entirely empty.
// Usage: QtUtils::MinimumSizeHintWidget<QListWidget>
template <typename Widget>
class MinimumSizeHintWidget : public Widget
{
public:
using Widget::Widget;
// Note: Some widget (e.g. QPushButton) minimumSizeHint implementations themselves use sizeHint,
// which would cause this to stack overflow.
QSize sizeHint() const override { return Widget::minimumSizeHint(); }
};
} // namespace QtUtils

View File

@ -24,7 +24,6 @@
#include "Common/Config/Config.h"
#include "Common/FatFsUtil.h"
#include "Common/FileUtil.h"
#include "Common/StringUtil.h"
#include "Core/Config/MainSettings.h"
#include "Core/Config/SYSCONFSettings.h"
@ -36,6 +35,7 @@
#include "DolphinQt/QtUtils/ModalMessageBox.h"
#include "DolphinQt/QtUtils/NonDefaultQPushButton.h"
#include "DolphinQt/QtUtils/ParallelProgressDialog.h"
#include "DolphinQt/QtUtils/QtUtils.h"
#include "DolphinQt/QtUtils/SetWindowDecorations.h"
#include "DolphinQt/QtUtils/SignalBlocking.h"
#include "DolphinQt/Settings.h"
@ -98,13 +98,11 @@ WiiPane::WiiPane(QWidget* parent) : QWidget(parent)
void WiiPane::CreateLayout()
{
m_main_layout = new QVBoxLayout;
m_main_layout = new QVBoxLayout{this};
CreateMisc();
CreateSDCard();
CreateWhitelistedUSBPassthroughDevices();
CreateWiiRemoteSettings();
m_main_layout->addStretch(1);
setLayout(m_main_layout);
}
void WiiPane::ConnectLayout()
@ -324,7 +322,8 @@ void WiiPane::CreateSDCard()
void WiiPane::CreateWhitelistedUSBPassthroughDevices()
{
m_whitelist_usb_list = new QListWidget();
m_whitelist_usb_list = new QtUtils::MinimumSizeHintWidget<QListWidget>;
m_whitelist_usb_add_button = new NonDefaultQPushButton(tr("Add..."));
m_whitelist_usb_remove_button = new NonDefaultQPushButton(tr("Remove"));