[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: KDE/kdepim/kleopatra/crypto
From: Frank Osterfeld <frank.osterfeld () kdemail ! net>
Date: 2008-05-16 10:44:26
Message-ID: 1210934666.588146.29146.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 808302 by osterfeld:
fix error reporting for sign/encrypt email
fixes i54
M +18 -9 encryptemailcontroller.cpp
M +1 -1 encryptemailcontroller.h
M +14 -4 signemailcontroller.cpp
M +1 -1 signemailcontroller.h
--- trunk/KDE/kdepim/kleopatra/crypto/encryptemailcontroller.cpp #808301:808302
@@ -76,7 +76,7 @@
private:
void slotWizardRecipientsResolved();
void slotWizardCanceled();
- void slotTaskDone();
+ void slotTaskDone( const shared_ptr<const Task::Result> & );
private:
void ensureWizardCreated() const;
@@ -91,6 +91,8 @@
std::vector< shared_ptr<EncryptEMailTask> > runnable, completed;
shared_ptr<EncryptEMailTask> cms, openpgp;
mutable QPointer<EncryptEMailWizard> wizard;
+ int lastError;
+ QString lastErrorString;
};
EncryptEMailController::Private::Private( Mode m, EncryptEMailController * qq )
@@ -99,7 +101,9 @@
runnable(),
cms(),
openpgp(),
- wizard()
+ wizard(),
+ lastError( 0 ),
+ lastErrorString()
{
}
@@ -210,7 +214,7 @@
d->wizard->setTaskCollection( coll );
Q_FOREACH( const shared_ptr<Task> & t, tmp )
connect( t.get(), SIGNAL(result(boost::shared_ptr<const \
Kleo::Crypto::Task::Result>)),
- this, SLOT(slotTaskDone()) );
+ this, SLOT(slotTaskDone(boost::shared_ptr<const \
Kleo::Crypto::Task::Result>)) ); d->schedule();
}
@@ -228,11 +232,13 @@
openpgp = t;
}
- if ( !cms && !openpgp ) {
- kleo_assert( runnable.empty() );
+ if ( cms || openpgp )
+ return;
+ kleo_assert( runnable.empty() );
+ if ( lastError )
+ emit q->error( lastError, lastErrorString );
+ else
emit q->done();
- }
-
}
shared_ptr<EncryptEMailTask> EncryptEMailController::Private::takeRunnable( \
GpgME::Protocol proto ) { @@ -247,7 +253,7 @@
return result;
}
-void EncryptEMailController::Private::slotTaskDone() {
+void EncryptEMailController::Private::slotTaskDone( const shared_ptr<const \
Task::Result> & result ) { assert( q->sender() );
// We could just delete the tasks here, but we can't use
@@ -262,7 +268,10 @@
completed.push_back( openpgp );
openpgp.reset();
}
-
+ if ( result->hasError() ) {
+ lastError = result->errorCode();
+ lastErrorString = result->errorString();
+ }
QTimer::singleShot( 0, q, SLOT(schedule()) );
}
--- trunk/KDE/kdepim/kleopatra/crypto/encryptemailcontroller.h #808301:808302
@@ -104,7 +104,7 @@
kdtools::pimpl_ptr<Private> d;
Q_PRIVATE_SLOT( d, void slotWizardRecipientsResolved() )
Q_PRIVATE_SLOT( d, void slotWizardCanceled() )
- Q_PRIVATE_SLOT( d, void slotTaskDone() )
+ Q_PRIVATE_SLOT( d, void slotTaskDone( boost::shared_ptr<const \
Kleo::Crypto::Task::Result>) ) Q_PRIVATE_SLOT( d, void schedule() )
};
--- trunk/KDE/kdepim/kleopatra/crypto/signemailcontroller.cpp #808301:808302
@@ -74,7 +74,7 @@
private:
void slotWizardSignersResolved();
void slotWizardCanceled(); // ### extract to base
- void slotTaskDone(); // ### extract to base
+ void slotTaskDone( const shared_ptr<const Task::Result> & result ); // ### \
extract to base
private:
void ensureWizardCreated(); // ### extract to base
@@ -90,6 +90,8 @@
shared_ptr<SignEMailTask> cms, openpgp; // ### extract to base
QPointer<SignEMailWizard> wizard; // ### extract to base
Protocol protocol; // ### extract to base
+ int lastError;
+ QString lastErrorString;
bool detached : 1;
};
@@ -101,6 +103,7 @@
openpgp(),
wizard(),
protocol( UnknownProtocol ),
+ lastError( 0 ),
detached( false )
{
@@ -225,7 +228,7 @@
d->wizard->setTaskCollection( coll );
Q_FOREACH( const shared_ptr<Task> & t, tmp )
connect( t.get(), SIGNAL(result(boost::shared_ptr<const \
Kleo::Crypto::Task::Result>)),
- this, SLOT(slotTaskDone()) );
+ this, SLOT(slotTaskDone(result(boost::shared_ptr<const \
Kleo::Crypto::Task::Result>))) );
d->schedule();
}
@@ -253,7 +256,10 @@
if ( !Q )
return;
}
- emit q->done();
+ if ( lastError )
+ emit q->error( lastError, lastErrorString );
+ else
+ emit q->done();
}
}
@@ -272,7 +278,7 @@
}
// ### extract to base
-void SignEMailController::Private::slotTaskDone() {
+void SignEMailController::Private::slotTaskDone( const shared_ptr<const \
Task::Result> & result ) { assert( q->sender() );
// We could just delete the tasks here, but we can't use
@@ -288,6 +294,10 @@
openpgp.reset();
}
+ if ( result->hasError() ) {
+ lastError = result->errorCode();
+ lastErrorString = result->errorString();
+ }
QTimer::singleShot( 0, q, SLOT(schedule()) );
}
--- trunk/KDE/kdepim/kleopatra/crypto/signemailcontroller.h #808301:808302
@@ -102,7 +102,7 @@
kdtools::pimpl_ptr<Private> d;
Q_PRIVATE_SLOT( d, void slotWizardSignersResolved() )
Q_PRIVATE_SLOT( d, void slotWizardCanceled() )
- Q_PRIVATE_SLOT( d, void slotTaskDone() )
+ Q_PRIVATE_SLOT( d, void slotTaskDone( boost::shared_ptr<const \
Kleo::Crypto::Task::Result> ) ) Q_PRIVATE_SLOT( d, void schedule() )
};
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic