Mercurial > trustbridge
changeset 376:9731d28b95af
Implemented 'remove certificate' in administrator app.
author | Raimund Renkert <rrenkert@intevation.de> |
---|---|
date | Tue, 15 Apr 2014 12:32:34 +0200 |
parents | 78eec57bc133 |
children | e3f825a7257e |
files | ui/administratorwindow.cpp ui/administratorwindow.h ui/certificatetablemodel.cpp ui/certificatetablemodel.h |
diffstat | 4 files changed, 40 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/ui/administratorwindow.cpp Tue Apr 15 09:44:54 2014 +0200 +++ b/ui/administratorwindow.cpp Tue Apr 15 12:32:34 2014 +0200 @@ -73,6 +73,8 @@ certificateView->setColumnWidth(3, 130); certificateView->setColumnWidth(4, 200); certificateView->setSelectionBehavior(QAbstractItemView::SelectRows); + connect(certificateView, SIGNAL(clicked(const QModelIndex&)), this, + SLOT(clickedCertificate(const QModelIndex&))); certificateView->verticalHeader()->setVisible(false); certLayout->addWidget(certificateView); certBox->setLayout(certLayout); @@ -100,6 +102,8 @@ addButton = new QPushButton(tr("Add")); connect(addButton, SIGNAL(clicked()), this, SLOT(addCertificates())); removeButton = new QPushButton(tr("Remove")); + removeButton->setEnabled(false); + connect(removeButton, SIGNAL(clicked()), this, SLOT(removeCertificates())); bottomLayout->addWidget(saveButton); bottomLayout->addWidget(loadButton); bottomLayout->addWidget(addButton); @@ -147,6 +151,14 @@ addToCertificateTable(certs); } +void AdministratorWindow::removeCertificates() +{ + QModelIndexList list = certificateView->selectionModel()->selectedRows(); + for (int i = list.size() -1 ; i >= 0; i--) { + certificateModel->removeRow(list.at(i).row(), list.at(i)); + } +} + void AdministratorWindow::loadCertificateTable() { foreach(const Certificate &cert, certList.getCertificates()) { certificateModel->addCertificate(cert, true); @@ -182,3 +194,12 @@ dialog->show(); } +void AdministratorWindow::clickedCertificate(const QModelIndex &index) +{ + if (index.data(Qt::UserRole).toBool()) { + removeButton->setEnabled(false); + } + else { + removeButton->setEnabled(true); + } +}
--- a/ui/administratorwindow.h Tue Apr 15 09:44:54 2014 +0200 +++ b/ui/administratorwindow.h Tue Apr 15 12:32:34 2014 +0200 @@ -33,6 +33,8 @@ void loadCertificateFile(); void saveCertificateFile(); void addCertificates(); + void removeCertificates(); + void clickedCertificate(const QModelIndex&); private: void createActions();
--- a/ui/certificatetablemodel.cpp Tue Apr 15 09:44:54 2014 +0200 +++ b/ui/certificatetablemodel.cpp Tue Apr 15 12:32:34 2014 +0200 @@ -20,6 +20,22 @@ endInsertRows(); } +bool CertificateTabelModel::removeRows(int row, int count, + const QModelIndex &index) +{ + beginRemoveRows(QModelIndex(), row, row + count - 1); + if ((row + count - 1) > certificates.size()) { + return false; + } + for (int i = row + count - 1; i >= row; i--) { + if (!certificates.at(i).isEditable()) { + certificates.removeAt(i); + } + } + endRemoveRows(); + return true; +} + QVariant CertificateTabelModel::data(const QModelIndex &index, int role) const {
--- a/ui/certificatetablemodel.h Tue Apr 15 09:44:54 2014 +0200 +++ b/ui/certificatetablemodel.h Tue Apr 15 12:32:34 2014 +0200 @@ -18,6 +18,7 @@ CertificateTabelModel(QObject *parent = 0); void addCertificate(const Certificate &certificate, bool editable); + bool removeRows(int row, int count, const QModelIndex&); int rowCount(const QModelIndex &parent = QModelIndex()) const; int columnCount(const QModelIndex &parent = QModelIndex()) const;