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 }

http://wald.intevation.org/projects/trustbridge/