diff options
author | Sky <git@bunnies.cc> | 2013-11-27 22:51:45 +0000 |
---|---|---|
committer | Sky <git@bunnies.cc> | 2013-11-27 22:51:45 +0000 |
commit | d32cb1c95d5c1a50c322085cdfe4bf3f991431e7 (patch) | |
tree | 8a31c6ed1c2da0513596d8bb82dc439101a7aec9 /gui/dialogs/AccountListDialog.cpp | |
parent | 70973d111a35c65072b9431420d3d854bd82e8f5 (diff) | |
parent | a4c5f0135ef8e3671f54cf56b1aa8766ee4b4a20 (diff) | |
download | MultiMC-d32cb1c95d5c1a50c322085cdfe4bf3f991431e7.tar MultiMC-d32cb1c95d5c1a50c322085cdfe4bf3f991431e7.tar.gz MultiMC-d32cb1c95d5c1a50c322085cdfe4bf3f991431e7.tar.lz MultiMC-d32cb1c95d5c1a50c322085cdfe4bf3f991431e7.tar.xz MultiMC-d32cb1c95d5c1a50c322085cdfe4bf3f991431e7.zip |
Merge remote-tracking branch 'upstream/feature_yggdrasil' into develop
Diffstat (limited to 'gui/dialogs/AccountListDialog.cpp')
-rw-r--r-- | gui/dialogs/AccountListDialog.cpp | 28 |
1 files changed, 27 insertions, 1 deletions
diff --git a/gui/dialogs/AccountListDialog.cpp b/gui/dialogs/AccountListDialog.cpp index 0ce14638..97dc0564 100644 --- a/gui/dialogs/AccountListDialog.cpp +++ b/gui/dialogs/AccountListDialog.cpp @@ -25,6 +25,7 @@ #include <gui/dialogs/LoginDialog.h> #include <gui/dialogs/ProgressDialog.h> +#include <gui/dialogs/AccountSelectDialog.h> #include <MultiMC.h> @@ -37,6 +38,14 @@ AccountListDialog::AccountListDialog(QWidget *parent) : m_accounts = MMC->accounts(); // TODO: Make the "Active?" column show checkboxes or radio buttons. ui->listView->setModel(m_accounts.get()); + + QItemSelectionModel* selectionModel = ui->listView->selectionModel(); + connect(selectionModel, &QItemSelectionModel::selectionChanged, + [this] (const QItemSelection& sel, const QItemSelection& dsel) { updateButtonStates(); }); + connect(m_accounts.get(), &MojangAccountList::listChanged, + [this] () { updateButtonStates(); }); + + updateButtonStates(); } AccountListDialog::~AccountListDialog() @@ -67,7 +76,7 @@ void AccountListDialog::on_editAccountBtn_clicked() // TODO } -void AccountListDialog::on_setActiveBtn_clicked() +void AccountListDialog::on_setDefaultBtn_clicked() { QModelIndexList selection = ui->listView->selectionModel()->selectedIndexes(); if (selection.size() > 0) @@ -80,11 +89,28 @@ void AccountListDialog::on_setActiveBtn_clicked() } } +void AccountListDialog::on_noDefaultBtn_clicked() +{ + m_accounts->setActiveAccount(""); +} + void AccountListDialog::on_closeBtnBox_rejected() { close(); } +void AccountListDialog::updateButtonStates() +{ + // If there is no selection, disable buttons that require something selected. + QModelIndexList selection = ui->listView->selectionModel()->selectedIndexes(); + + ui->rmAccountBtn->setEnabled(selection.size() > 0); + ui->editAccountBtn->setEnabled(selection.size() > 0); + ui->setDefaultBtn->setEnabled(selection.size() > 0); + + ui->noDefaultBtn->setDown(m_accounts->activeAccount().get() == nullptr); +} + void AccountListDialog::doLogin(const QString& errMsg) { // TODO: We can use the login dialog for this for now, but we'll have to make something better for it eventually. |