Mercurial > trustbridge
comparison ui/certificatelistwidget.cpp @ 639:c1b35edb097f trustbridge-refactor
New methods to modify and use the certificate list.
author | Raimund Renkert <rrenkert@intevation.de> |
---|---|
date | Tue, 24 Jun 2014 17:03:59 +0200 |
parents | 566ee111e331 |
children | 7cd6602e3fa2 |
comparison
equal
deleted
inserted
replaced
638:9d806f140bd5 | 639:c1b35edb097f |
---|---|
70 mainLayout->addWidget(mCertificateList); | 70 mainLayout->addWidget(mCertificateList); |
71 mainLayout->addWidget(detailBox); | 71 mainLayout->addWidget(detailBox); |
72 this->setLayout(mainLayout); | 72 this->setLayout(mainLayout); |
73 } | 73 } |
74 | 74 |
75 void CertificateListWidget::addCertificate(const Certificate &certificate) | 75 void CertificateListWidget::addCertificate( |
76 const Certificate &certificate, | |
77 bool state, | |
78 bool editable) | |
76 { | 79 { |
77 QListWidgetItem* item = new QListWidgetItem(mCertificateList); | 80 QListWidgetItem* item = new QListWidgetItem(mCertificateList); |
78 item->setData(Qt::UserRole, | 81 item->setData(Qt::UserRole, |
79 QVariant::fromValue(certificate)); | 82 QVariant::fromValue(certificate)); |
80 mCertificateList->addItem(item); | 83 mCertificateList->addItem(item); |
81 CertificateItemWidget *widget = | 84 CertificateItemWidget *widget = |
82 new CertificateItemWidget(mCertificateList, certificate); | 85 new CertificateItemWidget(mCertificateList, certificate, state, editable); |
83 connect(widget, SIGNAL(stateChanged(bool, const Certificate&)), | 86 connect(widget, SIGNAL(stateChanged(bool, const Certificate&)), |
84 this, SLOT(certStateChanged(bool, const Certificate&))); | 87 this, SLOT(certStateChanged(bool, const Certificate&))); |
85 item->setSizeHint(widget->minimumSizeHint()); | 88 item->setSizeHint(widget->minimumSizeHint()); |
86 mCertificateList->setItemWidget(item, widget); | 89 mCertificateList->setItemWidget(item, widget); |
87 } | 90 } |
89 void CertificateListWidget::addCertificates(const QList<Certificate> &list) | 92 void CertificateListWidget::addCertificates(const QList<Certificate> &list) |
90 { | 93 { |
91 | 94 |
92 } | 95 } |
93 | 96 |
94 void CertificateListWidget::removeCertificate(int ndx) | 97 void CertificateListWidget::removeCertificate(const Certificate &cert) |
95 { | 98 { |
96 | 99 for (int i = 0; i < mCertificateList->count(); i++) { |
100 QListWidgetItem *item = mCertificateList->item(i); | |
101 CertificateItemWidget *itemWidget = | |
102 static_cast<CertificateItemWidget*>(mCertificateList->itemWidget(item)); | |
103 if (itemWidget->certificate() == cert) { | |
104 QListWidgetItem* item = mCertificateList->takeItem(i); | |
105 delete(item); | |
106 } | |
107 } | |
97 } | 108 } |
98 | 109 |
99 void CertificateListWidget::clear() | 110 void CertificateListWidget::clear() |
100 { | 111 { |
101 mCertificateList->clear(); | 112 mCertificateList->clear(); |
102 } | 113 } |
103 | 114 |
104 QStringList CertificateListWidget::certificates() | 115 QStringList CertificateListWidget::certificates() |
105 { | 116 { |
117 QStringList list; | |
118 for (int i = 0; i < mCertificateList->count(); i++) { | |
119 QListWidgetItem *item = mCertificateList->item(i); | |
120 CertificateItemWidget *itemWidget = | |
121 static_cast<CertificateItemWidget*>(mCertificateList->itemWidget(item)); | |
122 list << itemWidget->certificate().base64Line(); | |
123 } | |
124 return list; | |
125 } | |
126 | |
127 QStringList CertificateListWidget::selectedCertificates() { | |
106 QStringList list; | 128 QStringList list; |
107 for (int i = 0; i < mCertificateList->count(); i++) { | 129 for (int i = 0; i < mCertificateList->count(); i++) { |
108 QListWidgetItem *item = mCertificateList->item(i); | 130 QListWidgetItem *item = mCertificateList->item(i); |
109 CertificateItemWidget *itemWidget = | 131 CertificateItemWidget *itemWidget = |
110 static_cast<CertificateItemWidget*>(mCertificateList->itemWidget(item)); | 132 static_cast<CertificateItemWidget*>(mCertificateList->itemWidget(item)); |
111 if (itemWidget->state()) { | 133 if (itemWidget->state()) { |
112 list << itemWidget->certificate().base64Line(); | 134 list << itemWidget->certificate().base64Line(); |
113 continue; | 135 } |
114 } | 136 } |
115 QString b64Line = itemWidget->certificate().base64Line(); | 137 return list; |
116 if (b64Line.startsWith("I:")) { | 138 } |
117 b64Line[0] = 'R'; | 139 |
118 list << b64Line; | 140 QStringList CertificateListWidget::unselectedCertificates() { |
119 } | 141 QStringList list; |
120 } | 142 for (int i = 0; i < mCertificateList->count(); i++) { |
121 return list; | 143 QListWidgetItem *item = mCertificateList->item(i); |
144 CertificateItemWidget *itemWidget = | |
145 static_cast<CertificateItemWidget*>(mCertificateList->itemWidget(item)); | |
146 if (!itemWidget->state()) { | |
147 list << itemWidget->certificate().base64Line(); | |
148 } | |
149 } | |
150 return list; | |
151 } | |
152 | |
153 QList<Certificate> CertificateListWidget::certificateList() | |
154 { | |
155 QList<Certificate> list; | |
156 for (int i = 0; i < mCertificateList->count(); i++) { | |
157 QListWidgetItem *item = mCertificateList->item(i); | |
158 CertificateItemWidget *itemWidget = | |
159 static_cast<CertificateItemWidget*>(mCertificateList->itemWidget(item)); | |
160 list << itemWidget->certificate(); | |
161 } | |
162 | |
163 return list; | |
164 } | |
165 | |
166 void CertificateListWidget::setCertState(bool state, const Certificate &cert) | |
167 { | |
168 for (int i = 0; i < mCertificateList->count(); i++) { | |
169 QListWidgetItem *item = mCertificateList->item(i); | |
170 CertificateItemWidget *itemWidget = | |
171 static_cast<CertificateItemWidget*>(mCertificateList->itemWidget(item)); | |
172 if (itemWidget->certificate() == cert && | |
173 itemWidget->state() != state) { | |
174 itemWidget->setState(state); | |
175 } | |
176 } | |
122 } | 177 } |
123 | 178 |
124 void CertificateListWidget::updateDetails(QListWidgetItem *item) | 179 void CertificateListWidget::updateDetails(QListWidgetItem *item) |
125 { | 180 { |
126 if (item == NULL) { | 181 if (item == NULL) { |
146 if (itemWidget->state()) { | 201 if (itemWidget->state()) { |
147 selected++; | 202 selected++; |
148 } | 203 } |
149 } | 204 } |
150 emit certListChanged(selected); | 205 emit certListChanged(selected); |
206 emit certChanged(state, cert); | |
151 } | 207 } |
152 | 208 |
153 int CertificateListWidget::selectedCertCount() | 209 int CertificateListWidget::selectedCertCount() |
154 { | 210 { |
155 int selected = 0; | 211 int selected = 0; |
161 selected++; | 217 selected++; |
162 } | 218 } |
163 } | 219 } |
164 return selected; | 220 return selected; |
165 } | 221 } |
222 | |
223 bool CertificateListWidget::contains(const Certificate &cert) | |
224 { | |
225 for (int i = 0; i < mCertificateList->count(); i++) { | |
226 QListWidgetItem *item = mCertificateList->item(i); | |
227 CertificateItemWidget *itemWidget = | |
228 static_cast<CertificateItemWidget*>(mCertificateList->itemWidget(item)); | |
229 if (itemWidget->certificate() == cert) { | |
230 return true; | |
231 } | |
232 } | |
233 return false; | |
234 } |