Git commit c6ef1e0279dc2fceac1f02d4125f945960cbf4ac by Thomas Friedrichsmeier.
Committed on 31/01/2026 at 08:16.
Pushed by tfry into branch 'master'.
Add missing override keyword on several dtors
M +1 -2 rkward/core/rcontainerobject.h
M +1 -1 rkward/core/renvironmentobject.h
M +1 -1 rkward/core/rfunctionobject.h
M +1 -1 rkward/core/rkmodificationtracker.h
M +3 -3 rkward/core/rkpseudoobjects.h
M +1 -1 rkward/core/rkrownames.h
M +1 -1 rkward/rbackend/rkrbackend.h
M +0 -2 rkward/settings/rksettingsmodule.h
https://invent.kde.org/education/rkward/-/commit/c6ef1e0279dc2fceac1f02d4125f945960cbf4ac
diff --git a/rkward/core/rcontainerobject.h b/rkward/core/rcontainerobject.h
index cdb5201e1..d77dcd673 100644
--- a/rkward/core/rcontainerobject.h
+++ b/rkward/core/rcontainerobject.h
@@ -22,8 +22,7 @@ Internal representation of objects in the R-workspace that contain other objects
class RContainerObject : public RObject {
public:
RContainerObject(RObject *parent, const QString &name);
-
- ~RContainerObject();
+ ~RContainerObject() override;
/** update the given child with the given data. Since the child may be mismatching, and may need to be recreated, returns a pointer to the child (old or new) */
RObject *updateChildStructure(RObject *child, RData *new_data, bool just_created = false);
diff --git a/rkward/core/renvironmentobject.h b/rkward/core/renvironmentobject.h
index 5942c4a6e..da425b80e 100644
--- a/rkward/core/renvironmentobject.h
+++ b/rkward/core/renvironmentobject.h
@@ -20,7 +20,7 @@ This class roughly corresponds to an environment in R. It keeps a list of all ob
class REnvironmentObject : public RContainerObject {
public:
REnvironmentObject(RContainerObject *parent, const QString &name);
- ~REnvironmentObject();
+ ~REnvironmentObject() override;
using RObject::updateFromR;
/** like updateFromR, but only update new / removed symbols from R. Theoretically this could be defined in RContainerObject, but the only use case is for environments. */
diff --git a/rkward/core/rfunctionobject.h b/rkward/core/rfunctionobject.h
index 352ec39cd..bb2074878 100644
--- a/rkward/core/rfunctionobject.h
+++ b/rkward/core/rfunctionobject.h
@@ -20,7 +20,7 @@ Internal representation of function objects in the R workspace
class RFunctionObject : public RObject {
public:
RFunctionObject(RObject *parent, const QString &name);
- ~RFunctionObject();
+ ~RFunctionObject() override;
/** reimplemented from RObject to handle function arguments */
bool updateStructure(RData *new_data) override;
diff --git a/rkward/core/rkmodificationtracker.h b/rkward/core/rkmodificationtracker.h
index 4b3d09a5b..060b6e5a5 100644
--- a/rkward/core/rkmodificationtracker.h
+++ b/rkward/core/rkmodificationtracker.h
@@ -115,7 +115,7 @@ This class takes care of propagating object-modifications to all editors/variabl
class RKModificationTracker : public RKObjectListModel {
public:
explicit RKModificationTracker(QObject *parent);
- ~RKModificationTracker();
+ ~RKModificationTracker() override;
static RKModificationTracker *instance() { return _instance; };
[suppressed due to size limit]
diff --git a/rkward/core/rkpseudoobjects.h b/rkward/core/rkpseudoobjects.h
index 348af972c..0abbb53f2 100644
--- a/rkward/core/rkpseudoobjects.h
+++ b/rkward/core/rkpseudoobjects.h
@@ -23,7 +23,7 @@ This class represents a "pseudo" list of the S4 slots of the corresponding paren
class RSlotsPseudoObject : public RContainerObject {
public:
explicit RSlotsPseudoObject(RObject *parent);
- ~RSlotsPseudoObject();
+ ~RSlotsPseudoObject() override;
QString getFullName(int) const override;
QString makeChildName(const QString &short_child_name, int) const override;
@@ -39,7 +39,7 @@ rather call it a "special" object, instead).
class RKNamespaceObject : public REnvironmentObject {
public:
explicit RKNamespaceObject(REnvironmentObject *package, const QString &name = QString());
- ~RKNamespaceObject();
+ ~RKNamespaceObject() override;
QString getFullName(int) const override;
QString makeChildName(const QString &short_child_name, int) const override;
@@ -63,7 +63,7 @@ It exists only once, as a direct child of the RObjectList.
class RKOrphanNamespacesObject : public REnvironmentObject {
public:
explicit RKOrphanNamespacesObject(RObjectList *parent);
- ~RKOrphanNamespacesObject();
+ ~RKOrphanNamespacesObject() override;
QString getFullName(int options) const override;
QString makeChildName(const QString &short_child_name, int options) const override;
diff --git a/rkward/core/rkrownames.h b/rkward/core/rkrownames.h
index 9e7c00eda..bd3614e9c 100644
--- a/rkward/core/rkrownames.h
+++ b/rkward/core/rkrownames.h
@@ -15,7 +15,7 @@ This object is special in that it exists during editing, only. It is not represe
class RKRowNames : public RKVariable {
public:
explicit RKRowNames(RContainerObject *parent);
- ~RKRowNames();
+ ~RKRowNames() override;
QString getFullName(int) const override;
/** Reimplemented to do nothing. There is no metadata on the rownames. */
diff --git a/rkward/rbackend/rkrbackend.h b/rkward/rbackend/rkrbackend.h
index 849f0c8a7..8764f1f8b 100644
--- a/rkward/rbackend/rkrbackend.h
+++ b/rkward/rbackend/rkrbackend.h
@@ -58,7 +58,7 @@ class RKRBackend : public RKROutputBuffer {
/** constructor. Only one RKRBackend should ever be created, and that happens in RInterface::RInterface (). */
RKRBackend();
/** destructor */
- virtual ~RKRBackend();
+ ~RKRBackend() override;
/** interrupt processing of the current command. This is much like the user pressing Ctrl+C in a terminal with R. This is probably the only non-portable function in RKRBackend, but I can't see a good way around placing it here, or to make it portable. */
static void interruptProcessing(bool interrupt);
diff --git a/rkward/settings/rksettingsmodule.h b/rkward/settings/rksettingsmodule.h
index 33ea25538..b09fc5bec 100644
--- a/rkward/settings/rksettingsmodule.h
+++ b/rkward/settings/rksettingsmodule.h
@@ -67,7 +67,6 @@ template <typename T, typename STORAGE_T = T>
class RKConfigValue : public RKConfigBase {
public:
RKConfigValue(const char *name, const T &default_value) : RKConfigBase(name), value(default_value) {};
- ~RKConfigValue() {};
void loadConfig(KConfigGroup &cg) override {
value = (T)cg.readEntry(name, (STORAGE_T)value);
@@ -123,7 +122,6 @@ class RKConfigGroup : public RKConfigBase {
for (size_t i = 0; i < count; ++i)
values[i] = (_values + i);
}
- ~RKConfigGroup() {};
void loadConfig(KConfigGroup &cg) override {
KConfigGroup lcg = cg;
if (name && name[0]) {