Merge pull request #4817 from Kewlan/open-single-save-location

main/profile_select: Don't ask for profile when there's only one.
This commit is contained in:
bunnei 2020-10-24 03:02:19 -07:00 committed by GitHub
commit ab052cf684
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 20 additions and 16 deletions

View file

@ -114,6 +114,15 @@ QtProfileSelectionDialog::QtProfileSelectionDialog(QWidget* parent)
QtProfileSelectionDialog::~QtProfileSelectionDialog() = default; QtProfileSelectionDialog::~QtProfileSelectionDialog() = default;
int QtProfileSelectionDialog::exec() {
// Skip profile selection when there's only one.
if (profile_manager->GetUserCount() == 1) {
user_index = 0;
return QDialog::Accepted;
}
QDialog::exec();
}
void QtProfileSelectionDialog::accept() { void QtProfileSelectionDialog::accept() {
QDialog::accept(); QDialog::accept();
} }

View file

@ -27,6 +27,7 @@ public:
explicit QtProfileSelectionDialog(QWidget* parent); explicit QtProfileSelectionDialog(QWidget* parent);
~QtProfileSelectionDialog() override; ~QtProfileSelectionDialog() override;
int exec() override;
void accept() override; void accept() override;
void reject() override; void reject() override;

View file

@ -303,24 +303,18 @@ void GMainWindow::ControllerSelectorReconfigureControllers(
} }
void GMainWindow::ProfileSelectorSelectProfile() { void GMainWindow::ProfileSelectorSelectProfile() {
const Service::Account::ProfileManager manager; QtProfileSelectionDialog dialog(this);
int index = 0; dialog.setWindowFlags(Qt::Dialog | Qt::CustomizeWindowHint | Qt::WindowStaysOnTopHint |
if (manager.GetUserCount() != 1) { Qt::WindowTitleHint | Qt::WindowSystemMenuHint |
QtProfileSelectionDialog dialog(this); Qt::WindowCloseButtonHint);
dialog.setWindowFlags(Qt::Dialog | Qt::CustomizeWindowHint | Qt::WindowStaysOnTopHint | dialog.setWindowModality(Qt::WindowModal);
Qt::WindowTitleHint | Qt::WindowSystemMenuHint | if (dialog.exec() == QDialog::Rejected) {
Qt::WindowCloseButtonHint); emit ProfileSelectorFinishedSelection(std::nullopt);
dialog.setWindowModality(Qt::WindowModal); return;
if (dialog.exec() == QDialog::Rejected) {
emit ProfileSelectorFinishedSelection(std::nullopt);
return;
}
index = dialog.GetIndex();
} }
const auto uuid = manager.GetUser(static_cast<std::size_t>(index)); const Service::Account::ProfileManager manager;
const auto uuid = manager.GetUser(static_cast<std::size_t>(dialog.GetIndex()));
if (!uuid.has_value()) { if (!uuid.has_value()) {
emit ProfileSelectorFinishedSelection(std::nullopt); emit ProfileSelectorFinishedSelection(std::nullopt);
return; return;