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

List:       kde-commits
Subject:    branches/kdepim/enterprise4/kdepim/kleopatra/commands
From:       Marc Mutz <mutz () kde ! org>
Date:       2010-10-20 14:36:05
Message-ID: 20101020143605.167C1AC899 () svn ! kde ! org
[Download RAW message or body]

SVN commit 1187844 by mutz:

GnuPGProcessCommand: always allocate the OutputDialog immediately on setShowsOutputWindow()

Fixes the dialog() call in SysTrayIcon returning 0 (called too early) and
the active window mechanism not triggering.

Fixes part (c) (and (d)) of kolab/issue4519.

 M  +15 -1     gnupgprocesscommand.cpp  


--- branches/kdepim/enterprise4/kdepim/kleopatra/commands/gnupgprocesscommand.cpp #1187843:1187844
@@ -122,7 +122,7 @@
 
 private:
     void init();
-    void ensureDialogVisible() {
+    void ensureDialogCreated() {
         if ( !showsOutputWindow )
             return;
         if ( !dialog ) {
@@ -132,6 +132,11 @@
             connect( dialog, SIGNAL(cancelRequested()), q, SLOT(cancel()) );
             dialog->setWindowTitle( i18n("Subprocess Diagnostics") );
         }
+    }
+    void ensureDialogVisible() {
+        if ( !showsOutputWindow )
+            return;
+        ensureDialogCreated();
         if ( dialog->isVisible() )
             dialog->raise();
         else
@@ -296,8 +301,17 @@
 }
 
 void GnuPGProcessCommand::setShowsOutputWindow( bool show ) {
+    if ( show == d->showsOutputWindow )
+        return;
     d->showsOutputWindow = show;
+    if ( show ) {
+        d->ensureDialogCreated();
+    } else {
+        if ( d->dialog )
+            d->dialog->deleteLater();
+        d->dialog = 0;
 }
+}
 
 bool GnuPGProcessCommand::showsOutputWindow() const {
     return d->showsOutputWindow;
[prev in list] [next in list] [prev in thread] [next in thread] 

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