From 4ee9e5c27ce1788db42728ace2df2b4c6aa9ceed Mon Sep 17 00:00:00 2001
From: Nicolas Werner <nicolas.werner@hotmail.de>
Date: Mon, 25 May 2020 13:03:49 +0200
Subject: [PATCH] Improve compile times a tiny bit

---
 src/CommunitiesListItem.h     |  1 -
 src/InviteeItem.cpp           |  1 +
 src/InviteeItem.h             |  2 +-
 src/LoginPage.cpp             |  9 ++++++++-
 src/LoginPage.h               |  7 ++++---
 src/RegisterPage.cpp          |  1 +
 src/RegisterPage.h            |  7 +++++--
 src/RoomList.cpp              |  2 ++
 src/SideBarActions.cpp        |  2 ++
 src/TopRoomBar.h              |  1 -
 src/UserInfoWidget.cpp        |  3 +++
 src/UserInfoWidget.h          |  7 +++++--
 src/UserSettingsPage.h        |  9 +++++----
 src/dialogs/InviteUsers.cpp   |  1 +
 src/dialogs/InviteUsers.h     |  4 ++--
 src/dialogs/ReadReceipts.cpp  |  8 ++++++++
 src/dialogs/ReadReceipts.h    | 14 +++++---------
 src/dialogs/RoomSettings.cpp  | 34 ++++++++++++++++++++++++++++++++++
 src/dialogs/RoomSettings.h    | 35 ++++++-----------------------------
 src/emoji/Category.cpp        |  3 +++
 src/emoji/Category.h          |  9 +++++----
 src/popups/PopupItem.cpp      |  1 +
 src/popups/PopupItem.h        |  5 ++---
 src/popups/SuggestionsPopup.h |  3 ---
 24 files changed, 104 insertions(+), 65 deletions(-)

diff --git a/src/CommunitiesListItem.h b/src/CommunitiesListItem.h
index 0cc5d60c6..535a6ec0d 100644
--- a/src/CommunitiesListItem.h
+++ b/src/CommunitiesListItem.h
@@ -7,7 +7,6 @@
 #include "ui/Theme.h"
 
 class RippleOverlay;
-class QPainter;
 class QMouseEvent;
 
 class CommunitiesListItem : public QWidget
diff --git a/src/InviteeItem.cpp b/src/InviteeItem.cpp
index 906a3bfef..a6b471dcd 100644
--- a/src/InviteeItem.cpp
+++ b/src/InviteeItem.cpp
@@ -1,4 +1,5 @@
 #include <QHBoxLayout>
+#include <QLabel>
 #include <QPushButton>
 
 #include "InviteeItem.h"
diff --git a/src/InviteeItem.h b/src/InviteeItem.h
index 582904b4e..54c619388 100644
--- a/src/InviteeItem.h
+++ b/src/InviteeItem.h
@@ -1,11 +1,11 @@
 #pragma once
 
-#include <QLabel>
 #include <QWidget>
 
 #include <mtx/identifiers.hpp>
 
 class QPushButton;
+class QLabel;
 
 class InviteeItem : public QWidget
 {
diff --git a/src/LoginPage.cpp b/src/LoginPage.cpp
index bb329699f..4ed089011 100644
--- a/src/LoginPage.cpp
+++ b/src/LoginPage.cpp
@@ -16,6 +16,7 @@
  */
 
 #include <QDesktopServices>
+#include <QLabel>
 #include <QPainter>
 #include <QStyleOption>
 
@@ -118,7 +119,7 @@ LoginPage::LoginPage(QWidget *parent)
         deviceName_->setLabel(tr("Device name"));
         deviceName_->setToolTip(
           tr("A name for this device, which will be shown to others, when verifying your devices. "
-             "If none is provided, a random string is used for privacy purposes."));
+             "If none is provided a default is used."));
 
         serverInput_ = new TextField(this);
         serverInput_->setLabel("Homeserver address");
@@ -179,6 +180,12 @@ LoginPage::LoginPage(QWidget *parent)
         connect(serverInput_, SIGNAL(editingFinished()), this, SLOT(onServerAddressEntered()));
 }
 
+void
+LoginPage::loginError(const QString &msg)
+{
+        error_label_->setText(msg);
+}
+
 void
 LoginPage::onMatrixIdEntered()
 {
diff --git a/src/LoginPage.h b/src/LoginPage.h
index 8a402aea2..c9220297a 100644
--- a/src/LoginPage.h
+++ b/src/LoginPage.h
@@ -17,8 +17,6 @@
 
 #pragma once
 
-#include <QLabel>
-#include <QLayout>
 #include <QWidget>
 
 class FlatButton;
@@ -26,6 +24,9 @@ class LoadingIndicator;
 class OverlayModal;
 class RaisedButton;
 class TextField;
+class QLabel;
+class QVBoxLayout;
+class QHBoxLayout;
 
 namespace mtx {
 namespace responses {
@@ -65,7 +66,7 @@ protected:
 
 public slots:
         // Displays errors produced during the login.
-        void loginError(const QString &msg) { error_label_->setText(msg); }
+        void loginError(const QString &msg);
 
 private slots:
         // Callback for the back button.
diff --git a/src/RegisterPage.cpp b/src/RegisterPage.cpp
index 03e9ab34c..e57961ef3 100644
--- a/src/RegisterPage.cpp
+++ b/src/RegisterPage.cpp
@@ -15,6 +15,7 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
+#include <QLabel>
 #include <QMetaType>
 #include <QPainter>
 #include <QStyleOption>
diff --git a/src/RegisterPage.h b/src/RegisterPage.h
index ebc24bb12..59ba3d1d8 100644
--- a/src/RegisterPage.h
+++ b/src/RegisterPage.h
@@ -17,8 +17,8 @@
 
 #pragma once
 
-#include <QLabel>
-#include <QLayout>
+#include <QWidget>
+
 #include <memory>
 
 #include <mtx/user_interactive.hpp>
@@ -26,6 +26,9 @@
 class FlatButton;
 class RaisedButton;
 class TextField;
+class QLabel;
+class QVBoxLayout;
+class QHBoxLayout;
 
 class RegisterPage : public QWidget
 {
diff --git a/src/RoomList.cpp b/src/RoomList.cpp
index 85a220264..b4c507b51 100644
--- a/src/RoomList.cpp
+++ b/src/RoomList.cpp
@@ -21,6 +21,8 @@
 #include <QObject>
 #include <QPainter>
 #include <QScroller>
+#include <QStyle>
+#include <QStyleOption>
 #include <QTimer>
 
 #include "Logging.h"
diff --git a/src/SideBarActions.cpp b/src/SideBarActions.cpp
index 4934ec054..5af01cc2a 100644
--- a/src/SideBarActions.cpp
+++ b/src/SideBarActions.cpp
@@ -1,6 +1,8 @@
 #include <QIcon>
 #include <QPainter>
 #include <QResizeEvent>
+#include <QStyle>
+#include <QStyleOption>
 
 #include <mtx/requests.hpp>
 
diff --git a/src/TopRoomBar.h b/src/TopRoomBar.h
index 1aa5934b6..0c33c1e0d 100644
--- a/src/TopRoomBar.h
+++ b/src/TopRoomBar.h
@@ -27,7 +27,6 @@ class Menu;
 class TextLabel;
 class OverlayModal;
 
-class QPainter;
 class QLabel;
 class QHBoxLayout;
 class QVBoxLayout;
diff --git a/src/UserInfoWidget.cpp b/src/UserInfoWidget.cpp
index 2e21d41fa..e11aa6aae 100644
--- a/src/UserInfoWidget.cpp
+++ b/src/UserInfoWidget.cpp
@@ -16,7 +16,10 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
+#include <QLabel>
 #include <QPainter>
+#include <QStyle>
+#include <QStyleOption>
 #include <QTimer>
 
 #include <iostream>
diff --git a/src/UserInfoWidget.h b/src/UserInfoWidget.h
index e1a925a47..575ade525 100644
--- a/src/UserInfoWidget.h
+++ b/src/UserInfoWidget.h
@@ -17,13 +17,16 @@
 
 #pragma once
 
-#include <QLabel>
-#include <QLayout>
+#include <QWidget>
 
 class Avatar;
 class FlatButton;
 class OverlayModal;
 
+class QLabel;
+class QHBoxLayout;
+class QVBoxLayout;
+
 class UserInfoWidget : public QWidget
 {
         Q_OBJECT
diff --git a/src/UserSettingsPage.h b/src/UserSettingsPage.h
index 7dfa39132..f80c2b2b4 100644
--- a/src/UserSettingsPage.h
+++ b/src/UserSettingsPage.h
@@ -17,17 +17,18 @@
 
 #pragma once
 
-#include <QComboBox>
 #include <QFontDatabase>
-#include <QFormLayout>
 #include <QFrame>
-#include <QLabel>
-#include <QLayout>
 #include <QProcessEnvironment>
 #include <QSharedPointer>
 #include <QWidget>
 
 class Toggle;
+class QLabel;
+class QFormLayout;
+class QComboBox;
+class QHBoxLayout;
+class QVBoxLayout;
 
 constexpr int OptionMargin       = 6;
 constexpr int LayoutTopMargin    = 50;
diff --git a/src/dialogs/InviteUsers.cpp b/src/dialogs/InviteUsers.cpp
index 691035ce0..f85adb8ff 100644
--- a/src/dialogs/InviteUsers.cpp
+++ b/src/dialogs/InviteUsers.cpp
@@ -1,5 +1,6 @@
 #include <QDebug>
 #include <QIcon>
+#include <QLabel>
 #include <QListWidget>
 #include <QListWidgetItem>
 #include <QPushButton>
diff --git a/src/dialogs/InviteUsers.h b/src/dialogs/InviteUsers.h
index 952c97a56..684f60b4b 100644
--- a/src/dialogs/InviteUsers.h
+++ b/src/dialogs/InviteUsers.h
@@ -1,13 +1,13 @@
 #pragma once
 
 #include <QFrame>
-#include <QLabel>
-#include <QListWidgetItem>
 #include <QStringList>
 
 class QPushButton;
+class QLabel;
 class TextField;
 class QListWidget;
+class QListWidgetItem;
 
 namespace dialogs {
 
diff --git a/src/dialogs/ReadReceipts.cpp b/src/dialogs/ReadReceipts.cpp
index 0edd1ebfe..970d9125d 100644
--- a/src/dialogs/ReadReceipts.cpp
+++ b/src/dialogs/ReadReceipts.cpp
@@ -1,5 +1,6 @@
 #include <QDebug>
 #include <QIcon>
+#include <QLabel>
 #include <QListWidgetItem>
 #include <QPainter>
 #include <QPushButton>
@@ -163,3 +164,10 @@ ReadReceipts::paintEvent(QPaintEvent *)
         QPainter p(this);
         style()->drawPrimitive(QStyle::PE_Widget, &opt, &p, this);
 }
+
+void
+ReadReceipts::hideEvent(QHideEvent *event)
+{
+        userList_->clear();
+        QFrame::hideEvent(event);
+}
diff --git a/src/dialogs/ReadReceipts.h b/src/dialogs/ReadReceipts.h
index e298af0a6..2e7a0217c 100644
--- a/src/dialogs/ReadReceipts.h
+++ b/src/dialogs/ReadReceipts.h
@@ -2,12 +2,12 @@
 
 #include <QDateTime>
 #include <QFrame>
-#include <QHBoxLayout>
-#include <QLabel>
-#include <QListWidget>
-#include <QVBoxLayout>
 
 class Avatar;
+class QLabel;
+class QListWidget;
+class QHBoxLayout;
+class QVBoxLayout;
 
 namespace dialogs {
 
@@ -47,11 +47,7 @@ public slots:
 
 protected:
         void paintEvent(QPaintEvent *event) override;
-        void hideEvent(QHideEvent *event) override
-        {
-                userList_->clear();
-                QFrame::hideEvent(event);
-        }
+        void hideEvent(QHideEvent *event) override;
 
 private:
         QLabel *topLabel_;
diff --git a/src/dialogs/RoomSettings.cpp b/src/dialogs/RoomSettings.cpp
index cc10ac91d..26aece32e 100644
--- a/src/dialogs/RoomSettings.cpp
+++ b/src/dialogs/RoomSettings.cpp
@@ -1,5 +1,6 @@
 #include <QApplication>
 #include <QComboBox>
+#include <QEvent>
 #include <QFileDialog>
 #include <QFontDatabase>
 #include <QImageReader>
@@ -41,6 +42,17 @@ constexpr int WIDGET_SPACING    = 15;
 constexpr int TEXT_SPACING      = 4;
 constexpr int BUTTON_SPACING    = 2 * TEXT_SPACING;
 
+bool
+ClickableFilter::eventFilter(QObject *obj, QEvent *event)
+{
+        if (event->type() == QEvent::MouseButtonRelease) {
+                emit clicked();
+                return true;
+        }
+
+        return QObject::eventFilter(obj, event);
+}
+
 EditModal::EditModal(const QString &roomId, QWidget *parent)
   : QWidget(parent)
   , roomId_{roomId}
@@ -93,6 +105,28 @@ EditModal::EditModal(const QString &roomId, QWidget *parent)
         move(center.x() - (width() * 0.5), center.y() - (height() * 0.5));
 }
 
+void
+EditModal::topicEventSent()
+{
+        errorField_->hide();
+        close();
+}
+
+void
+EditModal::nameEventSent(const QString &name)
+{
+        errorField_->hide();
+        emit nameChanged(name);
+        close();
+}
+
+void
+EditModal::error(const QString &msg)
+{
+        errorField_->setText(msg);
+        errorField_->show();
+}
+
 void
 EditModal::applyClicked()
 {
diff --git a/src/dialogs/RoomSettings.h b/src/dialogs/RoomSettings.h
index e41c866c9..e0918afdc 100644
--- a/src/dialogs/RoomSettings.h
+++ b/src/dialogs/RoomSettings.h
@@ -1,9 +1,7 @@
 #pragma once
 
-#include <QEvent>
 #include <QFrame>
 #include <QImage>
-#include <QLabel>
 
 #include <mtx/events/guest_access.hpp>
 
@@ -21,6 +19,8 @@ class QPixmap;
 class TextField;
 class TextField;
 class Toggle;
+class QLabel;
+class QEvent;
 
 class ClickableFilter : public QObject
 {
@@ -35,15 +35,7 @@ signals:
         void clicked();
 
 protected:
-        bool eventFilter(QObject *obj, QEvent *event) override
-        {
-                if (event->type() == QEvent::MouseButtonRelease) {
-                        emit clicked();
-                        return true;
-                }
-
-                return QObject::eventFilter(obj, event);
-        }
+        bool eventFilter(QObject *obj, QEvent *event) override;
 };
 
 /// Convenience class which connects events emmited from threads
@@ -72,24 +64,9 @@ signals:
         void nameChanged(const QString &roomName);
 
 private slots:
-        void topicEventSent()
-        {
-                errorField_->hide();
-                close();
-        }
-
-        void nameEventSent(const QString &name)
-        {
-                errorField_->hide();
-                emit nameChanged(name);
-                close();
-        }
-
-        void error(const QString &msg)
-        {
-                errorField_->setText(msg);
-                errorField_->show();
-        }
+        void topicEventSent();
+        void nameEventSent(const QString &name);
+        void error(const QString &msg);
 
         void applyClicked();
 
diff --git a/src/emoji/Category.cpp b/src/emoji/Category.cpp
index e674e9db3..5197c4742 100644
--- a/src/emoji/Category.cpp
+++ b/src/emoji/Category.cpp
@@ -15,9 +15,12 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
+#include <QLabel>
+#include <QListView>
 #include <QPainter>
 #include <QScrollBar>
 #include <QStyleOption>
+#include <QVBoxLayout>
 
 #include "Config.h"
 
diff --git a/src/emoji/Category.h b/src/emoji/Category.h
index 2f39d6217..79e616ee4 100644
--- a/src/emoji/Category.h
+++ b/src/emoji/Category.h
@@ -18,13 +18,14 @@
 #pragma once
 
 #include <QColor>
-#include <QLabel>
-#include <QLayout>
-#include <QListView>
-#include <QStandardItemModel>
 
 #include "ItemDelegate.h"
 
+class QLabel;
+class QListView;
+class QStandardItemModel;
+class QVBoxLayout;
+
 namespace emoji {
 
 class Category : public QWidget
diff --git a/src/popups/PopupItem.cpp b/src/popups/PopupItem.cpp
index 5513f942c..b37848439 100644
--- a/src/popups/PopupItem.cpp
+++ b/src/popups/PopupItem.cpp
@@ -1,3 +1,4 @@
+#include <QLabel>
 #include <QPaintEvent>
 #include <QPainter>
 #include <QStyleOption>
diff --git a/src/popups/PopupItem.h b/src/popups/PopupItem.h
index 7a710fdb3..17a4f6bca 100644
--- a/src/popups/PopupItem.h
+++ b/src/popups/PopupItem.h
@@ -1,8 +1,5 @@
 #pragma once
 
-#include <QHBoxLayout>
-#include <QLabel>
-#include <QPoint>
 #include <QWidget>
 
 #include "../AvatarProvider.h"
@@ -10,6 +7,8 @@
 
 class Avatar;
 struct SearchResult;
+class QLabel;
+class QHBoxLayout;
 
 class PopupItem : public QWidget
 {
diff --git a/src/popups/SuggestionsPopup.h b/src/popups/SuggestionsPopup.h
index 63c44538a..73bfe6f7a 100644
--- a/src/popups/SuggestionsPopup.h
+++ b/src/popups/SuggestionsPopup.h
@@ -1,8 +1,5 @@
 #pragma once
 
-#include <QHBoxLayout>
-#include <QLabel>
-#include <QPoint>
 #include <QWidget>
 
 #include "CacheStructs.h"
-- 
GitLab