first attempt to remove accounts
This commit is contained in:
parent
8432a574b9
commit
234697050b
14 changed files with 190 additions and 14 deletions
|
@ -6,15 +6,19 @@
|
|||
Accounts::Accounts(Models::Accounts* p_model, QWidget *parent) :
|
||||
m_ui(new Ui::Accounts),
|
||||
model(p_model),
|
||||
editing(false)
|
||||
editing(false),
|
||||
toDisconnect(false)
|
||||
{
|
||||
m_ui->setupUi(this);
|
||||
|
||||
connect(m_ui->addButton, SIGNAL(clicked(bool)), this, SLOT(onAddButton(bool)));
|
||||
connect(m_ui->editButton, SIGNAL(clicked(bool)), this, SLOT(onEditButton(bool)));
|
||||
connect(m_ui->connectButton, SIGNAL(clicked(bool)), this, SLOT(onConnectButton(bool)));
|
||||
connect(m_ui->deleteButton, SIGNAL(clicked(bool)), this, SLOT(onDeleteButton(bool)));
|
||||
m_ui->tableView->setModel(model);
|
||||
connect(m_ui->tableView->selectionModel(), SIGNAL(selectionChanged(const QItemSelection&, const QItemSelection&)),
|
||||
this, SLOT(onSelectionChanged(const QItemSelection&, const QItemSelection&)));
|
||||
connect(p_model, SIGNAL(changed()), this, SLOT(updateConnectButton()));
|
||||
}
|
||||
|
||||
Accounts::~Accounts() = default;
|
||||
|
@ -69,12 +73,66 @@ void Accounts::onEditButton(bool clicked)
|
|||
|
||||
void Accounts::onSelectionChanged(const QItemSelection& selected, const QItemSelection& deselected)
|
||||
{
|
||||
const QItemSelection& selection = m_ui->tableView->selectionModel()->selection();
|
||||
if (selection.size() == 0) {
|
||||
int selectionSize = m_ui->tableView->selectionModel()->selection().size();
|
||||
if (selectionSize == 0) {
|
||||
m_ui->editButton->setEnabled(false);
|
||||
} else if (selection.size() == 1) {
|
||||
m_ui->deleteButton->setEnabled(false);
|
||||
} else if (selectionSize == 1) {
|
||||
m_ui->editButton->setEnabled(true);
|
||||
m_ui->deleteButton->setEnabled(true);
|
||||
} else {
|
||||
m_ui->editButton->setEnabled(false);
|
||||
m_ui->deleteButton->setEnabled(true);
|
||||
}
|
||||
|
||||
updateConnectButton();
|
||||
}
|
||||
|
||||
void Accounts::updateConnectButton()
|
||||
{
|
||||
QItemSelectionModel* sm = m_ui->tableView->selectionModel();
|
||||
if (sm->hasSelection()) {
|
||||
m_ui->connectButton->setEnabled(true);
|
||||
int selectionSize = sm->selection().size();
|
||||
bool allConnected = true;
|
||||
for (int i = 0; i < selectionSize && allConnected; ++i) {
|
||||
const Models::Account* mAcc = model->getAccount(sm->selectedRows().at(i).row());
|
||||
allConnected = mAcc->getState() == Shared::connected;
|
||||
}
|
||||
if (allConnected) {
|
||||
toDisconnect = true;
|
||||
m_ui->connectButton->setText("Disconnect");
|
||||
} else {
|
||||
toDisconnect = false;
|
||||
m_ui->connectButton->setText("Connect");
|
||||
}
|
||||
} else {
|
||||
m_ui->connectButton->setText("Connect");
|
||||
toDisconnect = false;
|
||||
m_ui->connectButton->setEnabled(false);
|
||||
}
|
||||
}
|
||||
|
||||
void Accounts::onConnectButton(bool clicked)
|
||||
{
|
||||
QItemSelectionModel* sm = m_ui->tableView->selectionModel();
|
||||
int selectionSize = sm->selection().size();
|
||||
for (int i = 0; i < selectionSize; ++i) {
|
||||
const Models::Account* mAcc = model->getAccount(sm->selectedRows().at(i).row());
|
||||
if (toDisconnect) {
|
||||
emit disconnectAccount(mAcc->getName());
|
||||
} else {
|
||||
emit connectAccount(mAcc->getName());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void Accounts::onDeleteButton(bool clicked)
|
||||
{
|
||||
QItemSelectionModel* sm = m_ui->tableView->selectionModel();
|
||||
int selectionSize = sm->selection().size();
|
||||
for (int i = 0; i < selectionSize; ++i) {
|
||||
const Models::Account* mAcc = model->getAccount(sm->selectedRows().at(i).row());
|
||||
emit removeAccount(mAcc->getName());
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue