diff --git a/src/avadapter.cpp b/src/avadapter.cpp
index 1a984138ee495653cb4c3ace818cc604c40ba0a6..7b0898cbe5642cc78ef408cf4a4353fcecdb7cf0 100644
--- a/src/avadapter.cpp
+++ b/src/avadapter.cpp
@@ -290,7 +290,7 @@ AvAdapter::getScreenNumber() const
     // Get display
     QString display_env {getenv("DISPLAY")};
     if (!display_env.isEmpty()) {
-        auto list = display_env.split(":", Qt::SkipEmptyParts);
+        auto list = display_env.split(':', QString::SplitBehavior::SkipEmptyParts);
         // Should only be one display, so get the first one
         if (list.size() > 0) {
             display = list.at(0).toInt();
diff --git a/src/main.cpp b/src/main.cpp
index 195945c18a44050944c817715f9c0e2e94b5ed3e..f73fdbfd6f2de7b5c848126947e3fed46e723396 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -23,6 +23,7 @@
 #include "version.h"
 
 #include <QCryptographicHash>
+#include <QApplication>
 #include <QtWebEngine>
 
 #include <clocale>
@@ -60,8 +61,10 @@ main(int argc, char* argv[])
     QApplication::setQuitOnLastWindowClosed(false);
     QCoreApplication::setAttribute(Qt::AA_UseOpenGLES);
     QCoreApplication::setApplicationVersion(QString(VERSION_STRING));
+#if QT_VERSION >= QT_VERSION_CHECK(5, 14, 0)
     QApplication::setHighDpiScaleFactorRoundingPolicy(
         Qt::HighDpiScaleFactorRoundingPolicy::PassThrough);
+#endif
     QtWebEngine::initialize();
 
     char ARG_DISABLE_WEB_SECURITY[] = "--disable-web-security";
diff --git a/src/mainapplication.cpp b/src/mainapplication.cpp
index 812e6a0d91e66af006fc02e0152bac87771b562e..76e22e9cef4c4f260f34bffb14ba9c91997d81b9 100644
--- a/src/mainapplication.cpp
+++ b/src/mainapplication.cpp
@@ -48,6 +48,7 @@
 #include <QQmlContext>
 
 #include <locale.h>
+#include <thread>
 
 #ifdef Q_OS_WIN
 #include <windows.h>
diff --git a/src/qmlregister.h b/src/qmlregister.h
index 48591c30dd16192b613afb8697b5c47aebbf837e..a77d6bcb97c0410337a686e1fcaaeac2b887e45e 100644
--- a/src/qmlregister.h
+++ b/src/qmlregister.h
@@ -18,6 +18,10 @@
 
 #pragma once
 
+#include <QJSEngine>
+#include <QQmlEngine>
+#include <QObject>
+
 #define NS_MODELS    "net.jami.Models"
 #define NS_ADAPTERS  "net.jami.Adapters"
 #define NS_CONSTANTS "net.jami.Constants"
diff --git a/src/qrimageprovider.h b/src/qrimageprovider.h
index 9af5c51d73ca4b998ce52d599ccd75ae4301aae2..d148873d9f9f9648837fe9da12b7cbd6ec667867 100644
--- a/src/qrimageprovider.h
+++ b/src/qrimageprovider.h
@@ -29,8 +29,8 @@ class QrImageProvider : public QuickImageProviderBase
 public:
     QrImageProvider(LRCInstance* instance = nullptr)
         : QuickImageProviderBase(QQuickImageProvider::Image,
-                                  QQmlImageProviderBase::ForceAsynchronousImageLoading,
-                                  instance)
+                                 QQmlImageProviderBase::ForceAsynchronousImageLoading,
+                                 instance)
     {}
 
     enum class QrType { Account, Contact };
@@ -43,11 +43,11 @@ public:
      */
     QPair<QrType, QString> getIndexFromID(const QString& id)
     {
-        auto list = id.split('_', Qt::SkipEmptyParts);
+        auto list = id.split('_', QString::SplitBehavior::SkipEmptyParts);
         if (list.size() < 2)
-            return QPair(QrType::Account, "");
+            return {QrType::Account, ""};
         if (list.contains("account") && list.size() > 1) {
-            return QPair(QrType::Account, list[1]);
+            return {QrType::Account, list[1]};
         } else if (list.contains("contact") && list.size() > 1) {
             /*
              * For contact_xxx, xxx is "" initially
@@ -55,9 +55,9 @@ public:
             const auto& convInfo = lrcInstance_->getConversationFromConvUid(list[1]);
             auto contact = lrcInstance_->getCurrentAccountInfo().contactModel->getContact(
                 convInfo.participants.at(0));
-            return QPair(QrType::Contact, contact.profileInfo.uri);
+            return {QrType::Contact, contact.profileInfo.uri};
         }
-        return QPair(QrType::Account, "");
+        return {QrType::Account, ""};
     }
 
     QImage requestImage(const QString& id, QSize* size, const QSize& requestedSize) override
diff --git a/src/systemtray.h b/src/systemtray.h
index 558715b8c3874441a67e40e4b6868f68816ce629..8b9078a528d3b78b559a76273d9921b9bc06e0f5 100644
--- a/src/systemtray.h
+++ b/src/systemtray.h
@@ -20,6 +20,8 @@
 
 #include <QSystemTrayIcon>
 
+#include <functional>
+
 class AppSettingsManager;
 
 class SystemTray final : public QSystemTrayIcon