[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    KDE/kdepim/kleopatra/uiserver
From:       Frank Osterfeld <frank.osterfeld () kdemail ! net>
Date:       2008-01-31 18:58:41
Message-ID: 1201805921.877585.20804.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 769173 by osterfeld:

Pass commands in constructor so we can apply the passed window id to the wizard at \
creation time

 M  +2 -9      assuancommand.h  
 M  +2 -1      decryptverifycommand.cpp  
 M  +3 -4      encryptcommand.cpp  
 M  +22 -12    encryptemailcontroller.cpp  
 M  +3 -3      encryptemailcontroller.h  
 M  +1 -3      prepencryptcommand.cpp  
 M  +1 -3      signcommand.cpp  
 M  +6 -11     signemailcontroller.cpp  
 M  +1 -3      signemailcontroller.h  
 M  +1 -2      signencryptfilescommand.cpp  
 M  +6 -10     signencryptfilescontroller.cpp  
 M  +1 -3      signencryptfilescontroller.h  


--- trunk/KDE/kdepim/kleopatra/uiserver/assuancommand.h #769172:769173
@@ -239,17 +239,10 @@
 
         GpgME::Protocol checkProtocol( Mode mode ) const;
 
-        template <typename T_Widget>
-        T_Widget * applyWindowID( T_Widget * w ) const {
+        void applyWindowID( QDialog* w ) const {
             doApplyWindowID( w );
-            return w;
         }
-        template <typename T_Widget>
-        std::auto_ptr<T_Widget> applyWindowID( std::auto_ptr<T_Widget> w ) const {
-            doApplyWindowID( w.get() );
-            return w;
-        }
-
+        
         QString heuristicBaseDirectory() const;
 
         bool isNohup() const;
--- trunk/KDE/kdepim/kleopatra/uiserver/decryptverifycommand.cpp #769172:769173
@@ -250,7 +250,8 @@
     void createWizard() {
         if ( wizard )
             return;
-        wizard = q->applyWindowID( new DecryptVerifyWizard );
+        wizard =  new DecryptVerifyWizard;
+        q->applyWindowID( wizard );
         wizard->setAttribute( Qt::WA_DeleteOnClose );
         connect( wizard, SIGNAL(finished(int)), this, SLOT(slotDialogClosed()) );
         //if ( requestedWindowTitle().isEmpty() )
--- trunk/KDE/kdepim/kleopatra/uiserver/encryptcommand.cpp #769172:769173
@@ -137,15 +137,14 @@
     if ( hasPreviousMemento ) {
         d->controller = mementoContent< shared_ptr<EncryptEMailController> >( \
EncryptEMailController::mementoName() );  removeMemento( \
EncryptEMailController::mementoName() ); +        d->controller->setCommand( \
shared_from_this() );  } else {
-        d->controller.reset( new EncryptEMailController );
+        d->controller.reset( new EncryptEMailController( shared_from_this() ) );
         d->controller->setProtocol( checkProtocol( EMail ) );
     }
 
     kleo_assert( d->controller );
-
-    d->controller->setCommand( shared_from_this() );
-
+    
     QObject::connect( d->controller.get(), SIGNAL(recipientsResolved()), d.get(), \
                SLOT(slotRecipientsResolved()), Qt::QueuedConnection );
     QObject::connect( d->controller.get(), SIGNAL(done()), d.get(), \
                SLOT(slotDone()), Qt::QueuedConnection );
     QObject::connect( d->controller.get(), SIGNAL(error(int,QString)), d.get(), \
                SLOT(slotError(int,QString)), Qt::QueuedConnection );
--- trunk/KDE/kdepim/kleopatra/uiserver/encryptemailcontroller.cpp #769172:769173
@@ -62,7 +62,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();
@@ -73,7 +73,8 @@
     void ensureWizardCreated() const;
     void ensureWizardVisible();
     void cancelAllTasks();
-
+    void applyWindowID() const;
+    
     void schedule();
     shared_ptr<EncryptEMailTask> takeRunnable( GpgME::Protocol proto );
     void connectTask( const shared_ptr<Task> & task, unsigned int idx );
@@ -85,21 +86,30 @@
     mutable QPointer<SignEncryptWizard> wizard;
 };
 
-EncryptEMailController::Private::Private( EncryptEMailController * qq )
+EncryptEMailController::Private::Private( const shared_ptr<AssuanCommand> & cmd, \
EncryptEMailController * qq )  : q( qq ),
       runnable(),
       cms(),
       openpgp(),
-      command(),
+      command( cmd ),
       wizard()
 {
 
 }
 
-EncryptEMailController::EncryptEMailController( QObject * p )
-    : QObject( p ), d( new Private( this ) )
+
+void EncryptEMailController::Private::applyWindowID() const
 {
+    if ( !wizard )
+        return;
+    if ( const shared_ptr<AssuanCommand> cmd = command.lock() )
+        cmd->applyWindowID( wizard );
+}
 
+EncryptEMailController::EncryptEMailController( const shared_ptr<AssuanCommand> & \
cmd, QObject * p ) +    : QObject( p ), d( new Private( cmd, this ) )
+{
+
 }
 
 EncryptEMailController::~EncryptEMailController() {
@@ -117,6 +127,11 @@
     d->wizard->setPresetProtocol( proto );
 }
 
+void EncryptEMailController::setCommand( const shared_ptr<AssuanCommand> & cmd )
+{
+    d->command = cmd;
+    d->applyWindowID();
+}
 
 Protocol EncryptEMailController::protocol() const {
     d->ensureWizardCreated();
@@ -134,10 +149,6 @@
     }
 }
 
-void EncryptEMailController::setCommand( const shared_ptr<AssuanCommand> & cmd ) {
-    d->command = cmd;
-}
-
 void EncryptEMailController::startResolveRecipients( const std::vector<Mailbox> & \
recipients ) {  d->ensureWizardCreated();
     d->wizard->setRecipients( recipients );
@@ -278,8 +289,6 @@
         return;
 
     std::auto_ptr<SignEncryptWizard> w( new SignEncryptWizard );
-    if ( const shared_ptr<AssuanCommand> cmd = command.lock() )
-        w = cmd->applyWindowID( w );
     w->setWindowTitle( i18n("Encrypt Mail Message") );
    
     std::vector<int> pageOrder;
@@ -292,6 +301,7 @@
     connect( w.get(), SIGNAL(recipientsResolved()), q, \
                SLOT(slotWizardRecipientsResolved()), Qt::QueuedConnection );
     connect( w.get(), SIGNAL(canceled()), q, SLOT(slotWizardCanceled()), \
Qt::QueuedConnection );  wizard = w.release();
+    applyWindowID();
 }
 
 void EncryptEMailController::Private::ensureWizardVisible() {
--- trunk/KDE/kdepim/kleopatra/uiserver/encryptemailcontroller.h #769172:769173
@@ -51,17 +51,17 @@
     class EncryptEMailController : public QObject {
         Q_OBJECT
     public:
-        explicit EncryptEMailController( QObject * parent=0 );
+        explicit EncryptEMailController( const boost::shared_ptr<AssuanCommand> & \
cmd, QObject * parent=0 );  ~EncryptEMailController();
 
         static const char * mementoName() { return "EncryptEMailController"; }
 
+        void setCommand( const boost::shared_ptr<AssuanCommand> & cmd );
+        
         void setProtocol( GpgME::Protocol proto );
         const char * protocolAsString() const;
         GpgME::Protocol protocol() const;
 
-        void setCommand( const boost::shared_ptr<AssuanCommand> & cmd );
-
         void startResolveRecipients( const std::vector<KMime::Types::Mailbox> & \
recipients );  
         void importIO();
--- trunk/KDE/kdepim/kleopatra/uiserver/prepencryptcommand.cpp #769172:769173
@@ -96,10 +96,8 @@
 
     d->checkForErrors();
 
-    d->controller.reset( new EncryptEMailController );
+    d->controller.reset( new EncryptEMailController( shared_from_this() ) );
 
-    d->controller->setCommand( shared_from_this() );
-
     if ( hasOption( "protocol" ) )
         // --protocol is optional for PREP_ENCRYPT
         d->controller->setProtocol( checkProtocol( EMail ) );
--- trunk/KDE/kdepim/kleopatra/uiserver/signcommand.cpp #769172:769173
@@ -101,11 +101,9 @@
 
     d->checkForErrors();
 
-    d->controller.reset( new SignEMailController );
+    d->controller.reset( new SignEMailController( shared_from_this() ) );
     d->controller->setProtocol( checkProtocol( EMail ) );
 
-    d->controller->setCommand( shared_from_this() );
-
     QObject::connect( d->controller.get(), SIGNAL(signersResolved()), d.get(), \
                SLOT(slotSignersResolved() ) );
     QObject::connect( d->controller.get(), SIGNAL(reportMicAlg(QString)), d.get(), \
                SLOT(slotMicAlgDetermined(QString)) );
     QObject::connect( d->controller.get(), SIGNAL(done()), d.get(), SLOT(slotDone()) \
                );
--- trunk/KDE/kdepim/kleopatra/uiserver/signemailcontroller.cpp #769172:769173
@@ -62,7 +62,7 @@
     friend class ::Kleo::SignEMailController;
     SignEMailController * const q;
 public:
-    explicit Private( SignEMailController * qq );
+    explicit Private( const shared_ptr<AssuanCommand> & cmd, SignEMailController * \
qq );  
 private:
     void slotWizardSignersResolved();
@@ -87,12 +87,12 @@
     bool detached : 1;
 };
 
-SignEMailController::Private::Private( SignEMailController * qq )
+SignEMailController::Private::Private( const shared_ptr<AssuanCommand> & cmd, \
SignEMailController * qq )  : q( qq ),
       runnable(),
       cms(),
       openpgp(),
-      command(),
+      command( cmd ),     
       wizard(),
       protocol( UnknownProtocol ),
       detached( false )
@@ -100,8 +100,8 @@
 
 }
 
-SignEMailController::SignEMailController( QObject * p )
-    : QObject( p ), d( new Private( this ) )
+SignEMailController::SignEMailController( const boost::shared_ptr<AssuanCommand> & \
cmd, QObject * p ) +    : QObject( p ), d( new Private( cmd, this ) )
 {
 
 }
@@ -126,11 +126,6 @@
     return d->protocol;
 }
 
-// ### extract to base
-void SignEMailController::setCommand( const shared_ptr<AssuanCommand> & cmd ) {
-    d->command = cmd;
-}
-
 void SignEMailController::startResolveSigners( const std::vector<Mailbox> & signers \
                ) {
     const std::vector< std::vector<Key> > keys = \
CertificateResolver::resolveSigners( signers, d->protocol );  
@@ -304,7 +299,7 @@
 
     std::auto_ptr<SignEncryptWizard> w( new SignEncryptWizard );
     if ( const shared_ptr<AssuanCommand> cmd = command.lock() )
-        w = cmd->applyWindowID( w );
+        cmd->applyWindowID( w.get() );
     // ### virtual hook here
     w->setWindowTitle( i18n("Sign Mail Message") );
 
--- trunk/KDE/kdepim/kleopatra/uiserver/signemailcontroller.h #769172:769173
@@ -51,15 +51,13 @@
     class SignEMailController : public QObject {
         Q_OBJECT
     public:
-        explicit SignEMailController( QObject * parent=0 );
+        explicit SignEMailController( const boost::shared_ptr<AssuanCommand> & cmd, \
QObject * parent=0 );  ~SignEMailController();
 
         void setProtocol( GpgME::Protocol proto );
         GpgME::Protocol protocol() const;
         //const char * protocolAsString() const;
 
-        void setCommand( const boost::shared_ptr<AssuanCommand> & cmd );
-
         void startResolveSigners( const std::vector<KMime::Types::Mailbox> & signers \
);  
         void setDetachedSignature( bool detached );
--- trunk/KDE/kdepim/kleopatra/uiserver/signencryptfilescommand.cpp #769172:769173
@@ -111,8 +111,7 @@
 
     d->checkForErrors();
 
-    d->controller.reset( new SignEncryptFilesController );
-    d->controller->setCommand( shared_from_this() );
+    d->controller.reset( new SignEncryptFilesController( shared_from_this() ) );
 
     d->controller->setProtocol( checkProtocol( FileManager ) );
     d->controller->setOperationMode( operation() );
--- trunk/KDE/kdepim/kleopatra/uiserver/signencryptfilescontroller.cpp #769172:769173
@@ -65,7 +65,7 @@
     friend class ::Kleo::SignEncryptFilesController;
     SignEncryptFilesController * const q;
 public:
-    explicit Private( SignEncryptFilesController * qq );
+    explicit Private( const shared_ptr<AssuanCommand> & cmd, \
SignEncryptFilesController * qq );  
 private:
     void slotWizardOperationPrepared();
@@ -98,12 +98,12 @@
     bool errorDetected : 1;
 };
 
-SignEncryptFilesController::Private::Private( SignEncryptFilesController * qq )
+SignEncryptFilesController::Private::Private( const shared_ptr<AssuanCommand> & cmd, \
SignEncryptFilesController * qq )  : q( qq ),
       runnable(),
       cms(),
       openpgp(),
-      command(),
+      command( cmd ),
       wizard(),
       operation( SignAllowed|EncryptAllowed ),
       protocol( UnknownProtocol ),
@@ -128,8 +128,8 @@
     return i18n( "Sign/Encrypt Files" );
 }
 
-SignEncryptFilesController::SignEncryptFilesController( QObject * p )
-    : QObject( p ), d( new Private( this ) )
+SignEncryptFilesController::SignEncryptFilesController( const \
shared_ptr<AssuanCommand> & cmd, QObject * p ) +    : QObject( p ), d( new Private( \
cmd, this ) )  {
 
 }
@@ -152,10 +152,6 @@
     return d->protocol;
 }
 
-void SignEncryptFilesController::setCommand( const shared_ptr<AssuanCommand> & cmd ) \
                {
-    d->command = cmd;
-}
-
 // static
 void SignEncryptFilesController::Private::assertValidOperation( unsigned int op ) {
     kleo_assert( ( op & SignMask )    == SignDisallowed    ||
@@ -399,7 +395,7 @@
 
     std::auto_ptr<SignEncryptFilesWizard> w( new SignEncryptFilesWizard );
     if ( const shared_ptr<AssuanCommand> cmd = command.lock() )
-        w = cmd->applyWindowID( w );
+        cmd->applyWindowID( w.get() );
 
     w->setWindowTitle( titleForOperation( operation ) );
     w->setAttribute( Qt::WA_DeleteOnClose );
--- trunk/KDE/kdepim/kleopatra/uiserver/signencryptfilescontroller.h #769172:769173
@@ -51,15 +51,13 @@
     class SignEncryptFilesController : public QObject {
         Q_OBJECT
     public:
-        explicit SignEncryptFilesController( QObject * parent=0 );
+        explicit SignEncryptFilesController( const boost::shared_ptr<AssuanCommand> \
& cmd, QObject * parent=0 );  ~SignEncryptFilesController();
 
         void setProtocol( GpgME::Protocol proto );
         GpgME::Protocol protocol() const;
         //const char * protocolAsString() const;
 
-        void setCommand( const boost::shared_ptr<AssuanCommand> & cmd );
-
         enum Operation {
             SignDisallowed = 0,
             SignAllowed = 1,


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic