[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: KDE/kdepim/kleopatra/uiserver
From: Marc Mutz <mutz () kde ! org>
Date: 2008-02-11 15:13:07
Message-ID: 1202742787.764644.30588.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 773617 by mutz:
Code reorganization, pt.16:
- Disentangle AssuanCommand and Controller
M +5 -2 assuancommand.h
M +14 -16 controller.cpp
M +8 -5 controller.h
M +11 -4 encryptemailcontroller.cpp
M +2 -0 encryptemailcontroller.h
M +9 -4 signemailcontroller.cpp
--- trunk/KDE/kdepim/kleopatra/uiserver/assuancommand.h #773616:773617
@@ -33,10 +33,13 @@
#ifndef __KLEOPATRA_UISERVER_ASSUANCOMMAND_H__
#define __KLEOPATRA_UISERVER_ASSUANCOMMAND_H__
+#include <uiserver/controller.h>
+
#include <utils/pimpl_ptr.h>
#include <gpgme++/global.h>
#include <gpgme++/error.h>
+
#include <kmime/kmime_header_parsing.h>
#include <boost/shared_ptr.hpp>
@@ -200,7 +203,7 @@
\endcode
*/
- class AssuanCommand : public boost::enable_shared_from_this<AssuanCommand> {
+ class AssuanCommand : public ExecutionContext, public \
boost::enable_shared_from_this<AssuanCommand> { // defined in \
assuanserverconnection.cpp! public:
AssuanCommand();
@@ -239,7 +242,7 @@
GpgME::Protocol checkProtocol( Mode mode ) const;
- void applyWindowID( QDialog* w ) const {
+ /* reimp */ void applyWindowID( QDialog* w ) const {
doApplyWindowID( w );
}
--- trunk/KDE/kdepim/kleopatra/uiserver/controller.cpp #773616:773617
@@ -32,12 +32,12 @@
#include "controller.h"
-#include "assuancommand.h"
+#include <KWindowSystem>
#include <QDialog>
#include <QVector>
-#include <KWindowSystem>
+#include <boost/weak_ptr.hpp>
using namespace boost;
using namespace Kleo;
@@ -46,18 +46,17 @@
friend class ::Kleo::Controller;
Controller * const q;
public:
- explicit Private( const shared_ptr<AssuanCommand> & cmd, Controller * qq );
+ explicit Private( const shared_ptr<const ExecutionContext> & ctx, Controller * \
qq );
void applyWindowID( QDialog* dlg );
private:
- weak_ptr<AssuanCommand> command;
+ weak_ptr<const ExecutionContext> executionContext;
QVector<QDialog*> idApplied;
-
};
-Controller::Private::Private( const shared_ptr<AssuanCommand> & cmd, Controller * qq \
)
- : q( qq ), command( cmd )
+Controller::Private::Private( const shared_ptr<const ExecutionContext> & ctx, \
Controller * qq ) + : q( qq ), executionContext( ctx )
{
}
@@ -66,15 +65,14 @@
{
if ( idApplied.contains( dlg ) )
return;
- const shared_ptr<AssuanCommand> cmd = command.lock();
- if ( cmd ) {
- cmd->applyWindowID( dlg );
+ if ( const shared_ptr<const ExecutionContext> ctx = executionContext.lock() ) {
+ ctx->applyWindowID( dlg );
idApplied.append( dlg );
}
}
-Controller::Controller( const shared_ptr<AssuanCommand> & cmd, QObject* parent )
- : QObject( parent ), d( new Private( cmd, this ) )
+Controller::Controller( const shared_ptr<const ExecutionContext> & ctx, QObject* \
parent ) + : QObject( parent ), d( new Private( ctx, this ) )
{
}
@@ -84,15 +82,15 @@
}
-void Controller::setCommand( const shared_ptr<AssuanCommand> & cmd )
+void Controller::setExecutionContext( const shared_ptr<const ExecutionContext> & ctx \
) {
- d->command = cmd;
+ d->executionContext = ctx;
d->idApplied.clear();
}
-weak_ptr<AssuanCommand> Controller::command() const
+shared_ptr<const ExecutionContext> Controller::executionContext() const
{
- return d->command;
+ return d->executionContext.lock();
}
void Controller::bringToForeground( QDialog* dlg )
--- trunk/KDE/kdepim/kleopatra/uiserver/controller.h #773616:773617
@@ -38,24 +38,27 @@
#include <utils/pimpl_ptr.h>
#include <boost/shared_ptr.hpp>
-#include <boost/weak_ptr.hpp>
class QDialog;
namespace Kleo {
- class AssuanCommand;
+ class ExecutionContext {
+ public:
+ virtual ~ExecutionContext() {}
+ virtual void applyWindowID( QDialog * dialog ) const = 0;
+ };
class Controller : public QObject {
Q_OBJECT
public:
- explicit Controller( const boost::shared_ptr<AssuanCommand> & cmd, QObject * \
parent=0 ); + explicit Controller( const boost::shared_ptr<const \
ExecutionContext> & cmd, QObject * parent=0 ); ~Controller();
- void setCommand( const boost::shared_ptr<AssuanCommand> & cmd );
+ void setExecutionContext( const boost::shared_ptr<const ExecutionContext> & \
cmd );
protected:
- boost::weak_ptr<AssuanCommand> command() const;
+ boost::shared_ptr<const ExecutionContext> executionContext() const;
void bringToForeground( QDialog* dlg );
--- trunk/KDE/kdepim/kleopatra/uiserver/encryptemailcontroller.cpp #773616:773617
@@ -64,7 +64,7 @@
friend class ::Kleo::EncryptEMailController;
EncryptEMailController * const q;
public:
- explicit Private( EncryptEMailController * qq );
+ explicit Private( const shared_ptr<AssuanCommand> & cmd, EncryptEMailController \
* qq );
private:
void slotWizardRecipientsResolved();
@@ -81,13 +81,15 @@
void connectTask( const shared_ptr<Task> & task, unsigned int idx );
private:
+ weak_ptr<AssuanCommand> command;
std::vector< shared_ptr<EncryptEMailTask> > runnable, completed;
shared_ptr<EncryptEMailTask> cms, openpgp;
mutable QPointer<SignEncryptWizard> wizard;
};
-EncryptEMailController::Private::Private( EncryptEMailController * qq )
+EncryptEMailController::Private::Private( const shared_ptr<AssuanCommand> & cmd, \
EncryptEMailController * qq ) : q( qq ),
+ command( cmd ),
runnable(),
cms(),
openpgp(),
@@ -97,7 +99,7 @@
}
EncryptEMailController::EncryptEMailController( const shared_ptr<AssuanCommand> & \
cmd, QObject * p )
- : Controller( cmd, p ), d( new Private( this ) )
+ : Controller( cmd, p ), d( new Private( cmd, this ) )
{
}
@@ -108,6 +110,11 @@
//d->wizard->close(); ### ?
}
+void EncryptEMailController::setCommand( const shared_ptr<AssuanCommand> & cmd ) {
+ d->command = cmd;
+ setExecutionContext( cmd );
+}
+
void EncryptEMailController::setProtocol( Protocol proto ) {
d->ensureWizardCreated();
const Protocol protocol = d->wizard->presetProtocol();
@@ -149,7 +156,7 @@
void EncryptEMailController::importIO() {
- const shared_ptr<AssuanCommand> cmd = command().lock();
+ const shared_ptr<AssuanCommand> cmd = d->command.lock();
kleo_assert( cmd );
const std::vector< shared_ptr<Input> > & inputs = cmd->inputs();
--- trunk/KDE/kdepim/kleopatra/uiserver/encryptemailcontroller.h #773616:773617
@@ -55,6 +55,8 @@
~EncryptEMailController();
static const char * mementoName() { return "EncryptEMailController"; }
+
+ void setCommand( const boost::shared_ptr<AssuanCommand> & cmd );
void setProtocol( GpgME::Protocol proto );
const char * protocolAsString() const;
--- trunk/KDE/kdepim/kleopatra/uiserver/signemailcontroller.cpp #773616:773617
@@ -64,7 +64,8 @@
friend class ::Kleo::SignEMailController;
SignEMailController * const q;
public:
- explicit Private( SignEMailController * qq );
+ explicit Private( const shared_ptr<AssuanCommand> & cmd, SignEMailController * \
qq ); + ~Private();
private:
void slotWizardSignersResolved();
@@ -81,6 +82,7 @@
void connectTask( const shared_ptr<Task> & task, unsigned int idx ); // ### \
extract to base
private:
+ weak_ptr<AssuanCommand> command;
std::vector< shared_ptr<SignEMailTask> > runnable, completed; // ### extract to \
base shared_ptr<SignEMailTask> cms, openpgp; // ### extract to base
QPointer<SignEncryptWizard> wizard; // ### extract to base
@@ -88,8 +90,9 @@
bool detached : 1;
};
-SignEMailController::Private::Private( SignEMailController * qq )
+SignEMailController::Private::Private( const shared_ptr<AssuanCommand> & cmd, \
SignEMailController * qq ) : q( qq ),
+ command( cmd ),
runnable(),
cms(),
openpgp(),
@@ -100,8 +103,10 @@
}
+SignEMailController::Private::~Private() {}
+
SignEMailController::SignEMailController( const boost::shared_ptr<AssuanCommand> & \
cmd, QObject * p )
- : Controller( cmd, p ), d( new Private( this ) )
+ : Controller( cmd, p ), d( new Private( cmd, this ) )
{
}
@@ -159,7 +164,7 @@
// ### extract to base
void SignEMailController::importIO() {
- const shared_ptr<AssuanCommand> cmd = command().lock();
+ const shared_ptr<AssuanCommand> cmd = d->command.lock();
kleo_assert( cmd );
const std::vector< shared_ptr<Input> > & inputs = cmd->inputs();
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic