Mercurial > trustbridge > trustbridge
comparison ui/administratorwindow.cpp @ 1316:ff9cd05e861e
(issue166) Fix certificiate removal
The index that should be removed came from the filter proxy model
and did not map to the real index. This was broken.
author | Andre Heinecke <andre.heinecke@intevation.de> |
---|---|
date | Mon, 13 Oct 2014 17:23:35 +0200 |
parents | 38d3dce323b4 |
children | d009da9cfa10 |
comparison
equal
deleted
inserted
replaced
1315:12ed0b72e9f5 | 1316:ff9cd05e861e |
---|---|
84 // The certificate list | 84 // The certificate list |
85 QGroupBox *certBox = new QGroupBox( | 85 QGroupBox *certBox = new QGroupBox( |
86 tr("All managed root certificates of the certificate list: ")); | 86 tr("All managed root certificates of the certificate list: ")); |
87 certificateView = new QTableView; | 87 certificateView = new QTableView; |
88 certificateModel = new CertificateTabelModel(); | 88 certificateModel = new CertificateTabelModel(); |
89 QSortFilterProxyModel *filterModel = new QSortFilterProxyModel(this); | 89 mFilterModel = new QSortFilterProxyModel(this); |
90 filterModel->setSourceModel(certificateModel); | 90 mFilterModel->setSourceModel(certificateModel); |
91 CertificateTableDelegate *delegate = new CertificateTableDelegate(certificateView); | 91 CertificateTableDelegate *delegate = new CertificateTableDelegate(certificateView); |
92 certificateView->setModel(filterModel); | 92 certificateView->setModel(mFilterModel); |
93 certificateView->setItemDelegate(delegate); | 93 certificateView->setItemDelegate(delegate); |
94 certificateView->horizontalHeader()->setStretchLastSection(true); | 94 certificateView->horizontalHeader()->setStretchLastSection(true); |
95 certificateView->resizeColumnsToContents(); | 95 certificateView->resizeColumnsToContents(); |
96 certificateView->setColumnWidth(0, 60); | 96 certificateView->setColumnWidth(0, 60); |
97 certificateView->setSelectionBehavior(QAbstractItemView::SelectRows); | 97 certificateView->setSelectionBehavior(QAbstractItemView::SelectRows); |
187 } | 187 } |
188 | 188 |
189 void AdministratorWindow::removeCertificates() | 189 void AdministratorWindow::removeCertificates() |
190 { | 190 { |
191 QModelIndexList list = certificateView->selectionModel()->selectedRows(); | 191 QModelIndexList list = certificateView->selectionModel()->selectedRows(); |
192 for (int i = list.size() -1 ; i >= 0; i--) { | 192 foreach (QModelIndex idx, list) { |
193 certificateModel->removeRow(list.at(i).row(), list.at(i)); | 193 QModelIndex realidx = mFilterModel->mapToSource(idx); |
194 qDebug() << "About to remove row: " << realidx.row(); | |
195 if (certificateModel->data(idx, Qt::UserRole).toBool()) { | |
196 certificateModel->removeRow(realidx.row(), realidx.parent()); | |
197 } else { | |
198 qDebug() << "Tried to remove old certificate at idx: " << realidx.row();; | |
199 } | |
194 } | 200 } |
195 } | 201 } |
196 | 202 |
197 void AdministratorWindow::loadCertificateTable() { | 203 void AdministratorWindow::loadCertificateTable() { |
198 foreach(const Certificate &cert, mCertList.getCertificates()) { | 204 foreach(const Certificate &cert, mCertList.getCertificates()) { |