diff --git a/src/yuzu/configuration/addon/mod_select_dialog.cpp b/src/yuzu/configuration/addon/mod_select_dialog.cpp
index 84154e7a5a..c933bfc0f3 100644
--- a/src/yuzu/configuration/addon/mod_select_dialog.cpp
+++ b/src/yuzu/configuration/addon/mod_select_dialog.cpp
@@ -25,9 +25,25 @@ ModSelectDialog::ModSelectDialog(const QStringList& mods, QWidget* parent)
first_item->setCheckState(Qt::Checked);
item_model->appendRow(first_item);
- item_model->layoutChanged();
}
+ ui->treeView->expandAll();
+ ui->treeView->resizeColumnToContents(0);
+
+ int rows = item_model->rowCount();
+ int height = ui->treeView->contentsMargins().top() + ui->treeView->contentsMargins().bottom();
+ int width = 0;
+
+ for (int i = 0; i < rows; ++i) {
+ height += ui->treeView->sizeHintForRow(i);
+ width = qMax(width, item_model->item(i)->sizeHint().width());
+ }
+
+ width += ui->treeView->contentsMargins().left() + ui->treeView->contentsMargins().right();
+ ui->treeView->setMinimumHeight(qMin(height, 600));
+ ui->treeView->setMinimumWidth(qMin(width, 700));
+ adjustSize();
+
connect(this, &QDialog::accepted, this, [this]() {
QStringList selected_mods;
diff --git a/src/yuzu/configuration/addon/mod_select_dialog.ui b/src/yuzu/configuration/addon/mod_select_dialog.ui
index 547afb25a7..6e196ecff0 100644
--- a/src/yuzu/configuration/addon/mod_select_dialog.ui
+++ b/src/yuzu/configuration/addon/mod_select_dialog.ui
@@ -7,7 +7,7 @@
0
0
400
- 300
+ 430
@@ -17,7 +17,7 @@
-
- The specified folder or archive contain the following mods. Select which ones to install.
+ The specified folder or archive contains the following mods. Select which ones to install.
true