• Skip to content
  • Skip to link menu
KDE API Reference
  • KDE API Reference
  • kdepim API Reference
  • KDE Home
  • Contact Us
 

kleopatra

  • sources
  • kde-4.14
  • kdepim
  • kleopatra
  • dialogs
certifycertificatedialog.cpp
Go to the documentation of this file.
1 /* -*- mode: c++; c-basic-offset:4 -*-
2  dialogs/signcertificatedialog.cpp
3 
4  This file is part of Kleopatra, the KDE keymanager
5  Copyright (c) 2008 Klarälvdalens Datakonsult AB
6 
7  Kleopatra is free software; you can redistribute it and/or modify
8  it under the terms of the GNU General Public License as published by
9  the Free Software Foundation; either version 2 of the License, or
10  (at your option) any later version.
11 
12  Kleopatra is distributed in the hope that it will be useful,
13  but WITHOUT ANY WARRANTY; without even the implied warranty of
14  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15  General Public License for more details.
16 
17  You should have received a copy of the GNU General Public License
18  along with this program; if not, write to the Free Software
19  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20 
21  In addition, as a special exception, the copyright holders give
22  permission to link the code of this program with any edition of
23  the Qt library by Trolltech AS, Norway (or with modified versions
24  of Qt that use the same license as Qt), and distribute linked
25  combinations including the two. You must obey the GNU General
26  Public License in all respects for all of the code used other than
27  Qt. If you modify this file, you may extend this exception to
28  your version of the file, but you are not obligated to do so. If
29  you do not wish to do so, delete this exception statement from
30  your version.
31 */
32 
33 #include <config-kleopatra.h>
34 
35 #include "certifycertificatedialog.h"
36 
37 #include "certifycertificatedialog_p.h"
38 
39 #include <utils/formatting.h>
40 #include <utils/kleo_assert.h>
41 
42 #include <kleo/stl_util.h>
43 
44 #include <KDebug>
45 #include <KLocalizedString>
46 
47 #include <QGridLayout>
48 #include <QStandardItem>
49 #include <QListView>
50 #include <QVBoxLayout>
51 #include <QWizardPage>
52 #include <QCheckBox>
53 #include <QLabel>
54 
55 #include <QTextDocument> // Qt::escape
56 
57 #ifndef Q_MOC_RUN
58 #include <boost/bind.hpp>
59 #endif
60 
61 #include <gpg-error.h>
62 
63 #include <cassert>
64 
65 using namespace boost;
66 using namespace GpgME;
67 using namespace Kleo;
68 using namespace Kleo::Dialogs;
69 using namespace Kleo::Dialogs::CertifyCertificateDialogPrivate;
70 
71 
72 void UserIDModel::setCertificateToCertify( const Key & key ) {
73  m_key = key;
74  clear();
75  const std::vector<UserID> ids = key.userIDs();
76  for ( unsigned int i = 0; i < ids.size(); ++i ) {
77  QStandardItem * const item = new QStandardItem;
78  item->setText( Formatting::prettyUserID( key.userID( i ) ) );
79  item->setData( i, UserIDIndex );
80  item->setCheckable( true );
81  item->setEditable( false );
82  appendRow( item );
83  }
84 }
85 
86 void UserIDModel::setCheckedUserIDs( const std::vector<unsigned int> & uids ) {
87  const std::vector<unsigned int> sorted = kdtools::sorted( uids );
88  for ( unsigned int i = 0, end = rowCount() ; i != end ; ++i )
89  item( i )->setCheckState( kdtools::binary_search( sorted, i ) ? Qt::Checked : Qt::Unchecked );
90 }
91 
92 std::vector<unsigned int> UserIDModel::checkedUserIDs() const {
93  std::vector<unsigned int> ids;
94  for ( int i = 0; i < rowCount(); ++i )
95  if ( item( i )->checkState() == Qt::Checked )
96  ids.push_back( item( i )->data( UserIDIndex ).toUInt() );
97  return ids;
98 }
99 
100 void SecretKeysModel::setSecretKeys( const std::vector<Key> & keys ) {
101  clear();
102  m_secretKeys = keys;
103  for ( unsigned int i = 0; i < m_secretKeys.size(); ++i ) {
104  const Key key = m_secretKeys[i];
105  QStandardItem * const item = new QStandardItem;
106  item->setText( Formatting::formatForComboBox( key ) );
107  item->setData( i, IndexRole );
108  item->setEditable( false );
109  appendRow( item );
110  }
111 }
112 
113 std::vector<GpgME::Key> SecretKeysModel::secretKeys() const {
114  return m_secretKeys;
115 }
116 
117 Key SecretKeysModel::keyFromItem( const QStandardItem * item ) const {
118  assert( item );
119  const unsigned int idx = item->data( IndexRole ).toUInt();
120  assert( idx < m_secretKeys.size() );
121  return m_secretKeys[idx];
122 }
123 
124 Key SecretKeysModel::keyFromIndex( const QModelIndex & idx ) const {
125  return keyFromItem( itemFromIndex( idx ) );
126 }
127 
128 SelectUserIDsPage::SelectUserIDsPage( QWidget * parent ) : QWizardPage( parent ), m_userIDModel() {
129  QVBoxLayout * const layout = new QVBoxLayout ( this );
130  QLabel * const label = new QLabel;
131  label->setText( i18n( "<b>Step 1:</b> Please select the user IDs you wish to certify." ) );
132  layout->addWidget( label );
133  m_listView = new QListView;
134  m_listView->setModel( &m_userIDModel );
135  layout->addWidget( m_listView, 1 );
136  m_label = new QLabel;
137  layout->addWidget( m_label );
138  m_checkbox = new QCheckBox;
139  m_checkbox->setChecked( false );
140  m_checkbox->setText( i18n("I have verified the fingerprint") );
141  layout->addWidget( m_checkbox );
142  connect( m_checkbox, SIGNAL(toggled(bool)), this, SIGNAL(completeChanged()) );
143  connect( &m_userIDModel, SIGNAL(itemChanged(QStandardItem*)), this, SIGNAL(completeChanged()) );
144 }
145 
146 bool SelectUserIDsPage::isComplete() const {
147  return m_checkbox->isChecked() && !selectedUserIDs().empty();
148 }
149 
150 void SelectUserIDsPage::setSelectedUserIDs( const std::vector<unsigned int> & uids ) {
151  m_userIDModel.setCheckedUserIDs( uids );
152 }
153 
154 std::vector<unsigned int> SelectUserIDsPage::selectedUserIDs() const {
155  return m_userIDModel.checkedUserIDs();
156 }
157 
158 void SelectUserIDsPage::setCertificateToCertify( const Key & key ) {
159  m_label->setText( i18n( "Certificate: %1\nFingerprint: %2",
160  Formatting::formatForComboBox( key ),
161  QLatin1String(key.primaryFingerprint()) ) );
162  m_userIDModel.setCertificateToCertify( key );
163 
164 }
165 
166 SelectCheckLevelPage::SelectCheckLevelPage( QWidget * parent ) : QWizardPage( parent ), m_ui() {
167  m_ui.setupUi( this );
168 }
169 
170 unsigned int SelectCheckLevelPage::checkLevel() const {
171  if ( m_ui.checkLevelNotCheckedRB->isChecked() )
172  return 1;
173  if ( m_ui.checkLevelCasualRB->isChecked() )
174  return 2;
175  if ( m_ui.checkLevelThoroughlyRB->isChecked() )
176  return 3;
177  assert( !"No check level radiobutton checked" );
178  return 0;
179 }
180 
181 OptionsPage::OptionsPage( QWidget * parent ) : QWizardPage( parent ), m_ui() {
182  m_ui.setupUi( this );
183  m_ui.keyListView->setModel( &m_model );
184  connect( m_ui.keyListView->selectionModel(), SIGNAL(selectionChanged(QItemSelection,QItemSelection)), this, SIGNAL(completeChanged()) );
185  setCommitPage( true );
186  setButtonText( QWizard::CommitButton, i18n( "Certify" ) );
187 }
188 
189 
190 bool OptionsPage::exportableCertificationSelected() const {
191  return m_ui.exportableSignatureRB->isChecked();
192 }
193 
194 void OptionsPage::setCertificatesWithSecretKeys( const std::vector<Key> & keys ) {
195  assert( !keys.empty() );
196  m_model.setSecretKeys( keys );
197  if ( keys.size() == 1 ) {
198  m_ui.stackedWidget->setCurrentWidget( m_ui.singleKeyPage );
199  m_ui.singleKeyLabel->setText( i18n( "Certification will be performed using certificate %1.", Formatting::prettyNameAndEMail( keys[0] ) ) );
200  } else {
201  m_ui.stackedWidget->setCurrentWidget( m_ui.multipleKeysPage );
202  }
203  emit completeChanged();
204 }
205 
206 Key OptionsPage::selectedSecretKey() const {
207  if ( m_model.secretKeys().size() == 1 )
208  return m_model.secretKeys().at( 0 );
209  const QModelIndexList idxs = m_ui.keyListView->selectionModel()->selectedIndexes();
210  assert( idxs.size() <= 1 );
211  return idxs.isEmpty() ? Key() : m_model.keyFromIndex( idxs[0] );
212 }
213 
214 bool OptionsPage::sendToServer() const {
215  return m_ui.sendToServerCB->isChecked();
216 }
217 
218 bool OptionsPage::validatePage() {
219  emit nextClicked();
220  return true;
221 }
222 
223 bool OptionsPage::isComplete() const {
224  return !selectedSecretKey().isNull();
225 }
226 
227 SummaryPage::SummaryPage( QWidget * parent ) : QWizardPage( parent ), m_complete( false ) {
228  QGridLayout * const layout = new QGridLayout( this );
229  QLabel * const uidLabelLabel = new QLabel( i18n( "Signed user IDs:" ) );
230  uidLabelLabel->setAlignment( Qt::AlignTop );
231  int row = 0;
232  layout->addWidget( new QLabel( i18n( "<b>Summary:</b>" ) ), row, 0, 1, 2 );
233  layout->addWidget( uidLabelLabel, ++row, 0 );
234  layout->addWidget( m_userIDsLabel = new QLabel, row, 1 );
235 #ifdef KLEO_SIGN_KEY_CERTLEVEL_SUPPORT
236  layout->addWidget( new QLabel( i18n( "Check level:" ) ), ++row, 0 );
237  layout->addWidget( m_checkLevelLabel = new QLabel, row, 1 );
238 #else
239  m_checkLevelLabel = 0;
240 #endif
241  layout->addWidget( new QLabel( i18n( "Selected secret key:" ) ), ++row, 0 );
242  layout->addWidget( m_secretKeyLabel = new QLabel, row, 1 );
243  m_secretKeyLabel->setTextFormat( Qt::PlainText );
244  layout->addWidget( m_resultLabel = new QLabel, ++row, 0, 1, 2, Qt::AlignCenter );
245  m_resultLabel->setWordWrap( true );
246  layout->setRowStretch( row, 1 );
247  m_resultLabel->setAlignment( Qt::AlignCenter );
248 }
249 
250 bool SummaryPage::isComplete() const {
251  return m_complete;
252 }
253 
254 void SummaryPage::setSummary( const SummaryPage::Summary & sum ) {
255  const Key key = sum.certificateToCertify;
256  QStringList ids;
257  Q_FOREACH ( const unsigned int i, sum.selectedUserIDs )
258  ids += Qt::escape( Formatting::prettyUserID( key.userID( i ) ) );
259  m_userIDsLabel->setText( QLatin1String("<qt>") + ids.join( QLatin1String("<br/>") ) + QLatin1String("</qt>") );
260  m_secretKeyLabel->setText( sum.secretKey.isNull() ? i18n( "Default certificate" ) : Formatting::prettyNameAndEMail( sum.secretKey ) );
261 #ifdef KLEO_SIGN_KEY_CERTLEVEL_SUPPORT
262  switch( sum.checkLevel ) {
263  case 0:
264  m_checkLevelLabel->setText( i18n( "No statement made" ) );
265  break;
266  case 1:
267  m_checkLevelLabel->setText( i18n( "Not checked" ) );
268  break;
269  case 2:
270  m_checkLevelLabel->setText( i18n( "Casually checked" ) );
271  break;
272  case 3:
273  m_checkLevelLabel->setText( i18n( "Thoroughly checked" ) );
274  break;
275  }
276 #endif
277 }
278 
279 void SummaryPage::setComplete( bool complete ) {
280  if ( complete == m_complete )
281  return;
282  m_complete = complete;
283  emit completeChanged();
284 }
285 void SummaryPage::setResult( const Error & err ) {
286  if ( err && !err.isCanceled() )
287  if ( err.code() == GPG_ERR_USER_1 )
288  m_resultLabel->setText( i18n( "The certificate was not certified because it was already certified by the same certificate." ) );
289  else
290  m_resultLabel->setText( i18n( "The certificate could not be certified. <b>Error</b>: %1", Qt::escape( QString::fromLocal8Bit( err.asString() ) ) ) );
291  else if ( err.isCanceled() )
292  m_resultLabel->setText( i18n("Certification canceled.") );
293  else
294  m_resultLabel->setText(i18n("Certification successful.") );
295 }
296 
297 class CertifyCertificateDialog::Private {
298  friend class ::Kleo::Dialogs::CertifyCertificateDialog;
299  CertifyCertificateDialog * const q;
300 
301 public:
302  explicit Private( CertifyCertificateDialog * qq )
303  : q( qq ),
304  summaryPageId( 0 ),
305  selectUserIDsPage( 0 ),
306  selectCheckLevelPage( 0 ),
307  optionsPage( 0 ),
308  summaryPage( 0 )
309  {
310  selectUserIDsPage = new SelectUserIDsPage( q );
311  q->addPage( selectUserIDsPage );
312  //selectCheckLevelPage = new SelectCheckLevelPage( q );
313  //setting the cert level explicitly is not supported by the backend,
314  //thus we omit the page from the UI
315  //q->addPage( selectCheckLevelPage );
316  optionsPage = new OptionsPage( q );
317  q->addPage( optionsPage );
318  summaryPage = new SummaryPage( q );
319  summaryPageId = q->addPage( summaryPage );
320  connect( optionsPage, SIGNAL(nextClicked()), q, SIGNAL(certificationPrepared()) );
321  }
322 
323  Key key() const {
324  return selectUserIDsPage ? selectUserIDsPage->certificateToCertify() : Key() ;
325  }
326 
327  void ensureSummaryPageVisible();
328 
329  void certificationResult( const Error & error );
330 
331  void setOperationCompleted() {
332  summaryPage->setComplete( true );
333  }
334 
335  SummaryPage::Summary createSummary() const {
336  SummaryPage::Summary sum;
337  sum.selectedUserIDs = selectUserIDsPage->selectedUserIDs();
338  sum.secretKey = optionsPage->selectedSecretKey();
339  sum.certificateToCertify = selectUserIDsPage->certificateToCertify();
340  //PENDING
341 #ifdef KLEO_SIGN_KEY_CERTLEVEL_SUPPORT
342  sum.checkLevel = selectCheckLevelPage->checkLevel();
343 #else
344  sum.checkLevel = 0;
345 #endif
346 
347  sum.exportable = optionsPage->exportableCertificationSelected();
348  sum.sendToServer = optionsPage->sendToServer();
349  return sum;
350  }
351 
352  int summaryPageId;
353  SelectUserIDsPage * selectUserIDsPage;
354  SelectCheckLevelPage * selectCheckLevelPage;
355  OptionsPage * optionsPage;
356  SummaryPage * summaryPage;
357 };
358 
359 
360 
361 CertifyCertificateDialog::CertifyCertificateDialog( QWidget * p, Qt::WindowFlags f )
362  : QWizard( p, f ), d( new Private( this ) )
363 {
364 }
365 
366 CertifyCertificateDialog::~CertifyCertificateDialog() {}
367 
368 void CertifyCertificateDialog::setCertificateToCertify( const Key & key ) {
369  setWindowTitle( i18nc( "arg is name, email of certificate holder", "Certify Certificate: %1", Formatting::prettyName( key ) ) );
370  d->selectUserIDsPage->setCertificateToCertify( key );
371 }
372 
373 void CertifyCertificateDialog::setCertificatesWithSecretKeys( const std::vector<Key> & keys ) {
374  d->optionsPage->setCertificatesWithSecretKeys( keys );
375 }
376 
377 bool CertifyCertificateDialog::exportableCertificationSelected() const {
378  return d->optionsPage->exportableCertificationSelected();
379 }
380 
381 bool CertifyCertificateDialog::trustCertificationSelected() const {
382  return false;
383 }
384 
385 bool CertifyCertificateDialog::nonRevocableCertificationSelected() const {
386  return false;
387 }
388 
389 Key CertifyCertificateDialog::selectedSecretKey() const {
390  return d->optionsPage->selectedSecretKey();
391 }
392 
393 bool CertifyCertificateDialog::sendToServer() const {
394  return d->optionsPage->sendToServer();
395 }
396 
397 unsigned int CertifyCertificateDialog::selectedCheckLevel() const {
398  //PENDING
399 #ifdef KLEO_SIGN_KEY_CERTLEVEL_SUPPORT
400  return d->selectCheckLevelPage->checkLevel();
401 #endif
402  return 0;
403 }
404 
405 void CertifyCertificateDialog::connectJob( SignKeyJob * job ) {
406  connect( job, SIGNAL(result(GpgME::Error)), this, SLOT(certificationResult(GpgME::Error)) );
407  d->summaryPage->setSummary( d->createSummary() );
408 }
409 
410 void CertifyCertificateDialog::setError( const Error & error ) {
411  d->setOperationCompleted();
412  d->summaryPage->setResult( error );
413  d->ensureSummaryPageVisible();
414  if ( error.isCanceled() )
415  close();
416 }
417 
418 void CertifyCertificateDialog::Private::certificationResult( const Error & err ) {
419  setOperationCompleted();
420  summaryPage->setResult( err );
421  ensureSummaryPageVisible();
422 }
423 
424 namespace {
425  struct UidEqual : std::binary_function<UserID,UserID,bool> {
426  bool operator()( const UserID & lhs, const UserID & rhs ) const {
427  return qstrcmp( lhs.parent().primaryFingerprint(),
428  rhs.parent().primaryFingerprint() ) == 0
429  && qstrcmp( lhs.id(), rhs.id() ) == 0 ;
430  }
431  };
432 }
433 
434 void CertifyCertificateDialog::setSelectedUserIDs( const std::vector<UserID> & uids ) {
435  const Key key = d->key();
436  const char * const fpr = key.primaryFingerprint();
437 
438  const std::vector<UserID> all = key.userIDs();
439 
440  std::vector<unsigned int> indexes;
441  indexes.reserve( uids.size() );
442 
443  Q_FOREACH( const UserID & uid, uids ) {
444  kleo_assert( qstrcmp( uid.parent().primaryFingerprint(), fpr ) == 0 );
445  const unsigned int idx =
446  std::distance( all.begin(), kdtools::find_if( all, boost::bind( UidEqual(), _1, uid ) ) );
447  if ( idx < all.size() )
448  indexes.push_back( idx );
449  }
450 
451  d->selectUserIDsPage->setSelectedUserIDs( indexes );
452 }
453 
454 std::vector<unsigned int> CertifyCertificateDialog::selectedUserIDs() const {
455  return d->selectUserIDsPage->selectedUserIDs();
456 }
457 
458 void CertifyCertificateDialog::Private::ensureSummaryPageVisible() {
459  while ( q->currentId() != summaryPageId )
460  q->next();
461 }
462 
463 #include "moc_certifycertificatedialog.cpp"
464 #include "moc_certifycertificatedialog_p.cpp"
QWidget::layout
QLayout * layout() const
Kleo::Dialogs::CertifyCertificateDialog::CertifyCertificateDialog
CertifyCertificateDialog(QWidget *parent=0, Qt::WindowFlags f=0)
Definition: certifycertificatedialog.cpp:361
Kleo::Dialogs::CertifyCertificateDialogPrivate::SummaryPage::setResult
void setResult(const GpgME::Error &err)
Definition: certifycertificatedialog.cpp:285
QModelIndex
Kleo::Dialogs::CertifyCertificateDialogPrivate::SelectCheckLevelPage::SelectCheckLevelPage
SelectCheckLevelPage(QWidget *parent=0)
Definition: certifycertificatedialog.cpp:166
QWidget::close
bool close()
QWidget
Kleo::Dialogs::CertifyCertificateDialogPrivate::UserIDModel::checkedUserIDs
std::vector< unsigned int > checkedUserIDs() const
Definition: certifycertificatedialog.cpp:92
sum
int sum(const std::vector< ImportResult > &res, int(ImportResult::*fun)() const )
Definition: importcertificatescommand.cpp:224
QGridLayout::addWidget
void addWidget(QWidget *widget, int row, int column, QFlags< Qt::AlignmentFlag > alignment)
QWizardPage::setCommitPage
void setCommitPage(bool commitPage)
Kleo::Dialogs::CertifyCertificateDialogPrivate::SummaryPage::setSummary
void setSummary(const Summary &summary)
Definition: certifycertificatedialog.cpp:254
Kleo::Dialogs::CertifyCertificateDialogPrivate::UserIDModel::setCertificateToCertify
void setCertificateToCertify(const GpgME::Key &key)
Definition: certifycertificatedialog.cpp:72
Kleo::Dialogs::CertifyCertificateDialogPrivate::SummaryPage::setComplete
void setComplete(bool complete)
Definition: certifycertificatedialog.cpp:279
Kleo::Dialogs::CertifyCertificateDialogPrivate::SelectUserIDsPage::setSelectedUserIDs
void setSelectedUserIDs(const std::vector< unsigned int > &indexes)
Definition: certifycertificatedialog.cpp:150
QAbstractItemView::setModel
virtual void setModel(QAbstractItemModel *model)
Kleo::Dialogs::CertifyCertificateDialog::connectJob
void connectJob(Kleo::SignKeyJob *job)
Definition: certifycertificatedialog.cpp:405
Kleo::Dialogs::CertifyCertificateDialog::nonRevocableCertificationSelected
bool nonRevocableCertificationSelected() const
Definition: certifycertificatedialog.cpp:385
Kleo::Dialogs::CertifyCertificateDialogPrivate::OptionsPage::exportableCertificationSelected
bool exportableCertificationSelected() const
Definition: certifycertificatedialog.cpp:190
QWizardPage::completeChanged
void completeChanged()
Kleo::Dialogs::CertifyCertificateDialog::selectedUserIDs
std::vector< unsigned int > selectedUserIDs() const
Definition: certifycertificatedialog.cpp:454
formatting.h
Kleo::Dialogs::CertifyCertificateDialogPrivate::SummaryPage::Summary::checkLevel
unsigned int checkLevel
Definition: certifycertificatedialog_p.h:144
Kleo::Dialogs::CertifyCertificateDialogPrivate::UserIDModel::setCheckedUserIDs
void setCheckedUserIDs(const std::vector< unsigned int > &uids)
Definition: certifycertificatedialog.cpp:86
QLabel::setAlignment
void setAlignment(QFlags< Qt::AlignmentFlag >)
Kleo::Dialogs::CertifyCertificateDialogPrivate::OptionsPage
Definition: certifycertificatedialog_p.h:112
Kleo::Dialogs::CertifyCertificateDialogPrivate::OptionsPage::selectedSecretKey
GpgME::Key selectedSecretKey() const
Definition: certifycertificatedialog.cpp:206
Kleo::Dialogs::CertifyCertificateDialogPrivate::SummaryPage::Summary::certificateToCertify
GpgME::Key certificateToCertify
Definition: certifycertificatedialog_p.h:145
Kleo::Dialogs::CertifyCertificateDialogPrivate::SelectUserIDsPage
Definition: certifycertificatedialog_p.h:85
QGridLayout
Kleo::Dialogs::CertifyCertificateDialogPrivate::OptionsPage::sendToServer
bool sendToServer() const
Definition: certifycertificatedialog.cpp:214
QStringList::join
QString join(const QString &separator) const
certifycertificatedialog.h
Kleo::Dialogs::CertifyCertificateDialogPrivate::SummaryPage::Summary::sendToServer
bool sendToServer
Definition: certifycertificatedialog_p.h:148
Kleo::Dialogs::CertifyCertificateDialog::setCertificatesWithSecretKeys
void setCertificatesWithSecretKeys(const std::vector< GpgME::Key > &keys)
Definition: certifycertificatedialog.cpp:373
Kleo::Dialogs::CertifyCertificateDialogPrivate::SecretKeysModel::secretKeys
std::vector< GpgME::Key > secretKeys() const
Definition: certifycertificatedialog.cpp:113
QStandardItem::setData
virtual void setData(const QVariant &value, int role)
QListView
Kleo::Dialogs::CertifyCertificateDialogPrivate::SelectCheckLevelPage::checkLevel
unsigned int checkLevel() const
Definition: certifycertificatedialog.cpp:170
Kleo::Formatting::prettyUserID
QString prettyUserID(const GpgME::UserID &uid)
kleo_assert.h
Kleo::Formatting::formatForComboBox
QString formatForComboBox(const GpgME::Key &key)
Definition: formatting.cpp:497
QBoxLayout::addWidget
void addWidget(QWidget *widget, int stretch, QFlags< Qt::AlignmentFlag > alignment)
QString::fromLocal8Bit
QString fromLocal8Bit(const char *str, int size)
d
#define d
Definition: adduseridcommand.cpp:89
Kleo::Dialogs::CertifyCertificateDialog::exportableCertificationSelected
bool exportableCertificationSelected() const
Definition: certifycertificatedialog.cpp:377
Kleo::Dialogs::CertifyCertificateDialogPrivate::OptionsPage::nextClicked
void nextClicked()
QVariant::toUInt
uint toUInt(bool *ok) const
QGridLayout::setRowStretch
void setRowStretch(int row, int stretch)
Kleo::Dialogs::CertifyCertificateDialogPrivate::SelectUserIDsPage::setCertificateToCertify
void setCertificateToCertify(const GpgME::Key &ids)
Definition: certifycertificatedialog.cpp:158
Kleo::Dialogs::CertifyCertificateDialog::sendToServer
bool sendToServer() const
Definition: certifycertificatedialog.cpp:393
QCheckBox
Kleo::Dialogs::CertifyCertificateDialogPrivate::SummaryPage::Summary::selectedUserIDs
std::vector< unsigned int > selectedUserIDs
Definition: certifycertificatedialog_p.h:143
QLabel::setTextFormat
void setTextFormat(Qt::TextFormat)
Kleo::Dialogs::CertifyCertificateDialog::~CertifyCertificateDialog
~CertifyCertificateDialog()
Definition: certifycertificatedialog.cpp:366
QVBoxLayout
QDialog::result
int result() const
QLabel::setText
void setText(const QString &)
Kleo::Dialogs::CertifyCertificateDialogPrivate::SummaryPage::isComplete
bool isComplete() const
Definition: certifycertificatedialog.cpp:250
Kleo::Dialogs::CertifyCertificateDialogPrivate::SummaryPage
Definition: certifycertificatedialog_p.h:133
Kleo::Dialogs::CertifyCertificateDialogPrivate::SelectCheckLevelPage
Definition: certifycertificatedialog_p.h:103
Kleo::Formatting::prettyNameAndEMail
QString prettyNameAndEMail(int proto, const char *id, const char *name, const char *email, const char *comment)
Definition: formatting.cpp:87
QStringList
Kleo::Dialogs::CertifyCertificateDialogPrivate::SummaryPage::Summary::exportable
bool exportable
Definition: certifycertificatedialog_p.h:147
Kleo::Dialogs::CertifyCertificateDialogPrivate::SummaryPage::Summary::secretKey
GpgME::Key secretKey
Definition: certifycertificatedialog_p.h:146
Kleo::Dialogs::CertifyCertificateDialog::selectedSecretKey
GpgME::Key selectedSecretKey() const
Definition: certifycertificatedialog.cpp:389
Kleo::Dialogs::CertifyCertificateDialog::selectedCheckLevel
unsigned int selectedCheckLevel() const
Definition: certifycertificatedialog.cpp:397
kleo_assert
#define kleo_assert(cond)
Definition: kleo_assert.h:86
QStandardItem::setText
void setText(const QString &text)
Kleo::Dialogs::CertifyCertificateDialog::trustCertificationSelected
bool trustCertificationSelected() const
Definition: certifycertificatedialog.cpp:381
QAbstractButton::setChecked
void setChecked(bool)
QItemSelection
Kleo::Dialogs::CertifyCertificateDialogPrivate::OptionsPage::setCertificatesWithSecretKeys
void setCertificatesWithSecretKeys(const std::vector< GpgME::Key > &keys)
Definition: certifycertificatedialog.cpp:194
Kleo::Dialogs::CertifyCertificateDialogPrivate::SecretKeysModel::setSecretKeys
void setSecretKeys(const std::vector< GpgME::Key > &keys)
Definition: certifycertificatedialog.cpp:100
Kleo::Dialogs::CertifyCertificateDialogPrivate::OptionsPage::validatePage
bool validatePage()
Definition: certifycertificatedialog.cpp:218
QLatin1String
Kleo::Dialogs::CertifyCertificateDialogPrivate::OptionsPage::OptionsPage
OptionsPage(QWidget *parent=0)
Definition: certifycertificatedialog.cpp:181
Kleo::Dialogs::CertifyCertificateDialogPrivate::SecretKeysModel::keyFromIndex
GpgME::Key keyFromIndex(const QModelIndex &index) const
Definition: certifycertificatedialog.cpp:124
Qt::escape
QString escape(const QString &plain)
Kleo::Dialogs::CertifyCertificateDialogPrivate::SelectUserIDsPage::isComplete
bool isComplete() const
Definition: certifycertificatedialog.cpp:146
Kleo::Dialogs::CertifyCertificateDialog
Definition: certifycertificatedialog.h:54
Kleo::Formatting::prettyName
QString prettyName(int proto, const char *id, const char *name, const char *comment)
Definition: formatting.cpp:64
QWidget::setWindowTitle
void setWindowTitle(const QString &)
q
#define q
Definition: adduseridcommand.cpp:90
Kleo::Dialogs::CertifyCertificateDialogPrivate::SummaryPage::Summary
Definition: certifycertificatedialog_p.h:142
Kleo::Dialogs::CertifyCertificateDialogPrivate::SummaryPage::SummaryPage
SummaryPage(QWidget *parent=0)
Definition: certifycertificatedialog.cpp:227
Kleo::Dialogs::CertifyCertificateDialogPrivate::OptionsPage::isComplete
bool isComplete() const
Definition: certifycertificatedialog.cpp:223
QAbstractButton::setText
void setText(const QString &text)
Qt::WindowFlags
typedef WindowFlags
Kleo::Dialogs::CertifyCertificateDialog::setCertificateToCertify
void setCertificateToCertify(const GpgME::Key &key)
Definition: certifycertificatedialog.cpp:368
QWizard
QStandardItem
Kleo::Dialogs::CertifyCertificateDialog::setError
void setError(const GpgME::Error &error)
Definition: certifycertificatedialog.cpp:410
QObject::connect
bool connect(const QObject *sender, const char *signal, const QObject *receiver, const char *method, Qt::ConnectionType type)
QLabel
Kleo::Dialogs::CertifyCertificateDialogPrivate::SelectUserIDsPage::selectedUserIDs
std::vector< unsigned int > selectedUserIDs() const
Definition: certifycertificatedialog.cpp:154
QStandardItem::setCheckable
void setCheckable(bool checkable)
QStandardItem::data
virtual QVariant data(int role) const
QLabel::setWordWrap
void setWordWrap(bool on)
QStandardItem::setEditable
void setEditable(bool editable)
QWizardPage::setButtonText
void setButtonText(QWizard::WizardButton which, const QString &text)
QWizardPage
Kleo::Dialogs::CertifyCertificateDialog::setSelectedUserIDs
void setSelectedUserIDs(const std::vector< GpgME::UserID > &uids)
Definition: certifycertificatedialog.cpp:434
certifycertificatedialog_p.h
This file is part of the KDE documentation.
Documentation copyright © 1996-2020 The KDE developers.
Generated on Mon Jun 22 2020 13:33:10 by doxygen 1.8.7 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

kleopatra

Skip menu "kleopatra"
  • Main Page
  • Namespace List
  • Namespace Members
  • Alphabetical List
  • Class List
  • Class Hierarchy
  • Class Members
  • File List
  • File Members

kdepim API Reference

Skip menu "kdepim API Reference"
  • akonadi_next
  • akregator
  • blogilo
  • calendarsupport
  • console
  •   kabcclient
  •   konsolekalendar
  • kaddressbook
  • kalarm
  •   lib
  • kdgantt2
  • kjots
  • kleopatra
  • kmail
  • knode
  • knotes
  • kontact
  • korgac
  • korganizer
  • ktimetracker
  • libkdepim
  • libkleo
  • libkpgp
  • mailcommon
  • messagelist
  • messageviewer
  • pimprint

Search



Report problems with this website to our bug tracking system.
Contact the specific authors with questions and comments about the page contents.

KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal