void PasswordsContentsWidget::removeHostPasswords() { const QModelIndexList indexes(m_ui->passwordsViewWidget->selectionModel()->selectedIndexes()); if (indexes.isEmpty()) { return; } QStringList hosts; int amount(0); for (int i = 0; i < indexes.count(); ++i) { QModelIndex hostIndex(indexes.at(i)); while (hostIndex.parent().isValid() && hostIndex.parent() != m_model->invisibleRootItem()->index()) { hostIndex = hostIndex.parent(); } if (hostIndex.isValid()) { const QString host(hostIndex.data(HostRole).toString()); if (!host.isEmpty() && !hosts.contains(host)) { hosts.append(host); amount += m_model->rowCount(hostIndex); } } } if (hosts.isEmpty()) { return; } QMessageBox messageBox; messageBox.setWindowTitle(tr("Question")); messageBox.setText(tr("You are about to delete %n password(s).", "", amount)); messageBox.setInformativeText(tr("Do you want to continue?")); messageBox.setIcon(QMessageBox::Question); messageBox.setStandardButtons(QMessageBox::Yes | QMessageBox::Cancel); messageBox.setDefaultButton(QMessageBox::Yes); if (messageBox.exec() == QMessageBox::Yes) { for (int i = 0; i < hosts.count(); ++i) { PasswordsManager::clearPasswords(hosts.at(i)); } } }
void PasswordsContentsWidget::updateActions() { const QModelIndex index(m_ui->passwordsViewWidget->getCurrentIndex()); QModelIndex hostIndex(index); while (hostIndex.parent().isValid() && hostIndex.parent() != m_model->invisibleRootItem()->index()) { hostIndex = hostIndex.parent(); } if (hostIndex.isValid()) { m_ui->domainLabelWidget->setText(hostIndex.data(HostRole).toString()); } m_ui->deleteButton->setEnabled(index.isValid() && index.parent() != m_model->invisibleRootItem()->index()); }