[rkward/frameworks] rkward: Add override keyword, where appliable (thanks to the clang-modernize tool)

Thomas Friedrichsmeier thomas.friedrichsmeier at ruhr-uni-bochum.de
Fri Nov 20 12:54:12 UTC 2015


Git commit 8974944e3ab8e9eb619ff06fb640cb847a47b0ea by Thomas Friedrichsmeier.
Committed on 20/11/2015 at 12:18.
Pushed by tfry into branch 'frameworks'.

Add override keyword, where appliable (thanks to the clang-modernize tool)

M  +1    -1    rkward/agents/rkeditobjectagent.h
M  +1    -1    rkward/agents/rkloadagent.h
M  +1    -1    rkward/agents/rkquitagent.h
M  +1    -1    rkward/agents/rksaveagent.h
M  +4    -4    rkward/core/rcontainerobject.h
M  +9    -9    rkward/core/renvironmentobject.h
M  +1    -1    rkward/core/rfunctionobject.h
M  +9    -9    rkward/core/rkmodificationtracker.h
M  +11   -11   rkward/core/rkpseudoobjects.h
M  +9    -9    rkward/core/rkrownames.h
M  +6    -6    rkward/core/rkvariable.h
M  +1    -1    rkward/core/robject.h
M  +11   -11   rkward/core/robjectlist.h
M  +1    -1    rkward/dataeditor/rkeditor.h
M  +3    -3    rkward/dataeditor/rkeditordataframe.h
M  +38   -38   rkward/dataeditor/rkvareditmodel.h
M  +3    -3    rkward/dataeditor/twintablemember.h
M  +1    -1    rkward/dialogs/rkerrordialog.cpp
M  +2    -2    rkward/dialogs/rkimportdialog.h
M  +1    -1    rkward/dialogs/rkloadlibsdialog.cpp
M  +13   -14   rkward/dialogs/rkloadlibsdialog.h
M  +3    -3    rkward/dialogs/startupdialog.h
M  +2    -2    rkward/misc/celleditor.h
M  +7    -7    rkward/misc/editlabelsdialog.h
M  +1    -1    rkward/misc/multistringselector.cpp
M  +13   -13   rkward/misc/rkaccordiontable.cpp
M  +6    -6    rkward/misc/rkaccordiontable.h
M  +1    -1    rkward/misc/rkobjectlistview.cpp
M  +5    -5    rkward/misc/rkobjectlistview.h
M  +3    -3    rkward/misc/rkprogresscontrol.h
M  +2    -2    rkward/misc/rksaveobjectchooser.h
M  +4    -4    rkward/misc/rkspinbox.h
M  +5    -5    rkward/misc/rktableview.h
M  +2    -2    rkward/plugin/rkabstractoptionselector.h
M  +1    -1    rkward/plugin/rkcomponent.h
M  +1    -1    rkward/plugin/rkcomponentcontext.h
M  +1    -1    rkward/plugin/rkcomponentmap.h
M  +51   -51   rkward/plugin/rkcomponentproperties.h
M  +9    -9    rkward/plugin/rkmatrixinput.h
M  +14   -14   rkward/plugin/rkoptionset.h
M  +3    -3    rkward/plugin/rkpluginspinbox.h
M  +10   -10   rkward/plugin/rkstandardcomponent.h
M  +3    -3    rkward/plugin/rkvalueselector.h
M  +7    -7    rkward/rbackend/rcommandstack.h
M  +2    -2    rkward/rbackend/rinterface.h
M  +5    -5    rkward/rbackend/rkbackendtransmitter.h
M  +5    -5    rkward/rbackend/rkfrontendtransmitter.h
M  +1    -1    rkward/rbackend/rkrbackend.h
M  +1    -1    rkward/rbackend/rkrbackendprotocol_frontend.h
M  +1    -1    rkward/rbackend/rktransmitter.h
M  +1    -1    rkward/rbackend/rkwarddevice/rkgraphicsdevice.h
M  +1    -1    rkward/rbackend/rkwarddevice/rkgraphicsdevice_backendtransmitter.h
M  +7    -7    rkward/rkconsole.h
M  +4    -4    rkward/rkward.h
M  +1    -1    rkward/rkward_startup_wrapper.cpp
M  +7    -7    rkward/robjectviewer.h
M  +9    -9    rkward/scriptbackends/qtscriptbackend.h
M  +8    -8    rkward/scriptbackends/simplebackend.h
M  +1    -1    rkward/settings/rksettings.h
M  +3    -3    rkward/settings/rksettingsmodulecommandeditor.h
M  +4    -4    rkward/settings/rksettingsmoduleconsole.h
M  +3    -3    rkward/settings/rksettingsmoduledebug.h
M  +3    -3    rkward/settings/rksettingsmodulegeneral.h
M  +4    -4    rkward/settings/rksettingsmodulegraphics.h
M  +4    -4    rkward/settings/rksettingsmoduleobjectbrowser.h
M  +3    -3    rkward/settings/rksettingsmoduleoutput.h
M  +10   -10   rkward/settings/rksettingsmoduleplugins.h
M  +7    -7    rkward/settings/rksettingsmoduler.h
M  +3    -3    rkward/settings/rksettingsmodulewatch.h
M  +2    -2    rkward/windows/detachedwindowcontainer.h
M  +2    -2    rkward/windows/rcontrolwindow.h
M  +5    -6    rkward/windows/rkcommandeditorwindow.h
M  +3    -3    rkward/windows/rkcommandlog.h
M  +2    -2    rkward/windows/rkdebugmessagewindow.h
M  +2    -2    rkward/windows/rkfilebrowser.h
M  +6    -6    rkward/windows/rkhelpsearchwindow.h
M  +3    -3    rkward/windows/rkhtmlwindow.h
M  +4    -4    rkward/windows/rkmdiwindow.h
M  +2    -2    rkward/windows/rktoolwindowbar.h
M  +5    -5    rkward/windows/rkwindowcatcher.h
M  +3    -3    rkward/windows/rkworkplace.cpp
M  +2    -2    rkward/windows/robjectbrowser.h

http://commits.kde.org/rkward/8974944e3ab8e9eb619ff06fb640cb847a47b0ea

diff --git a/rkward/agents/rkeditobjectagent.h b/rkward/agents/rkeditobjectagent.h
index 418b2d2..df3c4a1 100644
--- a/rkward/agents/rkeditobjectagent.h
+++ b/rkward/agents/rkeditobjectagent.h
@@ -34,7 +34,7 @@ public:
 
 	~RKEditObjectAgent ();
 protected:
-	void rCommandDone (RCommand *command);
+	void rCommandDone (RCommand *command) override;
 private:
 	QStringList object_names;
 	int done_command_id;
diff --git a/rkward/agents/rkloadagent.h b/rkward/agents/rkloadagent.h
index 93e441b..a69aca0 100644
--- a/rkward/agents/rkloadagent.h
+++ b/rkward/agents/rkloadagent.h
@@ -34,7 +34,7 @@ public:
 
 	~RKLoadAgent ();
 protected:
-	void rCommandDone (RCommand *command);
+	void rCommandDone (RCommand *command) override;
 private:
 /// needed if file to be loaded is remote
 	QString tmpfile;
diff --git a/rkward/agents/rkquitagent.h b/rkward/agents/rkquitagent.h
index e752794..c620496 100644
--- a/rkward/agents/rkquitagent.h
+++ b/rkward/agents/rkquitagent.h
@@ -37,7 +37,7 @@ public slots:
 	void doQuitNow ();
 	void showWaitDialog ();
 protected:
-	void rCommandDone (RCommand *command);
+	void rCommandDone (RCommand *command) override;
 private:
 	RKProgressControl *cancel_dialog;
 	static bool quitting;
diff --git a/rkward/agents/rksaveagent.h b/rkward/agents/rksaveagent.h
index 692ca8c..dc62f12 100644
--- a/rkward/agents/rksaveagent.h
+++ b/rkward/agents/rksaveagent.h
@@ -38,7 +38,7 @@ public:
 	
 	~RKSaveAgent ();
 protected:
-	void rCommandDone (RCommand *command);
+	void rCommandDone (RCommand *command) override;
 private:
 	bool askURL ();
 	void done ();
diff --git a/rkward/core/rcontainerobject.h b/rkward/core/rcontainerobject.h
index 2e670e6..7f97b32 100644
--- a/rkward/core/rcontainerobject.h
+++ b/rkward/core/rcontainerobject.h
@@ -40,7 +40,7 @@ public:
 	RObject *createChildFromStructure (RData *child_data, const QString &child_name, int position);
 
 	/** reimplemented from RObject to also update children */
-	bool updateStructure (RData *new_data);
+	bool updateStructure (RData *new_data) override;
 
 	int numChildren () const;
 	/** returns true, if there are no children in this container. Note: of course the object list may not be up to date! */
@@ -62,9 +62,9 @@ public:
 	void moveChild (RObject* child, int from_index, int to_index);
 
 	/** reimplemented from RObject to do nothing at all, including not raising an assert. This is because container objects do not have any edit data, themselves, but may be opened for editing, e.g. as a data.frame */
-	void beginEdit () {};
+	void beginEdit () override {};
 	/** see beginEdit() */
-	void endEdit () {};
+	void endEdit () override {};
 	/** return an RKVariable representing the row-names object for this container */
 	RKRowNames* rowNames ();
 private:
@@ -72,7 +72,7 @@ private:
 	void updateRowNamesObject ();
 protected:
 	/** reimplemented from RObject to actually search for matching objects among the children */
-	RObject *findObjects (const QStringList &path, RObjectSearchMap *matches, const QString &op);
+	RObject *findObjects (const QStringList &path, RObjectSearchMap *matches, const QString &op) override;
 
 	void updateChildren (RData *new_children);
 	RObjectMap childmap;
diff --git a/rkward/core/renvironmentobject.h b/rkward/core/renvironmentobject.h
index 5125c02..3a13e87 100644
--- a/rkward/core/renvironmentobject.h
+++ b/rkward/core/renvironmentobject.h
@@ -32,23 +32,23 @@ public:
 	REnvironmentObject (RContainerObject *parent, const QString &name);
 	~REnvironmentObject ();
 
-	void updateFromR (RCommandChain *chain);
+	void updateFromR (RCommandChain *chain) override;
 /** 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. */
 	virtual void updateFromR (RCommandChain *chain, const QStringList &current_symbols);
 
-	QString getFullName () const;
-	QString makeChildName (const QString &short_child_name, bool misplaced=false) const;
-	QString makeChildBaseName (const QString &short_child_name) const;
+	QString getFullName () const override;
+	QString makeChildName (const QString &short_child_name, bool misplaced=false) const override;
+	QString makeChildBaseName (const QString &short_child_name) const override;
 /** reimplemented from RContainerObject: If this is an environment var, call RContainerObject::writeMetaData (). Else, do nothing. An environment has no meta data. */
-	void writeMetaData (RCommandChain *chain);
+	void writeMetaData (RCommandChain *chain) override;
 	QString packageName () const;
-	QString getObjectDescription () const;
+	QString getObjectDescription () const override;
 protected:
-	bool updateStructure (RData *new_data);
+	bool updateStructure (RData *new_data) override;
 /// reimplemented from RContainerObject to call "remove (objectname)" instead of "objectname <- NULL"
-	QString removeChildCommand (RObject *object) const;
+	QString removeChildCommand (RObject *object) const override;
 /// reimplemented from RContainerObject to call "remove (objectname)" instead of "objectname <- NULL"
-	QString renameChildCommand (RObject *object, const QString &new_name) const;
+	QString renameChildCommand (RObject *object, const QString &new_name) const override;
 friend class RObject;
 	void updateNamespace (RData *new_data);
 };
diff --git a/rkward/core/rfunctionobject.h b/rkward/core/rfunctionobject.h
index 2518028..76a087f 100644
--- a/rkward/core/rfunctionobject.h
+++ b/rkward/core/rfunctionobject.h
@@ -33,7 +33,7 @@ public:
 	~RFunctionObject ();
 
 /** reimplemented from RObject to handle function arguments */
-	bool updateStructure (RData *new_data);
+	bool updateStructure (RData *new_data) override;
 	QString printArgs () const;
 protected:
 	QStringList argnames;
diff --git a/rkward/core/rkmodificationtracker.h b/rkward/core/rkmodificationtracker.h
index 783c2a5..344de9f 100644
--- a/rkward/core/rkmodificationtracker.h
+++ b/rkward/core/rkmodificationtracker.h
@@ -90,24 +90,24 @@ protected:
 	virtual ~RKObjectListModel ();
 public:
 	/** implements QAbstractItemModel::index() */
-	QModelIndex index (int row, int column, const QModelIndex& parent = QModelIndex ()) const;
+	QModelIndex index (int row, int column, const QModelIndex& parent = QModelIndex ()) const override;
 	/** implements QAbstractItemModel::parent() */
-	QModelIndex parent (const QModelIndex& index) const;
+	QModelIndex parent (const QModelIndex& index) const override;
 	/** implements QAbstractItemModel::rowCount() */
-	int rowCount (const QModelIndex& parent = QModelIndex ()) const;
+	int rowCount (const QModelIndex& parent = QModelIndex ()) const override;
 	/** implements QAbstractItemModel::columnCount(). This is identical for all items */
-	int columnCount (const QModelIndex& parent = QModelIndex ()) const;
+	int columnCount (const QModelIndex& parent = QModelIndex ()) const override;
 	/** implements QAbstractItemModel::data() */
-	QVariant data (const QModelIndex& index, int role = Qt::DisplayRole) const;
+	QVariant data (const QModelIndex& index, int role = Qt::DisplayRole) const override;
 	/** reimplemented from  QAbstractItemModel::headerData() to provide column names */
-	QVariant headerData (int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const;
+	QVariant headerData (int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const override;
 
 	/** reimplemented from  QAbstractItemModel::canFetchMore() */
-	bool canFetchMore (const QModelIndex &parent) const;
+	bool canFetchMore (const QModelIndex &parent) const override;
 	/** reimplemented from  QAbstractItemModel::fetchMore() */
-	void fetchMore (const QModelIndex &parent);
+	void fetchMore (const QModelIndex &parent) override;
 	/** reimplemented from  QAbstractItemModel::hasChildren() */
-	bool hasChildren (const QModelIndex &parent = QModelIndex ()) const; 
+	bool hasChildren (const QModelIndex &parent = QModelIndex ()) const override; 
 
 	/** convenience function to create an index for a particular object */
 	QModelIndex indexFor (RObject *object) const;
diff --git a/rkward/core/rkpseudoobjects.h b/rkward/core/rkpseudoobjects.h
index 6455338..f14d5f7 100644
--- a/rkward/core/rkpseudoobjects.h
+++ b/rkward/core/rkpseudoobjects.h
@@ -35,8 +35,8 @@ public:
 	explicit RSlotsPseudoObject (RObject *parent);
 	~RSlotsPseudoObject ();
 
-	QString getFullName () const;
-	QString makeChildName (const QString &short_child_name, bool misplaced=false) const;
+	QString getFullName () const override;
+	QString makeChildName (const QString &short_child_name, bool misplaced=false) const override;
 };
 
 /**
@@ -51,9 +51,9 @@ public:
 	explicit RKNamespaceObject (REnvironmentObject* package, const QString name = QString ());
 	~RKNamespaceObject ();
 
-	QString getFullName () const;
-	QString makeChildName (const QString &short_child_name, bool misplaced=false) const;
-	QString makeChildBaseName (const QString &short_child_name) const;
+	QString getFullName () const override;
+	QString makeChildName (const QString &short_child_name, bool misplaced=false) const override;
+	QString makeChildBaseName (const QString &short_child_name) const override;
 	QString namespaceName () const { return namespace_name; };
 private:
 	QString namespace_name;
@@ -75,17 +75,17 @@ public:
 	explicit RKOrphanNamespacesObject (RObjectList *parent);
 	~RKOrphanNamespacesObject ();
 
-	QString getFullName () const;
-	QString makeChildName (const QString &short_child_name, bool misplaced=false) const;
-	QString makeChildBaseName (const QString &short_child_name) const;
-	QString getObjectDescription () const;
+	QString getFullName () const override;
+	QString makeChildName (const QString &short_child_name, bool misplaced=false) const override;
+	QString makeChildBaseName (const QString &short_child_name) const override;
+	QString getObjectDescription () const override;
 
 	RKNamespaceObject *findOrphanNamespace (const QString &name) const;
 
 	/** should not be called on this object. Reimplemented to raise an assert, and do nothing else. */
-	void updateFromR (RCommandChain *chain);
+	void updateFromR (RCommandChain *chain) override;
 	/** reimplemented from REnvironmentObject */
-	void updateFromR (RCommandChain *chain, const QStringList &current_symbols);
+	void updateFromR (RCommandChain *chain, const QStringList &current_symbols) override;
 };
 
 #endif
diff --git a/rkward/core/rkrownames.h b/rkward/core/rkrownames.h
index 3536ec3..6bbf02f 100644
--- a/rkward/core/rkrownames.h
+++ b/rkward/core/rkrownames.h
@@ -27,25 +27,25 @@ public:
 	explicit RKRowNames (RContainerObject *parent);
 	~RKRowNames ();
 
-	QString getFullName () const;
+	QString getFullName () const override;
 /** Reimplemented to return "row.names" */
-	QString getBaseName () const { return QString ("row.names"); };
+	QString getBaseName () const override { return QString ("row.names"); };
 /** Reimplemented to do nothing. There is no metadata on the rownames. */
-	void writeMetaData (RCommandChain *) {};
+	void writeMetaData (RCommandChain *) override {};
 
 /** Reimplemented to always try to write data as numbers, if possible */
-	void writeData (int from_row, int to_row, RCommandChain *chain=0);
+	void writeData (int from_row, int to_row, RCommandChain *chain=0) override;
 /** Reimplemented to check, whether the values are all 1:n, custom, or invalid. */
-	void setText (int row, const QString &text);
+	void setText (int row, const QString &text) override;
 /** Reimplemented to also adjust the subsequent row names, if, and only if rownames are 1:n */
-	void removeRows (int from_row, int to_row);
+	void removeRows (int from_row, int to_row) override;
 /** Reimplemented to give the new row and appropriate default name, and to adjust the subsequent row names, if, and only if rownames are 1:n */
-	void insertRows (int row, int count);
+	void insertRows (int row, int count) override;
 protected:
 /** Reimplemented to disable duplicate checks during the setText() calls within */
-	void setCharacterFromR (int from_row, int to_row, const QStringList &data);
+	void setCharacterFromR (int from_row, int to_row, const QStringList &data) override;
 /** Reimplemented to assume sequential row number on initialization */
-	void beginEdit ();
+	void beginEdit () override;
 private:
 /** @returns: true if the text was already unique, false, if it had to be adjusted */
 	bool makeUnique (QString *text, bool non_sequentials_only);
diff --git a/rkward/core/rkvariable.h b/rkward/core/rkvariable.h
index 38a697f..ee68fa2 100644
--- a/rkward/core/rkvariable.h
+++ b/rkward/core/rkvariable.h
@@ -44,9 +44,9 @@ public:
 	void setVarType (RObject::RDataType, bool sync=true);
 
 /** reimplemented from RObject to also store value labels/factor levels (and in the future probably futher info) */
-	void writeMetaData (RCommandChain *chain);
+	void writeMetaData (RCommandChain *chain) override;
 friend class RContainerObject;
-	void rCommandDone (RCommand *command);
+	void rCommandDone (RCommand *command) override;
 public:
 ////////////// BEGIN: data handling ////////////////////////
 /** the Status enum is used for both keeping track of the entire row and inidvidual cells. For single cells the meaning should be obvious. The entire row
@@ -58,7 +58,7 @@ is set to Unused, if _no_ cell in the row is used, Valid if _all_ cells in the r
 /** syncs pending data changes to the backend */
 	void syncDataToR ();
 /** reimplemented from RObject */
-	void updateDataFromR (RCommandChain *chain);
+	void updateDataFromR (RCommandChain *chain) override;
 
 	bool hasInvalidFields () const;
 
@@ -135,7 +135,7 @@ protected:
 /** set numeric values in the given range. Assumes you provide enough values for the range. If internalStorage is String, all values will be converted to strings, so you should use this function only, if you know you are dealing with a numeric object. Code may assume that all data comes directly from R, is entirely valid in R. */
 	void setNumericFromR (int from_row, int to_row, const QVector<double> &data);
 /** reimplemented from RObject to change the internal data storage mode, if the var is being edited */
-	bool updateType (RData *new_data);
+	bool updateType (RData *new_data) override;
 /** Extended from RObject::EditData to actually contain data. */
 	struct RKVarEditData {
 		QStringList cell_strings;
@@ -167,9 +167,9 @@ protected:
 	RKVarEditData* data;
 
 /** reimplemented from RObject */
-	void beginEdit ();
+	void beginEdit () override;
 /** reimplemented from RObject */
-	void endEdit ();
+	void endEdit () override;
 
 /** takes care of syncing the given range of cells */
 	void cellsChanged (int from_row, int to_row);
diff --git a/rkward/core/robject.h b/rkward/core/robject.h
index 239bc10..da74cdd 100644
--- a/rkward/core/robject.h
+++ b/rkward/core/robject.h
@@ -295,7 +295,7 @@ friend class RKModificationTracker;
 /** Notify the object that a model no longer needs its data. If there have been as many endEdit() as beginEdit() calls, the object should discard its data storage. The default implementation does nothing (raises an assert). */
 	virtual void endEdit ();
 
-	void rCommandDone (RCommand *command);
+	void rCommandDone (RCommand *command) override;
 
 /* Storage hashes for special objects which are held by some but not all objects, and thus should not have a pointer
  * in the class declaration. Some apply only to specific RObject types, but moving storage to the relevant classes, would make it more
diff --git a/rkward/core/robjectlist.h b/rkward/core/robjectlist.h
index e79d259..ea6f41b 100644
--- a/rkward/core/robjectlist.h
+++ b/rkward/core/robjectlist.h
@@ -47,15 +47,15 @@ public:
 	RObjectList ();
 	~RObjectList ();
 
-	void updateFromR (RCommandChain *chain);
+	void updateFromR (RCommandChain *chain) override;
 	/** like updateFromR, but only adjusts to new / missing environments, but does not update the .GlobalEnv. Designed to be used from the backend, when packages were loaded/unloaded . */
 	void updateFromR (RCommandChain *chain, const QStringList &current_searchpath, const QStringList &current_namespaces);
 	
-	QString getFullName () const { return QString (); };
-	QString getBaseName () const { return QString (); };
-	QString makeChildName (const QString &short_child_name, bool) const { return short_child_name; };
+	QString getFullName () const override { return QString (); };
+	QString getBaseName () const override { return QString (); };
+	QString makeChildName (const QString &short_child_name, bool) const override { return short_child_name; };
 	/** reimplemented from RContainerObject: do nothing. The object-list has no meta data. */
-	void writeMetaData (RCommandChain *) {};
+	void writeMetaData (RCommandChain *) override {};
 
 	REnvironmentObject* findPackage (const QString &namespacename) const;
 
@@ -67,7 +67,7 @@ public:
 	QStringList detachPackages (const QStringList &packages, RCommandChain *chain = 0, RKProgressControl *control = 0);
 	/** A pseudo object containing as children all loaded namespaces which do not belong to a package on the search path */
 	RKOrphanNamespacesObject* orphanNamespacesObject () const { return orphan_namespaces; };
-	QString getObjectDescription () const;
+	QString getObjectDescription () const override;
 public slots:
 	void timeout ();
 signals:
@@ -77,16 +77,16 @@ signals:
 	void updateComplete ();
 protected:
 /** reimplemented from RContainerObject to search the environments in search order */
-	RObject *findObjects (const QStringList &path, RObjectSearchMap *matches, const QString &op);
+	RObject *findObjects (const QStringList &path, RObjectSearchMap *matches, const QString &op) override;
 
 /// reimplemented from RContainerObject to call "remove (objectname)" instead of "objectname <- NULL"
-	QString removeChildCommand (RObject *object) const;
+	QString removeChildCommand (RObject *object) const override;
 /// reimplemented from RContainerObject to call "remove (objectname)" instead of "objectname <- NULL"
-	QString renameChildCommand (RObject *object, const QString &new_name) const;
+	QString renameChildCommand (RObject *object, const QString &new_name) const override;
 /// reimplemented from RContainerObject to emit a change signal
 	void objectsChanged ();
-	bool updateStructure (RData *new_data);
-	void rCommandDone (RCommand *command);
+	bool updateStructure (RData *new_data) override;
+	void rCommandDone (RCommand *command) override;
 	void updateEnvironments (const QStringList &env_names, bool force_globalenv_update);
 	void updateNamespaces (const QStringList namespace_names);
 private:
diff --git a/rkward/dataeditor/rkeditor.h b/rkward/dataeditor/rkeditor.h
index 507d26a..5ca507d 100644
--- a/rkward/dataeditor/rkeditor.h
+++ b/rkward/dataeditor/rkeditor.h
@@ -51,7 +51,7 @@ public:
 /** Tells the editor to restore the given object in the R-workspace from its copy of the data */
 	virtual void restoreObject (RObject *object) = 0;
 
-	bool isModified () { return false; };
+	bool isModified () override { return false; };
 protected:
 	RObject *object;
 };
diff --git a/rkward/dataeditor/rkeditordataframe.h b/rkward/dataeditor/rkeditordataframe.h
index ffe2b3d..c0d369e 100644
--- a/rkward/dataeditor/rkeditordataframe.h
+++ b/rkward/dataeditor/rkeditordataframe.h
@@ -44,10 +44,10 @@ public:
 /** destructor */
 	~RKEditorDataFrame ();
 
-	void flushChanges ();
+	void flushChanges () override;
 
 /** Tells the editor to restore the given object in the R-workspace from its copy of the data */
-	void restoreObject (RObject *object);
+	void restoreObject (RObject *object) override;
 private slots:
 	void detachModel ();
 private:
@@ -57,7 +57,7 @@ private:
 	RCommandChain *open_chain;
 	void waitForLoad ();
 protected:
-	void rCommandDone (RCommand *command);
+	void rCommandDone (RCommand *command) override;
 };
 
 #endif
diff --git a/rkward/dataeditor/rkvareditmodel.h b/rkward/dataeditor/rkvareditmodel.h
index afb9c4e..58cb452 100644
--- a/rkward/dataeditor/rkvareditmodel.h
+++ b/rkward/dataeditor/rkvareditmodel.h
@@ -69,27 +69,27 @@ public:
 	RKVarEditMetaModel* getMetaModel ();
 
 	// QAbstractTableModel implementations
-	bool insertRows (int row, int count, const QModelIndex& parent = QModelIndex());
-	bool removeRows (int row, int count, const QModelIndex& parent = QModelIndex());
-	int rowCount (const QModelIndex& parent = QModelIndex()) const;
-	int columnCount (const QModelIndex& parent = QModelIndex()) const;
-	QVariant data (const QModelIndex& index, int role = Qt::DisplayRole) const;
-	Qt::ItemFlags flags (const QModelIndex& index) const;
-	bool setData (const QModelIndex& index, const QVariant& value, int role = Qt::EditRole);
-	QVariant headerData (int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const;
-
-	RKTextMatrix getTextMatrix (const QItemSelectionRange& range) const;
-	void blankRange (const QItemSelectionRange& range);
-	void setTextMatrix (const QModelIndex& offset, const RKTextMatrix& text, const QItemSelectionRange& confine_to = QItemSelectionRange ());
-
-	int trueCols () const { return objects.size (); };
-	int trueRows () const { return (objects.isEmpty () ? 0 : objects[0]->getLength ()); };
+	bool insertRows (int row, int count, const QModelIndex& parent = QModelIndex()) override;
+	bool removeRows (int row, int count, const QModelIndex& parent = QModelIndex()) override;
+	int rowCount (const QModelIndex& parent = QModelIndex()) const override;
+	int columnCount (const QModelIndex& parent = QModelIndex()) const override;
+	QVariant data (const QModelIndex& index, int role = Qt::DisplayRole) const override;
+	Qt::ItemFlags flags (const QModelIndex& index) const override;
+	bool setData (const QModelIndex& index, const QVariant& value, int role = Qt::EditRole) override;
+	QVariant headerData (int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const override;
+
+	RKTextMatrix getTextMatrix (const QItemSelectionRange& range) const override;
+	void blankRange (const QItemSelectionRange& range) override;
+	void setTextMatrix (const QModelIndex& offset, const RKTextMatrix& text, const QItemSelectionRange& confine_to = QItemSelectionRange ()) override;
+
+	int trueCols () const override { return objects.size (); };
+	int trueRows () const override { return (objects.isEmpty () ? 0 : objects[0]->getLength ()); };
 	void lockHeader (bool lock) { header_locked = lock; };
 
 	virtual void restoreObject (RObject* object, RCommandChain* chain);
 
-	void objectMetaChanged (RObject* changed);
-	void objectDataChanged (RObject* object, const RObject::ChangeSet *changes);
+	void objectMetaChanged (RObject* changed) override;
+	void objectDataChanged (RObject* object, const RObject::ChangeSet *changes) override;
 
 	RKVariable* getObject (int index) const;
 signals:
@@ -112,7 +112,7 @@ friend class RKVarEditMetaModel;
 	int apparentRows () const { return (trueRows () + trailing_rows); };
 
 	/** Receives notifications of object removals. Takes care of removing the object from the list. */
-	void objectRemoved (RObject* object);
+	void objectRemoved (RObject* object) override;
 
 	/** insert new columns at index. Default implementation does nothing. To be implemented in subclasses */
 	virtual void doInsertColumns (int index, int count);
@@ -148,19 +148,19 @@ public:
 	};
 
 	// QAbstractTableModel implementations
-	int rowCount (const QModelIndex& parent = QModelIndex()) const;
-	int columnCount (const QModelIndex& parent = QModelIndex()) const;
-	QVariant data (const QModelIndex& index, int role = Qt::DisplayRole) const;
-	Qt::ItemFlags flags (const QModelIndex& index) const;
-	bool setData (const QModelIndex& index, const QVariant& value, int role = Qt::EditRole);
-	QVariant headerData (int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const;
+	int rowCount (const QModelIndex& parent = QModelIndex()) const override;
+	int columnCount (const QModelIndex& parent = QModelIndex()) const override;
+	QVariant data (const QModelIndex& index, int role = Qt::DisplayRole) const override;
+	Qt::ItemFlags flags (const QModelIndex& index) const override;
+	bool setData (const QModelIndex& index, const QVariant& value, int role = Qt::EditRole) override;
+	QVariant headerData (int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const override;
 
-	RKTextMatrix getTextMatrix (const QItemSelectionRange& range) const;
-	void blankRange (const QItemSelectionRange& range);
-	void setTextMatrix (const QModelIndex& offset, const RKTextMatrix& text, const QItemSelectionRange& confine_to = QItemSelectionRange ());
+	RKTextMatrix getTextMatrix (const QItemSelectionRange& range) const override;
+	void blankRange (const QItemSelectionRange& range) override;
+	void setTextMatrix (const QModelIndex& offset, const RKTextMatrix& text, const QItemSelectionRange& confine_to = QItemSelectionRange ()) override;
 
-	int trueCols () const { return data_model->trueCols (); };
-	int trueRows () const { return RowCount; };
+	int trueCols () const override { return data_model->trueCols (); };
+	int trueRows () const override { return RowCount; };
 
 	RObject::ValueLabels getValueLabels (int column) const;
 	void setValueLabels (int column, const RObject::ValueLabels& labels);
@@ -190,25 +190,25 @@ public:
 	RKVarEditDataFrameModel (const QString& validized_name, RContainerObject* parent_object, RCommandChain* chain, int initial_cols, QObject* parent);
 	~RKVarEditDataFrameModel ();
 
-	bool insertColumns (int column, int count, const QModelIndex& parent = QModelIndex());
-	bool removeColumns (int column, int count, const QModelIndex& parent = QModelIndex());
+	bool insertColumns (int column, int count, const QModelIndex& parent = QModelIndex()) override;
+	bool removeColumns (int column, int count, const QModelIndex& parent = QModelIndex()) override;
 
 	RContainerObject* getObject () const { return dataframe; };
 
-	void restoreObject (RObject* object, RCommandChain* chain);
+	void restoreObject (RObject* object, RCommandChain* chain) override;
 signals:
 	void modelObjectDestroyed ();
 protected:
-	void doInsertColumns (int index, int count);
+	void doInsertColumns (int index, int count) override;
 	/** reimplemented from RKVarEditModel to listen for the dataframe object as well */
-	void objectRemoved (RObject* object);
+	void objectRemoved (RObject* object) override;
 	/** receives notifications of new objects added to this data.frame */
-	void childAdded (int index, RObject* parent);
+	void childAdded (int index, RObject* parent) override;
 	/** receives notifications of object position changes inside this data.frame */
-	void childMoved (int old_index, int new_index, RObject* parent);
+	void childMoved (int old_index, int new_index, RObject* parent) override;
 
-	void doInsertRowsInBackend (int row, int count);
-	void doRemoveRowsInBackend (int row, int count);
+	void doInsertRowsInBackend (int row, int count) override;
+	void doRemoveRowsInBackend (int row, int count) override;
 
 	RContainerObject* dataframe;
 
diff --git a/rkward/dataeditor/twintablemember.h b/rkward/dataeditor/twintablemember.h
index 53ba275..94a16fb 100644
--- a/rkward/dataeditor/twintablemember.h
+++ b/rkward/dataeditor/twintablemember.h
@@ -45,8 +45,8 @@ public:
 	void paste (RKEditor::PasteMode mode);
 
 	void setRKModel (RKVarEditModelBase* model);
-	int trueRows () const;	// re-implemented from RKTableView
-	int trueColumns () const;	// re-implemented from RKTableView
+	int trueRows () const override;	// re-implemented from RKTableView
+	int trueColumns () const override;	// re-implemented from RKTableView
 public slots:
 /** blanks out the currently selected cells (or the currently active cell, if there is no selection) */
 	void blankSelected ();
@@ -57,7 +57,7 @@ protected:
 	bool updating_twin;
 
 /** reimplemented from QTableView to also adjust the twin */
-	void scrollContentsBy (int dx, int dy);
+	void scrollContentsBy (int dx, int dy) override;
 
 	RKVarEditModelBase* mymodel;
 
diff --git a/rkward/dialogs/rkerrordialog.cpp b/rkward/dialogs/rkerrordialog.cpp
index b1b81ff..9d97d38 100644
--- a/rkward/dialogs/rkerrordialog.cpp
+++ b/rkward/dialogs/rkerrordialog.cpp
@@ -69,7 +69,7 @@ public:
 	}
 
 	// KF5 TODO: add override keyword
-	void accept () {
+	void accept () override {
 		// The report template is just too large to pass it via GET, so we use a local proxy page to pass it in a POST request
 		QTemporaryFile proxy;
 		proxy.setAutoRemove (false);
diff --git a/rkward/dialogs/rkimportdialog.h b/rkward/dialogs/rkimportdialog.h
index 3d283bd..cb36e86 100644
--- a/rkward/dialogs/rkimportdialog.h
+++ b/rkward/dialogs/rkimportdialog.h
@@ -44,9 +44,9 @@ public slots:
 	void filterWasChanged (const QString &);
 protected:
 /** reimplemented to a) invoke the relevant plugin, b) trigger self-destruction of the dialog */
-	void accept ();
+	void accept () override;
 /** reimplemented to trigger self-destruction of the dialog */
-	void reject ();
+	void reject () override;
 private:
 	int format_count;
 	RKImportDialogFormatSelector *format_selector;
diff --git a/rkward/dialogs/rkloadlibsdialog.cpp b/rkward/dialogs/rkloadlibsdialog.cpp
index fbdf0de..a294185 100644
--- a/rkward/dialogs/rkloadlibsdialog.cpp
+++ b/rkward/dialogs/rkloadlibsdialog.cpp
@@ -637,7 +637,7 @@ public:
 		expanded = RKStandardIcons::getIcon (RKStandardIcons::ActionCollapseUp);
 		collapsed = RKStandardIcons::getIcon (RKStandardIcons::ActionExpandDown);
 	}
-	void initStyleOption (QStyleOptionViewItem* option, const QModelIndex& index) const {
+	void initStyleOption (QStyleOptionViewItem* option, const QModelIndex& index) const override {
 		QStyledItemDelegate::initStyleOption (option, index);
 		if (!index.parent ().isValid ()) {
 			QStyleOptionViewItemV4 *v4 = qstyleoption_cast<QStyleOptionViewItemV4 *> (option);
diff --git a/rkward/dialogs/rkloadlibsdialog.h b/rkward/dialogs/rkloadlibsdialog.h
index a59162f..5556e1f 100644
--- a/rkward/dialogs/rkloadlibsdialog.h
+++ b/rkward/dialogs/rkloadlibsdialog.h
@@ -76,10 +76,9 @@ signals:
 	void installationError (const QString &error);
 	void installedPackagesChanged ();
 protected:
-	void rCommandDone (RCommand *command);
-	void closeEvent (QCloseEvent *e);
+	void rCommandDone (RCommand *command) override;
+	void closeEvent (QCloseEvent *e) override;
 protected slots:
-/** overloaded to catch button presses. */
 	void childDeleted ();
 	void processExited (int exitCode, QProcess::ExitStatus exitStatus);
 	void installationProcessOutput ();
@@ -132,7 +131,7 @@ public slots:
 	void updateButtons ();
 	void activated ();
 protected:
-	void rCommandDone (RCommand *command);
+	void rCommandDone (RCommand *command) override;
 private:
 	void updateCurrentList ();
 	void doLoadUnload ();
@@ -179,14 +178,14 @@ public:
 	};
 
 /* Item model implementation */
-	int rowCount (const QModelIndex &parent = QModelIndex()) const;
-	int columnCount (const QModelIndex &) const { return COLUMN_COUNT; };
-	QVariant data (const QModelIndex &index, int role=Qt::DisplayRole) const;
-	QVariant headerData (int section, Qt::Orientation orientation, int role=Qt::DisplayRole) const;
-	Qt::ItemFlags flags (const QModelIndex &index) const;
-	QModelIndex index (int row, int column, const QModelIndex &parent=QModelIndex()) const;
-	QModelIndex parent (const QModelIndex &index) const;
-	bool setData (const QModelIndex &index, const QVariant &value, int role = Qt::EditRole);
+	int rowCount (const QModelIndex &parent = QModelIndex()) const override;
+	int columnCount (const QModelIndex &) const override { return COLUMN_COUNT; };
+	QVariant data (const QModelIndex &index, int role=Qt::DisplayRole) const override;
+	QVariant headerData (int section, Qt::Orientation orientation, int role=Qt::DisplayRole) const override;
+	Qt::ItemFlags flags (const QModelIndex &index) const override;
+	QModelIndex index (int row, int column, const QModelIndex &parent=QModelIndex()) const override;
+	QModelIndex parent (const QModelIndex &index) const override;
+	bool setData (const QModelIndex &index, const QVariant &value, int role = Qt::EditRole) override;
 
 /** returns a list of packages selected for installation / update */
 	QStringList packagesToInstall () const;
@@ -227,8 +226,8 @@ public:
 	~RKRPackageInstallationStatusSortFilterModel ();
 	void setRKWardOnly (bool only);
 protected:
-	bool lessThan (const QModelIndex &left, const QModelIndex &right) const;
-	bool filterAcceptsRow (int source_row, const QModelIndex &source_parent) const;
+	bool lessThan (const QModelIndex &left, const QModelIndex &right) const override;
+	bool filterAcceptsRow (int source_row, const QModelIndex &source_parent) const override;
 	bool rkward_only;
 };
 
diff --git a/rkward/dialogs/startupdialog.h b/rkward/dialogs/startupdialog.h
index d2832ee..43702b6 100644
--- a/rkward/dialogs/startupdialog.h
+++ b/rkward/dialogs/startupdialog.h
@@ -57,14 +57,14 @@ public:
 	static StartupDialogResult getStartupAction (QWidget *parent, KRecentFilesAction *recent_files);
 	static KUrl getRestoreFile ();
 public slots:
-	void accept ();
-	void reject ();
+	void accept () override;
+	void reject () override;
 	void listDoubleClicked (QListWidgetItem* item);
 	void listClicked (QListWidgetItem* item);
 	void openButtonSelected (bool checked);
 protected:
 /** reimplemented from QWidget to achieve fixed width */
-	void showEvent (QShowEvent *event);
+	void showEvent (QShowEvent *event) override;
 private:
 	QRadioButton *empty_workspace_button;
 	QRadioButton *empty_table_button;
diff --git a/rkward/misc/celleditor.h b/rkward/misc/celleditor.h
index 0c7211f..581220c 100644
--- a/rkward/misc/celleditor.h
+++ b/rkward/misc/celleditor.h
@@ -52,8 +52,8 @@ public slots:
 	void showValueLabels ();
 protected:
 /// reimplemented to ignore arrow left/right if at the beginning/end
-	void keyPressEvent (QKeyEvent *e);
-	bool eventFilter (QObject* object, QEvent* event);
+	void keyPressEvent (QKeyEvent *e) override;
+	bool eventFilter (QObject* object, QEvent* event) override;
 private:
 	QMenu *value_list;
 };
diff --git a/rkward/misc/editlabelsdialog.h b/rkward/misc/editlabelsdialog.h
index 4026586..3b50270 100644
--- a/rkward/misc/editlabelsdialog.h
+++ b/rkward/misc/editlabelsdialog.h
@@ -56,12 +56,12 @@ public:
 	RKVarLevelsTableModel (const RObject::ValueLabels& labels, QObject* parent);
 	~RKVarLevelsTableModel ();
 
-	int rowCount (const QModelIndex& parent = QModelIndex()) const;
-	int columnCount (const QModelIndex& parent = QModelIndex()) const;
-	QVariant data (const QModelIndex& index, int role = Qt::DisplayRole) const;
-	Qt::ItemFlags flags (const QModelIndex& index) const;
-	bool setData (const QModelIndex& index, const QVariant& value, int role = Qt::EditRole);
-	QVariant headerData (int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const;
+	int rowCount (const QModelIndex& parent = QModelIndex()) const override;
+	int columnCount (const QModelIndex& parent = QModelIndex()) const override;
+	QVariant data (const QModelIndex& index, int role = Qt::DisplayRole) const override;
+	Qt::ItemFlags flags (const QModelIndex& index) const override;
+	bool setData (const QModelIndex& index, const QVariant& value, int role = Qt::EditRole) override;
+	QVariant headerData (int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const override;
 private:
 friend class EditLabelsDialogProxy;
 	RObject::ValueLabels labels;
@@ -82,7 +82,7 @@ friend class EditLabelsDialogProxy;
 	~EditLabelsDialog ();
 
 /** reimplemented to make sure pending edit operations are not lost */
-	void accept ();
+	void accept () override;
 private:
 	RKVarLevelsTable* table;
 };
diff --git a/rkward/misc/multistringselector.cpp b/rkward/misc/multistringselector.cpp
index 3004d22..71ac98c 100644
--- a/rkward/misc/multistringselector.cpp
+++ b/rkward/misc/multistringselector.cpp
@@ -33,7 +33,7 @@ class RKStringListModelWithColumnLabel : public QStringListModel {
 public:
 	RKStringListModelWithColumnLabel (QObject *parent, const QString& _label) : QStringListModel (parent), label (_label) {};
 	~RKStringListModelWithColumnLabel () {};
-	QVariant headerData (int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const {
+	QVariant headerData (int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const override {
 		if ((section == 0) && (orientation == Qt::Horizontal) && (role == Qt::DisplayRole)) return label;
 		return QVariant ();
 	};
diff --git a/rkward/misc/rkaccordiontable.cpp b/rkward/misc/rkaccordiontable.cpp
index f0cbeeb..258c58c 100644
--- a/rkward/misc/rkaccordiontable.cpp
+++ b/rkward/misc/rkaccordiontable.cpp
@@ -44,7 +44,7 @@ public:
 		add_trailing_rows = 1;
 	};
 
-	QModelIndex mapFromSource (const QModelIndex& sindex) const {
+	QModelIndex mapFromSource (const QModelIndex& sindex) const override {
 		if (!sindex.isValid ()) return QModelIndex ();
 		// we're using Source row as "Internal ID", here. This _would_ fall on our feet when removing rows, _if_ we'd actually
 		// have to be able to map the dummy rows back to their real parents.
@@ -63,7 +63,7 @@ public:
 		return (column >= mapColumnFromSource (sourceModel ()->columnCount ()));
 	}
 
-	QModelIndex mapToSource (const QModelIndex& pindex) const {
+	QModelIndex mapToSource (const QModelIndex& pindex) const override {
 		if (!pindex.isValid ()) return QModelIndex ();
 		if (pindex.internalId () == real_item_id) {
 			return sourceModel ()->index (pindex.row (), mapColumnToSource (pindex.column ()));
@@ -74,7 +74,7 @@ public:
 		}
 	}
 
-	Qt::ItemFlags flags (const QModelIndex& index) const {
+	Qt::ItemFlags flags (const QModelIndex& index) const override {
 		if (isFake (index)) {
 			if (index.internalId () == trailing_item_id) return (Qt::ItemIsEnabled);
 			return (Qt::NoItemFlags);
@@ -82,13 +82,13 @@ public:
 		return (QAbstractProxyModel::flags (index));
 	}
 
-	int rowCount (const QModelIndex& parent = QModelIndex ()) const {
+	int rowCount (const QModelIndex& parent = QModelIndex ()) const override {
 		if (isFake (parent)) return 0;
 		if (parent.isValid ()) return 1;
 		return sourceModel ()->rowCount (mapToSource (parent)) + add_trailing_rows;
 	}
 
-    QVariant data (const QModelIndex& proxyIndex, int role = Qt::DisplayRole) const {
+    QVariant data (const QModelIndex& proxyIndex, int role = Qt::DisplayRole) const override {
 		if (isFake (proxyIndex)) {
 			if (proxyIndex.internalId () == trailing_item_id) {
 				if (role == Qt::DisplayRole) {
@@ -107,7 +107,7 @@ public:
 		return QAbstractProxyModel::data (proxyIndex, role);
 	}
 
-	bool dropMimeData (const QMimeData* data, Qt::DropAction action, int row, int column, const QModelIndex& parent) {
+	bool dropMimeData (const QMimeData* data, Qt::DropAction action, int row, int column, const QModelIndex& parent) override {
 		// Ok, I don't understand why exactly, but something goes wrong while mapping this back to the source model. So we help it a bit:
 		Q_UNUSED (column);
 
@@ -119,21 +119,21 @@ public:
 		return sourceModel ()->dropMimeData (data, action, row, 0, QModelIndex ());
 	}
 
-	QVariant headerData (int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const {
+	QVariant headerData (int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const override {
 		if ((orientation == Qt::Horizontal) && isFakeColumn (section) && (role == Qt::DisplayRole)) return QVariant ();
 		return QAbstractProxyModel::headerData (section, orientation, role);
 	}
 
-	bool hasChildren (const QModelIndex& parent) const {
+	bool hasChildren (const QModelIndex& parent) const override {
 		return (!isFake (parent));
 	}
 
-	int columnCount (const QModelIndex& parent = QModelIndex ()) const {
+	int columnCount (const QModelIndex& parent = QModelIndex ()) const override {
 		if (isFake (parent)) return 1;
 		return mapColumnFromSource (sourceModel ()->columnCount (mapToSource (parent))) + add_trailing_columns;
 	}
 
-	QModelIndex index (int row, int column, const QModelIndex& parent = QModelIndex ()) const {
+	QModelIndex index (int row, int column, const QModelIndex& parent = QModelIndex ()) const override {
 		if (!parent.isValid ()) {
 			if (row == sourceModel ()->rowCount ()) return createIndex (row, column, trailing_item_id);
 			return createIndex (row, column, real_item_id);
@@ -142,13 +142,13 @@ public:
 		return createIndex (row, column, parent.row ());
 	}
 
-	QModelIndex parent (const QModelIndex& child) const {
+	QModelIndex parent (const QModelIndex& child) const override {
 		if (child.internalId () == real_item_id) return QModelIndex ();
 		else if (child.internalId () == trailing_item_id) return QModelIndex ();
 		return createIndex (child.internalId (), 0, real_item_id);
 	}
 
-	void setSourceModel (QAbstractItemModel* source_model) {
+	void setSourceModel (QAbstractItemModel* source_model) override {
 		/* More than these would be needed for a proper proxy of any model, but in our case, we only have to support the RKOptionsetDisplayModel */
 		connect (source_model, SIGNAL (rowsInserted(const QModelIndex&,int,int)), this, SLOT (r_rowsInserted(QModelIndex,int,int)));
 		connect (source_model, SIGNAL (rowsRemoved(const QModelIndex&,int,int)), this, SLOT (r_rowsRemoved(QModelIndex,int,int)));
@@ -225,7 +225,7 @@ public:
 		expanded = RKStandardIcons::getIcon (RKStandardIcons::ActionCollapseUp);
 		collapsed = RKStandardIcons::getIcon (RKStandardIcons::ActionExpandDown);
 	}
-	void initStyleOption (QStyleOptionViewItem* option, const QModelIndex& index) const {
+	void initStyleOption (QStyleOptionViewItem* option, const QModelIndex& index) const override {
 		QStyledItemDelegate::initStyleOption (option, index);
 		if (!pmodel->isFake (index)) {
 			QStyleOptionViewItemV4 *v4 = qstyleoption_cast<QStyleOptionViewItemV4 *> (option);
diff --git a/rkward/misc/rkaccordiontable.h b/rkward/misc/rkaccordiontable.h
index ad02620..629af4f 100644
--- a/rkward/misc/rkaccordiontable.h
+++ b/rkward/misc/rkaccordiontable.h
@@ -31,10 +31,10 @@ public:
 
 	QWidget *editorWidget () const { return editor_widget; };
 
-	void setModel (QAbstractItemModel *model);
+	void setModel (QAbstractItemModel *model) override;
 	void setShowAddRemoveButtons (bool show);
 
-	QSize sizeHint () const;                                                  // reimplemented to assure a proper size for the content
+	QSize sizeHint () const override;                                                  // reimplemented to assure a proper size for the content
 public slots:
 	void rowExpanded (QModelIndex row);
 	void rowClicked (QModelIndex row);
@@ -46,10 +46,10 @@ signals:
 	void addRow (int where);
 	void removeRow (int which);
 protected:
-	void resizeEvent (QResizeEvent* event);                                          // reimplemented to make the current content widget stretch / shrink
-	void currentChanged (const QModelIndex& current, const QModelIndex& previous);
-	void mousePressEvent (QMouseEvent* event);
-	void drawRow (QPainter* painter, const QStyleOptionViewItem& option, const QModelIndex& index) const;
+	void resizeEvent (QResizeEvent* event) override;                                          // reimplemented to make the current content widget stretch / shrink
+	void currentChanged (const QModelIndex& current, const QModelIndex& previous) override;
+	void mousePressEvent (QMouseEvent* event) override;
+	void drawRow (QPainter* painter, const QStyleOptionViewItem& option, const QModelIndex& index) const override;
 private:
 	QSize sizeHintWithoutEditor () const;
 	int rowOfButton (QObject *button) const;
diff --git a/rkward/misc/rkobjectlistview.cpp b/rkward/misc/rkobjectlistview.cpp
index dec4a3a..42456c0 100644
--- a/rkward/misc/rkobjectlistview.cpp
+++ b/rkward/misc/rkobjectlistview.cpp
@@ -48,7 +48,7 @@ public:
 		expanded = RKStandardIcons::getIcon (RKStandardIcons::ActionCollapseUp);
 		collapsed = RKStandardIcons::getIcon (RKStandardIcons::ActionExpandDown);
 	}
-	void initStyleOption (QStyleOptionViewItem* option, const QModelIndex& index) const {
+	void initStyleOption (QStyleOptionViewItem* option, const QModelIndex& index) const override {
 		QStyledItemDelegate::initStyleOption (option, index);
 		if (!index.parent ().isValid ()) {
 			QStyleOptionViewItemV4 *v4 = qstyleoption_cast<QStyleOptionViewItemV4 *> (option);
diff --git a/rkward/misc/rkobjectlistview.h b/rkward/misc/rkobjectlistview.h
index 5bee726..9e929ca 100644
--- a/rkward/misc/rkobjectlistview.h
+++ b/rkward/misc/rkobjectlistview.h
@@ -70,11 +70,11 @@ If you set *suppress to true, showing the context menu will be suppressed. */
 public slots:
 	void updateComplete ();
 	void updateStarted ();
-	void selectionChanged (const QItemSelection & selected, const QItemSelection & deselected);
+	void selectionChanged (const QItemSelection & selected, const QItemSelection & deselected) override;
 	void settingsChanged ();
 	void itemClicked (const QModelIndex& index);
 protected:
-	void contextMenuEvent (QContextMenuEvent* event);
+	void contextMenuEvent (QContextMenuEvent* event) override;
 private:
 	QMenu *menu;
 	RObject *menu_object;
@@ -111,10 +111,10 @@ public slots:
 	void updateSelfNow ();
 	void resetFilters ();
 protected:
-	bool filterAcceptsRow (int source_row, const QModelIndex& source_parent) const;
+	bool filterAcceptsRow (int source_row, const QModelIndex& source_parent) const override;
 	bool acceptRow (int source_row, const QModelIndex& source_parent) const;
-	bool filterAcceptsColumn (int source_column, const QModelIndex& source_parent) const;
-	bool lessThan (const QModelIndex& left, const QModelIndex& right) const;
+	bool filterAcceptsColumn (int source_column, const QModelIndex& source_parent) const override;
+	bool lessThan (const QModelIndex& left, const QModelIndex& right) const override;
 private:
 	QAction* persistent_settings_actions[SettingsCount];
 	bool persistent_settings[SettingsCount];
diff --git a/rkward/misc/rkprogresscontrol.h b/rkward/misc/rkprogresscontrol.h
index 65a4fbc..bde318c 100644
--- a/rkward/misc/rkprogresscontrol.h
+++ b/rkward/misc/rkprogresscontrol.h
@@ -106,8 +106,8 @@ private:
 	QString text;
 	QString caption;
 protected:
-	void newOutput (RCommand *, ROutput *output);
-	void rCommandDone (RCommand *command);
+	void newOutput (RCommand *, ROutput *output) override;
+	void rCommandDone (RCommand *command) override;
 };
 
 /** This class provides the dialog shown as part of an RKProgressControl. Generally you should not use this class directly, but rather use RKProgressControl. */
@@ -123,7 +123,7 @@ public:
 	void setCloseTextToClose ();
 	void finished ();
 protected:
-	void closeEvent (QCloseEvent *e);
+	void closeEvent (QCloseEvent *e) override;
 private slots:
 	void scrollDown ();
 private:
diff --git a/rkward/misc/rksaveobjectchooser.h b/rkward/misc/rksaveobjectchooser.h
index 97e14fe..c5da85c 100644
--- a/rkward/misc/rksaveobjectchooser.h
+++ b/rkward/misc/rksaveobjectchooser.h
@@ -46,8 +46,8 @@ private slots:
 signals:
 	void changed (bool);
 protected:
-	void objectRemoved (RObject* removed);
-	void childAdded (int index, RObject* parent);
+	void objectRemoved (RObject* removed) override;
+	void childAdded (int index, RObject* parent) override;
 private:
 	bool object_exists;
 
diff --git a/rkward/misc/rkspinbox.h b/rkward/misc/rkspinbox.h
index f0c5a77..18036a4 100644
--- a/rkward/misc/rkspinbox.h
+++ b/rkward/misc/rkspinbox.h
@@ -62,12 +62,12 @@ public:
 	void setIntValue (int int_value);
 protected:
 /** reimplemented from QSpinBox to always return the text suitable for the *internal* value. The value given as parameter is ignored. */
-	QString textFromValue (int) const;
+	QString textFromValue (int) const override;
 /** reimplemented from QSpinBox to update steps and value whenever the text was changed. WARNING: not really const */
-	int valueFromText (const QString & text) const;
+	int valueFromText (const QString & text) const override;
 /** reimplemented from QSpinBox to adjust the internal value */
-	void stepBy (int steps);
-	QValidator::State validate (QString &input, int &pos ) const;
+	void stepBy (int steps) override;
+	QValidator::State validate (QString &input, int &pos ) const override;
 private slots:
 	void updateValue (int value);
 	void emitValueChange ();
diff --git a/rkward/misc/rktableview.h b/rkward/misc/rktableview.h
index d8553ea..b58daa6 100644
--- a/rkward/misc/rktableview.h
+++ b/rkward/misc/rktableview.h
@@ -35,10 +35,10 @@ public:
 	RKItemDelegate (QObject *parent, QAbstractItemModel* model, bool dummy);
 	~RKItemDelegate ();
 
-	QWidget* createEditor (QWidget* parent, const QStyleOptionViewItem& option, const QModelIndex& index) const;
-	void setEditorData (QWidget* editor, const QModelIndex& index) const;
-	void setModelData (QWidget* editor, QAbstractItemModel* model, const QModelIndex& index) const;
-	bool eventFilter (QObject* editor, QEvent* event);
+	QWidget* createEditor (QWidget* parent, const QStyleOptionViewItem& option, const QModelIndex& index) const override;
+	void setEditorData (QWidget* editor, const QModelIndex& index) const override;
+	void setModelData (QWidget* editor, QAbstractItemModel* model, const QModelIndex& index) const override;
+	bool eventFilter (QObject* editor, QEvent* event) override;
 
 	enum EditorDoneReason {
 		EditorExitLeft,
@@ -85,7 +85,7 @@ signals:
 	void blankSelectionRequest ();
 protected:
 /** will emit blankSelectionRequest() on DEL and BACKSPACE. Also scrolls to current index on key presses. */
-	void keyPressEvent (QKeyEvent *e);
+	void keyPressEvent (QKeyEvent *e) override;
 private slots:
 	void editorDone (QWidget* editor, RKItemDelegate::EditorDoneReason reason);
 };
diff --git a/rkward/plugin/rkabstractoptionselector.h b/rkward/plugin/rkabstractoptionselector.h
index a826e52..0e4189c 100644
--- a/rkward/plugin/rkabstractoptionselector.h
+++ b/rkward/plugin/rkabstractoptionselector.h
@@ -38,9 +38,9 @@ public:
 @param option_string the option string to search for
 @returns the id (0, 1, 2...) of the corresponding option, or -1 if not found */
 	int findOption (const QString &option_string);
-	QVariant value (const QString &modifier=QString ()) { return (string->value (modifier)); };
+	QVariant value (const QString &modifier=QString ()) override { return (string->value (modifier)); };
 /** reimplemented from RKComponent to add enabledness properties for the options, dynamically, if requested */
-	RKComponentBase* lookupComponent (const QString &identifier, QString *remainder);
+	RKComponentBase* lookupComponent (const QString &identifier, QString *remainder) override;
 public slots:
 	void itemSelected (int id);
 	void propertyChanged (RKComponentPropertyBase *property);
diff --git a/rkward/plugin/rkcomponent.h b/rkward/plugin/rkcomponent.h
index d069453..d3ecf23 100644
--- a/rkward/plugin/rkcomponent.h
+++ b/rkward/plugin/rkcomponent.h
@@ -167,7 +167,7 @@ public:
 	RKComponent (RKComponent *parent_component, QWidget *parent_widget);
 /** destructor */
 	virtual ~RKComponent ();
-	int type () { return Component; };
+	int type () override { return Component; };
 /** change notification mechanism. Call this, if something in the component changed that could result in a change in code/values/satisfaction state. Default implementation propagates the change upwards to parent components, if any, but does not do anything further. Reimplement, for instance, to regenerate code */
 	virtual void changed ();
 /** The component as a wizardish (multi-page) interface. Default implementation returns false */
diff --git a/rkward/plugin/rkcomponentcontext.h b/rkward/plugin/rkcomponentcontext.h
index e31c9e1..13e1bd5 100644
--- a/rkward/plugin/rkcomponentcontext.h
+++ b/rkward/plugin/rkcomponentcontext.h
@@ -41,7 +41,7 @@ class RKContextHandler : public QObject, public RKComponentBase, public KXMLGUIC
 friend class RKComponentGUIXML;
 public:
 	void invokeComponent (RKComponentHandle *handle);
-	int type () { return ComponentContextHandler; };
+	int type () override { return ComponentContextHandler; };
 protected:
 /** constructor. Protected. Use RKContextMap::makeContextHandler() instead. */
 	RKContextHandler (QObject *parent, const QDomDocument &gui_xml, const QString &id);
diff --git a/rkward/plugin/rkcomponentmap.h b/rkward/plugin/rkcomponentmap.h
index 446144b..cc2c78f 100644
--- a/rkward/plugin/rkcomponentmap.h
+++ b/rkward/plugin/rkcomponentmap.h
@@ -276,7 +276,7 @@ friend class RKComponentHandle;
 	QMap<QString, AttributeValueMap> component_attributes;
 	QHash<RKComponentHandle*, QList<RKComponentDependency> > component_dependencies;
 protected:
-	void addedEntry (const QString &id, RKComponentHandle *handle);
+	void addedEntry (const QString &id, RKComponentHandle *handle) override;
 };
 
 #endif
diff --git a/rkward/plugin/rkcomponentproperties.h b/rkward/plugin/rkcomponentproperties.h
index aad9a94..da99936 100644
--- a/rkward/plugin/rkcomponentproperties.h
+++ b/rkward/plugin/rkcomponentproperties.h
@@ -41,16 +41,16 @@ public:
 /** destructor */
 	virtual ~RKComponentPropertyBase ();
 /** supplies the current value. Since more than one value may be supplied, modifier can be used to select a value. Default implementation only has  a single string, however. Reimplemented from RKComponentBase */
-	QVariant value (const QString &modifier=QString ());
+	QVariant value (const QString &modifier=QString ()) override;
 /** set the value in string form.
 @returns false if the value is illegal (in the base class, all strings are legal) */
 	virtual bool setValue (const QString &string);
 /** do not set the value, only check, whether it is legal */
 	virtual bool isStringValid (const QString &) { return true; };
 /** current setting valid? */
-	bool isValid () { return is_valid; };
+	bool isValid () override { return is_valid; };
 /** for RTTI. see RKComponentBase::RKComponentTypes */
-	int type () { return PropertyBase; };
+	int type () override { return PropertyBase; };
 /** connect this property to a governor property (given as argument). If reconcile_requirements, the requirements of both properties are reconciled to the least common denominator. The dependent property will be notified on all changes made in the governing property, so it can update its value. 
 Generally with few exceptions, you can only connect to properties that are either of the same class as this property, or of an extended class. Maybe in the future we will add some sophisticated converters allowing to connect vastly different types of properties in a meaningful way.
 If you specify a modifier, only the sub-value indicated by the modifier will be retrieved from the governing property on governorValueChanged. In this case reconcile_requirements is ignored. */
@@ -84,7 +84,7 @@ public:
 /** @returns true, if the property holds the maximum number of items (or more) */
 	bool atMaxLength () const { return (max_num_items && (max_num_items <= listLength ())); };
 /** reimplemented from RKComponentPropertyBase to actually reconcile requirements with other list properties */
-	void connectToGovernor (RKComponentPropertyBase *governor, const QString &modifier=QString (), bool reconcile_requirements=true);
+	void connectToGovernor (RKComponentPropertyBase *governor, const QString &modifier=QString (), bool reconcile_requirements=true) override;
 /** If set to true, duplicate values are dropped, silently */
 	void setStripDuplicates (bool strip) { strip_duplicates = strip; };
 	virtual void removeAt (int index) = 0;
@@ -110,24 +110,24 @@ public:
 /** destructor */
 	~RKComponentPropertyStringList ();
 /** for RTTI. see RKComponentBase::RKComponentTypes */
-	int type () { return PropertyStringList; };
+	int type () override { return PropertyStringList; };
 /** reimplemented to return all current strings */
-	QVariant value (const QString &modifier=QString ());
+	QVariant value (const QString &modifier=QString ()) override;
 /** return the string at the given index */
 	const QString valueAt (int index) const { return storage.value (index); };
 /** set the values in string form (values will be split by the current separator)
 @returns false if the value is illegal (in this property, all strings are legal) */
-	bool setValue (const QString &string);
+	bool setValue (const QString &string) override;
 /** change only the string at the given index. List will be expanded, as necessary. */
 	void setValueAt (int index, const QString &value);
 /** get all current strings as a QStringList */
 	const QStringList& values () const { return storage; };
 /** set current strings as a QStringList */
-	bool setValueList (const QStringList &new_values) { storage = new_values; checkStripDuplicates (); doChange (); return true; };
+	bool setValueList (const QStringList &new_values) override { storage = new_values; checkStripDuplicates (); doChange (); return true; };
 /** reimplemented from RKComponentPropertyBase to use special handling for list properties */
-	void governorValueChanged (RKComponentPropertyBase *property);
-	int listLength () const { return (storage.size ()); };
-	void removeAt (int index);
+	void governorValueChanged (RKComponentPropertyBase *property) override;
+	int listLength () const override { return (storage.size ()); };
+	void removeAt (int index) override;
 private:
 	void doChange ();
 	void checkStripDuplicates ();
@@ -152,17 +152,17 @@ public:
 /** current value as bool */
 	bool boolValue ();
 /** reimplemented from RKComponentPropertyBase. Modifier "true" returns value if true. Modifier "false" returns value if false. Modifier QString () returns current value as bool, modifier "labelled" returns the labelled value. */
-	QVariant value (const QString &modifier=QString ());
+	QVariant value (const QString &modifier=QString ()) override;
 /** reimplemented from RKComponentPropertyBase to convert to bool value according to current settings */
-	bool setValue (const QString &string);
+	bool setValue (const QString &string) override;
 /** reimplemented from RKComponentPropertyBase to test whether conversion to bool value is possible according to current settings */
-	bool isStringValid (const QString &string);
+	bool isStringValid (const QString &string) override;
 /** reimplemented from RKComponentPropertyBase to use special handling for bool and int properties (bools are copied directly, int handling: 0->false else true) */
-	void governorValueChanged (RKComponentPropertyBase *property);
+	void governorValueChanged (RKComponentPropertyBase *property) override;
 /** RTTI */
-	int type () { return PropertyBool; };
+	int type () override { return PropertyBool; };
 /** reimplemented to return a new negated boolean property if the identifier is "not" */
-	RKComponentBase* lookupComponent (const QString &identifier, QString *remainder);
+	RKComponentBase* lookupComponent (const QString &identifier, QString *remainder) override;
 	static bool stringToBool (const QString &value, bool *ok);
 	static bool variantToBool (const QVariant &value, bool *ok);
 private:
@@ -200,17 +200,17 @@ public:
 /** current value as int */
 	int intValue ();
 /** reimplemented from RKComponentPropertyBase. Return current value. */
-	QVariant value (const QString &modifier=QString ());
+	QVariant value (const QString &modifier=QString ()) override;
 /** reimplemented from RKComponentPropertyBase to convert to int value according to current settings */
-	bool setValue (const QString &string);
+	bool setValue (const QString &string) override;
 /** reimplemented from RKComponentPropertyBase to test whether conversion to int value is possible according to current settings (is a number, and within limits min and max) */
-	bool isStringValid (const QString &string);
+	bool isStringValid (const QString &string) override;
 /** reimplemented from RKComponentPropertyBase to actually reconcile requirements with other numeric slots */
-	void connectToGovernor (RKComponentPropertyBase *governor, const QString &modifier=QString (), bool reconcile_requirements=true);
+	void connectToGovernor (RKComponentPropertyBase *governor, const QString &modifier=QString (), bool reconcile_requirements=true) override;
 /** reimplemented from RKComponentPropertyBase to use special handling for int and double properties (ints are copied directly, doubles are rounded) */
-	void governorValueChanged (RKComponentPropertyBase *property);
+	void governorValueChanged (RKComponentPropertyBase *property) override;
 /** RTTI */
-	int type () { return PropertyInt; };
+	int type () override { return PropertyInt; };
 /** returns a validator for use in lineedits or similar widgets. */
 	QIntValidator *getValidator ();
 private:
@@ -237,7 +237,7 @@ public:
 /** sets the int value. Also takes care of notifying dependent components */
 	bool setDoubleValue (double new_value);
 /** reimplemented from RKComponentPropertyBase to convert to int value according to current settings */
-	bool setValue (const QString &string);
+	bool setValue (const QString &string) override;
 /** set lower boundary. Default parameter will effectively remove the boundary. You should call this *before* connecting to any other properties, so limits can be reconciled */
 	void setMin (double lower=FLT_MIN);
 /** set upper boundary. Default parameter will effectively remove the boundary. You should call this *before* connecting to any other properties, so limits can be reconciled */
@@ -251,15 +251,15 @@ public:
 /** current value as double */
 	double doubleValue ();
 /** reimplemented from RKComponentPropertyBase. Return current value as a string. */
-	QVariant value (const QString &modifier=QString ());
+	QVariant value (const QString &modifier=QString ()) override;
 /** reimplemented from RKComponentPropertyBase to test whether conversion to int value is possible according to current settings (is a number, and within limits min and max) */
-	bool isStringValid (const QString &string);
+	bool isStringValid (const QString &string) override;
 /** reimplemented from RKComponentPropertyBase to actually reconcile requirements with other numeric slots */
-	void connectToGovernor (RKComponentPropertyBase *governor, const QString &modifier=QString (), bool reconcile_requirements=true);
+	void connectToGovernor (RKComponentPropertyBase *governor, const QString &modifier=QString (), bool reconcile_requirements=true) override;
 /** reimplemented from RKComponentPropertyBase to use special handling for int and double properties (ints and doubles are copied directly) */
-	void governorValueChanged (RKComponentPropertyBase *property);
+	void governorValueChanged (RKComponentPropertyBase *property) override;
 /** RTTI */
-	int type () { return PropertyDouble; };
+	int type () override { return PropertyDouble; };
 /** returns a validator for use in lineedits or similar widgets. */
 	QDoubleValidator *getValidator ();
 private:
@@ -316,29 +316,29 @@ public:
 @returns an empty list if no valid object is selected */
 	RObject::ObjectList objectList ();
 /** reimplemented from RKComponentPropertyBase. Modifier "label" returns label(s). Modifier "shortname" returns short name(s). Modifier QString () returns full name. If no object is set, returns an empty string / variant */
-	QVariant value (const QString &modifier=QString ());
+	QVariant value (const QString &modifier=QString ()) override;
 /** reimplemented from RKComponentPropertyBase to convert to RObject with current constraints
 @returns false if no such object(s) could be found or the object(s) are invalid */
-	bool setValue (const QString &value);
+	bool setValue (const QString &value) override;
 /** overload of setValue() which accepts a list of names of RObjects
 @returns false if no such object(s) could be found or the object(s) are invalid */
-	bool setValueList (const QStringList &values);
+	bool setValueList (const QStringList &values) override;
 /** reimplemented from RKComponentPropertyBase to test whether conversion to RObject is possible with current constraints */
-	bool isStringValid (const QString &value);
+	bool isStringValid (const QString &value) override;
 /** RTTI */
-	int type () { return PropertyRObjects; };
+	int type () override { return PropertyRObjects; };
 /** reimplemented from RKComponentPropertyBase to actually reconcile requirements with other object properties */
-	void connectToGovernor (RKComponentPropertyBase *governor, const QString &modifier=QString (), bool reconcile_requirements=true);
+	void connectToGovernor (RKComponentPropertyBase *governor, const QString &modifier=QString (), bool reconcile_requirements=true) override;
 /** reimplemented from RKComponentPropertyBase to use special handling for object properties */
-	void governorValueChanged (RKComponentPropertyBase *property);
-	void removeAt (int index);
+	void governorValueChanged (RKComponentPropertyBase *property) override;
+	void removeAt (int index) override;
 	RObject* objectAt (int index) const { return object_list.value (index); };
-	int listLength () const { return (object_list.size ()); };
+	int listLength () const override { return (object_list.size ()); };
 protected:
 /** remove an object value. reimplemented from RObjectListener::objectRemoved (). This is so we get notified if the object currently selected is removed TODO: is this effectively a duplication of setFromList? */
-	void objectRemoved (RObject *removed);
+	void objectRemoved (RObject *removed) override;
 /** reimplemented from RObjectListener::objectMetaChanged (). This is so we get notified if the object currently selected is changed */
-	void objectMetaChanged (RObject *changed);
+	void objectMetaChanged (RObject *changed) override;
 private:
 /** check all objects currently in the list for validity. And set validity state accordingly. */
 	void validizeAll (bool silent=false);
@@ -379,7 +379,7 @@ public:
 /** the preview code */
 	QString preview () { return preview_code; };
 
-	QVariant value (const QString &modifier=QString ());
+	QVariant value (const QString &modifier=QString ()) override;
 
 /** set the preprocess code.
 @param code The code to set. If this is QString (), the property is seen to lack preprocess code and hence is not valid (see isValid ()). In contrast, empty strings are seen as valid */
@@ -391,10 +391,10 @@ public:
 /** see setPreview () */
 	void setPreview (const QString &code) { preview_code = code; emit (valueChanged (this)); };
 
-	bool isValid () { return (!(preprocess_code.isNull () || calculate_code.isNull () || printout_code.isNull ())); };
+	bool isValid () override { return (!(preprocess_code.isNull () || calculate_code.isNull () || printout_code.isNull ())); };
 
 /** RTTI */
-	int type () { return PropertyCode; };
+	int type () override { return PropertyCode; };
 private:
 	QString preprocess_code;
 	QString calculate_code;
@@ -412,7 +412,7 @@ public:
 /** constructor. Note that this property *requires* an RKComponent as parent (the one at the top of all the source properties) */
 	explicit RKComponentPropertyConvert (RKComponent *parent);
 	~RKComponentPropertyConvert ();
-	int type () { return PropertyConvert; };
+	int type () override { return PropertyConvert; };
 
 /** Mode of operation. see setMode () */
 	enum ConvertMode {
@@ -435,14 +435,14 @@ public:
 	void setRequireTrue (bool require_true);
 
 /** reimplemented for setRequireTrue ()*/
-	bool isValid ();
+	bool isValid () override;
 
 /** string represenation of the options in ConvertMode. For use in XMLHelper::getMultiChoiceAttribute */
 	static QString convertModeOptionString () { return ("equals;notequals;range;and;or"); };
 /** reimplemented to do raise a warning, and do nothing else. */
-	void connectToGovernor (RKComponentPropertyBase *governor, const QString &modifier=QString (), bool reconcile_requirements=true);
+	void connectToGovernor (RKComponentPropertyBase *governor, const QString &modifier=QString (), bool reconcile_requirements=true) override;
 /** reimplemented to do raise a warning, and do nothing else. */
-	bool setValue (const QString &value);
+	bool setValue (const QString &value) override;
 public slots:
 /** unfortuntely, as the parent component likely does not know about us, we have to notify it manually of any changes. That's done from this slot */
 	void selfChanged (RKComponentPropertyBase *);
@@ -474,12 +474,12 @@ public:
 /** set the sources, i.e. the properties to operate on */
 	void setSources (const QString &condition_prop, const QStringList &value_props);
 /** reimplemented to do raise a warning, and do nothing else. */
-	void connectToGovernor (RKComponentPropertyBase *governor, const QString &modifier=QString (), bool reconcile_requirements=true);
+	void connectToGovernor (RKComponentPropertyBase *governor, const QString &modifier=QString (), bool reconcile_requirements=true) override;
 /** reimplemented to do raise a warning, and do nothing else. */
-	bool setValue (const QString &value);
+	bool setValue (const QString &value) override;
 
-	QVariant value (const QString &modifier=QString ());
-	int type () { return PropertySwitch; };
+	QVariant value (const QString &modifier=QString ()) override;
+	int type () override { return PropertySwitch; };
 public slots:
 /** unfortuntely, as the parent component likely does not know about us, we have to notify it manually of any changes. That's done from this slot */
 	void selfChanged (RKComponentPropertyBase *);
diff --git a/rkward/plugin/rkmatrixinput.h b/rkward/plugin/rkmatrixinput.h
index 541883e..0b9797a 100644
--- a/rkward/plugin/rkmatrixinput.h
+++ b/rkward/plugin/rkmatrixinput.h
@@ -36,9 +36,9 @@ class RKMatrixInput : public RKComponent {
 public:
 	RKMatrixInput (const QDomElement &element, RKComponent *parent_component, QWidget *parent_widget);
 	~RKMatrixInput ();
-	int type () { return ComponentMatrixInput; };
-	bool isValid () { return is_valid; };
-	QVariant value (const QString &modifier=QString ());
+	int type () override { return ComponentMatrixInput; };
+	bool isValid () override { return is_valid; };
+	QVariant value (const QString &modifier=QString ()) override;
 public slots:
 	void cut ();
 	void copy ();
@@ -105,12 +105,12 @@ private:
 friend class RKMatrixInput;
 	RKMatrixInputModel (RKMatrixInput *matrix);
 	virtual ~RKMatrixInputModel ();
-	int rowCount (const QModelIndex &parent = QModelIndex()) const; // implemented for QAbstractTableModel
-	int columnCount (const QModelIndex &parent = QModelIndex()) const; // implemented for QAbstractTableModel
-	QVariant data (const QModelIndex &index, int role = Qt::DisplayRole) const; // re-implemented for QAbstractTableModel
-	bool setData (const QModelIndex &index, const QVariant &value, int role = Qt::EditRole); // re-implemented for QAbstractTableModel
-	Qt::ItemFlags flags (const QModelIndex &index) const; // re-implemented for QAbstractTableModel
-	QVariant headerData (int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const;  // re-implemented for QAbstractTableModel
+	int rowCount (const QModelIndex &parent = QModelIndex()) const override; // implemented for QAbstractTableModel
+	int columnCount (const QModelIndex &parent = QModelIndex()) const override; // implemented for QAbstractTableModel
+	QVariant data (const QModelIndex &index, int role = Qt::DisplayRole) const override; // re-implemented for QAbstractTableModel
+	bool setData (const QModelIndex &index, const QVariant &value, int role = Qt::EditRole) override; // re-implemented for QAbstractTableModel
+	Qt::ItemFlags flags (const QModelIndex &index) const override; // re-implemented for QAbstractTableModel
+	QVariant headerData (int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const override;  // re-implemented for QAbstractTableModel
 
 	RKMatrixInput *matrix;
 	QStringList horiz_header;
diff --git a/rkward/plugin/rkoptionset.h b/rkward/plugin/rkoptionset.h
index c102e49..019827c 100644
--- a/rkward/plugin/rkoptionset.h
+++ b/rkward/plugin/rkoptionset.h
@@ -40,12 +40,12 @@ class RKOptionSet : public RKComponent {
 public:
 	RKOptionSet (const QDomElement &element, RKComponent *parent_component, QWidget *parent_widget);
 	~RKOptionSet ();
-	int type () { return ComponentOptionSet; };
-	bool isValid ();
+	int type () override { return ComponentOptionSet; };
+	bool isValid () override;
 	/** reimplemented from RKComponent */
-	ComponentStatus recursiveStatus ();
+	ComponentStatus recursiveStatus () override;
 	/** reimplemented from RKComponent */
-	void changed ();
+	void changed () override;
 private slots:
 	void governingPropertyChanged (RKComponentPropertyBase *property);
 	void columnPropertyChanged (RKComponentPropertyBase *property);
@@ -62,7 +62,7 @@ private slots:
 	void handleKeycolumnUpdate ();
 protected:
 friend class RKOptionSetDelegate;
-	void fetchPropertyValuesRecursive (PropertyValueMap *list, bool include_top_level=false, const QString &prefix=QString (), bool include_inactive_elements=false) const;
+	void fetchPropertyValuesRecursive (PropertyValueMap *list, bool include_top_level=false, const QString &prefix=QString (), bool include_inactive_elements=false) const override;
 friend class RKOptionSetDisplayModel;
 	int rowCount () const { return row_count->intValue (); };
 	void setRowState (int row, bool finished, bool valid);
@@ -140,20 +140,20 @@ private:
 friend class RKOptionSet;
 	explicit RKOptionSetDisplayModel (RKOptionSet* parent);
 	virtual ~RKOptionSetDisplayModel ();
-	int rowCount (const QModelIndex & parent = QModelIndex()) const;
-	int columnCount (const QModelIndex & parent = QModelIndex()) const;
-	QVariant data (const QModelIndex& index, int role = Qt::DisplayRole) const;
-	QVariant headerData (int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const;
+	int rowCount (const QModelIndex & parent = QModelIndex()) const override;
+	int columnCount (const QModelIndex & parent = QModelIndex()) const override;
+	QVariant data (const QModelIndex& index, int role = Qt::DisplayRole) const override;
+	QVariant headerData (int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const override;
 	void triggerReset ();
 	QTimer reset_timer;
 	QStringList column_labels;
 	RKOptionSet *set;
 
-	QMimeData* mimeData (const QModelIndexList& indexes) const;
-	QStringList mimeTypes () const;
-	bool dropMimeData (const QMimeData* data, Qt::DropAction action, int row, int column, const QModelIndex& parent);
-	Qt::ItemFlags flags (const QModelIndex& index) const;
-	Qt::DropActions supportedDropActions () const;
+	QMimeData* mimeData (const QModelIndexList& indexes) const override;
+	QStringList mimeTypes () const override;
+	bool dropMimeData (const QMimeData* data, Qt::DropAction action, int row, int column, const QModelIndex& parent) override;
+	Qt::ItemFlags flags (const QModelIndex& index) const override;
+	Qt::DropActions supportedDropActions () const override;
 private slots:
 	void doResetNow ();
 };
diff --git a/rkward/plugin/rkpluginspinbox.h b/rkward/plugin/rkpluginspinbox.h
index f242ddf..dc9a6db 100644
--- a/rkward/plugin/rkpluginspinbox.h
+++ b/rkward/plugin/rkpluginspinbox.h
@@ -35,9 +35,9 @@ public:
 	RKPluginSpinBox (const QDomElement &element, RKComponent *parent_component, QWidget *parent_widget);
 
 	~RKPluginSpinBox ();
-	QVariant value (const QString &modifier=QString ());
-	QStringList getUiLabelPair () const;
-	int type () { return ComponentSpinBox; };
+	QVariant value (const QString &modifier=QString ()) override;
+	QStringList getUiLabelPair () const override;
+	int type () override { return ComponentSpinBox; };
 
 	RKComponentPropertyInt *intvalue;
 	RKComponentPropertyDouble *realvalue;
diff --git a/rkward/plugin/rkstandardcomponent.h b/rkward/plugin/rkstandardcomponent.h
index 3c17219..4de4101 100644
--- a/rkward/plugin/rkstandardcomponent.h
+++ b/rkward/plugin/rkstandardcomponent.h
@@ -45,23 +45,23 @@ public:
 /** destructor */
 	~RKStandardComponent ();
 /** reimplemented to update code on changes*/
-	void changed ();
+	void changed () override;
 /** reimplemented to return true, if the RKStandardComponent is in Wizard mode */
-	bool isWizardish ();
+	bool isWizardish () override;
 /** reimplemented to actually answer the question (if in Wizard mode) */
-	bool havePage (bool next);
+	bool havePage (bool next) override;
 /** reimplemented to actually move the page (if in Wizard mode)  */
-	void movePage (bool next);
+	void movePage (bool next) override;
 /** reimplemented to actually answer the question (if in Wizard mode) */
-	bool currentPageSatisfied ();
+	bool currentPageSatisfied () override;
 /** for use by RKComponentBuilder to add a page to a wizardish component */
-	RKComponent *addPage ();
+	RKComponent *addPage () override;
 /** reimplemented to acutally register the component with the wizard */
-	void addComponentToCurrentPage (RKComponent *component);
+	void addComponentToCurrentPage (RKComponent *component) override;
 /** switch from dialog to wizard or vice versa */
 	void switchInterface ();
 /** RTTI */
-	int type () { return ComponentStandard; };
+	int type () override { return ComponentStandard; };
 /** set the GUI caption (if this is a top-level gui) */
 	void setCaption (const QString &caption);
 /** return the filename of the xml file */
@@ -76,7 +76,7 @@ public:
 /** convenience access function: closes the corresponding GUI */
 	void close ();
 /** reimplemented to actually return Dead or Processing when appropriate */
-	ComponentStatus recursiveStatus ();
+	ComponentStatus recursiveStatus () override;
 
 	RCommandChain *commandChain () const { return command_chain; };
 
@@ -123,7 +123,7 @@ private:
 protected:
 	friend class RKComponentBuilder;
 /** reimplemented for technical reasons. Additionally registers component children with the component stack if in wizard mode */
-	void addChild (const QString &id, RKComponentBase *child);
+	void addChild (const QString &id, RKComponentBase *child) override;
 };
 
 #include <qmap.h>
diff --git a/rkward/plugin/rkvalueselector.h b/rkward/plugin/rkvalueselector.h
index 5107944..6d01ff0 100644
--- a/rkward/plugin/rkvalueselector.h
+++ b/rkward/plugin/rkvalueselector.h
@@ -34,9 +34,9 @@ class RKValueSelector : public RKComponent {
 public: 
 	RKValueSelector (const QDomElement &element, RKComponent *parent_component, QWidget *parent_widget);
 	~RKValueSelector ();
-	int type () { return ComponentValueSelector; };
-	QVariant value (const QString &modifier=QString ());
-	QStringList getUiLabelPair () const;
+	int type () override { return ComponentValueSelector; };
+	QVariant value (const QString &modifier=QString ()) override;
+	QStringList getUiLabelPair () const override;
 private slots:
 	void selectionPropertyChanged ();
 	void listSelectionChanged ();
diff --git a/rkward/rbackend/rcommandstack.h b/rkward/rbackend/rcommandstack.h
index f1a6770..b3ee820 100644
--- a/rkward/rbackend/rcommandstack.h
+++ b/rkward/rbackend/rcommandstack.h
@@ -78,19 +78,19 @@ public:
 	~RCommandStackModel ();
 
 	/** implements QAbstractItemModel::index() */
-	QModelIndex index (int row, int column, const QModelIndex& parent = QModelIndex ()) const;
+	QModelIndex index (int row, int column, const QModelIndex& parent = QModelIndex ()) const override;
 	/** implements QAbstractItemModel::parent() */
-	QModelIndex parent (const QModelIndex& index) const;
+	QModelIndex parent (const QModelIndex& index) const override;
 	/** implements QAbstractItemModel::rowCount() */
-	int rowCount (const QModelIndex& parent = QModelIndex ()) const;
+	int rowCount (const QModelIndex& parent = QModelIndex ()) const override;
 	/** implements QAbstractItemModel::columnCount(). This is identical for all items */
-	int columnCount (const QModelIndex& parent = QModelIndex ()) const;
+	int columnCount (const QModelIndex& parent = QModelIndex ()) const override;
 	/** implements QAbstractItemModel::data() */
-	QVariant data (const QModelIndex& index, int role = Qt::DisplayRole) const;
+	QVariant data (const QModelIndex& index, int role = Qt::DisplayRole) const override;
 	/** reimplemented from  QAbstractItemModel::headerData() to make only commands (not chains/stacks) selectable */
-	Qt::ItemFlags flags (const QModelIndex& index) const;
+	Qt::ItemFlags flags (const QModelIndex& index) const override;
 	/** reimplemented from  QAbstractItemModel::headerData() to provide column names */
-	QVariant headerData (int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const;
+	QVariant headerData (int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const override;
 
 	/** static pointer to the model. Only one model will ever be around. */
 	static RCommandStackModel* getModel () { return static_model; };
diff --git a/rkward/rbackend/rinterface.h b/rkward/rbackend/rinterface.h
index efa4c50..d186f8f 100644
--- a/rkward/rbackend/rinterface.h
+++ b/rkward/rbackend/rinterface.h
@@ -78,7 +78,7 @@ not be interrupted. */
 	static bool isNaReal (double value) { return na_real == value; };
 	static bool isNaInt (int value) { return na_int == value; };
 private:
-	void timerEvent (QTimerEvent *);
+	void timerEvent (QTimerEvent *) override;
 	int flush_timer_id;
 /** Calls RThread::flushOutput(), and takes care of adding the output to all applicable commands */
 	void flushOutput (bool forced);
@@ -135,7 +135,7 @@ friend class RKWardMainWindow;
 friend class RCommand;
 protected:
 	void handleRequest (RBackendRequest *request);
-	void rCommandDone (RCommand *command);
+	void rCommandDone (RCommand *command) override;
 };
 
 /**
diff --git a/rkward/rbackend/rkbackendtransmitter.h b/rkward/rbackend/rkbackendtransmitter.h
index 765419d..4539385 100644
--- a/rkward/rbackend/rkbackendtransmitter.h
+++ b/rkward/rbackend/rkbackendtransmitter.h
@@ -30,13 +30,13 @@ public:
 
 	void publicmsleep (int delay) { msleep (delay); };
 
-	void run ();
+	void run () override;
 
-	void writeRequest (RBackendRequest *request);
-	void requestReceived (RBackendRequest *request);
-	void handleTransmissionError (const QString &message);
+	void writeRequest (RBackendRequest *request) override;
+	void requestReceived (RBackendRequest *request) override;
+	void handleTransmissionError (const QString &message) override;
 private:
-	void timerEvent (QTimerEvent *event);
+	void timerEvent (QTimerEvent *event) override;
 	void flushOutput (bool force);
 	QList<RBackendRequest*> current_sync_requests;	// pointers to the request that we expect a reply for. Yes, internally, this can be several requests.
 	QString servername;
diff --git a/rkward/rbackend/rkfrontendtransmitter.h b/rkward/rbackend/rkfrontendtransmitter.h
index 663bfa9..6b4b263 100644
--- a/rkward/rbackend/rkfrontendtransmitter.h
+++ b/rkward/rbackend/rkfrontendtransmitter.h
@@ -30,19 +30,19 @@ public:
 	RKFrontendTransmitter ();
 	~RKFrontendTransmitter ();
 
-	void run ();
+	void run () override;
 
-	bool doMSleep (int delay) {
+	bool doMSleep (int delay) override {
 		msleep (delay);
 		return true;
 	};
-	void writeRequest (RBackendRequest *request);
-	void requestReceived (RBackendRequest *request);
+	void writeRequest (RBackendRequest *request) override;
+	void requestReceived (RBackendRequest *request) override;
 private slots:
 	void connectAndEnterLoop ();
 	void backendExit (int exitcode);
 private:
-	void handleTransmissionError (const QString &message);
+	void handleTransmissionError (const QString &message) override;
 
 	QProcess* backend;
 	QLocalServer* server;
diff --git a/rkward/rbackend/rkrbackend.h b/rkward/rbackend/rkrbackend.h
index 4519963..7d94b4e 100644
--- a/rkward/rbackend/rkrbackend.h
+++ b/rkward/rbackend/rkrbackend.h
@@ -94,7 +94,7 @@ protected:
 /** low-level initialization of R */
 	bool startR ();
 /** reimplemented from RKROutputBuffer */
-	bool doMSleep (int msecs);
+	bool doMSleep (int msecs) override;
 public:
 /** convenience low-level function for running a command, directly
 @param command command to be runCommand
diff --git a/rkward/rbackend/rkrbackendprotocol_frontend.h b/rkward/rbackend/rkrbackendprotocol_frontend.h
index 97509a6..6e1dcbc 100644
--- a/rkward/rbackend/rkrbackendprotocol_frontend.h
+++ b/rkward/rbackend/rkrbackendprotocol_frontend.h
@@ -40,7 +40,7 @@ public:
 	static RKRBackendProtocolFrontend* instance () { return _instance; };
 protected:
 /** needed to handle the QEvents, the R thread is sending (notifications on what's happening in the backend thread) */
-	void customEvent (QEvent *e);
+	void customEvent (QEvent *e) override;
 	QThread* main_thread;
 private:
 	static RKRBackendProtocolFrontend* _instance;
diff --git a/rkward/rbackend/rktransmitter.h b/rkward/rbackend/rktransmitter.h
index ecd4d8e..641615f 100644
--- a/rkward/rbackend/rktransmitter.h
+++ b/rkward/rbackend/rktransmitter.h
@@ -58,7 +58,7 @@ protected:
 	virtual void handleTransmissionError (const QString &message) = 0;
 
 	void transmitRequest (RBackendRequest *request);
-	void customEvent (QEvent *e);
+	void customEvent (QEvent *e) override;
 	void setConnection (QLocalSocket *connection);
 	QLocalSocket *connection;
 	QString token;
diff --git a/rkward/rbackend/rkwarddevice/rkgraphicsdevice.h b/rkward/rbackend/rkwarddevice/rkgraphicsdevice.h
index e6023b8..7ed20c8 100644
--- a/rkward/rbackend/rkwarddevice/rkgraphicsdevice.h
+++ b/rkward/rbackend/rkwarddevice/rkgraphicsdevice.h
@@ -105,7 +105,7 @@ private slots:
 	void viewKilled ();
 private:
 	void goInteractive (const QString &prompt);
-	bool eventFilter (QObject *watched, QEvent *event);
+	bool eventFilter (QObject *watched, QEvent *event) override;
 	void checkSize ();
 
 	QTimer updatetimer;
diff --git a/rkward/rbackend/rkwarddevice/rkgraphicsdevice_backendtransmitter.h b/rkward/rbackend/rkwarddevice/rkgraphicsdevice_backendtransmitter.h
index b409e7d..4fd2998 100644
--- a/rkward/rbackend/rkwarddevice/rkgraphicsdevice_backendtransmitter.h
+++ b/rkward/rbackend/rkwarddevice/rkgraphicsdevice_backendtransmitter.h
@@ -42,7 +42,7 @@ private:
 	static RKGraphicsDeviceBackendTransmitter* _instance;
 	bool alive;
 	bool is_local_socket;
-	void run ();
+	void run () override;
 };
 
 #endif
diff --git a/rkward/rkconsole.h b/rkward/rkconsole.h
index 3fda245..79c0a93 100644
--- a/rkward/rkconsole.h
+++ b/rkward/rkconsole.h
@@ -61,7 +61,7 @@ public:
 /** Returns the current cursor position, within the current command (without taking into account the prefix). Returns -1 if the cursor is not on the line containing the command. */
 	int currentCursorPositionInCommand ();
 	void doTabCompletion ();
-	QString provideContext (int line_rev);
+	QString provideContext (int line_rev) override;
 
 	static RKConsole *mainConsole () { return main_console; };
 	static void setMainConsole (RKConsole *console) { main_console = console; };
@@ -71,7 +71,7 @@ public:
 	static void pipeUserCommand (const QString &command);
 
 /** reimplemnented from RKMDIWindow to clear selection when gaining focus */
-	void activate (bool with_focus=true);
+	void activate (bool with_focus=true) override;
 	void setCommandHistory (const QStringList &new_history, bool append);
 	QStringList commandHistory () const { return commands_history.getHistory (); };
 	void addCommandToHistory (const QString& text) { commands_history.append (text); };
@@ -79,14 +79,14 @@ protected:
 /** Handle keystrokes before they reach the kate-part. Return TRUE if we want the kate-part to ignore it
 \param e the QKeyEvent */
 	bool handleKeyPress (QKeyEvent * e);
-	void rCommandDone (RCommand *command);
+	void rCommandDone (RCommand *command) override;
 /** reimplemented from RCommandReceiver::newOutput () to handle output of console commands */
-	void newOutput (RCommand *command, ROutput *output);
+	void newOutput (RCommand *command, ROutput *output) override;
 /** reimplemented from QWidget to show the context menu */
-	void contextMenuEvent (QContextMenuEvent * event);
+	void contextMenuEvent (QContextMenuEvent * event) override;
 private:
 friend class RKConsolePart;
-	bool eventFilter (QObject *o, QEvent *e);
+	bool eventFilter (QObject *o, QEvent *e) override;
 	bool doTabCompletionHelper (int line_num, const QString &line, int word_start, int word_end, const QStringList &entries);
 /** a helper function to doTabCompletionHelper */
 	void insertCompletion (int line_num, int word_start, int word_end, const QString &completion);
@@ -187,7 +187,7 @@ private:
 	bool previous_chunk_was_piped;
 	
 /** Reimplemented from RCommandReceiver to display the next line of the command */
-	void userCommandLineIn (RCommand* command);
+	void userCommandLineIn (RCommand* command) override;
 };
 
 /** A part interface to RKConsole. Provides the context-help functionality
diff --git a/rkward/rkward.h b/rkward/rkward.h
index 499b2c5..54a52dd 100644
--- a/rkward/rkward.h
+++ b/rkward/rkward.h
@@ -72,7 +72,7 @@ protected:
 	/** sets up the various tool windows, and starts the R engine */
 	void initToolViewsAndR ();
 	/** reimplemented from KMainWindow to call our doQueryClose (), and then (if quitting was not cancelled), invoke an RKQuitAgent to wait for the R-backend to finish up before actually quitting. */
-	virtual void closeEvent (QCloseEvent *e);
+	virtual void closeEvent (QCloseEvent *e) override;
 signals:
 	void aboutToQuitRKWard ();
 public slots:
@@ -100,7 +100,7 @@ public slots:
 	*/
 	void slotCancelAllCommands ();
 	void configureCarbonCopy ();
-	void slotSetStatusBarText (const QString &text);
+	void slotSetStatusBarText (const QString &text) override;
 /** Basically a shortcut to slotSetStatusBarText (QString ()). Needed as a slot without parameters. */
 	void slotSetStatusReady () { slotSetStatusBarText (QString ()); };
 
@@ -130,9 +130,9 @@ public slots:
 	void slotDetachWindow ();
 
 /** reimplemented from KMainWindow, to additionally include the workspace url. Parameters are ignored. Rather we create a caption according to the active view */
-	void setCaption (const QString &);
+	void setCaption (const QString &) override;
 /** HACK this is only to make the compiler happy with -Woverloaded-virtual */
-	void setCaption (const QString &dummy, bool) { setCaption (dummy); };
+	void setCaption (const QString &dummy, bool) override { setCaption (dummy); };
 private slots:
 	void partChanged (KParts::Part *new_part);
 private:
diff --git a/rkward/rkward_startup_wrapper.cpp b/rkward/rkward_startup_wrapper.cpp
index 6c14e32..91b02eb 100644
--- a/rkward/rkward_startup_wrapper.cpp
+++ b/rkward/rkward_startup_wrapper.cpp
@@ -85,7 +85,7 @@ public:
         if (stdinClone == -1) stdinClone = ::dup (fileno(stdin));
     }
 protected:
-    void setupChildProcess () {
+    void setupChildProcess () override {
         ::dup2 (stdinClone, fileno(stdin));
     }
 };
diff --git a/rkward/robjectviewer.h b/rkward/robjectviewer.h
index 018e43d..fd03991 100644
--- a/rkward/robjectviewer.h
+++ b/rkward/robjectviewer.h
@@ -54,9 +54,9 @@ protected:
 	friend class RKWorkplace;
 	RObjectViewer (QWidget *parent, RObject *object, ViewerPage initial_page = SummaryPage);
 
-	void objectRemoved (RObject *object);
-	void objectMetaChanged (RObject *object);
-	void objectDataChanged (RObject *object, const RObject::ChangeSet*);
+	void objectRemoved (RObject *object) override;
+	void objectMetaChanged (RObject *object) override;
+	void objectDataChanged (RObject *object, const RObject::ChangeSet*) override;
 private:
 	void initDescription (bool notify);
 
@@ -88,7 +88,7 @@ public slots:
 	void cancel ();
 	virtual void update ();
 protected:
-	void rCommandDone (RCommand *command);
+	void rCommandDone (RCommand *command) override;
 	void ready ();
 
 	QLabel* status_label;
@@ -109,7 +109,7 @@ public:
 	~RObjectSummaryWidget () {};
 
 	/** reimplemented from RObjectViewerWidget to call "summary" */
-	void update ();
+	void update () override;
 };
 
 /** Represents the "print" area in an RObjectViewer */
@@ -119,7 +119,7 @@ public:
 	~RObjectPrintWidget () {};
 
 	/** reimplemented from RObjectViewerWidget to call "print" */
-	void update ();
+	void update () override;
 };
 
 /** Represents the "str" area in an RObjectViewer */
@@ -129,7 +129,7 @@ public:
 	~RObjectStructureWidget () {};
 
 	/** reimplemented from RObjectViewerWidget to call "str" */
-	void update ();
+	void update () override;
 };
 
 #endif
diff --git a/rkward/scriptbackends/qtscriptbackend.h b/rkward/scriptbackends/qtscriptbackend.h
index 0ea19a3..ffc59b1 100644
--- a/rkward/scriptbackends/qtscriptbackend.h
+++ b/rkward/scriptbackends/qtscriptbackend.h
@@ -35,20 +35,20 @@ public:
 
 	~QtScriptBackend ();
 
-	bool initialize (RKComponentPropertyCode *code_property=0, bool add_headings=true);
-	void destroy ();
+	bool initialize (RKComponentPropertyCode *code_property=0, bool add_headings=true) override;
+	void destroy () override;
 	
-	void preprocess (int flags) { callFunction ("do_preprocess ();\n", flags, Preprocess); };
-	void calculate (int flags) { callFunction ("do_calculate ();\n", flags, Calculate); };
-	void printout (int flags) { callFunction ("do_printout ();\n", flags, Printout); };
-	void preview (int flags) { callFunction ("do_preview ();\n", flags, Preview); };
-	void writeData (const QVariant &data);
+	void preprocess (int flags) override { callFunction ("do_preprocess ();\n", flags, Preprocess); };
+	void calculate (int flags) override { callFunction ("do_calculate ();\n", flags, Calculate); };
+	void printout (int flags) override { callFunction ("do_printout ();\n", flags, Printout); };
+	void preview (int flags) override { callFunction ("do_preview ();\n", flags, Preview); };
+	void writeData (const QVariant &data) override;
 public slots:
 	void threadError (const QString &message);
 	void commandDone (const QString &result);
 	void needData (const QString &identifier, const int hint);
 private:
-	void tryNextFunction ();
+	void tryNextFunction () override;
 	QtScriptBackendThread *script_thread;
 	const RKMessageCatalog *catalog;
 
@@ -83,7 +83,7 @@ protected slots:
 	QVariant getUiLabelPair (const QString &identifier);
 	bool includeFile (const QString &filename);
 protected:
-	void run ();
+	void run () override;
 private:
 	/** for any script error in the last evaluation. If there was an error, a message is generated, and this function return true (and the thread should be made to exit!) */
 	bool scriptError ();
diff --git a/rkward/scriptbackends/simplebackend.h b/rkward/scriptbackends/simplebackend.h
index aa701a6..d445702 100644
--- a/rkward/scriptbackends/simplebackend.h
+++ b/rkward/scriptbackends/simplebackend.h
@@ -40,16 +40,16 @@ public:
 	void setPrintoutTemplate (const QString &template_string) { printout_template = template_string; };
 	void setPreviewTemplate (const QString &template_string) { preview_template = template_string; };
 
-	bool initialize (RKComponentPropertyCode *code_property=0, bool add_headings=true);
-	void destroy ();
+	bool initialize (RKComponentPropertyCode *code_property=0, bool add_headings=true) override;
+	void destroy () override;
 	
-	void preprocess (int flags);
-	void calculate (int flags);
-	void printout (int flags);
-	void preview (int flags);
+	void preprocess (int flags) override;
+	void calculate (int flags) override;
+	void printout (int flags) override;
+	void preview (int flags) override;
 	
-	void writeData (const QVariant &data);
-	void tryNextFunction ();
+	void writeData (const QVariant &data) override;
+	void tryNextFunction () override;
 private:
 	QString preprocess_template;
 	QString calculate_template;
diff --git a/rkward/settings/rksettings.h b/rkward/settings/rksettings.h
index 6129613..8109599 100644
--- a/rkward/settings/rksettings.h
+++ b/rkward/settings/rksettings.h
@@ -62,7 +62,7 @@ public:
 public slots:
 	void pageChange (KPageWidgetItem *current, KPageWidgetItem *before);
 protected:
-	void slotButtonClicked (int button);
+	void slotButtonClicked (int button) override;
 protected:
 	RKSettings (QWidget *parent = 0);
 	~RKSettings ();
diff --git a/rkward/settings/rksettingsmodulecommandeditor.h b/rkward/settings/rksettingsmodulecommandeditor.h
index eab4d7b..295e0c8 100644
--- a/rkward/settings/rksettingsmodulecommandeditor.h
+++ b/rkward/settings/rksettingsmodulecommandeditor.h
@@ -36,13 +36,13 @@ public:
 
 	~RKSettingsModuleCommandEditor ();
 	
-	void applyChanges ();
-	void save (KConfig *config);
+	void applyChanges () override;
+	void save (KConfig *config) override;
 	
 	static void saveSettings (KConfig *config);
 	static void loadSettings (KConfig *config);
 	
-	QString caption ();
+	QString caption () override;
 
 /// min number of character to try code completion
 	static int completionMinChars () { return completion_min_chars; };
diff --git a/rkward/settings/rksettingsmoduleconsole.h b/rkward/settings/rksettingsmoduleconsole.h
index 33e9c6a..2813d52 100644
--- a/rkward/settings/rksettingsmoduleconsole.h
+++ b/rkward/settings/rksettingsmoduleconsole.h
@@ -40,8 +40,8 @@ public:
 	static void saveSettings (KConfig *config);
 	static void loadSettings (KConfig *config);
 	
-	void applyChanges ();
-	void save (KConfig *config);
+	void applyChanges () override;
+	void save (KConfig *config) override;
 
 	static bool saveHistory () { return save_history; };
 	static uint maxHistoryLength () { return max_history_length; };
@@ -61,9 +61,9 @@ public:
 	static QStringList loadCommandHistory ();
 	static void saveCommandHistory (const QStringList &list);
 
-	QString caption ();
+	QString caption () override;
 
-	QString helpURL () { return ("rkward://page/rkward_console#settings"); };
+	QString helpURL () override { return ("rkward://page/rkward_console#settings"); };
 public slots:
 	void changedSetting (int);
 private:
diff --git a/rkward/settings/rksettingsmoduledebug.h b/rkward/settings/rksettingsmoduledebug.h
index 49163bf..9c2ade3 100644
--- a/rkward/settings/rksettingsmoduledebug.h
+++ b/rkward/settings/rksettingsmoduledebug.h
@@ -35,13 +35,13 @@ public:
 
 	~RKSettingsModuleDebug ();
 	
-	void applyChanges ();
-	void save (KConfig *config);
+	void applyChanges () override;
+	void save (KConfig *config) override;
 	
 	static void saveSettings (KConfig *config);
 	static void loadSettings (KConfig *config);
 	
-	QString caption ();
+	QString caption () override;
 
 	// static members are declared in debug.h and defined in main.cpp
 public slots:
diff --git a/rkward/settings/rksettingsmodulegeneral.h b/rkward/settings/rksettingsmodulegeneral.h
index 70b4583..eaff3f3 100644
--- a/rkward/settings/rksettingsmodulegeneral.h
+++ b/rkward/settings/rksettingsmodulegeneral.h
@@ -55,13 +55,13 @@ public:
 		RKMDIFocusFollowsMouse=1
 	};
 
-	void applyChanges ();
-	void save (KConfig *config);
+	void applyChanges () override;
+	void save (KConfig *config) override;
 	
 	static void saveSettings (KConfig *config);
 	static void loadSettings (KConfig *config);
 	
-	QString caption ();
+	QString caption () override;
 
 /// returns the directory-name where the logfiles should reside
 	static QString &filesPath () { return files_path; };
diff --git a/rkward/settings/rksettingsmodulegraphics.h b/rkward/settings/rksettingsmodulegraphics.h
index 566d597..bef1583 100644
--- a/rkward/settings/rksettingsmodulegraphics.h
+++ b/rkward/settings/rksettingsmodulegraphics.h
@@ -38,8 +38,8 @@ public:
 	RKSettingsModuleGraphics (RKSettings *gui, QWidget *parent);
 	~RKSettingsModuleGraphics ();
 	
-	void applyChanges ();
-	void save (KConfig *config);
+	void applyChanges () override;
+	void save (KConfig *config) override;
 
 /** generate the commands needed to set the R run time options */
 	static QStringList makeRRunTimeOptionCommands ();
@@ -50,8 +50,8 @@ public:
 	static void saveSettings (KConfig *config);
 	static void loadSettings (KConfig *config);
 	
-	QString caption ();
-	QString helpURL () { return ("rkward://page/rkward_plot_history#scd_settings"); };
+	QString caption () override;
+	QString helpURL () override { return ("rkward://page/rkward_plot_history#scd_settings"); };
 
 	enum DefaultDevice {
 		RKDevice,
diff --git a/rkward/settings/rksettingsmoduleobjectbrowser.h b/rkward/settings/rksettingsmoduleobjectbrowser.h
index 6e6b9ef..575243c 100644
--- a/rkward/settings/rksettingsmoduleobjectbrowser.h
+++ b/rkward/settings/rksettingsmoduleobjectbrowser.h
@@ -37,13 +37,13 @@ public:
 	~RKSettingsModuleObjectBrowser ();
 
 /** applies current settings in this RKSettingsModule. This will only be called, if hasChanges () is true */
-	void applyChanges ();
+	void applyChanges () override;
 /** saves current changes to the given KConfig
 @param config probably always RKGlobals::rkApp ()->config. But passing this as an argument is both more flexible and saves #including files.*/
-	void save (KConfig *config);
+	void save (KConfig *config) override;
 
 /** @returns the caption ("Workspace Browser") */
-	QString caption ();
+	QString caption () override;
 
 	static void saveSettings (KConfig *config);
 	static void loadSettings (KConfig *config);
@@ -55,7 +55,7 @@ public:
 
 	static bool isPackageBlacklisted (const QString &package_name);
 
-	QString helpURL () { return ("rkward://page/rkward_workspace_browser#settings"); };
+	QString helpURL () override { return ("rkward://page/rkward_workspace_browser#settings"); };
 public slots:
 /** called when a checkbox has been changed. Signals change to RKSettings dialog to enable apply button */
 	void boxChanged (int);
diff --git a/rkward/settings/rksettingsmoduleoutput.h b/rkward/settings/rksettingsmoduleoutput.h
index 784e1ee..4f765a5 100644
--- a/rkward/settings/rksettingsmoduleoutput.h
+++ b/rkward/settings/rksettingsmoduleoutput.h
@@ -76,8 +76,8 @@ public:
 	RKSettingsModuleOutput (RKSettings *gui, QWidget *parent);
 	~RKSettingsModuleOutput ();
 	
-	void applyChanges ();
-	void save (KConfig *config);
+	void applyChanges () override;
+	void save (KConfig *config) override;
 
 /** generate the commands needed to set the R run time options */
 	static QStringList makeRRunTimeOptionCommands ();
@@ -85,7 +85,7 @@ public:
 	static void saveSettings (KConfig *config);
 	static void loadSettings (KConfig *config);
 	
-	QString caption ();
+	QString caption () override;
 	
 	static bool autoShow () { return auto_show; };
 	static bool autoRaise () { return auto_raise; };
diff --git a/rkward/settings/rksettingsmoduleplugins.h b/rkward/settings/rksettingsmoduleplugins.h
index e3c07f7..6c55f5d 100644
--- a/rkward/settings/rksettingsmoduleplugins.h
+++ b/rkward/settings/rksettingsmoduleplugins.h
@@ -39,15 +39,15 @@ public:
 	RKSettingsModulePlugins (RKSettings *gui, QWidget *parent);
 	~RKSettingsModulePlugins ();
 
-	void applyChanges ();
-	void save (KConfig *config);
+	void applyChanges () override;
+	void save (KConfig *config) override;
 	
 	enum PluginPrefs { PreferDialog=0, PreferRecommended=1, PreferWizard=2 };
 	
 	static void saveSettings (KConfig *config);
 	static void loadSettings (KConfig *config);
 	
-	QString caption ();
+	QString caption () override;
 
 	/** @returns a list of active plugin maps */
 	static QStringList pluginMaps ();
@@ -129,13 +129,13 @@ private:
 	const PluginMapMetaInfo &getPluginMapMetaInfo (const QString &pluginmapfile);
 
 	// reimplemented model functions
-	int rowCount (const QModelIndex &parent = QModelIndex()) const;
-	int columnCount (const QModelIndex &parent = QModelIndex()) const;
-	QVariant data (const QModelIndex &index, int role = Qt::DisplayRole) const;
-	QVariant headerData (int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const;
-	bool setData (const QModelIndex &index, const QVariant &value, int role = Qt::EditRole);
-    bool removeRows (int row, int count, const QModelIndex& parent = QModelIndex ());
-	Qt::ItemFlags flags (const QModelIndex &index) const;
+	int rowCount (const QModelIndex &parent = QModelIndex()) const override;
+	int columnCount (const QModelIndex &parent = QModelIndex()) const override;
+	QVariant data (const QModelIndex &index, int role = Qt::DisplayRole) const override;
+	QVariant headerData (int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const override;
+	bool setData (const QModelIndex &index, const QVariant &value, int role = Qt::EditRole) override;
+    bool removeRows (int row, int count, const QModelIndex& parent = QModelIndex ()) override;
+	Qt::ItemFlags flags (const QModelIndex &index) const override;
 };
 
 #endif
diff --git a/rkward/settings/rksettingsmoduler.h b/rkward/settings/rksettingsmoduler.h
index a3962ed..54e70cd 100644
--- a/rkward/settings/rksettingsmoduler.h
+++ b/rkward/settings/rksettingsmoduler.h
@@ -40,13 +40,13 @@ public:
 	RKSettingsModuleR (RKSettings *gui, QWidget *parent);
 	~RKSettingsModuleR ();
 	
-	void applyChanges ();
-	void save (KConfig *config);
+	void applyChanges () override;
+	void save (KConfig *config) override;
 	
 	static void saveSettings (KConfig *config);
 	static void loadSettings (KConfig *config);
 	
-	QString caption ();
+	QString caption () override;
 	
 /** generate the commands needed to set the R run time options */
 	static QStringList makeRRunTimeOptionCommands ();
@@ -109,8 +109,8 @@ public:
 	RKSettingsModuleRPackages (RKSettings *gui, QWidget *parent);
 	~RKSettingsModuleRPackages ();
 	
-	void applyChanges ();
-	void save (KConfig *config);
+	void applyChanges () override;
+	void save (KConfig *config) override;
 	
 	static void saveSettings (KConfig *config);
 	static void loadSettings (KConfig *config);
@@ -126,14 +126,14 @@ public:
 /** returns the list of packages which are essential to rkward. This is hard-coded. */
 	static QStringList essentialPackages () { return essential_packages.split ("\n"); };
 
-	QString caption ();
+	QString caption () override;
 public slots:
 	void settingChanged ();
 	void addLibLoc (QStringList *string_list);
 	void addRepository (QStringList *string_list);
 	void selectCRANMirror ();
 protected:
-	void rCommandDone (RCommand *command);
+	void rCommandDone (RCommand *command) override;
 private:
 	static QString libLocsCommand ();
 
diff --git a/rkward/settings/rksettingsmodulewatch.h b/rkward/settings/rksettingsmodulewatch.h
index 36531b2..3d7749f 100644
--- a/rkward/settings/rksettingsmodulewatch.h
+++ b/rkward/settings/rksettingsmodulewatch.h
@@ -40,8 +40,8 @@ public:
 	static void saveSettings (KConfig *config);
 	static void loadSettings (KConfig *config);
 	
-	void applyChanges ();
-	void save (KConfig *config);
+	void applyChanges () override;
+	void save (KConfig *config) override;
 	void validateGUI ();
 
 	static bool shouldShowInput (RCommand *command);
@@ -51,7 +51,7 @@ public:
 
 	static uint maxLogLines () { return max_log_lines; };
 
-	QString caption ();
+	QString caption () override;
 public slots:
 	void changedSetting (int);
 private:
diff --git a/rkward/windows/detachedwindowcontainer.h b/rkward/windows/detachedwindowcontainer.h
index 9a56b75..c082141 100644
--- a/rkward/windows/detachedwindowcontainer.h
+++ b/rkward/windows/detachedwindowcontainer.h
@@ -44,13 +44,13 @@ public slots:
 	void slotReattach ();
 /** update own caption, when the window's caption has changed */
 	void updateCaption (RKMDIWindow *);
-	void slotSetStatusBarText (const QString &text);
+	void slotSetStatusBarText (const QString &text) override;
 /** Hide any emtpy menus.
 @param ignore do nothing if true. For internal use, only. */
 	void hideEmptyMenus (bool ignore=false);
 protected:
 /** when receiving a close event, dispatch to the embedded window */
-	void closeEvent (QCloseEvent *e);
+	void closeEvent (QCloseEvent *e) override;
 private:
 	RKMDIWindow *captured;
 	RKTopLevelWindowGUI *toplevel_actions;
diff --git a/rkward/windows/rcontrolwindow.h b/rkward/windows/rcontrolwindow.h
index 7e7541c..721242a 100644
--- a/rkward/windows/rcontrolwindow.h
+++ b/rkward/windows/rcontrolwindow.h
@@ -46,9 +46,9 @@ public:
 	~RControlWindow ();
 
 /** reimplemented to start listening to the RCommandStackModel when showing. */
-	void showEvent (QShowEvent *e);
+	void showEvent (QShowEvent *e) override;
 /** when hidden, disconnect from the RCommandStackModel to save resources */
-	void hideEvent (QHideEvent *e);
+	void hideEvent (QHideEvent *e) override;
 /** Static reference to the control window */
 	static RControlWindow* getControl () { return control_window; };
 public slots:
diff --git a/rkward/windows/rkcommandeditorwindow.h b/rkward/windows/rkcommandeditorwindow.h
index 6b49fa2..0d57e46 100644
--- a/rkward/windows/rkcommandeditorwindow.h
+++ b/rkward/windows/rkcommandeditorwindow.h
@@ -87,7 +87,7 @@ public slots:
 	void updateArgHintWindow ();
 protected:
 	/** The (keypress) events of the view are filtered to determine, when to show / hide an argument hint */
-	bool eventFilter (QObject *, QEvent *e);
+	bool eventFilter (QObject *, QEvent *e) override;
 private:
 	RKScriptContextProvider *provider;
 	KTextEditor::View *view;
@@ -98,7 +98,6 @@ private:
 	QLabel *arghints_popup;
 };
 
-/** code completion model for RKCommandEditorWindow */
 class RKCodeCompletionModel : public KTextEditor::CodeCompletionModel, public KTextEditor::CodeCompletionModelControllerInterface {
 	Q_OBJECT
 	Q_INTERFACES(KTextEditor::CodeCompletionModelControllerInterface)
@@ -148,7 +147,7 @@ public:
 @param delete_on_close File should be deleted when closing the window. Only respected with read_only=true. */
 	bool openURL (const QUrl url, const QString& encoding=QString (), bool use_r_highlighting=true, bool read_only=false, bool delete_on_close=false);
 /** returns, whether the document was modified since the last save */
-	bool isModified ();
+	bool isModified () override;
 /** insert the given text into the document at the current cursor position. Additionally, focuses the view */
 	void insertText (const QString &text);
 /** set the current text (clear all previous text, and sets new text) */
@@ -161,14 +160,14 @@ public:
 	void copy ();
 
 /** reimplemented from RKMDIWindow to return full path of file (if any) */
-	QString fullCaption ();
+	QString fullCaption () override;
 
 	void setReadOnly (bool ro);
 
 /** Return current url */
 	KUrl url ();
 
-	QString provideContext (int line_rev);
+	QString provideContext (int line_rev) override;
 	QString currentCompletionWord () const;
 
 	void highlightLine (int linenum);
@@ -205,7 +204,7 @@ public slots:
 	QAction* fileSaveAsAction () { return file_save_as; };
 protected:
 /** reimplemented from RKMDIWindow: give the editor window a chance to object to being closed (if unsaved) */
-	void closeEvent (QCloseEvent *e);
+	void closeEvent (QCloseEvent *e) override;
 private slots:
 /** mark current selection as a block */
 	void markBlock ();
diff --git a/rkward/windows/rkcommandlog.h b/rkward/windows/rkcommandlog.h
index f0e6770..2ef472a 100644
--- a/rkward/windows/rkcommandlog.h
+++ b/rkward/windows/rkcommandlog.h
@@ -41,14 +41,14 @@ public:
 /** Adds input to the log_view-window (i.e. commands issued) */
 	void addInput (RCommand *command);
 /** Adds output to the log_view-window (i.e. replies received) */
-	void newOutput (RCommand *command, ROutput *output_fragment);
+	void newOutput (RCommand *command, ROutput *output_fragment) override;
 
 	static RKCommandLog *getLog () { return rkcommand_log; };
 
 	RKCommandLogView *getView () { return log_view; };
 protected:
 /** Command has finished. If the command has failed, it may be necessary to print some more information */
-	void rCommandDone (RCommand *command);
+	void rCommandDone (RCommand *command) override;
 	RKCommandLog (QWidget *parent, bool tool_window, const char *name=0);
 	~RKCommandLog ();
 public slots:
@@ -85,7 +85,7 @@ public slots:
 signals:
 	void popupMenuRequest (const QPoint &pos);
 protected:
-	void contextMenuEvent (QContextMenuEvent *event);
+	void contextMenuEvent (QContextMenuEvent *event) override;
 };
 
 #include <kparts/part.h>
diff --git a/rkward/windows/rkdebugmessagewindow.h b/rkward/windows/rkdebugmessagewindow.h
index 8caa1de..c96dd21 100644
--- a/rkward/windows/rkdebugmessagewindow.h
+++ b/rkward/windows/rkdebugmessagewindow.h
@@ -31,9 +31,9 @@ public:
 	~RKDebugMessageWindow ();
 
 /** reimplemented to create the real widget only when the viewer is shown */
-	void showEvent (QShowEvent *e);
+	void showEvent (QShowEvent *e) override;
 /** reimplemented to discard the real widget only when the viewer is hidden */
-	void hideEvent (QHideEvent *e);
+	void hideEvent (QHideEvent *e) override;
 	static RKDebugMessageWindow *instance () { return _instance; };
 	static void newMessage (const int flags, const int level, const QString &message);
 private:
diff --git a/rkward/windows/rkfilebrowser.h b/rkward/windows/rkfilebrowser.h
index 9a1c979..4332334 100644
--- a/rkward/windows/rkfilebrowser.h
+++ b/rkward/windows/rkfilebrowser.h
@@ -41,7 +41,7 @@ public:
 	~RKFileBrowser ();
 
 /** reimplemented to create the real file browser widget only when the file browser is shown for the first time */
-	void showEvent (QShowEvent *e);
+	void showEvent (QShowEvent *e) override;
 	static RKFileBrowser *getMainBrowser() { return main_browser; };
 public slots:
 	void currentWDChanged ();
@@ -62,7 +62,7 @@ public:
 	~RKFileBrowserWidget ();
 
 	void setURL (const QString &url);
-	bool eventFilter (QObject* o, QEvent* e);
+	bool eventFilter (QObject* o, QEvent* e) override;
 public slots:
 	void urlChangedInView (const QUrl &url);
 	void urlChangedInCombo (const QString &url);
diff --git a/rkward/windows/rkhelpsearchwindow.h b/rkward/windows/rkhelpsearchwindow.h
index 7534388..a280dc0 100644
--- a/rkward/windows/rkhelpsearchwindow.h
+++ b/rkward/windows/rkhelpsearchwindow.h
@@ -41,7 +41,7 @@ class RKHelpSearchWindow : public RKMDIWindow, public RCommandReceiver {
 public:
 	RKHelpSearchWindow (QWidget *parent, bool tool_window, const char *name=0);
 	~RKHelpSearchWindow ();
-	void rCommandDone (RCommand *command);
+	void rCommandDone (RCommand *command) override;
 /** small convenience function to get context help for RKCommandEditorWindow and RKConsole.
 @param context_line The current line
 @param cursor_pos cursor position in the current line
@@ -55,7 +55,7 @@ public slots:
 	void updateInstalledPackages ();
 protected:
 /** reimplemnented from QWidget to make the input focus default to the input field */
-	void focusInEvent (QFocusEvent *e);
+	void focusInEvent (QFocusEvent *e) override;
 private:
 	QComboBox* field;
 	QComboBox* fieldsList;
@@ -81,10 +81,10 @@ public:
 /** Set the results. The model will assume ownership of the results */
 	void setResults (const QStringList &new_results);
 
-	int rowCount (const QModelIndex& parent=QModelIndex()) const;
-	int columnCount (const QModelIndex& parent=QModelIndex()) const;
-	QVariant data (const QModelIndex& index, int role=Qt::DisplayRole) const;
-	QVariant headerData (int section, Qt::Orientation orientation, int role=Qt::DisplayRole) const;
+	int rowCount (const QModelIndex& parent=QModelIndex()) const override;
+	int columnCount (const QModelIndex& parent=QModelIndex()) const override;
+	QVariant data (const QModelIndex& index, int role=Qt::DisplayRole) const override;
+	QVariant headerData (int section, Qt::Orientation orientation, int role=Qt::DisplayRole) const override;
 	QString resultsType (int row);
 private:
 	QStringList topics;
diff --git a/rkward/windows/rkhtmlwindow.h b/rkward/windows/rkhtmlwindow.h
index ea3a598..dc50b54 100644
--- a/rkward/windows/rkhtmlwindow.h
+++ b/rkward/windows/rkhtmlwindow.h
@@ -47,9 +47,9 @@ signals:
 	void pageInternalNavigation (const QUrl& url);
 protected:
 /** reimplemented to always emit linkClicked() for pages that need special handling (importantly, rkward://-urls). */
-	bool acceptNavigationRequest (QWebFrame* frame, const QNetworkRequest& request, NavigationType type);
+	bool acceptNavigationRequest (QWebFrame* frame, const QNetworkRequest& request, NavigationType type) override;
 /** reimplemented to schedule new window creation for the next page to load */
-	QWebPage* createWindow (WebWindowType type);
+	QWebPage* createWindow (WebWindowType type) override;
 private:
 	RKHTMLWindow *window;
 	bool new_window;
@@ -88,7 +88,7 @@ public:
 	static bool handleRKWardURL (const KUrl &url, RKHTMLWindow *window=0);
 	void openRKHPage (const KUrl &url);
 
-	bool isModified ();
+	bool isModified () override;
 /** Return current url */
 	KUrl url ();
 /** Return current url in a restorable way, i.e. for help pages, abstract the session specific part of the path */
diff --git a/rkward/windows/rkmdiwindow.h b/rkward/windows/rkmdiwindow.h
index 54c7154..5d9387b 100644
--- a/rkward/windows/rkmdiwindow.h
+++ b/rkward/windows/rkmdiwindow.h
@@ -102,7 +102,7 @@ public:
 /** Tool windows will only hide themselves, and ignore the also_delete flag */
 	virtual bool close (bool also_delete);
 
-	bool eventFilter (QObject *watched, QEvent *e);
+	bool eventFilter (QObject *watched, QEvent *e) override;
 	bool acceptsEventsFor (QObject *object);
 /** Whether the window is active. This seems to be more reliable than hasFocus () */
 	bool isActive ();
@@ -123,11 +123,11 @@ protected:
 	void setPart (KParts::Part *p) { part = p; };
 	void setMetaInfo (const QString& generic_window_name, const QString& help_url, RKSettings::SettingsPage settings_page=RKSettings::NoPage);
 	void initializeActivationSignals ();
-	void paintEvent (QPaintEvent *e);
-	void windowActivationChange (bool);
+	void paintEvent (QPaintEvent *e) override;
+	void windowActivationChange (bool) override;
 
 /** reimplemented from QWidget to emulate focus-follows-mouse behavior */
-	void enterEvent (QEvent *event);
+	void enterEvent (QEvent *event) override;
 /** @see globalContextProperty() */
 	void setGlobalContextProperty (const QString& property, const QString& value) { global_context_properties.insert (property, value); };
 friend class RKWorkplace;
diff --git a/rkward/windows/rktoolwindowbar.h b/rkward/windows/rktoolwindowbar.h
index 1a7cb9a..f5d982f 100644
--- a/rkward/windows/rktoolwindowbar.h
+++ b/rkward/windows/rktoolwindowbar.h
@@ -58,9 +58,9 @@ private slots:
 	void splitterMoved (int, int);
 protected:
 	/** handle RMB clicks on individual buttons */
-	bool eventFilter (QObject *obj, QEvent *ev);
+	bool eventFilter (QObject *obj, QEvent *ev) override;
 	/** handle RMB clicks on the bar itself */
-	void contextMenuEvent (QContextMenuEvent *event);
+	void contextMenuEvent (QContextMenuEvent *event) override;
 private:
 friend class RKWorkplace;
 	void reclaimDetached (RKMDIWindow *window);
diff --git a/rkward/windows/rkwindowcatcher.h b/rkward/windows/rkwindowcatcher.h
index 9ce9e0a..282156d 100644
--- a/rkward/windows/rkwindowcatcher.h
+++ b/rkward/windows/rkwindowcatcher.h
@@ -124,12 +124,12 @@ public:
 /** dtor */
 	~RKCaughtX11Window ();
 /** TODO? */
-	bool isModified () { return false; };
+	bool isModified () override { return false; };
 
 /** reimplemented from RKMDIWindow to switch to fixed size mode, and disable the dynamic_size_action */
-	void prepareToBeAttached ();
+	void prepareToBeAttached () override;
 /** see prepareToBeAttached (). Reenable the dynamic_size_action */
-	void prepareToBeDetached ();
+	void prepareToBeDetached () override;
 /** returns the window corresponding the to given R device number (or 0 if no such window exists) */
 	static RKCaughtX11Window* getWindow (int device_number) { return device_windows.value (device_number); };
 	void updateHistoryActions (int history_length, int position, const QStringList &labels);
@@ -173,7 +173,7 @@ public slots:
 	void showPlotInfo ();
 
 /** reimplemented to keep window alive while saving history */
-	bool close (bool also_delete);
+	bool close (bool also_delete) override;
 	void setKilledInR () { killed_in_r = true; };
 private slots:
 	void doEmbed ();
@@ -181,7 +181,7 @@ private:
 	void forceClose ();
 	void commonInit (int device_number);
 	void reEmbed ();
-	void rCommandDone (RCommand *command);
+	void rCommandDone (RCommand *command) override;
 	friend class RKCaughtX11WindowPart;	// needs access to the actions
 	int device_number;
 	bool killed_in_r;
diff --git a/rkward/windows/rkworkplace.cpp b/rkward/windows/rkworkplace.cpp
index 5cfc933..5be30cb 100644
--- a/rkward/windows/rkworkplace.cpp
+++ b/rkward/windows/rkworkplace.cpp
@@ -774,13 +774,13 @@ public:
 	}
 
 private:
-	void focusOutEvent (QFocusEvent *) {
+	void focusOutEvent (QFocusEvent *) override {
 		RK_TRACE (APP);
 
 		deleteLater ();
 	}
 
-	void keyReleaseEvent (QKeyEvent *ev) {
+	void keyReleaseEvent (QKeyEvent *ev) override {
 		RK_TRACE (APP);
 
 		if (ev->modifiers () == Qt::NoModifier) {
@@ -788,7 +788,7 @@ private:
 		}
 	}
 
-	void mouseReleaseEvent (QMouseEvent *ev) {
+	void mouseReleaseEvent (QMouseEvent *ev) override {
 		RK_TRACE (APP);
 
 		// HACK to get by without slots, and the associated moc'ing
diff --git a/rkward/windows/robjectbrowser.h b/rkward/windows/robjectbrowser.h
index afcadb0..7e22496 100644
--- a/rkward/windows/robjectbrowser.h
+++ b/rkward/windows/robjectbrowser.h
@@ -43,7 +43,7 @@ public:
 	void unlock ();
 	static RObjectBrowser *mainBrowser () { return object_browser; };
 /** reimplemented to create the real file browser widget only when the file browser is shown for the first time */
-	void showEvent (QShowEvent *e);
+	void showEvent (QShowEvent *e) override;
 private:
 	RObjectBrowserInternal *internal;
 	KVBox *layout_widget;
@@ -81,7 +81,7 @@ private slots:
 	void doubleClicked (const QModelIndex &index);
 protected:
 /** reimplemnented from QWidget to make show the globalenv object when activated (other than by mouse click) */
-	void focusInEvent (QFocusEvent *e);
+	void focusInEvent (QFocusEvent *e) override;
 private:
 	enum PopupActions {
 		Help=0,



More information about the rkward-tracker mailing list