[education/rkward] rkward/scriptbackends: Set QT_NO_CAST_FROM_ASCII in scriptbackends folder

Thomas Friedrichsmeier null at kde.org
Sat Apr 26 14:07:55 BST 2025


Git commit 4a20302f6bf0c38fdaef6b67b37aa9836e2d1f96 by Thomas Friedrichsmeier.
Committed on 26/04/2025 at 13:07.
Pushed by tfry into branch 'master'.

Set QT_NO_CAST_FROM_ASCII in scriptbackends folder

M  +1    -0    rkward/scriptbackends/CMakeLists.txt
M  +22   -22   rkward/scriptbackends/qtscriptbackend.cpp
M  +40   -48   rkward/scriptbackends/rkcomponentscripting.cpp
M  +18   -18   rkward/scriptbackends/simplebackend.cpp

https://invent.kde.org/education/rkward/-/commit/4a20302f6bf0c38fdaef6b67b37aa9836e2d1f96

diff --git a/rkward/scriptbackends/CMakeLists.txt b/rkward/scriptbackends/CMakeLists.txt
index 16edc7002..9bfabb699 100644
--- a/rkward/scriptbackends/CMakeLists.txt
+++ b/rkward/scriptbackends/CMakeLists.txt
@@ -16,3 +16,4 @@ ADD_LIBRARY(scriptbackends STATIC ${scriptbackends_STAT_SRCS})
 TARGET_LINK_LIBRARIES(scriptbackends Qt6::Qml Qt6::Widgets Qt6::Xml KF6::WidgetsAddons KF6::I18n)
 
 INSTALL(FILES common.js rkcomponentscripting.js DESTINATION ${KDE_INSTALL_DATADIR}/rkward/phpfiles )
+add_definitions(-DQT_NO_CAST_FROM_ASCII) # TODO remove, here, once enabled on top level
diff --git a/rkward/scriptbackends/qtscriptbackend.cpp b/rkward/scriptbackends/qtscriptbackend.cpp
index 27a7f3457..30d00e163 100644
--- a/rkward/scriptbackends/qtscriptbackend.cpp
+++ b/rkward/scriptbackends/qtscriptbackend.cpp
@@ -59,23 +59,23 @@ void QtScriptBackend::_performanceTest() {
 }
 #endif
 
-bool QtScriptBackend::initialize (RKComponentPropertyCode *code_property, bool add_headings) {
-	RK_TRACE (PHP);
+bool QtScriptBackend::initialize(RKComponentPropertyCode *code_property, bool add_headings) {
+	RK_TRACE(PHP);
 
 	if (script_thread) {
-		RK_DEBUG (PHP, DL_ERROR, "another template is already opened in this backend");
+		RK_DEBUG(PHP, DL_ERROR, "another template is already opened in this backend");
 		return false;
 	}
 
-	QDir files_path (RKCommonFunctions::getRKWardDataDir () + "phpfiles/");
-	QString common_js (files_path.absoluteFilePath (QStringLiteral("common.js")));
+	QDir files_path(RKCommonFunctions::getRKWardDataDir() + u"phpfiles/"_s);
+	QString common_js(files_path.absoluteFilePath(u"common.js"_s));
 
-	script_thread = new QtScriptBackendThread (common_js, filename, this, catalog);
-	connect (script_thread, &QtScriptBackendThread::error, this, &QtScriptBackend::threadError);
-	connect (script_thread, &QtScriptBackendThread::commandDone, this, &QtScriptBackend::commandDone);
-	connect (script_thread, &QtScriptBackendThread::needData, this, &QtScriptBackend::needData);
+	script_thread = new QtScriptBackendThread(common_js, filename, this, catalog);
+	connect(script_thread, &QtScriptBackendThread::error, this, &QtScriptBackend::threadError);
+	connect(script_thread, &QtScriptBackendThread::commandDone, this, &QtScriptBackend::commandDone);
+	connect(script_thread, &QtScriptBackendThread::needData, this, &QtScriptBackend::needData);
 	current_type = ScriptBackend::Ignore;
-	script_thread->start ();
+	script_thread->start();
 
 	QtScriptBackend::code_property = code_property;
 	QtScriptBackend::add_headings = add_headings;
@@ -188,24 +188,24 @@ void QtScriptBackendThread::goToSleep (bool sleep) {
 	}
 }
 
-void QtScriptBackendThread::setCommand (const QString &command) {
-	RK_TRACE (PHP);
+void QtScriptBackendThread::setCommand(const QString &command) {
+	RK_TRACE(PHP);
 
-	mutex.lock ();
-	RK_ASSERT (_command.isNull ());
-	if (command.isNull ()) _command = QLatin1String("");
+	mutex.lock();
+	RK_ASSERT(_command.isNull());
+	if (command.isNull()) _command = u""_s;
 	else _command = command;
-	mutex.unlock ();
+	mutex.unlock();
 }
 
-void QtScriptBackendThread::setData (const QVariant &data) {
-	RK_TRACE (PHP);
+void QtScriptBackendThread::setData(const QVariant &data) {
+	RK_TRACE(PHP);
 
-	mutex.lock ();
-	RK_ASSERT (_data.isNull ());
-	if (data.isNull ()) _data = "";
+	mutex.lock();
+	RK_ASSERT(_data.isNull());
+	if (data.isNull()) _data = u""_s;
 	else _data = data;
-	mutex.unlock ();
+	mutex.unlock();
 }
 
 QVariant QtScriptBackendThread::getValue (const QString &identifier, const int hint) {
diff --git a/rkward/scriptbackends/rkcomponentscripting.cpp b/rkward/scriptbackends/rkcomponentscripting.cpp
index 111041eae..a07e6af57 100644
--- a/rkward/scriptbackends/rkcomponentscripting.cpp
+++ b/rkward/scriptbackends/rkcomponentscripting.cpp
@@ -40,26 +40,18 @@ RKComponentScriptingProxy::~RKComponentScriptingProxy () {
 	}
 }
 
-void RKComponentScriptingProxy::initialize (const QString& file, const QString& command) {
-	RK_TRACE (PHP);
+void RKComponentScriptingProxy::initialize(const QString& file, const QString& command) {
+	RK_TRACE(PHP);
 
 	QString _command = command;
-	if (!file.isEmpty ()) {
-		_command.prepend ("_rkward.include('" + file + "');\n");
+	if (!file.isEmpty()) {
+		_command.prepend(u"_rkward.include('"_s + file + u"');\n"_s);
 		_scriptfile = file;
 	}
-	QDir files_path (RKCommonFunctions::getRKWardDataDir () + "phpfiles/");
-#ifdef USE_Q_SCRIPT_PROGRAM
-	if (!RKPrecompiledQtScripts::loadCommonScript (&engine, files_path.absoluteFilePath ("rkcomponentscripting.js"))) {
-		engine.evaluate (i18n ("Error opening script file %1", files_path.absoluteFilePath ("rkcomponentscripting.js")));
-	} else if (!RKPrecompiledQtScripts::loadCommonScript (&engine, files_path.absoluteFilePath ("common.js"))) {
-		engine.evaluate (i18n ("Error opening script file %1", files_path.absoluteFilePath ("common.js")));
-	}
-#else
-	_command.prepend ("_rkward.include('" + files_path.absoluteFilePath (QStringLiteral("rkcomponentscripting.js")) + "');\n");
-	_command.prepend ("_rkward.include('" + files_path.absoluteFilePath (QStringLiteral("common.js")) + "');\n");
-#endif
-	evaluate (_command);
+	QDir files_path(RKCommonFunctions::getRKWardDataDir() + u"phpfiles/"_s);
+	_command.prepend(u"_rkward.include('"_s + files_path.absoluteFilePath(QStringLiteral("rkcomponentscripting.js")) + u"');\n"_s);
+	_command.prepend(u"_rkward.include('"_s + files_path.absoluteFilePath(QStringLiteral("common.js")) + u"');\n"_s);
+	evaluate(_command);
 }
 
 void RKComponentScriptingProxy::handleScriptError(const QJSValue &val, const QString& current_file) {
@@ -74,23 +66,23 @@ void RKComponentScriptingProxy::handleScriptError(const QJSValue &val, const QSt
 	}
 }
 
-void RKComponentScriptingProxy::include (const QString& filename) {
-	RK_TRACE (PHP);
+void RKComponentScriptingProxy::include(const QString& filename) {
+	RK_TRACE(PHP);
 
 	QString _filename = filename;
-	if (QFileInfo (filename).isRelative ()) {
-		QUrl script_path = QUrl (QUrl::fromLocalFile (_scriptfile)).adjusted (QUrl::RemoveFilename).resolved (QUrl (filename));
-		_filename = script_path.toLocalFile ();
+	if (QFileInfo(filename).isRelative()) {
+		QUrl script_path = QUrl(QUrl::fromLocalFile(_scriptfile)).adjusted(QUrl::RemoveFilename).resolved(QUrl(filename));
+		_filename = script_path.toLocalFile();
 	}
 
-	QFile file (_filename);
-	if (!file.open (QIODevice::ReadOnly | QIODevice::Text)) {
-		evaluate (i18n ("error ('The file \"%1\" (needed by \"%2\") could not be found. Please check your installation.');\n", _filename, _scriptfile).toUtf8 ());
+	QFile file(_filename);
+	if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) {
+		evaluate(i18n("error ('The file \"%1\" (needed by \"%2\") could not be found. Please check your installation.');\n", _filename, _scriptfile));
 		return;
 	}
 
-	evaluate (QString::fromUtf8 (file.readAll()));
-	handleScriptError (_filename);
+	evaluate(QString::fromUtf8(file.readAll()));
+	handleScriptError(_filename);
 }
 
 void RKComponentScriptingProxy::evaluate (const QString &code) {
@@ -201,11 +193,11 @@ void RKComponentScriptingProxy::propertyChanged (RKComponentPropertyBase* change
 	handleChange (changed);
 }
 
-void RKComponentScriptingProxy::handleChange (RKComponentBase* changed) {
-	RK_TRACE (PHP);
+void RKComponentScriptingProxy::handleChange(RKComponentBase* changed) {
+	RK_TRACE(PHP);
 
-	QString command = component_commands.value (changed);
-	evaluate (command.toUtf8());
+	QString command = component_commands.value(changed);
+	evaluate(command);
 }
 
 QVariant RKComponentScriptingProxy::getValue (const QString &id) const {
@@ -257,37 +249,37 @@ void RKComponentScriptingProxy::setListValue (const QStringList& value, const QS
 	}
 }
 
-QVariantList RKComponentScriptingProxy::getObjectInfo (const QString &name) {
-	RK_TRACE (PHP);
+QVariantList RKComponentScriptingProxy::getObjectInfo(const QString& name) {
+	RK_TRACE(PHP);
 
-	RObject* object = RObjectList::getObjectList ()->findObject (name);
+	RObject* object = RObjectList::getObjectList()->findObject(name);
 	if (object) {
 		QVariantList ret;
 
 		QVariantList dims;
-		const auto objectDims = object->getDimensions ();
+		const auto objectDims = object->getDimensions();
 		for (int dim : objectDims) {
-			dims.append (dim);
+			dims.append(dim);
 		}
-		ret.append (QVariant (dims));
+		ret.append(QVariant(dims));
 
-		ret.append (QVariant (object->classNames ()));
+		ret.append(QVariant(object->classNames()));
 
-		ret.append (object->isType (RObject::DataFrame));
-		ret.append (object->isType (RObject::Matrix));
-		ret.append (object->isType (RObject::List));
-		ret.append (object->isType (RObject::Function));
-		ret.append (object->isType (RObject::Environment));
+		ret.append(object->isType(RObject::DataFrame));
+		ret.append(object->isType(RObject::Matrix));
+		ret.append(object->isType(RObject::List));
+		ret.append(object->isType(RObject::Function));
+		ret.append(object->isType(RObject::Environment));
 
-		if (object->getDataType () == RObject::DataNumeric) ret.append ("numeric");
-		else if (object->getDataType () == RObject::DataFactor) ret.append ("factor");
-		else if (object->getDataType () == RObject::DataCharacter) ret.append ("character");
-		else if (object->getDataType () == RObject::DataLogical) ret.append ("logical");
-		else ret.append ("unknown");
+		if (object->getDataType() == RObject::DataNumeric) ret.append(u"numeric"_s);
+		else if (object->getDataType() == RObject::DataFactor) ret.append(u"factor"_s);
+		else if (object->getDataType() == RObject::DataCharacter) ret.append(u"character"_s);
+		else if (object->getDataType() == RObject::DataLogical) ret.append(u"logical"_s);
+		else ret.append(u"unknown"_s);
 
 		return (ret);
 	}
-	return (QVariantList ());
+	return (QVariantList());
 }
 
 QString RKComponentScriptingProxy::getObjectParent (const QString &name) {
diff --git a/rkward/scriptbackends/simplebackend.cpp b/rkward/scriptbackends/simplebackend.cpp
index c420cbb49..da8a4337b 100644
--- a/rkward/scriptbackends/simplebackend.cpp
+++ b/rkward/scriptbackends/simplebackend.cpp
@@ -118,36 +118,36 @@ void SimpleBackend::processCall () {
 	finishCall (current_template.mid (template_sep + 3));
 }
 
-void SimpleBackend::finishCall (const QString &conditions) {
-	RK_TRACE (PHP);
+void SimpleBackend::finishCall(const QString &conditions) {
+	RK_TRACE(PHP);
 
 	QString conds = conditions;
 	int repl = current_values.count();
 	for (int i = repl; i > 0; --i) {
-		QString placeholder = '%' + QString::number (i);
-		QString replacement = current_values[i-1].toString ();
-		conds.replace (placeholder, replacement);
+		QString placeholder = u'%' + QString::number(i);
+		QString replacement = current_values[i - 1].toString();
+		conds.replace(placeholder, replacement);
 	}
 
 	QString output;
 	int pos = 3;
-	int max = conds.length ();
+	int max = conds.length();
 	do {
-		int cond_end = conds.indexOf (QLatin1String("!?!"), pos);
+		int cond_end = conds.indexOf(QLatin1String("!?!"), pos);
 		if (cond_end < 0) cond_end = max;
-		QString condition = conds.mid (pos, cond_end - pos);
+		QString condition = conds.mid(pos, cond_end - pos);
 
-		int if_end = condition.indexOf (QLatin1String("!:!"));
-		RK_ASSERT (if_end >= 0);
-		QString if_part = condition.left (if_end);
+		int if_end = condition.indexOf(QLatin1String("!:!"));
+		RK_ASSERT(if_end >= 0);
+		QString if_part = condition.left(if_end);
 
-		int if_mid = if_part.indexOf (QLatin1String("!=!"));
-		RK_ASSERT (if_mid >= 0);
-		QString if_compare = if_part.left (if_mid);
+		int if_mid = if_part.indexOf(QLatin1String("!=!"));
+		RK_ASSERT(if_mid >= 0);
+		QString if_compare = if_part.left(if_mid);
 
-		QString if_against = if_part.mid (if_mid + 3);
-		if ((if_compare.isEmpty() && if_against.isEmpty ()) || (if_compare == if_against)) {
-			output = condition.mid (if_end + 3);
+		QString if_against = if_part.mid(if_mid + 3);
+		if ((if_compare.isEmpty() && if_against.isEmpty()) || (if_compare == if_against)) {
+			output = condition.mid(if_end + 3);
 			break;
 		}
 
@@ -155,5 +155,5 @@ void SimpleBackend::finishCall (const QString &conditions) {
 	} while (pos < max);
 
 	// reached end of template
-	commandFinished (output);
+	commandFinished(output);
 }



More information about the rkward-tracker mailing list