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

List:       kde-commits
Subject:    branches/KDE/3.5/kdewebdev/kommander/executor
From:       Andras Mantia <amantia () kde ! org>
Date:       2008-02-05 15:00:25
Message-ID: 1202223625.849277.32096.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 771245 by amantia:

Fix crash on exit with MainWindow based "dialogs".

 M  +4 -3      instance.cpp  
 M  +2 -1      instance.h  


--- branches/KDE/3.5/kdewebdev/kommander/executor/instance.cpp #771244:771245
@@ -116,7 +116,8 @@
     return false;
   }
 
-  KommanderWindow* window = dynamic_cast<KommanderWindow*>(m_instance);  if (window)
+  KommanderWindow* window = dynamic_cast<KommanderWindow*>((QWidget*)m_instance);  
+  if (window)
     window->setFileName(fname.path().local8Bit());
 
   // FIXME : Should verify that all of the widgets in the dialog derive from KommanderWidget
@@ -158,11 +159,11 @@
 
   // Handle both dialogs and main windows
   if (m_instance->inherits("QDialog"))
-    ((QDialog*)m_instance)->exec();
+    dynamic_cast<QDialog*>((QWidget*)m_instance)->exec();
   else if (m_instance->inherits("QMainWindow"))
   {
     kapp->setMainWidget(m_instance);
-    ((QMainWindow*)m_instance)->show();
+    dynamic_cast<QMainWindow*>((QWidget*)m_instance)->show();
     kapp->exec();
   }
   else return false;
--- branches/KDE/3.5/kdewebdev/kommander/executor/instance.h #771244:771245
@@ -24,6 +24,7 @@
 #include <qstringlist.h>
 #include <qobject.h>
 #include <qmap.h>
+#include <qguardedptr.h>
 
 /* KDE INCLUDES */
 #include <kurl.h>
@@ -122,7 +123,7 @@
   /** Check if the file exists, has correct extension and is not in a temporary (insecure) directory */
   bool isFileValid(const KURL& fname) const;
   /* Dialog Instance */
-  QWidget *m_instance;
+  QGuardedPtr<QWidget> m_instance;
   /* Associated Text Instance */
   KommanderWidget *m_textInstance;
   /** The parent widget */
[prev in list] [next in list] [prev in thread] [next in thread] 

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