diff --git a/src/yuzu/main.cpp b/src/yuzu/main.cpp
index 01a0f94ab6a43e334de3fae8f85d1e4ae763c3b0..bd7b0800762027ad94cc9926e6a69a39d41f4461 100644
--- a/src/yuzu/main.cpp
+++ b/src/yuzu/main.cpp
@@ -827,31 +827,25 @@ void GMainWindow::OnGameListOpenFolder(u64 program_id, GameListOpenTarget target
         const std::string nand_dir = FileUtil::GetUserPath(FileUtil::UserPath::NANDDir);
         ASSERT(program_id != 0);
 
-        Service::Account::ProfileManager manager{};
-        const auto user_ids = manager.GetAllUsers();
-        QStringList list;
-        for (const auto& user_id : user_ids) {
-            if (user_id == Service::Account::UUID{})
-                continue;
-            Service::Account::ProfileBase base;
-            if (!manager.GetProfileBase(user_id, base))
-                continue;
-
-            list.push_back(QString::fromStdString(Common::StringFromFixedZeroTerminatedBuffer(
-                reinterpret_cast<const char*>(base.username.data()), base.username.size())));
-        }
+        const auto select_profile = [this]() -> s32 {
+            QtProfileSelectionDialog dialog(this);
+            dialog.setWindowFlags(Qt::Dialog | Qt::CustomizeWindowHint | Qt::WindowTitleHint |
+                                  Qt::WindowSystemMenuHint | Qt::WindowCloseButtonHint);
+            dialog.setWindowModality(Qt::WindowModal);
+            dialog.exec();
+
+            if (!dialog.GetStatus()) {
+                return -1;
+            }
 
-        bool ok = false;
-        const auto index_string =
-            QInputDialog::getItem(this, tr("Select User"),
-                                  tr("Please select the user's save data you would like to open."),
-                                  list, Settings::values.current_user, false, &ok);
-        if (!ok)
-            return;
+            return dialog.GetIndex();
+        };
 
-        const auto index = list.indexOf(index_string);
-        ASSERT(index != -1 && index < 8);
+        const auto index = select_profile();
+        if (index == -1)
+            return;
 
+        Service::Account::ProfileManager manager;
         const auto user_id = manager.GetUser(index);
         ASSERT(user_id);
         path = nand_dir + FileSys::SaveDataFactory::GetFullPath(FileSys::SaveDataSpaceId::NandUser,