[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