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

kleopatra

  • sources
  • kde-4.12
  • 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 <QStandardItemModel>
50 #include <QListView>
51 #include <QListWidgetItem>
52 #include <QVBoxLayout>
53 #include <QWizardPage>
54 #include <QCheckBox>
55 #include <QLabel>
56 
57 #include <QTextDocument> // Qt::escape
58 
59 #include <boost/bind.hpp>
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"
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
Kleo::Dialogs::CertifyCertificateDialogPrivate::SelectCheckLevelPage::SelectCheckLevelPage
SelectCheckLevelPage(QWidget *parent=0)
Definition: certifycertificatedialog.cpp:166
Kleo::Dialogs::CertifyCertificateDialogPrivate::UserIDModel::checkedUserIDs
std::vector< unsigned int > checkedUserIDs() const
Definition: certifycertificatedialog.cpp:92
QWizardPage::completeChanged
void completeChanged()
sum
int sum(const std::vector< ImportResult > &res, int(ImportResult::*fun)() const )
Definition: importcertificatescommand.cpp:225
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
QWizardPage
The QWizardPage class is the base class for wizard pages.
Definition: qwizard.h:206
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
Kleo::Dialogs::CertifyCertificateDialog::connectJob
void connectJob(Kleo::SignKeyJob *job)
Definition: certifycertificatedialog.cpp:405
Kleo::Dialogs::CertifyCertificateDialog::nonRevocableCertificationSelected
bool nonRevocableCertificationSelected() const
Definition: certifycertificatedialog.cpp:385
QWidget
Kleo::Dialogs::CertifyCertificateDialogPrivate::OptionsPage::exportableCertificationSelected
bool exportableCertificationSelected() const
Definition: certifycertificatedialog.cpp:190
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:148
Kleo::Dialogs::CertifyCertificateDialogPrivate::UserIDModel::setCheckedUserIDs
void setCheckedUserIDs(const std::vector< unsigned int > &uids)
Definition: certifycertificatedialog.cpp:86
Kleo::Dialogs::CertifyCertificateDialogPrivate::OptionsPage
Definition: certifycertificatedialog_p.h:116
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:149
Kleo::Dialogs::CertifyCertificateDialogPrivate::SelectUserIDsPage
Definition: certifycertificatedialog_p.h:89
Kleo::Dialogs::CertifyCertificateDialogPrivate::OptionsPage::sendToServer
bool sendToServer() const
Definition: certifycertificatedialog.cpp:214
certifycertificatedialog.h
Kleo::Dialogs::CertifyCertificateDialogPrivate::SummaryPage::Summary::sendToServer
bool sendToServer
Definition: certifycertificatedialog_p.h:152
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
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
QWizard::CommitButton
Definition: qwizard.h:67
d
#define d
Definition: adduseridcommand.cpp:90
Kleo::Dialogs::CertifyCertificateDialog::exportableCertificationSelected
bool exportableCertificationSelected() const
Definition: certifycertificatedialog.cpp:377
Kleo::Dialogs::CertifyCertificateDialogPrivate::OptionsPage::nextClicked
void nextClicked()
QWizardPage::setCommitPage
void setCommitPage(bool commitPage)
Definition: qwizard.cpp:3698
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
Kleo::Dialogs::CertifyCertificateDialogPrivate::SummaryPage::Summary::selectedUserIDs
std::vector< unsigned int > selectedUserIDs
Definition: certifycertificatedialog_p.h:147
QWizardPage::setButtonText
void setButtonText(QWizard::WizardButton which, const QString &text)
Definition: qwizard.cpp:3726
Kleo::Dialogs::CertifyCertificateDialog::~CertifyCertificateDialog
~CertifyCertificateDialog()
Definition: certifycertificatedialog.cpp:366
Kleo::Dialogs::CertifyCertificateDialogPrivate::SummaryPage::isComplete
bool isComplete() const
Definition: certifycertificatedialog.cpp:250
Kleo::Dialogs::CertifyCertificateDialogPrivate::SummaryPage
Definition: certifycertificatedialog_p.h:137
Kleo::Dialogs::CertifyCertificateDialogPrivate::SelectCheckLevelPage
Definition: certifycertificatedialog_p.h:107
Kleo::Formatting::prettyNameAndEMail
QString prettyNameAndEMail(int proto, const char *id, const char *name, const char *email, const char *comment)
Definition: formatting.cpp:87
Kleo::Dialogs::CertifyCertificateDialogPrivate::SummaryPage::Summary::exportable
bool exportable
Definition: certifycertificatedialog_p.h:151
Kleo::Dialogs::CertifyCertificateDialogPrivate::SummaryPage::Summary::secretKey
GpgME::Key secretKey
Definition: certifycertificatedialog_p.h:150
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:84
Kleo::Dialogs::CertifyCertificateDialog::trustCertificationSelected
bool trustCertificationSelected() const
Definition: certifycertificatedialog.cpp:381
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
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
Kleo::Dialogs::CertifyCertificateDialogPrivate::SelectUserIDsPage::isComplete
bool isComplete() const
Definition: certifycertificatedialog.cpp:146
Kleo::Dialogs::CertifyCertificateDialog
Definition: certifycertificatedialog.h:59
Kleo::Formatting::prettyName
QString prettyName(int proto, const char *id, const char *name, const char *comment)
Definition: formatting.cpp:64
q
#define q
Definition: adduseridcommand.cpp:91
Kleo::Dialogs::CertifyCertificateDialogPrivate::SummaryPage::Summary
Definition: certifycertificatedialog_p.h:146
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
Kleo::Dialogs::CertifyCertificateDialog::setCertificateToCertify
void setCertificateToCertify(const GpgME::Key &key)
Definition: certifycertificatedialog.cpp:368
Kleo::Dialogs::CertifyCertificateDialog::setError
void setError(const GpgME::Error &error)
Definition: certifycertificatedialog.cpp:410
Kleo::Dialogs::CertifyCertificateDialogPrivate::SelectUserIDsPage::selectedUserIDs
std::vector< unsigned int > selectedUserIDs() const
Definition: certifycertificatedialog.cpp:154
QWizard
The QWizard class provides a framework for wizards.
Definition: qwizard.h:51
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-2014 The KDE developers.
Generated on Tue Oct 14 2014 22:56:40 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

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