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. // Similar to QWidget::adjustSize except maximum size is 9/10 of screen rather than 2/3.
void AdjustSizeWithinScreen(QWidget* widget); 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 } // namespace QtUtils

View File

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