[rkward-cvs] SF.net SVN: rkward: [1543] trunk/rkward

tfry at users.sourceforge.net tfry at users.sourceforge.net
Tue Mar 6 14:44:06 UTC 2007


Revision: 1543
          http://svn.sourceforge.net/rkward/?rev=1543&view=rev
Author:   tfry
Date:     2007-03-06 06:44:05 -0800 (Tue, 06 Mar 2007)

Log Message:
-----------
Don't crash on close with complex plugins still active

Modified Paths:
--------------
    trunk/rkward/ChangeLog
    trunk/rkward/rkward/plugin/rkstandardcomponent.cpp
    trunk/rkward/rkward/plugin/rkstandardcomponentgui.cpp
    trunk/rkward/rkward/rkward.cpp
    trunk/rkward/rkward/rkward.h

Modified: trunk/rkward/ChangeLog
===================================================================
--- trunk/rkward/ChangeLog	2007-03-06 12:45:27 UTC (rev 1542)
+++ trunk/rkward/ChangeLog	2007-03-06 14:44:05 UTC (rev 1543)
@@ -1,3 +1,4 @@
+- fixed: quitting while a plugin was still active would sometimes crash rkward
 - new shortcuts for window navigations: next/previous window, activate console, activate command log, etc.
 - new functions rk.describe.alternative () and rk.print.literal () for use in plugins
 - new Phillips-Perron test

Modified: trunk/rkward/rkward/plugin/rkstandardcomponent.cpp
===================================================================
--- trunk/rkward/rkward/plugin/rkstandardcomponent.cpp	2007-03-06 12:45:27 UTC (rev 1542)
+++ trunk/rkward/rkward/plugin/rkstandardcomponent.cpp	2007-03-06 14:44:05 UTC (rev 1543)
@@ -93,7 +93,6 @@
 	dummy = QFileInfo (filename).dirPath () + '/' + xml->getStringAttribute (element, "file", "::nosuchfile::", DL_INFO);
 	have_help = QFileInfo (dummy).exists ();
 
-	connect (qApp, SIGNAL (aboutToQuit ()), this, SLOT (deleteLater ()));
 	handle_change_timer = new QTimer (this);
 	connect (handle_change_timer, SIGNAL (timeout ()), this, SLOT (handleChange ()));
 

Modified: trunk/rkward/rkward/plugin/rkstandardcomponentgui.cpp
===================================================================
--- trunk/rkward/rkward/plugin/rkstandardcomponentgui.cpp	2007-03-06 12:45:27 UTC (rev 1542)
+++ trunk/rkward/rkward/plugin/rkstandardcomponentgui.cpp	2007-03-06 14:44:05 UTC (rev 1543)
@@ -33,6 +33,7 @@
 #include "../windows/rkcommandeditorwindow.h"
 #include "../rbackend/rinterface.h"
 #include "../misc/rkerrordialog.h"
+#include "../rkward.h"
 #include "../settings/rksettingsmoduleplugins.h"
 #include "../rkglobals.h"
 #include "../debug.h"
@@ -48,6 +49,7 @@
 	RKStandardComponentGUI::component = component;
 	RKStandardComponentGUI::code_property = code_property;
 	connect (code_property, SIGNAL (valueChanged (RKComponentPropertyBase *)), this, SLOT (codeChanged (RKComponentPropertyBase *)));
+	connect (RKWardMainWindow::getMain(), SIGNAL (aboutToQuitRKWard()), this, SLOT (cancel()));
 
 	RKStandardComponentGUI::enslaved = enslaved;
 

Modified: trunk/rkward/rkward/rkward.cpp
===================================================================
--- trunk/rkward/rkward/rkward.cpp	2007-03-06 12:45:27 UTC (rev 1542)
+++ trunk/rkward/rkward/rkward.cpp	2007-03-06 14:44:05 UTC (rev 1543)
@@ -178,6 +178,7 @@
 	}
 
 	if (doQueryQuit ()) {
+		emit (aboutToQuitRKWard());
 		new RKQuitAgent (this);
 	}
 }

Modified: trunk/rkward/rkward/rkward.h
===================================================================
--- trunk/rkward/rkward/rkward.h	2007-03-06 12:45:27 UTC (rev 1542)
+++ trunk/rkward/rkward/rkward.h	2007-03-06 14:44:05 UTC (rev 1543)
@@ -121,7 +121,8 @@
 	virtual void readProperties(KConfig *_cfg);
 signals:
 /** no idea, why we have to declare this explicitly, but somehow we do. */
-       void childWindowCloseRequest (KMdiChildView *);
+	void childWindowCloseRequest (KMdiChildView *);
+	void aboutToQuitRKWard ();
 public slots:
 	/** Raise the help search window */
 	void showHelpSearch ();


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.




More information about the rkward-tracker mailing list