ktp-common-internals rebase diff

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 280a8a8..ce14aa4 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -10,20 +10,22 @@ set (CMAKE_MODULE_PATH
 cmake_policy(SET CMP0002 OLD)
 
 # KDE Application Version, managed by release script
-set (KDE_APPLICATIONS_VERSION_MAJOR "19")
-set (KDE_APPLICATIONS_VERSION_MINOR "07")
-set (KDE_APPLICATIONS_VERSION_MICRO "70")
+set (RELEASE_SERVICE_VERSION_MAJOR "20")
+set (RELEASE_SERVICE_VERSION_MINOR "03")
+set (RELEASE_SERVICE_VERSION_MICRO "70")
 
 # Bump for every 0.x release, or whenever BC changes
 set (KTP_SONUMBER 9) # SO 9 is for 15.08 release
-set (KTP_VERSION "${KDE_APPLICATIONS_VERSION_MAJOR}.${KDE_APPLICATIONS_VERSION_MINOR}.${KDE_APPLICATIONS_VERSION_MICRO}")
+set (KTP_VERSION "${RELEASE_SERVICE_VERSION_MAJOR}.${RELEASE_SERVICE_VERSION_MINOR}.${RELEASE_SERVICE_VERSION_MICRO}")
 set (KTP_MESSAGE_FILTER_FRAMEWORK_VERSION "5")
 
 find_package (Qt5 REQUIRED CONFIG COMPONENTS
+              DBus
               Qml
-              Quick
+              Test
+              Xml
               Sql
-              Test)
+              Quick)
 
 find_package (KF5 5.11 REQUIRED COMPONENTS
               CoreAddons
@@ -71,11 +73,11 @@ include(CheckIncludeFiles)
 include(FeatureSummary)
 
 set_package_properties(KF5People PROPERTIES DESCRIPTION "Support for KDE Contact Aggregation"
-                       URL "https://projects.kde.org/libkpeople"
+                       URL "https://commits.kde.org/kpeople"
                        TYPE OPTIONAL
                       )
 set_package_properties(TelepathyLoggerQt PROPERTIES DESCRIPTION "Qt bindings for TelepathyLogger. This is needed to provide access to chat logs. HIGHLY recommended"
-                       URL "http://projects.kde.org/telepathy-logger-qt"
+                       URL "https://commits.kde.org/telepathy-logger-qt"
                        TYPE OPTIONAL
                       )
 set_package_properties(LibOTR PROPERTIES DESCRIPTION "Required for OTR support" TYPE OPTIONAL)
diff --git a/KTp/CMakeLists.txt b/KTp/CMakeLists.txt
index 85d578b..ffbce10 100644
--- a/KTp/CMakeLists.txt
+++ b/KTp/CMakeLists.txt
@@ -91,6 +91,8 @@ set_target_properties(KTpCommonInternals PROPERTIES
 
 target_link_libraries (KTpCommonInternals
                 PUBLIC
+                    Qt5::DBus
+                    Qt5::Xml
                     KF5::Wallet #included from wallet-interface.h
                     ${TELEPATHY_QT5_LIBRARIES}
                 PRIVATE
diff --git a/KTp/Declarative/conversation.h b/KTp/Declarative/conversation.h
index 0e681bc..cbaad99 100644
--- a/KTp/Declarative/conversation.h
+++ b/KTp/Declarative/conversation.h
@@ -50,7 +50,7 @@ class Conversation : public QObject
 public:
     Conversation(const Tp::TextChannelPtr &channel, const Tp::AccountPtr &account, QObject *parent = 0);
     Conversation(const QString &contactId, const Tp::AccountPtr &account, QObject *parent = 0);
-    virtual ~Conversation();
+    ~Conversation() override;
 
     void setTextChannel(const Tp::TextChannelPtr &channel);
     Tp::TextChannelPtr textChannel() const;
diff --git a/KTp/Declarative/conversations-model.h b/KTp/Declarative/conversations-model.h
index 6ba159f..071781b 100644
--- a/KTp/Declarative/conversations-model.h
+++ b/KTp/Declarative/conversations-model.h
@@ -35,11 +35,11 @@ class ConversationsModel : public QAbstractListModel, public Tp::AbstractClientH
 
 public:
     explicit ConversationsModel(QObject *parent = 0);
-    virtual ~ConversationsModel();
+    ~ConversationsModel() override;
 
     QHash<int, QByteArray> roleNames() const Q_DECL_OVERRIDE;
-    virtual QVariant data (const QModelIndex &index, int role = Qt::DisplayRole) const Q_DECL_OVERRIDE;
-    virtual int rowCount (const QModelIndex &parent = QModelIndex()) const Q_DECL_OVERRIDE;
+    QVariant data (const QModelIndex &index, int role = Qt::DisplayRole) const Q_DECL_OVERRIDE;
+    int rowCount (const QModelIndex &parent = QModelIndex()) const Q_DECL_OVERRIDE;
 
     /** @returns the sum of all unread messages among all conversations */
     int totalUnreadCount() const;
@@ -59,8 +59,8 @@ public:
                         const QList<Tp::ChannelPtr> &channels,
                         const QList<Tp::ChannelRequestPtr> &channelRequests,
                         const QDateTime &userActionTime,
-                        const HandlerInfo &handlerInfo);
-    bool bypassApproval() const;
+                        const HandlerInfo &handlerInfo) override;
+    bool bypassApproval() const override;
 
 public Q_SLOTS:
     int nextActiveConversation(int first);
diff --git a/KTp/Declarative/filtered-pinned-contacts-proxy-model.h b/KTp/Declarative/filtered-pinned-contacts-proxy-model.h
index abfdacd..a866690 100644
--- a/KTp/Declarative/filtered-pinned-contacts-proxy-model.h
+++ b/KTp/Declarative/filtered-pinned-contacts-proxy-model.h
@@ -28,7 +28,7 @@ class FilteredPinnedContactsProxyModel : public QSortFilterProxyModel
     public:
         FilteredPinnedContactsProxyModel(QObject* parent = 0);
 
-        virtual bool filterAcceptsRow(int source_row, const QModelIndex& source_parent) const;
+        bool filterAcceptsRow(int source_row, const QModelIndex& source_parent) const override;
 };
 
 #endif // FILTEREDPINNEDCONTACTSPROXYMODEL_H
diff --git a/KTp/Declarative/messages-model.h b/KTp/Declarative/messages-model.h
index 69059c5..66f1bd2 100644
--- a/KTp/Declarative/messages-model.h
+++ b/KTp/Declarative/messages-model.h
@@ -38,7 +38,7 @@ class MessagesModel : public QAbstractListModel
 
   public:
     MessagesModel(const Tp::AccountPtr &account, QObject *parent = 0);
-    virtual ~MessagesModel();
+    ~MessagesModel() override;
 
     enum Roles {
         TextRole = Qt::UserRole, //String
@@ -68,8 +68,8 @@ class MessagesModel : public QAbstractListModel
     };
 
     QHash<int, QByteArray> roleNames() const Q_DECL_OVERRIDE;
-    virtual QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const Q_DECL_OVERRIDE;
-    virtual int rowCount(const QModelIndex &parent = QModelIndex()) const Q_DECL_OVERRIDE;
+    QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const Q_DECL_OVERRIDE;
+    int rowCount(const QModelIndex &parent = QModelIndex()) const Q_DECL_OVERRIDE;
 
     Tp::TextChannelPtr textChannel() const;
     void setTextChannel(const Tp::TextChannelPtr &channel);
diff --git a/KTp/Declarative/pinned-contacts-model.h b/KTp/Declarative/pinned-contacts-model.h
index 82cf36d..620a174 100644
--- a/KTp/Declarative/pinned-contacts-model.h
+++ b/KTp/Declarative/pinned-contacts-model.h
@@ -38,7 +38,7 @@ class PinnedContactsModel : public QAbstractListModel
 
   public:
     explicit PinnedContactsModel(QObject *parent = 0);
-    virtual ~PinnedContactsModel();
+    ~PinnedContactsModel() override;
 
     enum role {
         PresenceIconRole = Qt::UserRole + 1,
@@ -49,8 +49,8 @@ class PinnedContactsModel : public QAbstractListModel
     };
 
     QHash<int, QByteArray> roleNames() const Q_DECL_OVERRIDE;
-    virtual QVariant data(const QModelIndex &index, int role) const Q_DECL_OVERRIDE;
-    virtual int rowCount(const QModelIndex &parent = QModelIndex()) const Q_DECL_OVERRIDE;
+    QVariant data(const QModelIndex &index, int role) const Q_DECL_OVERRIDE;
+    int rowCount(const QModelIndex &parent = QModelIndex()) const Q_DECL_OVERRIDE;
 
     Q_SLOT void setPinning(const Tp::AccountPtr &account, const KTp::ContactPtr &contact, bool newState);
 
diff --git a/KTp/Declarative/qml-plugins.h b/KTp/Declarative/qml-plugins.h
index a578db9..09d03c8 100644
--- a/KTp/Declarative/qml-plugins.h
+++ b/KTp/Declarative/qml-plugins.h
@@ -28,8 +28,8 @@ class QmlPlugins : public QQmlExtensionPlugin
     Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QQmlExtensionInterface")
 
     public:
-        virtual void initializeEngine(QQmlEngine *engine, const char *uri);
-        virtual void registerTypes(const char *uri);
+        void initializeEngine(QQmlEngine *engine, const char *uri) override;
+        void registerTypes(const char *uri) override;
 };
 
 #endif // QML_PLUGINS_H
diff --git a/KTp/Declarative/telepathy-manager.h b/KTp/Declarative/telepathy-manager.h
index 97c71b0..5c8b484 100644
--- a/KTp/Declarative/telepathy-manager.h
+++ b/KTp/Declarative/telepathy-manager.h
@@ -48,7 +48,7 @@ class TelepathyManager : public QObject
 
 public:
     TelepathyManager(QObject *parent=0);
-    virtual ~TelepathyManager();
+    ~TelepathyManager() override;
 
     /** Returns the account manager*/
     Tp::AccountManagerPtr accountManager();
diff --git a/KTp/Logger/abstract-logger-plugin.h b/KTp/Logger/abstract-logger-plugin.h
index 0831daa..8ae9848 100644
--- a/KTp/Logger/abstract-logger-plugin.h
+++ b/KTp/Logger/abstract-logger-plugin.h
@@ -53,7 +53,7 @@ class KTPCOMMONINTERNALS_EXPORT AbstractLoggerPlugin : public QObject
     /**
      * Destructor.
      */
-    virtual ~AbstractLoggerPlugin();
+    ~AbstractLoggerPlugin() override;
 
     /**
      * Queries all available plugins that handle given @p account for list of dates
diff --git a/KTp/Logger/log-manager.h b/KTp/Logger/log-manager.h
index 12240d0..1753bf5 100644
--- a/KTp/Logger/log-manager.h
+++ b/KTp/Logger/log-manager.h
@@ -57,12 +57,12 @@ class KTPCOMMONINTERNALS_EXPORT LogManager : public AbstractLoggerPlugin
      *
      * @param accountManager An Tp::AccountManager in the ready state.
      */
-    void setAccountManager(const Tp::AccountManagerPtr &accountManager);
+    void setAccountManager(const Tp::AccountManagerPtr &accountManager) override;
 
     /**
      * Returns the set Tp::AccountManager or an empty pointer if none was set.
      */
-    Tp::AccountManagerPtr accountManager() const;
+    Tp::AccountManagerPtr accountManager() const override;
 
     /**
      * Queries all available plugins for list of dates with logs of user's chat
@@ -74,7 +74,7 @@ class KTPCOMMONINTERNALS_EXPORT LogManager : public AbstractLoggerPlugin
      *         signal when all backends are finished.
      */
     KTp::PendingLoggerDates* queryDates(const Tp::AccountPtr &account,
-                                        const KTp::LogEntity &entity);
+                                        const KTp::LogEntity &entity) override;
 
     /**
      * Queries all available plugins for list of logs of chats with @p entity.
@@ -87,7 +87,7 @@ class KTPCOMMONINTERNALS_EXPORT LogManager : public AbstractLoggerPlugin
      */
     KTp::PendingLoggerLogs*  queryLogs(const Tp::AccountPtr &account,
                                        const KTp::LogEntity &entity,
-                                       const QDate &date);
+                                       const QDate &date) override;
 
    /**
      * Queries all available plugins for list of entities for which they have
@@ -97,7 +97,7 @@ class KTPCOMMONINTERNALS_EXPORT LogManager : public AbstractLoggerPlugin
      * @return Returns KTp::PendingLoggerEntities operation that will emit finished()
      *         signal when all backends are finished.
      */
-    KTp::PendingLoggerEntities* queryEntities(const Tp::AccountPtr &account);
+    KTp::PendingLoggerEntities* queryEntities(const Tp::AccountPtr &account) override;
 
     /**
      * Removes all logs for given @p account from all available plugins that
@@ -105,7 +105,7 @@ class KTPCOMMONINTERNALS_EXPORT LogManager : public AbstractLoggerPlugin
      *
      * @param account Account of which to remove logs
      */
-    void clearAccountLogs(const Tp::AccountPtr &account);
+    void clearAccountLogs(const Tp::AccountPtr &account) override;
 
     /**
      * Removes all logs for given @p entity from all available plugins that
@@ -115,7 +115,7 @@ class KTPCOMMONINTERNALS_EXPORT LogManager : public AbstractLoggerPlugin
      * @param entity Entity whose logs to remove
      */
     void clearContactLogs(const Tp::AccountPtr &account,
-                          const KTp::LogEntity &entity);
+                          const KTp::LogEntity &entity) override;
 
     /**
      * Searches all logs for given @p term.
@@ -124,7 +124,7 @@ class KTPCOMMONINTERNALS_EXPORT LogManager : public AbstractLoggerPlugin
      * @return Returns KTp::PendingLoggerSearch operation that will emit finished()
      *         signal when search is finished.
      */
-    KTp::PendingLoggerSearch* search(const QString &term);
+    KTp::PendingLoggerSearch* search(const QString &term) override;
 
     /**
      * Checks whether there are any logs for given @p account and @p contact.
@@ -136,12 +136,12 @@ class KTPCOMMONINTERNALS_EXPORT LogManager : public AbstractLoggerPlugin
      * @param contact Contact to query
      * @return Returns whether there are any logs for given person
      */
-    bool logsExist(const Tp::AccountPtr &account, const KTp::LogEntity &contact);
+    bool logsExist(const Tp::AccountPtr &account, const KTp::LogEntity &contact) override;
 
     /**
      * Destructor.
      */
-    virtual ~LogManager();
+    ~LogManager() override;
 
  private:
     explicit LogManager();
diff --git a/KTp/Logger/log-message.h b/KTp/Logger/log-message.h
index 8d165ef..885fea4 100644
--- a/KTp/Logger/log-message.h
+++ b/KTp/Logger/log-message.h
@@ -45,7 +45,7 @@ class KTPCOMMONINTERNALS_EXPORT LogMessage : public KTp::Message
                         const QString &messageToken);
     LogMessage(const LogMessage& other);
 
-    virtual ~LogMessage();
+    ~LogMessage() override;
 };
 
 } // namespace KTp
diff --git a/KTp/Logger/pending-logger-dates-impl.h b/KTp/Logger/pending-logger-dates-impl.h
index 60aaeee..ad0081f 100644
--- a/KTp/Logger/pending-logger-dates-impl.h
+++ b/KTp/Logger/pending-logger-dates-impl.h
@@ -30,7 +30,7 @@ class PendingLoggerDatesImpl : public KTp::PendingLoggerDates
     explicit PendingLoggerDatesImpl(const Tp::AccountPtr &account,
                                     const KTp::LogEntity &entity,
                                     QObject* parent = 0);
-    virtual ~PendingLoggerDatesImpl();
+    ~PendingLoggerDatesImpl() override;
 
   private Q_SLOTS:
     void operationFinished(KTp::PendingLoggerOperation *op);
diff --git a/KTp/Logger/pending-logger-dates.h b/KTp/Logger/pending-logger-dates.h
index dc7c370..dc8bce8 100644
--- a/KTp/Logger/pending-logger-dates.h
+++ b/KTp/Logger/pending-logger-dates.h
@@ -48,7 +48,7 @@ class KTPCOMMONINTERNALS_EXPORT PendingLoggerDates : public KTp::PendingLoggerOp
     /**
      * Destructor.
      */
-    virtual ~PendingLoggerDates();
+    ~PendingLoggerDates() override;
 
     /**
      * Returns account for which the dates are queried.
diff --git a/KTp/Logger/pending-logger-entities-impl.h b/KTp/Logger/pending-logger-entities-impl.h
index 71577a4..106ffb5 100644
--- a/KTp/Logger/pending-logger-entities-impl.h
+++ b/KTp/Logger/pending-logger-entities-impl.h
@@ -29,7 +29,7 @@ class PendingLoggerEntitiesImpl: public KTp::PendingLoggerEntities
   public:
     explicit PendingLoggerEntitiesImpl(const Tp::AccountPtr &account,
                                        QObject *parent = 0);
-    virtual ~PendingLoggerEntitiesImpl();
+    ~PendingLoggerEntitiesImpl() override;
 
   private Q_SLOTS:
     void operationFinished(KTp::PendingLoggerOperation *op);
diff --git a/KTp/Logger/pending-logger-entities.h b/KTp/Logger/pending-logger-entities.h
index e69b20e..b170cf3 100644
--- a/KTp/Logger/pending-logger-entities.h
+++ b/KTp/Logger/pending-logger-entities.h
@@ -47,7 +47,7 @@ class KTPCOMMONINTERNALS_EXPORT PendingLoggerEntities : public KTp::PendingLogge
     /**
      * Destructor.
      */
-    virtual ~PendingLoggerEntities();
+    ~PendingLoggerEntities() override;
 
     /**
      * Returns account for which the entities are being queried.
diff --git a/KTp/Logger/pending-logger-logs-impl.h b/KTp/Logger/pending-logger-logs-impl.h
index e303530..b00bca2 100644
--- a/KTp/Logger/pending-logger-logs-impl.h
+++ b/KTp/Logger/pending-logger-logs-impl.h
@@ -31,7 +31,7 @@ class PendingLoggerLogsImpl : public KTp::PendingLoggerLogs
                                    const KTp::LogEntity &entity,
                                    const QDate &date,
                                    QObject *parent = 0);
-    virtual ~PendingLoggerLogsImpl();
+    ~PendingLoggerLogsImpl() override;
 
   private Q_SLOTS:
     void operationFinished(KTp::PendingLoggerOperation *op);
diff --git a/KTp/Logger/pending-logger-logs.h b/KTp/Logger/pending-logger-logs.h
index 805c6ed..1e90416 100644
--- a/KTp/Logger/pending-logger-logs.h
+++ b/KTp/Logger/pending-logger-logs.h
@@ -47,7 +47,7 @@ class KTPCOMMONINTERNALS_EXPORT PendingLoggerLogs : public KTp::PendingLoggerOpe
     /**
      * Destructor.
      */
-    virtual ~PendingLoggerLogs();
+    ~PendingLoggerLogs() override;
 
     /**
      * Returns account for which logs are being queried.
diff --git a/KTp/Logger/pending-logger-operation.h b/KTp/Logger/pending-logger-operation.h
index 82be337..9a5a9a8 100644
--- a/KTp/Logger/pending-logger-operation.h
+++ b/KTp/Logger/pending-logger-operation.h
@@ -33,7 +33,7 @@ class KTPCOMMONINTERNALS_EXPORT PendingLoggerOperation : public QObject
     Q_OBJECT
 
   public:
-    virtual ~PendingLoggerOperation();
+    ~PendingLoggerOperation() override;
 
     bool hasError() const;
     QString error() const;
diff --git a/KTp/Logger/pending-logger-search-impl.h b/KTp/Logger/pending-logger-search-impl.h
index 805d498..23fca6a 100644
--- a/KTp/Logger/pending-logger-search-impl.h
+++ b/KTp/Logger/pending-logger-search-impl.h
@@ -32,7 +32,7 @@ class PendingLoggerSearchImpl : public KTp::PendingLoggerSearch
 
   public:
     explicit PendingLoggerSearchImpl(const QString& term, QObject* parent = 0);
-    virtual ~PendingLoggerSearchImpl();
+    ~PendingLoggerSearchImpl() override;
 
 
   public Q_SLOTS:
diff --git a/KTp/Logger/pending-logger-search.h b/KTp/Logger/pending-logger-search.h
index 3adc662..6b55f22 100644
--- a/KTp/Logger/pending-logger-search.h
+++ b/KTp/Logger/pending-logger-search.h
@@ -46,7 +46,7 @@ class KTPCOMMONINTERNALS_EXPORT PendingLoggerSearch : public  KTp::PendingLogger
     /**
      * Destructor.
      */
-    virtual ~PendingLoggerSearch();
+    ~PendingLoggerSearch() override;
 
     /**
      * Returns the search term that is used.
diff --git a/KTp/Logger/scrollback-manager.h b/KTp/Logger/scrollback-manager.h
index bf9764b..ef1fe5e 100644
--- a/KTp/Logger/scrollback-manager.h
+++ b/KTp/Logger/scrollback-manager.h
@@ -33,7 +33,7 @@ class KTPCOMMONINTERNALS_EXPORT ScrollbackManager : public QObject
 
 public:
     explicit ScrollbackManager(QObject *parent = 0);
-    virtual ~ScrollbackManager();
+    ~ScrollbackManager() override;
 
     bool exists() const;
 
diff --git a/KTp/Models/abstract-grouping-proxy-model.cpp b/KTp/Models/abstract-grouping-proxy-model.cpp
index 7a941e7..c464c26 100644
--- a/KTp/Models/abstract-grouping-proxy-model.cpp
+++ b/KTp/Models/abstract-grouping-proxy-model.cpp
@@ -43,7 +43,7 @@ class ProxyNode : public QStandardItem
 {
 public:
     ProxyNode(const QPersistentModelIndex &sourceIndex);
-    QVariant data(int role) const;
+    QVariant data(int role) const override;
     void changed(); //expose protected method in QStandardItem
     QString group() const;
 private:
@@ -54,7 +54,7 @@ class GroupNode : public QStandardItem {
 public:
     GroupNode(const QString &groupId);
     QString group() const;
-    virtual QVariant data(int role) const;
+    QVariant data(int role) const override;
     bool forced() const;
     void changed(); //expose protected method in QStandardItem
     void setForced(bool forced);
diff --git a/KTp/Models/abstract-grouping-proxy-model.h b/KTp/Models/abstract-grouping-proxy-model.h
index ba45d57..57e184b 100644
--- a/KTp/Models/abstract-grouping-proxy-model.h
+++ b/KTp/Models/abstract-grouping-proxy-model.h
@@ -37,7 +37,7 @@ class KTPMODELS_EXPORT AbstractGroupingProxyModel : public QStandardItemModel
     Q_OBJECT
 public:
     explicit AbstractGroupingProxyModel(QAbstractItemModel *source);
-    virtual ~AbstractGroupingProxyModel();
+    ~AbstractGroupingProxyModel() override;
 
     void forceGroup(const QString &group);
     void unforceGroup(const QString &group);
diff --git a/KTp/Models/accounts-list-model.h b/KTp/Models/accounts-list-model.h
index 68f8f5f..262149a 100644
--- a/KTp/Models/accounts-list-model.h
+++ b/KTp/Models/accounts-list-model.h
@@ -53,16 +53,16 @@ public:
     };
 
     explicit AccountsListModel(QObject *parent = 0);
-    virtual ~AccountsListModel();
+    ~AccountsListModel() override;
 
     QHash<int, QByteArray> roleNames() const Q_DECL_OVERRIDE;
     void setAccountSet(const Tp::AccountSetPtr &accountSet);
 
     Q_SCRIPTABLE QVariant get(int row, const QByteArray& role) const;
 
-    virtual int rowCount(const QModelIndex &parent = QModelIndex()) const;
-    virtual QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const;
-    virtual bool setData(const QModelIndex &index, const QVariant &value, int role);
+    int rowCount(const QModelIndex &parent = QModelIndex()) const override;
+    QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override;
+    bool setData(const QModelIndex &index, const QVariant &value, int role) override;
 
 private Q_SLOTS:
     void onAccountAdded(const Tp::AccountPtr &account);
diff --git a/KTp/Models/accounts-tree-proxy-model.h b/KTp/Models/accounts-tree-proxy-model.h
index 4eb9629..9b03b39 100644
--- a/KTp/Models/accounts-tree-proxy-model.h
+++ b/KTp/Models/accounts-tree-proxy-model.h
@@ -32,10 +32,10 @@ class KTPMODELS_EXPORT AccountsTreeProxyModel : public KTp::AbstractGroupingProx
     Q_OBJECT
 public:
     AccountsTreeProxyModel(QAbstractItemModel *sourceModel, const Tp::AccountManagerPtr &accountManager);
-    virtual ~AccountsTreeProxyModel();
+    ~AccountsTreeProxyModel() override;
 
-    virtual QSet<QString> groupsForIndex(const QModelIndex &sourceIndex) const;
-    virtual QVariant dataForGroup(const QString &group, int role) const;
+    QSet<QString> groupsForIndex(const QModelIndex &sourceIndex) const override;
+    QVariant dataForGroup(const QString &group, int role) const override;
 
 private Q_SLOTS:
     void onAccountChanged();
diff --git a/KTp/Models/contacts-filter-model.h b/KTp/Models/contacts-filter-model.h
index b95c93d..e9c4d3e 100644
--- a/KTp/Models/contacts-filter-model.h
+++ b/KTp/Models/contacts-filter-model.h
@@ -203,10 +203,10 @@ public:
     Q_DECLARE_FLAGS(SubscriptionStateFilterFlags, SubscriptionStateFilterFlag)
 
     ContactsFilterModel(QObject *parent = 0);
-    virtual ~ContactsFilterModel();
+    ~ContactsFilterModel() override;
 
-    virtual QVariant data(const QModelIndex &index, int role) const;
-    virtual void setSourceModel(QAbstractItemModel *sourceModel);
+    QVariant data(const QModelIndex &index, int role) const override;
+    void setSourceModel(QAbstractItemModel *sourceModel) override;
     void invalidateFilter();
 
     PresenceTypeFilterFlags presenceTypeFilterFlags() const;
@@ -292,11 +292,11 @@ public:
     Q_SLOT void setSortRoleString(const QString &role);
 
 protected:
-    bool filterAcceptsRow(int sourceRow, const QModelIndex &sourceParent) const;
-    bool lessThan (const QModelIndex &left, const QModelIndex &right) const;
+    bool filterAcceptsRow(int sourceRow, const QModelIndex &sourceParent) const override;
+    bool lessThan (const QModelIndex &left, const QModelIndex &right) const override;
     QModelIndexList match(const QModelIndex &start, int role,
                           const QVariant &value, int hits,
-                          Qt::MatchFlags flags) const;
+                          Qt::MatchFlags flags) const override;
 
 private:
     class Private;
diff --git a/KTp/Models/contacts-list-model.h b/KTp/Models/contacts-list-model.h
index eb37b8b..2a3c662 100644
--- a/KTp/Models/contacts-list-model.h
+++ b/KTp/Models/contacts-list-model.h
@@ -33,12 +33,12 @@ class KTPMODELS_EXPORT ContactsListModel : public QAbstractListModel
     Q_OBJECT
 public:
     explicit ContactsListModel(QObject *parent = 0);
-    virtual ~ContactsListModel();
+    ~ContactsListModel() override;
 
     void setAccountManager(const Tp::AccountManagerPtr &accountManager);
 
-    int rowCount(const QModelIndex &parent) const;
-    QVariant data(const QModelIndex &index, int role) const;
+    int rowCount(const QModelIndex &parent) const override;
+    QVariant data(const QModelIndex &index, int role) const override;
 
 Q_SIGNALS:
     void modelInitialized(bool success);
diff --git a/KTp/Models/contacts-model.h b/KTp/Models/contacts-model.h
index 5c95822..e937709 100644
--- a/KTp/Models/contacts-model.h
+++ b/KTp/Models/contacts-model.h
@@ -54,7 +54,7 @@ public:
 
     ContactsModel(QObject *parent=0);
 
-    virtual ~ContactsModel();
+    ~ContactsModel() override;
 
     /** Sets the accounts manager to be used for the KTp::ContactListModel*/
     void setAccountManager(const Tp::AccountManagerPtr &accountManager);
diff --git a/KTp/Models/groups-tree-proxy-model.h b/KTp/Models/groups-tree-proxy-model.h
index 38af3db..03c87f0 100644
--- a/KTp/Models/groups-tree-proxy-model.h
+++ b/KTp/Models/groups-tree-proxy-model.h
@@ -33,10 +33,10 @@ class KTPMODELS_EXPORT GroupsTreeProxyModel : public KTp::AbstractGroupingProxyM
     Q_OBJECT
 public:
     GroupsTreeProxyModel(QAbstractItemModel *sourceModel);
-    virtual ~GroupsTreeProxyModel();
+    ~GroupsTreeProxyModel() override;
    
-    virtual QSet<QString> groupsForIndex(const QModelIndex &sourceIndex) const;
-    virtual QVariant dataForGroup(const QString &group, int role) const;
+    QSet<QString> groupsForIndex(const QModelIndex &sourceIndex) const override;
+    QVariant dataForGroup(const QString &group, int role) const override;
 private:
     class Private;
     Private *d;
diff --git a/KTp/Models/kpeopletranslationproxy.cpp b/KTp/Models/kpeopletranslationproxy.cpp
index 9464b36..cdd52da 100644
--- a/KTp/Models/kpeopletranslationproxy.cpp
+++ b/KTp/Models/kpeopletranslationproxy.cpp
@@ -22,7 +22,7 @@
 #include "KTp/global-contact-manager.h"
 
 #include <KPeople/PersonsModel>
-#include <KPeople/KPeopleBackend/AbstractContact>
+#include <KPeopleBackend/AbstractContact>
 
 #include <KIconLoader>
 
diff --git a/KTp/Models/kpeopletranslationproxy.h b/KTp/Models/kpeopletranslationproxy.h
index 171dba4..ce52cc2 100644
--- a/KTp/Models/kpeopletranslationproxy.h
+++ b/KTp/Models/kpeopletranslationproxy.h
@@ -31,12 +31,12 @@ class KTPMODELS_EXPORT KPeopleTranslationProxy : public QSortFilterProxyModel
 
 public:
     KPeopleTranslationProxy(QObject *parent = 0);
-    virtual ~KPeopleTranslationProxy();
+    ~KPeopleTranslationProxy() override;
 
-    virtual QVariant data(const QModelIndex &proxyIndex, int role = Qt::DisplayRole) const;
+    QVariant data(const QModelIndex &proxyIndex, int role = Qt::DisplayRole) const override;
     QVariant dataForKTpContact(const QString &accountPath, const QString &contactId, int role) const;
 
-    virtual bool filterAcceptsRow(int source_row, const QModelIndex & source_parent ) const;
+    bool filterAcceptsRow(int source_row, const QModelIndex & source_parent ) const override;
 private:
     QVariant translatePresence(const QVariant &presenceName) const;
     QPixmap contactPixmap(const QModelIndex &index) const;
diff --git a/KTp/Models/presence-model.h b/KTp/Models/presence-model.h
index d67e150..a7578ce 100644
--- a/KTp/Models/presence-model.h
+++ b/KTp/Models/presence-model.h
@@ -40,7 +40,7 @@ class KTPMODELS_EXPORT PresenceModel : public QAbstractListModel
 
 public:
     explicit PresenceModel(QObject *parent = 0);
-    ~PresenceModel();
+    ~PresenceModel() override;
 
     enum Roles {
         //Also supplies Qt::DisplayRole and Qt::DecorationRole
@@ -65,10 +65,10 @@ public:
     Q_SCRIPTABLE QVariant get(int row, const QByteArray& role) const;
 
     //protected:
-    virtual int rowCount(const QModelIndex &parent = QModelIndex()) const;
-    virtual QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const;
-    virtual QModelIndexList match(const QModelIndex &start, int role, const QVariant &value, int hits = 1, Qt::MatchFlags flags =  Qt::MatchFlags(Qt::MatchStartsWith | Qt::MatchWrap)) const;
-    virtual QHash<int, QByteArray> roleNames() const;
+    int rowCount(const QModelIndex &parent = QModelIndex()) const override;
+    QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override;
+    QModelIndexList match(const QModelIndex &start, int role, const QVariant &value, int hits = 1, Qt::MatchFlags flags =  Qt::MatchFlags(Qt::MatchStartsWith | Qt::MatchWrap)) const override;
+    QHash<int, QByteArray> roleNames() const override;
 
 public Q_SLOTS:
     /** Incoming changes from other models */
diff --git a/KTp/Models/rooms-model.h b/KTp/Models/rooms-model.h
index 93dc6fe..6b4cab7 100644
--- a/KTp/Models/rooms-model.h
+++ b/KTp/Models/rooms-model.h
@@ -45,10 +45,10 @@ public:
     };
 
     explicit RoomsModel(QObject *parent = 0);
-    virtual int rowCount(const QModelIndex &parent = QModelIndex()) const;
-    virtual int columnCount(const QModelIndex &parent = QModelIndex()) const;
-    virtual QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const;
-    virtual QVariant headerData(int section, Qt::Orientation orientation, int role) 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) const override;
 
     /**
      * \brief Add new rooms to the list.
@@ -85,11 +85,11 @@ public:
     };
 
     explicit FavoriteRoomsModel(QObject *parent = 0);
-    virtual int rowCount(const QModelIndex &parent = QModelIndex()) const;
-    virtual int columnCount(const QModelIndex &parent = QModelIndex()) const;
-    virtual QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const;
-    virtual bool setData(const QModelIndex &index, const QVariant &value, int role);
-    virtual 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;
+    bool setData(const QModelIndex &index, const QVariant &value, int role) override;
+    Qt::ItemFlags flags(const QModelIndex &index) const override;
 
     /**
      * \brief Add new rooms to the list.
diff --git a/KTp/Models/text-channel-watcher-proxy-model.h b/KTp/Models/text-channel-watcher-proxy-model.h
index ed79923..f42638b 100644
--- a/KTp/Models/text-channel-watcher-proxy-model.h
+++ b/KTp/Models/text-channel-watcher-proxy-model.h
@@ -35,17 +35,17 @@ class KTPMODELS_EXPORT TextChannelWatcherProxyModel : public QIdentityProxyModel
     Q_OBJECT
 public:
     explicit TextChannelWatcherProxyModel(QObject *parent=0);
-    virtual ~TextChannelWatcherProxyModel();
+    ~TextChannelWatcherProxyModel() override;
 
-    virtual void observeChannels(const Tp::MethodInvocationContextPtr<> &context,
+    void observeChannels(const Tp::MethodInvocationContextPtr<> &context,
                                  const Tp::AccountPtr &account,
                                  const Tp::ConnectionPtr &connection,
                                  const QList<Tp::ChannelPtr> &channels,
                                  const Tp::ChannelDispatchOperationPtr &dispatchOperation,
                                  const QList<Tp::ChannelRequestPtr> &requestsSatisfied,
-                                 const Tp::AbstractClientObserver::ObserverInfo &observerInfo);
+                                 const Tp::AbstractClientObserver::ObserverInfo &observerInfo) override;
 
-    QVariant data(const QModelIndex &proxyIndex, int role) const;
+    QVariant data(const QModelIndex &proxyIndex, int role) const override;
 
 private Q_SLOTS:
     void onChannelMessagesChanged();
diff --git a/KTp/OTR/CMakeLists.txt b/KTp/OTR/CMakeLists.txt
index 12e28de..0743e25 100644
--- a/KTp/OTR/CMakeLists.txt
+++ b/KTp/OTR/CMakeLists.txt
@@ -28,6 +28,7 @@ generate_export_header(KTpOTR)
 
 target_link_libraries (KTpOTR
                         PUBLIC
+                            Qt5::DBus
                             ${TELEPATHY_QT5_LIBRARIES}
                         PRIVATE
                             KF5::I18n
diff --git a/KTp/OTR/channel-adapter.h b/KTp/OTR/channel-adapter.h
index 2e900af..4c01ed0 100644
--- a/KTp/OTR/channel-adapter.h
+++ b/KTp/OTR/channel-adapter.h
@@ -38,7 +38,7 @@ class KTPOTR_EXPORT ChannelAdapter : public QObject, public Tp::RefCounted
 
     public:
         ChannelAdapter(const Tp::TextChannelPtr &textChannel, QObject *parent = 0);
-        ~ChannelAdapter();
+        ~ChannelAdapter() override;
 
         Tp::TextChannelPtr textChannel();
 
diff --git a/KTp/OTR/channel-proxy-interface.h b/KTp/OTR/channel-proxy-interface.h
index ba92de4..15d863e 100644
--- a/KTp/OTR/channel-proxy-interface.h
+++ b/KTp/OTR/channel-proxy-interface.h
@@ -683,7 +683,7 @@ Q_SIGNALS:
     void TrustLevelChanged(uint trustLevel);
 
 protected:
-    virtual void invalidate(Tp::DBusProxy *, const QString &, const QString &);
+    void invalidate(Tp::DBusProxy *, const QString &, const QString &) override;
 };
 }
 }
diff --git a/KTp/OTR/proxy-service-interface.h b/KTp/OTR/proxy-service-interface.h
index 3498259..f00efd4 100644
--- a/KTp/OTR/proxy-service-interface.h
+++ b/KTp/OTR/proxy-service-interface.h
@@ -346,7 +346,7 @@ Q_SIGNALS:
     void KeyGenerationFinished(const QDBusObjectPath& account, bool error);
 
 protected:
-    virtual void invalidate(Tp::DBusProxy *, const QString &, const QString &);
+    void invalidate(Tp::DBusProxy *, const QString &, const QString &) override;
 };
 }
 }
diff --git a/KTp/Widgets/accounts-combo-box.h b/KTp/Widgets/accounts-combo-box.h
index cabaa24..5eec59a 100644
--- a/KTp/Widgets/accounts-combo-box.h
+++ b/KTp/Widgets/accounts-combo-box.h
@@ -33,7 +33,7 @@ class KTPCOMMONINTERNALS_EXPORT AccountsComboBox : public QComboBox
     Q_DISABLE_COPY(AccountsComboBox)
 public:
     explicit AccountsComboBox(QWidget *parent = 0);
-    virtual ~AccountsComboBox();
+    ~AccountsComboBox() override;
 
 public:
     /** A set of accounts to show.
diff --git a/KTp/Widgets/add-contact-dialog.cpp b/KTp/Widgets/add-contact-dialog.cpp
index 7c34a42..436f060 100644
--- a/KTp/Widgets/add-contact-dialog.cpp
+++ b/KTp/Widgets/add-contact-dialog.cpp
@@ -50,13 +50,13 @@ public:
     {
     }
 
-    bool isValid() const
+    bool isValid() const override
     {
         //return whether the filter is valid which is always true as this filter is hardcoded
         return true;
     }
 
-    bool matches(const Tp::AccountPtr &account) const
+    bool matches(const Tp::AccountPtr &account) const override
     {
         //if there's no connection we can't add contacts as we have no contactmanager
         if (! account->connection()) {
diff --git a/KTp/Widgets/add-contact-dialog.h b/KTp/Widgets/add-contact-dialog.h
index 6e47f07..aaab0b9 100644
--- a/KTp/Widgets/add-contact-dialog.h
+++ b/KTp/Widgets/add-contact-dialog.h
@@ -40,12 +40,12 @@ class KTPCOMMONINTERNALS_EXPORT AddContactDialog : public QDialog
 
 public:
     explicit AddContactDialog(const Tp::AccountManagerPtr &accountManager, QWidget *parent = 0);
-    virtual ~AddContactDialog();
+    ~AddContactDialog() override;
 
-    virtual void accept();
+    void accept() override;
 
 protected:
-    virtual void closeEvent(QCloseEvent *e);
+    void closeEvent(QCloseEvent *e) override;
 
 private Q_SLOTS:
     KTPCOMMONINTERNALS_NO_EXPORT void _k_onContactsForIdentifiersFinished(Tp::PendingOperation *op);
diff --git a/KTp/Widgets/contact-grid-dialog.h b/KTp/Widgets/contact-grid-dialog.h
index c4f20dc..622f8f5 100644
--- a/KTp/Widgets/contact-grid-dialog.h
+++ b/KTp/Widgets/contact-grid-dialog.h
@@ -48,7 +48,7 @@ class KTPCOMMONINTERNALS_EXPORT ContactGridDialog : public QDialog
 
 public:
     ContactGridDialog(QWidget *parent);
-    virtual ~ContactGridDialog();
+    ~ContactGridDialog() override;
 
     virtual KTp::ContactsFilterModel* filter() const;
 
diff --git a/KTp/Widgets/contact-info-dialog.h b/KTp/Widgets/contact-info-dialog.h
index 242055d..2734bdb 100644
--- a/KTp/Widgets/contact-info-dialog.h
+++ b/KTp/Widgets/contact-info-dialog.h
@@ -40,7 +40,7 @@ class KTPCOMMONINTERNALS_EXPORT ContactInfoDialog : public QDialog
 
   public:
     explicit ContactInfoDialog(const Tp::AccountPtr &account, const Tp::ContactPtr &contact, QWidget *parent = 0);
-    virtual ~ContactInfoDialog();
+    ~ContactInfoDialog() override;
 
   protected:
     virtual void slotButtonClicked(QAbstractButton *button);
diff --git a/KTp/Widgets/contact-view-widget.cpp b/KTp/Widgets/contact-view-widget.cpp
index eb321b7..cdc64ba 100644
--- a/KTp/Widgets/contact-view-widget.cpp
+++ b/KTp/Widgets/contact-view-widget.cpp
@@ -39,10 +39,10 @@ class ContactViewDelegate : public QAbstractItemDelegate
 
 public:
     ContactViewDelegate(QObject *parent);
-    virtual ~ContactViewDelegate();
+    ~ContactViewDelegate() override;
 
-    virtual void paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const;
-    virtual QSize sizeHint(const QStyleOptionViewItem &option, const QModelIndex &index) const;
+    void paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const override;
+    QSize sizeHint(const QStyleOptionViewItem &option, const QModelIndex &index) const override;
 
 }; // class ContactViewDelegate
 
diff --git a/KTp/Widgets/contact-view-widget.h b/KTp/Widgets/contact-view-widget.h
index b1aa550..9e46ee6 100644
--- a/KTp/Widgets/contact-view-widget.h
+++ b/KTp/Widgets/contact-view-widget.h
@@ -57,7 +57,7 @@ class KTPCOMMONINTERNALS_EXPORT ContactViewWidget : public QWidget
                WRITE setViewMode)
 public:
     explicit ContactViewWidget(ContactsListModel *model, QWidget *parent = 0);
-    virtual ~ContactViewWidget();
+    ~ContactViewWidget() override;
 
     virtual QString displayNameFilter() const;
     Q_SLOT virtual void clearDisplayNameFilter();
diff --git a/KTp/Widgets/join-chat-room-dialog.h b/KTp/Widgets/join-chat-room-dialog.h
index 5c874af..26934e3 100644
--- a/KTp/Widgets/join-chat-room-dialog.h
+++ b/KTp/Widgets/join-chat-room-dialog.h
@@ -44,14 +44,14 @@ class KTPCOMMONINTERNALS_EXPORT JoinChatRoomDialog : public QDialog
 
 public:
     explicit JoinChatRoomDialog(Tp::AccountManagerPtr accountManager, QWidget *parent = 0);
-    ~JoinChatRoomDialog();
+    ~JoinChatRoomDialog() override;
 
     Tp::AccountPtr selectedAccount() const;     /** returns selected account */
     QString selectedChatRoom() const;           /** returns selected chat room */
-    virtual void accept();
+    void accept() override;
 
 protected:
-    virtual void closeEvent(QCloseEvent *e);
+    void closeEvent(QCloseEvent *e) override;
 
 private Q_SLOTS:
     void onTextChanged(QString newText);
diff --git a/KTp/Widgets/notification-config-dialog.h b/KTp/Widgets/notification-config-dialog.h
index 32c2f34..aec7e05 100644
--- a/KTp/Widgets/notification-config-dialog.h
+++ b/KTp/Widgets/notification-config-dialog.h
@@ -37,7 +37,7 @@ class KTPCOMMONINTERNALS_EXPORT NotificationConfigDialog : public QDialog
     Q_OBJECT
 public:
     explicit NotificationConfigDialog(const Tp::ContactPtr &contact, QWidget *parent = 0);
-    ~NotificationConfigDialog();
+    ~NotificationConfigDialog() override;
 
 private Q_SLOTS:
     void updateNotifyWidget(const int selection);
diff --git a/KTp/Widgets/start-chat-dialog.h b/KTp/Widgets/start-chat-dialog.h
index 6037a1b..0591526 100644
--- a/KTp/Widgets/start-chat-dialog.h
+++ b/KTp/Widgets/start-chat-dialog.h
@@ -39,12 +39,12 @@ class KTPCOMMONINTERNALS_EXPORT StartChatDialog : public QDialog
 
 public:
     explicit StartChatDialog(const Tp::AccountManagerPtr &accountManager, QWidget *parent = 0);
-    virtual ~StartChatDialog();
+    ~StartChatDialog() override;
 
-    virtual void accept();
+    void accept() override;
 
 protected:
-    virtual void closeEvent(QCloseEvent *e);
+    void closeEvent(QCloseEvent *e) override;
 
 private Q_SLOTS:
     KTPCOMMONINTERNALS_NO_EXPORT void _k_onStartChatFinished(Tp::PendingOperation *op);
diff --git a/KTp/abstract-message-filter.h b/KTp/abstract-message-filter.h
index f0b94fc..af10a34 100644
--- a/KTp/abstract-message-filter.h
+++ b/KTp/abstract-message-filter.h
@@ -37,7 +37,7 @@ class KTPCOMMONINTERNALS_EXPORT AbstractMessageFilter : public QObject
 
   public:
     AbstractMessageFilter(QObject* parent = 0);
-    virtual ~AbstractMessageFilter();
+    ~AbstractMessageFilter() override;
 
     /** Filter messages to show on the UI recieved by another contact*/
     virtual void filterMessage(KTp::Message &message, const KTp::MessageContext &context);
diff --git a/KTp/account-factory_p.h b/KTp/account-factory_p.h
index 5321496..d10984f 100644
--- a/KTp/account-factory_p.h
+++ b/KTp/account-factory_p.h
@@ -44,11 +44,11 @@ public:
     static Tp::AccountFactoryPtr create(const QDBusConnection &bus, const Tp::Features &features=Tp::Features());
 protected:
     AccountFactory(const QDBusConnection& bus, const Tp::Features& features);
-    virtual Tp::AccountPtr construct(const QString& busName,
+    Tp::AccountPtr construct(const QString& busName,
                                      const QString& objectPath,
                                      const Tp::ConnectionFactoryConstPtr& connFactory,
                                      const Tp::ChannelFactoryConstPtr& chanFactory,
-                                     const Tp::ContactFactoryConstPtr& contactFactory) const;
+                                     const Tp::ContactFactoryConstPtr& contactFactory) const override;
 };
 
 class Account: public Tp::Account
diff --git a/KTp/circular-countdown.h b/KTp/circular-countdown.h
index 08d1dfa..fcbd5c7 100644
--- a/KTp/circular-countdown.h
+++ b/KTp/circular-countdown.h
@@ -33,7 +33,7 @@ class KTPCOMMONINTERNALS_EXPORT CircularCountdown : public QWidget
 
 public:
     explicit CircularCountdown(int msec = 5000, QWidget *parent = 0);
-    ~CircularCountdown();
+    ~CircularCountdown() override;
 
     void setDuration(int msec);
     int duration() const;
@@ -49,8 +49,8 @@ Q_SIGNALS:
 
 
 protected:
-     void paintEvent(QPaintEvent *event);
-     QSize sizeHint() const;
+     void paintEvent(QPaintEvent *event) override;
+     QSize sizeHint() const override;
 
 private:
     class Private;
diff --git a/KTp/contact-factory.h b/KTp/contact-factory.h
index 822a4c4..70423b2 100644
--- a/KTp/contact-factory.h
+++ b/KTp/contact-factory.h
@@ -31,7 +31,7 @@ public:
     static Tp::ContactFactoryPtr create(const Tp::Features &features=Tp::Features());
 protected:
     ContactFactory(const Tp::Features &features);
-    virtual Tp::ContactPtr construct(Tp::ContactManager *manager, const Tp::ReferencedHandles &handle, const Tp::Features &features, const QVariantMap &attributes) const;
+    Tp::ContactPtr construct(Tp::ContactManager *manager, const Tp::ReferencedHandles &handle, const Tp::Features &features, const QVariantMap &attributes) const override;
 };
 }
 
diff --git a/KTp/global-contact-manager.h b/KTp/global-contact-manager.h
index 536739e..ecad19a 100644
--- a/KTp/global-contact-manager.h
+++ b/KTp/global-contact-manager.h
@@ -38,7 +38,7 @@ class KTPCOMMONINTERNALS_EXPORT GlobalContactManager : public QObject
     Q_OBJECT
 public:
     explicit GlobalContactManager(const Tp::AccountManagerPtr &accountManager, QObject *parent = 0);
-    virtual ~GlobalContactManager();
+    ~GlobalContactManager() override;
 
     Tp::Contacts allKnownContacts() const;
     Tp::AccountPtr accountForConnection(const Tp::ConnectionPtr &connection) const;
diff --git a/KTp/logs-importer-private.h b/KTp/logs-importer-private.h
index a74c9b8..bdc16c5 100644
--- a/KTp/logs-importer-private.h
+++ b/KTp/logs-importer-private.h
@@ -33,7 +33,7 @@ class LogsImporter::Private: public QThread
 
   public:
     Private(LogsImporter* parent);
-    ~Private();
+    ~Private() override;
 
     void setAccountId(const QString &accountId);
     QStringList findKopeteLogs(const QString &accountId) const;
@@ -42,7 +42,7 @@ class LogsImporter::Private: public QThread
     void error(const QString &error);
 
   protected:
-    virtual void run();
+    void run() override;
 
   private:
 
diff --git a/KTp/logs-importer.h b/KTp/logs-importer.h
index dad82ef..66e289c 100644
--- a/KTp/logs-importer.h
+++ b/KTp/logs-importer.h
@@ -41,7 +41,7 @@ class KTPCOMMONINTERNALS_EXPORT LogsImporter : public QObject
   public:
     LogsImporter(QObject *parent = 0);
 
-    virtual ~LogsImporter();
+    ~LogsImporter() override;
 
     /**
      * Checks whether there are any Kopete logs for \p account.
diff --git a/KTp/message-filters-private.h b/KTp/message-filters-private.h
index 64d1cad..5e18f37 100644
--- a/KTp/message-filters-private.h
+++ b/KTp/message-filters-private.h
@@ -27,14 +27,14 @@ class MessageUrlFilter : public KTp::AbstractMessageFilter
 {
   public:
     explicit MessageUrlFilter(QObject *parent = 0);
-    void filterMessage(KTp::Message &message, const KTp::MessageContext &context);
+    void filterMessage(KTp::Message &message, const KTp::MessageContext &context) override;
 };
 
 class MessageEscapeFilter : public KTp::AbstractMessageFilter
 {
   public:
     explicit MessageEscapeFilter(QObject *parent = 0);
-    virtual void filterMessage(KTp::Message& message, const KTp::MessageContext &context);
+    void filterMessage(KTp::Message& message, const KTp::MessageContext &context) override;
 };
 
 #endif
diff --git a/KTp/message-processor.h b/KTp/message-processor.h
index da6f375..c66e43f 100644
--- a/KTp/message-processor.h
+++ b/KTp/message-processor.h
@@ -52,7 +52,7 @@ class KTPCOMMONINTERNALS_EXPORT MessageProcessor : public QObject
 
   public:
     static MessageProcessor* instance();
-    ~MessageProcessor();
+    ~MessageProcessor() override;
 
     //text-ui will call this somewhere when creating the template
     QString header();
diff --git a/KTp/pending-wallet.h b/KTp/pending-wallet.h
index e03674a..f76bf51 100644
--- a/KTp/pending-wallet.h
+++ b/KTp/pending-wallet.h
@@ -37,7 +37,7 @@ public:
     KTp::WalletInterface *walletInterface() const;
 private:
     PendingWallet(KTp::WalletInterface *wallet);
-    virtual ~PendingWallet();
+    ~PendingWallet() override;
     KTp::PendingWalletPrivate *d;
 };
 
diff --git a/KTp/persistent-contact.h b/KTp/persistent-contact.h
index 7b7fcfd..8cf1ae7 100644
--- a/KTp/persistent-contact.h
+++ b/KTp/persistent-contact.h
@@ -35,7 +35,7 @@ class KTPCOMMONINTERNALS_EXPORT PersistentContact : public QObject, public Tp::R
     Q_OBJECT
 public:
     static Tp::SharedPtr<KTp::PersistentContact> create(const QString &accountId, const QString &contactId);
-    virtual ~PersistentContact();
+    ~PersistentContact() override;
 
     QString contactId() const;
     QString accountId() const;
diff --git a/KTp/service-availability-checker.h b/KTp/service-availability-checker.h
index b3b8166..5e50b0e 100644
--- a/KTp/service-availability-checker.h
+++ b/KTp/service-availability-checker.h
@@ -36,7 +36,7 @@ class KTPCOMMONINTERNALS_EXPORT ServiceAvailabilityChecker : public QObject
     Q_OBJECT
 public:
     explicit ServiceAvailabilityChecker(const QString & serviceName, QObject *parent = 0);
-    virtual ~ServiceAvailabilityChecker();
+    ~ServiceAvailabilityChecker() override;
 
     bool isAvailable() const;
 
diff --git a/KTp/telepathy-handler-application.h b/KTp/telepathy-handler-application.h
index 3f09c30..d5baad5 100644
--- a/KTp/telepathy-handler-application.h
+++ b/KTp/telepathy-handler-application.h
@@ -51,7 +51,7 @@ public:
                                          int initialTimeout = 15000,
                                          int timeout = 2000);
 
-    virtual ~TelepathyHandlerApplication();
+    ~TelepathyHandlerApplication() override;
 
     static int newJob();
     static void jobFinished();
diff --git a/KTp/text-parser.h b/KTp/text-parser.h
index 06e89ef..5ae8704 100644
--- a/KTp/text-parser.h
+++ b/KTp/text-parser.h
@@ -74,7 +74,7 @@ public:
      *
      * @param void
      */
-    virtual ~TextParser();
+    ~TextParser() override;
 
 private:
     /**
diff --git a/kaccounts/kaccounts-ktp-plugin.h b/kaccounts/kaccounts-ktp-plugin.h
index 1156255..60d5bda 100644
--- a/kaccounts/kaccounts-ktp-plugin.h
+++ b/kaccounts/kaccounts-ktp-plugin.h
@@ -37,13 +37,13 @@ class KAccountsKTpPlugin : public KAccountsDPlugin
 
 public:
     KAccountsKTpPlugin(QObject *parent = 0);
-    ~KAccountsKTpPlugin();
+    ~KAccountsKTpPlugin() override;
 
 public Q_SLOTS:
-    void onAccountCreated(const Accounts::AccountId accountId, const Accounts::ServiceList &serviceList);
-    void onAccountRemoved(const Accounts::AccountId accountId);
-    void onServiceEnabled(const Accounts::AccountId accountId, const Accounts::Service &service);
-    void onServiceDisabled(const Accounts::AccountId accountId, const Accounts::Service &service);
+    void onAccountCreated(const Accounts::AccountId accountId, const Accounts::ServiceList &serviceList) override;
+    void onAccountRemoved(const Accounts::AccountId accountId) override;
+    void onServiceEnabled(const Accounts::AccountId accountId, const Accounts::Service &service) override;
+    void onServiceDisabled(const Accounts::AccountId accountId, const Accounts::Service &service) override;
 
 private Q_SLOTS:
     void onAccountManagerReady(Tp::PendingOperation *op);
diff --git a/kpeople/actionsplugin/kpeople-actions-plugin.h b/kpeople/actionsplugin/kpeople-actions-plugin.h
index efb74c0..f13c08c 100644
--- a/kpeople/actionsplugin/kpeople-actions-plugin.h
+++ b/kpeople/actionsplugin/kpeople-actions-plugin.h
@@ -28,7 +28,7 @@ class KPeopleActionsPlugin : public KPeople::AbstractPersonAction
     Q_OBJECT
 public:
     KPeopleActionsPlugin(QObject *parent, const QVariantList &args);
-    virtual QList< QAction* > actionsForPerson(const KPeople::PersonData &data,
+    QList< QAction* > actionsForPerson(const KPeople::PersonData &data,
                                                QObject *parent) const Q_DECL_OVERRIDE;
 
 private Q_SLOTS:
diff --git a/kpeople/datasourceplugin/im-persons-data-source.cpp b/kpeople/datasourceplugin/im-persons-data-source.cpp
index 51037c9..98ab647 100644
--- a/kpeople/datasourceplugin/im-persons-data-source.cpp
+++ b/kpeople/datasourceplugin/im-persons-data-source.cpp
@@ -52,8 +52,8 @@ class KTpAllContacts : public AllContactsMonitor
     Q_OBJECT
 public:
     KTpAllContacts();
-    ~KTpAllContacts();
-    virtual QMap<QString, AbstractContact::Ptr> contacts() Q_DECL_OVERRIDE;
+    ~KTpAllContacts() override;
+    QMap<QString, AbstractContact::Ptr> contacts() Q_DECL_OVERRIDE;
 
 private Q_SLOTS:
     void loadCache(const QString &accountId = QString());
@@ -71,7 +71,7 @@ private:
 class TelepathyContact : public KPeople::AbstractContact
 {
 public:
-    virtual QVariant customProperty(const QString &key) const Q_DECL_OVERRIDE
+    QVariant customProperty(const QString &key) const Q_DECL_OVERRIDE
     {
         // Check if the contact is valid first
         if (m_contact && m_contact->manager() && m_contact->manager()->connection() && m_account) {
diff --git a/kpeople/datasourceplugin/im-persons-data-source.h b/kpeople/datasourceplugin/im-persons-data-source.h
index 7015c3d..e9ec6ad 100644
--- a/kpeople/datasourceplugin/im-persons-data-source.h
+++ b/kpeople/datasourceplugin/im-persons-data-source.h
@@ -28,10 +28,10 @@ class IMPersonsDataSource : public KPeople::BasePersonsDataSource
 {
 public:
     IMPersonsDataSource(QObject *parent, const QVariantList &data);
-    virtual ~IMPersonsDataSource();
-    virtual QString sourcePluginId() const;
+    ~IMPersonsDataSource() override;
+    QString sourcePluginId() const override;
 
-    virtual KPeople::AllContactsMonitor* createAllContactsMonitor();
+    KPeople::AllContactsMonitor* createAllContactsMonitor() override;
 };
 
 #endif // IM_PERSONS_DATA_SOURCE_H
diff --git a/kpeople/uiplugins/chatplugin/chatlistviewdelegate.h b/kpeople/uiplugins/chatplugin/chatlistviewdelegate.h
index 26e10ec..9d2bfe4 100644
--- a/kpeople/uiplugins/chatplugin/chatlistviewdelegate.h
+++ b/kpeople/uiplugins/chatplugin/chatlistviewdelegate.h
@@ -34,7 +34,7 @@ public:
     };
 
     void paint(QPainter *painter, const QStyleOptionViewItem &option,
-               const QModelIndex &index) const;
+               const QModelIndex &index) const override;
 
 };
 #endif // CHATLISTVIEWDELEGATE_H
diff --git a/kpeople/uiplugins/chatplugin/kpeople_chat_plugin.h b/kpeople/uiplugins/chatplugin/kpeople_chat_plugin.h
index b24238a..2beb777 100644
--- a/kpeople/uiplugins/chatplugin/kpeople_chat_plugin.h
+++ b/kpeople/uiplugins/chatplugin/kpeople_chat_plugin.h
@@ -32,9 +32,9 @@ class ChatWidgetFactory : public KPeople::AbstractFieldWidgetFactory
     Q_OBJECT
 public:
     explicit ChatWidgetFactory(QObject *parent, const QVariantList &args);
-    virtual QString label() const;
-    virtual int sortWeight() const;
-    virtual QWidget* createDetailsWidget(const KPeople::PersonData &person, QWidget *parent) const Q_DECL_OVERRIDE;
+    QString label() const override;
+    int sortWeight() const override;
+    QWidget* createDetailsWidget(const KPeople::PersonData &person, QWidget *parent) const Q_DECL_OVERRIDE;
 
 private Q_SLOTS:
     void onPendingDates(KTp::PendingLoggerOperation *);
diff --git a/kpeople/uiplugins/imdetailswidget.h b/kpeople/uiplugins/imdetailswidget.h
index a2ff16d..10095df 100644
--- a/kpeople/uiplugins/imdetailswidget.h
+++ b/kpeople/uiplugins/imdetailswidget.h
@@ -30,8 +30,8 @@ class ImDetailsWidget : public KPeople::AbstractFieldWidgetFactory
 {
 public:
     explicit ImDetailsWidget(QObject *parent, const QVariantList &args);
-    QString label() const;
-    virtual QWidget* createDetailsWidget(const KPeople::PersonData &person, QWidget *parent) const;
+    QString label() const override;
+    QWidget* createDetailsWidget(const KPeople::PersonData &person, QWidget *parent) const override;
 };
 
 #endif // IM_DETAILS_WIDGET_H
diff --git a/otr-proxy/KTpProxy/otr-proxy-channel-adaptee.cpp b/otr-proxy/KTpProxy/otr-proxy-channel-adaptee.cpp
index 05200f9..bf64fa7 100644
--- a/otr-proxy/KTpProxy/otr-proxy-channel-adaptee.cpp
+++ b/otr-proxy/KTpProxy/otr-proxy-channel-adaptee.cpp
@@ -70,7 +70,7 @@ class PendingSendMessageResult : public PendingCurryOperation
             return token;
         }
 
-        virtual void extract(Tp::PendingOperation *op)
+        void extract(Tp::PendingOperation *op) override
         {
             token = dynamic_cast<Tp::PendingSendMessage*>(op)->sentMessageToken();
         }
diff --git a/otr-proxy/KTpProxy/otr-proxy-channel.h b/otr-proxy/KTpProxy/otr-proxy-channel.h
index dccfc89..a4f076d 100644
--- a/otr-proxy/KTpProxy/otr-proxy-channel.h
+++ b/otr-proxy/KTpProxy/otr-proxy-channel.h
@@ -52,7 +52,7 @@ class OtrProxyChannel : public Tp::DBusService
 
         void registerService(Tp::DBusError *error);
 
-        QVariantMap immutableProperties() const;
+        QVariantMap immutableProperties() const override;
 
         bool isConnected() const;
 
diff --git a/otr-proxy/KTpProxy/otr-session.h b/otr-proxy/KTpProxy/otr-session.h
index fb9aa6e..0b7ab0c 100644
--- a/otr-proxy/KTpProxy/otr-session.h
+++ b/otr-proxy/KTpProxy/otr-session.h
@@ -41,7 +41,7 @@ namespace OTR
         Q_OBJECT
         public:
             UserStateBox(OtrlUserState userState);
-            ~UserStateBox();
+            ~UserStateBox() override;
 
             OtrlUserState userState();
             /** if zero timer is stopped */
@@ -62,7 +62,7 @@ namespace OTR
 
         public:
             Session(const SessionContext &context, Manager *parent);
-            virtual ~Session() = default;
+            ~Session() override = default;
 
             UserStateBox* userStateBox() const;
             Manager* parent() const;
@@ -138,9 +138,9 @@ namespace OTR
         public:
             ProxySession(OtrProxyChannel::Adaptee *pca, const SessionContext &ctx, Manager *parent);
 
-            virtual void handleMessage(const Message &message) override;
-            virtual int recipientStatus() const override;
-            virtual unsigned int maxMessageSize() const override;
+            void handleMessage(const Message &message) override;
+            int recipientStatus() const override;
+            unsigned int maxMessageSize() const override;
 
         private:
             OtrProxyChannel::Adaptee *pca;
diff --git a/otr-proxy/KTpProxy/pending-curry-operation.h b/otr-proxy/KTpProxy/pending-curry-operation.h
index 25a8f40..392ce27 100644
--- a/otr-proxy/KTpProxy/pending-curry-operation.h
+++ b/otr-proxy/KTpProxy/pending-curry-operation.h
@@ -27,7 +27,7 @@ class PendingCurryOperation : public Tp::PendingOperation
 
     public:
         PendingCurryOperation(Tp::PendingOperation *op, const Tp::SharedPtr<Tp::RefCounted> &obj);
-        ~PendingCurryOperation();
+        ~PendingCurryOperation() override;
 
     protected:
         virtual void extract(Tp::PendingOperation *op) = 0;
diff --git a/otr-proxy/KTpProxy/proxy-observer.h b/otr-proxy/KTpProxy/proxy-observer.h
index 23441b6..36a722f 100644
--- a/otr-proxy/KTpProxy/proxy-observer.h
+++ b/otr-proxy/KTpProxy/proxy-observer.h
@@ -30,16 +30,16 @@ class ProxyObserver : public Tp::AbstractClientObserver
 {
     public:
         ProxyObserver(ProxyService *ps);
-        ~ProxyObserver();
+        ~ProxyObserver() override;
 
-        virtual void observeChannels(
+        void observeChannels(
                 const Tp::MethodInvocationContextPtr<> &context,
                 const Tp::AccountPtr &account,
                 const Tp::ConnectionPtr &connection,
                 const QList<Tp::ChannelPtr> &channels,
                 const Tp::ChannelDispatchOperationPtr &dispatchOperation,
                 const QList<Tp::ChannelRequestPtr> &requestsSatisfied,
-                const Tp::AbstractClientObserver::ObserverInfo &observerInfo);
+                const Tp::AbstractClientObserver::ObserverInfo &observerInfo) override;
 
     private:
         ProxyService *ps;
diff --git a/otr-proxy/KTpProxy/proxy-service-adaptee.h b/otr-proxy/KTpProxy/proxy-service-adaptee.h
index af694c4..a45dd6d 100644
--- a/otr-proxy/KTpProxy/proxy-service-adaptee.h
+++ b/otr-proxy/KTpProxy/proxy-service-adaptee.h
@@ -41,7 +41,7 @@ class ProxyServiceAdaptee : public QObject
 
     public:
         ProxyServiceAdaptee(ProxyService *ps, const QDBusConnection &dbusConnection);
-        ~ProxyServiceAdaptee();
+        ~ProxyServiceAdaptee() override;
 
         uint policy() const;
         void setPolicy(uint otrPolicy);
diff --git a/otr-proxy/KTpProxy/proxy-service.h b/otr-proxy/KTpProxy/proxy-service.h
index 79f3bd2..90551a8 100644
--- a/otr-proxy/KTpProxy/proxy-service.h
+++ b/otr-proxy/KTpProxy/proxy-service.h
@@ -46,13 +46,13 @@ class ProxyService : public Tp::DBusService
 
     public:
         ProxyService(const QDBusConnection &dbusConnection, OTR::Config *config, const Tp::ClientRegistrarPtr &registrar);
-        ~ProxyService();
+        ~ProxyService() override;
 
         void addChannel(const Tp::TextChannelPtr &channel, const Tp::AccountPtr &account);
 
         void registerService(Tp::DBusError *error);
 
-        QVariantMap immutableProperties() const;
+        QVariantMap immutableProperties() const override;
         OtrlPolicy getPolicy() const;
         void setPolicy(OtrlPolicy otrPolicy);
 
diff --git a/otr-proxy/KTpProxy/svc-channel-proxy.h b/otr-proxy/KTpProxy/svc-channel-proxy.h
index c7d0927..564ad1d 100644
--- a/otr-proxy/KTpProxy/svc-channel-proxy.h
+++ b/otr-proxy/KTpProxy/svc-channel-proxy.h
@@ -107,7 +107,7 @@ class TP_QT_EXPORT ChannelProxyInterfaceOTRAdaptor : public Tp::AbstractAdaptor
 
 public:
     ChannelProxyInterfaceOTRAdaptor(const QDBusConnection& dbusConnection, QObject* adaptee, QObject* parent);
-    virtual ~ChannelProxyInterfaceOTRAdaptor();
+    ~ChannelProxyInterfaceOTRAdaptor() override;
 
     typedef Tp::MethodInvocationContextPtr<  > ConnectProxyContextPtr;
     typedef Tp::MethodInvocationContextPtr<  > DisconnectProxyContextPtr;
diff --git a/otr-proxy/KTpProxy/svc-proxy-service.h b/otr-proxy/KTpProxy/svc-proxy-service.h
index 2816a01..0298c2a 100644
--- a/otr-proxy/KTpProxy/svc-proxy-service.h
+++ b/otr-proxy/KTpProxy/svc-proxy-service.h
@@ -80,7 +80,7 @@ class TP_QT_EXPORT ProxyServiceAdaptor : public Tp::AbstractAdaptor
 
 public:
     ProxyServiceAdaptor(const QDBusConnection& dbusConnection, QObject* adaptee, QObject* parent);
-    virtual ~ProxyServiceAdaptor();
+    ~ProxyServiceAdaptor() override;
 
     typedef Tp::MethodInvocationContextPtr<  > GeneratePrivateKeyContextPtr;
     typedef Tp::MethodInvocationContextPtr< QString > GetFingerprintForAccountContextPtr;
diff --git a/tests/model-view.cpp b/tests/model-view.cpp
index de23b1c..175b32f 100644
--- a/tests/model-view.cpp
+++ b/tests/model-view.cpp
@@ -32,8 +32,8 @@
 #include <KTp/types.h>
 
 class SimpleDelegate : public QStyledItemDelegate {
-    virtual QSize sizeHint(const QStyleOptionViewItem &option, const QModelIndex &index) const;
-    virtual void paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const;
+    QSize sizeHint(const QStyleOptionViewItem &option, const QModelIndex &index) const override;
+    void paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const override;
 };
 
 QSize SimpleDelegate::sizeHint(const QStyleOptionViewItem &option, const QModelIndex &index) const
diff --git a/tests/model-view.h b/tests/model-view.h
index f0ad9f7..85d3c79 100644
--- a/tests/model-view.h
+++ b/tests/model-view.h
@@ -33,7 +33,7 @@ class ModelView : public QWidget, protected Ui::MainWidget {
 
 public:
     ModelView(QAbstractItemModel *model, QWidget *parent = 0);
-    ~ModelView();
+    ~ModelView() override;
 
 };
 
diff --git a/tests/roles-proxy-model.h b/tests/roles-proxy-model.h
index 4766110..4f8dc68 100644
--- a/tests/roles-proxy-model.h
+++ b/tests/roles-proxy-model.h
@@ -30,21 +30,21 @@ class RolesProxyModel : public QAbstractProxyModel {
 
 public:
     RolesProxyModel(QObject *parent = 0);
-    virtual ~RolesProxyModel();
+    ~RolesProxyModel() override;
 
-    virtual void setSourceModel(QAbstractItemModel *sourceModel);
+    void setSourceModel(QAbstractItemModel *sourceModel) override;
 
-    virtual int rowCount(const QModelIndex &parent = QModelIndex()) const;
-    virtual int columnCount(const QModelIndex &parent = QModelIndex()) const;
-    virtual QModelIndex index(int row, int column, const QModelIndex &parent = QModelIndex()) const;
-    virtual QModelIndex parent(const QModelIndex &index) const;
+    int rowCount(const QModelIndex &parent = QModelIndex()) const override;
+    int columnCount(const QModelIndex &parent = QModelIndex()) const override;
+    QModelIndex index(int row, int column, const QModelIndex &parent = QModelIndex()) const override;
+    QModelIndex parent(const QModelIndex &index) const override;
 
-    virtual QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const;
-    virtual Qt::ItemFlags flags(const QModelIndex &index) const;
-    virtual QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const;
+    QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override;
+    Qt::ItemFlags flags(const QModelIndex &index) const override;
+    QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const override;
 
-    virtual QModelIndex mapFromSource(const QModelIndex &sourceIndex) const;
-    virtual QModelIndex mapToSource(const QModelIndex &proxyIndex) const;
+    QModelIndex mapFromSource(const QModelIndex &sourceIndex) const override;
+    QModelIndex mapToSource(const QModelIndex &proxyIndex) const override;
 
 protected Q_SLOTS:
     virtual void onSourceRowsInserted(const QModelIndex &parent, int start, int end);
diff --git a/tools/debugger/debug-message-view.h b/tools/debugger/debug-message-view.h
index 4c7facb..13808d0 100644
--- a/tools/debugger/debug-message-view.h
+++ b/tools/debugger/debug-message-view.h
@@ -29,9 +29,9 @@ class DebugMessageView : public QWidget
     Q_OBJECT
 public:
     explicit DebugMessageView(QWidget *parent = 0);
-    ~DebugMessageView();
+    ~DebugMessageView() override;
 
-    void showEvent(QShowEvent *event);
+    void showEvent(QShowEvent *event) override;
     void setTelepathyProcess(TelepathyProcess *process);
     void saveLogFile();
 
diff --git a/tools/debugger/main-window.h b/tools/debugger/main-window.h
index 86eeaed..86b3594 100644
--- a/tools/debugger/main-window.h
+++ b/tools/debugger/main-window.h
@@ -30,7 +30,7 @@ class MainWindow : public KXmlGuiWindow
     Q_OBJECT
 public:
     explicit MainWindow(QWidget *parent = 0);
-    virtual ~MainWindow();
+    ~MainWindow() override;
 
 public Q_SLOTS:
     void saveLogFile();
diff --git a/tools/debugger/telepathy-process.h b/tools/debugger/telepathy-process.h
index 0b7214b..a995070 100644
--- a/tools/debugger/telepathy-process.h
+++ b/tools/debugger/telepathy-process.h
@@ -32,7 +32,7 @@ class TelepathyProcess : public QObject
     Q_OBJECT
 public:
     explicit TelepathyProcess(QObject *parent = nullptr);
-    ~TelepathyProcess();
+    ~TelepathyProcess() override;
 
     QString ownerId() const Q_REQUIRED_RESULT { return m_owner; }
     void setOwnerId(const QString &owner);