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

Thomas Friedrichsmeier null at kde.org
Thu Apr 24 11:37:01 BST 2025


Git commit 16a4654e661b631ab9ef7aea89bf0ef380beb833 by Thomas Friedrichsmeier.
Committed on 24/04/2025 at 10:36.
Pushed by tfry into branch 'master'.

Set QT_NO_CAST_FROM_ASCII in settings folder

M  +1    -0    rkward/settings/CMakeLists.txt
M  +1    -1    rkward/settings/rksettings.cpp
M  +4    -2    rkward/settings/rksettingsmodule.h
M  +2    -2    rkward/settings/rksettingsmodulecommandeditor.cpp
M  +2    -2    rkward/settings/rksettingsmodulegeneral.cpp
M  +1    -1    rkward/settings/rksettingsmodulegeneral.h
M  +18   -18   rkward/settings/rksettingsmodulegraphics.cpp
M  +1    -1    rkward/settings/rksettingsmodulekateplugins.cpp
M  +1    -1    rkward/settings/rksettingsmoduleobjectbrowser.cpp
M  +8    -7    rkward/settings/rksettingsmoduleoutput.cpp
M  +39   -39   rkward/settings/rksettingsmoduleplugins.cpp
M  +82   -77   rkward/settings/rksettingsmoduler.cpp

https://invent.kde.org/education/rkward/-/commit/16a4654e661b631ab9ef7aea89bf0ef380beb833

diff --git a/rkward/settings/CMakeLists.txt b/rkward/settings/CMakeLists.txt
index 07e061130..3acb41193 100644
--- a/rkward/settings/CMakeLists.txt
+++ b/rkward/settings/CMakeLists.txt
@@ -35,3 +35,4 @@ ENDIF (WIN32 OR USE_BINARY_PACKAGES)
 
 ADD_LIBRARY(settings STATIC ${settings_STAT_SRCS})
 TARGET_LINK_LIBRARIES(settings Qt6::Widgets KF6::WidgetsAddons Qt6::Xml KF6::ConfigCore KF6::Parts KF6::TextEditor KF6::I18n KF6::KIOWidgets)
+add_definitions(-DQT_NO_CAST_FROM_ASCII) # TODO remove, here, once enabled on top level
diff --git a/rkward/settings/rksettings.cpp b/rkward/settings/rksettings.cpp
index 6d12c7671..7c4a31b5e 100644
--- a/rkward/settings/rksettings.cpp
+++ b/rkward/settings/rksettings.cpp
@@ -43,7 +43,7 @@ void RKSettings::configureSettings(const RKSettingsModule::PageId page, QWidget
 		settings_dialog = new RKSettings(parent);
 	}
 
-	if (page != "") {
+	if (!page.isEmpty()) {
 		settings_dialog->setCurrentPage(settings_dialog->findPage(page));
 	}
 	settings_dialog->show();
diff --git a/rkward/settings/rksettingsmodule.h b/rkward/settings/rksettingsmodule.h
index d56f15a87..e6f127041 100644
--- a/rkward/settings/rksettingsmodule.h
+++ b/rkward/settings/rksettingsmodule.h
@@ -26,6 +26,8 @@ class RKSpinBox;
 class QAction;
 class QLineEdit;
 
+using namespace Qt::Literals::StringLiterals;
+
 /** Base class for RKWard config settings.
  *
  *  Meant to reduce the amount of boilerplate code involved in defining, loading, saving config settings (and in the future probably also creating widgets and applying changes). */
@@ -115,14 +117,14 @@ public:
 	void loadConfig(KConfigGroup &cg) override {
 		KConfigGroup lcg = cg;
 		if (name && name[0]) {
-			lcg = cg.group(name);
+			lcg = cg.group(QString::fromLatin1(name));
 		}
 		for (auto it = values.begin(); it != values.end(); ++it) (*it)->loadConfig(lcg);
 	}
 	void saveConfig(KConfigGroup &cg) const override {
 		KConfigGroup lcg = cg;
 		if (name && name[0]) {
-			lcg = cg.group(name);
+			lcg = cg.group(QString::fromLatin1(name));
 		}
 		for (auto it = values.begin(); it != values.end(); ++it) (*it)->saveConfig(lcg);
 	}
diff --git a/rkward/settings/rksettingsmodulecommandeditor.cpp b/rkward/settings/rksettingsmodulecommandeditor.cpp
index ebaa65c84..e847b56f3 100644
--- a/rkward/settings/rksettingsmodulecommandeditor.cpp
+++ b/rkward/settings/rksettingsmodulecommandeditor.cpp
@@ -173,7 +173,7 @@ private:
 };
 
 RKTextEditorConfigPageWrapper::RKTextEditorConfigPageWrapper(QWidget* parent, RKSettingsModule *parent_module, RKSettingsModule::PageId superpage, KTextEditor::ConfigPage* wrapped) :
-	RKSettingsModuleWidget(parent, parent_module, QLatin1String(("kate_" + wrapped->name()).toLatin1()), superpage),
+	RKSettingsModuleWidget(parent, parent_module, QLatin1String(("kate_"_L1 + wrapped->name()).toLatin1()), superpage),
 	page(wrapped)
 {
 	RK_TRACE(SETTINGS);
@@ -237,7 +237,7 @@ void RKSettingsModuleCommandEditor::syncConfig(KConfig* config, RKConfigBase::Co
 bool RKSettingsModuleCommandEditor::matchesScriptFileFilter (const QString &filename) {
 	RK_TRACE (SETTINGS);
 
-	const QStringList exts = script_file_filter.get().split(' ');
+	const QStringList exts = script_file_filter.get().split(u' ');
 	for (const QString& ext : exts) {
 		auto reg = QRegularExpression::fromWildcard(ext, Qt::CaseInsensitive);
 		if (reg.match (filename).hasMatch()) return true;
diff --git a/rkward/settings/rksettingsmodulegeneral.cpp b/rkward/settings/rksettingsmodulegeneral.cpp
index e2edad6fe..cff2ea761 100644
--- a/rkward/settings/rksettingsmodulegeneral.cpp
+++ b/rkward/settings/rksettingsmodulegeneral.cpp
@@ -177,7 +177,7 @@ void RKSettingsModuleGeneral::syncConfig(KConfig *config, RKConfigBase::ConfigSy
 				config->deleteGroup(groups[i]);
 			}
 		}
-		rkward_version_changed = (cg.readEntry("previous runtime version", QString()) != RKWARD_VERSION) || RKCommandLineArgs::get(RKCommandLineArgs::Setup).toBool();
+		rkward_version_changed = (cg.readEntry("previous runtime version", QString()) != QLatin1String(RKWARD_VERSION)) || RKCommandLineArgs::get(RKCommandLineArgs::Setup).toBool();
 	} else {
 		cg.writeEntry("config file version", (int) RKWardConfig_Latest);
 		cg.writeEntry("previous runtime version", QStringLiteral(RKWARD_VERSION));
@@ -186,7 +186,7 @@ void RKSettingsModuleGeneral::syncConfig(KConfig *config, RKConfigBase::ConfigSy
 	cg = config->group(QStringLiteral("Logfiles"));
 	if (a == RKConfigBase::LoadConfig) {
 		// default not yet set, first time loading config
-		if (new_files_path.get().isNull()) new_files_path = QString(QDir().homePath() + "/.rkward/");
+		if (new_files_path.get().isNull()) new_files_path = QString(QDir().homePath() + u"/.rkward/"_s);
 
 		new_files_path.loadConfig(cg);
 		files_path = new_files_path;
diff --git a/rkward/settings/rksettingsmodulegeneral.h b/rkward/settings/rksettingsmodulegeneral.h
index f42c9ce4c..2c592d0ca 100644
--- a/rkward/settings/rksettingsmodulegeneral.h
+++ b/rkward/settings/rksettingsmodulegeneral.h
@@ -58,7 +58,7 @@ public:
 	static bool cdToWorkspaceOnLoad () { return cd_to_workspace_dir_on_load; };
 	static unsigned long warnLargeObjectThreshold () { return warn_size_object_edit; };
 	static RKMDIFocusPolicy mdiFocusPolicy () { return mdi_focus_policy; }
-	static QString workspaceFilenameFilter () { return ("*.RData *.RDA"); };
+	static QString workspaceFilenameFilter () { return ("*.RData *.RDA"_L1); };
 	static QString initialWorkingDirectory ();
 	static int maxNumRecentFiles () { return num_recent_files; };
 /** if the installation-path of KDE seems to have moved since the last startup, *and* the given path is relative to the
diff --git a/rkward/settings/rksettingsmodulegraphics.cpp b/rkward/settings/rksettingsmodulegraphics.cpp
index 9171baa08..0cff18a11 100644
--- a/rkward/settings/rksettingsmodulegraphics.cpp
+++ b/rkward/settings/rksettingsmodulegraphics.cpp
@@ -181,36 +181,36 @@ QStringList RKSettingsModuleGraphics::makeRRunTimeOptionCommands () {
 	list.append (QStringLiteral("try (if (!(\"RKGraphicsDevice\" %in% deviceIsInteractive())) deviceIsInteractive(name=\"RKGraphicsDevice\"))\n"));
 
 	QString command = QStringLiteral("options (device=");
-	if (default_device == RKDevice) command.append ("\"RK\"");
+	if (default_device == RKDevice) command.append(u"\"RK\""_s);
 	else if (default_device == OtherDevice) command.append (RObject::rQuote (default_device_other));
 	else {
 #if defined Q_OS_WIN
-	command.append ("\"windows\"");
+	command.append(u"\"windows\""_s);
 #elif defined Q_OS_MACOS
-	command.append ("ifelse (capabilities(\"quartz\"), \"quartz\", \"X11\")");
+	command.append(u"ifelse (capabilities(\"quartz\"), \"quartz\", \"X11\")"_s);
 #else
-	command.append ("\"X11\"");
+	command.append(u"\"X11\""_s);
 #endif
 	}
-	list.append (command + ")\n");
+	list.append(command + u")\n"_s);
 
-	command = QLatin1String("options (rk.override.platform.devices=\"");
+	command = u"options (rk.override.platform.devices=\""_s;
 	if ((replace_standard_devices == ReplaceDevice) && (default_device != PlatformDevice)) {
-		command.append ("replace");
+		command.append(u"replace"_s);
 	} else if (replace_standard_devices == LeaveDevice) {
-		command.append ("nointegration");
+		command.append(u"nointegration"_s);
 	} else {
-		command.append ("embed");
+		command.append(u"embed"_s);
 	}
-	list.append (command + "\")\n");
-
-	command = QLatin1String("options");
-	command.append ("(\"rk.screendevice.width\"=" + QString::number (graphics_width));
-	command.append (", \"rk.screendevice.height\"=" + QString::number (graphics_height) + ")\n");
-	list.append (command);
-	list.append ("options (\"rk.graphics.hist.max.plotsize\"=" + QString::number (graphics_hist_max_plotsize) + ")\n");
-	list.append ("rk.toggle.plot.history (" + QString (graphics_hist_enable?"TRUE":"FALSE") + ")\n");
-	list.append ("rk.verify.plot.hist.limits (" + QString::number (graphics_hist_max_length) + ")\n");
+	list.append(command + u"\")\n"_s);
+
+	command = u"options"_s;
+	command.append(u"(\"rk.screendevice.width\"="_s + QString::number(graphics_width));
+	command.append(u", \"rk.screendevice.height\"="_s + QString::number(graphics_height) + u")\n"_s);
+	list.append(command);
+	list.append(u"options (\"rk.graphics.hist.max.plotsize\"="_s + QString::number(graphics_hist_max_plotsize) + u")\n"_s);
+	list.append(u"rk.toggle.plot.history ("_s + QString(graphics_hist_enable?u"TRUE"_s:u"FALSE"_s) + u")\n"_s);
+	list.append(u"rk.verify.plot.hist.limits ("_s + QString::number(graphics_hist_max_length) + u")\n"_s);
 	
 	return (list);
 }
diff --git a/rkward/settings/rksettingsmodulekateplugins.cpp b/rkward/settings/rksettingsmodulekateplugins.cpp
index 7df9b53b6..1b5397458 100644
--- a/rkward/settings/rksettingsmodulekateplugins.cpp
+++ b/rkward/settings/rksettingsmodulekateplugins.cpp
@@ -40,7 +40,7 @@ public:
 		setWindowIcon(QIcon::fromTheme(QStringLiteral("kate")));
 
 		/* Known kate plugins at the time of this writing (March 2020): katesearchplugin katexmltoolsplugin katexmlcheckplugin katectagsplugin katefiletreeplugin 	katecloseexceptplugin katebacktracebrowserplugin tabswitcherplugin kterustcompletionplugin katekonsoleplugin katesnippetsplugin katefilebrowserplugin katereplicodeplugin ktexteditor_lumen kateprojectplugin kateopenheaderplugin katesymbolviewerplugin ktexteditorpreviewplugin katesqlplugin kategdbplugin katebuildplugin textfilterplugin */
-		QStringList recommended_plugins = QStringList({"katesearchplugin", "katecloseexceptplugin", "katekonsoleplugin", "katesnippetsplugin", "katefiletreeplugin", "kateprojectplugin", "ktexteditorpreviewplugin", "textfilterplugin"});
+		QStringList recommended_plugins = QStringList({u"katesearchplugin"_s, u"katecloseexceptplugin"_s, u"katekonsoleplugin"_s, u"katesnippetsplugin"_s, u"katefiletreeplugin"_s, u"kateprojectplugin"_s, u"ktexteditorpreviewplugin"_s, u"textfilterplugin"_s});
 
 		QVBoxLayout *vbox = new QVBoxLayout(this);
 		vbox->setContentsMargins(0, 0, 0, 0);
diff --git a/rkward/settings/rksettingsmoduleobjectbrowser.cpp b/rkward/settings/rksettingsmoduleobjectbrowser.cpp
index 9c9da32c0..476d0473e 100644
--- a/rkward/settings/rksettingsmoduleobjectbrowser.cpp
+++ b/rkward/settings/rksettingsmoduleobjectbrowser.cpp
@@ -26,7 +26,7 @@ SPDX-License-Identifier: GPL-2.0-or-later
 // static
 RKConfigValue<bool> RKSettingsModuleObjectBrowser::workspace_settings[RKObjectListViewSettings::SettingsCount] {{"show hidden vars", false},{"show type field", true},{"show class field", true},{"show label field", true}};
 RKConfigValue<bool> RKSettingsModuleObjectBrowser::varselector_settings[RKObjectListViewSettings::SettingsCount] { RKSettingsModuleObjectBrowser::workspace_settings[0],RKSettingsModuleObjectBrowser::workspace_settings[1],RKSettingsModuleObjectBrowser::workspace_settings[2],RKSettingsModuleObjectBrowser::workspace_settings[3]};
-RKConfigValue<QStringList> RKSettingsModuleObjectBrowser::getstructure_blacklist {"package blacklist", QStringList("GO")};
+RKConfigValue<QStringList> RKSettingsModuleObjectBrowser::getstructure_blacklist {"package blacklist", QStringList(u"GO"_s)};
 
 class RKSettingsPageObjectBrowser : public RKSettingsModuleWidget {
 public:
diff --git a/rkward/settings/rksettingsmoduleoutput.cpp b/rkward/settings/rksettingsmoduleoutput.cpp
index 50770a66c..e6f26ac65 100644
--- a/rkward/settings/rksettingsmoduleoutput.cpp
+++ b/rkward/settings/rksettingsmoduleoutput.cpp
@@ -220,13 +220,14 @@ QStringList RKSettingsModuleOutput::makeRRunTimeOptionCommands () {
 	RK_TRACE (SETTINGS);
 	QStringList list;
 
-// output format options
-	QString command = "options (\"rk.graphics.type\"=" + graphics_type.get();
-	command.append (", \"rk.graphics.width\"=" + QString::number (graphics_width));
-	command.append (", \"rk.graphics.height\"=" + QString::number (graphics_height));
-	if (graphics_type == QStringLiteral("\"JPG\"")) command.append (", \"rk.graphics.jpg.quality\"=" + QString::number (graphics_jpg_quality));
-	command.append (", \"rk.output.css.file\"=\"" + (custom_css_file.get().isEmpty () ? RKCommonFunctions::getRKWardDataDir () + "pages/rkward_output.css" : custom_css_file.get()) + '\"');
-	list.append (command + ")\n");
+	// output format options
+	QString command = u"options (\"rk.graphics.type\"="_s + graphics_type.get();
+	command.append(u", \"rk.graphics.width\"="_s + QString::number(graphics_width));
+	command.append(u", \"rk.graphics.height\"="_s + QString::number(graphics_height));
+	if (graphics_type == "\"JPG\""_L1) command.append(u", \"rk.graphics.jpg.quality\"="_s + QString::number(graphics_jpg_quality));
+	command.append(u", \"rk.output.css.file\"=\""_s +
+		(custom_css_file.get().isEmpty() ? RKCommonFunctions::getRKWardDataDir() + u"pages/rkward_output.css"_s : custom_css_file.get()) + u'\"');
+	list.append(command + u")\n"_s);
 
 	return (list);
 }
diff --git a/rkward/settings/rksettingsmoduleplugins.cpp b/rkward/settings/rksettingsmoduleplugins.cpp
index 2f3f0e87d..541c3ab19 100644
--- a/rkward/settings/rksettingsmoduleplugins.cpp
+++ b/rkward/settings/rksettingsmoduleplugins.cpp
@@ -322,33 +322,33 @@ QStringList RKSettingsModulePlugins::RKPluginMapList::activeMapFiles() {
 }
 
 void RKSettingsModulePlugins::registerDefaultPluginMaps(AddMode add_mode) {
-	RK_TRACE (SETTINGS);
+	RK_TRACE(SETTINGS);
 
-	QDir def_plugindir (RKCommonFunctions::getRKWardDataDir ());
-	if (def_plugindir.dirName() == QStringLiteral ("rkwardinstall")) {
+	QDir def_plugindir(RKCommonFunctions::getRKWardDataDir());
+	if (def_plugindir.dirName() == "rkwardinstall"_L1) {
 		// For running from build-dir: Work around bad design choice of installation layout
-		def_plugindir.cd (QStringLiteral("plugins"));
+		def_plugindir.cd(u"plugins"_s);
 	}
-	QStringList def_pluginmaps = def_plugindir.entryList (QStringList ("*.pluginmap"));
-	for (int i = 0; i < def_pluginmaps.size (); ++i) {
-		def_pluginmaps[i] = def_plugindir.absoluteFilePath (def_pluginmaps[i]);
+	QStringList def_pluginmaps = def_plugindir.entryList(QStringList(u"*.pluginmap"_s));
+	for (int i = 0; i < def_pluginmaps.size(); ++i) {
+		def_pluginmaps[i] = def_plugindir.absoluteFilePath(def_pluginmaps[i]);
 	}
-	registerPluginMaps (def_pluginmaps, add_mode, false, add_mode == AutoActivateIfNew);
+	registerPluginMaps(def_pluginmaps, add_mode, false, add_mode == AutoActivateIfNew);
 }
 
-QString RKSettingsModulePlugins::findPluginMapById (const QString &id) {
-	RK_TRACE (SETTINGS);
+QString RKSettingsModulePlugins::findPluginMapById(const QString &id) {
+	RK_TRACE(SETTINGS);
 
 	QString ret = known_plugin_maps.mapFileForId(id);
 	if (!ret.isNull()) return ret;
 
 	// for "rkward::" namespace, try a little harded:
-	if (id.startsWith (QLatin1String ("rkward::"))) {
-		QFileInfo info (RKCommonFunctions::getRKWardDataDir () + '/' + id.mid (8));
-		if (info.isReadable ()) return info.absoluteFilePath ();
+	if (id.startsWith("rkward::"_L1)) {
+		QFileInfo info(RKCommonFunctions::getRKWardDataDir() + u'/' + id.mid(8));
+		if (info.isReadable()) return info.absoluteFilePath();
 	}
 
-	return QString ();
+	return QString();
 }
 
 bool RKSettingsModulePlugins::markPluginMapState(const QString& map, PluginMapState state) {
@@ -388,17 +388,17 @@ RKSettingsModulePlugins::PluginMapStoredInfo RKSettingsModulePlugins::parsePlugi
 	QDomElement de = xml.openXMLFile(DL_WARNING);
 	PluginMapStoredInfo inf(filename);
 	inf.id = RKPluginMapFile::parseId(de, xml);
-	inf.priority = xml.getMultiChoiceAttribute(de, QStringLiteral("priority"), QStringLiteral("hidden;low;medium;high"), (int) PriorityMedium, DL_WARNING);
-	auto about = xml.getChildElement(de, QStringLiteral("about"), DL_WARNING);
-	inf.version = RKParsedVersion(xml.getStringAttribute(about, QStringLiteral("version"), QString(), DL_WARNING));
+	inf.priority = xml.getMultiChoiceAttribute(de, u"priority"_s, u"hidden;low;medium;high"_s, (int) PriorityMedium, DL_WARNING);
+	auto about = xml.getChildElement(de, u"about"_s, DL_WARNING);
+	inf.version = RKParsedVersion(xml.getStringAttribute(about, u"version"_s, QString(), DL_WARNING));
 	return inf;
 }
 
-QStringList RKSettingsModulePlugins::findPluginMapsRecursive (const QString &basedir) {
-	RK_TRACE (SETTINGS);
+QStringList RKSettingsModulePlugins::findPluginMapsRecursive(const QString &basedir) {
+	RK_TRACE(SETTINGS);
 
 	QDir dir(basedir);
-	static const QRegularExpression pluginmapfile_ext((".*\\.pluginmap$"));
+	static const QRegularExpression pluginmapfile_ext(u".*\\.pluginmap$"_s);
 	const QStringList maps = dir.entryList(QDir::Files).filter(pluginmapfile_ext);
 	QStringList ret;
 	for (const QString &map : maps) {
@@ -406,7 +406,7 @@ QStringList RKSettingsModulePlugins::findPluginMapsRecursive (const QString &bas
 	}
 
 	const QStringList subdirs = dir.entryList(QDir::Dirs | QDir::NoSymLinks | QDir::NoDotAndDotDot);
-	for (const QString& subdir : subdirs) {
+	for (const QString &subdir : subdirs) {
 		ret.append(findPluginMapsRecursive(dir.absoluteFilePath(subdir)));
 	}
 
@@ -449,10 +449,10 @@ int RKSettingsModulePluginsModel::columnCount (const QModelIndex& parent) const
 	return COLUMN_COUNT;
 }
 
-QVariant RKSettingsModulePluginsModel::data (const QModelIndex& index, int role) const {
+QVariant RKSettingsModulePluginsModel::data(const QModelIndex &index, int role) const {
 	// RK_TRACE (SETTINGS);
-	if (!index.isValid ()) return QVariant ();
-	int col = index.column ();
+	if (!index.isValid()) return QVariant();
+	int col = index.column();
 
 	const auto id = plugin_maps.ordered_ids.value(index.row());
 	const auto &handle = plugin_maps.all_maps.value(id);
@@ -462,23 +462,23 @@ QVariant RKSettingsModulePluginsModel::data (const QModelIndex& index, int role)
 	if (role == Qt::BackgroundRole) {
 		if (inf.state == RKSettingsModulePlugins::Broken) return QColor(Qt::red);
 		if (inf.state == RKSettingsModulePlugins::Quirky) return QColor(Qt::yellow);
-		return (QVariant ());
+		return (QVariant());
 	} else if (role == Qt::ForegroundRole) {
-		if (inf.priority < RKSettingsModulePlugins::PriorityLow) return QColor (Qt::gray);
+		if (inf.priority < RKSettingsModulePlugins::PriorityLow) return QColor(Qt::gray);
 	} else if (role == Qt::ToolTipRole) {
-		const PluginMapMetaInfo &meta = const_cast<RKSettingsModulePluginsModel*> (this)->getPluginMapMetaInfo (inf.filename);
-		QString desc = meta.about->toHtml ();
-		if (!meta.dependencies.isEmpty ()) {
-			desc.append ("<b>" + i18n ("Dependencies") + "</b>");
-			desc.append (RKComponentDependency::depsToHtml (meta.dependencies));
+		const PluginMapMetaInfo &meta = const_cast<RKSettingsModulePluginsModel *>(this)->getPluginMapMetaInfo(inf.filename);
+		QString desc = meta.about->toHtml();
+		if (!meta.dependencies.isEmpty()) {
+			desc.append(u"<b>"_s + i18n("Dependencies") + u"</b>"_s);
+			desc.append(RKComponentDependency::depsToHtml(meta.dependencies));
 		}
-		desc.append ("<p>" + inf.filename + "</p>");
+		desc.append(u"<p>"_s + inf.filename + u"</p>"_s);
 		return desc;
 	}
 
 	if (col == COLUMN_CHECKED) {
 		if (role == Qt::CheckStateRole) {
-			if (inf.priority < RKSettingsModulePlugins::PriorityLow) return QVariant ();
+			if (inf.priority < RKSettingsModulePlugins::PriorityLow) return QVariant();
 			return (handle.active ? Qt::Checked : Qt::Unchecked);
 		}
 	} else if (col == COLUMN_ID) {
@@ -487,23 +487,23 @@ QVariant RKSettingsModulePluginsModel::data (const QModelIndex& index, int role)
 		}
 	} else if (col == COLUMN_TITLE) {
 		if (role == Qt::DisplayRole) {
-			const PluginMapMetaInfo &meta = const_cast<RKSettingsModulePluginsModel*> (this)->getPluginMapMetaInfo (inf.filename);
+			const PluginMapMetaInfo &meta = const_cast<RKSettingsModulePluginsModel *>(this)->getPluginMapMetaInfo(inf.filename);
 			return meta.about->name;
 		}
 	} else if (col == COLUMN_STATUS) {
 		if (role == Qt::DisplayRole) {
-			if (inf.state == RKSettingsModulePlugins::Broken) return i18n ("Broken");
+			if (inf.state == RKSettingsModulePlugins::Broken) return i18n("Broken");
 			QString status;
-			if (RKComponentMap::getMap ()->isPluginMapLoaded (inf.filename)) status = i18n ("Loaded");
+			if (RKComponentMap::getMap()->isPluginMapLoaded(inf.filename)) status = i18n("Loaded");
 			if (inf.state == RKSettingsModulePlugins::Quirky) {
-				if (!status.isEmpty ()) status.append (", ");
-				status.append (i18n ("Quirky"));
+				if (!status.isEmpty()) status.append(u", "_s);
+				status.append(i18n("Quirky"));
 			}
 			return status;
 		}
 	}
 
-	return QVariant ();
+	return QVariant();
 }
 
 Qt::ItemFlags RKSettingsModulePluginsModel::flags (const QModelIndex& index) const {
diff --git a/rkward/settings/rksettingsmoduler.cpp b/rkward/settings/rksettingsmoduler.cpp
index 4e086e44b..353cd8a88 100755
--- a/rkward/settings/rksettingsmoduler.cpp
+++ b/rkward/settings/rksettingsmoduler.cpp
@@ -224,44 +224,44 @@ void RKSettingsModuleR::createPages(RKSettings *parent) {
 	parent->addSettingsPage(new RKSettingsPageR(parent, this));
 }
 
-static QLatin1String RTrueFalse(bool val) {
-	if (val) return QLatin1String("TRUE");
-	return QLatin1String("FALSE");
+static QString RTrueFalse(bool val) {
+	if (val) return u"TRUE"_s;
+	return u"FALSE"_s;
 }
 
-//static
-QStringList RKSettingsModuleR::makeRRunTimeOptionCommands () {
-	RK_TRACE (SETTINGS);
+// static
+QStringList RKSettingsModuleR::makeRRunTimeOptionCommands() {
+	RK_TRACE(SETTINGS);
 	QStringList list;
 
 	QString outdec = options_outdec;
-	if (outdec.isEmpty()) outdec = '.';
-	list.append ("options (OutDec=\"" + outdec + "\")\n");
-	list.append ("options (width=" + QString::number (options_width) + ")\n");
-	list.append ("options (warn=" + QString::number (options_warn) + ")\n");
-	list.append ("options (max.print=" + QString::number (options_maxprint) + ")\n");
-	list.append ("options (warnings.length=" + QString::number (options_warningslength) + ")\n");
-	list.append ("options (keep.source=" + RTrueFalse(options_keepsource) + ")\n");
-	list.append ("options (keep.source.pkgs=" + RTrueFalse(options_keepsourcepkgs) + ")\n");
-	list.append ("options (expressions=" + QString::number (options_expressions) + ")\n");
-	list.append ("options (digits=" + QString::number (options_digits) + ")\n");
-	list.append ("options (checkbounds=" + RTrueFalse(options_checkbounds) + ")\n");
-	if (options_editor == builtin_editor) list.append (QStringLiteral("options (editor=rk.edit.files)\n"));
-	else list.append ("options (editor=\"" + options_editor.get() + "\")\n");
-	if (options_pager == builtin_editor) list.append (QStringLiteral("options (pager=rk.show.files)\n"));
-	else list.append ("options (pager=\"" + options_pager.get() + "\")\n");
-	if (!options_further.get().isEmpty ()) list.append (options_further.get() + '\n');
-	if (!options_addpaths.get().isEmpty ()) {
-		QString command = QStringLiteral("rk.adjust.system.path (add=c(");
+	if (outdec.isEmpty()) outdec = u'.';
+	list.append(u"options (OutDec=\""_s + outdec + u"\")\n"_s);
+	list.append(u"options (width="_s + QString::number(options_width) + u")\n"_s);
+	list.append(u"options (warn="_s + QString::number(options_warn) + u")\n"_s);
+	list.append(u"options (max.print="_s + QString::number(options_maxprint) + u")\n"_s);
+	list.append(u"options (warnings.length="_s + QString::number(options_warningslength) + u")\n"_s);
+	list.append(u"options (keep.source="_s + RTrueFalse(options_keepsource) + u")\n"_s);
+	list.append(u"options (keep.source.pkgs="_s + RTrueFalse(options_keepsourcepkgs) + u")\n"_s);
+	list.append(u"options (expressions="_s + QString::number(options_expressions) + u")\n"_s);
+	list.append(u"options (digits="_s + QString::number(options_digits) + u")\n"_s);
+	list.append(u"options (checkbounds="_s + RTrueFalse(options_checkbounds) + u")\n"_s);
+	if (options_editor == builtin_editor) list.append(u"options (editor=rk.edit.files)\n"_s);
+	else list.append(u"options (editor=\""_s + options_editor.get() + u"\")\n"_s);
+	if (options_pager == builtin_editor) list.append(u"options (pager=rk.show.files)\n"_s);
+	else list.append(u"options (pager=\""_s + options_pager.get() + u"\")\n"_s);
+	if (!options_further.get().isEmpty()) list.append(options_further.get() + u'\n');
+	if (!options_addpaths.get().isEmpty()) {
+		QString command = u"rk.adjust.system.path (add=c("_s;
 		for (const QString &p : std::as_const(options_addpaths.get())) {
-			command.append (RObject::rQuote (p));
+			command.append(RObject::rQuote(p));
 		}
-		list.append (command + "))\n");
+		list.append(command + u"))\n"_s);
 	}
 
-	list.append (QStringLiteral("options (help_type=\"html\")\n"));		// for R 2.10.0 and above
-	list.append (QStringLiteral("options (browser=rk.show.html)\n"));
-	list.append (QStringLiteral("options (askYesNo=rk.askYesNo)\n")); // for R 3.5.0 and above
+	list.append(u"options (help_type=\"html\")\n"_s);  // for R 2.10.0 and above
+	list.append(u"options (browser=rk.show.html)\n"_s);
+	list.append(u"options (askYesNo=rk.askYesNo)\n"_s);  // for R 3.5.0 and above
 
 	return list;
 }
@@ -303,11 +303,11 @@ RKConfigValue<bool> RKSettingsModuleRPackages::archive_packages {"archive packag
 #else
 #	define USE_SOURCE_PACKAGES true
 #endif
-RKConfigValue<bool> RKSettingsModuleRPackages::source_packages {"source_packages", USE_SOURCE_PACKAGES};
+RKConfigValue<bool> RKSettingsModuleRPackages::source_packages{"source_packages", USE_SOURCE_PACKAGES};
 #define RKWARD_REPO "https://files.kde.org/rkward/R/"
-RKConfigValue<QStringList> RKSettingsModuleRPackages::package_repositories {"Repositories", QStringList(RKWARD_REPO)};
-QString RKSettingsModuleRPackages::essential_packages = QStringLiteral ("base\nmethods\nutils\ngrDevices\ngraphics\nrkward");
-RKConfigValue<QString> RKSettingsModuleRPackages::cran_mirror_url {"CRAN mirror url", QStringLiteral("@CRAN@")};
+RKConfigValue<QStringList> RKSettingsModuleRPackages::package_repositories{"Repositories", QStringList(QStringLiteral(RKWARD_REPO))};
+QString RKSettingsModuleRPackages::essential_packages = u"base\nmethods\nutils\ngrDevices\ngraphics\nrkward"_s;
+RKConfigValue<QString> RKSettingsModuleRPackages::cran_mirror_url{"CRAN mirror url", u"@CRAN@"_s};
 QStringList RKSettingsModuleRPackages::defaultliblocs;
 QString RKSettingsModuleRPackages::r_libs_user;
 
@@ -442,27 +442,28 @@ void RKSettingsModuleRPackages::createPages(RKSettings *parent) {
 	parent->addSettingsPage(new RKSettingsPageRPackages(parent, this));
 }
 
-void RKSettingsModuleRPackages::addLibraryLocation (const QString& new_loc, RCommandChain *chain) {
-	RK_TRACE (SETTINGS);
+void RKSettingsModuleRPackages::addLibraryLocation(const QString &new_loc, RCommandChain *chain) {
+	RK_TRACE(SETTINGS);
 
-	if (!libraryLocations ().contains (new_loc)) liblocs.get().prepend (new_loc);
+	if (!libraryLocations().contains(new_loc)) liblocs.get().prepend(new_loc);
 
 	// update the backend in any case. User might have changed liblocs, there.
-	RInterface::issueCommand(new RCommand(".libPaths (unique (c (" + RObject::rQuote (new_loc) + ", .libPaths ())))", RCommand::App | RCommand::Sync), chain);
+	RInterface::issueCommand(new RCommand(u".libPaths (unique (c ("_s + RObject::rQuote(new_loc) + u", .libPaths ())))"_s, RCommand::App | RCommand::Sync),
+	                         chain);
 }
 
-QStringList expandLibLocs (const QStringList &in) {
+QStringList expandLibLocs(const QStringList &in) {
 	QStringList ret;
-	for (int i = 0; i < in.size (); ++i) {
+	for (int i = 0; i < in.size(); ++i) {
 		QString dummy = in[i];
-		ret.append (dummy.replace (QLatin1String ("%v"), RKSessionVars::RVersion (true)));
+		ret.append(dummy.replace("%v"_L1, RKSessionVars::RVersion(true)));
 	}
 	return ret;
 }
 
-QString RKSettingsModuleRPackages::userLibraryLocation () {
+QString RKSettingsModuleRPackages::userLibraryLocation() {
 	if (!r_libs_user.isEmpty()) return r_libs_user;
-	return QDir (RKSettingsModuleGeneral::filesPath ()).absoluteFilePath ("library/" + RKSessionVars::RVersion (true));
+	return QDir(RKSettingsModuleGeneral::filesPath()).absoluteFilePath(u"library/"_s + RKSessionVars::RVersion(true));
 }
 
 QStringList RKSettingsModuleRPackages::libraryLocations () {
@@ -474,34 +475,38 @@ QStringList RKSettingsModuleRPackages::addUserLibLocTo (const QStringList& liblo
 	return liblocs;
 }
 
-QString RKSettingsModuleRPackages::libLocsCommand () {
-	RK_TRACE (SETTINGS);
+QString RKSettingsModuleRPackages::libLocsCommand() {
+	RK_TRACE(SETTINGS);
 
 	// For additional library locations configured inside RKWard, try to create them, as needed.
 	// This is especially important for versioned dirs (which will not exist after upgrading R, for instance)
 	QString command;
 	if (!liblocs.get().isEmpty()) {
 		bool first = true;
-		command = QLatin1String("local({\naddpaths <- unique (c(");
+		command = u"local({\naddpaths <- unique (c("_s;
 		const QStringList ll = expandLibLocs(liblocs);
 		for (const QString& libloc : ll) {
-			if (first) first = false;
-			else command.append (", ");
-			command.append (RObject::rQuote (libloc));
+			if (first)
+				first = false;
+			else
+				command.append(u", "_s);
+			command.append(RObject::rQuote(libloc));
 		}
-		command.append ("))\nlapply(addpaths, function(p) { if (!dir.exists(p)) try(dir.create(p, recursive=TRUE)) })\n})\n");
+		command.append(u"))\nlapply(addpaths, function(p) { if (!dir.exists(p)) try(dir.create(p, recursive=TRUE)) })\n})\n"_s);
 	}
 
 	// For add library locations set "the R way", try to interfere as little as possible.
-	command.append(".libPaths (unique (c (");
+	command.append(u".libPaths (unique (c ("_s);
 	bool first = true;
-	const QStringList ll = libraryLocations ();
+	const QStringList ll = libraryLocations();
 	for (const QString& libloc : ll) {
-		if (first) first = false;
-		else command.append (", ");
-		command.append (RObject::rQuote (libloc));
+		if (first)
+			first = false;
+		else
+			command.append(u", "_s);
+		command.append(RObject::rQuote(libloc));
 	}
-	command.append (")))");
+	command.append(u")))"_s);
 
 	return command;
 }
@@ -510,32 +515,32 @@ QString RKSettingsModuleRPackages::libLocsCommand () {
 QString RKSettingsModuleRPackages::pkgTypeOption () {
 	QString ret;
 #if defined Q_OS_WIN || defined Q_OS_MACOS
-	ret.append("options (pkgType=\"");
-	if (source_packages) ret.append("source");
-	else ret.append("binary");   // "automatically select appropriate binary"
-	ret.append("\")\n");
+	ret.append(u"options (pkgType=\""_s);
+	if (source_packages) ret.append(u"source"_s);
+	else ret.append(u"binary"_s);   // "automatically select appropriate binary"
+	ret.append(u"\")\n"_s);
 #endif
 	return ret;
 }
 
 //static
-QStringList RKSettingsModuleRPackages::makeRRunTimeOptionCommands () {
-	RK_TRACE (SETTINGS);
+QStringList RKSettingsModuleRPackages::makeRRunTimeOptionCommands() {
+	RK_TRACE(SETTINGS);
 	QStringList list;
 
-// package repositories
-	QString command = "options (repos=c (CRAN=" + RObject::rQuote (cran_mirror_url);
-	for (auto it = package_repositories.get().constBegin (); it != package_repositories.get().constEnd(); ++it) {
-		command.append (", " + RObject::rQuote (*it));
+	// package repositories
+	QString command = u"options (repos=c (CRAN="_s + RObject::rQuote(cran_mirror_url);
+	for (auto it = package_repositories.get().constBegin(); it != package_repositories.get().constEnd(); ++it) {
+		command.append(u", "_s + RObject::rQuote(*it));
 	}
-	list.append (command + "))\n");
+	list.append(command + u"))\n"_s);
 
 #if defined Q_OS_WIN || defined Q_OS_MACOS
-	list.append (pkgTypeOption ());
+	list.append(pkgTypeOption());
 #endif
 
-// library locations
-	list.append (libLocsCommand ());
+	// library locations
+	list.append(libLocsCommand());
 
 	return list;
 }
@@ -543,7 +548,7 @@ QStringList RKSettingsModuleRPackages::makeRRunTimeOptionCommands () {
 void RKSettingsModuleRPackages::syncConfig(KConfig *config, RKConfigBase::ConfigSyncAction a) {
 	RK_TRACE(SETTINGS);
 
-	KConfigGroup cg = config->group(QStringLiteral("R Settings"));
+	KConfigGroup cg = config->group(u"R Settings"_s);
 	cran_mirror_url.syncConfig(cg, a);
 	liblocs.syncConfig(cg, a);
 	archive_packages.syncConfig(cg, a);
@@ -553,8 +558,8 @@ void RKSettingsModuleRPackages::syncConfig(KConfig *config, RKConfigBase::Config
 	if (a == RKConfigBase::LoadConfig) {
 		if (RKSettingsModuleGeneral::storedConfigVersion () < RKSettingsModuleGeneral::RKWardConfig_0_6_3) {
 			auto v = package_repositories.get();
-			v.removeAll("http://rkward.sf.net/R");
-			v.append(RKWARD_REPO);
+			v.removeAll(u"http://rkward.sf.net/R"_s);
+			v.append(QStringLiteral(RKWARD_REPO));
 			package_repositories = v;
 		}
 	}
@@ -564,7 +569,7 @@ void RKSettingsModuleRPackages::validateSettingsInteractive (QList<RKSetupWizard
 	RK_TRACE (SETTINGS);
 
 	if (RKSettingsModuleGeneral::storedConfigVersion () < RKSettingsModuleGeneral::RKWardConfig_0_7_1) {
-		QString legacy_libloc = QDir (RKSettingsModuleGeneral::filesPath ()).absoluteFilePath (QStringLiteral("library"));
+		QString legacy_libloc = QDir(RKSettingsModuleGeneral::filesPath()).absoluteFilePath(u"library"_s);
 		if (liblocs.get().contains(legacy_libloc)) {
 			auto item = new RKSetupWizardItem(i18n("Unversioned library location"), i18n("The configured library locations (where R packages will be installed on this system) contains the directory '%1', "
 			                                  "which was suggested as a default library location in earlier versions of RKWard. Use of this directory is no longer "
@@ -574,10 +579,10 @@ void RKSettingsModuleRPackages::validateSettingsInteractive (QList<RKSetupWizard
 			item->addOption(i18nc("verb", "Rename"), i18n("Rename this location to include the version number of the currently running R. Packages will continue "
 			                                        "to work (if they are compatible with this version of R)."), [legacy_libloc](RKSetupWizard*) {
 									liblocs.get().removeAll(legacy_libloc);
-									QString new_loc = legacy_libloc + '-' + RKSessionVars::RVersion (true);
-									RInterface::issueCommand (QStringLiteral ("file.rename(%1, %2)\n").arg(RObject::rQuote(legacy_libloc), RObject::rQuote (new_loc)), RCommand::App);
-									liblocs.get().prepend (legacy_libloc + QStringLiteral ("-%v"));
-									RInterface::issueCommand (libLocsCommand(), RCommand::App);
+									QString new_loc = legacy_libloc + u'-' + RKSessionVars::RVersion(true);
+									RInterface::issueCommand(u"file.rename(%1, %2)\n"_s.arg(RObject::rQuote(legacy_libloc), RObject::rQuote(new_loc)), RCommand::App);
+									liblocs.get().prepend(legacy_libloc + u"-%v"_s);
+									RInterface::issueCommand(libLocsCommand(), RCommand::App);
 								});
 			item->addOption(i18nc("verb", "Remove"), i18n("Remove this location from the configuration (it will not be deleted on disk). You will have to "
 			                                        "re-install any packages that you want to keep."), [legacy_libloc](RKSetupWizard*) {


More information about the rkward-tracker mailing list