[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