[rkward] rkward: More ebn / krazy fixes: QString::null and some #include problems

Thomas Friedrichsmeier thomas.friedrichsmeier at ruhr-uni-bochum.de
Thu Feb 26 13:04:34 UTC 2015


Git commit 34362553562e3fa9a32db73a1744a6f273a1ebf6 by Thomas Friedrichsmeier.
Committed on 26/02/2015 at 13:03.
Pushed by tfry into branch 'master'.

More ebn / krazy fixes: QString::null and some #include problems

M  +2    -2    rkward/agents/rkeditobjectagent.cpp
M  +2    -2    rkward/agents/rksaveagent.cpp
M  +1    -1    rkward/core/renvironmentobject.cpp
M  +2    -2    rkward/core/rkrownames.cpp
M  +5    -5    rkward/core/rkvariable.cpp
M  +2    -2    rkward/core/robject.cpp
M  +1    -1    rkward/core/robjectlist.cpp
M  +2    -2    rkward/dialogs/rkloadlibsdialog.cpp
M  +1    -1    rkward/misc/rkcommonfunctions.cpp
M  +1    -1    rkward/misc/rkdbusapi.cpp
M  +2    -2    rkward/misc/rkdummypart.cpp
M  +4    -4    rkward/misc/xmlhelper.cpp
M  +1    -1    rkward/plugin/rkcheckbox.cpp
M  +1    -1    rkward/plugin/rkcomponent.h
M  +1    -1    rkward/plugin/rkcomponentcontext.cpp
M  +3    -3    rkward/plugin/rkcomponentmap.cpp
M  +1    -1    rkward/plugin/rkcomponentproperties.cpp
M  +11   -11   rkward/plugin/rkcomponentproperties.h
M  +2    -2    rkward/plugin/rkformula.cpp
M  +1    -1    rkward/plugin/rkinput.cpp
M  +1    -1    rkward/plugin/rkpreviewbox.cpp
M  +9    -9    rkward/plugin/rkstandardcomponent.cpp
M  +2    -2    rkward/plugin/rkstandardcomponentgui.cpp
M  +2    -2    rkward/plugin/rkvarslot.cpp
M  +1    -1    rkward/rbackend/rcommand.h
M  +4    -4    rkward/rbackend/rinterface.cpp
M  +5    -5    rkward/rbackend/rinterface.h
M  +2    -2    rkward/rbackend/rkrbackend.h
M  +1    -1    rkward/rkward.cpp
M  +2    -2    rkward/rkward.h
M  +4    -4    rkward/scriptbackends/scriptbackend.cpp
M  +4    -4    rkward/scriptbackends/simplebackend.cpp
M  +1    -1    rkward/settings/rksettingsmodulegeneral.cpp
M  +1    -1    rkward/settings/rksettingsmodulegraphics.cpp
M  +1    -1    rkward/settings/rksettingsmoduleobjectbrowser.cpp
M  +1    -1    rkward/settings/rksettingsmoduleoutput.cpp
M  +3    -3    rkward/settings/rksettingsmoduler.cpp
M  +1    -1    rkward/windows/rkhelpsearchwindow.cpp
M  +1    -1    rkward/windows/rkhtmlwindow.cpp
M  +1    -1    rkward/windows/rkworkplace.h

http://commits.kde.org/rkward/34362553562e3fa9a32db73a1744a6f273a1ebf6

diff --git a/rkward/agents/rkeditobjectagent.cpp b/rkward/agents/rkeditobjectagent.cpp
index 8de8431..773b41b 100644
--- a/rkward/agents/rkeditobjectagent.cpp
+++ b/rkward/agents/rkeditobjectagent.cpp
@@ -33,10 +33,10 @@ RKEditObjectAgent::RKEditObjectAgent (const QStringList &object_names, RCommandC
 	RKEditObjectAgent::object_names = object_names;
 
 	// first issue an empty command to trigger an update of the object list
-	RKGlobals::rInterface ()->issueCommand (new RCommand (QString::null, RCommand::EmptyCommand | RCommand::ObjectListUpdate, QString::null, this), chain);
+	RKGlobals::rInterface ()->issueCommand (new RCommand (QString (), RCommand::EmptyCommand | RCommand::ObjectListUpdate, QString (), this), chain);
 
 	// now add another empty command to find out, when the update is complete
-	RCommand *command = new RCommand (QString::null, RCommand::EmptyCommand, QString::null, this);
+	RCommand *command = new RCommand (QString (), RCommand::EmptyCommand, QString (), this);
 	done_command_id = command->id ();
 	RKGlobals::rInterface ()->issueCommand (command, chain);
 }
diff --git a/rkward/agents/rksaveagent.cpp b/rkward/agents/rksaveagent.cpp
index 7d5b402..b048864 100644
--- a/rkward/agents/rksaveagent.cpp
+++ b/rkward/agents/rksaveagent.cpp
@@ -50,7 +50,7 @@ RKSaveAgent::RKSaveAgent (KUrl url, bool save_file_as, DoneAction when_done, KUr
 	
 	RKWorkplace::mainWorkplace ()->setWorkspaceURL (save_url, true);
 	RKWorkplace::mainWorkplace ()->saveWorkplace (save_chain);
-	RKGlobals::rInterface ()->issueCommand (new RCommand ("save.image (\"" + save_url.toLocalFile () + "\")", RCommand::App, QString::null, this), save_chain);
+	RKGlobals::rInterface ()->issueCommand (new RCommand ("save.image (\"" + save_url.toLocalFile () + "\")", RCommand::App, QString (), this), save_chain);
 }
 
 RKSaveAgent::~RKSaveAgent () {
@@ -83,7 +83,7 @@ void RKSaveAgent::rCommandDone (RCommand *command) {
 
 		if (res == KMessageBox::Yes) {
 			if (askURL ()) {
-				RKGlobals::rInterface ()->issueCommand (new RCommand ("save.image (\"" + save_url.toLocalFile () + "\")", RCommand::App, QString::null, this), save_chain);
+				RKGlobals::rInterface ()->issueCommand (new RCommand ("save.image (\"" + save_url.toLocalFile () + "\")", RCommand::App, QString (), this), save_chain);
 				return;
 			}
 		} else if (res == KMessageBox::No) {
diff --git a/rkward/core/renvironmentobject.cpp b/rkward/core/renvironmentobject.cpp
index f0ea919..fbd4456 100644
--- a/rkward/core/renvironmentobject.cpp
+++ b/rkward/core/renvironmentobject.cpp
@@ -112,7 +112,7 @@ void REnvironmentObject::updateFromR (RCommandChain *chain) {
 	if (type & GlobalEnv) options = ", envlevel=-1";	// in the .GlobalEnv recurse one more level
 	if (type & PackageEnv) options.append (", namespacename=" + rQuote (packageName ()));
 
-	RCommand *command = new RCommand (".rk.get.structure (" + getFullName () + ", " + rQuote (getShortName ()) + options + ')', RCommand::App | RCommand::Sync | RCommand::GetStructuredData, QString::null, this, ROBJECT_UDPATE_STRUCTURE_COMMAND);
+	RCommand *command = new RCommand (".rk.get.structure (" + getFullName () + ", " + rQuote (getShortName ()) + options + ')', RCommand::App | RCommand::Sync | RCommand::GetStructuredData, QString (), this, ROBJECT_UDPATE_STRUCTURE_COMMAND);
 	RKGlobals::rInterface ()->issueCommand (command, chain);
 
 	type |= Updating;
diff --git a/rkward/core/rkrownames.cpp b/rkward/core/rkrownames.cpp
index 01efcd1..8aaa658 100644
--- a/rkward/core/rkrownames.cpp
+++ b/rkward/core/rkrownames.cpp
@@ -72,7 +72,7 @@ void RKRowNames::writeData (int from_row, int to_row, RCommandChain *chain) {
 	RK_TRACE (OBJECTS);
 
 	if (isSequential ()) {
-		RKGlobals::rInterface ()->issueCommand (getFullName () + " <- NULL", RCommand::App | RCommand::Sync, QString::null, 0,0, chain);
+		RKGlobals::rInterface ()->issueCommand (getFullName () + " <- NULL", RCommand::App | RCommand::Sync, QString (), 0,0, chain);
 	} else {
 		// unfortunately, we always need to write the whole data, as row.names<- does not support indexing.
 		QString data_string = "c (";
@@ -84,7 +84,7 @@ void RKRowNames::writeData (int from_row, int to_row, RCommandChain *chain) {
 			}
 		}
 		data_string.append (")");
-		RKGlobals::rInterface ()->issueCommand (getFullName () + " <- " + data_string, RCommand::App | RCommand::Sync, QString::null, 0, 0, chain);
+		RKGlobals::rInterface ()->issueCommand (getFullName () + " <- " + data_string, RCommand::App | RCommand::Sync, QString (), 0, 0, chain);
 	}
 
 	ChangeSet *set = new ChangeSet;
diff --git a/rkward/core/rkvariable.cpp b/rkward/core/rkvariable.cpp
index 788268a..e52f8ac 100644
--- a/rkward/core/rkvariable.cpp
+++ b/rkward/core/rkvariable.cpp
@@ -97,7 +97,7 @@ void RKVariable::setVarType (RObject::RDataType new_type, bool sync) {
 			else if (new_type == RObject::DataLogical) command += "as.logical";
 			else if (new_type == RObject::DataFactor) command += "as.factor";
 			command += ')';
-			RKGlobals::rInterface ()->issueCommand (command, RCommand::App | RCommand::Sync, QString::null);
+			RKGlobals::rInterface ()->issueCommand (command, RCommand::App | RCommand::Sync, QString ());
 			if (new_type == RObject::DataFactor) updateValueLabels ();	// as.factor resets the "levels"-attribute!
 
 			syncDataToR ();
@@ -298,7 +298,7 @@ void RKVariable::updateDataFromR (RCommandChain *chain) {
 	RK_TRACE (OBJECTS);
 	if (!data) return;
 
-	RKGlobals::rInterface ()->issueCommand (".rk.get.vector.data (" + getFullName () + ')', RCommand::App | RCommand::Sync | RCommand::GetStructuredData, QString::null, this, GET_DATA_COMMAND, chain);
+	RKGlobals::rInterface ()->issueCommand (".rk.get.vector.data (" + getFullName () + ')', RCommand::App | RCommand::Sync | RCommand::GetStructuredData, QString (), this, GET_DATA_COMMAND, chain);
 }
 
 void RKVariable::lockSyncing (bool lock) {
@@ -392,7 +392,7 @@ void RKVariable::writeData (int from_row, int to_row, RCommandChain *chain) {
 
 	// TODO: try to sync in correct storage mode
 	if (from_row == to_row) {
-		RKGlobals::rInterface ()->issueCommand (getFullName () + '[' + QString::number (from_row+1) + "] <- " + getRText (from_row), RCommand::App | RCommand::Sync, QString::null, 0,0, chain);
+		RKGlobals::rInterface ()->issueCommand (getFullName () + '[' + QString::number (from_row+1) + "] <- " + getRText (from_row), RCommand::App | RCommand::Sync, QString (), 0,0, chain);
 		if (data->cell_states[from_row] & RKVarEditData::UnsyncedInvalidState) changed_invalids.append (from_row);
 	} else {
 		QString data_string = "c (";
@@ -405,7 +405,7 @@ void RKVariable::writeData (int from_row, int to_row, RCommandChain *chain) {
 			if (data->cell_states[row] & RKVarEditData::UnsyncedInvalidState) changed_invalids.append (row);
 		}
 		data_string.append (")");
-		RKGlobals::rInterface ()->issueCommand (getFullName () + '[' + QString::number (from_row + 1) + ':' + QString::number (to_row + 1) + "] <- " + data_string, RCommand::App | RCommand::Sync, QString::null, 0,0, chain);
+		RKGlobals::rInterface ()->issueCommand (getFullName () + '[' + QString::number (from_row + 1) + ':' + QString::number (to_row + 1) + "] <- " + data_string, RCommand::App | RCommand::Sync, QString (), 0,0, chain);
 	}
 
 	if (!changed_invalids.isEmpty ()) writeInvalidFields (changed_invalids, chain);
@@ -770,7 +770,7 @@ void RKVariable::writeValueLabels (RCommandChain *chain) const {
 		level_string = "NULL";
 	}
 
-	RKGlobals::rInterface ()->issueCommand (".rk.set.levels (" + getFullName () + ", " + level_string + ')', RCommand::App | RCommand::Sync, QString::null, 0, 0, chain);
+	RKGlobals::rInterface ()->issueCommand (".rk.set.levels (" + getFullName () + ", " + level_string + ')', RCommand::App | RCommand::Sync, QString (), 0, 0, chain);
 }
 
 QString RKVariable::getValueLabelString () const {
diff --git a/rkward/core/robject.cpp b/rkward/core/robject.cpp
index 87fad6e..a887527 100644
--- a/rkward/core/robject.cpp
+++ b/rkward/core/robject.cpp
@@ -231,11 +231,11 @@ void RObject::updateFromR (RCommandChain *chain) {
 #	warning TODO: find a generic solution
 #endif
 // We handle objects directly in .GlobalEnv differently. That's to avoid forcing promises, when addressing the object directly. In the long run, .rk.get.structure should be reworked to simply not need the value-argument in any case.
-		 command = new RCommand (".rk.get.structure.global (" + rQuote (getShortName ()) + ')', RCommand::App | RCommand::Sync | RCommand::GetStructuredData, QString::null, this, ROBJECT_UDPATE_STRUCTURE_COMMAND);
+		 command = new RCommand (".rk.get.structure.global (" + rQuote (getShortName ()) + ')', RCommand::App | RCommand::Sync | RCommand::GetStructuredData, QString (), this, ROBJECT_UDPATE_STRUCTURE_COMMAND);
 	} else {
 		RK_ASSERT (false);	// non-catastrophic, but do we get here?
 
-		command = new RCommand (".rk.get.structure (" + getFullName () + ", " + rQuote (getShortName ()) + ')', RCommand::App | RCommand::Sync | RCommand::GetStructuredData, QString::null, this, ROBJECT_UDPATE_STRUCTURE_COMMAND);
+		command = new RCommand (".rk.get.structure (" + getFullName () + ", " + rQuote (getShortName ()) + ')', RCommand::App | RCommand::Sync | RCommand::GetStructuredData, QString (), this, ROBJECT_UDPATE_STRUCTURE_COMMAND);
 	}
 	RKGlobals::rInterface ()->issueCommand (command, chain);
 
diff --git a/rkward/core/robjectlist.cpp b/rkward/core/robjectlist.cpp
index d477d5b..d4b9c5b 100644
--- a/rkward/core/robjectlist.cpp
+++ b/rkward/core/robjectlist.cpp
@@ -40,7 +40,7 @@
 // static
 RObjectList *RObjectList::object_list = 0;
 
-RObjectList::RObjectList () : RContainerObject (0, QString::null) {
+RObjectList::RObjectList () : RContainerObject (0, QString ()) {
 	RK_TRACE (OBJECTS);
 	object_list = this;
 
diff --git a/rkward/dialogs/rkloadlibsdialog.cpp b/rkward/dialogs/rkloadlibsdialog.cpp
index 02262ff..7e57e5c 100644
--- a/rkward/dialogs/rkloadlibsdialog.cpp
+++ b/rkward/dialogs/rkloadlibsdialog.cpp
@@ -519,8 +519,8 @@ void LoadUnloadWidget::updateInstalledPackages () {
 	installed_view->clear ();
 	loaded_view->clear ();
 
-	RKGlobals::rInterface ()->issueCommand (".rk.get.installed.packages ()", RCommand::App | RCommand::Sync | RCommand::GetStructuredData, QString::null, this, GET_INSTALLED_PACKAGES, parent->chain);
-	RKGlobals::rInterface ()->issueCommand (".packages ()", RCommand::App | RCommand::Sync | RCommand::GetStringVector, QString::null, this, GET_LOADED_PACKAGES, parent->chain);
+	RKGlobals::rInterface ()->issueCommand (".rk.get.installed.packages ()", RCommand::App | RCommand::Sync | RCommand::GetStructuredData, QString (), this, GET_INSTALLED_PACKAGES, parent->chain);
+	RKGlobals::rInterface ()->issueCommand (".packages ()", RCommand::App | RCommand::Sync | RCommand::GetStringVector, QString (), this, GET_LOADED_PACKAGES, parent->chain);
 }
 
 void LoadUnloadWidget::loadButtonClicked () {
diff --git a/rkward/misc/rkcommonfunctions.cpp b/rkward/misc/rkcommonfunctions.cpp
index 83fc955..c7fe116 100644
--- a/rkward/misc/rkcommonfunctions.cpp
+++ b/rkward/misc/rkcommonfunctions.cpp
@@ -102,7 +102,7 @@ namespace RKCommonFunctions {
 	}
 
 	QString getCurrentSymbol (const QString &context_line, int cursor_pos, bool strict) {
-		if (context_line.isEmpty ()) return (QString::null);
+		if (context_line.isEmpty ()) return (QString ());
 
 		int current_word_start;
 		int current_word_end;
diff --git a/rkward/misc/rkdbusapi.cpp b/rkward/misc/rkdbusapi.cpp
index 9367a4a..12aa1b3 100644
--- a/rkward/misc/rkdbusapi.cpp
+++ b/rkward/misc/rkdbusapi.cpp
@@ -17,7 +17,7 @@
 
 #include "rkdbusapi.h"
 
-#include <QtDBus>
+#include <QDBusConnection>
 #include <kwindowsystem.h>
 #include "../windows/rkworkplace.h"
 #include "../rkward.h"
diff --git a/rkward/misc/rkdummypart.cpp b/rkward/misc/rkdummypart.cpp
index 60b96b7..c8a5a9a 100644
--- a/rkward/misc/rkdummypart.cpp
+++ b/rkward/misc/rkdummypart.cpp
@@ -15,10 +15,10 @@
  *                                                                         *
  ***************************************************************************/
 
-#include <kapplication.h>
-
 #include "rkdummypart.h"
 
+#include <kglobal.h>
+
 #include "../debug.h"
 
 RKDummyPart::RKDummyPart (QObject *parent, QWidget *widget) : KParts::Part (parent) {
diff --git a/rkward/misc/xmlhelper.cpp b/rkward/misc/xmlhelper.cpp
index cce8892..def2c27 100644
--- a/rkward/misc/xmlhelper.cpp
+++ b/rkward/misc/xmlhelper.cpp
@@ -66,7 +66,7 @@ QDomElement XMLHelper::openXMLFile (int debug_level, bool with_includes, bool wi
 			// resolve the file to include
 			QDomElement el = *it;
 
-			QString inc_filename = getStringAttribute (el, "file", QString::null, DL_ERROR);
+			QString inc_filename = getStringAttribute (el, "file", QString (), DL_ERROR);
 			QDir base = QFileInfo (filename).absoluteDir ();
 			inc_filename = base.filePath (inc_filename);
 
@@ -95,7 +95,7 @@ void XMLHelper::replaceWithChildren (QDomNode *replaced, const QDomElement &repl
 	RK_ASSERT (replaced);
 
 	QDomNode parent = replaced->parentNode ();
-	XMLChildList replacement_children = getChildElements (replacement_parent, QString::null, DL_WARNING);
+	XMLChildList replacement_children = getChildElements (replacement_parent, QString (), DL_WARNING);
 	for (XMLChildList::const_iterator it = replacement_children.constBegin (); it != replacement_children.constEnd (); ++it) {
 		parent.insertBefore (*it, *replaced);
 	}
@@ -128,13 +128,13 @@ QDomElement XMLHelper::resolveSnippets (QDomElement &from_doc) {
 
 	for (XMLChildList::const_iterator it = refs.constBegin (); it != refs.constEnd (); ++it) {
 		QDomElement ref = *it;
-		QString id = getStringAttribute (ref, "snippet", QString::null, DL_ERROR);
+		QString id = getStringAttribute (ref, "snippet", QString (), DL_ERROR);
 		displayError (&ref, "resolving snippet '" + id + '\'', DL_DEBUG, DL_DEBUG);
 
 		// resolve the reference
 		QDomElement snippet;
 		for (XMLChildList::const_iterator it = snippets.constBegin(); it != snippets.constEnd (); ++it) {
-			if (getStringAttribute (*it, "id", QString::null, DL_ERROR) == id) {
+			if (getStringAttribute (*it, "id", QString (), DL_ERROR) == id) {
 				snippet = *it;
 				break;
 			}
diff --git a/rkward/plugin/rkcheckbox.cpp b/rkward/plugin/rkcheckbox.cpp
index 2cf6dec..899c96c 100644
--- a/rkward/plugin/rkcheckbox.cpp
+++ b/rkward/plugin/rkcheckbox.cpp
@@ -31,7 +31,7 @@ RKCheckBox::RKCheckBox (const QDomElement &element, RKComponent *parent_componen
 	XMLHelper *xml = parent_component->xmlHelper ();
 
 	// create and add property
-	addChild ("state", state = new RKComponentPropertyBool (this, true, xml->getBoolAttribute (element, "checked", false, DL_INFO), xml->getStringAttribute (element, "value", "1", DL_INFO), xml->getStringAttribute (element, "value_unchecked", QString::null, DL_INFO)));
+	addChild ("state", state = new RKComponentPropertyBool (this, true, xml->getBoolAttribute (element, "checked", false, DL_INFO), xml->getStringAttribute (element, "value", "1", DL_INFO), xml->getStringAttribute (element, "value_unchecked", QString (), DL_INFO)));
 	connect (state, SIGNAL (valueChanged(RKComponentPropertyBase*)), this, SLOT (changedState(RKComponentPropertyBase*)));
 
 	// create checkbox
diff --git a/rkward/plugin/rkcomponent.h b/rkward/plugin/rkcomponent.h
index 3496081..7888223 100644
--- a/rkward/plugin/rkcomponent.h
+++ b/rkward/plugin/rkcomponent.h
@@ -93,7 +93,7 @@ public:
 /** Locate the component.subcomponent.property.value described by identifier and return its value as a string. Especially useful as a callback in code templates! Recursively walks subcomponents/properties until the requested value is found. @See RKComponentBase::lookupComponent */
 	QString fetchStringValue (const QString &identifier);
 	static QString fetchStringValue (RKComponentBase* prop, const QString &modifier=QString ());
-/** returns the "value" of this component or property. Properties generally return their value, components typically return the value of their "most important" property. Default implementation returns QString::null, and writes a debug message */
+/** returns the "value" of this component or property. Properties generally return their value, components typically return the value of their "most important" property. Default implementation returns QString (), and writes a debug message */
 	virtual QVariant value (const QString &modifier=QString ());
 	enum ValueTypeHint {
 		TraditionalValue,
diff --git a/rkward/plugin/rkcomponentcontext.cpp b/rkward/plugin/rkcomponentcontext.cpp
index 4a44855..85350cc 100644
--- a/rkward/plugin/rkcomponentcontext.cpp
+++ b/rkward/plugin/rkcomponentcontext.cpp
@@ -96,7 +96,7 @@ void RKContextHandler::invokeComponent (RKComponentHandle *handle) {
 				continue;
 			}
 
-			static_cast<RKComponentPropertyBase *> (client)->connectToGovernor (static_cast<RKComponentPropertyBase *> (it.value ()), QString::null, false);
+			static_cast<RKComponentPropertyBase *> (client)->connectToGovernor (static_cast<RKComponentPropertyBase *> (it.value ()), QString (), false);
 		}
 	}
 }
diff --git a/rkward/plugin/rkcomponentmap.cpp b/rkward/plugin/rkcomponentmap.cpp
index f4bcc2c..ea2b1fd 100644
--- a/rkward/plugin/rkcomponentmap.cpp
+++ b/rkward/plugin/rkcomponentmap.cpp
@@ -576,7 +576,7 @@ RKPluginMapParseResult RKComponentMap::addPluginMap (const QString& plugin_map_f
 		return ret;
 	}
 
-	QString prefix = QFileInfo (plugin_map_file_abs).absolutePath() + '/' + xml.getStringAttribute (document_element, "base_prefix", QString::null, DL_INFO);
+	QString prefix = QFileInfo (plugin_map_file_abs).absolutePath() + '/' + xml.getStringAttribute (document_element, "base_prefix", QString (), DL_INFO);
 	QString cnamespace = xml.getStringAttribute (document_element, "namespace", "rkward", DL_INFO) + "::";
 
 	RKPluginMapFile* pluginmap_file_desc = new RKPluginMapFile (QFileInfo (plugin_map_file).absoluteFilePath (), prefix, xml.messageCatalog ());
@@ -637,7 +637,7 @@ RKPluginMapParseResult RKComponentMap::addPluginMap (const QString& plugin_map_f
 	QSet<QString> depfailed_local_components;
 
 	for (XMLChildList::const_iterator it=list.begin (); it != list.end (); ++it) {
-		QString id = cnamespace + xml.getStringAttribute((*it), "id", QString::null, DL_WARNING);
+		QString id = cnamespace + xml.getStringAttribute((*it), "id", QString (), DL_WARNING);
 
 		// check dependencies, first
 		QDomElement cdependencies = xml.getChildElement (*it, "dependencies", DL_INFO);
@@ -685,7 +685,7 @@ RKPluginMapParseResult RKComponentMap::addPluginMap (const QString& plugin_map_f
 	// step 4: create and register contexts
 	list = xml.getChildElements (document_element, "context", DL_INFO);
 	for (XMLChildList::const_iterator it=list.constBegin (); it != list.constEnd (); ++it) {
-		QString id = xml.getStringAttribute (*it, "id", QString::null, DL_ERROR);
+		QString id = xml.getStringAttribute (*it, "id", QString (), DL_ERROR);
 
 		RKComponentGUIXML *context = contexts.value (id);
 		if (!context) {
diff --git a/rkward/plugin/rkcomponentproperties.cpp b/rkward/plugin/rkcomponentproperties.cpp
index d779488..c7211e5 100644
--- a/rkward/plugin/rkcomponentproperties.cpp
+++ b/rkward/plugin/rkcomponentproperties.cpp
@@ -339,7 +339,7 @@ RKComponentBase* RKComponentPropertyBool::lookupComponent (const QString &identi
 		negated->setInverted (true);
 		negated->setInternal (true);
 		negated->connectToGovernor (this);
-		*remainder = QString::null;		// reset
+		*remainder = QString ();		// reset
 		addChild ("not", negated);		// so subsequent lookups will not recreate the negated property
 		return (negated->lookupComponent (identifier.section ('.', 1), remainder));
 	}
diff --git a/rkward/plugin/rkcomponentproperties.h b/rkward/plugin/rkcomponentproperties.h
index d0d49a5..49fc293 100644
--- a/rkward/plugin/rkcomponentproperties.h
+++ b/rkward/plugin/rkcomponentproperties.h
@@ -15,8 +15,8 @@
  *                                                                         *
  ***************************************************************************/
 
-#ifndef RKCOMPONETPROPERTIES_H
-#define RKCOMPONETPROPERTIES_H
+#ifndef RKCOMPONENTPROPERTIES_H
+#define RKCOMPONENTPROPERTIES_H
 
 #include <qobject.h>
 
@@ -54,7 +54,7 @@ public:
 /** connect this property to a governor property (given as argument). If reconcile_requirements, the requirements of both properties are reconciled to the least common denominator. The dependent property will be notified on all changes made in the governing property, so it can update its value. 
 Generally with few exceptions, you can only connect to properties that are either of the same class as this property, or of an extended class. Maybe in the future we will add some sophisticated converters allowing to connect vastly different types of properties in a meaningful way.
 If you specify a modifier, only the sub-value indicated by the modifier will be retrieved from the governing property on governorValueChanged. In this case reconcile_requirements is ignored. */
-	virtual void connectToGovernor (RKComponentPropertyBase *governor, const QString &modifier=QString::null, bool reconcile_requirements=true);
+	virtual void connectToGovernor (RKComponentPropertyBase *governor, const QString &modifier=QString (), bool reconcile_requirements=true);
 signals:
 /** property has changed its value. Any connected RKComponentPropertys/RKComponents should update their state
 @param property A pointer to the changed property for easy reference */
@@ -84,7 +84,7 @@ public:
 /** @returns true, if the property holds the maximum number of items (or more) */
 	bool atMaxLength () const { return (max_num_items && (max_num_items <= listLength ())); };
 /** reimplemented from RKComponentPropertyBase to actually reconcile requirements with other list properties */
-	void connectToGovernor (RKComponentPropertyBase *governor, const QString &modifier=QString::null, bool reconcile_requirements=true);
+	void connectToGovernor (RKComponentPropertyBase *governor, const QString &modifier=QString (), bool reconcile_requirements=true);
 /** If set to true, duplicate values are dropped, silently */
 	void setStripDuplicates (bool strip) { strip_duplicates = strip; };
 	virtual void removeAt (int index) = 0;
@@ -206,7 +206,7 @@ public:
 /** reimplemented from RKComponentPropertyBase to test whether conversion to int value is possible according to current settings (is a number, and within limits min and max) */
 	bool isStringValid (const QString &string);
 /** reimplemented from RKComponentPropertyBase to actually reconcile requirements with other numeric slots */
-	void connectToGovernor (RKComponentPropertyBase *governor, const QString &modifier=QString::null, bool reconcile_requirements=true);
+	void connectToGovernor (RKComponentPropertyBase *governor, const QString &modifier=QString (), bool reconcile_requirements=true);
 /** reimplemented from RKComponentPropertyBase to use special handling for int and double properties (ints are copied directly, doubles are rounded) */
 	void governorValueChanged (RKComponentPropertyBase *property);
 /** RTTI */
@@ -255,7 +255,7 @@ public:
 /** reimplemented from RKComponentPropertyBase to test whether conversion to int value is possible according to current settings (is a number, and within limits min and max) */
 	bool isStringValid (const QString &string);
 /** reimplemented from RKComponentPropertyBase to actually reconcile requirements with other numeric slots */
-	void connectToGovernor (RKComponentPropertyBase *governor, const QString &modifier=QString::null, bool reconcile_requirements=true);
+	void connectToGovernor (RKComponentPropertyBase *governor, const QString &modifier=QString (), bool reconcile_requirements=true);
 /** reimplemented from RKComponentPropertyBase to use special handling for int and double properties (ints and doubles are copied directly) */
 	void governorValueChanged (RKComponentPropertyBase *property);
 /** RTTI */
@@ -315,7 +315,7 @@ public:
 /** Get current list of objects. Do not modify this list! It is the very same list, the property uses internally!
 @returns an empty list if no valid object is selected */
 	RObject::ObjectList objectList ();
-/** reimplemented from RKComponentPropertyBase. Modifier "label" returns label(s). Modifier "shortname" returns short name(s). Modifier QString::null returns full name. If no object is set, returns an empty string / variant */
+/** reimplemented from RKComponentPropertyBase. Modifier "label" returns label(s). Modifier "shortname" returns short name(s). Modifier QString () returns full name. If no object is set, returns an empty string / variant */
 	QVariant value (const QString &modifier=QString ());
 /** reimplemented from RKComponentPropertyBase to convert to RObject with current constraints
 @returns false if no such object(s) could be found or the object(s) are invalid */
@@ -328,7 +328,7 @@ public:
 /** RTTI */
 	int type () { return PropertyRObjects; };
 /** reimplemented from RKComponentPropertyBase to actually reconcile requirements with other object properties */
-	void connectToGovernor (RKComponentPropertyBase *governor, const QString &modifier=QString::null, bool reconcile_requirements=true);
+	void connectToGovernor (RKComponentPropertyBase *governor, const QString &modifier=QString (), bool reconcile_requirements=true);
 /** reimplemented from RKComponentPropertyBase to use special handling for object properties */
 	void governorValueChanged (RKComponentPropertyBase *property);
 	void removeAt (int index);
@@ -382,7 +382,7 @@ public:
 	QVariant value (const QString &modifier=QString ());
 
 /** set the preprocess code.
- at param code The code to set. If this is QString::null, the property is seen to lack preprocess code and hence is not valid (see isValid ()). In contrast, empty strings are seen as valid */
+ at param code The code to set. If this is QString (), the property is seen to lack preprocess code and hence is not valid (see isValid ()). In contrast, empty strings are seen as valid */
 	void setPreprocess (const QString &code) { preprocess_code = code; emit (valueChanged (this)); };
 /** see setPreprocess () */
 	void setCalculate (const QString &code) { calculate_code = code; emit (valueChanged (this)); };
@@ -440,7 +440,7 @@ public:
 /** string represenation of the options in ConvertMode. For use in XMLHelper::getMultiChoiceAttribute */
 	static QString convertModeOptionString () { return ("equals;notequals;range;and;or"); };
 /** reimplemented to do raise a warning, and do nothing else. */
-	void connectToGovernor (RKComponentPropertyBase *governor, const QString &modifier=QString::null, bool reconcile_requirements=true);
+	void connectToGovernor (RKComponentPropertyBase *governor, const QString &modifier=QString (), bool reconcile_requirements=true);
 /** reimplemented to do raise a warning, and do nothing else. */
 	bool setValue (const QString &value);
 public slots:
@@ -474,7 +474,7 @@ public:
 /** set the sources, i.e. the properties to operate on */
 	void setSources (const QString &condition_prop, const QStringList &value_props);
 /** reimplemented to do raise a warning, and do nothing else. */
-	void connectToGovernor (RKComponentPropertyBase *governor, const QString &modifier=QString::null, bool reconcile_requirements=true);
+	void connectToGovernor (RKComponentPropertyBase *governor, const QString &modifier=QString (), bool reconcile_requirements=true);
 /** reimplemented to do raise a warning, and do nothing else. */
 	bool setValue (const QString &value);
 
diff --git a/rkward/plugin/rkformula.cpp b/rkward/plugin/rkformula.cpp
index 5e43bce..36d29fb 100644
--- a/rkward/plugin/rkformula.cpp
+++ b/rkward/plugin/rkformula.cpp
@@ -90,11 +90,11 @@ RKFormula::RKFormula (const QDomElement &element, RKComponent *parent_component,
 	
 	QVBoxLayout *model_vbox = new QVBoxLayout ();
 	model_hbox->addLayout (model_vbox);
-	add_button = new QPushButton (QString::null, custom_model_widget);
+	add_button = new QPushButton (QString (), custom_model_widget);
 	add_button->setIcon (RKStandardIcons::getIcon (RKStandardIcons::ActionAddRight));
 	connect (add_button, SIGNAL (clicked()), this, SLOT (addButtonClicked()));
 	model_vbox->addWidget (add_button);
-	remove_button = new QPushButton (QString::null, custom_model_widget);
+	remove_button = new QPushButton (QString (), custom_model_widget);
 	remove_button->setIcon (RKStandardIcons::getIcon (RKStandardIcons::ActionRemoveLeft));
 	connect (remove_button, SIGNAL (clicked()), this, SLOT (removeButtonClicked()));
 	model_vbox->addWidget (remove_button);
diff --git a/rkward/plugin/rkinput.cpp b/rkward/plugin/rkinput.cpp
index 03e8334..70c89d0 100644
--- a/rkward/plugin/rkinput.cpp
+++ b/rkward/plugin/rkinput.cpp
@@ -73,7 +73,7 @@ RKInput::RKInput (const QDomElement &element, RKComponent *parent_component, QWi
 
 	// initialize
 	updating = false;
-	// DO NOT replace "" with QString::null, here! it is important, that this is actually an empty string, not a null string.
+	// DO NOT replace "" with QString (), here! it is important, that this is actually an empty string, not a null string.
 	text->setValue (xml->getStringAttribute (element, "initial", "", DL_INFO));
 }
 
diff --git a/rkward/plugin/rkpreviewbox.cpp b/rkward/plugin/rkpreviewbox.cpp
index 143848b..1b83056 100644
--- a/rkward/plugin/rkpreviewbox.cpp
+++ b/rkward/plugin/rkpreviewbox.cpp
@@ -58,7 +58,7 @@ RKPreviewBox::RKPreviewBox (const QDomElement &element, RKComponent *parent_comp
 	connect (toggle_preview_box, SIGNAL (stateChanged(int)), this, SLOT (changedState(int)));
 
 	// status lable
-	status_label = new QLabel (QString::null, this);
+	status_label = new QLabel (QString (), this);
 	vbox->addWidget (status_label);
 
 	// find and connect to code property of the parent
diff --git a/rkward/plugin/rkstandardcomponent.cpp b/rkward/plugin/rkstandardcomponent.cpp
index 91e9afc..240db37 100644
--- a/rkward/plugin/rkstandardcomponent.cpp
+++ b/rkward/plugin/rkstandardcomponent.cpp
@@ -107,10 +107,10 @@ RKStandardComponent::RKStandardComponent (RKComponent *parent_component, QWidget
 		backend = new QtScriptBackend (dummy, xml->messageCatalog ());
 	} else {
 		SimpleBackend *back = new SimpleBackend ();
-		back->setPreprocessTemplate (xml->getStringAttribute (element, "preprocess", QString::null, DL_INFO));
-		back->setPrintoutTemplate (xml->getStringAttribute (element, "printout", QString::null, DL_INFO));
-		back->setCalculateTemplate (xml->getStringAttribute (element, "calculate", QString::null, DL_INFO));
-		back->setPreviewTemplate (xml->getStringAttribute (element, "preview", QString::null, DL_INFO));
+		back->setPreprocessTemplate (xml->getStringAttribute (element, "preprocess", QString (), DL_INFO));
+		back->setPrintoutTemplate (xml->getStringAttribute (element, "printout", QString (), DL_INFO));
+		back->setCalculateTemplate (xml->getStringAttribute (element, "calculate", QString (), DL_INFO));
+		back->setPreviewTemplate (xml->getStringAttribute (element, "preview", QString (), DL_INFO));
 		backend = back;
 	}
 	connect (backend, SIGNAL (idle()), this, SLOT (backendIdle()));
@@ -564,13 +564,13 @@ QDomElement RKComponentBuilder::doElementCopy (const QString id, XMLHelper &xml,
 void RKComponentBuilder::buildElement (const QDomElement &element, XMLHelper &xml, QWidget *parent_widget, bool allow_pages) {
 	RK_TRACE (PLUGIN);
 
-	XMLChildList children = xml.getChildElements (element, QString::null, DL_ERROR);
+	XMLChildList children = xml.getChildElements (element, QString (), DL_ERROR);
 	
 	XMLChildList::const_iterator it;
 	for (it = children.constBegin (); it != children.constEnd (); ++it) {
 		RKComponent *widget = 0;
 		QDomElement e = *it;		// shorthand
-		QString id = xml.getStringAttribute (e, "id", QString::null, DL_INFO);
+		QString id = xml.getStringAttribute (e, "id", QString (), DL_INFO);
 
 		if (e.tagName () == QLatin1String ("copy")) {
 			e = doElementCopy (id, xml, e);
@@ -614,7 +614,7 @@ void RKComponentBuilder::buildElement (const QDomElement &element, XMLHelper &xm
 				if (tab_e.tagName () == QLatin1String ("tab")) {
 					RKTabPage *tabpage = new RKTabPage (tab_e, component (), tabbook);
 					buildElement (tab_e, xml, tabpage->getPage (), false);
-					QString tab_id = xml.getStringAttribute (tab_e, "id", QString::null, DL_INFO);
+					QString tab_id = xml.getStringAttribute (tab_e, "id", QString (), DL_INFO);
 					if (!tab_id.isNull ()) {
 						parent->addChild (tab_id, tabpage);
 					}
@@ -654,7 +654,7 @@ void RKComponentBuilder::buildElement (const QDomElement &element, XMLHelper &xm
 		} else if (e.tagName () == QLatin1String ("saveobject")) {
 			widget = new RKPluginSaveObject (e, component (), parent_widget);
 		} else if (e.tagName () == QLatin1String ("embed")) {
-			QString component_id = xml.getStringAttribute (e, "component", QString::null, DL_ERROR);
+			QString component_id = xml.getStringAttribute (e, "component", QString (), DL_ERROR);
 			RKComponentHandle *handle = RKComponentMap::getComponentHandle (component_id);
 			if (handle) {
 				if (xml.getBoolAttribute (e, "as_button", false, DL_INFO)) {
@@ -702,7 +702,7 @@ void RKComponentBuilder::parseLogic (const QDomElement &element, XMLHelper &xml,
 
 	QMap<RKComponentPropertyBase*, QStringList> switch_convert_sources;
 
-	const XMLChildList children = xml.getChildElements (element, QString::null, DL_ERROR);
+	const XMLChildList children = xml.getChildElements (element, QString (), DL_ERROR);
 	for (int i = 0; i < children.size (); ++i) {
 		const QDomElement &cel = children[i];
 		const QString tagName = cel.tagName ();
diff --git a/rkward/plugin/rkstandardcomponentgui.cpp b/rkward/plugin/rkstandardcomponentgui.cpp
index b4a45b9..d4753bb 100644
--- a/rkward/plugin/rkstandardcomponentgui.cpp
+++ b/rkward/plugin/rkstandardcomponentgui.cpp
@@ -312,10 +312,10 @@ void RKStandardComponentWizard::createWizard (bool switchable) {
 	if (enslaved) cancel_button->hide ();
 	help_button = new QPushButton (i18n ("Help"), this);
 	main_grid->addWidget (help_button, 2, 1, Qt::AlignLeft);
-	prev_button = new QPushButton (QString::null, this);
+	prev_button = new QPushButton (QString (), this);
 	prev_button->setEnabled (false);
 	main_grid->addWidget (prev_button, 2, 2, Qt::AlignRight);
-	next_button = new QPushButton (QString::null, this);
+	next_button = new QPushButton (QString (), this);
 	main_grid->addWidget (next_button, 2, 3, Qt::AlignRight);
 	connect (next_button, SIGNAL (clicked()), this, SLOT (next()));
 	connect (prev_button, SIGNAL (clicked()), this, SLOT (prev()));
diff --git a/rkward/plugin/rkvarslot.cpp b/rkward/plugin/rkvarslot.cpp
index c72345b..d01db1c 100644
--- a/rkward/plugin/rkvarslot.cpp
+++ b/rkward/plugin/rkvarslot.cpp
@@ -48,7 +48,7 @@ RKVarSlot::RKVarSlot (const QDomElement &element, RKComponent *parent_component,
 		g_layout->addWidget (label, 0, 2);
 	}
 
-	select = new QPushButton (QString::null, this);
+	select = new QPushButton (QString (), this);
 	setSelectButton (false);
 	connect (select, SIGNAL (clicked()), this, SLOT (selectPressed()));
 	g_layout->addWidget (select, 1, 0);
@@ -101,7 +101,7 @@ RKVarSlot::RKVarSlot (const QDomElement &element, RKComponent *parent_component,
 	if (mode == Varslot) {
 		// initialize filters
 		static_cast<RKComponentPropertyRObjects*> (available)->setClassFilter (xml->getStringAttribute (element, "classes", QString (), DL_INFO).split (' ', QString::SkipEmptyParts));
-		static_cast<RKComponentPropertyRObjects*> (available)->setTypeFilter (xml->getStringAttribute (element, "types", QString::null, DL_INFO).split (' ', QString::SkipEmptyParts));
+		static_cast<RKComponentPropertyRObjects*> (available)->setTypeFilter (xml->getStringAttribute (element, "types", QString (), DL_INFO).split (' ', QString::SkipEmptyParts));
 		static_cast<RKComponentPropertyRObjects*> (available)->setDimensionFilter (xml->getIntAttribute (element, "num_dimensions", 0, DL_INFO), xml->getIntAttribute (element, "min_length", 0, DL_INFO), xml->getIntAttribute (element, "max_length", INT_MAX, DL_INFO));
 	}
 	available->setStripDuplicates (!xml->getBoolAttribute (element, "allow_duplicates", false, DL_INFO));
diff --git a/rkward/rbackend/rcommand.h b/rkward/rbackend/rcommand.h
index 0b20c20..5f61a4c 100644
--- a/rkward/rbackend/rcommand.h
+++ b/rkward/rbackend/rcommand.h
@@ -113,7 +113,7 @@ public:
 @param receiver The RCommandReceiver this command should be passed on to, when finished. @Note: consider connecting to the notifier(), instead!
 @param flags A freely assignable integer, that you can use to identify what the command was all about. Only the RCommandReceiver handling the results will have to know what exactly the flags mean.
 */
-	explicit RCommand (const QString &command, int type, const QString &rk_equiv = QString::null, RCommandReceiver *receiver=0, int flags=0);
+	explicit RCommand (const QString &command, int type, const QString &rk_equiv = QString (), RCommandReceiver *receiver=0, int flags=0);
 /** destructor. Note: you should not delete RCommands manually. This is done in RInterface. TODO: make protected */
 	~RCommand();
 /** @returns the type as specified in RCommand::RCommand */
diff --git a/rkward/rbackend/rinterface.cpp b/rkward/rbackend/rinterface.cpp
index c181886..c26f16a 100644
--- a/rkward/rbackend/rinterface.cpp
+++ b/rkward/rbackend/rinterface.cpp
@@ -748,9 +748,9 @@ void RInterface::processHistoricalSubstackRequest (const QStringList &calllist)
 			QString lib_name = calllist[1];
 			KMessageBox::information (0, i18n ("The R-backend has indicated that in order to carry out the current task it needs the package '%1', which is not currently installed. We will open the package-management tool, and there you can try to locate and install the needed package.", lib_name), i18n ("Require package '%1'", lib_name));
 			RKLoadLibsDialog::showInstallPackagesModal (0, in_chain, lib_name);
-			issueCommand (".rk.set.reply (\"\")", RCommand::App | RCommand::Sync, QString::null, 0, 0, in_chain);
+			issueCommand (".rk.set.reply (\"\")", RCommand::App | RCommand::Sync, QString (), 0, 0, in_chain);
 		} else {
-			issueCommand (".rk.set.reply (\"Too few arguments in call to require.\")", RCommand::App | RCommand::Sync, QString::null, 0, 0, in_chain);
+			issueCommand (".rk.set.reply (\"Too few arguments in call to require.\")", RCommand::App | RCommand::Sync, QString (), 0, 0, in_chain);
 		}
 	} else if (call == "doPlugin") {
 		if (calllist.count () >= 3) {
@@ -764,13 +764,13 @@ void RInterface::processHistoricalSubstackRequest (const QStringList &calllist)
 			if (!message.isEmpty ()) {
 				QString type = "warning";
 				if (!ok) type = "error";
-				issueCommand (".rk.set.reply (list (type=\"" + type + "\", message=\"" + RKCommonFunctions::escape (message) + "\"))", RCommand::App | RCommand::Sync, QString::null, 0, 0, in_chain);
+				issueCommand (".rk.set.reply (list (type=\"" + type + "\", message=\"" + RKCommonFunctions::escape (message) + "\"))", RCommand::App | RCommand::Sync, QString (), 0, 0, in_chain);
 			}
 		} else {
 			RK_ASSERT (false);
 		}
 	} else {
-		issueCommand ("stop (\"Unrecognized call '" + call + "'. Ignoring\")", RCommand::App | RCommand::Sync, QString::null, 0, 0, in_chain);
+		issueCommand ("stop (\"Unrecognized call '" + call + "'. Ignoring\")", RCommand::App | RCommand::Sync, QString (), 0, 0, in_chain);
 	}
 	
 	closeChain (in_chain);
diff --git a/rkward/rbackend/rinterface.h b/rkward/rbackend/rinterface.h
index 84a1845..9291ed8 100644
--- a/rkward/rbackend/rinterface.h
+++ b/rkward/rbackend/rinterface.h
@@ -52,7 +52,7 @@ public:
 /** issues the given command in the given chain */
 	void issueCommand (RCommand *command, RCommandChain *chain=0);
 /** convenience function to create a new command and issue it. See documentation on RCommand::RCommand () and RInterface::issueCommand () */
-	void issueCommand (const QString &command, int type = 0, const QString &rk_equiv = QString::null, RCommandReceiver *receiver=0, int flags=0, RCommandChain *chain=0);
+	void issueCommand (const QString &command, int type = 0, const QString &rk_equiv = QString (), RCommandReceiver *receiver=0, int flags=0, RCommandChain *chain=0);
 
 /** opens a new command chain. Returns a pointer to the new chain. If you specify a parent, the new chain will be a sub-chain of that chain. */
 	RCommandChain *startChain (RCommandChain *parent=0);
@@ -198,7 +198,7 @@ private:
 
 
 void MyReceiver::someFunction () {
-	RKGlobals::rInterface ()->issueCommand ("print (1+1)", RCommand::App, QString::null, this);
+	RKGlobals::rInterface ()->issueCommand ("print (1+1)", RCommand::App, QString (), this);
 }
 
 void MyReceiver::rCommandDone (RCommand *command) {
@@ -230,7 +230,7 @@ To illustrate the option of using "FLAGS", here is a reduced example of how RKVa
 
 void RKVariable::updateFromR () {
 	//...
-	RCommand *command = new RCommand ("length (" + getFullName () + ")", RCommand::App | RCommand::Sync | RCommand::GetIntVector, QString::null, this, UPDATE_DIM_COMMAND);
+	RCommand *command = new RCommand ("length (" + getFullName () + ")", RCommand::App | RCommand::Sync | RCommand::GetIntVector, QString (), this, UPDATE_DIM_COMMAND);
 	RKGlobals::rInterface ()->issueCommand (command, RKGlobals::rObjectList()->getUpdateCommandChain ());
 }
 
@@ -238,7 +238,7 @@ void RKVariable::rCommandDone (RCommand *command) {
 	//...
 	if (command->getFlags () == UPDATE_DIM_COMMAND) {
 		// ...
-		RCommand *ncommand = new RCommand ("class (" + getFullName () + ")", RCommand::App | RCommand::Sync | RCommand::GetStringVector, QString::null, this, UPDATE_CLASS_COMMAND);
+		RCommand *ncommand = new RCommand ("class (" + getFullName () + ")", RCommand::App | RCommand::Sync | RCommand::GetStringVector, QString (), this, UPDATE_CLASS_COMMAND);
 		RKGlobals::rInterface ()->issueCommand (ncommand, RKGlobals::rObjectList()->getUpdateCommandChain ());
 	} else if (command->getFlags () == UPDATE_CLASS_COMMAND) {
 		//...
@@ -363,7 +363,7 @@ This is typically used in plugins: When you specify this modifier, the plain tex
 These are special modifiers helpful when transferring data from R to RKWard (used primarily in the editor classes and in conjunction with RCommand::Sync): They tell the backend to try to fetch the result as an array of int, char*, or double, respectively. For instance, if you know object "myobject" is an integer vector, you may get the data using
 
 \code
-RKGlobals::rInterface ()->issueCommand ("myobject", RCommand::Sync | RCommand::GetIntVector, QString::null, this);
+RKGlobals::rInterface ()->issueCommand ("myobject", RCommand::Sync | RCommand::GetIntVector, QString (), this);
 \endcode
 
 Assuming the data can in fact be converted to a vector of integers, you can then access the data using these members in RCommand:
diff --git a/rkward/rbackend/rkrbackend.h b/rkward/rbackend/rkrbackend.h
index 9cab5fa..c8bf2b1 100644
--- a/rkward/rbackend/rkrbackend.h
+++ b/rkward/rbackend/rkrbackend.h
@@ -15,8 +15,8 @@
  *                                                                         *
  ***************************************************************************/
 
-#ifndef R_EMBED_H
-#define R_EMBED_H
+#ifndef RKRBACKEND_H
+#define RKRBACKEND_H
 
 #include <stddef.h>
 
diff --git a/rkward/rkward.cpp b/rkward/rkward.cpp
index 8863b65..a4dc83b 100644
--- a/rkward/rkward.cpp
+++ b/rkward/rkward.cpp
@@ -812,7 +812,7 @@ void RKWardMainWindow::addWorkspaceUrl (const KUrl &url) {
 	RK_TRACE (APP);
 
 	if (!url.isEmpty ()) fileOpenRecentWorkspace->addUrl (url);
-	setCaption (QString::null);	// trigger update of caption
+	setCaption (QString ());	// trigger update of caption
 }
 
 void RKWardMainWindow::updateCWD () {
diff --git a/rkward/rkward.h b/rkward/rkward.h
index 5ba9701..828ada7 100644
--- a/rkward/rkward.h
+++ b/rkward/rkward.h
@@ -101,8 +101,8 @@ public slots:
 	void slotCancelAllCommands ();
 	void configureCarbonCopy ();
 	void slotSetStatusBarText (const QString &text);
-/** Basically a shortcut to slotSetStatusBarText (QString::null). Needed as a slot without parameters. */
-	void slotSetStatusReady () { slotSetStatusBarText (QString::null); };
+/** Basically a shortcut to slotSetStatusBarText (QString ()). Needed as a slot without parameters. */
+	void slotSetStatusReady () { slotSetStatusBarText (QString ()); };
 
 /** configures RKward-settings */
 	void slotConfigure ();
diff --git a/rkward/scriptbackends/scriptbackend.cpp b/rkward/scriptbackends/scriptbackend.cpp
index 59ed76a..0d81d87 100644
--- a/rkward/scriptbackends/scriptbackend.cpp
+++ b/rkward/scriptbackends/scriptbackend.cpp
@@ -46,13 +46,13 @@ void ScriptBackend::callFunction (const QString &function, int flags, int type)
 
 	if (code_property) {
 		if (type == Preprocess) {
-			code_property->setPreprocess (QString::null);
+			code_property->setPreprocess (QString ());
 		} else if (type == Calculate) {
-			code_property->setCalculate (QString::null);
+			code_property->setCalculate (QString ());
 		} else if (type == Printout) {
-			code_property->setPrintout (QString::null);
+			code_property->setPrintout (QString ());
 		} else if (type == Preview) {
-			code_property->setPreview (QString::null);
+			code_property->setPreview (QString ());
 		}
 		invalidateCalls (type);
 	}
diff --git a/rkward/scriptbackends/simplebackend.cpp b/rkward/scriptbackends/simplebackend.cpp
index 823d74a..690f1df 100644
--- a/rkward/scriptbackends/simplebackend.cpp
+++ b/rkward/scriptbackends/simplebackend.cpp
@@ -46,25 +46,25 @@ void SimpleBackend::destroy () {
 void SimpleBackend::preprocess (int flags) {
 	RK_TRACE (PHP);
 
-	callFunction (QString::null, flags, Preprocess);
+	callFunction (QString (), flags, Preprocess);
 }
 
 void SimpleBackend::calculate (int flags) {
 	RK_TRACE (PHP);
 
-	callFunction (QString::null, flags, Calculate);
+	callFunction (QString (), flags, Calculate);
 }
 
 void SimpleBackend::printout (int flags) {
 	RK_TRACE (PHP);
 
-	callFunction (QString::null, flags, Printout);
+	callFunction (QString (), flags, Printout);
 }
 
 void SimpleBackend::preview (int flags) {
 	RK_TRACE (PHP);
 
-	callFunction (QString::null, flags, Preview);
+	callFunction (QString (), flags, Preview);
 }
 
 void SimpleBackend::writeData (const QVariant &data) {
diff --git a/rkward/settings/rksettingsmodulegeneral.cpp b/rkward/settings/rksettingsmodulegeneral.cpp
index ef84a5d..084ce92 100644
--- a/rkward/settings/rksettingsmodulegeneral.cpp
+++ b/rkward/settings/rksettingsmodulegeneral.cpp
@@ -65,7 +65,7 @@ RKSettingsModuleGeneral::RKSettingsModuleGeneral (RKSettings *gui, QWidget *pare
 
 	main_vbox->addSpacing (2*RKGlobals::spacingHint ());
 
-	files_choser = new GetFileNameWidget (this, GetFileNameWidget::ExistingDirectory, true, i18n ("Directory where rkward may store files (*)"), QString::null, new_files_path);
+	files_choser = new GetFileNameWidget (this, GetFileNameWidget::ExistingDirectory, true, i18n ("Directory where rkward may store files (*)"), QString (), new_files_path);
 	connect (files_choser, SIGNAL (locationChanged()), this, SLOT (settingChanged()));
 	main_vbox->addWidget (files_choser);
 
diff --git a/rkward/settings/rksettingsmodulegraphics.cpp b/rkward/settings/rksettingsmodulegraphics.cpp
index a410d50..f804dfb 100644
--- a/rkward/settings/rksettingsmodulegraphics.cpp
+++ b/rkward/settings/rksettingsmodulegraphics.cpp
@@ -191,7 +191,7 @@ void RKSettingsModuleGraphics::applyChanges () {
 
 	QStringList commands = makeRRunTimeOptionCommands ();
 	for (QStringList::const_iterator it = commands.begin (); it != commands.end (); ++it) {
-		RKGlobals::rInterface ()->issueCommand (*it, RCommand::App, QString::null, 0, 0, commandChain ());
+		RKGlobals::rInterface ()->issueCommand (*it, RCommand::App, QString (), 0, 0, commandChain ());
 	}
 }
 
diff --git a/rkward/settings/rksettingsmoduleobjectbrowser.cpp b/rkward/settings/rksettingsmoduleobjectbrowser.cpp
index 2394014..63791ac 100644
--- a/rkward/settings/rksettingsmoduleobjectbrowser.cpp
+++ b/rkward/settings/rksettingsmoduleobjectbrowser.cpp
@@ -100,7 +100,7 @@ bool RKSettingsModuleObjectBrowser::isPackageBlacklisted (const QString &package
 
 void RKSettingsModuleObjectBrowser::addBlackList (QStringList *string_list) {
 	RK_TRACE (SETTINGS);
-	QString new_string = KInputDialog::getText (i18n ("Add exclusion"), i18n ("Add the name of the package that no structure should be fetched for"), QString::null, 0, this);
+	QString new_string = KInputDialog::getText (i18n ("Add exclusion"), i18n ("Add the name of the package that no structure should be fetched for"), QString (), 0, this);
 	(*string_list).append (new_string);
 }
 
diff --git a/rkward/settings/rksettingsmoduleoutput.cpp b/rkward/settings/rksettingsmoduleoutput.cpp
index 45ed30c..5a23fc2 100644
--- a/rkward/settings/rksettingsmoduleoutput.cpp
+++ b/rkward/settings/rksettingsmoduleoutput.cpp
@@ -233,7 +233,7 @@ void RKSettingsModuleOutput::applyChanges () {
 
 	QStringList commands = makeRRunTimeOptionCommands ();
 	for (QStringList::const_iterator it = commands.begin (); it != commands.end (); ++it) {
-		RKGlobals::rInterface ()->issueCommand (*it, RCommand::App, QString::null, 0, 0, commandChain ());
+		RKGlobals::rInterface ()->issueCommand (*it, RCommand::App, QString (), 0, 0, commandChain ());
 	}
 
 	cc_settings->applyChanges ();
diff --git a/rkward/settings/rksettingsmoduler.cpp b/rkward/settings/rksettingsmoduler.cpp
index 401f3f4..f9eddee 100644
--- a/rkward/settings/rksettingsmoduler.cpp
+++ b/rkward/settings/rksettingsmoduler.cpp
@@ -240,7 +240,7 @@ void RKSettingsModuleR::applyChanges () {
 // apply run time options in R
 	QStringList commands = makeRRunTimeOptionCommands ();
 	for (QStringList::const_iterator it = commands.begin (); it != commands.end (); ++it) {
-		RKGlobals::rInterface ()->issueCommand (*it, RCommand::App, QString::null, 0, 0, commandChain ());
+		RKGlobals::rInterface ()->issueCommand (*it, RCommand::App, QString (), 0, 0, commandChain ());
 	}
 }
 
@@ -438,7 +438,7 @@ void RKSettingsModuleRPackages::addLibLoc (QStringList *string_list) {
 
 void RKSettingsModuleRPackages::addRepository (QStringList *string_list) {
 	RK_TRACE (SETTINGS);
-	QString new_string = KInputDialog::getText (i18n ("Add repository"), i18n ("Add URL of new repository"), QString::null, 0, this);
+	QString new_string = KInputDialog::getText (i18n ("Add repository"), i18n ("Add URL of new repository"), QString (), 0, this);
 	(*string_list).append (new_string);
 }
 
@@ -546,7 +546,7 @@ void RKSettingsModuleRPackages::applyChanges () {
 // apply options in R
 	QStringList commands = makeRRunTimeOptionCommands ();
 	for (QStringList::const_iterator it = commands.begin (); it != commands.end (); ++it) {
-		RKGlobals::rInterface ()->issueCommand (*it, RCommand::App, QString::null, 0, 0, commandChain ());
+		RKGlobals::rInterface ()->issueCommand (*it, RCommand::App, QString (), 0, 0, commandChain ());
 	}
 }
 
diff --git a/rkward/windows/rkhelpsearchwindow.cpp b/rkward/windows/rkhelpsearchwindow.cpp
index 3038bb1..8032330 100644
--- a/rkward/windows/rkhelpsearchwindow.cpp
+++ b/rkward/windows/rkhelpsearchwindow.cpp
@@ -201,7 +201,7 @@ void RKHelpSearchWindow::slotFindButtonClicked () {
 
 	QString s = ".rk.get.search.results (" + RObject::rQuote (field->currentText ()) + ", agrep=" + agrep + ", ignore.case=" + ignoreCase + package + ", fields=" + fields + ')';
 	
-	RKGlobals::rInterface ()->issueCommand (s, RCommand::App | RCommand::Sync | RCommand::GetStringVector, QString::null, this, HELP_SEARCH, 0);
+	RKGlobals::rInterface ()->issueCommand (s, RCommand::App | RCommand::Sync | RCommand::GetStringVector, QString (), this, HELP_SEARCH, 0);
 	setEnabled (false);
 	field->addItem (field->currentText ());
 }
diff --git a/rkward/windows/rkhtmlwindow.cpp b/rkward/windows/rkhtmlwindow.cpp
index d4987e1..2e950d5 100644
--- a/rkward/windows/rkhtmlwindow.cpp
+++ b/rkward/windows/rkhtmlwindow.cpp
@@ -671,7 +671,7 @@ bool RKHelpRenderer::renderRKHelp (const KUrl &url) {
 		if (component_doc_element.isNull ()) return false;
 		element = component_xml->getChildElement (component_doc_element, "help", DL_ERROR);
 		if (!element.isNull ()) {
-			help_file_name = component_xml->getStringAttribute (element, "file", QString::null, DL_ERROR);
+			help_file_name = component_xml->getStringAttribute (element, "file", QString (), DL_ERROR);
 			if (!help_file_name.isEmpty ()) help_file_name = QFileInfo (chandle->getFilename ()).absoluteDir ().filePath (help_file_name);
 		}
 	} else {
diff --git a/rkward/windows/rkworkplace.h b/rkward/windows/rkworkplace.h
index 13be3be..6e97652 100644
--- a/rkward/windows/rkworkplace.h
+++ b/rkward/windows/rkworkplace.h
@@ -102,7 +102,7 @@ public:
 @param read_only Open the document read only? Default is false, i.e. Read-write
 @param force_caption Usually the caption is determined from the url of the file. If you specify a non-empty string here, that is used instead.
 @returns false if a local url could not be opened, true for all remote urls, and on success */
-	RKMDIWindow* openScriptEditor (const KUrl &url=KUrl (), const QString& encoding=QString (), bool use_r_highlighting=true, bool read_only=false, const QString &force_caption = QString::null, bool delete_on_close=false);
+	RKMDIWindow* openScriptEditor (const KUrl &url=KUrl (), const QString& encoding=QString (), bool use_r_highlighting=true, bool read_only=false, const QString &force_caption = QString (), bool delete_on_close=false);
 /** Opens a new help window, starting at the given url
 @param url URL to open
 @param only_once if true, checks whether any help window already shows this URL. If so, raise it, but do not open a new window. Else show the new window */



More information about the rkward-tracker mailing list