[education/rkward] /: Fix deprecation warnings (brings backs RKCompatibility namespace)

Thomas Friedrichsmeier null at kde.org
Sun Sep 21 20:45:24 BST 2025


Git commit 19345f297220c7c1868ce0cb92abfa1176cb0e92 by Thomas Friedrichsmeier.
Committed on 21/09/2025 at 19:36.
Pushed by tfry into branch 'master'.

Fix deprecation warnings (brings backs RKCompatibility namespace)

M  +1    -0    .gitlab-ci.yml
M  +2    -1    rkward/dialogs/rkloadlibsdialog.cpp
A  +24   -0    rkward/misc/rkcompatibility.h     [License: GPL(v2.0+)]
M  +2    -1    rkward/misc/rkfindbar.cpp
M  +2    -1    rkward/misc/rksaveobjectchooser.cpp
M  +2    -1    rkward/plugin/rkcheckbox.cpp
M  +2    -1    rkward/settings/rksettingsmodule.cpp
M  +2    -1    rkward/settings/rksettingsmoduleconsole.cpp
M  +2    -1    rkward/settings/rksettingsmoduleoutput.cpp
M  +5    -4    rkward/settings/rksettingsmodulewatch.cpp
M  +9    -1    rkward/windows/rktoplevelwindowgui.cpp

https://invent.kde.org/education/rkward/-/commit/19345f297220c7c1868ce0cb92abfa1176cb0e92

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 41a9807e9..933c55c5c 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -15,6 +15,7 @@ include:
       - /gitlab-templates/craft-macos-x86-64-qt6.yml
 #      - /gitlab-templates/flatpak.yml // just a waste of CPU power in the current state
 
+# NOTE: This is meant to modify the default linux-qt6.yml-job, and currently it does. It will need to be updated once the underlying name changes, though
 suse_tumbleweed_qt69:
   script:
     - git config --global --add safe.directory $CI_PROJECT_DIR
diff --git a/rkward/dialogs/rkloadlibsdialog.cpp b/rkward/dialogs/rkloadlibsdialog.cpp
index 258b4dc95..68779b11b 100644
--- a/rkward/dialogs/rkloadlibsdialog.cpp
+++ b/rkward/dialogs/rkloadlibsdialog.cpp
@@ -27,6 +27,7 @@ SPDX-License-Identifier: GPL-2.0-or-later
 
 #include "../core/robjectlist.h"
 #include "../misc/rkcommonfunctions.h"
+#include "../misc/rkcompatibility.h"
 #include "../misc/rkdynamicsearchline.h"
 #include "../misc/rkprogresscontrol.h"
 #include "../misc/rkstandardicons.h"
@@ -661,7 +662,7 @@ InstallPackagesWidget::InstallPackagesWidget(RKLoadLibsDialog *dialog) : RKLoadL
 	connect(filter_edit, &RKDynamicSearchLine::searchChanged, this, &InstallPackagesWidget::filterChanged);
 	rkward_packages_only = new QCheckBox(i18n("Show only packages providing RKWard dialogs"), this);
 	RKCommonFunctions::setTips(i18n("<p>Some but not all R packages come with plugins for RKWard. That means they provide a graphical user-interface in addition to R functions. Check this box to show only such packages.</p>"), rkward_packages_only);
-	connect(rkward_packages_only, &QCheckBox::stateChanged, this, &InstallPackagesWidget::filterChanged);
+	connect(rkward_packages_only, RKCompatibility::QCheckBox_checkStateChanged, this, &InstallPackagesWidget::filterChanged);
 	filterChanged();
 
 	horizontalSeparator = new QFrame(this);
diff --git a/rkward/misc/rkcompatibility.h b/rkward/misc/rkcompatibility.h
new file mode 100644
index 000000000..78ab98fa9
--- /dev/null
+++ b/rkward/misc/rkcompatibility.h
@@ -0,0 +1,24 @@
+/*
+rkcompatibility - This file is part of the RKWard project. Created: Sun Sep 21 2025
+SPDX-FileCopyrightText: 2025 by Thomas Friedrichsmeier <thomas.friedrichsmeier at kdemail.net>
+SPDX-FileContributor: The RKWard Team <rkward-devel at kde.org>
+SPDX-License-Identifier: GPL-2.0-or-later
+*/
+#ifndef RKCOMPATIBILITY_H
+#define RKCOMPATIBILITY_H
+
+#include <QCheckBox>
+/**
+This namespace holds helpers for supporting different versions of Q6/KF6, without spreading too many #ifdefs all around
+
+ at author Thomas Friedrichsmeier
+*/
+namespace RKCompatibility {
+#if QT_VERSION >= QT_VERSION_CHECK(6, 7, 0)
+inline constexpr auto QCheckBox_checkStateChanged = &QCheckBox::checkStateChanged;
+#else
+inline constexpr auto QCheckBox_checkStateChanged = &QCheckBox::stateChanged;
+#endif
+}; //namespace RKCompatibility
+
+#endif
diff --git a/rkward/misc/rkfindbar.cpp b/rkward/misc/rkfindbar.cpp
index fad814ae7..2383d1303 100644
--- a/rkward/misc/rkfindbar.cpp
+++ b/rkward/misc/rkfindbar.cpp
@@ -17,6 +17,7 @@ SPDX-License-Identifier: GPL-2.0-or-later
 #include <khistorycombobox.h>
 
 #include "rkcommonfunctions.h"
+#include "rkcompatibility.h"
 
 #include "../debug.h"
 
@@ -96,7 +97,7 @@ QCheckBox *RKFindBar::getOption(const RKFindBar::FindOptions option) {
 			RK_ASSERT(false);
 			return nullptr;
 		}
-		connect(action, &QCheckBox::stateChanged, this, &RKFindBar::searchChanged);
+		connect(action, RKCompatibility::QCheckBox_checkStateChanged, this, &RKFindBar::searchChanged);
 		default_actions.insert(option, action);
 	}
 
diff --git a/rkward/misc/rksaveobjectchooser.cpp b/rkward/misc/rksaveobjectchooser.cpp
index 190b796fe..14bc78ffc 100644
--- a/rkward/misc/rksaveobjectchooser.cpp
+++ b/rkward/misc/rksaveobjectchooser.cpp
@@ -21,6 +21,7 @@ SPDX-License-Identifier: GPL-2.0-or-later
 
 #include "../core/renvironmentobject.h"
 #include "../core/robjectlist.h"
+#include "../misc/rkcompatibility.h"
 #include "../misc/rkobjectlistview.h"
 
 #include "../debug.h"
@@ -52,7 +53,7 @@ RKSaveObjectChooser::RKSaveObjectChooser(QWidget *parent, const QString &initial
 	layout->addWidget(name_edit);
 
 	overwrite_confirm = new QCheckBox(i18n("Overwrite"), this);
-	connect(overwrite_confirm, &QCheckBox::stateChanged, this, &RKSaveObjectChooser::updateState);
+	connect(overwrite_confirm, RKCompatibility::QCheckBox_checkStateChanged, this, &RKSaveObjectChooser::updateState);
 	overwrite_warn = new KMessageWidget(i18n("The given object name already exists"));
 	overwrite_warn->setCloseButtonVisible(false);
 	hlayout = new QHBoxLayout();
diff --git a/rkward/plugin/rkcheckbox.cpp b/rkward/plugin/rkcheckbox.cpp
index 96467f13c..ba927bc72 100644
--- a/rkward/plugin/rkcheckbox.cpp
+++ b/rkward/plugin/rkcheckbox.cpp
@@ -11,6 +11,7 @@ SPDX-License-Identifier: GPL-2.0-or-later
 #include <qcheckbox.h>
 
 #include "../debug.h"
+#include "../misc/rkcompatibility.h"
 #include "../misc/xmlhelper.h"
 
 RKCheckBox::RKCheckBox(const QDomElement &element, RKComponent *parent_component, QWidget *parent_widget) : RKComponent(parent_component, parent_widget) {
@@ -29,7 +30,7 @@ RKCheckBox::RKCheckBox(const QDomElement &element, RKComponent *parent_component
 	checkbox = new QCheckBox(xml->i18nStringAttribute(element, QStringLiteral("label"), QString(), DL_WARNING), this);
 	vbox->addWidget(checkbox);
 	checkbox->setChecked(xml->getBoolAttribute(element, QStringLiteral("checked"), false, DL_INFO));
-	connect(checkbox, &QCheckBox::stateChanged, this, &RKCheckBox::changedStateFromUi);
+	connect(checkbox, RKCompatibility::QCheckBox_checkStateChanged, this, &RKCheckBox::changedStateFromUi);
 
 	// initialize
 	updating = false;
diff --git a/rkward/settings/rksettingsmodule.cpp b/rkward/settings/rksettingsmodule.cpp
index 665144480..b587e2eab 100644
--- a/rkward/settings/rksettingsmodule.cpp
+++ b/rkward/settings/rksettingsmodule.cpp
@@ -7,6 +7,7 @@ SPDX-License-Identifier: GPL-2.0-or-later
 #include "rksettingsmodule.h"
 
 #include "../debug.h"
+#include "../misc/rkcompatibility.h"
 #include "../misc/rkspinbox.h"
 #include "../rkward.h"
 #include "rksettings.h"
@@ -46,7 +47,7 @@ template <>
 QCheckBox *RKConfigValue<bool, bool>::makeCheckbox(const QString &label, RKSettingsModuleWidget *module) {
 	QCheckBox *ret = new QCheckBox(label);
 	ret->setChecked(value);
-	QObject::connect(ret, &QCheckBox::stateChanged, module, &RKSettingsModuleWidget::change);
+	QObject::connect(ret, RKCompatibility::QCheckBox_checkStateChanged, module, &RKSettingsModuleWidget::change);
 	QObject::connect(module, &RKSettingsModuleWidget::apply, module, [ret, this]() { this->value = ret->isChecked(); });
 	return ret;
 }
diff --git a/rkward/settings/rksettingsmoduleconsole.cpp b/rkward/settings/rksettingsmoduleconsole.cpp
index d68607743..4ab7a03e1 100644
--- a/rkward/settings/rksettingsmoduleconsole.cpp
+++ b/rkward/settings/rksettingsmoduleconsole.cpp
@@ -16,6 +16,7 @@ SPDX-License-Identifier: GPL-2.0-or-later
 #include <qlabel.h>
 #include <qlayout.h>
 
+#include "../misc/rkcompatibility.h"
 #include "../misc/rkspinbox.h"
 #include "../misc/rkstandardicons.h"
 #include "../misc/rkstyle.h"
@@ -70,7 +71,7 @@ class RKSettingsPageConsole : public RKSettingsModuleWidget {
 		                                                                                                                                      {(int)RKSettingsModuleConsole::AlwaysAdd, i18n("Add all commands")}}),
 		                                                                                                             this);
 		add_piped_commands_to_history_box->setEnabled(pipe_user_commands_through_console_box->isChecked());
-		connect(pipe_user_commands_through_console_box, &QCheckBox::stateChanged, add_piped_commands_to_history_box, [add_piped_commands_to_history_box](int state) {
+		connect(pipe_user_commands_through_console_box, RKCompatibility::QCheckBox_checkStateChanged, add_piped_commands_to_history_box, [add_piped_commands_to_history_box](int state) {
 			add_piped_commands_to_history_box->setEnabled(state);
 		});
 		vbox->addWidget(add_piped_commands_to_history_box);
diff --git a/rkward/settings/rksettingsmoduleoutput.cpp b/rkward/settings/rksettingsmoduleoutput.cpp
index 3c020c929..eba7802a1 100644
--- a/rkward/settings/rksettingsmoduleoutput.cpp
+++ b/rkward/settings/rksettingsmoduleoutput.cpp
@@ -20,6 +20,7 @@ SPDX-License-Identifier: GPL-2.0-or-later
 #include "../debug.h"
 #include "../misc/getfilenamewidget.h"
 #include "../misc/rkcommonfunctions.h"
+#include "../misc/rkcompatibility.h"
 #include "../misc/rkspinbox.h"
 #include "../misc/rkstandardicons.h"
 #include "../misc/rkstyle.h"
@@ -115,7 +116,7 @@ class RKSettingsPageOutput : public RKSettingsModuleWidget {
 		auto auto_raise_box = RKSettingsModuleOutput::auto_raise.makeCheckbox(i18n("raise window on new output"), this);
 		group_layout->addWidget(auto_raise_box);
 		auto_raise_box->setEnabled(RKSettingsModuleOutput::auto_show);
-		connect(auto_show_box, &QCheckBox::stateChanged, auto_raise_box, [auto_raise_box](int state) {
+		connect(auto_show_box, RKCompatibility::QCheckBox_checkStateChanged, auto_raise_box, [auto_raise_box](int state) {
 			auto_raise_box->setEnabled(state);
 		});
 
diff --git a/rkward/settings/rksettingsmodulewatch.cpp b/rkward/settings/rksettingsmodulewatch.cpp
index dbeef47b5..1499d534e 100644
--- a/rkward/settings/rksettingsmodulewatch.cpp
+++ b/rkward/settings/rksettingsmodulewatch.cpp
@@ -17,6 +17,7 @@ SPDX-License-Identifier: GPL-2.0-or-later
 #include <qlabel.h>
 
 #include "../misc/rkcommonfunctions.h"
+#include "../misc/rkcompatibility.h"
 #include "../misc/rkspinbox.h"
 #include "../misc/rkstandardicons.h"
 #include "../misc/rkstyle.h"
@@ -206,22 +207,22 @@ class RKSettingsPageWatch : public RKSettingsModuleWidget {
 
 		filter_boxes.input = new QCheckBox();
 		filter_boxes.input->setChecked(state & RKSettingsModuleWatch::ShowInput);
-		connect(filter_boxes.input, &QCheckBox::stateChanged, this, &RKSettingsPageWatch::changedSetting);
+		connect(filter_boxes.input, RKCompatibility::QCheckBox_checkStateChanged, this, &RKSettingsPageWatch::changedSetting);
 		layout->addWidget(filter_boxes.input, row, 1);
 
 		filter_boxes.output = new QCheckBox();
 		filter_boxes.output->setChecked(state & RKSettingsModuleWatch::ShowOutput);
-		connect(filter_boxes.output, &QCheckBox::stateChanged, this, &RKSettingsPageWatch::changedSetting);
+		connect(filter_boxes.output, RKCompatibility::QCheckBox_checkStateChanged, this, &RKSettingsPageWatch::changedSetting);
 		layout->addWidget(filter_boxes.output, row, 2);
 
 		filter_boxes.error = new QCheckBox();
 		filter_boxes.error->setChecked(state & RKSettingsModuleWatch::ShowError);
-		connect(filter_boxes.error, &QCheckBox::stateChanged, this, &RKSettingsPageWatch::changedSetting);
+		connect(filter_boxes.error, RKCompatibility::QCheckBox_checkStateChanged, this, &RKSettingsPageWatch::changedSetting);
 		layout->addWidget(filter_boxes.error, row, 3);
 
 		filter_boxes.raise = new QCheckBox();
 		filter_boxes.raise->setChecked(state & RKSettingsModuleWatch::RaiseWindow);
-		connect(filter_boxes.raise, &QCheckBox::stateChanged, this, &RKSettingsPageWatch::changedSetting);
+		connect(filter_boxes.raise, RKCompatibility::QCheckBox_checkStateChanged, this, &RKSettingsPageWatch::changedSetting);
 		layout->addWidget(filter_boxes.raise, row, 4);
 
 		return filter_boxes;
diff --git a/rkward/windows/rktoplevelwindowgui.cpp b/rkward/windows/rktoplevelwindowgui.cpp
index 43196b389..2d1e6e7b5 100644
--- a/rkward/windows/rktoplevelwindowgui.cpp
+++ b/rkward/windows/rktoplevelwindowgui.cpp
@@ -18,6 +18,7 @@ SPDX-License-Identifier: GPL-2.0-or-later
 #include <kactioncollection.h>
 #include <kcolorscheme_version.h>
 #include <kshortcutsdialog.h>
+#include <kxmlgui_version.h>
 #include <kxmlguifactory.h>
 
 #include <QDomDocument>
@@ -191,7 +192,14 @@ void RKTopLevelWindowGUI::showSwitchApplicationLanguage() {
 	RK_TRACE(APP);
 
 	// Uggh. No direct or static access to KSwitchLanguageDialog...
-	if (!help_menu_dummy) help_menu_dummy = new KHelpMenu(for_window, QString(), false);
+	if (!help_menu_dummy) {
+#if KXMLGUI_VERSION >= QT_VERSION_CHECK(6, 9, 0)
+		help_menu_dummy = new KHelpMenu(for_window);
+		help_menu_dummy->setShowWhatsThis(false);
+#else
+		help_menu_dummy = new KHelpMenu(for_window, QString(), false);
+#endif
+	}
 	help_menu_dummy->switchApplicationLanguage();
 }
 



More information about the rkward-tracker mailing list