summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--.clang-format5
-rw-r--r--include/Cache.h6
-rw-r--r--include/Config.h14
-rw-r--r--include/EmojiCategory.h3
-rw-r--r--include/Login.h15
-rw-r--r--include/MatrixClient.h18
-rw-r--r--include/Profile.h6
-rw-r--r--include/Register.h15
-rw-r--r--include/RoomInfoListItem.h23
-rw-r--r--include/RoomMessages.h9
-rw-r--r--include/RoomState.h9
-rw-r--r--include/SlidingStackWidget.h6
-rw-r--r--include/Sync.h48
-rw-r--r--include/TextInputWidget.h3
-rw-r--r--include/TimelineItem.h19
-rw-r--r--include/TimelineView.h28
-rw-r--r--include/TopRoomBar.h18
-rw-r--r--include/events/AliasesEventContent.h11
-rw-r--r--include/events/AvatarEventContent.h11
-rw-r--r--include/events/CanonicalAliasEventContent.h11
-rw-r--r--include/events/CreateEventContent.h11
-rw-r--r--include/events/Event.h43
-rw-r--r--include/events/HistoryVisibilityEventContent.h11
-rw-r--r--include/events/JoinRulesEventContent.h11
-rw-r--r--include/events/MemberEventContent.h17
-rw-r--r--include/events/MessageEvent.h18
-rw-r--r--include/events/MessageEventContent.h14
-rw-r--r--include/events/NameEventContent.h11
-rw-r--r--include/events/PowerLevelsEventContent.h29
-rw-r--r--include/events/RoomEvent.h36
-rw-r--r--include/events/StateEvent.h26
-rw-r--r--include/events/TopicEventContent.h11
-rw-r--r--include/events/messages/Audio.h12
-rw-r--r--include/events/messages/Emote.h6
-rw-r--r--include/events/messages/File.h15
-rw-r--r--include/events/messages/Image.h12
-rw-r--r--include/events/messages/Location.h12
-rw-r--r--include/events/messages/Notice.h6
-rw-r--r--include/events/messages/Text.h6
-rw-r--r--include/events/messages/Video.h12
-rw-r--r--include/ui/CircularProgress.h18
-rw-r--r--include/ui/DropShadow.h9
-rw-r--r--include/ui/FlatButton.h15
-rw-r--r--include/ui/Menu.h10
-rw-r--r--include/ui/OverlayModal.h6
-rw-r--r--include/ui/Ripple.h39
-rw-r--r--include/ui/RippleOverlay.h9
-rw-r--r--include/ui/TextField.h24
-rw-r--r--include/ui/Theme.h41
-rw-r--r--include/ui/ThemeManager.h3
-rw-r--r--src/AvatarProvider.cc15
-rw-r--r--src/Cache.cc55
-rw-r--r--src/ChatPage.cc64
-rw-r--r--src/Deserializable.cc5
-rw-r--r--src/EmojiCategory.cc2
-rw-r--r--src/EmojiItemDelegate.cc5
-rw-r--r--src/EmojiPanel.cc54
-rw-r--r--src/EmojiPickButton.cc10
-rw-r--r--src/EmojiProvider.cc2842
-rw-r--r--src/ImageItem.cc34
-rw-r--r--src/ImageOverlayDialog.cc13
-rw-r--r--src/Login.cc18
-rw-r--r--src/LoginPage.cc33
-rw-r--r--src/LogoutDialog.cc2
-rw-r--r--src/MainWindow.cc44
-rw-r--r--src/MatrixClient.cc107
-rw-r--r--src/Profile.cc3
-rw-r--r--src/QuickSwitcher.cc25
-rw-r--r--src/Register.cc14
-rw-r--r--src/RegisterPage.cc13
-rw-r--r--src/RoomInfoListItem.cc48
-rw-r--r--src/RoomList.cc30
-rw-r--r--src/RoomMessages.cc3
-rw-r--r--src/RoomState.cc20
-rw-r--r--src/SlidingStackWidget.cc20
-rw-r--r--src/Splitter.cc5
-rw-r--r--src/Sync.cc18
-rw-r--r--src/TextInputWidget.cc16
-rw-r--r--src/TimelineItem.cc101
-rw-r--r--src/TimelineView.cc76
-rw-r--r--src/TimelineViewManager.cc36
-rw-r--r--src/TopRoomBar.cc23
-rw-r--r--src/TrayIcon.cc26
-rw-r--r--src/UserInfoWidget.cc34
-rw-r--r--src/Versions.cc6
-rw-r--r--src/WelcomePage.cc8
-rw-r--r--src/events/AliasesEventContent.cc6
-rw-r--r--src/events/AvatarEventContent.cc6
-rw-r--r--src/events/CanonicalAliasEventContent.cc6
-rw-r--r--src/events/CreateEventContent.cc6
-rw-r--r--src/events/Event.cc22
-rw-r--r--src/events/HistoryVisibilityEventContent.cc9
-rw-r--r--src/events/JoinRulesEventContent.cc6
-rw-r--r--src/events/MemberEventContent.cc6
-rw-r--r--src/events/MessageEventContent.cc9
-rw-r--r--src/events/NameEventContent.cc6
-rw-r--r--src/events/PowerLevelsEventContent.cc12
-rw-r--r--src/events/TopicEventContent.cc6
-rw-r--r--src/events/messages/Audio.cc3
-rw-r--r--src/events/messages/Emote.cc3
-rw-r--r--src/events/messages/File.cc3
-rw-r--r--src/events/messages/Image.cc3
-rw-r--r--src/events/messages/Location.cc3
-rw-r--r--src/events/messages/Notice.cc3
-rw-r--r--src/events/messages/Text.cc3
-rw-r--r--src/events/messages/Video.cc3
-rw-r--r--src/main.cc3
-rw-r--r--src/ui/Avatar.cc42
-rw-r--r--src/ui/Badge.cc66
-rw-r--r--src/ui/CircularProgress.cc50
-rw-r--r--src/ui/FlatButton.cc203
-rw-r--r--src/ui/OverlayModal.cc15
-rw-r--r--src/ui/OverlayWidget.cc11
-rw-r--r--src/ui/RaisedButton.cc10
-rw-r--r--src/ui/Ripple.cc51
-rw-r--r--src/ui/RippleOverlay.cc19
-rw-r--r--src/ui/ScrollBar.cc16
-rw-r--r--src/ui/TextField.cc75
-rw-r--r--src/ui/Theme.cc26
-rw-r--r--src/ui/ThemeManager.cc6
120 files changed, 2899 insertions, 2417 deletions
diff --git a/.clang-format b/.clang-format
index ae3158bd..48a81211 100644
--- a/.clang-format
+++ b/.clang-format
@@ -7,13 +7,12 @@ AlignTrailingComments: false
 AllowAllParametersOfDeclarationOnNextLine: true
 AllowShortFunctionsOnASingleLine: None
 AllowShortIfStatementsOnASingleLine: false
-BasedOnStyle: Google
+BasedOnStyle: Mozilla
 BinPackArguments: false
 BinPackParameters: false
 BreakBeforeBraces: Linux
 BreakConstructorInitializersBeforeComma: true
-ColumnLimit: 0
-ConstructorInitializerAllOnOneLineOrOnePerLine: true
+ColumnLimit: 120
 ContinuationIndentWidth: 8
 IndentCaseLabels: false
 IndentWidth: 8
diff --git a/include/Cache.h b/include/Cache.h
index dc9583ac..a64f0514 100644
--- a/include/Cache.h
+++ b/include/Cache.h
@@ -46,12 +46,14 @@ private:
 	QString userId_;
 };
 
-inline void Cache::unmount()
+inline void
+Cache::unmount()
 {
 	isMounted_ = false;
 }
 
-inline QString Cache::memberDbName(const QString &roomid)
+inline QString
+Cache::memberDbName(const QString &roomid)
 {
 	return QString("m.%1").arg(roomid);
 }
diff --git a/include/Config.h b/include/Config.h
index e12fac85..2fdeef83 100644
--- a/include/Config.h
+++ b/include/Config.h
@@ -36,8 +36,8 @@ namespace fonts
 static const int heading = 13;
 static const int badge = 10;
 static const int bubble = 20;
-}  // namespace fonts
-}  // namespace roomlist
+} // namespace fonts
+} // namespace roomlist
 
 namespace userInfoWidget
 {
@@ -45,8 +45,8 @@ namespace fonts
 {
 static const int displayName = 16;
 static const int userid = 14;
-}  // namespace fonts
-}  // namespace userInfoWidget
+} // namespace fonts
+} // namespace userInfoWidget
 
 namespace topRoomBar
 {
@@ -54,8 +54,8 @@ namespace fonts
 {
 static const int roomName = 15;
 static const int roomDescription = 13;
-}  // namespace fonts
-}  // namespace topRoomBar
+} // namespace fonts
+} // namespace topRoomBar
 
 namespace timeline
 {
@@ -70,4 +70,4 @@ static const int timestamp = 9;
 }
 }
 
-}  // namespace conf
+} // namespace conf
diff --git a/include/EmojiCategory.h b/include/EmojiCategory.h
index 9cf0a177..3a4e4e1e 100644
--- a/include/EmojiCategory.h
+++ b/include/EmojiCategory.h
@@ -53,7 +53,8 @@ private:
 	QLabel *category_;
 };
 
-inline void EmojiCategory::clickIndex(const QModelIndex &index)
+inline void
+EmojiCategory::clickIndex(const QModelIndex &index)
 {
 	emit emojiSelected(index.data(Qt::UserRole).toString());
 }
diff --git a/include/Login.h b/include/Login.h
index c00eb6d2..09f62a71 100644
--- a/include/Login.h
+++ b/include/Login.h
@@ -37,12 +37,14 @@ private:
 	QString password_;
 };
 
-inline void LoginRequest::setPassword(QString password)
+inline void
+LoginRequest::setPassword(QString password)
 {
 	password_ = password;
 }
 
-inline void LoginRequest::setUser(QString username)
+inline void
+LoginRequest::setUser(QString username)
 {
 	user_ = username;
 }
@@ -62,17 +64,20 @@ private:
 	QString user_id_;
 };
 
-inline QString LoginResponse::getAccessToken()
+inline QString
+LoginResponse::getAccessToken()
 {
 	return access_token_;
 }
 
-inline QString LoginResponse::getHomeServer()
+inline QString
+LoginResponse::getHomeServer()
 {
 	return home_server_;
 }
 
-inline QString LoginResponse::getUserId()
+inline QString
+LoginResponse::getUserId()
 {
 	return user_id_;
 }
diff --git a/include/MatrixClient.h b/include/MatrixClient.h
index e3613ab7..c20d02cc 100644
--- a/include/MatrixClient.h
+++ b/include/MatrixClient.h
@@ -136,32 +136,38 @@ private:
 	QString next_batch_;
 };
 
-inline QUrl MatrixClient::getHomeServer()
+inline QUrl
+MatrixClient::getHomeServer()
 {
 	return server_;
 }
 
-inline int MatrixClient::transactionId()
+inline int
+MatrixClient::transactionId()
 {
 	return txn_id_;
 }
 
-inline void MatrixClient::setServer(const QString &server)
+inline void
+MatrixClient::setServer(const QString &server)
 {
 	server_ = QUrl(QString("https://%1").arg(server));
 }
 
-inline void MatrixClient::setAccessToken(const QString &token)
+inline void
+MatrixClient::setAccessToken(const QString &token)
 {
 	token_ = token;
 }
 
-inline void MatrixClient::setNextBatchToken(const QString &next_batch)
+inline void
+MatrixClient::setNextBatchToken(const QString &next_batch)
 {
 	next_batch_ = next_batch;
 }
 
-inline void MatrixClient::incrementTransactionId()
+inline void
+MatrixClient::incrementTransactionId()
 {
 	txn_id_ += 1;
 }
diff --git a/include/Profile.h b/include/Profile.h
index 54016509..7bb3deaa 100644
--- a/include/Profile.h
+++ b/include/Profile.h
@@ -35,12 +35,14 @@ private:
 	QString display_name_;
 };
 
-inline QUrl ProfileResponse::getAvatarUrl()
+inline QUrl
+ProfileResponse::getAvatarUrl()
 {
 	return avatar_url_;
 }
 
-inline QString ProfileResponse::getDisplayName()
+inline QString
+ProfileResponse::getDisplayName()
 {
 	return display_name_;
 }
diff --git a/include/Register.h b/include/Register.h
index 71b3a15a..695595a8 100644
--- a/include/Register.h
+++ b/include/Register.h
@@ -37,12 +37,14 @@ private:
 	QString password_;
 };
 
-inline void RegisterRequest::setPassword(QString password)
+inline void
+RegisterRequest::setPassword(QString password)
 {
 	password_ = password;
 }
 
-inline void RegisterRequest::setUser(QString username)
+inline void
+RegisterRequest::setUser(QString username)
 {
 	user_ = username;
 }
@@ -62,17 +64,20 @@ private:
 	QString user_id_;
 };
 
-inline QString RegisterResponse::getAccessToken()
+inline QString
+RegisterResponse::getAccessToken()
 {
 	return access_token_;
 }
 
-inline QString RegisterResponse::getHomeServer()
+inline QString
+RegisterResponse::getHomeServer()
 {
 	return home_server_;
 }
 
-inline QString RegisterResponse::getUserId()
+inline QString
+RegisterResponse::getUserId()
 {
 	return user_id_;
 }
diff --git a/include/RoomInfoListItem.h b/include/RoomInfoListItem.h
index be7fe866..b368ab64 100644
--- a/include/RoomInfoListItem.h
+++ b/include/RoomInfoListItem.h
@@ -38,10 +38,7 @@ class RoomInfoListItem : public QWidget
 	Q_OBJECT
 
 public:
-	RoomInfoListItem(QSharedPointer<RoomSettings> settings,
-			 RoomState state,
-			 QString room_id,
-			 QWidget *parent = 0);
+	RoomInfoListItem(QSharedPointer<RoomSettings> settings, RoomState state, QString room_id, QWidget *parent = 0);
 
 	~RoomInfoListItem();
 
@@ -95,28 +92,34 @@ private:
 	int unreadMsgCount_ = 0;
 };
 
-inline int RoomInfoListItem::unreadMessageCount() const
+inline int
+RoomInfoListItem::unreadMessageCount() const
 {
 	return unreadMsgCount_;
 }
 
-inline bool RoomInfoListItem::isPressed() const
+inline bool
+RoomInfoListItem::isPressed() const
 {
 	return isPressed_;
 }
 
-inline RoomState RoomInfoListItem::state() const
+inline RoomState
+RoomInfoListItem::state() const
 {
 	return state_;
 }
 
-inline void RoomInfoListItem::setAvatar(const QImage &img)
+inline void
+RoomInfoListItem::setAvatar(const QImage &img)
 {
-	roomAvatar_ = QPixmap::fromImage(img.scaled(IconSize, IconSize, Qt::IgnoreAspectRatio, Qt::SmoothTransformation));
+	roomAvatar_ =
+		QPixmap::fromImage(img.scaled(IconSize, IconSize, Qt::IgnoreAspectRatio, Qt::SmoothTransformation));
 	update();
 }
 
-inline void RoomInfoListItem::setDescriptionMessage(const DescInfo &info)
+inline void
+RoomInfoListItem::setDescriptionMessage(const DescInfo &info)
 {
 	lastMsgInfo_ = info;
 }
diff --git a/include/RoomMessages.h b/include/RoomMessages.h
index 0353af9a..1321ac8e 100644
--- a/include/RoomMessages.h
+++ b/include/RoomMessages.h
@@ -37,17 +37,20 @@ private:
 	QJsonArray chunk_;
 };
 
-inline QString RoomMessages::start() const
+inline QString
+RoomMessages::start() const
 {
 	return start_;
 }
 
-inline QString RoomMessages::end() const
+inline QString
+RoomMessages::end() const
 {
 	return end_;
 }
 
-inline QJsonArray RoomMessages::chunk() const
+inline QJsonArray
+RoomMessages::chunk() const
 {
 	return chunk_;
 }
diff --git a/include/RoomState.h b/include/RoomState.h
index 1d8ae429..536ac4a9 100644
--- a/include/RoomState.h
+++ b/include/RoomState.h
@@ -80,17 +80,20 @@ private:
 	QString userAvatar_;
 };
 
-inline QString RoomState::getTopic() const
+inline QString
+RoomState::getTopic() const
 {
 	return topic.content().topic().simplified();
 }
 
-inline QString RoomState::getName() const
+inline QString
+RoomState::getName() const
 {
 	return name_;
 }
 
-inline QUrl RoomState::getAvatar() const
+inline QUrl
+RoomState::getAvatar() const
 {
 	return avatar_;
 }
diff --git a/include/SlidingStackWidget.h b/include/SlidingStackWidget.h
index 1cb01cea..51903678 100644
--- a/include/SlidingStackWidget.h
+++ b/include/SlidingStackWidget.h
@@ -36,11 +36,7 @@ class SlidingStackWidget : public QStackedWidget
 
 public:
 	// Defines the animation direction.
-	enum class AnimationDirection {
-		LEFT_TO_RIGHT,
-		RIGHT_TO_LEFT,
-		AUTOMATIC
-	};
+	enum class AnimationDirection { LEFT_TO_RIGHT, RIGHT_TO_LEFT, AUTOMATIC };
 
 	SlidingStackWidget(QWidget *parent);
 	~SlidingStackWidget();
diff --git a/include/Sync.h b/include/Sync.h
index 26cfdb48..da81344e 100644
--- a/include/Sync.h
+++ b/include/Sync.h
@@ -51,37 +51,44 @@ private:
 	uint64_t origin_server_ts_;
 };
 
-inline QJsonObject Event::content() const
+inline QJsonObject
+Event::content() const
 {
 	return content_;
 }
 
-inline QJsonObject Event::unsigned_content() const
+inline QJsonObject
+Event::unsigned_content() const
 {
 	return unsigned_;
 }
 
-inline QString Event::sender() const
+inline QString
+Event::sender() const
 {
 	return sender_;
 }
 
-inline QString Event::state_key() const
+inline QString
+Event::state_key() const
 {
 	return state_key_;
 }
 
-inline QString Event::type() const
+inline QString
+Event::type() const
 {
 	return type_;
 }
 
-inline QString Event::eventId() const
+inline QString
+Event::eventId() const
 {
 	return event_id_;
 }
 
-inline uint64_t Event::timestamp() const
+inline uint64_t
+Event::timestamp() const
 {
 	return origin_server_ts_;
 }
@@ -96,7 +103,8 @@ private:
 	QJsonArray events_;
 };
 
-inline QJsonArray State::events() const
+inline QJsonArray
+State::events() const
 {
 	return events_;
 }
@@ -116,17 +124,20 @@ private:
 	bool limited_;
 };
 
-inline QJsonArray Timeline::events() const
+inline QJsonArray
+Timeline::events() const
 {
 	return events_;
 }
 
-inline QString Timeline::previousBatch() const
+inline QString
+Timeline::previousBatch() const
 {
 	return prev_batch_;
 }
 
-inline bool Timeline::limited() const
+inline bool
+Timeline::limited() const
 {
 	return limited_;
 }
@@ -148,12 +159,14 @@ private:
 	/* UnreadNotifications unread_notifications_; */
 };
 
-inline State JoinedRoom::state() const
+inline State
+JoinedRoom::state() const
 {
 	return state_;
 }
 
-inline Timeline JoinedRoom::timeline() const
+inline Timeline
+JoinedRoom::timeline() const
 {
 	return timeline_;
 }
@@ -169,7 +182,8 @@ private:
 	QMap<QString, JoinedRoom> join_;
 };
 
-inline QMap<QString, JoinedRoom> Rooms::join() const
+inline QMap<QString, JoinedRoom>
+Rooms::join() const
 {
 	return join_;
 }
@@ -186,12 +200,14 @@ private:
 	Rooms rooms_;
 };
 
-inline Rooms SyncResponse::rooms() const
+inline Rooms
+SyncResponse::rooms() const
 {
 	return rooms_;
 }
 
-inline QString SyncResponse::nextBatch() const
+inline QString
+SyncResponse::nextBatch() const
 {
 	return next_batch_;
 }
diff --git a/include/TextInputWidget.h b/include/TextInputWidget.h
index 7fae4ae0..690a899b 100644
--- a/include/TextInputWidget.h
+++ b/include/TextInputWidget.h
@@ -66,7 +66,8 @@ private:
 	EmojiPickButton *emoji_button_;
 };
 
-inline void TextInputWidget::focusLineEdit()
+inline void
+TextInputWidget::focusLineEdit()
 {
 	input_->setFocus();
 }
diff --git a/include/TimelineItem.h b/include/TimelineItem.h
index cc5b3da7..af2e273c 100644
--- a/include/TimelineItem.h
+++ b/include/TimelineItem.h
@@ -38,8 +38,14 @@ class TimelineItem : public QWidget
 {
 	Q_OBJECT
 public:
-	TimelineItem(const events::MessageEvent<msgs::Notice> &e, bool with_sender, const QString &color, QWidget *parent = 0);
-	TimelineItem(const events::MessageEvent<msgs::Text> &e, bool with_sender, const QString &color, QWidget *parent = 0);
+	TimelineItem(const events::MessageEvent<msgs::Notice> &e,
+		     bool with_sender,
+		     const QString &color,
+		     QWidget *parent = 0);
+	TimelineItem(const events::MessageEvent<msgs::Text> &e,
+		     bool with_sender,
+		     const QString &color,
+		     QWidget *parent = 0);
 
 	// For local messages.
 	TimelineItem(const QString &userid, const QString &color, QString body, QWidget *parent = 0);
@@ -69,10 +75,10 @@ private:
 	DescInfo descriptionMsg_;
 
 	QHBoxLayout *topLayout_;
-	QVBoxLayout *sideLayout_;  // Avatar or Timestamp
-	QVBoxLayout *mainLayout_;  // Header & Message body
+	QVBoxLayout *sideLayout_; // Avatar or Timestamp
+	QVBoxLayout *mainLayout_; // Header & Message body
 
-	QHBoxLayout *headerLayout_;  // Username (&) Timestamp
+	QHBoxLayout *headerLayout_; // Username (&) Timestamp
 
 	Avatar *userAvatar_;
 
@@ -83,7 +89,8 @@ private:
 	QLabel *body_;
 };
 
-inline DescInfo TimelineItem::descriptionMessage() const
+inline DescInfo
+TimelineItem::descriptionMessage() const
 {
 	return descriptionMsg_;
 }
diff --git a/include/TimelineView.h b/include/TimelineView.h
index 6e92993d..17c2610a 100644
--- a/include/TimelineView.h
+++ b/include/TimelineView.h
@@ -44,10 +44,10 @@ struct PendingMessage {
 	TimelineItem *widget;
 
 	PendingMessage(int txn_id, QString body, QString event_id, TimelineItem *widget)
-	    : txn_id(txn_id)
-	    , body(body)
-	    , event_id(event_id)
-	    , widget(widget)
+	  : txn_id(txn_id)
+	  , body(body)
+	  , event_id(event_id)
+	  , widget(widget)
 	{
 	}
 };
@@ -63,12 +63,21 @@ class TimelineView : public QWidget
 	Q_OBJECT
 
 public:
-	TimelineView(const Timeline &timeline, QSharedPointer<MatrixClient> client, const QString &room_id, QWidget *parent = 0);
+	TimelineView(const Timeline &timeline,
+		     QSharedPointer<MatrixClient> client,
+		     const QString &room_id,
+		     QWidget *parent = 0);
 	TimelineView(QSharedPointer<MatrixClient> client, const QString &room_id, QWidget *parent = 0);
 
-	TimelineItem *createTimelineItem(const events::MessageEvent<msgs::Image> &e, const QString &color, bool with_sender);
-	TimelineItem *createTimelineItem(const events::MessageEvent<msgs::Notice> &e, const QString &color, bool with_sender);
-	TimelineItem *createTimelineItem(const events::MessageEvent<msgs::Text> &e, const QString &color, bool with_sender);
+	TimelineItem *createTimelineItem(const events::MessageEvent<msgs::Image> &e,
+					 const QString &color,
+					 bool with_sender);
+	TimelineItem *createTimelineItem(const events::MessageEvent<msgs::Notice> &e,
+					 const QString &color,
+					 bool with_sender);
+	TimelineItem *createTimelineItem(const events::MessageEvent<msgs::Text> &e,
+					 const QString &color,
+					 bool with_sender);
 
 	// Add new events at the end of the timeline.
 	int addEvents(const Timeline &timeline);
@@ -137,7 +146,8 @@ private:
 	QSharedPointer<MatrixClient> client_;
 };
 
-inline bool TimelineView::isDuplicate(const QString &event_id)
+inline bool
+TimelineView::isDuplicate(const QString &event_id)
 {
 	return eventIds_.contains(event_id);
 }
diff --git a/include/TopRoomBar.h b/include/TopRoomBar.h
index d5cb8e8e..be5d66e6 100644
--- a/include/TopRoomBar.h
+++ b/include/TopRoomBar.h
@@ -70,26 +70,28 @@ private:
 	int buttonSize_;
 };
 
-inline void TopRoomBar::updateRoomAvatar(const QImage &avatar_image)
+inline void
+TopRoomBar::updateRoomAvatar(const QImage &avatar_image)
 {
 	avatar_->setImage(avatar_image);
 }
 
-inline void TopRoomBar::updateRoomAvatar(const QIcon &icon)
+inline void
+TopRoomBar::updateRoomAvatar(const QIcon &icon)
 {
 	avatar_->setIcon(icon);
 }
 
-inline void TopRoomBar::updateRoomName(const QString &name)
+inline void
+TopRoomBar::updateRoomName(const QString &name)
 {
-	QString elidedText = QFontMetrics(name_label_->font())
-				     .elidedText(name, Qt::ElideRight, width() * 0.8);
+	QString elidedText = QFontMetrics(name_label_->font()).elidedText(name, Qt::ElideRight, width() * 0.8);
 	name_label_->setText(elidedText);
 }
 
-inline void TopRoomBar::updateRoomTopic(const QString &topic)
+inline void
+TopRoomBar::updateRoomTopic(const QString &topic)
 {
-	QString elidedText = QFontMetrics(topic_label_->font())
-				     .elidedText(topic, Qt::ElideRight, width() * 0.8);
+	QString elidedText = QFontMetrics(topic_label_->font()).elidedText(topic, Qt::ElideRight, width() * 0.8);
 	topic_label_->setText(elidedText);
 }
diff --git a/include/events/AliasesEventContent.h b/include/events/AliasesEventContent.h
index 3adf8d46..bd7f8f9f 100644
--- a/include/events/AliasesEventContent.h
+++ b/include/events/AliasesEventContent.h
@@ -26,7 +26,9 @@ namespace matrix
 {
 namespace events
 {
-class AliasesEventContent : public Deserializable, public Serializable
+class AliasesEventContent
+  : public Deserializable
+  , public Serializable
 {
 public:
 	void deserialize(const QJsonValue &data) override;
@@ -38,9 +40,10 @@ private:
 	QList<QString> aliases_;
 };
 
-inline QList<QString> AliasesEventContent::aliases() const
+inline QList<QString>
+AliasesEventContent::aliases() const
 {
 	return aliases_;
 }
-}  // namespace events
-}  // namespace matrix
+} // namespace events
+} // namespace matrix
diff --git a/include/events/AvatarEventContent.h b/include/events/AvatarEventContent.h
index 43be3122..03347e26 100644
--- a/include/events/AvatarEventContent.h
+++ b/include/events/AvatarEventContent.h
@@ -30,7 +30,9 @@ namespace events
  * A picture that is associated with the room.
  */
 
-class AvatarEventContent : public Deserializable, public Serializable
+class AvatarEventContent
+  : public Deserializable
+  , public Serializable
 {
 public:
 	void deserialize(const QJsonValue &data) override;
@@ -42,9 +44,10 @@ private:
 	QUrl url_;
 };
 
-inline QUrl AvatarEventContent::url() const
+inline QUrl
+AvatarEventContent::url() const
 {
 	return url_;
 }
-}  // namespace events
-}  // namespace matrix
+} // namespace events
+} // namespace matrix
diff --git a/include/events/CanonicalAliasEventContent.h b/include/events/CanonicalAliasEventContent.h
index aed7ea6b..bc08bcce 100644
--- a/include/events/CanonicalAliasEventContent.h
+++ b/include/events/CanonicalAliasEventContent.h
@@ -32,7 +32,9 @@ namespace events
  * users which alias to use to advertise the room.
  */
 
-class CanonicalAliasEventContent : public Deserializable, public Serializable
+class CanonicalAliasEventContent
+  : public Deserializable
+  , public Serializable
 {
 public:
 	void deserialize(const QJsonValue &data) override;
@@ -44,9 +46,10 @@ private:
 	QString alias_;
 };
 
-inline QString CanonicalAliasEventContent::alias() const
+inline QString
+CanonicalAliasEventContent::alias() const
 {
 	return alias_;
 }
-}  // namespace events
-}  // namespace matrix
+} // namespace events
+} // namespace matrix
diff --git a/include/events/CreateEventContent.h b/include/events/CreateEventContent.h
index eedee9f1..0a401dac 100644
--- a/include/events/CreateEventContent.h
+++ b/include/events/CreateEventContent.h
@@ -29,7 +29,9 @@ namespace events
  * This is the first event in a room and cannot be changed. It acts as the root of all other events.
  */
 
-class CreateEventContent : public Deserializable, public Serializable
+class CreateEventContent
+  : public Deserializable
+  , public Serializable
 {
 public:
 	void deserialize(const QJsonValue &data) override;
@@ -42,9 +44,10 @@ private:
 	QString creator_;
 };
 
-inline QString CreateEventContent::creator() const
+inline QString
+CreateEventContent::creator() const
 {
 	return creator_;
 }
-}  // namespace events
-}  // namespace matrix
+} // namespace events
+} // namespace matrix
diff --git a/include/events/Event.h b/include/events/Event.h
index af538644..d48c20c6 100644
--- a/include/events/Event.h
+++ b/include/events/Event.h
@@ -53,13 +53,18 @@ enum class EventType {
 	Unsupported,
 };
 
-EventType extractEventType(const QJsonObject &data);
-
-bool isMessageEvent(EventType type);
-bool isStateEvent(EventType type);
-
-template <class Content>
-class Event : public Deserializable, public Serializable
+EventType
+extractEventType(const QJsonObject &data);
+
+bool
+isMessageEvent(EventType type);
+bool
+isStateEvent(EventType type);
+
+template<class Content>
+class Event
+  : public Deserializable
+  , public Serializable
 {
 public:
 	inline Content content() const;
@@ -73,20 +78,23 @@ private:
 	EventType type_;
 };
 
-template <class Content>
-inline Content Event<Content>::content() const
+template<class Content>
+inline Content
+Event<Content>::content() const
 {
 	return content_;
 }
 
-template <class Content>
-inline EventType Event<Content>::eventType() const
+template<class Content>
+inline EventType
+Event<Content>::eventType() const
 {
 	return type_;
 }
 
-template <class Content>
-void Event<Content>::deserialize(const QJsonValue &data)
+template<class Content>
+void
+Event<Content>::deserialize(const QJsonValue &data)
 {
 	if (!data.isObject())
 		throw DeserializationException("Event is not a JSON object");
@@ -97,8 +105,9 @@ void Event<Content>::deserialize(const QJsonValue &data)
 	type_ = extractEventType(object);
 }
 
-template <class Content>
-QJsonObject Event<Content>::serialize() const
+template<class Content>
+QJsonObject
+Event<Content>::serialize() const
 {
 	QJsonObject object;
 
@@ -145,5 +154,5 @@ QJsonObject Event<Content>::serialize() const
 
 	return object;
 }
-}  // namespace events
-}  // namespace matrix
+} // namespace events
+} // namespace matrix
diff --git a/include/events/HistoryVisibilityEventContent.h b/include/events/HistoryVisibilityEventContent.h
index 3edc7ce5..d854a775 100644
--- a/include/events/HistoryVisibilityEventContent.h
+++ b/include/events/HistoryVisibilityEventContent.h
@@ -32,7 +32,9 @@ enum class HistoryVisibility {
 	WorldReadable,
 };
 
-class HistoryVisibilityEventContent : public Deserializable, public Serializable
+class HistoryVisibilityEventContent
+  : public Deserializable
+  , public Serializable
 {
 public:
 	inline HistoryVisibility historyVisibility() const;
@@ -44,9 +46,10 @@ private:
 	HistoryVisibility history_visibility_;
 };
 
-inline HistoryVisibility HistoryVisibilityEventContent::historyVisibility() const
+inline HistoryVisibility
+HistoryVisibilityEventContent::historyVisibility() const
 {
 	return history_visibility_;
 }
-}  // namespace events
-}  // namespace matrix
+} // namespace events
+} // namespace matrix
diff --git a/include/events/JoinRulesEventContent.h b/include/events/JoinRulesEventContent.h
index 9b07e9a6..702bba98 100644
--- a/include/events/JoinRulesEventContent.h
+++ b/include/events/JoinRulesEventContent.h
@@ -44,7 +44,9 @@ enum class JoinRule {
  * Describes how users are allowed to join the room.
  */
 
-class JoinRulesEventContent : public Deserializable, public Serializable
+class JoinRulesEventContent
+  : public Deserializable
+  , public Serializable
 {
 public:
 	void deserialize(const QJsonValue &data) override;
@@ -56,9 +58,10 @@ private:
 	JoinRule join_rule_;
 };
 
-inline JoinRule JoinRulesEventContent::joinRule() const
+inline JoinRule
+JoinRulesEventContent::joinRule() const
 {
 	return join_rule_;
 }
-}  // namespace events
-}  // namespace matrix
+} // namespace events
+} // namespace matrix
diff --git a/include/events/MemberEventContent.h b/include/events/MemberEventContent.h
index feaf1559..2dd133ea 100644
--- a/include/events/MemberEventContent.h
+++ b/include/events/MemberEventContent.h
@@ -47,7 +47,9 @@ enum class Membership {
  * The current membership state of a user in the room.
  */
 
-class MemberEventContent : public Deserializable, public Serializable
+class MemberEventContent
+  : public Deserializable
+  , public Serializable
 {
 public:
 	void deserialize(const QJsonValue &data) override;
@@ -63,19 +65,22 @@ private:
 	Membership membership_state_;
 };
 
-inline QUrl MemberEventContent::avatarUrl() const
+inline QUrl
+MemberEventContent::avatarUrl() const
 {
 	return avatar_url_;
 }
 
-inline QString MemberEventContent::displayName() const
+inline QString
+MemberEventContent::displayName() const
 {
 	return display_name_;
 }
 
-inline Membership MemberEventContent::membershipState() const
+inline Membership
+MemberEventContent::membershipState() const
 {
 	return membership_state_;
 }
-}  // namespace events
-}  // namespace matrix
+} // namespace events
+} // namespace matrix
diff --git a/include/events/MessageEvent.h b/include/events/MessageEvent.h
index d1fb1b4a..24e236e3 100644
--- a/include/events/MessageEvent.h
+++ b/include/events/MessageEvent.h
@@ -24,7 +24,7 @@ namespace matrix
 {
 namespace events
 {
-template <class MsgContent>
+template<class MsgContent>
 class MessageEvent : public RoomEvent<MessageEventContent>
 {
 public:
@@ -36,14 +36,16 @@ private:
 	MsgContent msg_content_;
 };
 
-template <class MsgContent>
-inline MsgContent MessageEvent<MsgContent>::msgContent() const
+template<class MsgContent>
+inline MsgContent
+MessageEvent<MsgContent>::msgContent() const
 {
 	return msg_content_;
 }
 
-template <class MsgContent>
-void MessageEvent<MsgContent>::deserialize(const QJsonValue &data)
+template<class MsgContent>
+void
+MessageEvent<MsgContent>::deserialize(const QJsonValue &data)
 {
 	RoomEvent<MessageEventContent>::deserialize(data);
 
@@ -59,6 +61,6 @@ struct ThumbnailInfo {
 
 	QString mimetype;
 };
-}  // namespace messages
-}  // namespace events
-}  // namespace matrix
+} // namespace messages
+} // namespace events
+} // namespace matrix
diff --git a/include/events/MessageEventContent.h b/include/events/MessageEventContent.h
index 3bfd11c2..9f20809d 100644
--- a/include/events/MessageEventContent.h
+++ b/include/events/MessageEventContent.h
@@ -54,9 +54,12 @@ enum class MessageEventType {
 	Unknown,
 };
 
-MessageEventType extractMessageEventType(const QJsonObject &data);
+MessageEventType
+extractMessageEventType(const QJsonObject &data);
 
-class MessageEventContent : public Deserializable, public Serializable
+class MessageEventContent
+  : public Deserializable
+  , public Serializable
 {
 public:
 	void deserialize(const QJsonValue &data) override;
@@ -68,9 +71,10 @@ private:
 	QString body_;
 };
 
-inline QString MessageEventContent::body() const
+inline QString
+MessageEventContent::body() const
 {
 	return body_;
 }
-}  // namespace events
-}  // namespace matrix
+} // namespace events
+} // namespace matrix
diff --git a/include/events/NameEventContent.h b/include/events/NameEventContent.h
index ab90fd23..e290a696 100644
--- a/include/events/NameEventContent.h
+++ b/include/events/NameEventContent.h
@@ -29,7 +29,9 @@ namespace events
  * A human-friendly room name designed to be displayed to the end-user.
  */
 
-class NameEventContent : public Deserializable, public Serializable
+class NameEventContent
+  : public Deserializable
+  , public Serializable
 {
 public:
 	void deserialize(const QJsonValue &data) override;
@@ -41,9 +43,10 @@ private:
 	QString name_;
 };
 
-inline QString NameEventContent::name() const
+inline QString
+NameEventContent::name() const
 {
 	return name_;
 }
-}  // namespace events
-}  // namespace matrix
+} // namespace events
+} // namespace matrix
diff --git a/include/events/PowerLevelsEventContent.h b/include/events/PowerLevelsEventContent.h
index 7def9800..3a9d80d1 100644
--- a/include/events/PowerLevelsEventContent.h
+++ b/include/events/PowerLevelsEventContent.h
@@ -36,7 +36,9 @@ enum class PowerLevels {
  * Defines the power levels (privileges) of users in the room.
  */
 
-class PowerLevelsEventContent : public Deserializable, public Serializable
+class PowerLevelsEventContent
+  : public Deserializable
+  , public Serializable
 {
 public:
 	void deserialize(const QJsonValue &data) override;
@@ -68,39 +70,46 @@ private:
 	QMap<QString, int> users_;
 };
 
-inline int PowerLevelsEventContent::banLevel() const
+inline int
+PowerLevelsEventContent::banLevel() const
 {
 	return ban_;
 }
 
-inline int PowerLevelsEventContent::inviteLevel() const
+inline int
+PowerLevelsEventContent::inviteLevel() const
 {
 	return invite_;
 }
 
-inline int PowerLevelsEventContent::kickLevel() const
+inline int
+PowerLevelsEventContent::kickLevel() const
 {
 	return kick_;
 }
 
-inline int PowerLevelsEventContent::redactLevel() const
+inline int
+PowerLevelsEventContent::redactLevel() const
 {
 	return redact_;
 }
 
-inline int PowerLevelsEventContent::eventsDefaultLevel() const
+inline int
+PowerLevelsEventContent::eventsDefaultLevel() const
 {
 	return events_default_;
 }
 
-inline int PowerLevelsEventContent::stateDefaultLevel() const
+inline int
+PowerLevelsEventContent::stateDefaultLevel() const
 {
 	return state_default_;
 }
 
-inline int PowerLevelsEventContent::usersDefaultLevel() const
+inline int
+PowerLevelsEventContent::usersDefaultLevel() const
 {
 	return users_default_;
 }
-}  // namespace events
-}  // namespace matrix
+} // namespace events
+} // namespace matrix
diff --git a/include/events/RoomEvent.h b/include/events/RoomEvent.h
index 79fc4be2..b4bc78fe 100644
--- a/include/events/RoomEvent.h
+++ b/include/events/RoomEvent.h
@@ -26,7 +26,7 @@ namespace matrix
 {
 namespace events
 {
-template <class Content>
+template<class Content>
 class RoomEvent : public Event<Content>
 {
 public:
@@ -46,32 +46,37 @@ private:
 	uint64_t origin_server_ts_;
 };
 
-template <class Content>
-inline QString RoomEvent<Content>::eventId() const
+template<class Content>
+inline QString
+RoomEvent<Content>::eventId() const
 {
 	return event_id_;
 }
 
-template <class Content>
-inline QString RoomEvent<Content>::roomId() const
+template<class Content>
+inline QString
+RoomEvent<Content>::roomId() const
 {
 	return room_id_;
 }
 
-template <class Content>
-inline QString RoomEvent<Content>::sender() const
+template<class Content>
+inline QString
+RoomEvent<Content>::sender() const
 {
 	return sender_;
 }
 
-template <class Content>
-inline uint64_t RoomEvent<Content>::timestamp() const
+template<class Content>
+inline uint64_t
+RoomEvent<Content>::timestamp() const
 {
 	return origin_server_ts_;
 }
 
-template <class Content>
-void RoomEvent<Content>::deserialize(const QJsonValue &data)
+template<class Content>
+void
+RoomEvent<Content>::deserialize(const QJsonValue &data)
 {
 	Event<Content>::deserialize(data);
 
@@ -96,8 +101,9 @@ void RoomEvent<Content>::deserialize(const QJsonValue &data)
 	origin_server_ts_ = object.value("origin_server_ts").toDouble();
 }
 
-template <class Content>
-QJsonObject RoomEvent<Content>::serialize() const
+template<class Content>
+QJsonObject
+RoomEvent<Content>::serialize() const
 {
 	QJsonObject object = Event<Content>::serialize();
 
@@ -108,5 +114,5 @@ QJsonObject RoomEvent<Content>::serialize() const
 
 	return object;
 }
-}  // namespace events
-}  // namespace matrix
+} // namespace events
+} // namespace matrix
diff --git a/include/events/StateEvent.h b/include/events/StateEvent.h
index 26313048..e5cd4c10 100644
--- a/include/events/StateEvent.h
+++ b/include/events/StateEvent.h
@@ -25,7 +25,7 @@ namespace matrix
 {
 namespace events
 {
-template <class Content>
+template<class Content>
 class StateEvent : public RoomEvent<Content>
 {
 public:
@@ -40,20 +40,23 @@ private:
 	Content prev_content_;
 };
 
-template <class Content>
-inline QString StateEvent<Content>::stateKey() const
+template<class Content>
+inline QString
+StateEvent<Content>::stateKey() const
 {
 	return state_key_;
 }
 
-template <class Content>
-inline Content StateEvent<Content>::previousContent() const
+template<class Content>
+inline Content
+StateEvent<Content>::previousContent() const
 {
 	return prev_content_;
 }
 
-template <class Content>
-void StateEvent<Content>::deserialize(const QJsonValue &data)
+template<class Content>
+void
+StateEvent<Content>::deserialize(const QJsonValue &data)
 {
 	RoomEvent<Content>::deserialize(data);
 
@@ -68,8 +71,9 @@ void StateEvent<Content>::deserialize(const QJsonValue &data)
 		prev_content_.deserialize(object.value("prev_content"));
 }
 
-template <class Content>
-QJsonObject StateEvent<Content>::serialize() const
+template<class Content>
+QJsonObject
+StateEvent<Content>::serialize() const
 {
 	QJsonObject object = RoomEvent<Content>::serialize();
 
@@ -82,5 +86,5 @@ QJsonObject StateEvent<Content>::serialize() const
 
 	return object;
 }
-}  // namespace events
-}  // namespace matrix
+} // namespace events
+} // namespace matrix
diff --git a/include/events/TopicEventContent.h b/include/events/TopicEventContent.h
index ff2fe3bb..e8f3d7a4 100644
--- a/include/events/TopicEventContent.h
+++ b/include/events/TopicEventContent.h
@@ -29,7 +29,9 @@ namespace events
  * A topic is a short message detailing what is currently being discussed in the room.
  */
 
-class TopicEventContent : public Deserializable, public Serializable
+class TopicEventContent
+  : public Deserializable
+  , public Serializable
 {
 public:
 	void deserialize(const QJsonValue &data) override;
@@ -41,9 +43,10 @@ private:
 	QString topic_;
 };
 
-inline QString TopicEventContent::topic() const
+inline QString
+TopicEventContent::topic() const
 {
 	return topic_;
 }
-}  // namespace events
-}  // namespace matrix
+} // namespace events
+} // namespace matrix
diff --git a/include/events/messages/Audio.h b/include/events/messages/Audio.h
index 3eeb5fc4..1f289dbb 100644
--- a/include/events/messages/Audio.h
+++ b/include/events/messages/Audio.h
@@ -47,16 +47,18 @@ private:
 	AudioInfo info_;
 };
 
-inline QString Audio::url() const
+inline QString
+Audio::url() const
 {
 	return url_;
 }
 
-inline AudioInfo Audio::info() const
+inline AudioInfo
+Audio::info() const
 {
 	return info_;
 }
 
-}  // namespace messages
-}  // namespace events
-}  // namespace matrix
+} // namespace messages
+} // namespace events
+} // namespace matrix
diff --git a/include/events/messages/Emote.h b/include/events/messages/Emote.h
index 28118b1a..b3af8a5f 100644
--- a/include/events/messages/Emote.h
+++ b/include/events/messages/Emote.h
@@ -32,6 +32,6 @@ class Emote : public Deserializable
 public:
 	void deserialize(const QJsonObject &obj) override;
 };
-}  // namespace messages
-}  // namespace events
-}  // namespace matrix
+} // namespace messages
+} // namespace events
+} // namespace matrix
diff --git a/include/events/messages/File.h b/include/events/messages/File.h
index 59e0ec15..22cad8be 100644
--- a/include/events/messages/File.h
+++ b/include/events/messages/File.h
@@ -53,21 +53,24 @@ private:
 	FileInfo info_;
 };
 
-inline QString File::filename() const
+inline QString
+File::filename() const
 {
 	return filename_;
 }
 
-inline QString File::url() const
+inline QString
+File::url() const
 {
 	return url_;
 }
 
-inline FileInfo File::info() const
+inline FileInfo
+File::info() const
 {
 	return info_;
 }
 
-}  // namespace messages
-}  // namespace events
-}  // namespace matrix
+} // namespace messages
+} // namespace events
+} // namespace matrix
diff --git a/include/events/messages/Image.h b/include/events/messages/Image.h
index d73aa5c8..79360050 100644
--- a/include/events/messages/Image.h
+++ b/include/events/messages/Image.h
@@ -51,16 +51,18 @@ private:
 	ImageInfo info_;
 };
 
-inline QString Image::url() const
+inline QString
+Image::url() const
 {
 	return url_;
 }
 
-inline ImageInfo Image::info() const
+inline ImageInfo
+Image::info() const
 {
 	return info_;
 }
 
-}  // namespace messages
-}  // namespace events
-}  // namespace matrix
+} // namespace messages
+} // namespace events
+} // namespace matrix
diff --git a/include/events/messages/Location.h b/include/events/messages/Location.h
index c245112b..864c5111 100644
--- a/include/events/messages/Location.h
+++ b/include/events/messages/Location.h
@@ -47,16 +47,18 @@ private:
 	LocationInfo info_;
 };
 
-inline QString Location::geoUri() const
+inline QString
+Location::geoUri() const
 {
 	return geo_uri_;
 }
 
-inline LocationInfo Location::info() const
+inline LocationInfo
+Location::info() const
 {
 	return info_;
 }
 
-}  // namespace messages
-}  // namespace events
-}  // namespace matrix
+} // namespace messages
+} // namespace events
+} // namespace matrix
diff --git a/include/events/messages/Notice.h b/include/events/messages/Notice.h
index 4ea9b11f..0b2a92e3 100644
--- a/include/events/messages/Notice.h
+++ b/include/events/messages/Notice.h
@@ -32,6 +32,6 @@ class Notice : public Deserializable
 public:
 	void deserialize(const QJsonObject &obj) override;
 };
-}  // namespace messages
-}  // namespace events
-}  // namespace matrix
+} // namespace messages
+} // namespace events
+} // namespace matrix
diff --git a/include/events/messages/Text.h b/include/events/messages/Text.h
index e98a4c1b..8950e994 100644
--- a/include/events/messages/Text.h
+++ b/include/events/messages/Text.h
@@ -32,6 +32,6 @@ class Text : public Deserializable
 public:
 	void deserialize(const QJsonObject &obj) override;
 };
-}  // namespace messages
-}  // namespace events
-}  // namespace matrix
+} // namespace messages
+} // namespace events
+} // namespace matrix
diff --git a/include/events/messages/Video.h b/include/events/messages/Video.h
index 3a373928..2b160bea 100644
--- a/include/events/messages/Video.h
+++ b/include/events/messages/Video.h
@@ -52,16 +52,18 @@ private:
 	VideoInfo info_;
 };
 
-inline QString Video::url() const
+inline QString
+Video::url() const
 {
 	return url_;
 }
 
-inline VideoInfo Video::info() const
+inline VideoInfo
+Video::info() const
 {
 	return info_;
 }
 
-}  // namespace messages
-}  // namespace events
-}  // namespace matrix
+} // namespace messages
+} // namespace events
+} // namespace matrix
diff --git a/include/ui/CircularProgress.h b/include/ui/CircularProgress.h
index 6a785ca2..5ed8994d 100644
--- a/include/ui/CircularProgress.h
+++ b/include/ui/CircularProgress.h
@@ -80,35 +80,41 @@ private:
 	int angle_;
 };
 
-inline void CircularProgressDelegate::setDashOffset(qreal offset)
+inline void
+CircularProgressDelegate::setDashOffset(qreal offset)
 {
 	dash_offset_ = offset;
 	progress_->update();
 }
 
-inline void CircularProgressDelegate::setDashLength(qreal length)
+inline void
+CircularProgressDelegate::setDashLength(qreal length)
 {
 	dash_length_ = length;
 	progress_->update();
 }
 
-inline void CircularProgressDelegate::setAngle(int angle)
+inline void
+CircularProgressDelegate::setAngle(int angle)
 {
 	angle_ = angle;
 	progress_->update();
 }
 
-inline qreal CircularProgressDelegate::dashOffset() const
+inline qreal
+CircularProgressDelegate::dashOffset() const
 {
 	return dash_offset_;
 }
 
-inline qreal CircularProgressDelegate::dashLength() const
+inline qreal
+CircularProgressDelegate::dashLength() const
 {
 	return dash_length_;
 }
 
-inline int CircularProgressDelegate::angle() const
+inline int
+CircularProgressDelegate::angle() const
 {
 	return angle_;
 }
diff --git a/include/ui/DropShadow.h b/include/ui/DropShadow.h
index 19d61c8d..3054d7dd 100644
--- a/include/ui/DropShadow.h
+++ b/include/ui/DropShadow.h
@@ -30,7 +30,8 @@ public:
 		gradient.setStart(right0);
 		gradient.setFinalStop(right1);
 		painter.setBrush(QBrush(gradient));
-		painter.drawRoundRect(QRectF(QPointF(width - margin * radius, margin), QPointF(width, height - margin)), 0.0, 0.0);
+		painter.drawRoundRect(
+			QRectF(QPointF(width - margin * radius, margin), QPointF(width, height - margin)), 0.0, 0.0);
 
 		// Left
 		QPointF left0(margin, height / 2);
@@ -54,7 +55,8 @@ public:
 		gradient.setStart(bottom0);
 		gradient.setFinalStop(bottom1);
 		painter.setBrush(QBrush(gradient));
-		painter.drawRoundRect(QRectF(QPointF(margin, height - margin), QPointF(width - margin, height)), 0.0, 0.0);
+		painter.drawRoundRect(
+			QRectF(QPointF(margin, height - margin), QPointF(width - margin, height)), 0.0, 0.0);
 
 		// BottomRight
 		QPointF bottomright0(width - margin, height - margin);
@@ -95,6 +97,7 @@ public:
 		// Widget
 		painter.setBrush(QBrush("#FFFFFF"));
 		painter.setRenderHint(QPainter::Antialiasing);
-		painter.drawRoundRect(QRectF(QPointF(margin, margin), QPointF(width - margin, height - margin)), radius, radius);
+		painter.drawRoundRect(
+			QRectF(QPointF(margin, margin), QPointF(width - margin, height - margin)), radius, radius);
 	}
 };
diff --git a/include/ui/FlatButton.h b/include/ui/FlatButton.h
index 5efdb838..1c44d5d7 100644
--- a/include/ui/FlatButton.h
+++ b/include/ui/FlatButton.h
@@ -63,12 +63,14 @@ private:
 	bool was_checked_;
 };
 
-inline qreal FlatButtonStateMachine::overlayOpacity() const
+inline qreal
+FlatButtonStateMachine::overlayOpacity() const
 {
 	return overlay_opacity_;
 }
 
-inline qreal FlatButtonStateMachine::checkedOverlayProgress() const
+inline qreal
+FlatButtonStateMachine::checkedOverlayProgress() const
 {
 	return checked_overlay_progress_;
 }
@@ -86,8 +88,13 @@ class FlatButton : public QPushButton
 
 public:
 	explicit FlatButton(QWidget *parent = 0, ui::ButtonPreset preset = ui::ButtonPreset::FlatPreset);
-	explicit FlatButton(const QString &text, QWidget *parent = 0, ui::ButtonPreset preset = ui::ButtonPreset::FlatPreset);
-	FlatButton(const QString &text, ui::Role role, QWidget *parent = 0, ui::ButtonPreset preset = ui::ButtonPreset::FlatPreset);
+	explicit FlatButton(const QString &text,
+			    QWidget *parent = 0,
+			    ui::ButtonPreset preset = ui::ButtonPreset::FlatPreset);
+	FlatButton(const QString &text,
+		   ui::Role role,
+		   QWidget *parent = 0,
+		   ui::ButtonPreset preset = ui::ButtonPreset::FlatPreset);
 	~FlatButton();
 
 	void applyPreset(ui::ButtonPreset preset);
diff --git a/include/ui/Menu.h b/include/ui/Menu.h
index 7794b2d2..0b4eb6d5 100644
--- a/include/ui/Menu.h
+++ b/include/ui/Menu.h
@@ -8,16 +8,16 @@ class Menu : public QMenu
 {
 public:
 	Menu(QWidget *parent = nullptr)
-	    : QMenu(parent)
+	  : QMenu(parent)
 	{
 		QFont font;
 		font.setPixelSize(conf::fontSize);
 
 		setFont(font);
-		setStyleSheet(
-			"QMenu { color: black; background-color: white; margin: 0px;}"
-			"QMenu::item { color: black; padding: 7px 20px; border: 1px solid transparent; margin: 2px 0px; }"
-			"QMenu::item:selected { color: black; background: rgba(180, 180, 180, 100); }");
+		setStyleSheet("QMenu { color: black; background-color: white; margin: 0px;}"
+			      "QMenu::item { color: black; padding: 7px 20px; border: 1px solid transparent; margin: "
+			      "2px 0px; }"
+			      "QMenu::item:selected { color: black; background: rgba(180, 180, 180, 100); }");
 	};
 
 protected:
diff --git a/include/ui/OverlayModal.h b/include/ui/OverlayModal.h
index d6efd29e..4dea6513 100644
--- a/include/ui/OverlayModal.h
+++ b/include/ui/OverlayModal.h
@@ -46,13 +46,15 @@ private:
 	QPropertyAnimation *animation_;
 };
 
-inline void OverlayModal::setDuration(int duration)
+inline void
+OverlayModal::setDuration(int duration)
 {
 	duration_ = duration;
 	animation_->setDuration(duration_);
 }
 
-inline void OverlayModal::setColor(QColor color)
+inline void
+OverlayModal::setColor(QColor color)
 {
 	color_ = color;
 }
diff --git a/include/ui/Ripple.h b/include/ui/Ripple.h
index e04e7173..01e30698 100644
--- a/include/ui/Ripple.h
+++ b/include/ui/Ripple.h
@@ -66,67 +66,80 @@ private:
 	QBrush brush_;
 };
 
-inline void Ripple::setOverlay(RippleOverlay *overlay)
+inline void
+Ripple::setOverlay(RippleOverlay *overlay)
 {
 	overlay_ = overlay;
 }
 
-inline qreal Ripple::radius() const
+inline qreal
+Ripple::radius() const
 {
 	return radius_;
 }
 
-inline qreal Ripple::opacity() const
+inline qreal
+Ripple::opacity() const
 {
 	return opacity_;
 }
 
-inline QColor Ripple::color() const
+inline QColor
+Ripple::color() const
 {
 	return brush_.color();
 }
 
-inline QBrush Ripple::brush() const
+inline QBrush
+Ripple::brush() const
 {
 	return brush_;
 }
 
-inline QPoint Ripple::center() const
+inline QPoint
+Ripple::center() const
 {
 	return center_;
 }
 
-inline QPropertyAnimation *Ripple::radiusAnimation() const
+inline QPropertyAnimation *
+Ripple::radiusAnimation() const
 {
 	return radius_anim_;
 }
 
-inline QPropertyAnimation *Ripple::opacityAnimation() const
+inline QPropertyAnimation *
+Ripple::opacityAnimation() const
 {
 	return opacity_anim_;
 }
 
-inline void Ripple::setOpacityStartValue(qreal value)
+inline void
+Ripple::setOpacityStartValue(qreal value)
 {
 	opacity_anim_->setStartValue(value);
 }
 
-inline void Ripple::setOpacityEndValue(qreal value)
+inline void
+Ripple::setOpacityEndValue(qreal value)
 {
 	opacity_anim_->setEndValue(value);
 }
 
-inline void Ripple::setRadiusStartValue(qreal value)
+inline void
+Ripple::setRadiusStartValue(qreal value)
 {
 	radius_anim_->setStartValue(value);
 }
 
-inline void Ripple::setRadiusEndValue(qreal value)
+inline void
+Ripple::setRadiusEndValue(qreal value)
 {
 	radius_anim_->setEndValue(value);
 }
 
-inline void Ripple::setDuration(int msecs)
+inline void
+Ripple::setDuration(int msecs)
 {
 	radius_anim_->setDuration(msecs);
 	opacity_anim_->setDuration(msecs);
diff --git a/include/ui/RippleOverlay.h b/include/ui/RippleOverlay.h
index b3fb9a4c..cc6fd05e 100644
--- a/include/ui/RippleOverlay.h
+++ b/include/ui/RippleOverlay.h
@@ -37,18 +37,21 @@ private:
 	bool use_clip_;
 };
 
-inline void RippleOverlay::setClipping(bool enable)
+inline void
+RippleOverlay::setClipping(bool enable)
 {
 	use_clip_ = enable;
 	update();
 }
 
-inline bool RippleOverlay::hasClipping() const
+inline bool
+RippleOverlay::hasClipping() const
 {
 	return use_clip_;
 }
 
-inline void RippleOverlay::setClipPath(const QPainterPath &path)
+inline void
+RippleOverlay::setClipPath(const QPainterPath &path)
 {
 	clip_path_ = path;
 	update();
diff --git a/include/ui/TextField.h b/include/ui/TextField.h
index 11319f24..ec761483 100644
--- a/include/ui/TextField.h
+++ b/include/ui/TextField.h
@@ -92,34 +92,40 @@ private:
 	qreal y_;
 };
 
-inline void TextFieldLabel::setColor(const QColor &color)
+inline void
+TextFieldLabel::setColor(const QColor &color)
 {
 	color_ = color;
 	update();
 }
 
-inline void TextFieldLabel::setOffset(const QPointF &pos)
+inline void
+TextFieldLabel::setOffset(const QPointF &pos)
 {
 	x_ = pos.x();
 	y_ = pos.y();
 	update();
 }
 
-inline void TextFieldLabel::setScale(qreal scale)
+inline void
+TextFieldLabel::setScale(qreal scale)
 {
 	scale_ = scale;
 	update();
 }
 
-inline QPointF TextFieldLabel::offset() const
+inline QPointF
+TextFieldLabel::offset() const
 {
 	return QPointF(x_, y_);
 }
-inline qreal TextFieldLabel::scale() const
+inline qreal
+TextFieldLabel::scale() const
 {
 	return scale_;
 }
-inline QColor TextFieldLabel::color() const
+inline QColor
+TextFieldLabel::color() const
 {
 	return color_;
 }
@@ -155,13 +161,15 @@ private:
 	qreal progress_;
 };
 
-inline void TextFieldStateMachine::setProgress(qreal progress)
+inline void
+TextFieldStateMachine::setProgress(qreal progress)
 {
 	progress_ = progress;
 	text_field_->update();
 }
 
-inline qreal TextFieldStateMachine::progress() const
+inline qreal
+TextFieldStateMachine::progress() const
 {
 	return progress_;
 }
diff --git a/include/ui/Theme.h b/include/ui/Theme.h
index e63d8fc5..9806686c 100644
--- a/include/ui/Theme.h
+++ b/include/ui/Theme.h
@@ -6,11 +6,7 @@
 
 namespace ui
 {
-enum class AvatarType {
-	Icon,
-	Image,
-	Letter
-};
+enum class AvatarType { Icon, Image, Letter };
 
 namespace sidebar
 {
@@ -23,38 +19,17 @@ const int FontSize = 16;
 // Default avatar size. Width and height.
 const int AvatarSize = 40;
 
-enum class ButtonPreset {
-	FlatPreset,
-	CheckablePreset
-};
+enum class ButtonPreset { FlatPreset, CheckablePreset };
 
-enum class RippleStyle {
-	CenteredRipple,
-	PositionedRipple,
-	NoRipple
-};
+enum class RippleStyle { CenteredRipple, PositionedRipple, NoRipple };
 
-enum class OverlayStyle {
-	NoOverlay,
-	TintedOverlay,
-	GrayOverlay
-};
+enum class OverlayStyle { NoOverlay, TintedOverlay, GrayOverlay };
 
-enum class Role {
-	Default,
-	Primary,
-	Secondary
-};
+enum class Role { Default, Primary, Secondary };
 
-enum class ButtonIconPlacement {
-	LeftIcon,
-	RightIcon
-};
+enum class ButtonIconPlacement { LeftIcon, RightIcon };
 
-enum class ProgressType {
-	DeterminateProgress,
-	IndeterminateProgress
-};
+enum class ProgressType { DeterminateProgress, IndeterminateProgress };
 
 enum class Color {
 	Black,
@@ -70,7 +45,7 @@ enum class Color {
 	Transparent
 };
 
-}  // namespace ui
+} // namespace ui
 
 class Theme : public QObject
 {
diff --git a/include/ui/ThemeManager.h b/include/ui/ThemeManager.h
index 98ed8193..a6947bc9 100644
--- a/include/ui/ThemeManager.h
+++ b/include/ui/ThemeManager.h
@@ -23,7 +23,8 @@ private:
 	Theme *theme_;
 };
 
-inline ThemeManager &ThemeManager::instance()
+inline ThemeManager &
+ThemeManager::instance()
 {
 	static ThemeManager instance;
 	return instance;
diff --git a/src/AvatarProvider.cc b/src/AvatarProvider.cc
index 7481b781..bf84295f 100644
--- a/src/AvatarProvider.cc
+++ b/src/AvatarProvider.cc
@@ -23,14 +23,16 @@ QMap<QString, QImage> AvatarProvider::userAvatars_;
 QMap<QString, QUrl> AvatarProvider::avatarUrls_;
 QMap<QString, QList<TimelineItem *>> AvatarProvider::toBeResolved_;
 
-void AvatarProvider::init(QSharedPointer<MatrixClient> client)
+void
+AvatarProvider::init(QSharedPointer<MatrixClient> client)
 {
 	client_ = client;
 
 	connect(client_.data(), &MatrixClient::userAvatarRetrieved, &AvatarProvider::updateAvatar);
 }
 
-void AvatarProvider::updateAvatar(const QString &uid, const QImage &img)
+void
+AvatarProvider::updateAvatar(const QString &uid, const QImage &img)
 {
 	if (toBeResolved_.contains(uid)) {
 		auto items = toBeResolved_[uid];
@@ -45,7 +47,8 @@ void AvatarProvider::updateAvatar(const QString &uid, const QImage &img)
 	userAvatars_.insert(uid, img);
 }
 
-void AvatarProvider::resolve(const QString &userId, TimelineItem *item)
+void
+AvatarProvider::resolve(const QString &userId, TimelineItem *item)
 {
 	if (userAvatars_.contains(userId)) {
 		auto img = userAvatars_[userId];
@@ -70,12 +73,14 @@ void AvatarProvider::resolve(const QString &userId, TimelineItem *item)
 	}
 }
 
-void AvatarProvider::setAvatarUrl(const QString &userId, const QUrl &url)
+void
+AvatarProvider::setAvatarUrl(const QString &userId, const QUrl &url)
 {
 	avatarUrls_.insert(userId, url);
 }
 
-void AvatarProvider::clear()
+void
+AvatarProvider::clear()
 {
 	userAvatars_.clear();
 	avatarUrls_.clear();
diff --git a/src/Cache.cc b/src/Cache.cc
index 0a6ab3fc..a9699276 100644
--- a/src/Cache.cc
+++ b/src/Cache.cc
@@ -31,11 +31,11 @@ static const lmdb::val NEXT_BATCH_KEY("next_batch");
 static const lmdb::val transactionID("transaction_id");
 
 Cache::Cache(const QString &userId)
-    : env_{nullptr}
-    , stateDb_{0}
-    , roomDb_{0}
-    , isMounted_{false}
-    , userId_{userId}
+  : env_{ nullptr }
+  , stateDb_{ 0 }
+  , roomDb_{ 0 }
+  , isMounted_{ false }
+  , userId_{ userId }
 {
 	auto statePath = QString("%1/%2/state")
 				 .arg(QStandardPaths::writableLocation(QStandardPaths::CacheLocation))
@@ -51,7 +51,8 @@ Cache::Cache(const QString &userId)
 		qDebug() << "[cache] First time initializing LMDB";
 
 		if (!QDir().mkpath(statePath)) {
-			throw std::runtime_error(("Unable to create state directory:" + statePath).toStdString().c_str());
+			throw std::runtime_error(
+				("Unable to create state directory:" + statePath).toStdString().c_str());
 		}
 	}
 
@@ -83,7 +84,8 @@ Cache::Cache(const QString &userId)
 	isMounted_ = true;
 }
 
-void Cache::insertRoomState(const QString &roomid, const RoomState &state)
+void
+Cache::insertRoomState(const QString &roomid, const RoomState &state)
 {
 	if (!isMounted_)
 		return;
@@ -93,11 +95,7 @@ void Cache::insertRoomState(const QString &roomid, const RoomState &state)
 	auto stateEvents = QJsonDocument(state.serialize()).toBinaryData();
 	auto id = roomid.toUtf8();
 
-	lmdb::dbi_put(
-		txn,
-		roomDb_,
-		lmdb::val(id.data(), id.size()),
-		lmdb::val(stateEvents.data(), stateEvents.size()));
+	lmdb::dbi_put(txn, roomDb_, lmdb::val(id.data(), id.size()), lmdb::val(stateEvents.data(), stateEvents.size()));
 
 	for (const auto &membership : state.memberships) {
 		lmdb::dbi membersDb = lmdb::dbi::open(txn, roomid.toStdString().c_str(), MDB_CREATE);
@@ -111,21 +109,19 @@ void Cache::insertRoomState(const QString &roomid, const RoomState &state)
 		// We add or update (e.g invite -> join) a new user to the membership list.
 		case events::Membership::Invite:
 		case events::Membership::Join: {
-			lmdb::dbi_put(
-				txn,
-				membersDb,
-				lmdb::val(key.data(), key.size()),
-				lmdb::val(memberEvent.data(), memberEvent.size()));
+			lmdb::dbi_put(txn,
+				      membersDb,
+				      lmdb::val(key.data(), key.size()),
+				      lmdb::val(memberEvent.data(), memberEvent.size()));
 			break;
 		}
 		// We remove the user from the membership list.
 		case events::Membership::Leave:
 		case events::Membership::Ban: {
-			lmdb::dbi_del(
-				txn,
-				membersDb,
-				lmdb::val(key.data(), key.size()),
-				lmdb::val(memberEvent.data(), memberEvent.size()));
+			lmdb::dbi_del(txn,
+				      membersDb,
+				      lmdb::val(key.data(), key.size()),
+				      lmdb::val(memberEvent.data(), memberEvent.size()));
 			break;
 		}
 		case events::Membership::Knock: {
@@ -138,7 +134,8 @@ void Cache::insertRoomState(const QString &roomid, const RoomState &state)
 	txn.commit();
 }
 
-QMap<QString, RoomState> Cache::states()
+QMap<QString, RoomState>
+Cache::states()
 {
 	QMap<QString, RoomState> states;
 
@@ -166,7 +163,8 @@ QMap<QString, RoomState> Cache::states()
 
 		while (memberCursor.get(memberId, memberContent, MDB_NEXT)) {
 			auto userid = QString::fromUtf8(memberId.data(), memberId.size());
-			auto data = QJsonDocument::fromBinaryData(QByteArray(memberContent.data(), memberContent.size()));
+			auto data =
+				QJsonDocument::fromBinaryData(QByteArray(memberContent.data(), memberContent.size()));
 
 			try {
 				events::StateEvent<events::MemberEventContent> member;
@@ -194,7 +192,8 @@ QMap<QString, RoomState> Cache::states()
 	return states;
 }
 
-void Cache::setNextBatchToken(const QString &token)
+void
+Cache::setNextBatchToken(const QString &token)
 {
 	auto txn = lmdb::txn::begin(env_);
 	auto value = token.toUtf8();
@@ -204,7 +203,8 @@ void Cache::setNextBatchToken(const QString &token)
 	txn.commit();
 }
 
-bool Cache::isInitialized()
+bool
+Cache::isInitialized()
 {
 	auto txn = lmdb::txn::begin(env_, nullptr, MDB_RDONLY);
 	lmdb::val token;
@@ -216,7 +216,8 @@ bool Cache::isInitialized()
 	return res;
 }
 
-QString Cache::nextBatchToken()
+QString
+Cache::nextBatchToken()
 {
 	auto txn = lmdb::txn::begin(env_, nullptr, MDB_RDONLY);
 	lmdb::val token;
diff --git a/src/ChatPage.cc b/src/ChatPage.cc
index 55933d25..1ebbcf91 100644
--- a/src/ChatPage.cc
+++ b/src/ChatPage.cc
@@ -43,9 +43,9 @@
 namespace events = matrix::events;
 
 ChatPage::ChatPage(QSharedPointer<MatrixClient> client, QWidget *parent)
-    : QWidget(parent)
-    , sync_interval_(2000)
-    , client_(client)
+  : QWidget(parent)
+  , sync_interval_(2000)
+  , client_(client)
 {
 	setStyleSheet("background-color: #f8fbfe;");
 
@@ -168,23 +168,18 @@ ChatPage::ChatPage(QSharedPointer<MatrixClient> client, QWidget *parent)
 		SIGNAL(syncCompleted(const SyncResponse &)),
 		this,
 		SLOT(syncCompleted(const SyncResponse &)));
-	connect(client_.data(),
-		SIGNAL(syncFailed(const QString &)),
-		this,
-		SLOT(syncFailed(const QString &)));
+	connect(client_.data(), SIGNAL(syncFailed(const QString &)), this, SLOT(syncFailed(const QString &)));
 	connect(client_.data(),
 		SIGNAL(getOwnProfileResponse(const QUrl &, const QString &)),
 		this,
 		SLOT(updateOwnProfileInfo(const QUrl &, const QString &)));
-	connect(client_.data(),
-		SIGNAL(ownAvatarRetrieved(const QPixmap &)),
-		this,
-		SLOT(setOwnAvatar(const QPixmap &)));
+	connect(client_.data(), SIGNAL(ownAvatarRetrieved(const QPixmap &)), this, SLOT(setOwnAvatar(const QPixmap &)));
 
 	AvatarProvider::init(client);
 }
 
-void ChatPage::logout()
+void
+ChatPage::logout()
 {
 	sync_timer_->stop();
 
@@ -217,7 +212,8 @@ void ChatPage::logout()
 	emit close();
 }
 
-void ChatPage::bootstrap(QString userid, QString homeserver, QString token)
+void
+ChatPage::bootstrap(QString userid, QString homeserver, QString token)
 {
 	client_->setServer(homeserver);
 	client_->setAccessToken(token);
@@ -235,24 +231,28 @@ void ChatPage::bootstrap(QString userid, QString homeserver, QString token)
 		client_->initialSync();
 }
 
-void ChatPage::startSync()
+void
+ChatPage::startSync()
 {
 	client_->sync();
 }
 
-void ChatPage::setOwnAvatar(const QPixmap &img)
+void
+ChatPage::setOwnAvatar(const QPixmap &img)
 {
 	user_info_widget_->setAvatar(img.toImage());
 }
 
-void ChatPage::syncFailed(const QString &msg)
+void
+ChatPage::syncFailed(const QString &msg)
 {
 	qWarning() << "Sync error:" << msg;
 	sync_timer_->start(sync_interval_ * 5);
 }
 
 // TODO: Should be moved in another class that manages this global list.
-void ChatPage::updateDisplayNames(const RoomState &state)
+void
+ChatPage::updateDisplayNames(const RoomState &state)
 {
 	for (const auto member : state.memberships) {
 		auto displayName = member.content().displayName();
@@ -262,7 +262,8 @@ void ChatPage::updateDisplayNames(const RoomState &state)
 	}
 }
 
-void ChatPage::syncCompleted(const SyncResponse &response)
+void
+ChatPage::syncCompleted(const SyncResponse &response)
 {
 	// TODO: Catch exception
 	cache_->setNextBatchToken(response.nextBatch());
@@ -309,7 +310,8 @@ void ChatPage::syncCompleted(const SyncResponse &response)
 	sync_timer_->start(sync_interval_);
 }
 
-void ChatPage::initialSyncCompleted(const SyncResponse &response)
+void
+ChatPage::initialSyncCompleted(const SyncResponse &response)
 {
 	if (!response.nextBatch().isEmpty())
 		client_->setNextBatchToken(response.nextBatch());
@@ -367,7 +369,8 @@ void ChatPage::initialSyncCompleted(const SyncResponse &response)
 	emit contentLoaded();
 }
 
-void ChatPage::updateTopBarAvatar(const QString &roomid, const QPixmap &img)
+void
+ChatPage::updateTopBarAvatar(const QString &roomid, const QPixmap &img)
 {
 	room_avatars_.insert(roomid, img);
 
@@ -377,7 +380,8 @@ void ChatPage::updateTopBarAvatar(const QString &roomid, const QPixmap &img)
 	top_bar_->updateRoomAvatar(img.toImage());
 }
 
-void ChatPage::updateOwnProfileInfo(const QUrl &avatar_url, const QString &display_name)
+void
+ChatPage::updateOwnProfileInfo(const QUrl &avatar_url, const QString &display_name)
 {
 	QSettings settings;
 	auto userid = settings.value("auth/user_id").toString();
@@ -389,7 +393,8 @@ void ChatPage::updateOwnProfileInfo(const QUrl &avatar_url, const QString &displ
 		client_->fetchOwnAvatar(avatar_url);
 }
 
-void ChatPage::changeTopRoomInfo(const QString &room_id)
+void
+ChatPage::changeTopRoomInfo(const QString &room_id)
 {
 	if (!state_manager_.contains(room_id))
 		return;
@@ -408,7 +413,8 @@ void ChatPage::changeTopRoomInfo(const QString &room_id)
 	current_room_ = room_id;
 }
 
-void ChatPage::showUnreadMessageNotification(int count)
+void
+ChatPage::showUnreadMessageNotification(int count)
 {
 	emit unreadMessages(count);
 
@@ -419,7 +425,8 @@ void ChatPage::showUnreadMessageNotification(int count)
 		emit changeWindowTitle(QString("nheko (%1)").arg(count));
 }
 
-void ChatPage::updateRoomState(RoomState &room_state, const QJsonArray &events)
+void
+ChatPage::updateRoomState(RoomState &room_state, const QJsonArray &events)
 {
 	events::EventType ty;
 
@@ -509,7 +516,8 @@ void ChatPage::updateRoomState(RoomState &room_state, const QJsonArray &events)
 	}
 }
 
-void ChatPage::loadStateFromCache()
+void
+ChatPage::loadStateFromCache()
 {
 	qDebug() << "Restoring state from cache";
 
@@ -564,7 +572,8 @@ void ChatPage::loadStateFromCache()
 	sync_timer_->start(sync_interval_);
 }
 
-void ChatPage::keyPressEvent(QKeyEvent *event)
+void
+ChatPage::keyPressEvent(QKeyEvent *event)
 {
 	if (event->key() == Qt::Key_K) {
 		if (event->modifiers() == Qt::ControlModifier)
@@ -572,7 +581,8 @@ void ChatPage::keyPressEvent(QKeyEvent *event)
 	}
 }
 
-void ChatPage::showQuickSwitcher()
+void
+ChatPage::showQuickSwitcher()
 {
 	if (quickSwitcher_ == nullptr) {
 		quickSwitcher_ = new QuickSwitcher(this);
diff --git a/src/Deserializable.cc b/src/Deserializable.cc
index 09d0184d..331beeba 100644
--- a/src/Deserializable.cc
+++ b/src/Deserializable.cc
@@ -22,11 +22,12 @@
 #include "Deserializable.h"
 
 DeserializationException::DeserializationException(const std::string &msg)
-    : msg_(msg)
+  : msg_(msg)
 {
 }
 
-const char *DeserializationException::what() const noexcept
+const char *
+DeserializationException::what() const noexcept
 {
 	return msg_.c_str();
 }
diff --git a/src/EmojiCategory.cc b/src/EmojiCategory.cc
index f633e5eb..66394de1 100644
--- a/src/EmojiCategory.cc
+++ b/src/EmojiCategory.cc
@@ -22,7 +22,7 @@
 #include "EmojiCategory.h"
 
 EmojiCategory::EmojiCategory(QString category, QList<Emoji> emoji, QWidget *parent)
-    : QWidget(parent)
+  : QWidget(parent)
 {
 	mainLayout_ = new QVBoxLayout(this);
 	mainLayout_->setMargin(0);
diff --git a/src/EmojiItemDelegate.cc b/src/EmojiItemDelegate.cc
index b17a7315..763aabd2 100644
--- a/src/EmojiItemDelegate.cc
+++ b/src/EmojiItemDelegate.cc
@@ -21,7 +21,7 @@
 #include "EmojiItemDelegate.h"
 
 EmojiItemDelegate::EmojiItemDelegate(QObject *parent)
-    : QStyledItemDelegate(parent)
+  : QStyledItemDelegate(parent)
 {
 	data_ = new Emoji;
 }
@@ -31,7 +31,8 @@ EmojiItemDelegate::~EmojiItemDelegate()
 	delete data_;
 }
 
-void EmojiItemDelegate::paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const
+void
+EmojiItemDelegate::paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const
 {
 	Q_UNUSED(index);
 
diff --git a/src/EmojiPanel.cc b/src/EmojiPanel.cc
index 14db6bb3..f75bc1fc 100644
--- a/src/EmojiPanel.cc
+++ b/src/EmojiPanel.cc
@@ -27,19 +27,18 @@
 #include "FlatButton.h"
 
 EmojiPanel::EmojiPanel(QWidget *parent)
-    : QWidget(parent)
-    , shadowMargin_{2}
-    , width_{370}
-    , height_{350}
-    , animationDuration_{100}
-    , categoryIconSize_{20}
+  : QWidget(parent)
+  , shadowMargin_{ 2 }
+  , width_{ 370 }
+  , height_{ 350 }
+  , animationDuration_{ 100 }
+  , categoryIconSize_{ 20 }
 {
-	setStyleSheet(
-		"QWidget {background: #f8fbfe; color: #e8e8e8; border: none;}"
-		"QScrollBar:vertical { background-color: #f8fbfe; width: 8px; margin: 0px 2px 0 2px; }"
-		"QScrollBar::handle:vertical { background-color: #d6dde3; min-height: 20px; }"
-		"QScrollBar::add-line:vertical { border: none; background: none; }"
-		"QScrollBar::sub-line:vertical { border: none; background: none; }");
+	setStyleSheet("QWidget {background: #f8fbfe; color: #e8e8e8; border: none;}"
+		      "QScrollBar:vertical { background-color: #f8fbfe; width: 8px; margin: 0px 2px 0 2px; }"
+		      "QScrollBar::handle:vertical { background-color: #d6dde3; min-height: 20px; }"
+		      "QScrollBar::add-line:vertical { border: none; background: none; }"
+		      "QScrollBar::sub-line:vertical { border: none; background: none; }");
 
 	setAttribute(Qt::WA_TranslucentBackground, true);
 	setAttribute(Qt::WA_ShowWithoutActivating, true);
@@ -160,9 +159,7 @@ EmojiPanel::EmojiPanel(QWidget *parent)
 	animation_->setEndValue(0);
 
 	connect(peopleEmoji, &EmojiCategory::emojiSelected, this, &EmojiPanel::emojiSelected);
-	connect(peopleCategory, &QPushButton::clicked, [this, peopleEmoji]() {
-		this->showEmojiCategory(peopleEmoji);
-	});
+	connect(peopleCategory, &QPushButton::clicked, [this, peopleEmoji]() { this->showEmojiCategory(peopleEmoji); });
 
 	connect(natureEmoji, &EmojiCategory::emojiSelected, this, &EmojiPanel::emojiSelected);
 	connect(natureCategory_, &QPushButton::clicked, [this, natureEmoji]() {
@@ -170,9 +167,7 @@ EmojiPanel::EmojiPanel(QWidget *parent)
 	});
 
 	connect(foodEmoji, &EmojiCategory::emojiSelected, this, &EmojiPanel::emojiSelected);
-	connect(foodCategory_, &QPushButton::clicked, [this, foodEmoji]() {
-		this->showEmojiCategory(foodEmoji);
-	});
+	connect(foodCategory_, &QPushButton::clicked, [this, foodEmoji]() { this->showEmojiCategory(foodEmoji); });
 
 	connect(activityEmoji, &EmojiCategory::emojiSelected, this, &EmojiPanel::emojiSelected);
 	connect(activityCategory, &QPushButton::clicked, [this, activityEmoji]() {
@@ -180,9 +175,7 @@ EmojiPanel::EmojiPanel(QWidget *parent)
 	});
 
 	connect(travelEmoji, &EmojiCategory::emojiSelected, this, &EmojiPanel::emojiSelected);
-	connect(travelCategory, &QPushButton::clicked, [this, travelEmoji]() {
-		this->showEmojiCategory(travelEmoji);
-	});
+	connect(travelCategory, &QPushButton::clicked, [this, travelEmoji]() { this->showEmojiCategory(travelEmoji); });
 
 	connect(objectsEmoji, &EmojiCategory::emojiSelected, this, &EmojiPanel::emojiSelected);
 	connect(objectsCategory, &QPushButton::clicked, [this, objectsEmoji]() {
@@ -195,9 +188,7 @@ EmojiPanel::EmojiPanel(QWidget *parent)
 	});
 
 	connect(flagsEmoji, &EmojiCategory::emojiSelected, this, &EmojiPanel::emojiSelected);
-	connect(flagsCategory, &QPushButton::clicked, [this, flagsEmoji]() {
-		this->showEmojiCategory(flagsEmoji);
-	});
+	connect(flagsCategory, &QPushButton::clicked, [this, flagsEmoji]() { this->showEmojiCategory(flagsEmoji); });
 
 	connect(animation_, &QAbstractAnimation::finished, [this]() {
 		if (animation_->direction() == QAbstractAnimation::Forward)
@@ -205,7 +196,8 @@ EmojiPanel::EmojiPanel(QWidget *parent)
 	});
 }
 
-void EmojiPanel::showEmojiCategory(const EmojiCategory *category)
+void
+EmojiPanel::showEmojiCategory(const EmojiCategory *category)
 {
 	auto posToGo = category->mapToParent(QPoint()).y();
 	auto current = scrollArea_->verticalScrollBar()->value();
@@ -225,14 +217,16 @@ void EmojiPanel::showEmojiCategory(const EmojiCategory *category)
 	this->scrollArea_->ensureVisible(0, posToGo, 0, 0);
 }
 
-void EmojiPanel::leaveEvent(QEvent *event)
+void
+EmojiPanel::leaveEvent(QEvent *event)
 {
 	Q_UNUSED(event);
 
 	fadeOut();
 }
 
-void EmojiPanel::paintEvent(QPaintEvent *event)
+void
+EmojiPanel::paintEvent(QPaintEvent *event)
 {
 	QPainter p(this);
 	DropShadow::draw(p,
@@ -249,13 +243,15 @@ void EmojiPanel::paintEvent(QPaintEvent *event)
 	QWidget::paintEvent(event);
 }
 
-void EmojiPanel::fadeOut()
+void
+EmojiPanel::fadeOut()
 {
 	animation_->setDirection(QAbstractAnimation::Forward);
 	animation_->start();
 }
 
-void EmojiPanel::fadeIn()
+void
+EmojiPanel::fadeIn()
 {
 	animation_->setDirection(QAbstractAnimation::Backward);
 	animation_->start();
diff --git a/src/EmojiPickButton.cc b/src/EmojiPickButton.cc
index d8391257..820c96a7 100644
--- a/src/EmojiPickButton.cc
+++ b/src/EmojiPickButton.cc
@@ -20,12 +20,13 @@
 #include "EmojiPickButton.h"
 
 EmojiPickButton::EmojiPickButton(QWidget *parent)
-    : FlatButton(parent)
-    , panel_{nullptr}
+  : FlatButton(parent)
+  , panel_{ nullptr }
 {
 }
 
-void EmojiPickButton::enterEvent(QEvent *e)
+void
+EmojiPickButton::enterEvent(QEvent *e)
 {
 	Q_UNUSED(e);
 
@@ -47,7 +48,8 @@ void EmojiPickButton::enterEvent(QEvent *e)
 	panel_->show();
 }
 
-void EmojiPickButton::leaveEvent(QEvent *e)
+void
+EmojiPickButton::leaveEvent(QEvent *e)
 {
 	Q_UNUSED(e);
 
diff --git a/src/EmojiProvider.cc b/src/EmojiProvider.cc
index e10d4222..55f30c07 100644
--- a/src/EmojiProvider.cc
+++ b/src/EmojiProvider.cc
@@ -25,1446 +25,1446 @@
 #include "EmojiProvider.h"
 
 const QList<Emoji> EmojiProvider::people = {
-	Emoji{QString::fromUtf8("\xf0\x9f\x98\x80"), ":grinning:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x98\x81"), ":grin:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x98\x82"), ":joy:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\xa4\xa3"), ":rofl:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x98\x83"), ":smiley:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x98\x84"), ":smile:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x98\x85"), ":sweat_smile:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x98\x86"), ":laughing:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x98\x89"), ":wink:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x98\x8a"), ":blush:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x98\x8b"), ":yum:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x98\x8e"), ":sunglasses:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x98\x8d"), ":heart_eyes:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x98\x98"), ":kissing_heart:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x98\x97"), ":kissing:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x98\x99"), ":kissing_smiling_eyes:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x98\x9a"), ":kissing_closed_eyes:"},
-	Emoji{QString::fromUtf8("\xe2\x98\xba"), ":relaxed:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x99\x82"), ":slight_smile:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\xa4\x97"), ":hugging:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\xa4\x94"), ":thinking:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x98\x90"), ":neutral_face:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x98\x91"), ":expressionless:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x98\xb6"), ":no_mouth:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x99\x84"), ":rolling_eyes:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x98\x8f"), ":smirk:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x98\xa3"), ":persevere:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x98\xa5"), ":disappointed_relieved:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x98\xae"), ":open_mouth:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\xa4\x90"), ":zipper_mouth:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x98\xaf"), ":hushed:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x98\xaa"), ":sleepy:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x98\xab"), ":tired_face:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x98\xb4"), ":sleeping:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x98\x8c"), ":relieved:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\xa4\x93"), ":nerd:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x98\x9b"), ":stuck_out_tongue:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x98\x9c"), ":stuck_out_tongue_winking_eye:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x98\x9d"), ":stuck_out_tongue_closed_eyes:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\xa4\xa4"), ":drooling_face:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x98\x92"), ":unamused:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x98\x93"), ":sweat:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x98\x94"), ":pensive:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x98\x95"), ":confused:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x99\x83"), ":upside_down:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\xa4\x91"), ":money_mouth:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x98\xb2"), ":astonished:"},
-	Emoji{QString::fromUtf8("\xe2\x98\xb9"), ":frowning2:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x99\x81"), ":slight_frown:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x98\x96"), ":confounded:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x98\x9e"), ":disappointed:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x98\x9f"), ":worried:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x98\xa4"), ":triumph:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x98\xa2"), ":cry:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x98\xad"), ":sob:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x98\xa6"), ":frowning:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x98\xa7"), ":anguished:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x98\xa8"), ":fearful:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x98\xa9"), ":weary:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x98\xac"), ":grimacing:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x98\xb0"), ":cold_sweat:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x98\xb1"), ":scream:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x98\xb3"), ":flushed:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x98\xb5"), ":dizzy_face:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x98\xa1"), ":rage:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x98\xa0"), ":angry:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x98\x87"), ":innocent:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\xa4\xa0"), ":cowboy:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\xa4\xa1"), ":clown:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\xa4\xa5"), ":lying_face:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x98\xb7"), ":mask:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\xa4\x92"), ":thermometer_face:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\xa4\x95"), ":head_bandage:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\xa4\xa2"), ":nauseated_face:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\xa4\xa7"), ":sneezing_face:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x98\x88"), ":smiling_imp:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x91\xbf"), ":imp:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x91\xb9"), ":japanese_ogre:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x91\xba"), ":japanese_goblin:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x92\x80"), ":skull:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x91\xbb"), ":ghost:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x91\xbd"), ":alien:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\xa4\x96"), ":robot:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x92\xa9"), ":poop:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x98\xba"), ":smiley_cat:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x98\xb8"), ":smile_cat:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x98\xb9"), ":joy_cat:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x98\xbb"), ":heart_eyes_cat:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x98\xbc"), ":smirk_cat:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x98\xbd"), ":kissing_cat:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x99\x80"), ":scream_cat:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x98\xbf"), ":crying_cat_face:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x98\xbe"), ":pouting_cat:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x91\xa6"), ":boy:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x91\xa7"), ":girl:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x91\xa8"), ":man:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x91\xa9"), ":woman:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x91\xb4"), ":older_man:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x91\xb5"), ":older_woman:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x91\xb6"), ":baby:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x91\xbc"), ":angel:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x91\xae"), ":cop:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x95\xb5"), ":spy:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x92\x82"), ":guardsman:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x91\xb7"), ":construction_worker:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x91\xb3"), ":man_with_turban:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x91\xb1"), ":person_with_blond_hair:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8e\x85"), ":santa:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\xa4\xb6"), ":mrs_claus:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x91\xb8"), ":princess:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\xa4\xb4"), ":prince:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x91\xb0"), ":bride_with_veil:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\xa4\xb5"), ":man_in_tuxedo:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\xa4\xb0"), ":pregnant_woman:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x91\xb2"), ":man_with_gua_pi_mao:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x99\x8d"), ":person_frowning:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x99\x8e"), ":person_with_pouting_face:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x99\x85"), ":no_good:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x99\x86"), ":ok_woman:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x92\x81"), ":information_desk_person:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x99\x8b"), ":raising_hand:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x99\x87"), ":bow:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\xa4\xa6"), ":face_palm:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\xa4\xb7"), ":shrug:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x92\x86"), ":massage:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x92\x87"), ":haircut:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x9a\xb6"), ":walking:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8f\x83"), ":runner:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x92\x83"), ":dancer:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x95\xba"), ":man_dancing:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x91\xaf"), ":dancers:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x97\xa3"), ":speaking_head:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x91\xa4"), ":bust_in_silhouette:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x91\xa5"), ":busts_in_silhouette:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x91\xab"), ":couple:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x91\xac"), ":two_men_holding_hands:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x91\xad"), ":two_women_holding_hands:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x92\x8f"), ":couplekiss:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x92\x91"), ":couple_with_heart:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x91\xaa"), ":family:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x92\xaa"), ":muscle:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\xa4\xb3"), ":selfie:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x91\x88"), ":point_left:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x91\x89"), ":point_right:"},
-	Emoji{QString::fromUtf8("\xe2\x98\x9d"), ":point_up:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x91\x86"), ":point_up_2:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x96\x95"), ":middle_finger:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x91\x87"), ":point_down:"},
-	Emoji{QString::fromUtf8("\xe2\x9c\x8c"), ":v:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\xa4\x9e"), ":fingers_crossed:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x96\x96"), ":vulcan:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\xa4\x98"), ":metal:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\xa4\x99"), ":call_me:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x96\x90"), ":hand_splayed:"},
-	Emoji{QString::fromUtf8("\xe2\x9c\x8b"), ":raised_hand:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x91\x8c"), ":ok_hand:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x91\x8d"), ":thumbsup:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x91\x8e"), ":thumbsdown:"},
-	Emoji{QString::fromUtf8("\xe2\x9c\x8a"), ":fist:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x91\x8a"), ":punch:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\xa4\x9b"), ":left_facing_fist:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\xa4\x9c"), ":right_facing_fist:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\xa4\x9a"), ":raised_back_of_hand:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x91\x8b"), ":wave:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x91\x8f"), ":clap:"},
-	Emoji{QString::fromUtf8("\xe2\x9c\x8d"), ":writing_hand:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x91\x90"), ":open_hands:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x99\x8c"), ":raised_hands:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x99\x8f"), ":pray:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\xa4\x9d"), ":handshake:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x92\x85"), ":nail_care:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x91\x82"), ":ear:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x91\x83"), ":nose:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x91\xa3"), ":footprints:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x91\x80"), ":eyes:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x91\x81"), ":eye:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x91\x85"), ":tongue:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x91\x84"), ":lips:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x92\x8b"), ":kiss:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x92\xa4"), ":zzz:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x91\x93"), ":eyeglasses:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x95\xb6"), ":dark_sunglasses:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x91\x94"), ":necktie:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x91\x95"), ":shirt:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x91\x96"), ":jeans:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x91\x97"), ":dress:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x91\x98"), ":kimono:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x91\x99"), ":bikini:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x91\x9a"), ":womans_clothes:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x91\x9b"), ":purse:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x91\x9c"), ":handbag:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x91\x9d"), ":pouch:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8e\x92"), ":school_satchel:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x91\x9e"), ":mans_shoe:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x91\x9f"), ":athletic_shoe:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x91\xa0"), ":high_heel:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x91\xa1"), ":sandal:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x91\xa2"), ":boot:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x91\x91"), ":crown:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x91\x92"), ":womans_hat:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8e\xa9"), ":tophat:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8e\x93"), ":mortar_board:"},
-	Emoji{QString::fromUtf8("\xe2\x9b\x91"), ":helmet_with_cross:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x92\x84"), ":lipstick:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x92\x8d"), ":ring:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8c\x82"), ":closed_umbrella:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x92\xbc"), ":briefcase:"},
+	Emoji{ QString::fromUtf8("\xf0\x9f\x98\x80"), ":grinning:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x98\x81"), ":grin:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x98\x82"), ":joy:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\xa4\xa3"), ":rofl:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x98\x83"), ":smiley:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x98\x84"), ":smile:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x98\x85"), ":sweat_smile:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x98\x86"), ":laughing:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x98\x89"), ":wink:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x98\x8a"), ":blush:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x98\x8b"), ":yum:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x98\x8e"), ":sunglasses:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x98\x8d"), ":heart_eyes:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x98\x98"), ":kissing_heart:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x98\x97"), ":kissing:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x98\x99"), ":kissing_smiling_eyes:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x98\x9a"), ":kissing_closed_eyes:" },
+	Emoji{ QString::fromUtf8("\xe2\x98\xba"), ":relaxed:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x99\x82"), ":slight_smile:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\xa4\x97"), ":hugging:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\xa4\x94"), ":thinking:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x98\x90"), ":neutral_face:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x98\x91"), ":expressionless:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x98\xb6"), ":no_mouth:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x99\x84"), ":rolling_eyes:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x98\x8f"), ":smirk:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x98\xa3"), ":persevere:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x98\xa5"), ":disappointed_relieved:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x98\xae"), ":open_mouth:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\xa4\x90"), ":zipper_mouth:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x98\xaf"), ":hushed:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x98\xaa"), ":sleepy:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x98\xab"), ":tired_face:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x98\xb4"), ":sleeping:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x98\x8c"), ":relieved:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\xa4\x93"), ":nerd:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x98\x9b"), ":stuck_out_tongue:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x98\x9c"), ":stuck_out_tongue_winking_eye:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x98\x9d"), ":stuck_out_tongue_closed_eyes:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\xa4\xa4"), ":drooling_face:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x98\x92"), ":unamused:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x98\x93"), ":sweat:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x98\x94"), ":pensive:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x98\x95"), ":confused:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x99\x83"), ":upside_down:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\xa4\x91"), ":money_mouth:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x98\xb2"), ":astonished:" },
+	Emoji{ QString::fromUtf8("\xe2\x98\xb9"), ":frowning2:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x99\x81"), ":slight_frown:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x98\x96"), ":confounded:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x98\x9e"), ":disappointed:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x98\x9f"), ":worried:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x98\xa4"), ":triumph:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x98\xa2"), ":cry:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x98\xad"), ":sob:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x98\xa6"), ":frowning:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x98\xa7"), ":anguished:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x98\xa8"), ":fearful:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x98\xa9"), ":weary:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x98\xac"), ":grimacing:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x98\xb0"), ":cold_sweat:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x98\xb1"), ":scream:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x98\xb3"), ":flushed:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x98\xb5"), ":dizzy_face:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x98\xa1"), ":rage:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x98\xa0"), ":angry:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x98\x87"), ":innocent:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\xa4\xa0"), ":cowboy:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\xa4\xa1"), ":clown:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\xa4\xa5"), ":lying_face:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x98\xb7"), ":mask:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\xa4\x92"), ":thermometer_face:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\xa4\x95"), ":head_bandage:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\xa4\xa2"), ":nauseated_face:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\xa4\xa7"), ":sneezing_face:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x98\x88"), ":smiling_imp:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x91\xbf"), ":imp:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x91\xb9"), ":japanese_ogre:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x91\xba"), ":japanese_goblin:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x92\x80"), ":skull:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x91\xbb"), ":ghost:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x91\xbd"), ":alien:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\xa4\x96"), ":robot:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x92\xa9"), ":poop:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x98\xba"), ":smiley_cat:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x98\xb8"), ":smile_cat:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x98\xb9"), ":joy_cat:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x98\xbb"), ":heart_eyes_cat:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x98\xbc"), ":smirk_cat:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x98\xbd"), ":kissing_cat:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x99\x80"), ":scream_cat:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x98\xbf"), ":crying_cat_face:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x98\xbe"), ":pouting_cat:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x91\xa6"), ":boy:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x91\xa7"), ":girl:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x91\xa8"), ":man:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x91\xa9"), ":woman:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x91\xb4"), ":older_man:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x91\xb5"), ":older_woman:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x91\xb6"), ":baby:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x91\xbc"), ":angel:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x91\xae"), ":cop:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x95\xb5"), ":spy:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x92\x82"), ":guardsman:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x91\xb7"), ":construction_worker:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x91\xb3"), ":man_with_turban:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x91\xb1"), ":person_with_blond_hair:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8e\x85"), ":santa:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\xa4\xb6"), ":mrs_claus:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x91\xb8"), ":princess:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\xa4\xb4"), ":prince:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x91\xb0"), ":bride_with_veil:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\xa4\xb5"), ":man_in_tuxedo:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\xa4\xb0"), ":pregnant_woman:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x91\xb2"), ":man_with_gua_pi_mao:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x99\x8d"), ":person_frowning:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x99\x8e"), ":person_with_pouting_face:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x99\x85"), ":no_good:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x99\x86"), ":ok_woman:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x92\x81"), ":information_desk_person:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x99\x8b"), ":raising_hand:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x99\x87"), ":bow:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\xa4\xa6"), ":face_palm:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\xa4\xb7"), ":shrug:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x92\x86"), ":massage:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x92\x87"), ":haircut:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x9a\xb6"), ":walking:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8f\x83"), ":runner:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x92\x83"), ":dancer:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x95\xba"), ":man_dancing:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x91\xaf"), ":dancers:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x97\xa3"), ":speaking_head:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x91\xa4"), ":bust_in_silhouette:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x91\xa5"), ":busts_in_silhouette:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x91\xab"), ":couple:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x91\xac"), ":two_men_holding_hands:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x91\xad"), ":two_women_holding_hands:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x92\x8f"), ":couplekiss:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x92\x91"), ":couple_with_heart:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x91\xaa"), ":family:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x92\xaa"), ":muscle:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\xa4\xb3"), ":selfie:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x91\x88"), ":point_left:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x91\x89"), ":point_right:" },
+	Emoji{ QString::fromUtf8("\xe2\x98\x9d"), ":point_up:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x91\x86"), ":point_up_2:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x96\x95"), ":middle_finger:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x91\x87"), ":point_down:" },
+	Emoji{ QString::fromUtf8("\xe2\x9c\x8c"), ":v:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\xa4\x9e"), ":fingers_crossed:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x96\x96"), ":vulcan:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\xa4\x98"), ":metal:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\xa4\x99"), ":call_me:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x96\x90"), ":hand_splayed:" },
+	Emoji{ QString::fromUtf8("\xe2\x9c\x8b"), ":raised_hand:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x91\x8c"), ":ok_hand:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x91\x8d"), ":thumbsup:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x91\x8e"), ":thumbsdown:" },
+	Emoji{ QString::fromUtf8("\xe2\x9c\x8a"), ":fist:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x91\x8a"), ":punch:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\xa4\x9b"), ":left_facing_fist:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\xa4\x9c"), ":right_facing_fist:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\xa4\x9a"), ":raised_back_of_hand:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x91\x8b"), ":wave:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x91\x8f"), ":clap:" },
+	Emoji{ QString::fromUtf8("\xe2\x9c\x8d"), ":writing_hand:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x91\x90"), ":open_hands:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x99\x8c"), ":raised_hands:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x99\x8f"), ":pray:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\xa4\x9d"), ":handshake:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x92\x85"), ":nail_care:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x91\x82"), ":ear:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x91\x83"), ":nose:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x91\xa3"), ":footprints:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x91\x80"), ":eyes:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x91\x81"), ":eye:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x91\x85"), ":tongue:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x91\x84"), ":lips:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x92\x8b"), ":kiss:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x92\xa4"), ":zzz:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x91\x93"), ":eyeglasses:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x95\xb6"), ":dark_sunglasses:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x91\x94"), ":necktie:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x91\x95"), ":shirt:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x91\x96"), ":jeans:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x91\x97"), ":dress:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x91\x98"), ":kimono:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x91\x99"), ":bikini:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x91\x9a"), ":womans_clothes:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x91\x9b"), ":purse:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x91\x9c"), ":handbag:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x91\x9d"), ":pouch:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8e\x92"), ":school_satchel:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x91\x9e"), ":mans_shoe:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x91\x9f"), ":athletic_shoe:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x91\xa0"), ":high_heel:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x91\xa1"), ":sandal:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x91\xa2"), ":boot:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x91\x91"), ":crown:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x91\x92"), ":womans_hat:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8e\xa9"), ":tophat:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8e\x93"), ":mortar_board:" },
+	Emoji{ QString::fromUtf8("\xe2\x9b\x91"), ":helmet_with_cross:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x92\x84"), ":lipstick:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x92\x8d"), ":ring:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8c\x82"), ":closed_umbrella:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x92\xbc"), ":briefcase:" },
 };
 
 const QList<Emoji> EmojiProvider::nature = {
-	Emoji{QString::fromUtf8("\xf0\x9f\x99\x88"), ":see_no_evil:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x99\x89"), ":hear_no_evil:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x99\x8a"), ":speak_no_evil:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x92\xa6"), ":sweat_drops:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x92\xa8"), ":dash:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x90\xb5"), ":monkey_face:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x90\x92"), ":monkey:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\xa6\x8d"), ":gorilla:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x90\xb6"), ":dog:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x90\x95"), ":dog2:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x90\xa9"), ":poodle:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x90\xba"), ":wolf:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\xa6\x8a"), ":fox:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x90\xb1"), ":cat:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x90\x88"), ":cat2:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\xa6\x81"), ":lion_face:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x90\xaf"), ":tiger:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x90\x85"), ":tiger2:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x90\x86"), ":leopard:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x90\xb4"), ":horse:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x90\x8e"), ":racehorse:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\xa6\x8c"), ":deer:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\xa6\x84"), ":unicorn:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x90\xae"), ":cow:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x90\x82"), ":ox:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x90\x83"), ":water_buffalo:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x90\x84"), ":cow2:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x90\xb7"), ":pig:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x90\x96"), ":pig2:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x90\x97"), ":boar:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x90\xbd"), ":pig_nose:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x90\x8f"), ":ram:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x90\x91"), ":sheep:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x90\x90"), ":goat:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x90\xaa"), ":dromedary_camel:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x90\xab"), ":camel:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x90\x98"), ":elephant:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\xa6\x8f"), ":rhino:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x90\xad"), ":mouse:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x90\x81"), ":mouse2:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x90\x80"), ":rat:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x90\xb9"), ":hamster:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x90\xb0"), ":rabbit:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x90\x87"), ":rabbit2:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x90\xbf"), ":chipmunk:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\xa6\x87"), ":bat:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x90\xbb"), ":bear:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x90\xa8"), ":koala:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x90\xbc"), ":panda_face:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x90\xbe"), ":feet:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\xa6\x83"), ":turkey:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x90\x94"), ":chicken:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x90\x93"), ":rooster:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x90\xa3"), ":hatching_chick:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x90\xa4"), ":baby_chick:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x90\xa5"), ":hatched_chick:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x90\xa6"), ":bird:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x90\xa7"), ":penguin:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x95\x8a"), ":dove:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\xa6\x85"), ":eagle:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\xa6\x86"), ":duck:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\xa6\x89"), ":owl:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x90\xb8"), ":frog:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x90\x8a"), ":crocodile:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x90\xa2"), ":turtle:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\xa6\x8e"), ":lizard:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x90\x8d"), ":snake:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x90\xb2"), ":dragon_face:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x90\x89"), ":dragon:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x90\xb3"), ":whale:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x90\x8b"), ":whale2:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x90\xac"), ":dolphin:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x90\x9f"), ":fish:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x90\xa0"), ":tropical_fish:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x90\xa1"), ":blowfish:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\xa6\x88"), ":shark:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x90\x99"), ":octopus:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x90\x9a"), ":shell:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\xa6\x80"), ":crab:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\xa6\x90"), ":shrimp:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\xa6\x91"), ":squid:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\xa6\x8b"), ":butterfly:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x90\x8c"), ":snail:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x90\x9b"), ":bug:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x90\x9c"), ":ant:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x90\x9d"), ":bee:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x90\x9e"), ":beetle:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x95\xb7"), ":spider:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x95\xb8"), ":spider_web:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\xa6\x82"), ":scorpion:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x92\x90"), ":bouquet:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8c\xb8"), ":cherry_blossom:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8f\xb5"), ":rosette:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8c\xb9"), ":rose:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\xa5\x80"), ":wilted_rose:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8c\xba"), ":hibiscus:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8c\xbb"), ":sunflower:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8c\xbc"), ":blossom:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8c\xb7"), ":tulip:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8c\xb1"), ":seedling:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8c\xb2"), ":evergreen_tree:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8c\xb3"), ":deciduous_tree:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8c\xb4"), ":palm_tree:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8c\xb5"), ":cactus:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8c\xbe"), ":ear_of_rice:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8c\xbf"), ":herb:"},
-	Emoji{QString::fromUtf8("\xe2\x98\x98"), ":shamrock:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8d\x80"), ":four_leaf_clover:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8d\x81"), ":maple_leaf:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8d\x82"), ":fallen_leaf:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8d\x83"), ":leaves:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8d\x84"), ":mushroom:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8c\xb0"), ":chestnut:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8c\x8d"), ":earth_africa:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8c\x8e"), ":earth_americas:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8c\x8f"), ":earth_asia:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8c\x91"), ":new_moon:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8c\x92"), ":waxing_crescent_moon:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8c\x93"), ":first_quarter_moon:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8c\x94"), ":waxing_gibbous_moon:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8c\x95"), ":full_moon:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8c\x96"), ":waning_gibbous_moon:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8c\x97"), ":last_quarter_moon:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8c\x98"), ":waning_crescent_moon:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8c\x99"), ":crescent_moon:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8c\x9a"), ":new_moon_with_face:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8c\x9b"), ":first_quarter_moon_with_face:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8c\x9c"), ":last_quarter_moon_with_face:"},
-	Emoji{QString::fromUtf8("\xe2\x98\x80"), ":sunny:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8c\x9d"), ":full_moon_with_face:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8c\x9e"), ":sun_with_face:"},
-	Emoji{QString::fromUtf8("\xe2\xad\x90"), ":star:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8c\x9f"), ":star2:"},
-	Emoji{QString::fromUtf8("\xe2\x98\x81"), ":cloud:"},
-	Emoji{QString::fromUtf8("\xe2\x9b\x85"), ":partly_sunny:"},
-	Emoji{QString::fromUtf8("\xe2\x9b\x88"), ":thunder_cloud_rain:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8c\xa4"), ":white_sun_small_cloud:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8c\xa5"), ":white_sun_cloud:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8c\xa6"), ":white_sun_rain_cloud:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8c\xa7"), ":cloud_rain:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8c\xa8"), ":cloud_snow:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8c\xa9"), ":cloud_lightning:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8c\xaa"), ":cloud_tornado:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8c\xab"), ":fog:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8c\xac"), ":wind_blowing_face:"},
-	Emoji{QString::fromUtf8("\xe2\x98\x82"), ":umbrella2:"},
-	Emoji{QString::fromUtf8("\xe2\x98\x94"), ":umbrella:"},
-	Emoji{QString::fromUtf8("\xe2\x9a\xa1"), ":zap:"},
-	Emoji{QString::fromUtf8("\xe2\x9d\x84"), ":snowflake:"},
-	Emoji{QString::fromUtf8("\xe2\x98\x83"), ":snowman2:"},
-	Emoji{QString::fromUtf8("\xe2\x9b\x84"), ":snowman:"},
-	Emoji{QString::fromUtf8("\xe2\x98\x84"), ":comet:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x94\xa5"), ":fire:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x92\xa7"), ":droplet:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8c\x8a"), ":ocean:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8e\x83"), ":jack_o_lantern:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8e\x84"), ":christmas_tree:"},
-	Emoji{QString::fromUtf8("\xe2\x9c\xa8"), ":sparkles:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8e\x8b"), ":tanabata_tree:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8e\x8d"), ":bamboo:"},
+	Emoji{ QString::fromUtf8("\xf0\x9f\x99\x88"), ":see_no_evil:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x99\x89"), ":hear_no_evil:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x99\x8a"), ":speak_no_evil:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x92\xa6"), ":sweat_drops:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x92\xa8"), ":dash:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x90\xb5"), ":monkey_face:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x90\x92"), ":monkey:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\xa6\x8d"), ":gorilla:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x90\xb6"), ":dog:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x90\x95"), ":dog2:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x90\xa9"), ":poodle:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x90\xba"), ":wolf:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\xa6\x8a"), ":fox:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x90\xb1"), ":cat:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x90\x88"), ":cat2:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\xa6\x81"), ":lion_face:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x90\xaf"), ":tiger:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x90\x85"), ":tiger2:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x90\x86"), ":leopard:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x90\xb4"), ":horse:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x90\x8e"), ":racehorse:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\xa6\x8c"), ":deer:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\xa6\x84"), ":unicorn:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x90\xae"), ":cow:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x90\x82"), ":ox:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x90\x83"), ":water_buffalo:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x90\x84"), ":cow2:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x90\xb7"), ":pig:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x90\x96"), ":pig2:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x90\x97"), ":boar:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x90\xbd"), ":pig_nose:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x90\x8f"), ":ram:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x90\x91"), ":sheep:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x90\x90"), ":goat:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x90\xaa"), ":dromedary_camel:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x90\xab"), ":camel:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x90\x98"), ":elephant:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\xa6\x8f"), ":rhino:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x90\xad"), ":mouse:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x90\x81"), ":mouse2:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x90\x80"), ":rat:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x90\xb9"), ":hamster:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x90\xb0"), ":rabbit:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x90\x87"), ":rabbit2:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x90\xbf"), ":chipmunk:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\xa6\x87"), ":bat:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x90\xbb"), ":bear:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x90\xa8"), ":koala:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x90\xbc"), ":panda_face:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x90\xbe"), ":feet:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\xa6\x83"), ":turkey:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x90\x94"), ":chicken:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x90\x93"), ":rooster:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x90\xa3"), ":hatching_chick:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x90\xa4"), ":baby_chick:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x90\xa5"), ":hatched_chick:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x90\xa6"), ":bird:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x90\xa7"), ":penguin:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x95\x8a"), ":dove:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\xa6\x85"), ":eagle:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\xa6\x86"), ":duck:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\xa6\x89"), ":owl:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x90\xb8"), ":frog:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x90\x8a"), ":crocodile:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x90\xa2"), ":turtle:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\xa6\x8e"), ":lizard:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x90\x8d"), ":snake:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x90\xb2"), ":dragon_face:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x90\x89"), ":dragon:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x90\xb3"), ":whale:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x90\x8b"), ":whale2:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x90\xac"), ":dolphin:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x90\x9f"), ":fish:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x90\xa0"), ":tropical_fish:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x90\xa1"), ":blowfish:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\xa6\x88"), ":shark:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x90\x99"), ":octopus:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x90\x9a"), ":shell:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\xa6\x80"), ":crab:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\xa6\x90"), ":shrimp:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\xa6\x91"), ":squid:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\xa6\x8b"), ":butterfly:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x90\x8c"), ":snail:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x90\x9b"), ":bug:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x90\x9c"), ":ant:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x90\x9d"), ":bee:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x90\x9e"), ":beetle:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x95\xb7"), ":spider:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x95\xb8"), ":spider_web:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\xa6\x82"), ":scorpion:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x92\x90"), ":bouquet:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8c\xb8"), ":cherry_blossom:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8f\xb5"), ":rosette:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8c\xb9"), ":rose:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\xa5\x80"), ":wilted_rose:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8c\xba"), ":hibiscus:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8c\xbb"), ":sunflower:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8c\xbc"), ":blossom:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8c\xb7"), ":tulip:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8c\xb1"), ":seedling:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8c\xb2"), ":evergreen_tree:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8c\xb3"), ":deciduous_tree:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8c\xb4"), ":palm_tree:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8c\xb5"), ":cactus:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8c\xbe"), ":ear_of_rice:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8c\xbf"), ":herb:" },
+	Emoji{ QString::fromUtf8("\xe2\x98\x98"), ":shamrock:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8d\x80"), ":four_leaf_clover:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8d\x81"), ":maple_leaf:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8d\x82"), ":fallen_leaf:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8d\x83"), ":leaves:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8d\x84"), ":mushroom:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8c\xb0"), ":chestnut:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8c\x8d"), ":earth_africa:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8c\x8e"), ":earth_americas:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8c\x8f"), ":earth_asia:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8c\x91"), ":new_moon:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8c\x92"), ":waxing_crescent_moon:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8c\x93"), ":first_quarter_moon:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8c\x94"), ":waxing_gibbous_moon:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8c\x95"), ":full_moon:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8c\x96"), ":waning_gibbous_moon:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8c\x97"), ":last_quarter_moon:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8c\x98"), ":waning_crescent_moon:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8c\x99"), ":crescent_moon:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8c\x9a"), ":new_moon_with_face:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8c\x9b"), ":first_quarter_moon_with_face:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8c\x9c"), ":last_quarter_moon_with_face:" },
+	Emoji{ QString::fromUtf8("\xe2\x98\x80"), ":sunny:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8c\x9d"), ":full_moon_with_face:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8c\x9e"), ":sun_with_face:" },
+	Emoji{ QString::fromUtf8("\xe2\xad\x90"), ":star:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8c\x9f"), ":star2:" },
+	Emoji{ QString::fromUtf8("\xe2\x98\x81"), ":cloud:" },
+	Emoji{ QString::fromUtf8("\xe2\x9b\x85"), ":partly_sunny:" },
+	Emoji{ QString::fromUtf8("\xe2\x9b\x88"), ":thunder_cloud_rain:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8c\xa4"), ":white_sun_small_cloud:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8c\xa5"), ":white_sun_cloud:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8c\xa6"), ":white_sun_rain_cloud:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8c\xa7"), ":cloud_rain:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8c\xa8"), ":cloud_snow:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8c\xa9"), ":cloud_lightning:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8c\xaa"), ":cloud_tornado:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8c\xab"), ":fog:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8c\xac"), ":wind_blowing_face:" },
+	Emoji{ QString::fromUtf8("\xe2\x98\x82"), ":umbrella2:" },
+	Emoji{ QString::fromUtf8("\xe2\x98\x94"), ":umbrella:" },
+	Emoji{ QString::fromUtf8("\xe2\x9a\xa1"), ":zap:" },
+	Emoji{ QString::fromUtf8("\xe2\x9d\x84"), ":snowflake:" },
+	Emoji{ QString::fromUtf8("\xe2\x98\x83"), ":snowman2:" },
+	Emoji{ QString::fromUtf8("\xe2\x9b\x84"), ":snowman:" },
+	Emoji{ QString::fromUtf8("\xe2\x98\x84"), ":comet:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x94\xa5"), ":fire:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x92\xa7"), ":droplet:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8c\x8a"), ":ocean:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8e\x83"), ":jack_o_lantern:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8e\x84"), ":christmas_tree:" },
+	Emoji{ QString::fromUtf8("\xe2\x9c\xa8"), ":sparkles:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8e\x8b"), ":tanabata_tree:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8e\x8d"), ":bamboo:" },
 };
 
 const QList<Emoji> EmojiProvider::food = {
-	Emoji{QString::fromUtf8("\xf0\x9f\x8d\x87"), ":grapes:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8d\x88"), ":melon:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8d\x89"), ":watermelon:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8d\x8a"), ":tangerine:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8d\x8b"), ":lemon:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8d\x8c"), ":banana:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8d\x8d"), ":pineapple:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8d\x8e"), ":apple:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8d\x8f"), ":green_apple:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8d\x90"), ":pear:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8d\x91"), ":peach:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8d\x92"), ":cherries:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8d\x93"), ":strawberry:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\xa5\x9d"), ":kiwi:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8d\x85"), ":tomato:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\xa5\x91"), ":avocado:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8d\x86"), ":eggplant:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\xa5\x94"), ":potato:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\xa5\x95"), ":carrot:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8c\xbd"), ":corn:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8c\xb6"), ":hot_pepper:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\xa5\x92"), ":cucumber:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\xa5\x9c"), ":peanuts:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8d\x9e"), ":bread:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\xa5\x90"), ":croissant:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\xa5\x96"), ":french_bread:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\xa5\x9e"), ":pancakes:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\xa7\x80"), ":cheese:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8d\x96"), ":meat_on_bone:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8d\x97"), ":poultry_leg:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\xa5\x93"), ":bacon:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8d\x94"), ":hamburger:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8d\x9f"), ":fries:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8d\x95"), ":pizza:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8c\xad"), ":hotdog:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8c\xae"), ":taco:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8c\xaf"), ":burrito:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\xa5\x99"), ":stuffed_flatbread:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\xa5\x9a"), ":egg:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8d\xb3"), ":cooking:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\xa5\x98"), ":shallow_pan_of_food:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8d\xb2"), ":stew:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\xa5\x97"), ":salad:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8d\xbf"), ":popcorn:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8d\xb1"), ":bento:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8d\x98"), ":rice_cracker:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8d\x99"), ":rice_ball:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8d\x9a"), ":rice:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8d\x9b"), ":curry:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8d\x9c"), ":ramen:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8d\x9d"), ":spaghetti:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8d\xa0"), ":sweet_potato:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8d\xa2"), ":oden:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8d\xa3"), ":sushi:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8d\xa4"), ":fried_shrimp:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8d\xa5"), ":fish_cake:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8d\xa1"), ":dango:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8d\xa6"), ":icecream:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8d\xa7"), ":shaved_ice:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8d\xa8"), ":ice_cream:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8d\xa9"), ":doughnut:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8d\xaa"), ":cookie:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8e\x82"), ":birthday:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8d\xb0"), ":cake:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8d\xab"), ":chocolate_bar:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8d\xac"), ":candy:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8d\xad"), ":lollipop:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8d\xae"), ":custard:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8d\xaf"), ":honey_pot:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8d\xbc"), ":baby_bottle:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\xa5\x9b"), ":milk:"},
-	Emoji{QString::fromUtf8("\xe2\x98\x95"), ":coffee:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8d\xb5"), ":tea:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8d\xb6"), ":sake:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8d\xbe"), ":champagne:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8d\xb7"), ":wine_glass:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8d\xb8"), ":cocktail:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8d\xb9"), ":tropical_drink:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8d\xba"), ":beer:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8d\xbb"), ":beers:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\xa5\x82"), ":champagne_glass:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\xa5\x83"), ":tumbler_glass:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8d\xbd"), ":fork_knife_plate:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8d\xb4"), ":fork_and_knife:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\xa5\x84"), ":spoon:"},
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8d\x87"), ":grapes:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8d\x88"), ":melon:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8d\x89"), ":watermelon:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8d\x8a"), ":tangerine:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8d\x8b"), ":lemon:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8d\x8c"), ":banana:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8d\x8d"), ":pineapple:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8d\x8e"), ":apple:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8d\x8f"), ":green_apple:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8d\x90"), ":pear:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8d\x91"), ":peach:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8d\x92"), ":cherries:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8d\x93"), ":strawberry:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\xa5\x9d"), ":kiwi:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8d\x85"), ":tomato:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\xa5\x91"), ":avocado:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8d\x86"), ":eggplant:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\xa5\x94"), ":potato:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\xa5\x95"), ":carrot:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8c\xbd"), ":corn:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8c\xb6"), ":hot_pepper:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\xa5\x92"), ":cucumber:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\xa5\x9c"), ":peanuts:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8d\x9e"), ":bread:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\xa5\x90"), ":croissant:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\xa5\x96"), ":french_bread:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\xa5\x9e"), ":pancakes:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\xa7\x80"), ":cheese:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8d\x96"), ":meat_on_bone:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8d\x97"), ":poultry_leg:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\xa5\x93"), ":bacon:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8d\x94"), ":hamburger:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8d\x9f"), ":fries:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8d\x95"), ":pizza:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8c\xad"), ":hotdog:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8c\xae"), ":taco:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8c\xaf"), ":burrito:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\xa5\x99"), ":stuffed_flatbread:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\xa5\x9a"), ":egg:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8d\xb3"), ":cooking:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\xa5\x98"), ":shallow_pan_of_food:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8d\xb2"), ":stew:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\xa5\x97"), ":salad:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8d\xbf"), ":popcorn:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8d\xb1"), ":bento:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8d\x98"), ":rice_cracker:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8d\x99"), ":rice_ball:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8d\x9a"), ":rice:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8d\x9b"), ":curry:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8d\x9c"), ":ramen:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8d\x9d"), ":spaghetti:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8d\xa0"), ":sweet_potato:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8d\xa2"), ":oden:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8d\xa3"), ":sushi:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8d\xa4"), ":fried_shrimp:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8d\xa5"), ":fish_cake:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8d\xa1"), ":dango:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8d\xa6"), ":icecream:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8d\xa7"), ":shaved_ice:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8d\xa8"), ":ice_cream:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8d\xa9"), ":doughnut:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8d\xaa"), ":cookie:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8e\x82"), ":birthday:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8d\xb0"), ":cake:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8d\xab"), ":chocolate_bar:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8d\xac"), ":candy:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8d\xad"), ":lollipop:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8d\xae"), ":custard:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8d\xaf"), ":honey_pot:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8d\xbc"), ":baby_bottle:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\xa5\x9b"), ":milk:" },
+	Emoji{ QString::fromUtf8("\xe2\x98\x95"), ":coffee:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8d\xb5"), ":tea:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8d\xb6"), ":sake:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8d\xbe"), ":champagne:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8d\xb7"), ":wine_glass:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8d\xb8"), ":cocktail:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8d\xb9"), ":tropical_drink:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8d\xba"), ":beer:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8d\xbb"), ":beers:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\xa5\x82"), ":champagne_glass:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\xa5\x83"), ":tumbler_glass:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8d\xbd"), ":fork_knife_plate:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8d\xb4"), ":fork_and_knife:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\xa5\x84"), ":spoon:" },
 };
 
 const QList<Emoji> EmojiProvider::activity = {
-	Emoji{QString::fromUtf8("\xf0\x9f\x91\xbe"), ":space_invader:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x95\xb4"), ":levitate:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\xa4\xba"), ":fencer:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8f\x87"), ":horse_racing:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8f\x87\xf0\x9f\x8f\xbb"), ":horse_racing_tone1:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8f\x87\xf0\x9f\x8f\xbc"), ":horse_racing_tone2:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8f\x87\xf0\x9f\x8f\xbd"), ":horse_racing_tone3:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8f\x87\xf0\x9f\x8f\xbe"), ":horse_racing_tone4:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8f\x87\xf0\x9f\x8f\xbf"), ":horse_racing_tone5:"},
-	Emoji{QString::fromUtf8("\xe2\x9b\xb7"), ":skier:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8f\x82"), ":snowboarder:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8f\x8c"), ":golfer:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8f\x84"), ":surfer:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8f\x84\xf0\x9f\x8f\xbb"), ":surfer_tone1:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8f\x84\xf0\x9f\x8f\xbc"), ":surfer_tone2:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8f\x84\xf0\x9f\x8f\xbd"), ":surfer_tone3:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8f\x84\xf0\x9f\x8f\xbe"), ":surfer_tone4:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8f\x84\xf0\x9f\x8f\xbf"), ":surfer_tone5:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x9a\xa3"), ":rowboat:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x9a\xa3\xf0\x9f\x8f\xbb"), ":rowboat_tone1:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x9a\xa3\xf0\x9f\x8f\xbc"), ":rowboat_tone2:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x9a\xa3\xf0\x9f\x8f\xbd"), ":rowboat_tone3:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x9a\xa3\xf0\x9f\x8f\xbe"), ":rowboat_tone4:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x9a\xa3\xf0\x9f\x8f\xbf"), ":rowboat_tone5:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8f\x8a"), ":swimmer:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8f\x8a\xf0\x9f\x8f\xbb"), ":swimmer_tone1:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8f\x8a\xf0\x9f\x8f\xbc"), ":swimmer_tone2:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8f\x8a\xf0\x9f\x8f\xbd"), ":swimmer_tone3:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8f\x8a\xf0\x9f\x8f\xbe"), ":swimmer_tone4:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8f\x8a\xf0\x9f\x8f\xbf"), ":swimmer_tone5:"},
-	Emoji{QString::fromUtf8("\xe2\x9b\xb9"), ":basketball_player:"},
-	Emoji{QString::fromUtf8("\xe2\x9b\xb9\xf0\x9f\x8f\xbb"), ":basketball_player_tone1:"},
-	Emoji{QString::fromUtf8("\xe2\x9b\xb9\xf0\x9f\x8f\xbc"), ":basketball_player_tone2:"},
-	Emoji{QString::fromUtf8("\xe2\x9b\xb9\xf0\x9f\x8f\xbd"), ":basketball_player_tone3:"},
-	Emoji{QString::fromUtf8("\xe2\x9b\xb9\xf0\x9f\x8f\xbe"), ":basketball_player_tone4:"},
-	Emoji{QString::fromUtf8("\xe2\x9b\xb9\xf0\x9f\x8f\xbf"), ":basketball_player_tone5:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8f\x8b"), ":lifter:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8f\x8b\xf0\x9f\x8f\xbb"), ":lifter_tone1:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8f\x8b\xf0\x9f\x8f\xbc"), ":lifter_tone2:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8f\x8b\xf0\x9f\x8f\xbd"), ":lifter_tone3:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8f\x8b\xf0\x9f\x8f\xbe"), ":lifter_tone4:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8f\x8b\xf0\x9f\x8f\xbf"), ":lifter_tone5:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x9a\xb4"), ":bicyclist:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x9a\xb4\xf0\x9f\x8f\xbb"), ":bicyclist_tone1:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x9a\xb4\xf0\x9f\x8f\xbc"), ":bicyclist_tone2:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x9a\xb4\xf0\x9f\x8f\xbd"), ":bicyclist_tone3:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x9a\xb4\xf0\x9f\x8f\xbe"), ":bicyclist_tone4:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x9a\xb4\xf0\x9f\x8f\xbf"), ":bicyclist_tone5:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x9a\xb5"), ":mountain_bicyclist:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x9a\xb5\xf0\x9f\x8f\xbb"), ":mountain_bicyclist_tone1:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x9a\xb5\xf0\x9f\x8f\xbc"), ":mountain_bicyclist_tone2:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x9a\xb5\xf0\x9f\x8f\xbd"), ":mountain_bicyclist_tone3:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x9a\xb5\xf0\x9f\x8f\xbe"), ":mountain_bicyclist_tone4:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x9a\xb5\xf0\x9f\x8f\xbf"), ":mountain_bicyclist_tone5:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\xa4\xb8"), ":cartwheel:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\xa4\xb8\xf0\x9f\x8f\xbb"), ":cartwheel_tone1:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\xa4\xb8\xf0\x9f\x8f\xbc"), ":cartwheel_tone2:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\xa4\xb8\xf0\x9f\x8f\xbd"), ":cartwheel_tone3:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\xa4\xb8\xf0\x9f\x8f\xbe"), ":cartwheel_tone4:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\xa4\xb8\xf0\x9f\x8f\xbf"), ":cartwheel_tone5:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\xa4\xbc"), ":wrestlers:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\xa4\xbc\xf0\x9f\x8f\xbb"), ":wrestlers_tone1:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\xa4\xbc\xf0\x9f\x8f\xbc"), ":wrestlers_tone2:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\xa4\xbc\xf0\x9f\x8f\xbd"), ":wrestlers_tone3:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\xa4\xbc\xf0\x9f\x8f\xbe"), ":wrestlers_tone4:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\xa4\xbc\xf0\x9f\x8f\xbf"), ":wrestlers_tone5:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\xa4\xbd"), ":water_polo:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\xa4\xbd\xf0\x9f\x8f\xbb"), ":water_polo_tone1:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\xa4\xbd\xf0\x9f\x8f\xbc"), ":water_polo_tone2:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\xa4\xbd\xf0\x9f\x8f\xbd"), ":water_polo_tone3:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\xa4\xbd\xf0\x9f\x8f\xbe"), ":water_polo_tone4:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\xa4\xbd\xf0\x9f\x8f\xbf"), ":water_polo_tone5:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\xa4\xbe"), ":handball:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\xa4\xbe\xf0\x9f\x8f\xbb"), ":handball_tone1:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\xa4\xbe\xf0\x9f\x8f\xbc"), ":handball_tone2:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\xa4\xbe\xf0\x9f\x8f\xbd"), ":handball_tone3:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\xa4\xbe\xf0\x9f\x8f\xbe"), ":handball_tone4:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\xa4\xbe\xf0\x9f\x8f\xbf"), ":handball_tone5:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\xa4\xb9"), ":juggling:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\xa4\xb9\xf0\x9f\x8f\xbb"), ":juggling_tone1:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\xa4\xb9\xf0\x9f\x8f\xbc"), ":juggling_tone2:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\xa4\xb9\xf0\x9f\x8f\xbd"), ":juggling_tone3:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\xa4\xb9\xf0\x9f\x8f\xbe"), ":juggling_tone4:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\xa4\xb9\xf0\x9f\x8f\xbf"), ":juggling_tone5:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8e\xaa"), ":circus_tent:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8e\xad"), ":performing_arts:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8e\xa8"), ":art:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8e\xb0"), ":slot_machine:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x9b\x80"), ":bath:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x9b\x80\xf0\x9f\x8f\xbb"), ":bath_tone1:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x9b\x80\xf0\x9f\x8f\xbc"), ":bath_tone2:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x9b\x80\xf0\x9f\x8f\xbd"), ":bath_tone3:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x9b\x80\xf0\x9f\x8f\xbe"), ":bath_tone4:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x9b\x80\xf0\x9f\x8f\xbf"), ":bath_tone5:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8e\x97"), ":reminder_ribbon:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8e\x9f"), ":tickets:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8e\xab"), ":ticket:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8e\x96"), ":military_medal:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8f\x86"), ":trophy:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8f\x85"), ":medal:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\xa5\x87"), ":first_place:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\xa5\x88"), ":second_place:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\xa5\x89"), ":third_place:"},
-	Emoji{QString::fromUtf8("\xe2\x9a\xbd"), ":soccer:"},
-	Emoji{QString::fromUtf8("\xe2\x9a\xbe"), ":baseball:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8f\x80"), ":basketball:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8f\x90"), ":volleyball:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8f\x88"), ":football:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8f\x89"), ":rugby_football:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8e\xbe"), ":tennis:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8e\xb1"), ":8ball:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8e\xb3"), ":bowling:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8f\x8f"), ":cricket:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8f\x91"), ":field_hockey:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8f\x92"), ":hockey:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8f\x93"), ":ping_pong:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8f\xb8"), ":badminton:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\xa5\x8a"), ":boxing_glove:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\xa5\x8b"), ":martial_arts_uniform:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\xa5\x85"), ":goal:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8e\xaf"), ":dart:"},
-	Emoji{QString::fromUtf8("\xe2\x9b\xb3"), ":golf:"},
-	Emoji{QString::fromUtf8("\xe2\x9b\xb8"), ":ice_skate:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8e\xa3"), ":fishing_pole_and_fish:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8e\xbd"), ":running_shirt_with_sash:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8e\xbf"), ":ski:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8e\xae"), ":video_game:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8e\xb2"), ":game_die:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8e\xbc"), ":musical_score:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8e\xa4"), ":microphone:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8e\xa7"), ":headphones:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8e\xb7"), ":saxophone:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8e\xb8"), ":guitar:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8e\xb9"), ":musical_keyboard:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8e\xba"), ":trumpet:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8e\xbb"), ":violin:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\xa5\x81"), ":drum:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8e\xac"), ":clapper:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8f\xb9"), ":bow_and_arrow:"},
+	Emoji{ QString::fromUtf8("\xf0\x9f\x91\xbe"), ":space_invader:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x95\xb4"), ":levitate:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\xa4\xba"), ":fencer:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8f\x87"), ":horse_racing:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8f\x87\xf0\x9f\x8f\xbb"), ":horse_racing_tone1:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8f\x87\xf0\x9f\x8f\xbc"), ":horse_racing_tone2:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8f\x87\xf0\x9f\x8f\xbd"), ":horse_racing_tone3:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8f\x87\xf0\x9f\x8f\xbe"), ":horse_racing_tone4:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8f\x87\xf0\x9f\x8f\xbf"), ":horse_racing_tone5:" },
+	Emoji{ QString::fromUtf8("\xe2\x9b\xb7"), ":skier:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8f\x82"), ":snowboarder:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8f\x8c"), ":golfer:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8f\x84"), ":surfer:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8f\x84\xf0\x9f\x8f\xbb"), ":surfer_tone1:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8f\x84\xf0\x9f\x8f\xbc"), ":surfer_tone2:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8f\x84\xf0\x9f\x8f\xbd"), ":surfer_tone3:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8f\x84\xf0\x9f\x8f\xbe"), ":surfer_tone4:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8f\x84\xf0\x9f\x8f\xbf"), ":surfer_tone5:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x9a\xa3"), ":rowboat:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x9a\xa3\xf0\x9f\x8f\xbb"), ":rowboat_tone1:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x9a\xa3\xf0\x9f\x8f\xbc"), ":rowboat_tone2:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x9a\xa3\xf0\x9f\x8f\xbd"), ":rowboat_tone3:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x9a\xa3\xf0\x9f\x8f\xbe"), ":rowboat_tone4:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x9a\xa3\xf0\x9f\x8f\xbf"), ":rowboat_tone5:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8f\x8a"), ":swimmer:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8f\x8a\xf0\x9f\x8f\xbb"), ":swimmer_tone1:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8f\x8a\xf0\x9f\x8f\xbc"), ":swimmer_tone2:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8f\x8a\xf0\x9f\x8f\xbd"), ":swimmer_tone3:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8f\x8a\xf0\x9f\x8f\xbe"), ":swimmer_tone4:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8f\x8a\xf0\x9f\x8f\xbf"), ":swimmer_tone5:" },
+	Emoji{ QString::fromUtf8("\xe2\x9b\xb9"), ":basketball_player:" },
+	Emoji{ QString::fromUtf8("\xe2\x9b\xb9\xf0\x9f\x8f\xbb"), ":basketball_player_tone1:" },
+	Emoji{ QString::fromUtf8("\xe2\x9b\xb9\xf0\x9f\x8f\xbc"), ":basketball_player_tone2:" },
+	Emoji{ QString::fromUtf8("\xe2\x9b\xb9\xf0\x9f\x8f\xbd"), ":basketball_player_tone3:" },
+	Emoji{ QString::fromUtf8("\xe2\x9b\xb9\xf0\x9f\x8f\xbe"), ":basketball_player_tone4:" },
+	Emoji{ QString::fromUtf8("\xe2\x9b\xb9\xf0\x9f\x8f\xbf"), ":basketball_player_tone5:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8f\x8b"), ":lifter:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8f\x8b\xf0\x9f\x8f\xbb"), ":lifter_tone1:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8f\x8b\xf0\x9f\x8f\xbc"), ":lifter_tone2:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8f\x8b\xf0\x9f\x8f\xbd"), ":lifter_tone3:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8f\x8b\xf0\x9f\x8f\xbe"), ":lifter_tone4:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8f\x8b\xf0\x9f\x8f\xbf"), ":lifter_tone5:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x9a\xb4"), ":bicyclist:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x9a\xb4\xf0\x9f\x8f\xbb"), ":bicyclist_tone1:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x9a\xb4\xf0\x9f\x8f\xbc"), ":bicyclist_tone2:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x9a\xb4\xf0\x9f\x8f\xbd"), ":bicyclist_tone3:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x9a\xb4\xf0\x9f\x8f\xbe"), ":bicyclist_tone4:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x9a\xb4\xf0\x9f\x8f\xbf"), ":bicyclist_tone5:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x9a\xb5"), ":mountain_bicyclist:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x9a\xb5\xf0\x9f\x8f\xbb"), ":mountain_bicyclist_tone1:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x9a\xb5\xf0\x9f\x8f\xbc"), ":mountain_bicyclist_tone2:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x9a\xb5\xf0\x9f\x8f\xbd"), ":mountain_bicyclist_tone3:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x9a\xb5\xf0\x9f\x8f\xbe"), ":mountain_bicyclist_tone4:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x9a\xb5\xf0\x9f\x8f\xbf"), ":mountain_bicyclist_tone5:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\xa4\xb8"), ":cartwheel:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\xa4\xb8\xf0\x9f\x8f\xbb"), ":cartwheel_tone1:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\xa4\xb8\xf0\x9f\x8f\xbc"), ":cartwheel_tone2:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\xa4\xb8\xf0\x9f\x8f\xbd"), ":cartwheel_tone3:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\xa4\xb8\xf0\x9f\x8f\xbe"), ":cartwheel_tone4:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\xa4\xb8\xf0\x9f\x8f\xbf"), ":cartwheel_tone5:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\xa4\xbc"), ":wrestlers:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\xa4\xbc\xf0\x9f\x8f\xbb"), ":wrestlers_tone1:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\xa4\xbc\xf0\x9f\x8f\xbc"), ":wrestlers_tone2:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\xa4\xbc\xf0\x9f\x8f\xbd"), ":wrestlers_tone3:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\xa4\xbc\xf0\x9f\x8f\xbe"), ":wrestlers_tone4:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\xa4\xbc\xf0\x9f\x8f\xbf"), ":wrestlers_tone5:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\xa4\xbd"), ":water_polo:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\xa4\xbd\xf0\x9f\x8f\xbb"), ":water_polo_tone1:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\xa4\xbd\xf0\x9f\x8f\xbc"), ":water_polo_tone2:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\xa4\xbd\xf0\x9f\x8f\xbd"), ":water_polo_tone3:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\xa4\xbd\xf0\x9f\x8f\xbe"), ":water_polo_tone4:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\xa4\xbd\xf0\x9f\x8f\xbf"), ":water_polo_tone5:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\xa4\xbe"), ":handball:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\xa4\xbe\xf0\x9f\x8f\xbb"), ":handball_tone1:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\xa4\xbe\xf0\x9f\x8f\xbc"), ":handball_tone2:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\xa4\xbe\xf0\x9f\x8f\xbd"), ":handball_tone3:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\xa4\xbe\xf0\x9f\x8f\xbe"), ":handball_tone4:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\xa4\xbe\xf0\x9f\x8f\xbf"), ":handball_tone5:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\xa4\xb9"), ":juggling:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\xa4\xb9\xf0\x9f\x8f\xbb"), ":juggling_tone1:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\xa4\xb9\xf0\x9f\x8f\xbc"), ":juggling_tone2:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\xa4\xb9\xf0\x9f\x8f\xbd"), ":juggling_tone3:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\xa4\xb9\xf0\x9f\x8f\xbe"), ":juggling_tone4:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\xa4\xb9\xf0\x9f\x8f\xbf"), ":juggling_tone5:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8e\xaa"), ":circus_tent:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8e\xad"), ":performing_arts:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8e\xa8"), ":art:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8e\xb0"), ":slot_machine:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x9b\x80"), ":bath:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x9b\x80\xf0\x9f\x8f\xbb"), ":bath_tone1:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x9b\x80\xf0\x9f\x8f\xbc"), ":bath_tone2:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x9b\x80\xf0\x9f\x8f\xbd"), ":bath_tone3:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x9b\x80\xf0\x9f\x8f\xbe"), ":bath_tone4:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x9b\x80\xf0\x9f\x8f\xbf"), ":bath_tone5:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8e\x97"), ":reminder_ribbon:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8e\x9f"), ":tickets:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8e\xab"), ":ticket:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8e\x96"), ":military_medal:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8f\x86"), ":trophy:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8f\x85"), ":medal:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\xa5\x87"), ":first_place:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\xa5\x88"), ":second_place:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\xa5\x89"), ":third_place:" },
+	Emoji{ QString::fromUtf8("\xe2\x9a\xbd"), ":soccer:" },
+	Emoji{ QString::fromUtf8("\xe2\x9a\xbe"), ":baseball:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8f\x80"), ":basketball:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8f\x90"), ":volleyball:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8f\x88"), ":football:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8f\x89"), ":rugby_football:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8e\xbe"), ":tennis:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8e\xb1"), ":8ball:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8e\xb3"), ":bowling:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8f\x8f"), ":cricket:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8f\x91"), ":field_hockey:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8f\x92"), ":hockey:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8f\x93"), ":ping_pong:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8f\xb8"), ":badminton:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\xa5\x8a"), ":boxing_glove:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\xa5\x8b"), ":martial_arts_uniform:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\xa5\x85"), ":goal:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8e\xaf"), ":dart:" },
+	Emoji{ QString::fromUtf8("\xe2\x9b\xb3"), ":golf:" },
+	Emoji{ QString::fromUtf8("\xe2\x9b\xb8"), ":ice_skate:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8e\xa3"), ":fishing_pole_and_fish:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8e\xbd"), ":running_shirt_with_sash:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8e\xbf"), ":ski:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8e\xae"), ":video_game:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8e\xb2"), ":game_die:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8e\xbc"), ":musical_score:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8e\xa4"), ":microphone:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8e\xa7"), ":headphones:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8e\xb7"), ":saxophone:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8e\xb8"), ":guitar:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8e\xb9"), ":musical_keyboard:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8e\xba"), ":trumpet:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8e\xbb"), ":violin:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\xa5\x81"), ":drum:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8e\xac"), ":clapper:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8f\xb9"), ":bow_and_arrow:" },
 };
 
 const QList<Emoji> EmojiProvider::travel = {
-	Emoji{QString::fromUtf8("\xf0\x9f\x8f\x8e"), ":race_car:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8f\x8d"), ":motorcycle:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x97\xbe"), ":japan:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8f\x94"), ":mountain_snow:"},
-	Emoji{QString::fromUtf8("\xe2\x9b\xb0"), ":mountain:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8c\x8b"), ":volcano:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x97\xbb"), ":mount_fuji:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8f\x95"), ":camping:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8f\x96"), ":beach:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8f\x9c"), ":desert:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8f\x9d"), ":island:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8f\x9e"), ":park:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8f\x9f"), ":stadium:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8f\x9b"), ":classical_building:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8f\x97"), ":construction_site:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8f\x98"), ":homes:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8f\x99"), ":cityscape:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8f\x9a"), ":house_abandoned:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8f\xa0"), ":house:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8f\xa1"), ":house_with_garden:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8f\xa2"), ":office:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8f\xa3"), ":post_office:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8f\xa4"), ":european_post_office:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8f\xa5"), ":hospital:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8f\xa6"), ":bank:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8f\xa8"), ":hotel:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8f\xa9"), ":love_hotel:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8f\xaa"), ":convenience_store:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8f\xab"), ":school:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8f\xac"), ":department_store:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8f\xad"), ":factory:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8f\xaf"), ":japanese_castle:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8f\xb0"), ":european_castle:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x92\x92"), ":wedding:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x97\xbc"), ":tokyo_tower:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x97\xbd"), ":statue_of_liberty:"},
-	Emoji{QString::fromUtf8("\xe2\x9b\xaa"), ":church:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x95\x8c"), ":mosque:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x95\x8d"), ":synagogue:"},
-	Emoji{QString::fromUtf8("\xe2\x9b\xa9"), ":shinto_shrine:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x95\x8b"), ":kaaba:"},
-	Emoji{QString::fromUtf8("\xe2\x9b\xb2"), ":fountain:"},
-	Emoji{QString::fromUtf8("\xe2\x9b\xba"), ":tent:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8c\x81"), ":foggy:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8c\x83"), ":night_with_stars:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8c\x84"), ":sunrise_over_mountains:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8c\x85"), ":sunrise:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8c\x86"), ":city_dusk:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8c\x87"), ":city_sunset:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8c\x89"), ":bridge_at_night:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8c\x8c"), ":milky_way:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8e\xa0"), ":carousel_horse:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8e\xa1"), ":ferris_wheel:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8e\xa2"), ":roller_coaster:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x9a\x82"), ":steam_locomotive:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x9a\x83"), ":railway_car:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x9a\x84"), ":bullettrain_side:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x9a\x85"), ":bullettrain_front:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x9a\x86"), ":train2:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x9a\x87"), ":metro:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x9a\x88"), ":light_rail:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x9a\x89"), ":station:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x9a\x8a"), ":tram:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x9a\x9d"), ":monorail:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x9a\x9e"), ":mountain_railway:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x9a\x8b"), ":train:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x9a\x8c"), ":bus:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x9a\x8d"), ":oncoming_bus:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x9a\x8e"), ":trolleybus:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x9a\x90"), ":minibus:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x9a\x91"), ":ambulance:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x9a\x92"), ":fire_engine:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x9a\x93"), ":police_car:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x9a\x94"), ":oncoming_police_car:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x9a\x95"), ":taxi:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x9a\x96"), ":oncoming_taxi:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x9a\x97"), ":red_car:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x9a\x98"), ":oncoming_automobile:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x9a\x99"), ":blue_car:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x9a\x9a"), ":truck:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x9a\x9b"), ":articulated_lorry:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x9a\x9c"), ":tractor:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x9a\xb2"), ":bike:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x9b\xb4"), ":scooter:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x9b\xb5"), ":motor_scooter:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x9a\x8f"), ":busstop:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x9b\xa3"), ":motorway:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x9b\xa4"), ":railway_track:"},
-	Emoji{QString::fromUtf8("\xe2\x9b\xbd"), ":fuelpump:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x9a\xa8"), ":rotating_light:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x9a\xa5"), ":traffic_light:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x9a\xa6"), ":vertical_traffic_light:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x9a\xa7"), ":construction:"},
-	Emoji{QString::fromUtf8("\xe2\x9a\x93"), ":anchor:"},
-	Emoji{QString::fromUtf8("\xe2\x9b\xb5"), ":sailboat:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x9b\xb6"), ":canoe:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x9a\xa4"), ":speedboat:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x9b\xb3"), ":cruise_ship:"},
-	Emoji{QString::fromUtf8("\xe2\x9b\xb4"), ":ferry:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x9b\xa5"), ":motorboat:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x9a\xa2"), ":ship:"},
-	Emoji{QString::fromUtf8("\xe2\x9c\x88"), ":airplane:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x9b\xa9"), ":airplane_small:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x9b\xab"), ":airplane_departure:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x9b\xac"), ":airplane_arriving:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x92\xba"), ":seat:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x9a\x81"), ":helicopter:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x9a\x9f"), ":suspension_railway:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x9a\xa0"), ":mountain_cableway:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x9a\xa1"), ":aerial_tramway:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x9a\x80"), ":rocket:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x9b\xb0"), ":satellite_orbital:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8c\xa0"), ":stars:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8c\x88"), ":rainbow:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8e\x86"), ":fireworks:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8e\x87"), ":sparkler:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8e\x91"), ":rice_scene:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8f\x81"), ":checkered_flag:"},
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8f\x8e"), ":race_car:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8f\x8d"), ":motorcycle:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x97\xbe"), ":japan:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8f\x94"), ":mountain_snow:" },
+	Emoji{ QString::fromUtf8("\xe2\x9b\xb0"), ":mountain:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8c\x8b"), ":volcano:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x97\xbb"), ":mount_fuji:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8f\x95"), ":camping:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8f\x96"), ":beach:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8f\x9c"), ":desert:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8f\x9d"), ":island:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8f\x9e"), ":park:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8f\x9f"), ":stadium:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8f\x9b"), ":classical_building:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8f\x97"), ":construction_site:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8f\x98"), ":homes:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8f\x99"), ":cityscape:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8f\x9a"), ":house_abandoned:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8f\xa0"), ":house:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8f\xa1"), ":house_with_garden:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8f\xa2"), ":office:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8f\xa3"), ":post_office:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8f\xa4"), ":european_post_office:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8f\xa5"), ":hospital:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8f\xa6"), ":bank:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8f\xa8"), ":hotel:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8f\xa9"), ":love_hotel:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8f\xaa"), ":convenience_store:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8f\xab"), ":school:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8f\xac"), ":department_store:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8f\xad"), ":factory:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8f\xaf"), ":japanese_castle:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8f\xb0"), ":european_castle:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x92\x92"), ":wedding:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x97\xbc"), ":tokyo_tower:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x97\xbd"), ":statue_of_liberty:" },
+	Emoji{ QString::fromUtf8("\xe2\x9b\xaa"), ":church:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x95\x8c"), ":mosque:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x95\x8d"), ":synagogue:" },
+	Emoji{ QString::fromUtf8("\xe2\x9b\xa9"), ":shinto_shrine:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x95\x8b"), ":kaaba:" },
+	Emoji{ QString::fromUtf8("\xe2\x9b\xb2"), ":fountain:" },
+	Emoji{ QString::fromUtf8("\xe2\x9b\xba"), ":tent:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8c\x81"), ":foggy:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8c\x83"), ":night_with_stars:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8c\x84"), ":sunrise_over_mountains:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8c\x85"), ":sunrise:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8c\x86"), ":city_dusk:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8c\x87"), ":city_sunset:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8c\x89"), ":bridge_at_night:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8c\x8c"), ":milky_way:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8e\xa0"), ":carousel_horse:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8e\xa1"), ":ferris_wheel:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8e\xa2"), ":roller_coaster:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x9a\x82"), ":steam_locomotive:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x9a\x83"), ":railway_car:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x9a\x84"), ":bullettrain_side:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x9a\x85"), ":bullettrain_front:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x9a\x86"), ":train2:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x9a\x87"), ":metro:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x9a\x88"), ":light_rail:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x9a\x89"), ":station:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x9a\x8a"), ":tram:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x9a\x9d"), ":monorail:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x9a\x9e"), ":mountain_railway:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x9a\x8b"), ":train:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x9a\x8c"), ":bus:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x9a\x8d"), ":oncoming_bus:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x9a\x8e"), ":trolleybus:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x9a\x90"), ":minibus:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x9a\x91"), ":ambulance:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x9a\x92"), ":fire_engine:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x9a\x93"), ":police_car:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x9a\x94"), ":oncoming_police_car:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x9a\x95"), ":taxi:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x9a\x96"), ":oncoming_taxi:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x9a\x97"), ":red_car:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x9a\x98"), ":oncoming_automobile:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x9a\x99"), ":blue_car:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x9a\x9a"), ":truck:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x9a\x9b"), ":articulated_lorry:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x9a\x9c"), ":tractor:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x9a\xb2"), ":bike:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x9b\xb4"), ":scooter:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x9b\xb5"), ":motor_scooter:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x9a\x8f"), ":busstop:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x9b\xa3"), ":motorway:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x9b\xa4"), ":railway_track:" },
+	Emoji{ QString::fromUtf8("\xe2\x9b\xbd"), ":fuelpump:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x9a\xa8"), ":rotating_light:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x9a\xa5"), ":traffic_light:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x9a\xa6"), ":vertical_traffic_light:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x9a\xa7"), ":construction:" },
+	Emoji{ QString::fromUtf8("\xe2\x9a\x93"), ":anchor:" },
+	Emoji{ QString::fromUtf8("\xe2\x9b\xb5"), ":sailboat:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x9b\xb6"), ":canoe:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x9a\xa4"), ":speedboat:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x9b\xb3"), ":cruise_ship:" },
+	Emoji{ QString::fromUtf8("\xe2\x9b\xb4"), ":ferry:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x9b\xa5"), ":motorboat:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x9a\xa2"), ":ship:" },
+	Emoji{ QString::fromUtf8("\xe2\x9c\x88"), ":airplane:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x9b\xa9"), ":airplane_small:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x9b\xab"), ":airplane_departure:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x9b\xac"), ":airplane_arriving:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x92\xba"), ":seat:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x9a\x81"), ":helicopter:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x9a\x9f"), ":suspension_railway:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x9a\xa0"), ":mountain_cableway:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x9a\xa1"), ":aerial_tramway:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x9a\x80"), ":rocket:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x9b\xb0"), ":satellite_orbital:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8c\xa0"), ":stars:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8c\x88"), ":rainbow:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8e\x86"), ":fireworks:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8e\x87"), ":sparkler:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8e\x91"), ":rice_scene:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8f\x81"), ":checkered_flag:" },
 };
 
 const QList<Emoji> EmojiProvider::objects = {
-	Emoji{QString::fromUtf8("\xe2\x98\xa0"), ":skull_crossbones:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x92\x8c"), ":love_letter:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x92\xa3"), ":bomb:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x95\xb3"), ":hole:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x9b\x8d"), ":shopping_bags:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x93\xbf"), ":prayer_beads:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x92\x8e"), ":gem:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x94\xaa"), ":knife:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8f\xba"), ":amphora:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x97\xba"), ":map:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x92\x88"), ":barber:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x96\xbc"), ":frame_photo:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x9b\x8e"), ":bellhop:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x9a\xaa"), ":door:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x9b\x8c"), ":sleeping_accommodation:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x9b\x8f"), ":bed:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x9b\x8b"), ":couch:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x9a\xbd"), ":toilet:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x9a\xbf"), ":shower:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x9b\x81"), ":bathtub:"},
-	Emoji{QString::fromUtf8("\xe2\x8c\x9b"), ":hourglass:"},
-	Emoji{QString::fromUtf8("\xe2\x8f\xb3"), ":hourglass_flowing_sand:"},
-	Emoji{QString::fromUtf8("\xe2\x8c\x9a"), ":watch:"},
-	Emoji{QString::fromUtf8("\xe2\x8f\xb0"), ":alarm_clock:"},
-	Emoji{QString::fromUtf8("\xe2\x8f\xb1"), ":stopwatch:"},
-	Emoji{QString::fromUtf8("\xe2\x8f\xb2"), ":timer:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x95\xb0"), ":clock:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8c\xa1"), ":thermometer:"},
-	Emoji{QString::fromUtf8("\xe2\x9b\xb1"), ":beach_umbrella:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8e\x88"), ":balloon:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8e\x89"), ":tada:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8e\x8a"), ":confetti_ball:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8e\x8e"), ":dolls:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8e\x8f"), ":flags:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8e\x90"), ":wind_chime:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8e\x80"), ":ribbon:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8e\x81"), ":gift:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x95\xb9"), ":joystick:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x93\xaf"), ":postal_horn:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8e\x99"), ":microphone2:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8e\x9a"), ":level_slider:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8e\x9b"), ":control_knobs:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x93\xbb"), ":radio:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x93\xb1"), ":iphone:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x93\xb2"), ":calling:"},
-	Emoji{QString::fromUtf8("\xe2\x98\x8e"), ":telephone:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x93\x9e"), ":telephone_receiver:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x93\x9f"), ":pager:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x93\xa0"), ":fax:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x94\x8b"), ":battery:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x94\x8c"), ":electric_plug:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x92\xbb"), ":computer:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x96\xa5"), ":desktop:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x96\xa8"), ":printer:"},
-	Emoji{QString::fromUtf8("\xe2\x8c\xa8"), ":keyboard:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x96\xb1"), ":mouse_three_button:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x96\xb2"), ":trackball:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x92\xbd"), ":minidisc:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x92\xbe"), ":floppy_disk:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x92\xbf"), ":cd:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x93\x80"), ":dvd:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8e\xa5"), ":movie_camera:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8e\x9e"), ":film_frames:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x93\xbd"), ":projector:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x93\xba"), ":tv:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x93\xb7"), ":camera:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x93\xb8"), ":camera_with_flash:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x93\xb9"), ":video_camera:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x93\xbc"), ":vhs:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x94\x8d"), ":mag:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x94\x8e"), ":mag_right:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x94\xac"), ":microscope:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x94\xad"), ":telescope:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x93\xa1"), ":satellite:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x95\xaf"), ":candle:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x92\xa1"), ":bulb:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x94\xa6"), ":flashlight:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8f\xae"), ":izakaya_lantern:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x93\x94"), ":notebook_with_decorative_cover:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x93\x95"), ":closed_book:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x93\x96"), ":book:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x93\x97"), ":green_book:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x93\x98"), ":blue_book:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x93\x99"), ":orange_book:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x93\x9a"), ":books:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x93\x93"), ":notebook:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x93\x92"), ":ledger:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x93\x83"), ":page_with_curl:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x93\x9c"), ":scroll:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x93\x84"), ":page_facing_up:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x93\xb0"), ":newspaper:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x97\x9e"), ":newspaper2:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x93\x91"), ":bookmark_tabs:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x94\x96"), ":bookmark:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8f\xb7"), ":label:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x92\xb0"), ":moneybag:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x92\xb4"), ":yen:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x92\xb5"), ":dollar:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x92\xb6"), ":euro:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x92\xb7"), ":pound:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x92\xb8"), ":money_with_wings:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x92\xb3"), ":credit_card:"},
-	Emoji{QString::fromUtf8("\xe2\x9c\x89"), ":envelope:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x93\xa7"), ":e-mail:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x93\xa8"), ":incoming_envelope:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x93\xa9"), ":envelope_with_arrow:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x93\xa4"), ":outbox_tray:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x93\xa5"), ":inbox_tray:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x93\xa6"), ":package:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x93\xab"), ":mailbox:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x93\xaa"), ":mailbox_closed:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x93\xac"), ":mailbox_with_mail:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x93\xad"), ":mailbox_with_no_mail:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x93\xae"), ":postbox:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x97\xb3"), ":ballot_box:"},
-	Emoji{QString::fromUtf8("\xe2\x9c\x8f"), ":pencil2:"},
-	Emoji{QString::fromUtf8("\xe2\x9c\x92"), ":black_nib:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x96\x8b"), ":pen_fountain:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x96\x8a"), ":pen_ballpoint:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x96\x8c"), ":paintbrush:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x96\x8d"), ":crayon:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x93\x9d"), ":pencil:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x93\x81"), ":file_folder:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x93\x82"), ":open_file_folder:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x97\x82"), ":dividers:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x93\x85"), ":date:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x93\x86"), ":calendar:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x97\x92"), ":notepad_spiral:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x97\x93"), ":calendar_spiral:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x93\x87"), ":card_index:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x93\x88"), ":chart_with_upwards_trend:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x93\x89"), ":chart_with_downwards_trend:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x93\x8a"), ":bar_chart:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x93\x8b"), ":clipboard:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x93\x8c"), ":pushpin:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x93\x8d"), ":round_pushpin:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x93\x8e"), ":paperclip:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x96\x87"), ":paperclips:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x93\x8f"), ":straight_ruler:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x93\x90"), ":triangular_ruler:"},
-	Emoji{QString::fromUtf8("\xe2\x9c\x82"), ":scissors:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x97\x83"), ":card_box:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x97\x84"), ":file_cabinet:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x97\x91"), ":wastebasket:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x94\x92"), ":lock:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x94\x93"), ":unlock:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x94\x8f"), ":lock_with_ink_pen:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x94\x90"), ":closed_lock_with_key:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x94\x91"), ":key:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x97\x9d"), ":key2:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x94\xa8"), ":hammer:"},
-	Emoji{QString::fromUtf8("\xe2\x9b\x8f"), ":pick:"},
-	Emoji{QString::fromUtf8("\xe2\x9a\x92"), ":hammer_pick:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x9b\xa0"), ":tools:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x97\xa1"), ":dagger:"},
-	Emoji{QString::fromUtf8("\xe2\x9a\x94"), ":crossed_swords:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x94\xab"), ":gun:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x9b\xa1"), ":shield:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x94\xa7"), ":wrench:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x94\xa9"), ":nut_and_bolt:"},
-	Emoji{QString::fromUtf8("\xe2\x9a\x99"), ":gear:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x97\x9c"), ":compression:"},
-	Emoji{QString::fromUtf8("\xe2\x9a\x97"), ":alembic:"},
-	Emoji{QString::fromUtf8("\xe2\x9a\x96"), ":scales:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x94\x97"), ":link:"},
-	Emoji{QString::fromUtf8("\xe2\x9b\x93"), ":chains:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x92\x89"), ":syringe:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x92\x8a"), ":pill:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x9a\xac"), ":smoking:"},
-	Emoji{QString::fromUtf8("\xe2\x9a\xb0"), ":coffin:"},
-	Emoji{QString::fromUtf8("\xe2\x9a\xb1"), ":urn:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x97\xbf"), ":moyai:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x9b\xa2"), ":oil:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x94\xae"), ":crystal_ball:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x9b\x92"), ":shopping_cart:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x9a\xa9"), ":triangular_flag_on_post:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8e\x8c"), ":crossed_flags:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8f\xb4"), ":flag_black:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8f\xb3"), ":flag_white:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8f\xb3\xf0\x9f\x8c\x88"), ":rainbow_flag:"},
+	Emoji{ QString::fromUtf8("\xe2\x98\xa0"), ":skull_crossbones:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x92\x8c"), ":love_letter:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x92\xa3"), ":bomb:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x95\xb3"), ":hole:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x9b\x8d"), ":shopping_bags:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x93\xbf"), ":prayer_beads:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x92\x8e"), ":gem:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x94\xaa"), ":knife:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8f\xba"), ":amphora:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x97\xba"), ":map:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x92\x88"), ":barber:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x96\xbc"), ":frame_photo:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x9b\x8e"), ":bellhop:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x9a\xaa"), ":door:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x9b\x8c"), ":sleeping_accommodation:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x9b\x8f"), ":bed:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x9b\x8b"), ":couch:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x9a\xbd"), ":toilet:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x9a\xbf"), ":shower:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x9b\x81"), ":bathtub:" },
+	Emoji{ QString::fromUtf8("\xe2\x8c\x9b"), ":hourglass:" },
+	Emoji{ QString::fromUtf8("\xe2\x8f\xb3"), ":hourglass_flowing_sand:" },
+	Emoji{ QString::fromUtf8("\xe2\x8c\x9a"), ":watch:" },
+	Emoji{ QString::fromUtf8("\xe2\x8f\xb0"), ":alarm_clock:" },
+	Emoji{ QString::fromUtf8("\xe2\x8f\xb1"), ":stopwatch:" },
+	Emoji{ QString::fromUtf8("\xe2\x8f\xb2"), ":timer:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x95\xb0"), ":clock:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8c\xa1"), ":thermometer:" },
+	Emoji{ QString::fromUtf8("\xe2\x9b\xb1"), ":beach_umbrella:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8e\x88"), ":balloon:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8e\x89"), ":tada:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8e\x8a"), ":confetti_ball:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8e\x8e"), ":dolls:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8e\x8f"), ":flags:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8e\x90"), ":wind_chime:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8e\x80"), ":ribbon:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8e\x81"), ":gift:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x95\xb9"), ":joystick:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x93\xaf"), ":postal_horn:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8e\x99"), ":microphone2:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8e\x9a"), ":level_slider:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8e\x9b"), ":control_knobs:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x93\xbb"), ":radio:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x93\xb1"), ":iphone:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x93\xb2"), ":calling:" },
+	Emoji{ QString::fromUtf8("\xe2\x98\x8e"), ":telephone:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x93\x9e"), ":telephone_receiver:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x93\x9f"), ":pager:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x93\xa0"), ":fax:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x94\x8b"), ":battery:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x94\x8c"), ":electric_plug:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x92\xbb"), ":computer:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x96\xa5"), ":desktop:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x96\xa8"), ":printer:" },
+	Emoji{ QString::fromUtf8("\xe2\x8c\xa8"), ":keyboard:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x96\xb1"), ":mouse_three_button:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x96\xb2"), ":trackball:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x92\xbd"), ":minidisc:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x92\xbe"), ":floppy_disk:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x92\xbf"), ":cd:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x93\x80"), ":dvd:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8e\xa5"), ":movie_camera:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8e\x9e"), ":film_frames:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x93\xbd"), ":projector:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x93\xba"), ":tv:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x93\xb7"), ":camera:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x93\xb8"), ":camera_with_flash:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x93\xb9"), ":video_camera:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x93\xbc"), ":vhs:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x94\x8d"), ":mag:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x94\x8e"), ":mag_right:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x94\xac"), ":microscope:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x94\xad"), ":telescope:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x93\xa1"), ":satellite:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x95\xaf"), ":candle:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x92\xa1"), ":bulb:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x94\xa6"), ":flashlight:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8f\xae"), ":izakaya_lantern:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x93\x94"), ":notebook_with_decorative_cover:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x93\x95"), ":closed_book:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x93\x96"), ":book:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x93\x97"), ":green_book:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x93\x98"), ":blue_book:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x93\x99"), ":orange_book:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x93\x9a"), ":books:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x93\x93"), ":notebook:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x93\x92"), ":ledger:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x93\x83"), ":page_with_curl:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x93\x9c"), ":scroll:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x93\x84"), ":page_facing_up:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x93\xb0"), ":newspaper:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x97\x9e"), ":newspaper2:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x93\x91"), ":bookmark_tabs:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x94\x96"), ":bookmark:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8f\xb7"), ":label:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x92\xb0"), ":moneybag:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x92\xb4"), ":yen:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x92\xb5"), ":dollar:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x92\xb6"), ":euro:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x92\xb7"), ":pound:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x92\xb8"), ":money_with_wings:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x92\xb3"), ":credit_card:" },
+	Emoji{ QString::fromUtf8("\xe2\x9c\x89"), ":envelope:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x93\xa7"), ":e-mail:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x93\xa8"), ":incoming_envelope:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x93\xa9"), ":envelope_with_arrow:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x93\xa4"), ":outbox_tray:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x93\xa5"), ":inbox_tray:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x93\xa6"), ":package:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x93\xab"), ":mailbox:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x93\xaa"), ":mailbox_closed:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x93\xac"), ":mailbox_with_mail:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x93\xad"), ":mailbox_with_no_mail:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x93\xae"), ":postbox:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x97\xb3"), ":ballot_box:" },
+	Emoji{ QString::fromUtf8("\xe2\x9c\x8f"), ":pencil2:" },
+	Emoji{ QString::fromUtf8("\xe2\x9c\x92"), ":black_nib:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x96\x8b"), ":pen_fountain:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x96\x8a"), ":pen_ballpoint:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x96\x8c"), ":paintbrush:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x96\x8d"), ":crayon:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x93\x9d"), ":pencil:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x93\x81"), ":file_folder:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x93\x82"), ":open_file_folder:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x97\x82"), ":dividers:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x93\x85"), ":date:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x93\x86"), ":calendar:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x97\x92"), ":notepad_spiral:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x97\x93"), ":calendar_spiral:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x93\x87"), ":card_index:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x93\x88"), ":chart_with_upwards_trend:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x93\x89"), ":chart_with_downwards_trend:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x93\x8a"), ":bar_chart:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x93\x8b"), ":clipboard:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x93\x8c"), ":pushpin:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x93\x8d"), ":round_pushpin:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x93\x8e"), ":paperclip:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x96\x87"), ":paperclips:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x93\x8f"), ":straight_ruler:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x93\x90"), ":triangular_ruler:" },
+	Emoji{ QString::fromUtf8("\xe2\x9c\x82"), ":scissors:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x97\x83"), ":card_box:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x97\x84"), ":file_cabinet:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x97\x91"), ":wastebasket:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x94\x92"), ":lock:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x94\x93"), ":unlock:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x94\x8f"), ":lock_with_ink_pen:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x94\x90"), ":closed_lock_with_key:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x94\x91"), ":key:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x97\x9d"), ":key2:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x94\xa8"), ":hammer:" },
+	Emoji{ QString::fromUtf8("\xe2\x9b\x8f"), ":pick:" },
+	Emoji{ QString::fromUtf8("\xe2\x9a\x92"), ":hammer_pick:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x9b\xa0"), ":tools:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x97\xa1"), ":dagger:" },
+	Emoji{ QString::fromUtf8("\xe2\x9a\x94"), ":crossed_swords:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x94\xab"), ":gun:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x9b\xa1"), ":shield:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x94\xa7"), ":wrench:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x94\xa9"), ":nut_and_bolt:" },
+	Emoji{ QString::fromUtf8("\xe2\x9a\x99"), ":gear:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x97\x9c"), ":compression:" },
+	Emoji{ QString::fromUtf8("\xe2\x9a\x97"), ":alembic:" },
+	Emoji{ QString::fromUtf8("\xe2\x9a\x96"), ":scales:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x94\x97"), ":link:" },
+	Emoji{ QString::fromUtf8("\xe2\x9b\x93"), ":chains:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x92\x89"), ":syringe:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x92\x8a"), ":pill:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x9a\xac"), ":smoking:" },
+	Emoji{ QString::fromUtf8("\xe2\x9a\xb0"), ":coffin:" },
+	Emoji{ QString::fromUtf8("\xe2\x9a\xb1"), ":urn:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x97\xbf"), ":moyai:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x9b\xa2"), ":oil:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x94\xae"), ":crystal_ball:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x9b\x92"), ":shopping_cart:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x9a\xa9"), ":triangular_flag_on_post:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8e\x8c"), ":crossed_flags:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8f\xb4"), ":flag_black:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8f\xb3"), ":flag_white:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8f\xb3\xf0\x9f\x8c\x88"), ":rainbow_flag:" },
 };
 
 const QList<Emoji> EmojiProvider::symbols = {
-	Emoji{QString::fromUtf8("\xf0\x9f\x91\x81\xf0\x9f\x97\xa8"), ":eye_in_speech_bubble:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x92\x98"), ":cupid:"},
-	Emoji{QString::fromUtf8("\xe2\x9d\xa4"), ":heart:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x92\x93"), ":heartbeat:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x92\x94"), ":broken_heart:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x92\x95"), ":two_hearts:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x92\x96"), ":sparkling_heart:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x92\x97"), ":heartpulse:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x92\x99"), ":blue_heart:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x92\x9a"), ":green_heart:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x92\x9b"), ":yellow_heart:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x92\x9c"), ":purple_heart:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x96\xa4"), ":black_heart:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x92\x9d"), ":gift_heart:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x92\x9e"), ":revolving_hearts:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x92\x9f"), ":heart_decoration:"},
-	Emoji{QString::fromUtf8("\xe2\x9d\xa3"), ":heart_exclamation:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x92\xa2"), ":anger:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x92\xa5"), ":boom:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x92\xab"), ":dizzy:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x92\xac"), ":speech_balloon:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x97\xa8"), ":speech_left:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x97\xaf"), ":anger_right:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x92\xad"), ":thought_balloon:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x92\xae"), ":white_flower:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8c\x90"), ":globe_with_meridians:"},
-	Emoji{QString::fromUtf8("\xe2\x99\xa8"), ":hotsprings:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x9b\x91"), ":octagonal_sign:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x95\x9b"), ":clock12:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x95\xa7"), ":clock1230:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x95\x90"), ":clock1:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x95\x9c"), ":clock130:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x95\x91"), ":clock2:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x95\x9d"), ":clock230:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x95\x92"), ":clock3:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x95\x9e"), ":clock330:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x95\x93"), ":clock4:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x95\x9f"), ":clock430:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x95\x94"), ":clock5:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x95\xa0"), ":clock530:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x95\x95"), ":clock6:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x95\xa1"), ":clock630:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x95\x96"), ":clock7:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x95\xa2"), ":clock730:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x95\x97"), ":clock8:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x95\xa3"), ":clock830:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x95\x98"), ":clock9:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x95\xa4"), ":clock930:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x95\x99"), ":clock10:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x95\xa5"), ":clock1030:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x95\x9a"), ":clock11:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x95\xa6"), ":clock1130:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8c\x80"), ":cyclone:"},
-	Emoji{QString::fromUtf8("\xe2\x99\xa0"), ":spades:"},
-	Emoji{QString::fromUtf8("\xe2\x99\xa5"), ":hearts:"},
-	Emoji{QString::fromUtf8("\xe2\x99\xa6"), ":diamonds:"},
-	Emoji{QString::fromUtf8("\xe2\x99\xa3"), ":clubs:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x83\x8f"), ":black_joker:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x80\x84"), ":mahjong:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8e\xb4"), ":flower_playing_cards:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x94\x87"), ":mute:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x94\x88"), ":speaker:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x94\x89"), ":sound:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x94\x8a"), ":loud_sound:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x93\xa2"), ":loudspeaker:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x93\xa3"), ":mega:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x94\x94"), ":bell:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x94\x95"), ":no_bell:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8e\xb5"), ":musical_note:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8e\xb6"), ":notes:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x92\xb9"), ":chart:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x92\xb1"), ":currency_exchange:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x92\xb2"), ":heavy_dollar_sign:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8f\xa7"), ":atm:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x9a\xae"), ":put_litter_in_its_place:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x9a\xb0"), ":potable_water:"},
-	Emoji{QString::fromUtf8("\xe2\x99\xbf"), ":wheelchair:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x9a\xb9"), ":mens:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x9a\xba"), ":womens:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x9a\xbb"), ":restroom:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x9a\xbc"), ":baby_symbol:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x9a\xbe"), ":wc:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x9b\x82"), ":passport_control:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x9b\x83"), ":customs:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x9b\x84"), ":baggage_claim:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x9b\x85"), ":left_luggage:"},
-	Emoji{QString::fromUtf8("\xe2\x9a\xa0"), ":warning:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x9a\xb8"), ":children_crossing:"},
-	Emoji{QString::fromUtf8("\xe2\x9b\x94"), ":no_entry:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x9a\xab"), ":no_entry_sign:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x9a\xb3"), ":no_bicycles:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x9a\xad"), ":no_smoking:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x9a\xaf"), ":do_not_litter:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x9a\xb1"), ":non-potable_water:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x9a\xb7"), ":no_pedestrians:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x93\xb5"), ":no_mobile_phones:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x94\x9e"), ":underage:"},
-	Emoji{QString::fromUtf8("\xe2\x98\xa2"), ":radioactive:"},
-	Emoji{QString::fromUtf8("\xe2\x98\xa3"), ":biohazard:"},
-	Emoji{QString::fromUtf8("\xe2\xac\x86"), ":arrow_up:"},
-	Emoji{QString::fromUtf8("\xe2\x86\x97"), ":arrow_upper_right:"},
-	Emoji{QString::fromUtf8("\xe2\x9e\xa1"), ":arrow_right:"},
-	Emoji{QString::fromUtf8("\xe2\x86\x98"), ":arrow_lower_right:"},
-	Emoji{QString::fromUtf8("\xe2\xac\x87"), ":arrow_down:"},
-	Emoji{QString::fromUtf8("\xe2\x86\x99"), ":arrow_lower_left:"},
-	Emoji{QString::fromUtf8("\xe2\xac\x85"), ":arrow_left:"},
-	Emoji{QString::fromUtf8("\xe2\x86\x96"), ":arrow_upper_left:"},
-	Emoji{QString::fromUtf8("\xe2\x86\x95"), ":arrow_up_down:"},
-	Emoji{QString::fromUtf8("\xe2\x86\x94"), ":left_right_arrow:"},
-	Emoji{QString::fromUtf8("\xe2\x86\xa9"), ":leftwards_arrow_with_hook:"},
-	Emoji{QString::fromUtf8("\xe2\x86\xaa"), ":arrow_right_hook:"},
-	Emoji{QString::fromUtf8("\xe2\xa4\xb4"), ":arrow_heading_up:"},
-	Emoji{QString::fromUtf8("\xe2\xa4\xb5"), ":arrow_heading_down:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x94\x83"), ":arrows_clockwise:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x94\x84"), ":arrows_counterclockwise:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x94\x99"), ":back:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x94\x9a"), ":end:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x94\x9b"), ":on:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x94\x9c"), ":soon:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x94\x9d"), ":top:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x9b\x90"), ":place_of_worship:"},
-	Emoji{QString::fromUtf8("\xe2\x9a\x9b"), ":atom:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x95\x89"), ":om_symbol:"},
-	Emoji{QString::fromUtf8("\xe2\x9c\xa1"), ":star_of_david:"},
-	Emoji{QString::fromUtf8("\xe2\x98\xb8"), ":wheel_of_dharma:"},
-	Emoji{QString::fromUtf8("\xe2\x98\xaf"), ":yin_yang:"},
-	Emoji{QString::fromUtf8("\xe2\x9c\x9d"), ":cross:"},
-	Emoji{QString::fromUtf8("\xe2\x98\xa6"), ":orthodox_cross:"},
-	Emoji{QString::fromUtf8("\xe2\x98\xaa"), ":star_and_crescent:"},
-	Emoji{QString::fromUtf8("\xe2\x98\xae"), ":peace:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x95\x8e"), ":menorah:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x94\xaf"), ":six_pointed_star:"},
-	Emoji{QString::fromUtf8("\xe2\x99\x88"), ":aries:"},
-	Emoji{QString::fromUtf8("\xe2\x99\x89"), ":taurus:"},
-	Emoji{QString::fromUtf8("\xe2\x99\x8a"), ":gemini:"},
-	Emoji{QString::fromUtf8("\xe2\x99\x8b"), ":cancer:"},
-	Emoji{QString::fromUtf8("\xe2\x99\x8c"), ":leo:"},
-	Emoji{QString::fromUtf8("\xe2\x99\x8d"), ":virgo:"},
-	Emoji{QString::fromUtf8("\xe2\x99\x8e"), ":libra:"},
-	Emoji{QString::fromUtf8("\xe2\x99\x8f"), ":scorpius:"},
-	Emoji{QString::fromUtf8("\xe2\x99\x90"), ":sagittarius:"},
-	Emoji{QString::fromUtf8("\xe2\x99\x91"), ":capricorn:"},
-	Emoji{QString::fromUtf8("\xe2\x99\x92"), ":aquarius:"},
-	Emoji{QString::fromUtf8("\xe2\x99\x93"), ":pisces:"},
-	Emoji{QString::fromUtf8("\xe2\x9b\x8e"), ":ophiuchus:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x94\x80"), ":twisted_rightwards_arrows:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x94\x81"), ":repeat:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x94\x82"), ":repeat_one:"},
-	Emoji{QString::fromUtf8("\xe2\x96\xb6"), ":arrow_forward:"},
-	Emoji{QString::fromUtf8("\xe2\x8f\xa9"), ":fast_forward:"},
-	Emoji{QString::fromUtf8("\xe2\x8f\xad"), ":track_next:"},
-	Emoji{QString::fromUtf8("\xe2\x8f\xaf"), ":play_pause:"},
-	Emoji{QString::fromUtf8("\xe2\x97\x80"), ":arrow_backward:"},
-	Emoji{QString::fromUtf8("\xe2\x8f\xaa"), ":rewind:"},
-	Emoji{QString::fromUtf8("\xe2\x8f\xae"), ":track_previous:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x94\xbc"), ":arrow_up_small:"},
-	Emoji{QString::fromUtf8("\xe2\x8f\xab"), ":arrow_double_up:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x94\xbd"), ":arrow_down_small:"},
-	Emoji{QString::fromUtf8("\xe2\x8f\xac"), ":arrow_double_down:"},
-	Emoji{QString::fromUtf8("\xe2\x8f\xb8"), ":pause_button:"},
-	Emoji{QString::fromUtf8("\xe2\x8f\xb9"), ":stop_button:"},
-	Emoji{QString::fromUtf8("\xe2\x8f\xba"), ":record_button:"},
-	Emoji{QString::fromUtf8("\xe2\x8f\x8f"), ":eject:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x8e\xa6"), ":cinema:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x94\x85"), ":low_brightness:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x94\x86"), ":high_brightness:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x93\xb6"), ":signal_strength:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x93\xb3"), ":vibration_mode:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x93\xb4"), ":mobile_phone_off:"},
-	Emoji{QString::fromUtf8("\xe2\x99\xbb"), ":recycle:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x93\x9b"), ":name_badge:"},
-	Emoji{QString::fromUtf8("\xe2\x9a\x9c"), ":fleur-de-lis:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x94\xb0"), ":beginner:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x94\xb1"), ":trident:"},
-	Emoji{QString::fromUtf8("\xe2\xad\x95"), ":o:"},
-	Emoji{QString::fromUtf8("\xe2\x9c\x85"), ":white_check_mark:"},
-	Emoji{QString::fromUtf8("\xe2\x98\x91"), ":ballot_box_with_check:"},
-	Emoji{QString::fromUtf8("\xe2\x9c\x94"), ":heavy_check_mark:"},
-	Emoji{QString::fromUtf8("\xe2\x9c\x96"), ":heavy_multiplication_x:"},
-	Emoji{QString::fromUtf8("\xe2\x9d\x8c"), ":x:"},
-	Emoji{QString::fromUtf8("\xe2\x9d\x8e"), ":negative_squared_cross_mark:"},
-	Emoji{QString::fromUtf8("\xe2\x9e\x95"), ":heavy_plus_sign:"},
-	Emoji{QString::fromUtf8("\xe2\x9e\x96"), ":heavy_minus_sign:"},
-	Emoji{QString::fromUtf8("\xe2\x9e\x97"), ":heavy_division_sign:"},
-	Emoji{QString::fromUtf8("\xe2\x9e\xb0"), ":curly_loop:"},
-	Emoji{QString::fromUtf8("\xe2\x9e\xbf"), ":loop:"},
-	Emoji{QString::fromUtf8("\xe3\x80\xbd"), ":part_alternation_mark:"},
-	Emoji{QString::fromUtf8("\xe2\x9c\xb3"), ":eight_spoked_asterisk:"},
-	Emoji{QString::fromUtf8("\xe2\x9c\xb4"), ":eight_pointed_black_star:"},
-	Emoji{QString::fromUtf8("\xe2\x9d\x87"), ":sparkle:"},
-	Emoji{QString::fromUtf8("\xe2\x80\xbc"), ":bangbang:"},
-	Emoji{QString::fromUtf8("\xe2\x81\x89"), ":interrobang:"},
-	Emoji{QString::fromUtf8("\xe2\x9d\x93"), ":question:"},
-	Emoji{QString::fromUtf8("\xe2\x9d\x94"), ":grey_question:"},
-	Emoji{QString::fromUtf8("\xe2\x9d\x95"), ":grey_exclamation:"},
-	Emoji{QString::fromUtf8("\xe2\x9d\x97"), ":exclamation:"},
-	Emoji{QString::fromUtf8("\xe3\x80\xb0"), ":wavy_dash:"},
-	Emoji{QString::fromUtf8("\xc2\xa9"), ":copyright:"},
-	Emoji{QString::fromUtf8("\xc2\xae"), ":registered:"},
-	Emoji{QString::fromUtf8("\xe2\x84\xa2"), ":tm:"},
-	Emoji{QString::fromUtf8("#\xe2\x83\xa3"), ":hash:"},
-	Emoji{QString::fromUtf8("*\xe2\x83\xa3"), ":asterisk:"},
-	Emoji{QString::fromUtf8("0\xe2\x83\xa3"), ":zero:"},
-	Emoji{QString::fromUtf8("1\xe2\x83\xa3"), ":one:"},
-	Emoji{QString::fromUtf8("2\xe2\x83\xa3"), ":two:"},
-	Emoji{QString::fromUtf8("3\xe2\x83\xa3"), ":three:"},
-	Emoji{QString::fromUtf8("4\xe2\x83\xa3"), ":four:"},
-	Emoji{QString::fromUtf8("5\xe2\x83\xa3"), ":five:"},
-	Emoji{QString::fromUtf8("6\xe2\x83\xa3"), ":six:"},
-	Emoji{QString::fromUtf8("7\xe2\x83\xa3"), ":seven:"},
-	Emoji{QString::fromUtf8("8\xe2\x83\xa3"), ":eight:"},
-	Emoji{QString::fromUtf8("9\xe2\x83\xa3"), ":nine:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x94\x9f"), ":keycap_ten:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x92\xaf"), ":100:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x94\xa0"), ":capital_abcd:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x94\xa1"), ":abcd:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x94\xa2"), ":1234:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x94\xa3"), ":symbols:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x94\xa4"), ":abc:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x85\xb0"), ":a:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x86\x8e"), ":ab:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x85\xb1"), ":b:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x86\x91"), ":cl:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x86\x92"), ":cool:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x86\x93"), ":free:"},
-	Emoji{QString::fromUtf8("\xe2\x84\xb9"), ":information_source:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x86\x94"), ":id:"},
-	Emoji{QString::fromUtf8("\xe2\x93\x82"), ":m:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x86\x95"), ":new:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x86\x96"), ":ng:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x85\xbe"), ":o2:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x86\x97"), ":ok:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x85\xbf"), ":parking:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x86\x98"), ":sos:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x86\x99"), ":up:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x86\x9a"), ":vs:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x88\x81"), ":koko:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x88\x82"), ":sa:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x88\xb7"), ":u6708:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x88\xb6"), ":u6709:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x88\xaf"), ":u6307:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x89\x90"), ":ideograph_advantage:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x88\xb9"), ":u5272:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x88\x9a"), ":u7121:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x88\xb2"), ":u7981:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x89\x91"), ":accept:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x88\xb8"), ":u7533:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x88\xb4"), ":u5408:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x88\xb3"), ":u7a7a:"},
-	Emoji{QString::fromUtf8("\xe3\x8a\x97"), ":congratulations:"},
-	Emoji{QString::fromUtf8("\xe3\x8a\x99"), ":secret:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x88\xba"), ":u55b6:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x88\xb5"), ":u6e80:"},
-	Emoji{QString::fromUtf8("\xe2\x96\xaa"), ":black_small_square:"},
-	Emoji{QString::fromUtf8("\xe2\x96\xab"), ":white_small_square:"},
-	Emoji{QString::fromUtf8("\xe2\x97\xbb"), ":white_medium_square:"},
-	Emoji{QString::fromUtf8("\xe2\x97\xbc"), ":black_medium_square:"},
-	Emoji{QString::fromUtf8("\xe2\x97\xbd"), ":white_medium_small_square:"},
-	Emoji{QString::fromUtf8("\xe2\x97\xbe"), ":black_medium_small_square:"},
-	Emoji{QString::fromUtf8("\xe2\xac\x9b"), ":black_large_square:"},
-	Emoji{QString::fromUtf8("\xe2\xac\x9c"), ":white_large_square:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x94\xb6"), ":large_orange_diamond:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x94\xb7"), ":large_blue_diamond:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x94\xb8"), ":small_orange_diamond:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x94\xb9"), ":small_blue_diamond:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x94\xba"), ":small_red_triangle:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x94\xbb"), ":small_red_triangle_down:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x92\xa0"), ":diamond_shape_with_a_dot_inside:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x94\x98"), ":radio_button:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x94\xb2"), ":black_square_button:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x94\xb3"), ":white_square_button:"},
-	Emoji{QString::fromUtf8("\xe2\x9a\xaa"), ":white_circle:"},
-	Emoji{QString::fromUtf8("\xe2\x9a\xab"), ":black_circle:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x94\xb4"), ":red_circle:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x94\xb5"), ":blue_circle:"},
+	Emoji{ QString::fromUtf8("\xf0\x9f\x91\x81\xf0\x9f\x97\xa8"), ":eye_in_speech_bubble:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x92\x98"), ":cupid:" },
+	Emoji{ QString::fromUtf8("\xe2\x9d\xa4"), ":heart:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x92\x93"), ":heartbeat:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x92\x94"), ":broken_heart:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x92\x95"), ":two_hearts:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x92\x96"), ":sparkling_heart:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x92\x97"), ":heartpulse:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x92\x99"), ":blue_heart:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x92\x9a"), ":green_heart:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x92\x9b"), ":yellow_heart:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x92\x9c"), ":purple_heart:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x96\xa4"), ":black_heart:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x92\x9d"), ":gift_heart:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x92\x9e"), ":revolving_hearts:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x92\x9f"), ":heart_decoration:" },
+	Emoji{ QString::fromUtf8("\xe2\x9d\xa3"), ":heart_exclamation:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x92\xa2"), ":anger:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x92\xa5"), ":boom:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x92\xab"), ":dizzy:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x92\xac"), ":speech_balloon:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x97\xa8"), ":speech_left:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x97\xaf"), ":anger_right:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x92\xad"), ":thought_balloon:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x92\xae"), ":white_flower:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8c\x90"), ":globe_with_meridians:" },
+	Emoji{ QString::fromUtf8("\xe2\x99\xa8"), ":hotsprings:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x9b\x91"), ":octagonal_sign:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x95\x9b"), ":clock12:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x95\xa7"), ":clock1230:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x95\x90"), ":clock1:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x95\x9c"), ":clock130:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x95\x91"), ":clock2:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x95\x9d"), ":clock230:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x95\x92"), ":clock3:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x95\x9e"), ":clock330:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x95\x93"), ":clock4:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x95\x9f"), ":clock430:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x95\x94"), ":clock5:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x95\xa0"), ":clock530:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x95\x95"), ":clock6:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x95\xa1"), ":clock630:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x95\x96"), ":clock7:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x95\xa2"), ":clock730:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x95\x97"), ":clock8:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x95\xa3"), ":clock830:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x95\x98"), ":clock9:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x95\xa4"), ":clock930:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x95\x99"), ":clock10:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x95\xa5"), ":clock1030:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x95\x9a"), ":clock11:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x95\xa6"), ":clock1130:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8c\x80"), ":cyclone:" },
+	Emoji{ QString::fromUtf8("\xe2\x99\xa0"), ":spades:" },
+	Emoji{ QString::fromUtf8("\xe2\x99\xa5"), ":hearts:" },
+	Emoji{ QString::fromUtf8("\xe2\x99\xa6"), ":diamonds:" },
+	Emoji{ QString::fromUtf8("\xe2\x99\xa3"), ":clubs:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x83\x8f"), ":black_joker:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x80\x84"), ":mahjong:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8e\xb4"), ":flower_playing_cards:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x94\x87"), ":mute:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x94\x88"), ":speaker:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x94\x89"), ":sound:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x94\x8a"), ":loud_sound:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x93\xa2"), ":loudspeaker:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x93\xa3"), ":mega:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x94\x94"), ":bell:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x94\x95"), ":no_bell:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8e\xb5"), ":musical_note:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8e\xb6"), ":notes:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x92\xb9"), ":chart:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x92\xb1"), ":currency_exchange:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x92\xb2"), ":heavy_dollar_sign:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8f\xa7"), ":atm:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x9a\xae"), ":put_litter_in_its_place:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x9a\xb0"), ":potable_water:" },
+	Emoji{ QString::fromUtf8("\xe2\x99\xbf"), ":wheelchair:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x9a\xb9"), ":mens:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x9a\xba"), ":womens:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x9a\xbb"), ":restroom:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x9a\xbc"), ":baby_symbol:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x9a\xbe"), ":wc:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x9b\x82"), ":passport_control:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x9b\x83"), ":customs:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x9b\x84"), ":baggage_claim:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x9b\x85"), ":left_luggage:" },
+	Emoji{ QString::fromUtf8("\xe2\x9a\xa0"), ":warning:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x9a\xb8"), ":children_crossing:" },
+	Emoji{ QString::fromUtf8("\xe2\x9b\x94"), ":no_entry:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x9a\xab"), ":no_entry_sign:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x9a\xb3"), ":no_bicycles:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x9a\xad"), ":no_smoking:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x9a\xaf"), ":do_not_litter:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x9a\xb1"), ":non-potable_water:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x9a\xb7"), ":no_pedestrians:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x93\xb5"), ":no_mobile_phones:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x94\x9e"), ":underage:" },
+	Emoji{ QString::fromUtf8("\xe2\x98\xa2"), ":radioactive:" },
+	Emoji{ QString::fromUtf8("\xe2\x98\xa3"), ":biohazard:" },
+	Emoji{ QString::fromUtf8("\xe2\xac\x86"), ":arrow_up:" },
+	Emoji{ QString::fromUtf8("\xe2\x86\x97"), ":arrow_upper_right:" },
+	Emoji{ QString::fromUtf8("\xe2\x9e\xa1"), ":arrow_right:" },
+	Emoji{ QString::fromUtf8("\xe2\x86\x98"), ":arrow_lower_right:" },
+	Emoji{ QString::fromUtf8("\xe2\xac\x87"), ":arrow_down:" },
+	Emoji{ QString::fromUtf8("\xe2\x86\x99"), ":arrow_lower_left:" },
+	Emoji{ QString::fromUtf8("\xe2\xac\x85"), ":arrow_left:" },
+	Emoji{ QString::fromUtf8("\xe2\x86\x96"), ":arrow_upper_left:" },
+	Emoji{ QString::fromUtf8("\xe2\x86\x95"), ":arrow_up_down:" },
+	Emoji{ QString::fromUtf8("\xe2\x86\x94"), ":left_right_arrow:" },
+	Emoji{ QString::fromUtf8("\xe2\x86\xa9"), ":leftwards_arrow_with_hook:" },
+	Emoji{ QString::fromUtf8("\xe2\x86\xaa"), ":arrow_right_hook:" },
+	Emoji{ QString::fromUtf8("\xe2\xa4\xb4"), ":arrow_heading_up:" },
+	Emoji{ QString::fromUtf8("\xe2\xa4\xb5"), ":arrow_heading_down:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x94\x83"), ":arrows_clockwise:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x94\x84"), ":arrows_counterclockwise:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x94\x99"), ":back:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x94\x9a"), ":end:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x94\x9b"), ":on:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x94\x9c"), ":soon:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x94\x9d"), ":top:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x9b\x90"), ":place_of_worship:" },
+	Emoji{ QString::fromUtf8("\xe2\x9a\x9b"), ":atom:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x95\x89"), ":om_symbol:" },
+	Emoji{ QString::fromUtf8("\xe2\x9c\xa1"), ":star_of_david:" },
+	Emoji{ QString::fromUtf8("\xe2\x98\xb8"), ":wheel_of_dharma:" },
+	Emoji{ QString::fromUtf8("\xe2\x98\xaf"), ":yin_yang:" },
+	Emoji{ QString::fromUtf8("\xe2\x9c\x9d"), ":cross:" },
+	Emoji{ QString::fromUtf8("\xe2\x98\xa6"), ":orthodox_cross:" },
+	Emoji{ QString::fromUtf8("\xe2\x98\xaa"), ":star_and_crescent:" },
+	Emoji{ QString::fromUtf8("\xe2\x98\xae"), ":peace:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x95\x8e"), ":menorah:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x94\xaf"), ":six_pointed_star:" },
+	Emoji{ QString::fromUtf8("\xe2\x99\x88"), ":aries:" },
+	Emoji{ QString::fromUtf8("\xe2\x99\x89"), ":taurus:" },
+	Emoji{ QString::fromUtf8("\xe2\x99\x8a"), ":gemini:" },
+	Emoji{ QString::fromUtf8("\xe2\x99\x8b"), ":cancer:" },
+	Emoji{ QString::fromUtf8("\xe2\x99\x8c"), ":leo:" },
+	Emoji{ QString::fromUtf8("\xe2\x99\x8d"), ":virgo:" },
+	Emoji{ QString::fromUtf8("\xe2\x99\x8e"), ":libra:" },
+	Emoji{ QString::fromUtf8("\xe2\x99\x8f"), ":scorpius:" },
+	Emoji{ QString::fromUtf8("\xe2\x99\x90"), ":sagittarius:" },
+	Emoji{ QString::fromUtf8("\xe2\x99\x91"), ":capricorn:" },
+	Emoji{ QString::fromUtf8("\xe2\x99\x92"), ":aquarius:" },
+	Emoji{ QString::fromUtf8("\xe2\x99\x93"), ":pisces:" },
+	Emoji{ QString::fromUtf8("\xe2\x9b\x8e"), ":ophiuchus:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x94\x80"), ":twisted_rightwards_arrows:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x94\x81"), ":repeat:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x94\x82"), ":repeat_one:" },
+	Emoji{ QString::fromUtf8("\xe2\x96\xb6"), ":arrow_forward:" },
+	Emoji{ QString::fromUtf8("\xe2\x8f\xa9"), ":fast_forward:" },
+	Emoji{ QString::fromUtf8("\xe2\x8f\xad"), ":track_next:" },
+	Emoji{ QString::fromUtf8("\xe2\x8f\xaf"), ":play_pause:" },
+	Emoji{ QString::fromUtf8("\xe2\x97\x80"), ":arrow_backward:" },
+	Emoji{ QString::fromUtf8("\xe2\x8f\xaa"), ":rewind:" },
+	Emoji{ QString::fromUtf8("\xe2\x8f\xae"), ":track_previous:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x94\xbc"), ":arrow_up_small:" },
+	Emoji{ QString::fromUtf8("\xe2\x8f\xab"), ":arrow_double_up:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x94\xbd"), ":arrow_down_small:" },
+	Emoji{ QString::fromUtf8("\xe2\x8f\xac"), ":arrow_double_down:" },
+	Emoji{ QString::fromUtf8("\xe2\x8f\xb8"), ":pause_button:" },
+	Emoji{ QString::fromUtf8("\xe2\x8f\xb9"), ":stop_button:" },
+	Emoji{ QString::fromUtf8("\xe2\x8f\xba"), ":record_button:" },
+	Emoji{ QString::fromUtf8("\xe2\x8f\x8f"), ":eject:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x8e\xa6"), ":cinema:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x94\x85"), ":low_brightness:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x94\x86"), ":high_brightness:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x93\xb6"), ":signal_strength:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x93\xb3"), ":vibration_mode:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x93\xb4"), ":mobile_phone_off:" },
+	Emoji{ QString::fromUtf8("\xe2\x99\xbb"), ":recycle:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x93\x9b"), ":name_badge:" },
+	Emoji{ QString::fromUtf8("\xe2\x9a\x9c"), ":fleur-de-lis:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x94\xb0"), ":beginner:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x94\xb1"), ":trident:" },
+	Emoji{ QString::fromUtf8("\xe2\xad\x95"), ":o:" },
+	Emoji{ QString::fromUtf8("\xe2\x9c\x85"), ":white_check_mark:" },
+	Emoji{ QString::fromUtf8("\xe2\x98\x91"), ":ballot_box_with_check:" },
+	Emoji{ QString::fromUtf8("\xe2\x9c\x94"), ":heavy_check_mark:" },
+	Emoji{ QString::fromUtf8("\xe2\x9c\x96"), ":heavy_multiplication_x:" },
+	Emoji{ QString::fromUtf8("\xe2\x9d\x8c"), ":x:" },
+	Emoji{ QString::fromUtf8("\xe2\x9d\x8e"), ":negative_squared_cross_mark:" },
+	Emoji{ QString::fromUtf8("\xe2\x9e\x95"), ":heavy_plus_sign:" },
+	Emoji{ QString::fromUtf8("\xe2\x9e\x96"), ":heavy_minus_sign:" },
+	Emoji{ QString::fromUtf8("\xe2\x9e\x97"), ":heavy_division_sign:" },
+	Emoji{ QString::fromUtf8("\xe2\x9e\xb0"), ":curly_loop:" },
+	Emoji{ QString::fromUtf8("\xe2\x9e\xbf"), ":loop:" },
+	Emoji{ QString::fromUtf8("\xe3\x80\xbd"), ":part_alternation_mark:" },
+	Emoji{ QString::fromUtf8("\xe2\x9c\xb3"), ":eight_spoked_asterisk:" },
+	Emoji{ QString::fromUtf8("\xe2\x9c\xb4"), ":eight_pointed_black_star:" },
+	Emoji{ QString::fromUtf8("\xe2\x9d\x87"), ":sparkle:" },
+	Emoji{ QString::fromUtf8("\xe2\x80\xbc"), ":bangbang:" },
+	Emoji{ QString::fromUtf8("\xe2\x81\x89"), ":interrobang:" },
+	Emoji{ QString::fromUtf8("\xe2\x9d\x93"), ":question:" },
+	Emoji{ QString::fromUtf8("\xe2\x9d\x94"), ":grey_question:" },
+	Emoji{ QString::fromUtf8("\xe2\x9d\x95"), ":grey_exclamation:" },
+	Emoji{ QString::fromUtf8("\xe2\x9d\x97"), ":exclamation:" },
+	Emoji{ QString::fromUtf8("\xe3\x80\xb0"), ":wavy_dash:" },
+	Emoji{ QString::fromUtf8("\xc2\xa9"), ":copyright:" },
+	Emoji{ QString::fromUtf8("\xc2\xae"), ":registered:" },
+	Emoji{ QString::fromUtf8("\xe2\x84\xa2"), ":tm:" },
+	Emoji{ QString::fromUtf8("#\xe2\x83\xa3"), ":hash:" },
+	Emoji{ QString::fromUtf8("*\xe2\x83\xa3"), ":asterisk:" },
+	Emoji{ QString::fromUtf8("0\xe2\x83\xa3"), ":zero:" },
+	Emoji{ QString::fromUtf8("1\xe2\x83\xa3"), ":one:" },
+	Emoji{ QString::fromUtf8("2\xe2\x83\xa3"), ":two:" },
+	Emoji{ QString::fromUtf8("3\xe2\x83\xa3"), ":three:" },
+	Emoji{ QString::fromUtf8("4\xe2\x83\xa3"), ":four:" },
+	Emoji{ QString::fromUtf8("5\xe2\x83\xa3"), ":five:" },
+	Emoji{ QString::fromUtf8("6\xe2\x83\xa3"), ":six:" },
+	Emoji{ QString::fromUtf8("7\xe2\x83\xa3"), ":seven:" },
+	Emoji{ QString::fromUtf8("8\xe2\x83\xa3"), ":eight:" },
+	Emoji{ QString::fromUtf8("9\xe2\x83\xa3"), ":nine:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x94\x9f"), ":keycap_ten:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x92\xaf"), ":100:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x94\xa0"), ":capital_abcd:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x94\xa1"), ":abcd:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x94\xa2"), ":1234:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x94\xa3"), ":symbols:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x94\xa4"), ":abc:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x85\xb0"), ":a:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x86\x8e"), ":ab:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x85\xb1"), ":b:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x86\x91"), ":cl:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x86\x92"), ":cool:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x86\x93"), ":free:" },
+	Emoji{ QString::fromUtf8("\xe2\x84\xb9"), ":information_source:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x86\x94"), ":id:" },
+	Emoji{ QString::fromUtf8("\xe2\x93\x82"), ":m:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x86\x95"), ":new:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x86\x96"), ":ng:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x85\xbe"), ":o2:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x86\x97"), ":ok:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x85\xbf"), ":parking:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x86\x98"), ":sos:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x86\x99"), ":up:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x86\x9a"), ":vs:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x88\x81"), ":koko:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x88\x82"), ":sa:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x88\xb7"), ":u6708:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x88\xb6"), ":u6709:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x88\xaf"), ":u6307:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x89\x90"), ":ideograph_advantage:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x88\xb9"), ":u5272:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x88\x9a"), ":u7121:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x88\xb2"), ":u7981:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x89\x91"), ":accept:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x88\xb8"), ":u7533:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x88\xb4"), ":u5408:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x88\xb3"), ":u7a7a:" },
+	Emoji{ QString::fromUtf8("\xe3\x8a\x97"), ":congratulations:" },
+	Emoji{ QString::fromUtf8("\xe3\x8a\x99"), ":secret:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x88\xba"), ":u55b6:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x88\xb5"), ":u6e80:" },
+	Emoji{ QString::fromUtf8("\xe2\x96\xaa"), ":black_small_square:" },
+	Emoji{ QString::fromUtf8("\xe2\x96\xab"), ":white_small_square:" },
+	Emoji{ QString::fromUtf8("\xe2\x97\xbb"), ":white_medium_square:" },
+	Emoji{ QString::fromUtf8("\xe2\x97\xbc"), ":black_medium_square:" },
+	Emoji{ QString::fromUtf8("\xe2\x97\xbd"), ":white_medium_small_square:" },
+	Emoji{ QString::fromUtf8("\xe2\x97\xbe"), ":black_medium_small_square:" },
+	Emoji{ QString::fromUtf8("\xe2\xac\x9b"), ":black_large_square:" },
+	Emoji{ QString::fromUtf8("\xe2\xac\x9c"), ":white_large_square:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x94\xb6"), ":large_orange_diamond:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x94\xb7"), ":large_blue_diamond:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x94\xb8"), ":small_orange_diamond:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x94\xb9"), ":small_blue_diamond:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x94\xba"), ":small_red_triangle:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x94\xbb"), ":small_red_triangle_down:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x92\xa0"), ":diamond_shape_with_a_dot_inside:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x94\x98"), ":radio_button:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x94\xb2"), ":black_square_button:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x94\xb3"), ":white_square_button:" },
+	Emoji{ QString::fromUtf8("\xe2\x9a\xaa"), ":white_circle:" },
+	Emoji{ QString::fromUtf8("\xe2\x9a\xab"), ":black_circle:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x94\xb4"), ":red_circle:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x94\xb5"), ":blue_circle:" },
 };
 
 const QList<Emoji> EmojiProvider::flags = {
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xa6\xf0\x9f\x87\xa8"), ":flag_ac:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xa6\xf0\x9f\x87\xa9"), ":flag_ad:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xa6\xf0\x9f\x87\xaa"), ":flag_ae:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xa6\xf0\x9f\x87\xab"), ":flag_af:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xa6\xf0\x9f\x87\xac"), ":flag_ag:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xa6\xf0\x9f\x87\xae"), ":flag_ai:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xa6\xf0\x9f\x87\xb1"), ":flag_al:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xa6\xf0\x9f\x87\xb2"), ":flag_am:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xa6\xf0\x9f\x87\xb4"), ":flag_ao:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xa6\xf0\x9f\x87\xb6"), ":flag_aq:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xa6\xf0\x9f\x87\xb7"), ":flag_ar:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xa6\xf0\x9f\x87\xb8"), ":flag_as:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xa6\xf0\x9f\x87\xb9"), ":flag_at:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xa6\xf0\x9f\x87\xba"), ":flag_au:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xa6\xf0\x9f\x87\xbc"), ":flag_aw:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xa6\xf0\x9f\x87\xbd"), ":flag_ax:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xa6\xf0\x9f\x87\xbf"), ":flag_az:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xa7\xf0\x9f\x87\xa6"), ":flag_ba:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xa7\xf0\x9f\x87\xa7"), ":flag_bb:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xa7\xf0\x9f\x87\xa9"), ":flag_bd:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xa7\xf0\x9f\x87\xaa"), ":flag_be:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xa7\xf0\x9f\x87\xab"), ":flag_bf:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xa7\xf0\x9f\x87\xac"), ":flag_bg:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xa7\xf0\x9f\x87\xad"), ":flag_bh:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xa7\xf0\x9f\x87\xae"), ":flag_bi:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xa7\xf0\x9f\x87\xaf"), ":flag_bj:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xa7\xf0\x9f\x87\xb1"), ":flag_bl:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xa7\xf0\x9f\x87\xb2"), ":flag_bm:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xa7\xf0\x9f\x87\xb3"), ":flag_bn:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xa7\xf0\x9f\x87\xb4"), ":flag_bo:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xa7\xf0\x9f\x87\xb6"), ":flag_bq:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xa7\xf0\x9f\x87\xb7"), ":flag_br:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xa7\xf0\x9f\x87\xb8"), ":flag_bs:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xa7\xf0\x9f\x87\xb9"), ":flag_bt:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xa7\xf0\x9f\x87\xbb"), ":flag_bv:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xa7\xf0\x9f\x87\xbc"), ":flag_bw:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xa7\xf0\x9f\x87\xbe"), ":flag_by:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xa7\xf0\x9f\x87\xbf"), ":flag_bz:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xa8\xf0\x9f\x87\xa6"), ":flag_ca:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xa8\xf0\x9f\x87\xa8"), ":flag_cc:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xa8\xf0\x9f\x87\xa9"), ":flag_cd:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xa8\xf0\x9f\x87\xab"), ":flag_cf:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xa8\xf0\x9f\x87\xac"), ":flag_cg:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xa8\xf0\x9f\x87\xad"), ":flag_ch:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xa8\xf0\x9f\x87\xae"), ":flag_ci:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xa8\xf0\x9f\x87\xb0"), ":flag_ck:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xa8\xf0\x9f\x87\xb1"), ":flag_cl:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xa8\xf0\x9f\x87\xb2"), ":flag_cm:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xa8\xf0\x9f\x87\xb3"), ":flag_cn:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xa8\xf0\x9f\x87\xb4"), ":flag_co:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xa8\xf0\x9f\x87\xb5"), ":flag_cp:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xa8\xf0\x9f\x87\xb7"), ":flag_cr:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xa8\xf0\x9f\x87\xba"), ":flag_cu:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xa8\xf0\x9f\x87\xbb"), ":flag_cv:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xa8\xf0\x9f\x87\xbc"), ":flag_cw:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xa8\xf0\x9f\x87\xbd"), ":flag_cx:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xa8\xf0\x9f\x87\xbe"), ":flag_cy:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xa8\xf0\x9f\x87\xbf"), ":flag_cz:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xa9\xf0\x9f\x87\xaa"), ":flag_de:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xa9\xf0\x9f\x87\xac"), ":flag_dg:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xa9\xf0\x9f\x87\xaf"), ":flag_dj:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xa9\xf0\x9f\x87\xb0"), ":flag_dk:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xa9\xf0\x9f\x87\xb2"), ":flag_dm:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xa9\xf0\x9f\x87\xb4"), ":flag_do:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xa9\xf0\x9f\x87\xbf"), ":flag_dz:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xaa\xf0\x9f\x87\xa6"), ":flag_ea:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xaa\xf0\x9f\x87\xa8"), ":flag_ec:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xaa\xf0\x9f\x87\xaa"), ":flag_ee:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xaa\xf0\x9f\x87\xac"), ":flag_eg:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xaa\xf0\x9f\x87\xad"), ":flag_eh:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xaa\xf0\x9f\x87\xb7"), ":flag_er:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xaa\xf0\x9f\x87\xb8"), ":flag_es:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xaa\xf0\x9f\x87\xb9"), ":flag_et:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xaa\xf0\x9f\x87\xba"), ":flag_eu:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xab\xf0\x9f\x87\xae"), ":flag_fi:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xab\xf0\x9f\x87\xaf"), ":flag_fj:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xab\xf0\x9f\x87\xb0"), ":flag_fk:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xab\xf0\x9f\x87\xb2"), ":flag_fm:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xab\xf0\x9f\x87\xb4"), ":flag_fo:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xab\xf0\x9f\x87\xb7"), ":flag_fr:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xac\xf0\x9f\x87\xa6"), ":flag_ga:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xac\xf0\x9f\x87\xa7"), ":flag_gb:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xac\xf0\x9f\x87\xa9"), ":flag_gd:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xac\xf0\x9f\x87\xaa"), ":flag_ge:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xac\xf0\x9f\x87\xab"), ":flag_gf:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xac\xf0\x9f\x87\xac"), ":flag_gg:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xac\xf0\x9f\x87\xad"), ":flag_gh:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xac\xf0\x9f\x87\xae"), ":flag_gi:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xac\xf0\x9f\x87\xb1"), ":flag_gl:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xac\xf0\x9f\x87\xb2"), ":flag_gm:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xac\xf0\x9f\x87\xb3"), ":flag_gn:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xac\xf0\x9f\x87\xb5"), ":flag_gp:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xac\xf0\x9f\x87\xb6"), ":flag_gq:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xac\xf0\x9f\x87\xb7"), ":flag_gr:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xac\xf0\x9f\x87\xb8"), ":flag_gs:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xac\xf0\x9f\x87\xb9"), ":flag_gt:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xac\xf0\x9f\x87\xba"), ":flag_gu:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xac\xf0\x9f\x87\xbc"), ":flag_gw:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xac\xf0\x9f\x87\xbe"), ":flag_gy:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xad\xf0\x9f\x87\xb0"), ":flag_hk:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xad\xf0\x9f\x87\xb2"), ":flag_hm:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xad\xf0\x9f\x87\xb3"), ":flag_hn:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xad\xf0\x9f\x87\xb7"), ":flag_hr:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xad\xf0\x9f\x87\xb9"), ":flag_ht:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xad\xf0\x9f\x87\xba"), ":flag_hu:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xae\xf0\x9f\x87\xa8"), ":flag_ic:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xae\xf0\x9f\x87\xa9"), ":flag_id:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xae\xf0\x9f\x87\xaa"), ":flag_ie:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xae\xf0\x9f\x87\xb1"), ":flag_il:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xae\xf0\x9f\x87\xb2"), ":flag_im:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xae\xf0\x9f\x87\xb3"), ":flag_in:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xae\xf0\x9f\x87\xb4"), ":flag_io:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xae\xf0\x9f\x87\xb6"), ":flag_iq:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xae\xf0\x9f\x87\xb7"), ":flag_ir:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xae\xf0\x9f\x87\xb8"), ":flag_is:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xae\xf0\x9f\x87\xb9"), ":flag_it:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xaf\xf0\x9f\x87\xaa"), ":flag_je:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xaf\xf0\x9f\x87\xb2"), ":flag_jm:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xaf\xf0\x9f\x87\xb4"), ":flag_jo:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xaf\xf0\x9f\x87\xb5"), ":flag_jp:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xb0\xf0\x9f\x87\xaa"), ":flag_ke:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xb0\xf0\x9f\x87\xac"), ":flag_kg:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xb0\xf0\x9f\x87\xad"), ":flag_kh:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xb0\xf0\x9f\x87\xae"), ":flag_ki:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xb0\xf0\x9f\x87\xb2"), ":flag_km:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xb0\xf0\x9f\x87\xb3"), ":flag_kn:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xb0\xf0\x9f\x87\xb5"), ":flag_kp:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xb0\xf0\x9f\x87\xb7"), ":flag_kr:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xb0\xf0\x9f\x87\xbc"), ":flag_kw:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xb0\xf0\x9f\x87\xbe"), ":flag_ky:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xb0\xf0\x9f\x87\xbf"), ":flag_kz:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xb1\xf0\x9f\x87\xa6"), ":flag_la:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xb1\xf0\x9f\x87\xa7"), ":flag_lb:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xb1\xf0\x9f\x87\xa8"), ":flag_lc:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xb1\xf0\x9f\x87\xae"), ":flag_li:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xb1\xf0\x9f\x87\xb0"), ":flag_lk:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xb1\xf0\x9f\x87\xb7"), ":flag_lr:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xb1\xf0\x9f\x87\xb8"), ":flag_ls:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xb1\xf0\x9f\x87\xb9"), ":flag_lt:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xb1\xf0\x9f\x87\xba"), ":flag_lu:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xb1\xf0\x9f\x87\xbb"), ":flag_lv:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xb1\xf0\x9f\x87\xbe"), ":flag_ly:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xb2\xf0\x9f\x87\xa6"), ":flag_ma:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xb2\xf0\x9f\x87\xa8"), ":flag_mc:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xb2\xf0\x9f\x87\xa9"), ":flag_md:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xb2\xf0\x9f\x87\xaa"), ":flag_me:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xb2\xf0\x9f\x87\xab"), ":flag_mf:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xb2\xf0\x9f\x87\xac"), ":flag_mg:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xb2\xf0\x9f\x87\xad"), ":flag_mh:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xb2\xf0\x9f\x87\xb0"), ":flag_mk:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xb2\xf0\x9f\x87\xb1"), ":flag_ml:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xb2\xf0\x9f\x87\xb2"), ":flag_mm:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xb2\xf0\x9f\x87\xb3"), ":flag_mn:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xb2\xf0\x9f\x87\xb4"), ":flag_mo:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xb2\xf0\x9f\x87\xb5"), ":flag_mp:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xb2\xf0\x9f\x87\xb6"), ":flag_mq:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xb2\xf0\x9f\x87\xb7"), ":flag_mr:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xb2\xf0\x9f\x87\xb8"), ":flag_ms:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xb2\xf0\x9f\x87\xb9"), ":flag_mt:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xb2\xf0\x9f\x87\xba"), ":flag_mu:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xb2\xf0\x9f\x87\xbb"), ":flag_mv:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xb2\xf0\x9f\x87\xbc"), ":flag_mw:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xb2\xf0\x9f\x87\xbd"), ":flag_mx:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xb2\xf0\x9f\x87\xbe"), ":flag_my:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xb2\xf0\x9f\x87\xbf"), ":flag_mz:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xb3\xf0\x9f\x87\xa6"), ":flag_na:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xb3\xf0\x9f\x87\xa8"), ":flag_nc:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xb3\xf0\x9f\x87\xaa"), ":flag_ne:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xb3\xf0\x9f\x87\xab"), ":flag_nf:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xb3\xf0\x9f\x87\xac"), ":flag_ng:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xb3\xf0\x9f\x87\xae"), ":flag_ni:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xb3\xf0\x9f\x87\xb1"), ":flag_nl:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xb3\xf0\x9f\x87\xb4"), ":flag_no:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xb3\xf0\x9f\x87\xb5"), ":flag_np:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xb3\xf0\x9f\x87\xb7"), ":flag_nr:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xb3\xf0\x9f\x87\xba"), ":flag_nu:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xb3\xf0\x9f\x87\xbf"), ":flag_nz:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xb4\xf0\x9f\x87\xb2"), ":flag_om:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xb5\xf0\x9f\x87\xa6"), ":flag_pa:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xb5\xf0\x9f\x87\xaa"), ":flag_pe:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xb5\xf0\x9f\x87\xab"), ":flag_pf:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xb5\xf0\x9f\x87\xac"), ":flag_pg:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xb5\xf0\x9f\x87\xad"), ":flag_ph:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xb5\xf0\x9f\x87\xb0"), ":flag_pk:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xb5\xf0\x9f\x87\xb1"), ":flag_pl:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xb5\xf0\x9f\x87\xb2"), ":flag_pm:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xb5\xf0\x9f\x87\xb3"), ":flag_pn:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xb5\xf0\x9f\x87\xb7"), ":flag_pr:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xb5\xf0\x9f\x87\xb8"), ":flag_ps:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xb5\xf0\x9f\x87\xb9"), ":flag_pt:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xb5\xf0\x9f\x87\xbc"), ":flag_pw:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xb5\xf0\x9f\x87\xbe"), ":flag_py:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xb6\xf0\x9f\x87\xa6"), ":flag_qa:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xb7\xf0\x9f\x87\xaa"), ":flag_re:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xb7\xf0\x9f\x87\xb4"), ":flag_ro:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xb7\xf0\x9f\x87\xb8"), ":flag_rs:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xb7\xf0\x9f\x87\xba"), ":flag_ru:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xb7\xf0\x9f\x87\xbc"), ":flag_rw:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xb8\xf0\x9f\x87\xa6"), ":flag_sa:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xb8\xf0\x9f\x87\xa7"), ":flag_sb:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xb8\xf0\x9f\x87\xa8"), ":flag_sc:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xb8\xf0\x9f\x87\xa9"), ":flag_sd:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xb8\xf0\x9f\x87\xaa"), ":flag_se:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xb8\xf0\x9f\x87\xac"), ":flag_sg:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xb8\xf0\x9f\x87\xad"), ":flag_sh:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xb8\xf0\x9f\x87\xae"), ":flag_si:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xb8\xf0\x9f\x87\xaf"), ":flag_sj:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xb8\xf0\x9f\x87\xb0"), ":flag_sk:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xb8\xf0\x9f\x87\xb1"), ":flag_sl:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xb8\xf0\x9f\x87\xb2"), ":flag_sm:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xb8\xf0\x9f\x87\xb3"), ":flag_sn:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xb8\xf0\x9f\x87\xb4"), ":flag_so:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xb8\xf0\x9f\x87\xb7"), ":flag_sr:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xb8\xf0\x9f\x87\xb8"), ":flag_ss:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xb8\xf0\x9f\x87\xb9"), ":flag_st:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xb8\xf0\x9f\x87\xbb"), ":flag_sv:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xb8\xf0\x9f\x87\xbd"), ":flag_sx:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xb8\xf0\x9f\x87\xbe"), ":flag_sy:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xb8\xf0\x9f\x87\xbf"), ":flag_sz:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xb9\xf0\x9f\x87\xa6"), ":flag_ta:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xb9\xf0\x9f\x87\xa8"), ":flag_tc:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xb9\xf0\x9f\x87\xa9"), ":flag_td:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xb9\xf0\x9f\x87\xab"), ":flag_tf:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xb9\xf0\x9f\x87\xac"), ":flag_tg:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xb9\xf0\x9f\x87\xad"), ":flag_th:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xb9\xf0\x9f\x87\xaf"), ":flag_tj:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xb9\xf0\x9f\x87\xb0"), ":flag_tk:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xb9\xf0\x9f\x87\xb1"), ":flag_tl:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xb9\xf0\x9f\x87\xb2"), ":flag_tm:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xb9\xf0\x9f\x87\xb3"), ":flag_tn:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xb9\xf0\x9f\x87\xb4"), ":flag_to:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xb9\xf0\x9f\x87\xb7"), ":flag_tr:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xb9\xf0\x9f\x87\xb9"), ":flag_tt:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xb9\xf0\x9f\x87\xbb"), ":flag_tv:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xb9\xf0\x9f\x87\xbc"), ":flag_tw:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xb9\xf0\x9f\x87\xbf"), ":flag_tz:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xba\xf0\x9f\x87\xa6"), ":flag_ua:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xba\xf0\x9f\x87\xac"), ":flag_ug:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xba\xf0\x9f\x87\xb2"), ":flag_um:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xba\xf0\x9f\x87\xb8"), ":flag_us:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xba\xf0\x9f\x87\xbe"), ":flag_uy:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xba\xf0\x9f\x87\xbf"), ":flag_uz:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xbb\xf0\x9f\x87\xa6"), ":flag_va:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xbb\xf0\x9f\x87\xa8"), ":flag_vc:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xbb\xf0\x9f\x87\xaa"), ":flag_ve:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xbb\xf0\x9f\x87\xac"), ":flag_vg:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xbb\xf0\x9f\x87\xae"), ":flag_vi:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xbb\xf0\x9f\x87\xb3"), ":flag_vn:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xbb\xf0\x9f\x87\xba"), ":flag_vu:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xbc\xf0\x9f\x87\xab"), ":flag_wf:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xbc\xf0\x9f\x87\xb8"), ":flag_ws:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xbd\xf0\x9f\x87\xb0"), ":flag_xk:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xbe\xf0\x9f\x87\xaa"), ":flag_ye:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xbe\xf0\x9f\x87\xb9"), ":flag_yt:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xbf\xf0\x9f\x87\xa6"), ":flag_za:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xbf\xf0\x9f\x87\xb2"), ":flag_zm:"},
-	Emoji{QString::fromUtf8("\xf0\x9f\x87\xbf\xf0\x9f\x87\xbc"), ":flag_zw:"},
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xa6\xf0\x9f\x87\xa8"), ":flag_ac:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xa6\xf0\x9f\x87\xa9"), ":flag_ad:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xa6\xf0\x9f\x87\xaa"), ":flag_ae:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xa6\xf0\x9f\x87\xab"), ":flag_af:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xa6\xf0\x9f\x87\xac"), ":flag_ag:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xa6\xf0\x9f\x87\xae"), ":flag_ai:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xa6\xf0\x9f\x87\xb1"), ":flag_al:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xa6\xf0\x9f\x87\xb2"), ":flag_am:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xa6\xf0\x9f\x87\xb4"), ":flag_ao:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xa6\xf0\x9f\x87\xb6"), ":flag_aq:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xa6\xf0\x9f\x87\xb7"), ":flag_ar:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xa6\xf0\x9f\x87\xb8"), ":flag_as:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xa6\xf0\x9f\x87\xb9"), ":flag_at:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xa6\xf0\x9f\x87\xba"), ":flag_au:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xa6\xf0\x9f\x87\xbc"), ":flag_aw:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xa6\xf0\x9f\x87\xbd"), ":flag_ax:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xa6\xf0\x9f\x87\xbf"), ":flag_az:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xa7\xf0\x9f\x87\xa6"), ":flag_ba:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xa7\xf0\x9f\x87\xa7"), ":flag_bb:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xa7\xf0\x9f\x87\xa9"), ":flag_bd:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xa7\xf0\x9f\x87\xaa"), ":flag_be:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xa7\xf0\x9f\x87\xab"), ":flag_bf:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xa7\xf0\x9f\x87\xac"), ":flag_bg:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xa7\xf0\x9f\x87\xad"), ":flag_bh:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xa7\xf0\x9f\x87\xae"), ":flag_bi:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xa7\xf0\x9f\x87\xaf"), ":flag_bj:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xa7\xf0\x9f\x87\xb1"), ":flag_bl:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xa7\xf0\x9f\x87\xb2"), ":flag_bm:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xa7\xf0\x9f\x87\xb3"), ":flag_bn:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xa7\xf0\x9f\x87\xb4"), ":flag_bo:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xa7\xf0\x9f\x87\xb6"), ":flag_bq:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xa7\xf0\x9f\x87\xb7"), ":flag_br:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xa7\xf0\x9f\x87\xb8"), ":flag_bs:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xa7\xf0\x9f\x87\xb9"), ":flag_bt:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xa7\xf0\x9f\x87\xbb"), ":flag_bv:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xa7\xf0\x9f\x87\xbc"), ":flag_bw:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xa7\xf0\x9f\x87\xbe"), ":flag_by:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xa7\xf0\x9f\x87\xbf"), ":flag_bz:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xa8\xf0\x9f\x87\xa6"), ":flag_ca:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xa8\xf0\x9f\x87\xa8"), ":flag_cc:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xa8\xf0\x9f\x87\xa9"), ":flag_cd:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xa8\xf0\x9f\x87\xab"), ":flag_cf:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xa8\xf0\x9f\x87\xac"), ":flag_cg:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xa8\xf0\x9f\x87\xad"), ":flag_ch:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xa8\xf0\x9f\x87\xae"), ":flag_ci:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xa8\xf0\x9f\x87\xb0"), ":flag_ck:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xa8\xf0\x9f\x87\xb1"), ":flag_cl:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xa8\xf0\x9f\x87\xb2"), ":flag_cm:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xa8\xf0\x9f\x87\xb3"), ":flag_cn:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xa8\xf0\x9f\x87\xb4"), ":flag_co:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xa8\xf0\x9f\x87\xb5"), ":flag_cp:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xa8\xf0\x9f\x87\xb7"), ":flag_cr:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xa8\xf0\x9f\x87\xba"), ":flag_cu:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xa8\xf0\x9f\x87\xbb"), ":flag_cv:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xa8\xf0\x9f\x87\xbc"), ":flag_cw:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xa8\xf0\x9f\x87\xbd"), ":flag_cx:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xa8\xf0\x9f\x87\xbe"), ":flag_cy:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xa8\xf0\x9f\x87\xbf"), ":flag_cz:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xa9\xf0\x9f\x87\xaa"), ":flag_de:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xa9\xf0\x9f\x87\xac"), ":flag_dg:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xa9\xf0\x9f\x87\xaf"), ":flag_dj:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xa9\xf0\x9f\x87\xb0"), ":flag_dk:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xa9\xf0\x9f\x87\xb2"), ":flag_dm:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xa9\xf0\x9f\x87\xb4"), ":flag_do:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xa9\xf0\x9f\x87\xbf"), ":flag_dz:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xaa\xf0\x9f\x87\xa6"), ":flag_ea:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xaa\xf0\x9f\x87\xa8"), ":flag_ec:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xaa\xf0\x9f\x87\xaa"), ":flag_ee:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xaa\xf0\x9f\x87\xac"), ":flag_eg:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xaa\xf0\x9f\x87\xad"), ":flag_eh:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xaa\xf0\x9f\x87\xb7"), ":flag_er:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xaa\xf0\x9f\x87\xb8"), ":flag_es:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xaa\xf0\x9f\x87\xb9"), ":flag_et:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xaa\xf0\x9f\x87\xba"), ":flag_eu:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xab\xf0\x9f\x87\xae"), ":flag_fi:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xab\xf0\x9f\x87\xaf"), ":flag_fj:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xab\xf0\x9f\x87\xb0"), ":flag_fk:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xab\xf0\x9f\x87\xb2"), ":flag_fm:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xab\xf0\x9f\x87\xb4"), ":flag_fo:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xab\xf0\x9f\x87\xb7"), ":flag_fr:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xac\xf0\x9f\x87\xa6"), ":flag_ga:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xac\xf0\x9f\x87\xa7"), ":flag_gb:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xac\xf0\x9f\x87\xa9"), ":flag_gd:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xac\xf0\x9f\x87\xaa"), ":flag_ge:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xac\xf0\x9f\x87\xab"), ":flag_gf:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xac\xf0\x9f\x87\xac"), ":flag_gg:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xac\xf0\x9f\x87\xad"), ":flag_gh:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xac\xf0\x9f\x87\xae"), ":flag_gi:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xac\xf0\x9f\x87\xb1"), ":flag_gl:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xac\xf0\x9f\x87\xb2"), ":flag_gm:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xac\xf0\x9f\x87\xb3"), ":flag_gn:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xac\xf0\x9f\x87\xb5"), ":flag_gp:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xac\xf0\x9f\x87\xb6"), ":flag_gq:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xac\xf0\x9f\x87\xb7"), ":flag_gr:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xac\xf0\x9f\x87\xb8"), ":flag_gs:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xac\xf0\x9f\x87\xb9"), ":flag_gt:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xac\xf0\x9f\x87\xba"), ":flag_gu:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xac\xf0\x9f\x87\xbc"), ":flag_gw:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xac\xf0\x9f\x87\xbe"), ":flag_gy:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xad\xf0\x9f\x87\xb0"), ":flag_hk:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xad\xf0\x9f\x87\xb2"), ":flag_hm:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xad\xf0\x9f\x87\xb3"), ":flag_hn:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xad\xf0\x9f\x87\xb7"), ":flag_hr:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xad\xf0\x9f\x87\xb9"), ":flag_ht:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xad\xf0\x9f\x87\xba"), ":flag_hu:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xae\xf0\x9f\x87\xa8"), ":flag_ic:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xae\xf0\x9f\x87\xa9"), ":flag_id:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xae\xf0\x9f\x87\xaa"), ":flag_ie:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xae\xf0\x9f\x87\xb1"), ":flag_il:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xae\xf0\x9f\x87\xb2"), ":flag_im:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xae\xf0\x9f\x87\xb3"), ":flag_in:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xae\xf0\x9f\x87\xb4"), ":flag_io:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xae\xf0\x9f\x87\xb6"), ":flag_iq:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xae\xf0\x9f\x87\xb7"), ":flag_ir:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xae\xf0\x9f\x87\xb8"), ":flag_is:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xae\xf0\x9f\x87\xb9"), ":flag_it:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xaf\xf0\x9f\x87\xaa"), ":flag_je:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xaf\xf0\x9f\x87\xb2"), ":flag_jm:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xaf\xf0\x9f\x87\xb4"), ":flag_jo:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xaf\xf0\x9f\x87\xb5"), ":flag_jp:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xb0\xf0\x9f\x87\xaa"), ":flag_ke:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xb0\xf0\x9f\x87\xac"), ":flag_kg:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xb0\xf0\x9f\x87\xad"), ":flag_kh:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xb0\xf0\x9f\x87\xae"), ":flag_ki:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xb0\xf0\x9f\x87\xb2"), ":flag_km:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xb0\xf0\x9f\x87\xb3"), ":flag_kn:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xb0\xf0\x9f\x87\xb5"), ":flag_kp:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xb0\xf0\x9f\x87\xb7"), ":flag_kr:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xb0\xf0\x9f\x87\xbc"), ":flag_kw:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xb0\xf0\x9f\x87\xbe"), ":flag_ky:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xb0\xf0\x9f\x87\xbf"), ":flag_kz:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xb1\xf0\x9f\x87\xa6"), ":flag_la:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xb1\xf0\x9f\x87\xa7"), ":flag_lb:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xb1\xf0\x9f\x87\xa8"), ":flag_lc:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xb1\xf0\x9f\x87\xae"), ":flag_li:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xb1\xf0\x9f\x87\xb0"), ":flag_lk:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xb1\xf0\x9f\x87\xb7"), ":flag_lr:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xb1\xf0\x9f\x87\xb8"), ":flag_ls:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xb1\xf0\x9f\x87\xb9"), ":flag_lt:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xb1\xf0\x9f\x87\xba"), ":flag_lu:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xb1\xf0\x9f\x87\xbb"), ":flag_lv:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xb1\xf0\x9f\x87\xbe"), ":flag_ly:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xb2\xf0\x9f\x87\xa6"), ":flag_ma:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xb2\xf0\x9f\x87\xa8"), ":flag_mc:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xb2\xf0\x9f\x87\xa9"), ":flag_md:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xb2\xf0\x9f\x87\xaa"), ":flag_me:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xb2\xf0\x9f\x87\xab"), ":flag_mf:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xb2\xf0\x9f\x87\xac"), ":flag_mg:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xb2\xf0\x9f\x87\xad"), ":flag_mh:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xb2\xf0\x9f\x87\xb0"), ":flag_mk:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xb2\xf0\x9f\x87\xb1"), ":flag_ml:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xb2\xf0\x9f\x87\xb2"), ":flag_mm:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xb2\xf0\x9f\x87\xb3"), ":flag_mn:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xb2\xf0\x9f\x87\xb4"), ":flag_mo:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xb2\xf0\x9f\x87\xb5"), ":flag_mp:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xb2\xf0\x9f\x87\xb6"), ":flag_mq:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xb2\xf0\x9f\x87\xb7"), ":flag_mr:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xb2\xf0\x9f\x87\xb8"), ":flag_ms:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xb2\xf0\x9f\x87\xb9"), ":flag_mt:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xb2\xf0\x9f\x87\xba"), ":flag_mu:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xb2\xf0\x9f\x87\xbb"), ":flag_mv:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xb2\xf0\x9f\x87\xbc"), ":flag_mw:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xb2\xf0\x9f\x87\xbd"), ":flag_mx:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xb2\xf0\x9f\x87\xbe"), ":flag_my:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xb2\xf0\x9f\x87\xbf"), ":flag_mz:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xb3\xf0\x9f\x87\xa6"), ":flag_na:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xb3\xf0\x9f\x87\xa8"), ":flag_nc:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xb3\xf0\x9f\x87\xaa"), ":flag_ne:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xb3\xf0\x9f\x87\xab"), ":flag_nf:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xb3\xf0\x9f\x87\xac"), ":flag_ng:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xb3\xf0\x9f\x87\xae"), ":flag_ni:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xb3\xf0\x9f\x87\xb1"), ":flag_nl:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xb3\xf0\x9f\x87\xb4"), ":flag_no:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xb3\xf0\x9f\x87\xb5"), ":flag_np:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xb3\xf0\x9f\x87\xb7"), ":flag_nr:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xb3\xf0\x9f\x87\xba"), ":flag_nu:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xb3\xf0\x9f\x87\xbf"), ":flag_nz:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xb4\xf0\x9f\x87\xb2"), ":flag_om:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xb5\xf0\x9f\x87\xa6"), ":flag_pa:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xb5\xf0\x9f\x87\xaa"), ":flag_pe:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xb5\xf0\x9f\x87\xab"), ":flag_pf:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xb5\xf0\x9f\x87\xac"), ":flag_pg:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xb5\xf0\x9f\x87\xad"), ":flag_ph:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xb5\xf0\x9f\x87\xb0"), ":flag_pk:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xb5\xf0\x9f\x87\xb1"), ":flag_pl:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xb5\xf0\x9f\x87\xb2"), ":flag_pm:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xb5\xf0\x9f\x87\xb3"), ":flag_pn:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xb5\xf0\x9f\x87\xb7"), ":flag_pr:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xb5\xf0\x9f\x87\xb8"), ":flag_ps:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xb5\xf0\x9f\x87\xb9"), ":flag_pt:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xb5\xf0\x9f\x87\xbc"), ":flag_pw:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xb5\xf0\x9f\x87\xbe"), ":flag_py:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xb6\xf0\x9f\x87\xa6"), ":flag_qa:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xb7\xf0\x9f\x87\xaa"), ":flag_re:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xb7\xf0\x9f\x87\xb4"), ":flag_ro:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xb7\xf0\x9f\x87\xb8"), ":flag_rs:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xb7\xf0\x9f\x87\xba"), ":flag_ru:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xb7\xf0\x9f\x87\xbc"), ":flag_rw:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xb8\xf0\x9f\x87\xa6"), ":flag_sa:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xb8\xf0\x9f\x87\xa7"), ":flag_sb:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xb8\xf0\x9f\x87\xa8"), ":flag_sc:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xb8\xf0\x9f\x87\xa9"), ":flag_sd:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xb8\xf0\x9f\x87\xaa"), ":flag_se:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xb8\xf0\x9f\x87\xac"), ":flag_sg:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xb8\xf0\x9f\x87\xad"), ":flag_sh:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xb8\xf0\x9f\x87\xae"), ":flag_si:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xb8\xf0\x9f\x87\xaf"), ":flag_sj:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xb8\xf0\x9f\x87\xb0"), ":flag_sk:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xb8\xf0\x9f\x87\xb1"), ":flag_sl:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xb8\xf0\x9f\x87\xb2"), ":flag_sm:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xb8\xf0\x9f\x87\xb3"), ":flag_sn:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xb8\xf0\x9f\x87\xb4"), ":flag_so:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xb8\xf0\x9f\x87\xb7"), ":flag_sr:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xb8\xf0\x9f\x87\xb8"), ":flag_ss:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xb8\xf0\x9f\x87\xb9"), ":flag_st:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xb8\xf0\x9f\x87\xbb"), ":flag_sv:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xb8\xf0\x9f\x87\xbd"), ":flag_sx:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xb8\xf0\x9f\x87\xbe"), ":flag_sy:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xb8\xf0\x9f\x87\xbf"), ":flag_sz:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xb9\xf0\x9f\x87\xa6"), ":flag_ta:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xb9\xf0\x9f\x87\xa8"), ":flag_tc:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xb9\xf0\x9f\x87\xa9"), ":flag_td:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xb9\xf0\x9f\x87\xab"), ":flag_tf:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xb9\xf0\x9f\x87\xac"), ":flag_tg:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xb9\xf0\x9f\x87\xad"), ":flag_th:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xb9\xf0\x9f\x87\xaf"), ":flag_tj:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xb9\xf0\x9f\x87\xb0"), ":flag_tk:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xb9\xf0\x9f\x87\xb1"), ":flag_tl:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xb9\xf0\x9f\x87\xb2"), ":flag_tm:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xb9\xf0\x9f\x87\xb3"), ":flag_tn:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xb9\xf0\x9f\x87\xb4"), ":flag_to:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xb9\xf0\x9f\x87\xb7"), ":flag_tr:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xb9\xf0\x9f\x87\xb9"), ":flag_tt:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xb9\xf0\x9f\x87\xbb"), ":flag_tv:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xb9\xf0\x9f\x87\xbc"), ":flag_tw:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xb9\xf0\x9f\x87\xbf"), ":flag_tz:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xba\xf0\x9f\x87\xa6"), ":flag_ua:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xba\xf0\x9f\x87\xac"), ":flag_ug:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xba\xf0\x9f\x87\xb2"), ":flag_um:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xba\xf0\x9f\x87\xb8"), ":flag_us:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xba\xf0\x9f\x87\xbe"), ":flag_uy:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xba\xf0\x9f\x87\xbf"), ":flag_uz:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xbb\xf0\x9f\x87\xa6"), ":flag_va:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xbb\xf0\x9f\x87\xa8"), ":flag_vc:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xbb\xf0\x9f\x87\xaa"), ":flag_ve:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xbb\xf0\x9f\x87\xac"), ":flag_vg:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xbb\xf0\x9f\x87\xae"), ":flag_vi:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xbb\xf0\x9f\x87\xb3"), ":flag_vn:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xbb\xf0\x9f\x87\xba"), ":flag_vu:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xbc\xf0\x9f\x87\xab"), ":flag_wf:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xbc\xf0\x9f\x87\xb8"), ":flag_ws:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xbd\xf0\x9f\x87\xb0"), ":flag_xk:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xbe\xf0\x9f\x87\xaa"), ":flag_ye:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xbe\xf0\x9f\x87\xb9"), ":flag_yt:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xbf\xf0\x9f\x87\xa6"), ":flag_za:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xbf\xf0\x9f\x87\xb2"), ":flag_zm:" },
+	Emoji{ QString::fromUtf8("\xf0\x9f\x87\xbf\xf0\x9f\x87\xbc"), ":flag_zw:" },
 };
diff --git a/src/ImageItem.cc b/src/ImageItem.cc
index 667d84cf..77523465 100644
--- a/src/ImageItem.cc
+++ b/src/ImageItem.cc
@@ -28,10 +28,12 @@
 namespace events = matrix::events;
 namespace msgs = matrix::events::messages;
 
-ImageItem::ImageItem(QSharedPointer<MatrixClient> client, const events::MessageEvent<msgs::Image> &event, QWidget *parent)
-    : QWidget(parent)
-    , event_{event}
-    , client_{client}
+ImageItem::ImageItem(QSharedPointer<MatrixClient> client,
+		     const events::MessageEvent<msgs::Image> &event,
+		     QWidget *parent)
+  : QWidget(parent)
+  , event_{ event }
+  , client_{ client }
 {
 	setMouseTracking(true);
 	setCursor(Qt::PointingHandCursor);
@@ -58,7 +60,8 @@ ImageItem::ImageItem(QSharedPointer<MatrixClient> client, const events::MessageE
 		SLOT(imageDownloaded(const QString &, const QPixmap &)));
 }
 
-void ImageItem::imageDownloaded(const QString &event_id, const QPixmap &img)
+void
+ImageItem::imageDownloaded(const QString &event_id, const QPixmap &img)
 {
 	if (event_id != event_.eventId())
 		return;
@@ -66,7 +69,8 @@ void ImageItem::imageDownloaded(const QString &event_id, const QPixmap &img)
 	setImage(img);
 }
 
-void ImageItem::openUrl()
+void
+ImageItem::openUrl()
 {
 	if (url_.toString().isEmpty())
 		return;
@@ -75,7 +79,8 @@ void ImageItem::openUrl()
 		qWarning() << "Could not open url" << url_.toString();
 }
 
-void ImageItem::scaleImage()
+void
+ImageItem::scaleImage()
 {
 	if (image_.isNull())
 		return;
@@ -97,7 +102,8 @@ void ImageItem::scaleImage()
 	scaled_image_ = image_.scaled(width_, height_, Qt::IgnoreAspectRatio, Qt::SmoothTransformation);
 }
 
-QSize ImageItem::sizeHint() const
+QSize
+ImageItem::sizeHint() const
 {
 	if (image_.isNull())
 		return QSize(max_width_, bottom_height_);
@@ -105,14 +111,16 @@ QSize ImageItem::sizeHint() const
 	return QSize(width_, height_);
 }
 
-void ImageItem::setImage(const QPixmap &image)
+void
+ImageItem::setImage(const QPixmap &image)
 {
 	image_ = image;
 	scaleImage();
 	update();
 }
 
-void ImageItem::mousePressEvent(QMouseEvent *event)
+void
+ImageItem::mousePressEvent(QMouseEvent *event)
 {
 	if (event->button() != Qt::LeftButton)
 		return;
@@ -133,14 +141,16 @@ void ImageItem::mousePressEvent(QMouseEvent *event)
 	}
 }
 
-void ImageItem::resizeEvent(QResizeEvent *event)
+void
+ImageItem::resizeEvent(QResizeEvent *event)
 {
 	Q_UNUSED(event);
 
 	scaleImage();
 }
 
-void ImageItem::paintEvent(QPaintEvent *event)
+void
+ImageItem::paintEvent(QPaintEvent *event)
 {
 	Q_UNUSED(event);
 
diff --git a/src/ImageOverlayDialog.cc b/src/ImageOverlayDialog.cc
index 786b011c..edb49a0a 100644
--- a/src/ImageOverlayDialog.cc
+++ b/src/ImageOverlayDialog.cc
@@ -25,8 +25,8 @@
 #include "ImageOverlayDialog.h"
 
 ImageOverlayDialog::ImageOverlayDialog(QPixmap image, QWidget *parent)
-    : QWidget{parent}
-    , originalImage_{image}
+  : QWidget{ parent }
+  , originalImage_{ image }
 {
 	setMouseTracking(true);
 	setParent(0);
@@ -49,7 +49,8 @@ ImageOverlayDialog::ImageOverlayDialog(QPixmap image, QWidget *parent)
 }
 
 // TODO: Move this into Utils
-void ImageOverlayDialog::scaleImage(int max_width, int max_height)
+void
+ImageOverlayDialog::scaleImage(int max_width, int max_height)
 {
 	if (originalImage_.isNull())
 		return;
@@ -73,7 +74,8 @@ void ImageOverlayDialog::scaleImage(int max_width, int max_height)
 	image_ = originalImage_.scaled(final_width, final_height, Qt::IgnoreAspectRatio, Qt::SmoothTransformation);
 }
 
-void ImageOverlayDialog::paintEvent(QPaintEvent *event)
+void
+ImageOverlayDialog::paintEvent(QPaintEvent *event)
 {
 	Q_UNUSED(event);
 
@@ -115,7 +117,8 @@ void ImageOverlayDialog::paintEvent(QPaintEvent *event)
 	painter.drawLine(center + QPointF(15, -15), center - QPointF(15, -15));
 }
 
-void ImageOverlayDialog::mousePressEvent(QMouseEvent *event)
+void
+ImageOverlayDialog::mousePressEvent(QMouseEvent *event)
 {
 	if (event->button() != Qt::LeftButton)
 		return;
diff --git a/src/Login.cc b/src/Login.cc
index 9c584685..87be1003 100644
--- a/src/Login.cc
+++ b/src/Login.cc
@@ -27,12 +27,13 @@ LoginRequest::LoginRequest()
 }
 
 LoginRequest::LoginRequest(QString username, QString password)
-    : user_(username)
-    , password_(password)
+  : user_(username)
+  , password_(password)
 {
 }
 
-QByteArray LoginRequest::serialize() noexcept
+QByteArray
+LoginRequest::serialize() noexcept
 {
 #if defined(Q_OS_MAC)
 	QString initialDeviceName("nheko on Mac OS");
@@ -45,16 +46,17 @@ QByteArray LoginRequest::serialize() noexcept
 #endif
 
 	QJsonObject body{
-		{"type", "m.login.password"},
-		{"user", user_},
-		{"password", password_},
-		{"initial_device_display_name", initialDeviceName},
+		{ "type", "m.login.password" },
+		{ "user", user_ },
+		{ "password", password_ },
+		{ "initial_device_display_name", initialDeviceName },
 	};
 
 	return QJsonDocument(body).toJson(QJsonDocument::Compact);
 }
 
-void LoginResponse::deserialize(const QJsonDocument &data)
+void
+LoginResponse::deserialize(const QJsonDocument &data)
 {
 	if (!data.isObject())
 		throw DeserializationException("Login response is not a JSON object");
diff --git a/src/LoginPage.cc b/src/LoginPage.cc
index 329cdebc..402206fc 100644
--- a/src/LoginPage.cc
+++ b/src/LoginPage.cc
@@ -22,9 +22,9 @@
 #include "LoginPage.h"
 
 LoginPage::LoginPage(QSharedPointer<MatrixClient> client, QWidget *parent)
-    : QWidget(parent)
-    , inferredServerAddress_()
-    , client_{client}
+  : QWidget(parent)
+  , inferredServerAddress_()
+  , client_{ client }
 {
 	setStyleSheet("background-color: #f9f9f9");
 
@@ -159,12 +159,14 @@ LoginPage::LoginPage(QSharedPointer<MatrixClient> client, QWidget *parent)
 	matrixid_input_->setValidator(&InputValidator::Id);
 }
 
-void LoginPage::loginError(QString error)
+void
+LoginPage::loginError(QString error)
 {
 	error_label_->setText(error);
 }
 
-void LoginPage::onMatrixIdEntered()
+void
+LoginPage::onMatrixIdEntered()
 {
 	error_label_->setText("");
 
@@ -197,7 +199,8 @@ void LoginPage::onMatrixIdEntered()
 	}
 }
 
-void LoginPage::onServerAddressEntered()
+void
+LoginPage::onServerAddressEntered()
 {
 	error_label_->setText("");
 	client_->setServer(serverInput_->text());
@@ -209,10 +212,12 @@ void LoginPage::onServerAddressEntered()
 	spinner_->show();
 }
 
-void LoginPage::versionError(QString error)
+void
+LoginPage::versionError(QString error)
 {
 	// Matrix homeservers are often kept on a subdomain called 'matrix'
-	// so let's try that next, unless the address was set explicitly or the domain part of the username already points to this subdomain
+	// so let's try that next, unless the address was set explicitly or the domain part of the username already
+	// points to this subdomain
 	QUrl currentServer = client_->getHomeServer();
 	QString mxidAddress = matrixid_input_->text().split(":").at(1);
 	if (currentServer.host() == inferredServerAddress_ && !currentServer.host().startsWith("matrix")) {
@@ -234,7 +239,8 @@ void LoginPage::versionError(QString error)
 	matrixidLayout_->removeWidget(spinner_);
 }
 
-void LoginPage::versionSuccess()
+void
+LoginPage::versionSuccess()
 {
 	serverLayout_->removeWidget(spinner_);
 	matrixidLayout_->removeWidget(spinner_);
@@ -244,7 +250,8 @@ void LoginPage::versionSuccess()
 		serverInput_->hide();
 }
 
-void LoginPage::onLoginButtonClicked()
+void
+LoginPage::onLoginButtonClicked()
 {
 	error_label_->setText("");
 
@@ -260,7 +267,8 @@ void LoginPage::onLoginButtonClicked()
 	}
 }
 
-void LoginPage::reset()
+void
+LoginPage::reset()
 {
 	matrixid_input_->clear();
 	password_input_->clear();
@@ -275,7 +283,8 @@ void LoginPage::reset()
 	inferredServerAddress_.clear();
 }
 
-void LoginPage::onBackButtonClicked()
+void
+LoginPage::onBackButtonClicked()
 {
 	emit backButtonClicked();
 }
diff --git a/src/LogoutDialog.cc b/src/LogoutDialog.cc
index db3ab343..76002ad7 100644
--- a/src/LogoutDialog.cc
+++ b/src/LogoutDialog.cc
@@ -23,7 +23,7 @@
 #include "Theme.h"
 
 LogoutDialog::LogoutDialog(QWidget *parent)
-    : QFrame(parent)
+  : QFrame(parent)
 {
 	setMaximumSize(400, 400);
 	setStyleSheet("background-color: #f9f9f9");
diff --git a/src/MainWindow.cc b/src/MainWindow.cc
index d7e2a3c0..1567e8ba 100644
--- a/src/MainWindow.cc
+++ b/src/MainWindow.cc
@@ -15,8 +15,8 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-#include "Config.h"
 #include "MainWindow.h"
+#include "Config.h"
 
 #include <QLayout>
 #include <QNetworkReply>
@@ -26,9 +26,9 @@
 MainWindow *MainWindow::instance_ = nullptr;
 
 MainWindow::MainWindow(QWidget *parent)
-    : QMainWindow(parent)
-    , progress_modal_{nullptr}
-    , spinner_{nullptr}
+  : QMainWindow(parent)
+  , progress_modal_{ nullptr }
+  , spinner_{ nullptr }
 {
 	QSizePolicy sizePolicy(QSizePolicy::Minimum, QSizePolicy::Minimum);
 	setSizePolicy(sizePolicy);
@@ -94,7 +94,8 @@ MainWindow::MainWindow(QWidget *parent)
 	}
 }
 
-void MainWindow::restoreWindowSize()
+void
+MainWindow::restoreWindowSize()
 {
 	QSettings settings;
 	int savedWidth = settings.value("window/width").toInt();
@@ -106,7 +107,8 @@ void MainWindow::restoreWindowSize()
 		resize(savedWidth, savedheight);
 }
 
-void MainWindow::saveCurrentWindowSize()
+void
+MainWindow::saveCurrentWindowSize()
 {
 	QSettings settings;
 	QSize current = size();
@@ -115,7 +117,8 @@ void MainWindow::saveCurrentWindowSize()
 	settings.setValue("window/height", current.height());
 }
 
-void MainWindow::removeOverlayProgressBar()
+void
+MainWindow::removeOverlayProgressBar()
 {
 	QTimer *timer = new QTimer(this);
 	timer->setSingleShot(true);
@@ -138,7 +141,8 @@ void MainWindow::removeOverlayProgressBar()
 	timer->start(500);
 }
 
-void MainWindow::showChatPage(QString userid, QString homeserver, QString token)
+void
+MainWindow::showChatPage(QString userid, QString homeserver, QString token)
 {
 	QSettings settings;
 	settings.setValue("auth/access_token", token);
@@ -174,7 +178,8 @@ void MainWindow::showChatPage(QString userid, QString homeserver, QString token)
 	instance_ = this;
 }
 
-void MainWindow::showWelcomePage()
+void
+MainWindow::showWelcomePage()
 {
 	int index = sliding_stack_->getWidgetIndex(welcome_page_);
 
@@ -184,19 +189,22 @@ void MainWindow::showWelcomePage()
 		sliding_stack_->slideInIndex(index, SlidingStackWidget::AnimationDirection::LEFT_TO_RIGHT);
 }
 
-void MainWindow::showLoginPage()
+void
+MainWindow::showLoginPage()
 {
 	int index = sliding_stack_->getWidgetIndex(login_page_);
 	sliding_stack_->slideInIndex(index, SlidingStackWidget::AnimationDirection::LEFT_TO_RIGHT);
 }
 
-void MainWindow::showRegisterPage()
+void
+MainWindow::showRegisterPage()
 {
 	int index = sliding_stack_->getWidgetIndex(register_page_);
 	sliding_stack_->slideInIndex(index, SlidingStackWidget::AnimationDirection::RIGHT_TO_LEFT);
 }
 
-void MainWindow::closeEvent(QCloseEvent *event)
+void
+MainWindow::closeEvent(QCloseEvent *event)
 {
 	if (isVisible()) {
 		event->ignore();
@@ -204,7 +212,8 @@ void MainWindow::closeEvent(QCloseEvent *event)
 	}
 }
 
-void MainWindow::iconActivated(QSystemTrayIcon::ActivationReason reason)
+void
+MainWindow::iconActivated(QSystemTrayIcon::ActivationReason reason)
 {
 	switch (reason) {
 	case QSystemTrayIcon::Trigger:
@@ -219,16 +228,17 @@ void MainWindow::iconActivated(QSystemTrayIcon::ActivationReason reason)
 	}
 }
 
-bool MainWindow::hasActiveUser()
+bool
+MainWindow::hasActiveUser()
 {
 	QSettings settings;
 
-	return settings.contains("auth/access_token") &&
-	       settings.contains("auth/home_server") &&
+	return settings.contains("auth/access_token") && settings.contains("auth/home_server") &&
 	       settings.contains("auth/user_id");
 }
 
-MainWindow *MainWindow::instance()
+MainWindow *
+MainWindow::instance()
 {
 	return instance_;
 }
diff --git a/src/MatrixClient.cc b/src/MatrixClient.cc
index 11ac61c7..430bacf9 100644
--- a/src/MatrixClient.cc
+++ b/src/MatrixClient.cc
@@ -33,7 +33,7 @@
 #include "Versions.h"
 
 MatrixClient::MatrixClient(QString server, QObject *parent)
-    : QNetworkAccessManager(parent)
+  : QNetworkAccessManager(parent)
 {
 	server_ = "https://" + server;
 	api_url_ = "/_matrix/client/r0";
@@ -45,7 +45,8 @@ MatrixClient::MatrixClient(QString server, QObject *parent)
 	connect(this, SIGNAL(finished(QNetworkReply *)), this, SLOT(onResponse(QNetworkReply *)));
 }
 
-void MatrixClient::reset() noexcept
+void
+MatrixClient::reset() noexcept
 {
 	next_batch_ = "";
 	server_ = "";
@@ -54,7 +55,8 @@ void MatrixClient::reset() noexcept
 	txn_id_ = 0;
 }
 
-void MatrixClient::onVersionsResponse(QNetworkReply *reply)
+void
+MatrixClient::onVersionsResponse(QNetworkReply *reply)
 {
 	reply->deleteLater();
 
@@ -88,7 +90,8 @@ void MatrixClient::onVersionsResponse(QNetworkReply *reply)
 	}
 }
 
-void MatrixClient::onLoginResponse(QNetworkReply *reply)
+void
+MatrixClient::onLoginResponse(QNetworkReply *reply)
 {
 	reply->deleteLater();
 
@@ -124,7 +127,8 @@ void MatrixClient::onLoginResponse(QNetworkReply *reply)
 	}
 }
 
-void MatrixClient::onLogoutResponse(QNetworkReply *reply)
+void
+MatrixClient::onLogoutResponse(QNetworkReply *reply)
 {
 	reply->deleteLater();
 
@@ -138,7 +142,8 @@ void MatrixClient::onLogoutResponse(QNetworkReply *reply)
 	emit loggedOut();
 }
 
-void MatrixClient::onRegisterResponse(QNetworkReply *reply)
+void
+MatrixClient::onRegisterResponse(QNetworkReply *reply)
 {
 	reply->deleteLater();
 
@@ -160,16 +165,15 @@ void MatrixClient::onRegisterResponse(QNetworkReply *reply)
 
 	try {
 		response.deserialize(json);
-		emit registerSuccess(response.getUserId(),
-				     response.getHomeServer(),
-				     response.getAccessToken());
+		emit registerSuccess(response.getUserId(), response.getHomeServer(), response.getAccessToken());
 	} catch (DeserializationException &e) {
 		qWarning() << "Register" << e.what();
 		emit registerError("Received malformed response.");
 	}
 }
 
-void MatrixClient::onGetOwnProfileResponse(QNetworkReply *reply)
+void
+MatrixClient::onGetOwnProfileResponse(QNetworkReply *reply)
 {
 	reply->deleteLater();
 
@@ -193,7 +197,8 @@ void MatrixClient::onGetOwnProfileResponse(QNetworkReply *reply)
 	}
 }
 
-void MatrixClient::onInitialSyncResponse(QNetworkReply *reply)
+void
+MatrixClient::onInitialSyncResponse(QNetworkReply *reply)
 {
 	reply->deleteLater();
 
@@ -223,7 +228,8 @@ void MatrixClient::onInitialSyncResponse(QNetworkReply *reply)
 	emit initialSyncCompleted(response);
 }
 
-void MatrixClient::onSyncResponse(QNetworkReply *reply)
+void
+MatrixClient::onSyncResponse(QNetworkReply *reply)
 {
 	reply->deleteLater();
 
@@ -251,7 +257,8 @@ void MatrixClient::onSyncResponse(QNetworkReply *reply)
 	}
 }
 
-void MatrixClient::onSendTextMessageResponse(QNetworkReply *reply)
+void
+MatrixClient::onSendTextMessageResponse(QNetworkReply *reply)
 {
 	reply->deleteLater();
 
@@ -286,7 +293,8 @@ void MatrixClient::onSendTextMessageResponse(QNetworkReply *reply)
 			 reply->property("txn_id").toInt());
 }
 
-void MatrixClient::onRoomAvatarResponse(QNetworkReply *reply)
+void
+MatrixClient::onRoomAvatarResponse(QNetworkReply *reply)
 {
 	reply->deleteLater();
 
@@ -310,7 +318,8 @@ void MatrixClient::onRoomAvatarResponse(QNetworkReply *reply)
 	emit roomAvatarRetrieved(roomid, pixmap);
 }
 
-void MatrixClient::onUserAvatarResponse(QNetworkReply *reply)
+void
+MatrixClient::onUserAvatarResponse(QNetworkReply *reply)
 {
 	reply->deleteLater();
 
@@ -333,7 +342,8 @@ void MatrixClient::onUserAvatarResponse(QNetworkReply *reply)
 
 	emit userAvatarRetrieved(roomid, img);
 }
-void MatrixClient::onGetOwnAvatarResponse(QNetworkReply *reply)
+void
+MatrixClient::onGetOwnAvatarResponse(QNetworkReply *reply)
 {
 	reply->deleteLater();
 
@@ -355,7 +365,8 @@ void MatrixClient::onGetOwnAvatarResponse(QNetworkReply *reply)
 	emit ownAvatarRetrieved(pixmap);
 }
 
-void MatrixClient::onImageResponse(QNetworkReply *reply)
+void
+MatrixClient::onImageResponse(QNetworkReply *reply)
 {
 	reply->deleteLater();
 
@@ -379,7 +390,8 @@ void MatrixClient::onImageResponse(QNetworkReply *reply)
 	emit imageDownloaded(event_id, pixmap);
 }
 
-void MatrixClient::onMessagesResponse(QNetworkReply *reply)
+void
+MatrixClient::onMessagesResponse(QNetworkReply *reply)
 {
 	reply->deleteLater();
 
@@ -405,7 +417,8 @@ void MatrixClient::onMessagesResponse(QNetworkReply *reply)
 	emit messagesRetrieved(room_id, msgs);
 }
 
-void MatrixClient::onResponse(QNetworkReply *reply)
+void
+MatrixClient::onResponse(QNetworkReply *reply)
 {
 	switch (static_cast<Endpoint>(reply->property("endpoint").toInt())) {
 	case Endpoint::Versions:
@@ -452,7 +465,8 @@ void MatrixClient::onResponse(QNetworkReply *reply)
 	}
 }
 
-void MatrixClient::login(const QString &username, const QString &password) noexcept
+void
+MatrixClient::login(const QString &username, const QString &password) noexcept
 {
 	QUrl endpoint(server_);
 	endpoint.setPath(api_url_ + "/login");
@@ -466,7 +480,8 @@ void MatrixClient::login(const QString &username, const QString &password) noexc
 	reply->setProperty("endpoint", static_cast<int>(Endpoint::Login));
 }
 
-void MatrixClient::logout() noexcept
+void
+MatrixClient::logout() noexcept
 {
 	QUrlQuery query;
 	query.addQueryItem("access_token", token_);
@@ -483,7 +498,8 @@ void MatrixClient::logout() noexcept
 	reply->setProperty("endpoint", static_cast<int>(Endpoint::Logout));
 }
 
-void MatrixClient::registerUser(const QString &user, const QString &pass, const QString &server) noexcept
+void
+MatrixClient::registerUser(const QString &user, const QString &pass, const QString &server) noexcept
 {
 	setServer(server);
 
@@ -503,11 +519,11 @@ void MatrixClient::registerUser(const QString &user, const QString &pass, const
 	reply->setProperty("endpoint", static_cast<int>(Endpoint::Register));
 }
 
-void MatrixClient::sync() noexcept
+void
+MatrixClient::sync() noexcept
 {
-	QJsonObject filter{{"room",
-			    QJsonObject{{"ephemeral", QJsonObject{{"limit", 0}}}}},
-			   {"presence", QJsonObject{{"limit", 0}}}};
+	QJsonObject filter{ { "room", QJsonObject{ { "ephemeral", QJsonObject{ { "limit", 0 } } } } },
+			    { "presence", QJsonObject{ { "limit", 0 } } } };
 
 	QUrlQuery query;
 	query.addQueryItem("set_presence", "online");
@@ -532,7 +548,8 @@ void MatrixClient::sync() noexcept
 	reply->setProperty("endpoint", static_cast<int>(Endpoint::Sync));
 }
 
-void MatrixClient::sendTextMessage(const QString &roomid, const QString &msg) noexcept
+void
+MatrixClient::sendTextMessage(const QString &roomid, const QString &msg) noexcept
 {
 	QUrlQuery query;
 	query.addQueryItem("access_token", token_);
@@ -541,9 +558,7 @@ void MatrixClient::sendTextMessage(const QString &roomid, const QString &msg) no
 	endpoint.setPath(api_url_ + QString("/rooms/%1/send/m.room.message/%2").arg(roomid).arg(txn_id_));
 	endpoint.setQuery(query);
 
-	QJsonObject body{
-		{"msgtype", "m.text"},
-		{"body", msg}};
+	QJsonObject body{ { "msgtype", "m.text" }, { "body", msg } };
 
 	QNetworkRequest request(QString(endpoint.toEncoded()));
 	request.setHeader(QNetworkRequest::ContentTypeHeader, "application/json");
@@ -557,16 +572,17 @@ void MatrixClient::sendTextMessage(const QString &roomid, const QString &msg) no
 	incrementTransactionId();
 }
 
-void MatrixClient::initialSync() noexcept
+void
+MatrixClient::initialSync() noexcept
 {
 	QJsonArray excluded_presence = {
 		QString("m.presence"),
 	};
 
-	QJsonObject filter{{"room",
-			    QJsonObject{{"timeline", QJsonObject{{"limit", 20}}},
-					{"ephemeral", QJsonObject{{"limit", 0}}}}},
-			   {"presence", QJsonObject{{"not_types", excluded_presence}}}};
+	QJsonObject filter{ { "room",
+			      QJsonObject{ { "timeline", QJsonObject{ { "limit", 20 } } },
+					   { "ephemeral", QJsonObject{ { "limit", 0 } } } } },
+			    { "presence", QJsonObject{ { "not_types", excluded_presence } } } };
 
 	QUrlQuery query;
 	query.addQueryItem("full_state", "true");
@@ -584,7 +600,8 @@ void MatrixClient::initialSync() noexcept
 	reply->setProperty("endpoint", static_cast<int>(Endpoint::InitialSync));
 }
 
-void MatrixClient::versions() noexcept
+void
+MatrixClient::versions() noexcept
 {
 	QUrl endpoint(server_);
 	endpoint.setPath("/_matrix/client/versions");
@@ -595,7 +612,8 @@ void MatrixClient::versions() noexcept
 	reply->setProperty("endpoint", static_cast<int>(Endpoint::Versions));
 }
 
-void MatrixClient::getOwnProfile() noexcept
+void
+MatrixClient::getOwnProfile() noexcept
 {
 	// FIXME: Remove settings from the matrix client. The class should store the user's matrix ID.
 	QSettings settings;
@@ -614,7 +632,8 @@ void MatrixClient::getOwnProfile() noexcept
 	reply->setProperty("endpoint", static_cast<int>(Endpoint::GetOwnProfile));
 }
 
-void MatrixClient::fetchRoomAvatar(const QString &roomid, const QUrl &avatar_url)
+void
+MatrixClient::fetchRoomAvatar(const QString &roomid, const QUrl &avatar_url)
 {
 	QList<QString> url_parts = avatar_url.toString().split("mxc://");
 
@@ -640,7 +659,8 @@ void MatrixClient::fetchRoomAvatar(const QString &roomid, const QUrl &avatar_url
 	reply->setProperty("endpoint", static_cast<int>(Endpoint::RoomAvatar));
 }
 
-void MatrixClient::fetchUserAvatar(const QString &userId, const QUrl &avatarUrl)
+void
+MatrixClient::fetchUserAvatar(const QString &userId, const QUrl &avatarUrl)
 {
 	QList<QString> url_parts = avatarUrl.toString().split("mxc://");
 
@@ -666,7 +686,8 @@ void MatrixClient::fetchUserAvatar(const QString &userId, const QUrl &avatarUrl)
 	reply->setProperty("endpoint", static_cast<int>(Endpoint::UserAvatar));
 }
 
-void MatrixClient::downloadImage(const QString &event_id, const QUrl &url)
+void
+MatrixClient::downloadImage(const QString &event_id, const QUrl &url)
 {
 	QNetworkRequest image_request(url);
 
@@ -675,7 +696,8 @@ void MatrixClient::downloadImage(const QString &event_id, const QUrl &url)
 	reply->setProperty("endpoint", static_cast<int>(Endpoint::Image));
 }
 
-void MatrixClient::fetchOwnAvatar(const QUrl &avatar_url)
+void
+MatrixClient::fetchOwnAvatar(const QUrl &avatar_url)
 {
 	QList<QString> url_parts = avatar_url.toString().split("mxc://");
 
@@ -700,7 +722,8 @@ void MatrixClient::fetchOwnAvatar(const QUrl &avatar_url)
 	reply->setProperty("endpoint", static_cast<int>(Endpoint::GetOwnAvatar));
 }
 
-void MatrixClient::messages(const QString &room_id, const QString &from_token, int limit) noexcept
+void
+MatrixClient::messages(const QString &room_id, const QString &from_token, int limit) noexcept
 {
 	QUrlQuery query;
 	query.addQueryItem("access_token", token_);
diff --git a/src/Profile.cc b/src/Profile.cc
index 37def4c7..12430196 100644
--- a/src/Profile.cc
+++ b/src/Profile.cc
@@ -22,7 +22,8 @@
 #include "Deserializable.h"
 #include "Profile.h"
 
-void ProfileResponse::deserialize(const QJsonDocument &data)
+void
+ProfileResponse::deserialize(const QJsonDocument &data)
 {
 	if (!data.isObject())
 		throw DeserializationException("Response is not a JSON object");
diff --git a/src/QuickSwitcher.cc b/src/QuickSwitcher.cc
index 3bdd26ea..76506a5e 100644
--- a/src/QuickSwitcher.cc
+++ b/src/QuickSwitcher.cc
@@ -23,19 +23,21 @@
 
 #include "QuickSwitcher.h"
 
-RoomSearchInput::RoomSearchInput(QWidget* parent)
-    : TextField(parent)
+RoomSearchInput::RoomSearchInput(QWidget *parent)
+  : TextField(parent)
 {
 }
 
-bool RoomSearchInput::focusNextPrevChild(bool next)
+bool
+RoomSearchInput::focusNextPrevChild(bool next)
 {
 	Q_UNUSED(next);
 
 	return false;
 }
 
-void RoomSearchInput::keyPressEvent(QKeyEvent* event)
+void
+RoomSearchInput::keyPressEvent(QKeyEvent *event)
 {
 	if (event->key() == Qt::Key_Tab) {
 		auto completer = this->completer();
@@ -55,8 +57,8 @@ void RoomSearchInput::keyPressEvent(QKeyEvent* event)
 	TextField::keyPressEvent(event);
 }
 
-QuickSwitcher::QuickSwitcher(QWidget* parent)
-    : QFrame(parent)
+QuickSwitcher::QuickSwitcher(QWidget *parent)
+  : QFrame(parent)
 {
 	setMaximumWidth(400);
 	setStyleSheet("background-color: #f9f9f9");
@@ -69,7 +71,7 @@ QuickSwitcher::QuickSwitcher(QWidget* parent)
 	roomSearch_->setPlaceholderText(tr("Find a room..."));
 
 	QStringList wordList;
-	QCompleter* completer = new QCompleter(wordList, this);
+	QCompleter *completer = new QCompleter(wordList, this);
 	completer->setCaseSensitivity(Qt::CaseInsensitive);
 
 	roomSearch_->setCompleter(completer);
@@ -87,7 +89,8 @@ QuickSwitcher::QuickSwitcher(QWidget* parent)
 	});
 }
 
-void QuickSwitcher::setRoomList(const QMap<QString, QString>& rooms)
+void
+QuickSwitcher::setRoomList(const QMap<QString, QString> &rooms)
 {
 	rooms_ = rooms;
 
@@ -99,12 +102,14 @@ void QuickSwitcher::setRoomList(const QMap<QString, QString>& rooms)
 	roomSearch_->completer()->setModel(new QStringListModel(search_items));
 }
 
-void QuickSwitcher::showEvent(QShowEvent*)
+void
+QuickSwitcher::showEvent(QShowEvent *)
 {
 	roomSearch_->setFocus();
 }
 
-void QuickSwitcher::keyPressEvent(QKeyEvent* event)
+void
+QuickSwitcher::keyPressEvent(QKeyEvent *event)
 {
 	if (event->key() == Qt::Key_Escape) {
 		roomSearch_->clear();
diff --git a/src/Register.cc b/src/Register.cc
index 6100555c..616625f5 100644
--- a/src/Register.cc
+++ b/src/Register.cc
@@ -23,21 +23,21 @@
 #include "Register.h"
 
 RegisterRequest::RegisterRequest(const QString &username, const QString &password)
-    : user_(username)
-    , password_(password)
+  : user_(username)
+  , password_(password)
 {
 }
 
-QByteArray RegisterRequest::serialize() noexcept
+QByteArray
+RegisterRequest::serialize() noexcept
 {
-	QJsonObject body{
-		{"username", user_},
-		{"password", password_}};
+	QJsonObject body{ { "username", user_ }, { "password", password_ } };
 
 	return QJsonDocument(body).toJson(QJsonDocument::Compact);
 }
 
-void RegisterResponse::deserialize(const QJsonDocument &data)
+void
+RegisterResponse::deserialize(const QJsonDocument &data)
 {
 	if (!data.isObject())
 		throw DeserializationException("Response is not a JSON object");
diff --git a/src/RegisterPage.cc b/src/RegisterPage.cc
index d6120c38..8ac51da5 100644
--- a/src/RegisterPage.cc
+++ b/src/RegisterPage.cc
@@ -23,8 +23,8 @@
 #include "RegisterPage.h"
 
 RegisterPage::RegisterPage(QSharedPointer<MatrixClient> client, QWidget *parent)
-    : QWidget(parent)
-    , client_(client)
+  : QWidget(parent)
+  , client_(client)
 {
 	setStyleSheet("background-color: #f9f9f9");
 
@@ -144,17 +144,20 @@ RegisterPage::RegisterPage(QSharedPointer<MatrixClient> client, QWidget *parent)
 	setLayout(top_layout_);
 }
 
-void RegisterPage::onBackButtonClicked()
+void
+RegisterPage::onBackButtonClicked()
 {
 	emit backButtonClicked();
 }
 
-void RegisterPage::registerError(const QString &msg)
+void
+RegisterPage::registerError(const QString &msg)
 {
 	error_label_->setText(msg);
 }
 
-void RegisterPage::onRegisterButtonClicked()
+void
+RegisterPage::onRegisterButtonClicked()
 {
 	error_label_->setText("");
 
diff --git a/src/RoomInfoListItem.cc b/src/RoomInfoListItem.cc
index 103bbd53..b4ea37f8 100644
--- a/src/RoomInfoListItem.cc
+++ b/src/RoomInfoListItem.cc
@@ -29,13 +29,13 @@ RoomInfoListItem::RoomInfoListItem(QSharedPointer<RoomSettings> settings,
 				   RoomState state,
 				   QString room_id,
 				   QWidget *parent)
-    : QWidget(parent)
-    , state_(state)
-    , roomId_(room_id)
-    , roomSettings_{settings}
-    , isPressed_(false)
-    , maxHeight_(IconSize + 2 * Padding)
-    , unreadMsgCount_(0)
+  : QWidget(parent)
+  , state_(state)
+  , roomId_(room_id)
+  , roomSettings_{ settings }
+  , isPressed_(false)
+  , maxHeight_(IconSize + 2 * Padding)
+  , unreadMsgCount_(0)
 {
 	setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
 	setMouseTracking(true);
@@ -54,14 +54,13 @@ RoomInfoListItem::RoomInfoListItem(QSharedPointer<RoomSettings> settings,
 
 	toggleNotifications_ = new QAction(notificationText(), this);
 
-	connect(toggleNotifications_, &QAction::triggered, this, [=]() {
-		roomSettings_->toggleNotifications();
-	});
+	connect(toggleNotifications_, &QAction::triggered, this, [=]() { roomSettings_->toggleNotifications(); });
 
 	menu_->addAction(toggleNotifications_);
 }
 
-QString RoomInfoListItem::notificationText()
+QString
+RoomInfoListItem::notificationText()
 {
 	if (roomSettings_.isNull() || roomSettings_->isNotificationsEnabled())
 		return QString(tr("Disable notifications"));
@@ -69,7 +68,8 @@ QString RoomInfoListItem::notificationText()
 	return tr("Enable notifications");
 }
 
-void RoomInfoListItem::resizeEvent(QResizeEvent *)
+void
+RoomInfoListItem::resizeEvent(QResizeEvent *)
 {
 	// Update ripple's clipping path.
 	QPainterPath path;
@@ -79,7 +79,8 @@ void RoomInfoListItem::resizeEvent(QResizeEvent *)
 	ripple_overlay_->setClipping(true);
 }
 
-void RoomInfoListItem::paintEvent(QPaintEvent *event)
+void
+RoomInfoListItem::paintEvent(QPaintEvent *event)
 {
 	Q_UNUSED(event);
 
@@ -119,7 +120,8 @@ void RoomInfoListItem::paintEvent(QPaintEvent *event)
 		QFontMetrics fontNameMetrics(font);
 		int top_y = 2 * Padding + fontNameMetrics.ascent() / 2;
 
-		auto name = metrics.elidedText(state_.getName(), Qt::ElideRight, (width() - IconSize - 2 * Padding) * 0.8);
+		auto name =
+			metrics.elidedText(state_.getName(), Qt::ElideRight, (width() - IconSize - 2 * Padding) * 0.8);
 		p.drawText(QPoint(2 * Padding + IconSize, top_y), name);
 
 		if (!isPressed_) {
@@ -226,19 +228,22 @@ void RoomInfoListItem::paintEvent(QPaintEvent *event)
 	}
 }
 
-void RoomInfoListItem::updateUnreadMessageCount(int count)
+void
+RoomInfoListItem::updateUnreadMessageCount(int count)
 {
 	unreadMsgCount_ += count;
 	update();
 }
 
-void RoomInfoListItem::clearUnreadMessageCount()
+void
+RoomInfoListItem::clearUnreadMessageCount()
 {
 	unreadMsgCount_ = 0;
 	update();
 }
 
-void RoomInfoListItem::setPressedState(bool state)
+void
+RoomInfoListItem::setPressedState(bool state)
 {
 	if (!isPressed_ && state) {
 		isPressed_ = state;
@@ -249,13 +254,15 @@ void RoomInfoListItem::setPressedState(bool state)
 	}
 }
 
-void RoomInfoListItem::setState(const RoomState &new_state)
+void
+RoomInfoListItem::setState(const RoomState &new_state)
 {
 	state_ = new_state;
 	update();
 }
 
-void RoomInfoListItem::contextMenuEvent(QContextMenuEvent *event)
+void
+RoomInfoListItem::contextMenuEvent(QContextMenuEvent *event)
 {
 	Q_UNUSED(event);
 
@@ -263,7 +270,8 @@ void RoomInfoListItem::contextMenuEvent(QContextMenuEvent *event)
 	menu_->popup(event->globalPos());
 }
 
-void RoomInfoListItem::mousePressEvent(QMouseEvent *event)
+void
+RoomInfoListItem::mousePressEvent(QMouseEvent *event)
 {
 	if (event->buttons() == Qt::RightButton) {
 		QWidget::mousePressEvent(event);
diff --git a/src/RoomList.cc b/src/RoomList.cc
index a35ef2f8..3b14b5f1 100644
--- a/src/RoomList.cc
+++ b/src/RoomList.cc
@@ -24,8 +24,8 @@
 #include "Sync.h"
 
 RoomList::RoomList(QSharedPointer<MatrixClient> client, QWidget *parent)
-    : QWidget(parent)
-    , client_(client)
+  : QWidget(parent)
+  , client_(client)
 {
 	setStyleSheet("QWidget { border: none; }");
 
@@ -65,12 +65,14 @@ RoomList::~RoomList()
 {
 }
 
-void RoomList::clear()
+void
+RoomList::clear()
 {
 	rooms_.clear();
 }
 
-void RoomList::updateUnreadMessageCount(const QString &roomid, int count)
+void
+RoomList::updateUnreadMessageCount(const QString &roomid, int count)
 {
 	if (!rooms_.contains(roomid)) {
 		qWarning() << "UpdateUnreadMessageCount: Unknown roomid";
@@ -82,7 +84,8 @@ void RoomList::updateUnreadMessageCount(const QString &roomid, int count)
 	calculateUnreadMessageCount();
 }
 
-void RoomList::calculateUnreadMessageCount()
+void
+RoomList::calculateUnreadMessageCount()
 {
 	int total_unread_msgs = 0;
 
@@ -92,8 +95,9 @@ void RoomList::calculateUnreadMessageCount()
 	emit totalUnreadMessageCountUpdated(total_unread_msgs);
 }
 
-void RoomList::setInitialRooms(const QMap<QString, QSharedPointer<RoomSettings>> &settings,
-			       const QMap<QString, RoomState> &states)
+void
+RoomList::setInitialRooms(const QMap<QString, QSharedPointer<RoomSettings>> &settings,
+			  const QMap<QString, RoomState> &states)
 {
 	rooms_.clear();
 
@@ -128,7 +132,8 @@ void RoomList::setInitialRooms(const QMap<QString, QSharedPointer<RoomSettings>>
 	emit roomChanged(rooms_.firstKey());
 }
 
-void RoomList::sync(const QMap<QString, RoomState> &states)
+void
+RoomList::sync(const QMap<QString, RoomState> &states)
 {
 	for (auto it = states.constBegin(); it != states.constEnd(); it++) {
 		auto room_id = it.key();
@@ -150,7 +155,8 @@ void RoomList::sync(const QMap<QString, RoomState> &states)
 	}
 }
 
-void RoomList::highlightSelectedRoom(const QString &room_id)
+void
+RoomList::highlightSelectedRoom(const QString &room_id)
 {
 	emit roomChanged(room_id);
 
@@ -175,7 +181,8 @@ void RoomList::highlightSelectedRoom(const QString &room_id)
 	}
 }
 
-void RoomList::updateRoomAvatar(const QString &roomid, const QPixmap &img)
+void
+RoomList::updateRoomAvatar(const QString &roomid, const QPixmap &img)
 {
 	if (!rooms_.contains(roomid)) {
 		qWarning() << "Avatar update on non existent room" << roomid;
@@ -185,7 +192,8 @@ void RoomList::updateRoomAvatar(const QString &roomid, const QPixmap &img)
 	rooms_.value(roomid)->setAvatar(img.toImage());
 }
 
-void RoomList::updateRoomDescription(const QString &roomid, const DescInfo &info)
+void
+RoomList::updateRoomDescription(const QString &roomid, const DescInfo &info)
 {
 	if (!rooms_.contains(roomid)) {
 		qWarning() << "Description update on non existent room" << roomid << info.body;
diff --git a/src/RoomMessages.cc b/src/RoomMessages.cc
index 0aa020a4..14155de9 100644
--- a/src/RoomMessages.cc
+++ b/src/RoomMessages.cc
@@ -17,7 +17,8 @@
 
 #include "RoomMessages.h"
 
-void RoomMessages::deserialize(const QJsonDocument &data)
+void
+RoomMessages::deserialize(const QJsonDocument &data)
 {
 	if (!data.isObject())
 		throw DeserializationException("response is not a JSON object");
diff --git a/src/RoomState.cc b/src/RoomState.cc
index c5e763e7..b22177b2 100644
--- a/src/RoomState.cc
+++ b/src/RoomState.cc
@@ -23,7 +23,8 @@
 
 namespace events = matrix::events;
 
-void RoomState::resolveName()
+void
+RoomState::resolveName()
 {
 	name_ = "Empty Room";
 	userAvatar_.clear();
@@ -69,7 +70,8 @@ void RoomState::resolveName()
 		name_ = QString("%1 and %2 others").arg(name_).arg(memberships.size());
 }
 
-void RoomState::resolveAvatar()
+void
+RoomState::resolveAvatar()
 {
 	if (userAvatar_.isEmpty()) {
 		avatar_ = avatar.content().url();
@@ -84,7 +86,8 @@ void RoomState::resolveAvatar()
 }
 
 // Should be used only after initial sync.
-void RoomState::removeLeaveMemberships()
+void
+RoomState::removeLeaveMemberships()
 {
 	for (auto it = memberships.begin(); it != memberships.end();) {
 		if (it.value().content().membershipState() == events::Membership::Leave) {
@@ -95,7 +98,8 @@ void RoomState::removeLeaveMemberships()
 	}
 }
 
-void RoomState::update(const RoomState &state)
+void
+RoomState::update(const RoomState &state)
 {
 	bool needsNameCalculation = false;
 	bool needsAvatarCalculation = false;
@@ -152,7 +156,8 @@ void RoomState::update(const RoomState &state)
 		resolveAvatar();
 }
 
-QJsonObject RoomState::serialize() const
+QJsonObject
+RoomState::serialize() const
 {
 	QJsonObject obj;
 
@@ -186,10 +191,11 @@ QJsonObject RoomState::serialize() const
 	return obj;
 }
 
-void RoomState::parse(const QJsonObject &object)
+void
+RoomState::parse(const QJsonObject &object)
 {
 	// FIXME: Make this less versbose.
-	
+
 	if (object.contains("aliases")) {
 		events::StateEvent<events::AliasesEventContent> event;
 
diff --git a/src/SlidingStackWidget.cc b/src/SlidingStackWidget.cc
index 472f750b..c3ae0635 100644
--- a/src/SlidingStackWidget.cc
+++ b/src/SlidingStackWidget.cc
@@ -18,7 +18,7 @@
 #include "SlidingStackWidget.h"
 
 SlidingStackWidget::SlidingStackWidget(QWidget *parent)
-    : QStackedWidget(parent)
+  : QStackedWidget(parent)
 {
 	window_ = parent;
 
@@ -39,7 +39,8 @@ SlidingStackWidget::~SlidingStackWidget()
 {
 }
 
-void SlidingStackWidget::slideInNext()
+void
+SlidingStackWidget::slideInNext()
 {
 	int now = currentIndex();
 
@@ -47,7 +48,8 @@ void SlidingStackWidget::slideInNext()
 		slideInIndex(now + 1);
 }
 
-void SlidingStackWidget::slideInPrevious()
+void
+SlidingStackWidget::slideInPrevious()
 {
 	int now = currentIndex();
 
@@ -55,7 +57,8 @@ void SlidingStackWidget::slideInPrevious()
 		slideInIndex(now - 1);
 }
 
-void SlidingStackWidget::slideInIndex(int index, AnimationDirection direction)
+void
+SlidingStackWidget::slideInIndex(int index, AnimationDirection direction)
 {
 	// Take into consideration possible index overflow/undeflow.
 	if (index > count() - 1) {
@@ -69,7 +72,8 @@ void SlidingStackWidget::slideInIndex(int index, AnimationDirection direction)
 	slideInWidget(widget(index), direction);
 }
 
-void SlidingStackWidget::slideInWidget(QWidget *next_widget, AnimationDirection direction)
+void
+SlidingStackWidget::slideInWidget(QWidget *next_widget, AnimationDirection direction)
 {
 	// If an animation is currenlty executing we should wait for it to finish before
 	// another transition can start.
@@ -132,7 +136,8 @@ void SlidingStackWidget::slideInWidget(QWidget *next_widget, AnimationDirection
 	animation_group->start();
 }
 
-void SlidingStackWidget::onAnimationFinished()
+void
+SlidingStackWidget::onAnimationFinished()
 {
 	setCurrentIndex(next_);
 
@@ -145,7 +150,8 @@ void SlidingStackWidget::onAnimationFinished()
 	emit animationFinished();
 }
 
-int SlidingStackWidget::getWidgetIndex(QWidget *widget)
+int
+SlidingStackWidget::getWidgetIndex(QWidget *widget)
 {
 	return indexOf(widget);
 }
diff --git a/src/Splitter.cc b/src/Splitter.cc
index a15e8d0a..7e6d4d0a 100644
--- a/src/Splitter.cc
+++ b/src/Splitter.cc
@@ -21,13 +21,14 @@
 #include "Theme.h"
 
 Splitter::Splitter(QWidget *parent)
-    : QSplitter(parent)
+  : QSplitter(parent)
 {
 	connect(this, &QSplitter::splitterMoved, this, &Splitter::onSplitterMoved);
 	setChildrenCollapsible(false);
 }
 
-void Splitter::onSplitterMoved(int pos, int index)
+void
+Splitter::onSplitterMoved(int pos, int index)
 {
 	Q_UNUSED(pos);
 	Q_UNUSED(index);
diff --git a/src/Sync.cc b/src/Sync.cc
index 0d04e878..047350d0 100644
--- a/src/Sync.cc
+++ b/src/Sync.cc
@@ -24,7 +24,8 @@
 #include "Deserializable.h"
 #include "Sync.h"
 
-void SyncResponse::deserialize(const QJsonDocument &data)
+void
+SyncResponse::deserialize(const QJsonDocument &data)
 {
 	if (!data.isObject())
 		throw DeserializationException("Sync response is not a JSON object");
@@ -41,7 +42,8 @@ void SyncResponse::deserialize(const QJsonDocument &data)
 	next_batch_ = object.value("next_batch").toString();
 }
 
-void Rooms::deserialize(const QJsonValue &data)
+void
+Rooms::deserialize(const QJsonValue &data)
 {
 	if (!data.isObject())
 		throw DeserializationException("Rooms value is not a JSON object");
@@ -81,7 +83,8 @@ void Rooms::deserialize(const QJsonValue &data)
 	}
 }
 
-void JoinedRoom::deserialize(const QJsonValue &data)
+void
+JoinedRoom::deserialize(const QJsonValue &data)
 {
 	if (!data.isObject())
 		throw DeserializationException("JoinedRoom is not a JSON object");
@@ -112,7 +115,8 @@ void JoinedRoom::deserialize(const QJsonValue &data)
 	timeline_.deserialize(object.value("timeline"));
 }
 
-void Event::deserialize(const QJsonValue &data)
+void
+Event::deserialize(const QJsonValue &data)
 {
 	if (!data.isObject())
 		throw DeserializationException("Event is not a JSON object");
@@ -152,7 +156,8 @@ void Event::deserialize(const QJsonValue &data)
 	origin_server_ts_ = object.value("origin_server_ts").toDouble();
 }
 
-void State::deserialize(const QJsonValue &data)
+void
+State::deserialize(const QJsonValue &data)
 {
 	if (!data.isArray())
 		throw DeserializationException("State is not a JSON array");
@@ -160,7 +165,8 @@ void State::deserialize(const QJsonValue &data)
 	events_ = data.toArray();
 }
 
-void Timeline::deserialize(const QJsonValue &data)
+void
+Timeline::deserialize(const QJsonValue &data)
 {
 	if (!data.isObject())
 		throw DeserializationException("Timeline is not a JSON object");
diff --git a/src/TextInputWidget.cc b/src/TextInputWidget.cc
index 9b70cd9b..328c99e2 100644
--- a/src/TextInputWidget.cc
+++ b/src/TextInputWidget.cc
@@ -24,12 +24,13 @@
 #include "TextInputWidget.h"
 
 FilteredTextEdit::FilteredTextEdit(QWidget *parent)
-    : QTextEdit(parent)
+  : QTextEdit(parent)
 {
 	setAcceptRichText(false);
 }
 
-void FilteredTextEdit::keyPressEvent(QKeyEvent *event)
+void
+FilteredTextEdit::keyPressEvent(QKeyEvent *event)
 {
 	if (event->key() == Qt::Key_Return || event->key() == Qt::Key_Enter)
 		emit enterPressed();
@@ -38,7 +39,7 @@ void FilteredTextEdit::keyPressEvent(QKeyEvent *event)
 }
 
 TextInputWidget::TextInputWidget(QWidget *parent)
-    : QWidget(parent)
+  : QWidget(parent)
 {
 	setFont(QFont("Emoji One"));
 
@@ -95,7 +96,8 @@ TextInputWidget::TextInputWidget(QWidget *parent)
 	connect(emoji_button_, SIGNAL(emojiSelected(const QString &)), this, SLOT(addSelectedEmoji(const QString &)));
 }
 
-void TextInputWidget::addSelectedEmoji(const QString &emoji)
+void
+TextInputWidget::addSelectedEmoji(const QString &emoji)
 {
 	QTextCursor cursor = input_->textCursor();
 
@@ -118,7 +120,8 @@ void TextInputWidget::addSelectedEmoji(const QString &emoji)
 	input_->show();
 }
 
-void TextInputWidget::onSendButtonClicked()
+void
+TextInputWidget::onSendButtonClicked()
 {
 	auto msg_text = input_->document()->toPlainText().trimmed();
 
@@ -130,7 +133,8 @@ void TextInputWidget::onSendButtonClicked()
 	input_->clear();
 }
 
-void TextInputWidget::paintEvent(QPaintEvent *event)
+void
+TextInputWidget::paintEvent(QPaintEvent *event)
 {
 	Q_UNUSED(event);
 
diff --git a/src/TimelineItem.cc b/src/TimelineItem.cc
index 5a3b3f23..70cecca4 100644
--- a/src/TimelineItem.cc
+++ b/src/TimelineItem.cc
@@ -33,7 +33,8 @@ static const QString URL_HTML = "<a href=\"\\1\" style=\"color: #333333\">\\1</a
 namespace events = matrix::events;
 namespace msgs = matrix::events::messages;
 
-void TimelineItem::init()
+void
+TimelineItem::init()
 {
 	userAvatar_ = nullptr;
 	timestamp_ = nullptr;
@@ -65,14 +66,14 @@ void TimelineItem::init()
 	headerLayout_->setSpacing(conf::timeline::headerSpacing);
 }
 
-/* 
- * For messages created locally. The avatar and the username are displayed. 
+/*
+ * For messages created locally. The avatar and the username are displayed.
  */
 TimelineItem::TimelineItem(const QString &userid, const QString &color, QString body, QWidget *parent)
-    : QWidget(parent)
+  : QWidget(parent)
 {
 	init();
-	descriptionMsg_ = {"You: ", userid, body, descriptiveTime(QDateTime::currentDateTime())};
+	descriptionMsg_ = { "You: ", userid, body, descriptiveTime(QDateTime::currentDateTime()) };
 
 	body.replace(URL_REGEX, URL_HTML);
 	auto displayName = TimelineViewManager::displayName(userid);
@@ -89,16 +90,16 @@ TimelineItem::TimelineItem(const QString &userid, const QString &color, QString
 }
 
 /*
- * For messages created locally. Only the text is displayed. 
+ * For messages created locally. Only the text is displayed.
  */
 TimelineItem::TimelineItem(QString body, QWidget *parent)
-    : QWidget(parent)
+  : QWidget(parent)
 {
 	QSettings settings;
 	auto userid = settings.value("auth/user_id").toString();
 
 	init();
-	descriptionMsg_ = {"You: ", userid, body, descriptiveTime(QDateTime::currentDateTime())};
+	descriptionMsg_ = { "You: ", userid, body, descriptiveTime(QDateTime::currentDateTime()) };
 
 	body.replace(URL_REGEX, URL_HTML);
 
@@ -117,7 +118,7 @@ TimelineItem::TimelineItem(ImageItem *image,
 			   const events::MessageEvent<msgs::Image> &event,
 			   const QString &color,
 			   QWidget *parent)
-    : QWidget(parent)
+  : QWidget(parent)
 {
 	init();
 
@@ -125,11 +126,10 @@ TimelineItem::TimelineItem(ImageItem *image,
 	auto displayName = TimelineViewManager::displayName(event.sender());
 
 	QSettings settings;
-	descriptionMsg_ = {
-		event.sender() == settings.value("auth/user_id") ? "You" : displayName,
-		event.sender(),
-		" sent an image",
-		descriptiveTime(QDateTime::fromMSecsSinceEpoch(event.timestamp()))};
+	descriptionMsg_ = { event.sender() == settings.value("auth/user_id") ? "You" : displayName,
+			    event.sender(),
+			    " sent an image",
+			    descriptiveTime(QDateTime::fromMSecsSinceEpoch(event.timestamp())) };
 
 	generateTimestamp(timestamp);
 	generateBody(displayName, color, "");
@@ -150,18 +150,17 @@ TimelineItem::TimelineItem(ImageItem *image,
  * Used to display images. Only the image is displayed.
  */
 TimelineItem::TimelineItem(ImageItem *image, const events::MessageEvent<msgs::Image> &event, QWidget *parent)
-    : QWidget(parent)
+  : QWidget(parent)
 {
 	init();
 
 	auto displayName = TimelineViewManager::displayName(event.sender());
 
 	QSettings settings;
-	descriptionMsg_ = {
-		event.sender() == settings.value("auth/user_id") ? "You" : displayName,
-		event.sender(),
-		" sent an image",
-		descriptiveTime(QDateTime::fromMSecsSinceEpoch(event.timestamp()))};
+	descriptionMsg_ = { event.sender() == settings.value("auth/user_id") ? "You" : displayName,
+			    event.sender(),
+			    " sent an image",
+			    descriptiveTime(QDateTime::fromMSecsSinceEpoch(event.timestamp())) };
 
 	auto timestamp = QDateTime::fromMSecsSinceEpoch(event.timestamp());
 	generateTimestamp(timestamp);
@@ -179,15 +178,17 @@ TimelineItem::TimelineItem(ImageItem *image, const events::MessageEvent<msgs::Im
 /*
  * Used to display remote notice messages.
  */
-TimelineItem::TimelineItem(const events::MessageEvent<msgs::Notice> &event, bool with_sender, const QString &color, QWidget *parent)
-    : QWidget(parent)
+TimelineItem::TimelineItem(const events::MessageEvent<msgs::Notice> &event,
+			   bool with_sender,
+			   const QString &color,
+			   QWidget *parent)
+  : QWidget(parent)
 {
 	init();
-	descriptionMsg_ = {
-		TimelineViewManager::displayName(event.sender()),
-		event.sender(),
-		" sent a notification",
-		descriptiveTime(QDateTime::fromMSecsSinceEpoch(event.timestamp()))};
+	descriptionMsg_ = { TimelineViewManager::displayName(event.sender()),
+			    event.sender(),
+			    " sent a notification",
+			    descriptiveTime(QDateTime::fromMSecsSinceEpoch(event.timestamp())) };
 
 	auto body = event.content().body().trimmed().toHtmlEscaped();
 	auto timestamp = QDateTime::fromMSecsSinceEpoch(event.timestamp());
@@ -217,8 +218,11 @@ TimelineItem::TimelineItem(const events::MessageEvent<msgs::Notice> &event, bool
 /*
  * Used to display remote text messages.
  */
-TimelineItem::TimelineItem(const events::MessageEvent<msgs::Text> &event, bool with_sender, const QString &color, QWidget *parent)
-    : QWidget(parent)
+TimelineItem::TimelineItem(const events::MessageEvent<msgs::Text> &event,
+			   bool with_sender,
+			   const QString &color,
+			   QWidget *parent)
+  : QWidget(parent)
 {
 	init();
 
@@ -227,11 +231,10 @@ TimelineItem::TimelineItem(const events::MessageEvent<msgs::Text> &event, bool w
 	auto displayName = TimelineViewManager::displayName(event.sender());
 
 	QSettings settings;
-	descriptionMsg_ = {
-		event.sender() == settings.value("auth/user_id") ? "You" : displayName,
-		event.sender(),
-		QString(": %1").arg(body),
-		descriptiveTime(QDateTime::fromMSecsSinceEpoch(event.timestamp()))};
+	descriptionMsg_ = { event.sender() == settings.value("auth/user_id") ? "You" : displayName,
+			    event.sender(),
+			    QString(": %1").arg(body),
+			    descriptiveTime(QDateTime::fromMSecsSinceEpoch(event.timestamp())) };
 
 	generateTimestamp(timestamp);
 
@@ -255,7 +258,8 @@ TimelineItem::TimelineItem(const events::MessageEvent<msgs::Text> &event, bool w
 }
 
 // Only the body is displayed.
-void TimelineItem::generateBody(const QString &body)
+void
+TimelineItem::generateBody(const QString &body)
 {
 	QString content("<span style=\"color: black;\"> %1 </span>");
 
@@ -270,7 +274,8 @@ void TimelineItem::generateBody(const QString &body)
 }
 
 // The username/timestamp is displayed along with the message body.
-void TimelineItem::generateBody(const QString &userid, const QString &color, const QString &body)
+void
+TimelineItem::generateBody(const QString &userid, const QString &color, const QString &body)
 {
 	auto sender = userid;
 
@@ -300,7 +305,8 @@ void TimelineItem::generateBody(const QString &userid, const QString &color, con
 	body_->setMargin(0);
 }
 
-void TimelineItem::generateTimestamp(const QDateTime &time)
+void
+TimelineItem::generateTimestamp(const QDateTime &time)
 {
 	QString msg("<span style=\"color: #5d6565;\"> %1 </span>");
 
@@ -316,7 +322,8 @@ void TimelineItem::generateTimestamp(const QDateTime &time)
 	timestamp_->setContentsMargins(0, topMargin, 0, 0);
 }
 
-QString TimelineItem::replaceEmoji(const QString &body)
+QString
+TimelineItem::replaceEmoji(const QString &body)
 {
 	QString fmtBody = "";
 
@@ -325,9 +332,9 @@ QString TimelineItem::replaceEmoji(const QString &body)
 
 		// TODO: Be more precise here.
 		if (code > 9000)
-			fmtBody += QString("<span style=\"font-family: Emoji One; font-size: %1px\">").arg(conf::emojiSize) +
-				   QString(c) +
-				   "</span>";
+			fmtBody += QString("<span style=\"font-family: Emoji One; font-size: %1px\">")
+					   .arg(conf::emojiSize) +
+				   QString(c) + "</span>";
 		else
 			fmtBody += c;
 	}
@@ -335,7 +342,8 @@ QString TimelineItem::replaceEmoji(const QString &body)
 	return fmtBody;
 }
 
-void TimelineItem::setupAvatarLayout(const QString &userName)
+void
+TimelineItem::setupAvatarLayout(const QString &userName)
 {
 	topLayout_->setContentsMargins(conf::timeline::msgMargin, conf::timeline::msgMargin, 0, 0);
 
@@ -356,7 +364,8 @@ void TimelineItem::setupAvatarLayout(const QString &userName)
 	headerLayout_->addWidget(timestamp_, 1);
 }
 
-void TimelineItem::setupSimpleLayout()
+void
+TimelineItem::setupSimpleLayout()
 {
 	sideLayout_->addWidget(timestamp_);
 
@@ -378,7 +387,8 @@ void TimelineItem::setupSimpleLayout()
 	topLayout_->setContentsMargins(conf::timeline::msgMargin, conf::timeline::msgMargin / 3, 0, 0);
 }
 
-void TimelineItem::setUserAvatar(const QImage &avatar)
+void
+TimelineItem::setUserAvatar(const QImage &avatar)
 {
 	if (userAvatar_ == nullptr)
 		return;
@@ -386,7 +396,8 @@ void TimelineItem::setUserAvatar(const QImage &avatar)
 	userAvatar_->setImage(avatar);
 }
 
-QString TimelineItem::descriptiveTime(const QDateTime &then)
+QString
+TimelineItem::descriptiveTime(const QDateTime &then)
 {
 	auto now = QDateTime::currentDateTime();
 
diff --git a/src/TimelineView.cc b/src/TimelineView.cc
index 1d6dd59a..80afcfa2 100644
--- a/src/TimelineView.cc
+++ b/src/TimelineView.cc
@@ -38,9 +38,9 @@ TimelineView::TimelineView(const Timeline &timeline,
 			   QSharedPointer<MatrixClient> client,
 			   const QString &room_id,
 			   QWidget *parent)
-    : QWidget(parent)
-    , room_id_{room_id}
-    , client_{client}
+  : QWidget(parent)
+  , room_id_{ room_id }
+  , client_{ client }
 {
 	QSettings settings;
 	local_user_ = settings.value("auth/user_id").toString();
@@ -50,9 +50,9 @@ TimelineView::TimelineView(const Timeline &timeline,
 }
 
 TimelineView::TimelineView(QSharedPointer<MatrixClient> client, const QString &room_id, QWidget *parent)
-    : QWidget(parent)
-    , room_id_{room_id}
-    , client_{client}
+  : QWidget(parent)
+  , room_id_{ room_id }
+  , client_{ client }
 {
 	QSettings settings;
 	local_user_ = settings.value("auth/user_id").toString();
@@ -61,7 +61,8 @@ TimelineView::TimelineView(QSharedPointer<MatrixClient> client, const QString &r
 	client_->messages(room_id_, "");
 }
 
-void TimelineView::sliderRangeChanged(int min, int max)
+void
+TimelineView::sliderRangeChanged(int min, int max)
 {
 	Q_UNUSED(min);
 
@@ -89,7 +90,8 @@ void TimelineView::sliderRangeChanged(int min, int max)
 	}
 }
 
-void TimelineView::fetchHistory()
+void
+TimelineView::fetchHistory()
 {
 	bool hasEnoughMessages = scroll_area_->verticalScrollBar()->value() != 0;
 
@@ -103,7 +105,8 @@ void TimelineView::fetchHistory()
 	paginationTimer_->stop();
 }
 
-void TimelineView::scrollDown()
+void
+TimelineView::scrollDown()
 {
 	int current = scroll_area_->verticalScrollBar()->value();
 	int max = scroll_area_->verticalScrollBar()->maximum();
@@ -120,7 +123,8 @@ void TimelineView::scrollDown()
 		scroll_area_->verticalScrollBar()->setValue(max);
 }
 
-void TimelineView::sliderMoved(int position)
+void
+TimelineView::sliderMoved(int position)
 {
 	if (!scroll_area_->verticalScrollBar()->isVisible())
 		return;
@@ -142,7 +146,8 @@ void TimelineView::sliderMoved(int position)
 	}
 }
 
-void TimelineView::addBackwardsEvents(const QString &room_id, const RoomMessages &msgs)
+void
+TimelineView::addBackwardsEvents(const QString &room_id, const RoomMessages &msgs)
 {
 	if (room_id_ != room_id)
 		return;
@@ -189,7 +194,8 @@ void TimelineView::addBackwardsEvents(const QString &room_id, const RoomMessages
 		lastSender_ = items.constFirst()->descriptionMessage().userid;
 }
 
-TimelineItem *TimelineView::parseMessageEvent(const QJsonObject &event, TimelineDirection direction)
+TimelineItem *
+TimelineView::parseMessageEvent(const QJsonObject &event, TimelineDirection direction)
 {
 	events::EventType ty = events::extractEventType(event);
 
@@ -274,7 +280,8 @@ TimelineItem *TimelineView::parseMessageEvent(const QJsonObject &event, Timeline
 	return nullptr;
 }
 
-int TimelineView::addEvents(const Timeline &timeline)
+int
+TimelineView::addEvents(const Timeline &timeline)
 {
 	int message_count = 0;
 
@@ -306,7 +313,8 @@ int TimelineView::addEvents(const Timeline &timeline)
 	return message_count;
 }
 
-void TimelineView::init()
+void
+TimelineView::init()
 {
 	top_layout_ = new QVBoxLayout(this);
 	top_layout_->setSpacing(0);
@@ -339,10 +347,14 @@ void TimelineView::init()
 	connect(client_.data(), &MatrixClient::messagesRetrieved, this, &TimelineView::addBackwardsEvents);
 
 	connect(scroll_area_->verticalScrollBar(), SIGNAL(valueChanged(int)), this, SLOT(sliderMoved(int)));
-	connect(scroll_area_->verticalScrollBar(), SIGNAL(rangeChanged(int, int)), this, SLOT(sliderRangeChanged(int, int)));
+	connect(scroll_area_->verticalScrollBar(),
+		SIGNAL(rangeChanged(int, int)),
+		this,
+		SLOT(sliderRangeChanged(int, int)));
 }
 
-void TimelineView::updateLastSender(const QString &user_id, TimelineDirection direction)
+void
+TimelineView::updateLastSender(const QString &user_id, TimelineDirection direction)
 {
 	if (direction == TimelineDirection::Bottom)
 		lastSender_ = user_id;
@@ -350,7 +362,8 @@ void TimelineView::updateLastSender(const QString &user_id, TimelineDirection di
 		firstSender_ = user_id;
 }
 
-bool TimelineView::isSenderRendered(const QString &user_id, TimelineDirection direction)
+bool
+TimelineView::isSenderRendered(const QString &user_id, TimelineDirection direction)
 {
 	if (direction == TimelineDirection::Bottom)
 		return lastSender_ != user_id;
@@ -358,7 +371,8 @@ bool TimelineView::isSenderRendered(const QString &user_id, TimelineDirection di
 		return firstSender_ != user_id;
 }
 
-TimelineItem *TimelineView::createTimelineItem(const events::MessageEvent<msgs::Image> &event, const QString &color, bool with_sender)
+TimelineItem *
+TimelineView::createTimelineItem(const events::MessageEvent<msgs::Image> &event, const QString &color, bool with_sender)
 {
 	auto image = new ImageItem(client_, event);
 
@@ -371,19 +385,24 @@ TimelineItem *TimelineView::createTimelineItem(const events::MessageEvent<msgs::
 	return item;
 }
 
-TimelineItem *TimelineView::createTimelineItem(const events::MessageEvent<msgs::Notice> &event, const QString &color, bool with_sender)
+TimelineItem *
+TimelineView::createTimelineItem(const events::MessageEvent<msgs::Notice> &event,
+				 const QString &color,
+				 bool with_sender)
 {
 	TimelineItem *item = new TimelineItem(event, with_sender, color, scroll_widget_);
 	return item;
 }
 
-TimelineItem *TimelineView::createTimelineItem(const events::MessageEvent<msgs::Text> &event, const QString &color, bool with_sender)
+TimelineItem *
+TimelineView::createTimelineItem(const events::MessageEvent<msgs::Text> &event, const QString &color, bool with_sender)
 {
 	TimelineItem *item = new TimelineItem(event, with_sender, color, scroll_widget_);
 	return item;
 }
 
-void TimelineView::addTimelineItem(TimelineItem *item, TimelineDirection direction)
+void
+TimelineView::addTimelineItem(TimelineItem *item, TimelineDirection direction)
 {
 	if (direction == TimelineDirection::Bottom)
 		scroll_layout_->addWidget(item);
@@ -391,7 +410,8 @@ void TimelineView::addTimelineItem(TimelineItem *item, TimelineDirection directi
 		scroll_layout_->insertWidget(1, item);
 }
 
-void TimelineView::updatePendingMessage(int txn_id, QString event_id)
+void
+TimelineView::updatePendingMessage(int txn_id, QString event_id)
 {
 	for (auto &msg : pending_msgs_) {
 		if (msg.txn_id == txn_id) {
@@ -401,7 +421,8 @@ void TimelineView::updatePendingMessage(int txn_id, QString event_id)
 	}
 }
 
-bool TimelineView::isPendingMessage(const events::MessageEvent<msgs::Text> &e, const QString &local_userid)
+bool
+TimelineView::isPendingMessage(const events::MessageEvent<msgs::Text> &e, const QString &local_userid)
 {
 	if (e.sender() != local_userid)
 		return false;
@@ -414,7 +435,8 @@ bool TimelineView::isPendingMessage(const events::MessageEvent<msgs::Text> &e, c
 	return false;
 }
 
-void TimelineView::removePendingMessage(const events::MessageEvent<msgs::Text> &e)
+void
+TimelineView::removePendingMessage(const events::MessageEvent<msgs::Text> &e)
 {
 	for (auto it = pending_msgs_.begin(); it != pending_msgs_.end(); it++) {
 		int index = std::distance(pending_msgs_.begin(), it);
@@ -426,7 +448,8 @@ void TimelineView::removePendingMessage(const events::MessageEvent<msgs::Text> &
 	}
 }
 
-void TimelineView::addUserTextMessage(const QString &body, int txn_id)
+void
+TimelineView::addUserTextMessage(const QString &body, int txn_id)
 {
 	QSettings settings;
 	auto user_id = settings.value("auth/user_id").toString();
@@ -450,7 +473,8 @@ void TimelineView::addUserTextMessage(const QString &body, int txn_id)
 	pending_msgs_.push_back(message);
 }
 
-void TimelineView::notifyForLastEvent()
+void
+TimelineView::notifyForLastEvent()
 {
 	auto lastItem = scroll_layout_->itemAt(scroll_layout_->count() - 1);
 	auto *lastTimelineItem = qobject_cast<TimelineItem *>(lastItem->widget());
diff --git a/src/TimelineViewManager.cc b/src/TimelineViewManager.cc
index 455335f7..a02e89e9 100644
--- a/src/TimelineViewManager.cc
+++ b/src/TimelineViewManager.cc
@@ -27,8 +27,8 @@
 #include "TimelineViewManager.h"
 
 TimelineViewManager::TimelineViewManager(QSharedPointer<MatrixClient> client, QWidget *parent)
-    : QStackedWidget(parent)
-    , client_(client)
+  : QStackedWidget(parent)
+  , client_(client)
 {
 	setStyleSheet("QWidget { background: #f8fbfe; color: #e8e8e8; border: none;}");
 
@@ -42,7 +42,8 @@ TimelineViewManager::~TimelineViewManager()
 {
 }
 
-void TimelineViewManager::messageSent(const QString &event_id, const QString &roomid, int txn_id)
+void
+TimelineViewManager::messageSent(const QString &event_id, const QString &roomid, int txn_id)
 {
 	// We save the latest valid transaction ID for later use.
 	QSettings settings;
@@ -52,7 +53,8 @@ void TimelineViewManager::messageSent(const QString &event_id, const QString &ro
 	view->updatePendingMessage(txn_id, event_id);
 }
 
-void TimelineViewManager::sendTextMessage(const QString &msg)
+void
+TimelineViewManager::sendTextMessage(const QString &msg)
 {
 	auto room_id = active_room_;
 	auto view = views_[room_id];
@@ -61,7 +63,8 @@ void TimelineViewManager::sendTextMessage(const QString &msg)
 	client_->sendTextMessage(room_id, msg);
 }
 
-void TimelineViewManager::clearAll()
+void
+TimelineViewManager::clearAll()
 {
 	NICK_COLORS.clear();
 
@@ -71,7 +74,8 @@ void TimelineViewManager::clearAll()
 	views_.clear();
 }
 
-void TimelineViewManager::initialize(const Rooms &rooms)
+void
+TimelineViewManager::initialize(const Rooms &rooms)
 {
 	for (auto it = rooms.join().constBegin(); it != rooms.join().constEnd(); it++) {
 		auto roomid = it.key();
@@ -90,7 +94,8 @@ void TimelineViewManager::initialize(const Rooms &rooms)
 	}
 }
 
-void TimelineViewManager::initialize(const QList<QString> &rooms)
+void
+TimelineViewManager::initialize(const QList<QString> &rooms)
 {
 	for (const auto &roomid : rooms) {
 		// Create a history view without any events.
@@ -107,7 +112,8 @@ void TimelineViewManager::initialize(const QList<QString> &rooms)
 	}
 }
 
-void TimelineViewManager::sync(const Rooms &rooms)
+void
+TimelineViewManager::sync(const Rooms &rooms)
 {
 	for (auto it = rooms.join().constBegin(); it != rooms.join().constEnd(); it++) {
 		auto roomid = it.key();
@@ -132,7 +138,8 @@ void TimelineViewManager::sync(const Rooms &rooms)
 	}
 }
 
-void TimelineViewManager::setHistoryView(const QString &room_id)
+void
+TimelineViewManager::setHistoryView(const QString &room_id)
 {
 	if (!views_.contains(room_id)) {
 		qDebug() << "Room ID from RoomList is not present in ViewManager" << room_id;
@@ -151,10 +158,11 @@ void TimelineViewManager::setHistoryView(const QString &room_id)
 QMap<QString, QString> TimelineViewManager::NICK_COLORS;
 QMap<QString, QString> TimelineViewManager::DISPLAY_NAMES;
 
-QString TimelineViewManager::chooseRandomColor()
+QString
+TimelineViewManager::chooseRandomColor()
 {
 	std::random_device random_device;
-	std::mt19937 engine{random_device()};
+	std::mt19937 engine{ random_device() };
 	std::uniform_real_distribution<float> dist(0, 1);
 
 	float hue = dist(engine);
@@ -208,7 +216,8 @@ QString TimelineViewManager::chooseRandomColor()
 	return color.name();
 }
 
-QString TimelineViewManager::getUserColor(const QString &userid)
+QString
+TimelineViewManager::getUserColor(const QString &userid)
 {
 	auto color = NICK_COLORS.value(userid);
 
@@ -220,7 +229,8 @@ QString TimelineViewManager::getUserColor(const QString &userid)
 	return color;
 }
 
-QString TimelineViewManager::displayName(const QString &userid)
+QString
+TimelineViewManager::displayName(const QString &userid)
 {
 	if (DISPLAY_NAMES.contains(userid))
 		return DISPLAY_NAMES.value(userid);
diff --git a/src/TopRoomBar.cc b/src/TopRoomBar.cc
index 9de19e86..dd1cabf3 100644
--- a/src/TopRoomBar.cc
+++ b/src/TopRoomBar.cc
@@ -21,8 +21,8 @@
 #include "TopRoomBar.h"
 
 TopRoomBar::TopRoomBar(QWidget *parent)
-    : QWidget(parent)
-    , buttonSize_{32}
+  : QWidget(parent)
+  , buttonSize_{ 32 }
 {
 	setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
 	setMinimumSize(QSize(0, 65));
@@ -75,9 +75,7 @@ TopRoomBar::TopRoomBar(QWidget *parent)
 	menu_ = new Menu(this);
 
 	toggleNotifications_ = new QAction(tr("Disable notifications"), this);
-	connect(toggleNotifications_, &QAction::triggered, this, [=]() {
-		roomSettings_->toggleNotifications();
-	});
+	connect(toggleNotifications_, &QAction::triggered, this, [=]() { roomSettings_->toggleNotifications(); });
 
 	menu_->addAction(toggleNotifications_);
 
@@ -88,14 +86,14 @@ TopRoomBar::TopRoomBar(QWidget *parent)
 			toggleNotifications_->setText(tr("Enable notifications"));
 
 		auto pos = mapToGlobal(settingsBtn_->pos());
-		menu_->popup(QPoint(pos.x() + buttonSize_ - menu_->sizeHint().width(),
-				    pos.y() + buttonSize_));
+		menu_->popup(QPoint(pos.x() + buttonSize_ - menu_->sizeHint().width(), pos.y() + buttonSize_));
 	});
 
 	setLayout(top_layout_);
 }
 
-void TopRoomBar::updateRoomAvatarFromName(const QString &name)
+void
+TopRoomBar::updateRoomAvatarFromName(const QString &name)
 {
 	QChar letter = '?';
 
@@ -105,14 +103,16 @@ void TopRoomBar::updateRoomAvatarFromName(const QString &name)
 	avatar_->setLetter(letter);
 }
 
-void TopRoomBar::reset()
+void
+TopRoomBar::reset()
 {
 	name_label_->setText("");
 	topic_label_->setText("");
 	avatar_->setLetter(QChar('?'));
 }
 
-void TopRoomBar::paintEvent(QPaintEvent *event)
+void
+TopRoomBar::paintEvent(QPaintEvent *event)
 {
 	Q_UNUSED(event);
 
@@ -123,7 +123,8 @@ void TopRoomBar::paintEvent(QPaintEvent *event)
 	style()->drawPrimitive(QStyle::PE_Widget, &option, &painter, this);
 }
 
-void TopRoomBar::setRoomSettings(QSharedPointer<RoomSettings> settings)
+void
+TopRoomBar::setRoomSettings(QSharedPointer<RoomSettings> settings)
 {
 	roomSettings_ = settings;
 }
diff --git a/src/TrayIcon.cc b/src/TrayIcon.cc
index e6a10444..462b7f72 100644
--- a/src/TrayIcon.cc
+++ b/src/TrayIcon.cc
@@ -25,12 +25,13 @@
 #endif
 
 MsgCountComposedIcon::MsgCountComposedIcon(const QString &filename)
-    : QIconEngine()
+  : QIconEngine()
 {
 	icon_ = QIcon(filename);
 }
 
-void MsgCountComposedIcon::paint(QPainter *painter, const QRect &rect, QIcon::Mode mode, QIcon::State state)
+void
+MsgCountComposedIcon::paint(QPainter *painter, const QRect &rect, QIcon::Mode mode, QIcon::State state)
 {
 	painter->setRenderHint(QPainter::TextAntialiasing);
 	painter->setRenderHint(QPainter::SmoothPixmapTransform);
@@ -52,23 +53,21 @@ void MsgCountComposedIcon::paint(QPainter *painter, const QRect &rect, QIcon::Mo
 	painter->setPen(Qt::NoPen);
 	painter->setFont(QFont("Open Sans", 8, QFont::Black));
 
-	QRectF bubble(rect.width() - BubbleDiameter,
-		      rect.height() - BubbleDiameter,
-		      BubbleDiameter,
-		      BubbleDiameter);
+	QRectF bubble(rect.width() - BubbleDiameter, rect.height() - BubbleDiameter, BubbleDiameter, BubbleDiameter);
 	painter->drawEllipse(bubble);
 	painter->setPen(QPen(textColor));
 	painter->setBrush(Qt::NoBrush);
 	painter->drawText(bubble, Qt::AlignCenter, QString::number(msgCount));
 }
 
-QIconEngine *MsgCountComposedIcon::clone() const
+QIconEngine *
+MsgCountComposedIcon::clone() const
 {
 	return new MsgCountComposedIcon(*this);
 }
 
 TrayIcon::TrayIcon(const QString &filename, QWidget *parent)
-    : QSystemTrayIcon(parent)
+  : QSystemTrayIcon(parent)
 {
 #if defined(Q_OS_MAC) || defined(Q_OS_WIN)
 	setIcon(QIcon(filename));
@@ -82,9 +81,7 @@ TrayIcon::TrayIcon(const QString &filename, QWidget *parent)
 	quitAction_ = new QAction(tr("Quit"), parent);
 
 	connect(viewAction_, SIGNAL(triggered()), parent, SLOT(show()));
-	connect(quitAction_, &QAction::triggered, this, [=]() {
-		QApplication::quit();
-	});
+	connect(quitAction_, &QAction::triggered, this, [=]() { QApplication::quit(); });
 
 	menu->addAction(viewAction_);
 	menu->addAction(quitAction_);
@@ -92,12 +89,11 @@ TrayIcon::TrayIcon(const QString &filename, QWidget *parent)
 	setContextMenu(menu);
 
 	// We wait a little for the icon to load.
-	QTimer::singleShot(500, this, [=]() {
-		show();
-	});
+	QTimer::singleShot(500, this, [=]() { show(); });
 }
 
-void TrayIcon::setUnreadCount(int count)
+void
+TrayIcon::setUnreadCount(int count)
 {
 // Use the native badge counter in MacOS.
 #if defined(Q_OS_MAC)
diff --git a/src/UserInfoWidget.cc b/src/UserInfoWidget.cc
index 57e2cdd5..edff2b55 100644
--- a/src/UserInfoWidget.cc
+++ b/src/UserInfoWidget.cc
@@ -24,12 +24,12 @@
 #include "UserInfoWidget.h"
 
 UserInfoWidget::UserInfoWidget(QWidget *parent)
-    : QWidget(parent)
-    , display_name_("User")
-    , user_id_("@user:homeserver.org")
-    , logoutModal_{nullptr}
-    , logoutDialog_{nullptr}
-    , logoutButtonSize_{32}
+  : QWidget(parent)
+  , display_name_("User")
+  , user_id_("@user:homeserver.org")
+  , logoutModal_{ nullptr }
+  , logoutDialog_{ nullptr }
+  , logoutButtonSize_{ 32 }
 {
 	QSizePolicy sizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Fixed);
 	setSizePolicy(sizePolicy);
@@ -108,15 +108,14 @@ UserInfoWidget::UserInfoWidget(QWidget *parent)
 	});
 }
 
-void UserInfoWidget::closeLogoutDialog(bool isLoggingOut)
+void
+UserInfoWidget::closeLogoutDialog(bool isLoggingOut)
 {
 	logoutModal_->fadeOut();
 
 	if (isLoggingOut) {
 		// Waiting for the modal to fade out.
-		QTimer::singleShot(100, this, [=]() {
-			emit logout();
-		});
+		QTimer::singleShot(100, this, [=]() { emit logout(); });
 	}
 }
 
@@ -124,7 +123,8 @@ UserInfoWidget::~UserInfoWidget()
 {
 }
 
-void UserInfoWidget::resizeEvent(QResizeEvent *event)
+void
+UserInfoWidget::resizeEvent(QResizeEvent *event)
 {
 	Q_UNUSED(event);
 
@@ -142,20 +142,23 @@ void UserInfoWidget::resizeEvent(QResizeEvent *event)
 	}
 }
 
-void UserInfoWidget::reset()
+void
+UserInfoWidget::reset()
 {
 	displayNameLabel_->setText("");
 	userIdLabel_->setText("");
 	userAvatar_->setLetter(QChar('?'));
 }
 
-void UserInfoWidget::setAvatar(const QImage &img)
+void
+UserInfoWidget::setAvatar(const QImage &img)
 {
 	avatar_image_ = img;
 	userAvatar_->setImage(img);
 }
 
-void UserInfoWidget::setDisplayName(const QString &name)
+void
+UserInfoWidget::setDisplayName(const QString &name)
 {
 	if (name.isEmpty())
 		display_name_ = user_id_.split(':')[0].split('@')[1];
@@ -166,7 +169,8 @@ void UserInfoWidget::setDisplayName(const QString &name)
 	userAvatar_->setLetter(QChar(display_name_[0]));
 }
 
-void UserInfoWidget::setUserId(const QString &userid)
+void
+UserInfoWidget::setUserId(const QString &userid)
 {
 	user_id_ = userid;
 	userIdLabel_->setText(userid);
diff --git a/src/Versions.cc b/src/Versions.cc
index 3d7c16d8..10f3962d 100644
--- a/src/Versions.cc
+++ b/src/Versions.cc
@@ -24,7 +24,8 @@
 #include "Deserializable.h"
 #include "Versions.h"
 
-void VersionsResponse::deserialize(const QJsonDocument &data)
+void
+VersionsResponse::deserialize(const QJsonDocument &data)
 {
 	if (!data.isObject())
 		throw DeserializationException("Versions response is not a JSON object");
@@ -51,7 +52,8 @@ void VersionsResponse::deserialize(const QJsonDocument &data)
 	}
 }
 
-bool VersionsResponse::isVersionSupported(unsigned int major, unsigned int minor, unsigned int patch)
+bool
+VersionsResponse::isVersionSupported(unsigned int major, unsigned int minor, unsigned int patch)
 {
 	for (auto &v : supported_versions_) {
 		if (v.major_ == major && v.minor_ == minor && v.patch_ >= patch)
diff --git a/src/WelcomePage.cc b/src/WelcomePage.cc
index a39683f2..04dc0f59 100644
--- a/src/WelcomePage.cc
+++ b/src/WelcomePage.cc
@@ -22,7 +22,7 @@
 #include "WelcomePage.h"
 
 WelcomePage::WelcomePage(QWidget *parent)
-    : QWidget(parent)
+  : QWidget(parent)
 {
 	setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
 
@@ -86,12 +86,14 @@ WelcomePage::WelcomePage(QWidget *parent)
 	connect(login_button_, SIGNAL(clicked()), this, SLOT(onLoginButtonClicked()));
 }
 
-void WelcomePage::onLoginButtonClicked()
+void
+WelcomePage::onLoginButtonClicked()
 {
 	emit userLogin();
 }
 
-void WelcomePage::onRegisterButtonClicked()
+void
+WelcomePage::onRegisterButtonClicked()
 {
 	emit userRegister();
 }
diff --git a/src/events/AliasesEventContent.cc b/src/events/AliasesEventContent.cc
index 899a7182..da45e6e1 100644
--- a/src/events/AliasesEventContent.cc
+++ b/src/events/AliasesEventContent.cc
@@ -21,7 +21,8 @@
 
 using namespace matrix::events;
 
-void AliasesEventContent::deserialize(const QJsonValue &data)
+void
+AliasesEventContent::deserialize(const QJsonValue &data)
 {
 	if (!data.isObject())
 		throw DeserializationException("AliasesEventContent is not a JSON object");
@@ -37,7 +38,8 @@ void AliasesEventContent::deserialize(const QJsonValue &data)
 		aliases_.push_back(alias.toString());
 }
 
-QJsonObject AliasesEventContent::serialize() const
+QJsonObject
+AliasesEventContent::serialize() const
 {
 	QJsonObject object;
 
diff --git a/src/events/AvatarEventContent.cc b/src/events/AvatarEventContent.cc
index dfd46f68..b38063c6 100644
--- a/src/events/AvatarEventContent.cc
+++ b/src/events/AvatarEventContent.cc
@@ -21,7 +21,8 @@
 
 using namespace matrix::events;
 
-void AvatarEventContent::deserialize(const QJsonValue &data)
+void
+AvatarEventContent::deserialize(const QJsonValue &data)
 {
 	if (!data.isObject())
 		throw DeserializationException("AvatarEventContent is not a JSON object");
@@ -37,7 +38,8 @@ void AvatarEventContent::deserialize(const QJsonValue &data)
 		qWarning() << "Invalid avatar url" << url_;
 }
 
-QJsonObject AvatarEventContent::serialize() const
+QJsonObject
+AvatarEventContent::serialize() const
 {
 	QJsonObject object;
 
diff --git a/src/events/CanonicalAliasEventContent.cc b/src/events/CanonicalAliasEventContent.cc
index 9792027c..d22319b3 100644
--- a/src/events/CanonicalAliasEventContent.cc
+++ b/src/events/CanonicalAliasEventContent.cc
@@ -19,7 +19,8 @@
 
 using namespace matrix::events;
 
-void CanonicalAliasEventContent::deserialize(const QJsonValue &data)
+void
+CanonicalAliasEventContent::deserialize(const QJsonValue &data)
 {
 	if (!data.isObject())
 		throw DeserializationException("CanonicalAliasEventContent is not a JSON object");
@@ -32,7 +33,8 @@ void CanonicalAliasEventContent::deserialize(const QJsonValue &data)
 	alias_ = object.value("alias").toString();
 }
 
-QJsonObject CanonicalAliasEventContent::serialize() const
+QJsonObject
+CanonicalAliasEventContent::serialize() const
 {
 	QJsonObject object;
 
diff --git a/src/events/CreateEventContent.cc b/src/events/CreateEventContent.cc
index a7d22791..4c65ea4b 100644
--- a/src/events/CreateEventContent.cc
+++ b/src/events/CreateEventContent.cc
@@ -19,7 +19,8 @@
 
 using namespace matrix::events;
 
-void CreateEventContent::deserialize(const QJsonValue &data)
+void
+CreateEventContent::deserialize(const QJsonValue &data)
 {
 	if (!data.isObject())
 		throw DeserializationException("CreateEventContent is not a JSON object");
@@ -32,7 +33,8 @@ void CreateEventContent::deserialize(const QJsonValue &data)
 	creator_ = object.value("creator").toString();
 }
 
-QJsonObject CreateEventContent::serialize() const
+QJsonObject
+CreateEventContent::serialize() const
 {
 	QJsonObject object;
 
diff --git a/src/events/Event.cc b/src/events/Event.cc
index 3fd3c0e1..2cfffa47 100644
--- a/src/events/Event.cc
+++ b/src/events/Event.cc
@@ -29,7 +29,8 @@
 #include "PowerLevelsEventContent.h"
 #include "TopicEventContent.h"
 
-matrix::events::EventType matrix::events::extractEventType(const QJsonObject &object)
+matrix::events::EventType
+matrix::events::extractEventType(const QJsonObject &object)
 {
 	if (!object.contains("type"))
 		throw DeserializationException("Missing event type");
@@ -62,21 +63,18 @@ matrix::events::EventType matrix::events::extractEventType(const QJsonObject &ob
 		return EventType::Unsupported;
 }
 
-bool matrix::events::isStateEvent(EventType type)
+bool
+matrix::events::isStateEvent(EventType type)
 {
-	return type == EventType::RoomAliases ||
-	       type == EventType::RoomAvatar ||
-	       type == EventType::RoomCanonicalAlias ||
-	       type == EventType::RoomCreate ||
-	       type == EventType::RoomHistoryVisibility ||
-	       type == EventType::RoomJoinRules ||
-	       type == EventType::RoomMember ||
-	       type == EventType::RoomName ||
-	       type == EventType::RoomPowerLevels ||
+	return type == EventType::RoomAliases || type == EventType::RoomAvatar ||
+	       type == EventType::RoomCanonicalAlias || type == EventType::RoomCreate ||
+	       type == EventType::RoomHistoryVisibility || type == EventType::RoomJoinRules ||
+	       type == EventType::RoomMember || type == EventType::RoomName || type == EventType::RoomPowerLevels ||
 	       type == EventType::RoomTopic;
 }
 
-bool matrix::events::isMessageEvent(EventType type)
+bool
+matrix::events::isMessageEvent(EventType type)
 {
 	return type == EventType::RoomMessage;
 }
diff --git a/src/events/HistoryVisibilityEventContent.cc b/src/events/HistoryVisibilityEventContent.cc
index 77970553..794b16f4 100644
--- a/src/events/HistoryVisibilityEventContent.cc
+++ b/src/events/HistoryVisibilityEventContent.cc
@@ -19,7 +19,8 @@
 
 using namespace matrix::events;
 
-void HistoryVisibilityEventContent::deserialize(const QJsonValue &data)
+void
+HistoryVisibilityEventContent::deserialize(const QJsonValue &data)
 {
 	if (!data.isObject())
 		throw DeserializationException("HistoryVisibilityEventContent is not a JSON object");
@@ -40,10 +41,12 @@ void HistoryVisibilityEventContent::deserialize(const QJsonValue &data)
 	else if (value == "world_readable")
 		history_visibility_ = HistoryVisibility::WorldReadable;
 	else
-		throw DeserializationException(QString("Unknown history_visibility value: %1").arg(value).toUtf8().constData());
+		throw DeserializationException(
+			QString("Unknown history_visibility value: %1").arg(value).toUtf8().constData());
 }
 
-QJsonObject HistoryVisibilityEventContent::serialize() const
+QJsonObject
+HistoryVisibilityEventContent::serialize() const
 {
 	QJsonObject object;
 
diff --git a/src/events/JoinRulesEventContent.cc b/src/events/JoinRulesEventContent.cc
index 389ab9b8..0418966a 100644
--- a/src/events/JoinRulesEventContent.cc
+++ b/src/events/JoinRulesEventContent.cc
@@ -19,7 +19,8 @@
 
 using namespace matrix::events;
 
-void JoinRulesEventContent::deserialize(const QJsonValue &data)
+void
+JoinRulesEventContent::deserialize(const QJsonValue &data)
 {
 	if (!data.isObject())
 		throw DeserializationException("JoinRulesEventContent is not a JSON object");
@@ -43,7 +44,8 @@ void JoinRulesEventContent::deserialize(const QJsonValue &data)
 		throw DeserializationException(QString("Unknown join_rule value: %1").arg(value).toUtf8().constData());
 }
 
-QJsonObject JoinRulesEventContent::serialize() const
+QJsonObject
+JoinRulesEventContent::serialize() const
 {
 	QJsonObject object;
 
diff --git a/src/events/MemberEventContent.cc b/src/events/MemberEventContent.cc
index 608ad1b2..d20ad1c0 100644
--- a/src/events/MemberEventContent.cc
+++ b/src/events/MemberEventContent.cc
@@ -21,7 +21,8 @@
 
 using namespace matrix::events;
 
-void MemberEventContent::deserialize(const QJsonValue &data)
+void
+MemberEventContent::deserialize(const QJsonValue &data)
 {
 	if (!data.isObject())
 		throw DeserializationException("MemberEventContent is not a JSON object");
@@ -56,7 +57,8 @@ void MemberEventContent::deserialize(const QJsonValue &data)
 		display_name_ = object.value("displayname").toString();
 }
 
-QJsonObject MemberEventContent::serialize() const
+QJsonObject
+MemberEventContent::serialize() const
 {
 	QJsonObject object;
 
diff --git a/src/events/MessageEventContent.cc b/src/events/MessageEventContent.cc
index 215f2d97..79fdd05d 100644
--- a/src/events/MessageEventContent.cc
+++ b/src/events/MessageEventContent.cc
@@ -21,7 +21,8 @@
 
 using namespace matrix::events;
 
-MessageEventType matrix::events::extractMessageEventType(const QJsonObject &data)
+MessageEventType
+matrix::events::extractMessageEventType(const QJsonObject &data)
 {
 	if (!data.contains("content"))
 		return MessageEventType::Unknown;
@@ -49,7 +50,8 @@ MessageEventType matrix::events::extractMessageEventType(const QJsonObject &data
 		return MessageEventType::Unknown;
 }
 
-void MessageEventContent::deserialize(const QJsonValue &data)
+void
+MessageEventContent::deserialize(const QJsonValue &data)
 {
 	if (!data.isObject())
 		throw DeserializationException("MessageEventContent is not a JSON object");
@@ -62,7 +64,8 @@ void MessageEventContent::deserialize(const QJsonValue &data)
 	body_ = object.value("body").toString();
 }
 
-QJsonObject MessageEventContent::serialize() const
+QJsonObject
+MessageEventContent::serialize() const
 {
 	// TODO: Add for all the message contents.
 	QJsonObject object;
diff --git a/src/events/NameEventContent.cc b/src/events/NameEventContent.cc
index 61126e6b..55476172 100644
--- a/src/events/NameEventContent.cc
+++ b/src/events/NameEventContent.cc
@@ -19,7 +19,8 @@
 
 using namespace matrix::events;
 
-void NameEventContent::deserialize(const QJsonValue &data)
+void
+NameEventContent::deserialize(const QJsonValue &data)
 {
 	if (!data.isObject())
 		throw DeserializationException("NameEventContent is not a JSON object");
@@ -32,7 +33,8 @@ void NameEventContent::deserialize(const QJsonValue &data)
 	name_ = object.value("name").toString();
 }
 
-QJsonObject NameEventContent::serialize() const
+QJsonObject
+NameEventContent::serialize() const
 {
 	QJsonObject object;
 
diff --git a/src/events/PowerLevelsEventContent.cc b/src/events/PowerLevelsEventContent.cc
index 765913c4..4b9cb309 100644
--- a/src/events/PowerLevelsEventContent.cc
+++ b/src/events/PowerLevelsEventContent.cc
@@ -22,7 +22,8 @@
 
 using namespace matrix::events;
 
-void PowerLevelsEventContent::deserialize(const QJsonValue &data)
+void
+PowerLevelsEventContent::deserialize(const QJsonValue &data)
 {
 	if (!data.isObject())
 		throw DeserializationException("PowerLevelsEventContent is not a JSON object");
@@ -65,7 +66,8 @@ void PowerLevelsEventContent::deserialize(const QJsonValue &data)
 	}
 }
 
-QJsonObject PowerLevelsEventContent::serialize() const
+QJsonObject
+PowerLevelsEventContent::serialize() const
 {
 	QJsonObject object;
 
@@ -93,7 +95,8 @@ QJsonObject PowerLevelsEventContent::serialize() const
 	return object;
 }
 
-int PowerLevelsEventContent::eventLevel(QString event_type) const
+int
+PowerLevelsEventContent::eventLevel(QString event_type) const
 {
 	if (events_.contains(event_type))
 		return events_[event_type];
@@ -101,7 +104,8 @@ int PowerLevelsEventContent::eventLevel(QString event_type) const
 	return events_default_;
 }
 
-int PowerLevelsEventContent::userLevel(QString userid) const
+int
+PowerLevelsEventContent::userLevel(QString userid) const
 {
 	if (users_.contains(userid))
 		return users_[userid];
diff --git a/src/events/TopicEventContent.cc b/src/events/TopicEventContent.cc
index 5acdba3e..4bb529a8 100644
--- a/src/events/TopicEventContent.cc
+++ b/src/events/TopicEventContent.cc
@@ -19,7 +19,8 @@
 
 using namespace matrix::events;
 
-void TopicEventContent::deserialize(const QJsonValue &data)
+void
+TopicEventContent::deserialize(const QJsonValue &data)
 {
 	if (!data.isObject())
 		throw DeserializationException("TopicEventContent is not a JSON object");
@@ -32,7 +33,8 @@ void TopicEventContent::deserialize(const QJsonValue &data)
 	topic_ = object.value("topic").toString();
 }
 
-QJsonObject TopicEventContent::serialize() const
+QJsonObject
+TopicEventContent::serialize() const
 {
 	QJsonObject object;
 
diff --git a/src/events/messages/Audio.cc b/src/events/messages/Audio.cc
index f0fb443b..3df5aa81 100644
--- a/src/events/messages/Audio.cc
+++ b/src/events/messages/Audio.cc
@@ -19,7 +19,8 @@
 
 using namespace matrix::events::messages;
 
-void Audio::deserialize(const QJsonObject &object)
+void
+Audio::deserialize(const QJsonObject &object)
 {
 	if (!object.contains("url"))
 		throw DeserializationException("url key is missing");
diff --git a/src/events/messages/Emote.cc b/src/events/messages/Emote.cc
index 1d6a4753..3f09a7b7 100644
--- a/src/events/messages/Emote.cc
+++ b/src/events/messages/Emote.cc
@@ -19,7 +19,8 @@
 
 using namespace matrix::events::messages;
 
-void Emote::deserialize(const QJsonObject &object)
+void
+Emote::deserialize(const QJsonObject &object)
 {
 	if (object.value("msgtype") != "m.emote")
 		throw DeserializationException("invalid msgtype for emote");
diff --git a/src/events/messages/File.cc b/src/events/messages/File.cc
index a6b5b6c2..20c772ca 100644
--- a/src/events/messages/File.cc
+++ b/src/events/messages/File.cc
@@ -19,7 +19,8 @@
 
 using namespace matrix::events::messages;
 
-void File::deserialize(const QJsonObject &object)
+void
+File::deserialize(const QJsonObject &object)
 {
 	if (!object.contains("url"))
 		throw DeserializationException("messages::File url key is missing");
diff --git a/src/events/messages/Image.cc b/src/events/messages/Image.cc
index d528e174..6907b077 100644
--- a/src/events/messages/Image.cc
+++ b/src/events/messages/Image.cc
@@ -19,7 +19,8 @@
 
 using namespace matrix::events::messages;
 
-void Image::deserialize(const QJsonObject &object)
+void
+Image::deserialize(const QJsonObject &object)
 {
 	if (!object.contains("url"))
 		throw DeserializationException("messages::Image url key is missing");
diff --git a/src/events/messages/Location.cc b/src/events/messages/Location.cc
index 68a9a9c1..2963631b 100644
--- a/src/events/messages/Location.cc
+++ b/src/events/messages/Location.cc
@@ -19,7 +19,8 @@
 
 using namespace matrix::events::messages;
 
-void Location::deserialize(const QJsonObject &object)
+void
+Location::deserialize(const QJsonObject &object)
 {
 	if (!object.contains("geo_uri"))
 		throw DeserializationException("messages::Location geo_uri key is missing");
diff --git a/src/events/messages/Notice.cc b/src/events/messages/Notice.cc
index 1dd4cc28..648c9544 100644
--- a/src/events/messages/Notice.cc
+++ b/src/events/messages/Notice.cc
@@ -19,7 +19,8 @@
 
 using namespace matrix::events::messages;
 
-void Notice::deserialize(const QJsonObject &object)
+void
+Notice::deserialize(const QJsonObject &object)
 {
 	if (object.value("msgtype") != "m.notice")
 		throw DeserializationException("invalid msgtype for notice");
diff --git a/src/events/messages/Text.cc b/src/events/messages/Text.cc
index 5446d7f4..6324988c 100644
--- a/src/events/messages/Text.cc
+++ b/src/events/messages/Text.cc
@@ -19,7 +19,8 @@
 
 using namespace matrix::events::messages;
 
-void Text::deserialize(const QJsonObject &object)
+void
+Text::deserialize(const QJsonObject &object)
 {
 	if (object.value("msgtype") != "m.text")
 		throw DeserializationException("invalid msgtype for text");
diff --git a/src/events/messages/Video.cc b/src/events/messages/Video.cc
index a7ddba96..4b4d2d3b 100644
--- a/src/events/messages/Video.cc
+++ b/src/events/messages/Video.cc
@@ -19,7 +19,8 @@
 
 using namespace matrix::events::messages;
 
-void Video::deserialize(const QJsonObject &object)
+void
+Video::deserialize(const QJsonObject &object)
 {
 	if (!object.contains("url"))
 		throw DeserializationException("messages::Video url key is missing");
diff --git a/src/main.cc b/src/main.cc
index 55e4ec9b..fcdf27b2 100644
--- a/src/main.cc
+++ b/src/main.cc
@@ -23,7 +23,8 @@
 
 #include "MainWindow.h"
 
-int main(int argc, char *argv[])
+int
+main(int argc, char *argv[])
 {
 	QCoreApplication::setApplicationName("nheko");
 	QCoreApplication::setApplicationVersion("Ωμέγa");
diff --git a/src/ui/Avatar.cc b/src/ui/Avatar.cc
index 4245c168..878f7999 100644
--- a/src/ui/Avatar.cc
+++ b/src/ui/Avatar.cc
@@ -5,7 +5,7 @@
 #include "Avatar.h"
 
 Avatar::Avatar(QWidget *parent)
-    : QWidget(parent)
+  : QWidget(parent)
 {
 	size_ = ui::AvatarSize;
 	type_ = ui::AvatarType::Letter;
@@ -23,7 +23,8 @@ Avatar::~Avatar()
 {
 }
 
-QColor Avatar::textColor() const
+QColor
+Avatar::textColor() const
 {
 	if (!text_color_.isValid())
 		return QColor("black");
@@ -31,7 +32,8 @@ QColor Avatar::textColor() const
 	return text_color_;
 }
 
-QColor Avatar::backgroundColor() const
+QColor
+Avatar::backgroundColor() const
 {
 	if (!text_color_.isValid())
 		return QColor("white");
@@ -39,33 +41,38 @@ QColor Avatar::backgroundColor() const
 	return background_color_;
 }
 
-int Avatar::size() const
+int
+Avatar::size() const
 {
 	return size_;
 }
 
-QSize Avatar::sizeHint() const
+QSize
+Avatar::sizeHint() const
 {
 	return QSize(size_ + 2, size_ + 2);
 }
 
-void Avatar::setTextColor(const QColor &color)
+void
+Avatar::setTextColor(const QColor &color)
 {
 	text_color_ = color;
 }
 
-void Avatar::setBackgroundColor(const QColor &color)
+void
+Avatar::setBackgroundColor(const QColor &color)
 {
 	background_color_ = color;
 }
 
-void Avatar::setSize(int size)
+void
+Avatar::setSize(int size)
 {
 	size_ = size;
 
 	if (!image_.isNull()) {
-		pixmap_ = QPixmap::fromImage(
-			image_.scaled(size_, size_, Qt::KeepAspectRatio, Qt::SmoothTransformation));
+		pixmap_ =
+			QPixmap::fromImage(image_.scaled(size_, size_, Qt::KeepAspectRatio, Qt::SmoothTransformation));
 	}
 
 	QFont _font(font());
@@ -75,30 +82,33 @@ void Avatar::setSize(int size)
 	update();
 }
 
-void Avatar::setLetter(const QChar &letter)
+void
+Avatar::setLetter(const QChar &letter)
 {
 	letter_ = letter;
 	type_ = ui::AvatarType::Letter;
 	update();
 }
 
-void Avatar::setImage(const QImage &image)
+void
+Avatar::setImage(const QImage &image)
 {
 	image_ = image;
 	type_ = ui::AvatarType::Image;
-	pixmap_ = QPixmap::fromImage(
-		image_.scaled(size_, size_, Qt::KeepAspectRatio, Qt::SmoothTransformation));
+	pixmap_ = QPixmap::fromImage(image_.scaled(size_, size_, Qt::KeepAspectRatio, Qt::SmoothTransformation));
 	update();
 }
 
-void Avatar::setIcon(const QIcon &icon)
+void
+Avatar::setIcon(const QIcon &icon)
 {
 	icon_ = icon;
 	type_ = ui::AvatarType::Icon;
 	update();
 }
 
-void Avatar::paintEvent(QPaintEvent *)
+void
+Avatar::paintEvent(QPaintEvent *)
 {
 	QPainter painter(this);
 	painter.setRenderHint(QPainter::Antialiasing);
diff --git a/src/ui/Badge.cc b/src/ui/Badge.cc
index c799dbf2..b4a04343 100644
--- a/src/ui/Badge.cc
+++ b/src/ui/Badge.cc
@@ -3,20 +3,20 @@
 #include "Badge.h"
 
 Badge::Badge(QWidget *parent)
-    : OverlayWidget(parent)
+  : OverlayWidget(parent)
 {
 	init();
 }
 
 Badge::Badge(const QIcon &icon, QWidget *parent)
-    : OverlayWidget(parent)
+  : OverlayWidget(parent)
 {
 	init();
 	setIcon(icon);
 }
 
 Badge::Badge(const QString &text, QWidget *parent)
-    : OverlayWidget(parent)
+  : OverlayWidget(parent)
 {
 	init();
 	setText(text);
@@ -26,7 +26,8 @@ Badge::~Badge()
 {
 }
 
-void Badge::init()
+void
+Badge::init()
 {
 	x_ = 0;
 	y_ = 0;
@@ -44,38 +45,45 @@ void Badge::init()
 	setText("");
 }
 
-QString Badge::text() const
+QString
+Badge::text() const
 {
 	return text_;
 }
 
-QIcon Badge::icon() const
+QIcon
+Badge::icon() const
 {
 	return icon_;
 }
 
-QSize Badge::sizeHint() const
+QSize
+Badge::sizeHint() const
 {
 	const int d = diameter();
 	return QSize(d + 4, d + 4);
 }
 
-qreal Badge::relativeYPosition() const
+qreal
+Badge::relativeYPosition() const
 {
 	return y_;
 }
 
-qreal Badge::relativeXPosition() const
+qreal
+Badge::relativeXPosition() const
 {
 	return x_;
 }
 
-QPointF Badge::relativePosition() const
+QPointF
+Badge::relativePosition() const
 {
 	return QPointF(x_, y_);
 }
 
-QColor Badge::backgroundColor() const
+QColor
+Badge::backgroundColor() const
 {
 	if (!background_color_.isValid())
 		return QColor("black");
@@ -83,7 +91,8 @@ QColor Badge::backgroundColor() const
 	return background_color_;
 }
 
-QColor Badge::textColor() const
+QColor
+Badge::textColor() const
 {
 	if (!text_color_.isValid())
 		return QColor("white");
@@ -91,47 +100,55 @@ QColor Badge::textColor() const
 	return text_color_;
 }
 
-void Badge::setTextColor(const QColor &color)
+void
+Badge::setTextColor(const QColor &color)
 {
 	text_color_ = color;
 }
 
-void Badge::setBackgroundColor(const QColor &color)
+void
+Badge::setBackgroundColor(const QColor &color)
 {
 	background_color_ = color;
 }
 
-void Badge::setRelativePosition(const QPointF &pos)
+void
+Badge::setRelativePosition(const QPointF &pos)
 {
 	setRelativePosition(pos.x(), pos.y());
 }
 
-void Badge::setRelativePosition(qreal x, qreal y)
+void
+Badge::setRelativePosition(qreal x, qreal y)
 {
 	x_ = x;
 	y_ = y;
 	update();
 }
 
-void Badge::setRelativeXPosition(qreal x)
+void
+Badge::setRelativeXPosition(qreal x)
 {
 	x_ = x;
 	update();
 }
 
-void Badge::setRelativeYPosition(qreal y)
+void
+Badge::setRelativeYPosition(qreal y)
 {
 	y_ = y;
 	update();
 }
 
-void Badge::setIcon(const QIcon &icon)
+void
+Badge::setIcon(const QIcon &icon)
 {
 	icon_ = icon;
 	update();
 }
 
-void Badge::setText(const QString &text)
+void
+Badge::setText(const QString &text)
 {
 	text_ = text;
 
@@ -143,7 +160,8 @@ void Badge::setText(const QString &text)
 	update();
 }
 
-void Badge::setDiameter(int diameter)
+void
+Badge::setDiameter(int diameter)
 {
 	if (diameter > 0) {
 		diameter_ = diameter;
@@ -151,7 +169,8 @@ void Badge::setDiameter(int diameter)
 	}
 }
 
-void Badge::paintEvent(QPaintEvent *)
+void
+Badge::paintEvent(QPaintEvent *)
 {
 	QPainter painter(this);
 	painter.setRenderHint(QPainter::Antialiasing);
@@ -193,7 +212,8 @@ void Badge::paintEvent(QPaintEvent *)
 	}
 }
 
-int Badge::diameter() const
+int
+Badge::diameter() const
 {
 	if (icon_.isNull()) {
 		return qMax(size_.width(), size_.height()) + padding_;
diff --git a/src/ui/CircularProgress.cc b/src/ui/CircularProgress.cc
index 50e1dcad..425ece13 100644
--- a/src/ui/CircularProgress.cc
+++ b/src/ui/CircularProgress.cc
@@ -7,11 +7,11 @@
 #include "Theme.h"
 
 CircularProgress::CircularProgress(QWidget *parent)
-    : QProgressBar{parent}
-    , progress_type_{ui::ProgressType::IndeterminateProgress}
-    , width_{6.25}
-    , size_{64}
-    , duration_{3050}
+  : QProgressBar{ parent }
+  , progress_type_{ ui::ProgressType::IndeterminateProgress }
+  , width_{ 6.25 }
+  , size_{ 64 }
+  , duration_{ 3050 }
 {
 	delegate_ = new CircularProgressDelegate(this);
 
@@ -56,47 +56,55 @@ CircularProgress::CircularProgress(QWidget *parent)
 	group->start();
 }
 
-void CircularProgress::setProgressType(ui::ProgressType type)
+void
+CircularProgress::setProgressType(ui::ProgressType type)
 {
 	progress_type_ = type;
 	update();
 }
 
-void CircularProgress::setLineWidth(qreal width)
+void
+CircularProgress::setLineWidth(qreal width)
 {
 	width_ = width;
 	update();
 	updateGeometry();
 }
 
-void CircularProgress::setSize(int size)
+void
+CircularProgress::setSize(int size)
 {
 	size_ = size;
 	update();
 	updateGeometry();
 }
 
-ui::ProgressType CircularProgress::progressType() const
+ui::ProgressType
+CircularProgress::progressType() const
 {
 	return progress_type_;
 }
 
-qreal CircularProgress::lineWidth() const
+qreal
+CircularProgress::lineWidth() const
 {
 	return width_;
 }
 
-int CircularProgress::size() const
+int
+CircularProgress::size() const
 {
 	return size_;
 }
 
-void CircularProgress::setColor(const QColor &color)
+void
+CircularProgress::setColor(const QColor &color)
 {
 	color_ = color;
 }
 
-QColor CircularProgress::color() const
+QColor
+CircularProgress::color() const
 {
 	if (!color_.isValid()) {
 		return QColor("red");
@@ -105,13 +113,15 @@ QColor CircularProgress::color() const
 	return color_;
 }
 
-QSize CircularProgress::sizeHint() const
+QSize
+CircularProgress::sizeHint() const
 {
 	const qreal s = size_ + width_ + 8;
 	return QSize(s, s);
 }
 
-void CircularProgress::paintEvent(QPaintEvent *event)
+void
+CircularProgress::paintEvent(QPaintEvent *event)
 {
 	Q_UNUSED(event);
 
@@ -177,11 +187,11 @@ CircularProgress::~CircularProgress()
 }
 
 CircularProgressDelegate::CircularProgressDelegate(CircularProgress *parent)
-    : QObject(parent)
-    , progress_(parent)
-    , dash_offset_(0)
-    , dash_length_(89)
-    , angle_(0)
+  : QObject(parent)
+  , progress_(parent)
+  , dash_offset_(0)
+  , dash_length_(89)
+  , angle_(0)
 {
 	Q_ASSERT(parent);
 }
diff --git a/src/ui/FlatButton.cc b/src/ui/FlatButton.cc
index 7526ba9c..d59fe259 100644
--- a/src/ui/FlatButton.cc
+++ b/src/ui/FlatButton.cc
@@ -11,7 +11,8 @@
 #include "RippleOverlay.h"
 #include "ThemeManager.h"
 
-void FlatButton::init()
+void
+FlatButton::init()
 {
 	ripple_overlay_ = new RippleOverlay(this);
 	state_machine_ = new FlatButtonStateMachine(this);
@@ -23,7 +24,7 @@ void FlatButton::init()
 	fixed_ripple_radius_ = 64;
 	corner_radius_ = 3;
 	base_opacity_ = 0.13;
-	font_size_ = 10;  // 10.5;
+	font_size_ = 10; // 10.5;
 	use_fixed_ripple_radius_ = false;
 
 	setStyle(&ThemeManager::instance());
@@ -42,21 +43,21 @@ void FlatButton::init()
 }
 
 FlatButton::FlatButton(QWidget *parent, ui::ButtonPreset preset)
-    : QPushButton(parent)
+  : QPushButton(parent)
 {
 	init();
 	applyPreset(preset);
 }
 
 FlatButton::FlatButton(const QString &text, QWidget *parent, ui::ButtonPreset preset)
-    : QPushButton(text, parent)
+  : QPushButton(text, parent)
 {
 	init();
 	applyPreset(preset);
 }
 
 FlatButton::FlatButton(const QString &text, ui::Role role, QWidget *parent, ui::ButtonPreset preset)
-    : QPushButton(text, parent)
+  : QPushButton(text, parent)
 {
 	init();
 	applyPreset(preset);
@@ -67,7 +68,8 @@ FlatButton::~FlatButton()
 {
 }
 
-void FlatButton::applyPreset(ui::ButtonPreset preset)
+void
+FlatButton::applyPreset(ui::ButtonPreset preset)
 {
 	switch (preset) {
 	case ui::ButtonPreset::FlatPreset:
@@ -82,23 +84,27 @@ void FlatButton::applyPreset(ui::ButtonPreset preset)
 	}
 }
 
-void FlatButton::setRole(ui::Role role)
+void
+FlatButton::setRole(ui::Role role)
 {
 	role_ = role;
 	state_machine_->setupProperties();
 }
 
-ui::Role FlatButton::role() const
+ui::Role
+FlatButton::role() const
 {
 	return role_;
 }
 
-void FlatButton::setForegroundColor(const QColor &color)
+void
+FlatButton::setForegroundColor(const QColor &color)
 {
 	foreground_color_ = color;
 }
 
-QColor FlatButton::foregroundColor() const
+QColor
+FlatButton::foregroundColor() const
 {
 	if (!foreground_color_.isValid()) {
 		if (bg_mode_ == Qt::OpaqueMode) {
@@ -119,12 +125,14 @@ QColor FlatButton::foregroundColor() const
 	return foreground_color_;
 }
 
-void FlatButton::setBackgroundColor(const QColor &color)
+void
+FlatButton::setBackgroundColor(const QColor &color)
 {
 	background_color_ = color;
 }
 
-QColor FlatButton::backgroundColor() const
+QColor
+FlatButton::backgroundColor() const
 {
 	if (!background_color_.isValid()) {
 		switch (role_) {
@@ -141,13 +149,15 @@ QColor FlatButton::backgroundColor() const
 	return background_color_;
 }
 
-void FlatButton::setOverlayColor(const QColor &color)
+void
+FlatButton::setOverlayColor(const QColor &color)
 {
 	overlay_color_ = color;
 	setOverlayStyle(ui::OverlayStyle::TintedOverlay);
 }
 
-QColor FlatButton::overlayColor() const
+QColor
+FlatButton::overlayColor() const
 {
 	if (!overlay_color_.isValid()) {
 		return foregroundColor();
@@ -156,12 +166,14 @@ QColor FlatButton::overlayColor() const
 	return overlay_color_;
 }
 
-void FlatButton::setDisabledForegroundColor(const QColor &color)
+void
+FlatButton::setDisabledForegroundColor(const QColor &color)
 {
 	disabled_color_ = color;
 }
 
-QColor FlatButton::disabledForegroundColor() const
+QColor
+FlatButton::disabledForegroundColor() const
 {
 	if (!disabled_color_.isValid()) {
 		return ThemeManager::instance().themeColor("FadedWhite");
@@ -170,12 +182,14 @@ QColor FlatButton::disabledForegroundColor() const
 	return disabled_color_;
 }
 
-void FlatButton::setDisabledBackgroundColor(const QColor &color)
+void
+FlatButton::setDisabledBackgroundColor(const QColor &color)
 {
 	disabled_background_color_ = color;
 }
 
-QColor FlatButton::disabledBackgroundColor() const
+QColor
+FlatButton::disabledBackgroundColor() const
 {
 	if (!disabled_background_color_.isValid()) {
 		return ThemeManager::instance().themeColor("FadedWhite");
@@ -184,7 +198,8 @@ QColor FlatButton::disabledBackgroundColor() const
 	return disabled_background_color_;
 }
 
-void FlatButton::setFontSize(qreal size)
+void
+FlatButton::setFontSize(qreal size)
 {
 	font_size_ = size;
 
@@ -195,78 +210,92 @@ void FlatButton::setFontSize(qreal size)
 	update();
 }
 
-qreal FlatButton::fontSize() const
+qreal
+FlatButton::fontSize() const
 {
 	return font_size_;
 }
 
-void FlatButton::setOverlayStyle(ui::OverlayStyle style)
+void
+FlatButton::setOverlayStyle(ui::OverlayStyle style)
 {
 	overlay_style_ = style;
 	update();
 }
 
-ui::OverlayStyle FlatButton::overlayStyle() const
+ui::OverlayStyle
+FlatButton::overlayStyle() const
 {
 	return overlay_style_;
 }
 
-void FlatButton::setRippleStyle(ui::RippleStyle style)
+void
+FlatButton::setRippleStyle(ui::RippleStyle style)
 {
 	ripple_style_ = style;
 }
 
-ui::RippleStyle FlatButton::rippleStyle() const
+ui::RippleStyle
+FlatButton::rippleStyle() const
 {
 	return ripple_style_;
 }
 
-void FlatButton::setIconPlacement(ui::ButtonIconPlacement placement)
+void
+FlatButton::setIconPlacement(ui::ButtonIconPlacement placement)
 {
 	icon_placement_ = placement;
 	update();
 }
 
-ui::ButtonIconPlacement FlatButton::iconPlacement() const
+ui::ButtonIconPlacement
+FlatButton::iconPlacement() const
 {
 	return icon_placement_;
 }
 
-void FlatButton::setCornerRadius(qreal radius)
+void
+FlatButton::setCornerRadius(qreal radius)
 {
 	corner_radius_ = radius;
 	updateClipPath();
 	update();
 }
 
-qreal FlatButton::cornerRadius() const
+qreal
+FlatButton::cornerRadius() const
 {
 	return corner_radius_;
 }
 
-void FlatButton::setBackgroundMode(Qt::BGMode mode)
+void
+FlatButton::setBackgroundMode(Qt::BGMode mode)
 {
 	bg_mode_ = mode;
 	state_machine_->setupProperties();
 }
 
-Qt::BGMode FlatButton::backgroundMode() const
+Qt::BGMode
+FlatButton::backgroundMode() const
 {
 	return bg_mode_;
 }
 
-void FlatButton::setBaseOpacity(qreal opacity)
+void
+FlatButton::setBaseOpacity(qreal opacity)
 {
 	base_opacity_ = opacity;
 	state_machine_->setupProperties();
 }
 
-qreal FlatButton::baseOpacity() const
+qreal
+FlatButton::baseOpacity() const
 {
 	return base_opacity_;
 }
 
-void FlatButton::setCheckable(bool value)
+void
+FlatButton::setCheckable(bool value)
 {
 	state_machine_->updateCheckedStatus();
 	state_machine_->setCheckedOverlayProgress(0);
@@ -274,23 +303,27 @@ void FlatButton::setCheckable(bool value)
 	QPushButton::setCheckable(value);
 }
 
-void FlatButton::setHasFixedRippleRadius(bool value)
+void
+FlatButton::setHasFixedRippleRadius(bool value)
 {
 	use_fixed_ripple_radius_ = value;
 }
 
-bool FlatButton::hasFixedRippleRadius() const
+bool
+FlatButton::hasFixedRippleRadius() const
 {
 	return use_fixed_ripple_radius_;
 }
 
-void FlatButton::setFixedRippleRadius(qreal radius)
+void
+FlatButton::setFixedRippleRadius(qreal radius)
 {
 	fixed_ripple_radius_ = radius;
 	setHasFixedRippleRadius(true);
 }
 
-QSize FlatButton::sizeHint() const
+QSize
+FlatButton::sizeHint() const
 {
 	ensurePolished();
 
@@ -307,13 +340,15 @@ QSize FlatButton::sizeHint() const
 	return QSize(w, 20 + h);
 }
 
-void FlatButton::checkStateSet()
+void
+FlatButton::checkStateSet()
 {
 	state_machine_->updateCheckedStatus();
 	QPushButton::checkStateSet();
 }
 
-void FlatButton::mousePressEvent(QMouseEvent *event)
+void
+FlatButton::mousePressEvent(QMouseEvent *event)
 {
 	if (ui::RippleStyle::NoRipple != ripple_style_) {
 		QPoint pos;
@@ -345,19 +380,22 @@ void FlatButton::mousePressEvent(QMouseEvent *event)
 	QPushButton::mousePressEvent(event);
 }
 
-void FlatButton::mouseReleaseEvent(QMouseEvent *event)
+void
+FlatButton::mouseReleaseEvent(QMouseEvent *event)
 {
 	QPushButton::mouseReleaseEvent(event);
 	state_machine_->updateCheckedStatus();
 }
 
-void FlatButton::resizeEvent(QResizeEvent *event)
+void
+FlatButton::resizeEvent(QResizeEvent *event)
 {
 	QPushButton::resizeEvent(event);
 	updateClipPath();
 }
 
-void FlatButton::paintEvent(QPaintEvent *event)
+void
+FlatButton::paintEvent(QPaintEvent *event)
 {
 	Q_UNUSED(event)
 
@@ -382,7 +420,8 @@ void FlatButton::paintEvent(QPaintEvent *event)
 	paintForeground(&painter);
 }
 
-void FlatButton::paintBackground(QPainter *painter)
+void
+FlatButton::paintBackground(QPainter *painter)
 {
 	const qreal overlayOpacity = state_machine_->overlayOpacity();
 	const qreal checkedProgress = state_machine_->checkedOverlayProgress();
@@ -436,7 +475,8 @@ void FlatButton::paintBackground(QPainter *painter)
 
 #define COLOR_INTERPOLATE(CH) (1 - progress) * source.CH() + progress *dest.CH()
 
-void FlatButton::paintForeground(QPainter *painter)
+void
+FlatButton::paintForeground(QPainter *painter)
 {
 	if (isEnabled()) {
 		painter->setPen(foregroundColor());
@@ -444,8 +484,7 @@ void FlatButton::paintForeground(QPainter *painter)
 
 		if (isCheckable() && progress > 0) {
 			QColor source = foregroundColor();
-			QColor dest = Qt::TransparentMode == bg_mode_ ? Qt::white
-								      : backgroundColor();
+			QColor dest = Qt::TransparentMode == bg_mode_ ? Qt::white : backgroundColor();
 			if (qFuzzyCompare(1, progress)) {
 				painter->setPen(dest);
 			} else {
@@ -488,7 +527,8 @@ void FlatButton::paintForeground(QPainter *painter)
 	painter->drawPixmap(iconGeometry, pixmap);
 }
 
-void FlatButton::updateClipPath()
+void
+FlatButton::updateClipPath()
 {
 	const qreal radius = corner_radius_;
 
@@ -498,21 +538,21 @@ void FlatButton::updateClipPath()
 }
 
 FlatButtonStateMachine::FlatButtonStateMachine(FlatButton *parent)
-    : QStateMachine(parent)
-    , button_(parent)
-    , top_level_state_(new QState(QState::ParallelStates))
-    , config_state_(new QState(top_level_state_))
-    , checkable_state_(new QState(top_level_state_))
-    , checked_state_(new QState(checkable_state_))
-    , unchecked_state_(new QState(checkable_state_))
-    , neutral_state_(new QState(config_state_))
-    , neutral_focused_state_(new QState(config_state_))
-    , hovered_state_(new QState(config_state_))
-    , hovered_focused_state_(new QState(config_state_))
-    , pressed_state_(new QState(config_state_))
-    , overlay_opacity_(0)
-    , checked_overlay_progress_(parent->isChecked() ? 1 : 0)
-    , was_checked_(false)
+  : QStateMachine(parent)
+  , button_(parent)
+  , top_level_state_(new QState(QState::ParallelStates))
+  , config_state_(new QState(top_level_state_))
+  , checkable_state_(new QState(top_level_state_))
+  , checked_state_(new QState(checkable_state_))
+  , unchecked_state_(new QState(checkable_state_))
+  , neutral_state_(new QState(config_state_))
+  , neutral_focused_state_(new QState(config_state_))
+  , hovered_state_(new QState(config_state_))
+  , hovered_focused_state_(new QState(config_state_))
+  , pressed_state_(new QState(config_state_))
+  , overlay_opacity_(0)
+  , checked_overlay_progress_(parent->isChecked() ? 1 : 0)
+  , was_checked_(false)
 {
 	Q_ASSERT(parent);
 
@@ -522,8 +562,7 @@ FlatButtonStateMachine::FlatButtonStateMachine(FlatButton *parent)
 	addState(top_level_state_);
 	setInitialState(top_level_state_);
 
-	checkable_state_->setInitialState(parent->isChecked() ? checked_state_
-							      : unchecked_state_);
+	checkable_state_->setInitialState(parent->isChecked() ? checked_state_ : unchecked_state_);
 	QSignalTransition *transition;
 	QPropertyAnimation *animation;
 
@@ -560,24 +599,28 @@ FlatButtonStateMachine::~FlatButtonStateMachine()
 {
 }
 
-void FlatButtonStateMachine::setOverlayOpacity(qreal opacity)
+void
+FlatButtonStateMachine::setOverlayOpacity(qreal opacity)
 {
 	overlay_opacity_ = opacity;
 	button_->update();
 }
 
-void FlatButtonStateMachine::setCheckedOverlayProgress(qreal opacity)
+void
+FlatButtonStateMachine::setCheckedOverlayProgress(qreal opacity)
 {
 	checked_overlay_progress_ = opacity;
 	button_->update();
 }
 
-void FlatButtonStateMachine::startAnimations()
+void
+FlatButtonStateMachine::startAnimations()
 {
 	start();
 }
 
-void FlatButtonStateMachine::setupProperties()
+void
+FlatButtonStateMachine::setupProperties()
 {
 	QColor overlayColor;
 
@@ -600,7 +643,8 @@ void FlatButtonStateMachine::setupProperties()
 	button_->update();
 }
 
-void FlatButtonStateMachine::updateCheckedStatus()
+void
+FlatButtonStateMachine::updateCheckedStatus()
 {
 	const bool checked = button_->isChecked();
 	if (was_checked_ != checked) {
@@ -613,8 +657,8 @@ void FlatButtonStateMachine::updateCheckedStatus()
 	}
 }
 
-bool FlatButtonStateMachine::eventFilter(QObject *watched,
-					 QEvent *event)
+bool
+FlatButtonStateMachine::eventFilter(QObject *watched, QEvent *event)
 {
 	if (QEvent::FocusIn == event->type()) {
 		QFocusEvent *focusEvent = static_cast<QFocusEvent *>(event);
@@ -627,25 +671,20 @@ bool FlatButtonStateMachine::eventFilter(QObject *watched,
 	return QStateMachine::eventFilter(watched, event);
 }
 
-void FlatButtonStateMachine::addTransition(QObject *object,
-					   const char *signal,
-					   QState *fromState,
-					   QState *toState)
+void
+FlatButtonStateMachine::addTransition(QObject *object, const char *signal, QState *fromState, QState *toState)
 {
 	addTransition(new QSignalTransition(object, signal), fromState, toState);
 }
 
-void FlatButtonStateMachine::addTransition(QObject *object,
-					   QEvent::Type eventType,
-					   QState *fromState,
-					   QState *toState)
+void
+FlatButtonStateMachine::addTransition(QObject *object, QEvent::Type eventType, QState *fromState, QState *toState)
 {
 	addTransition(new QEventTransition(object, eventType), fromState, toState);
 }
 
-void FlatButtonStateMachine::addTransition(QAbstractTransition *transition,
-					   QState *fromState,
-					   QState *toState)
+void
+FlatButtonStateMachine::addTransition(QAbstractTransition *transition, QState *fromState, QState *toState)
 {
 	transition->setTargetState(toState);
 
diff --git a/src/ui/OverlayModal.cc b/src/ui/OverlayModal.cc
index 7af29268..9bce351b 100644
--- a/src/ui/OverlayModal.cc
+++ b/src/ui/OverlayModal.cc
@@ -22,9 +22,9 @@
 #include "OverlayModal.h"
 
 OverlayModal::OverlayModal(QWidget *parent, QWidget *content)
-    : OverlayWidget(parent)
-    , duration_{500}
-    , color_{QColor(55, 55, 55)}
+  : OverlayWidget(parent)
+  , duration_{ 500 }
+  , color_{ QColor(55, 55, 55) }
 {
 	setAttribute(Qt::WA_TranslucentBackground);
 
@@ -50,7 +50,8 @@ OverlayModal::OverlayModal(QWidget *parent, QWidget *content)
 	});
 }
 
-void OverlayModal::paintEvent(QPaintEvent *event)
+void
+OverlayModal::paintEvent(QPaintEvent *event)
 {
 	Q_UNUSED(event);
 
@@ -58,14 +59,16 @@ void OverlayModal::paintEvent(QPaintEvent *event)
 	painter.fillRect(rect(), color_);
 }
 
-void OverlayModal::fadeIn()
+void
+OverlayModal::fadeIn()
 {
 	animation_->setDirection(QAbstractAnimation::Backward);
 	animation_->start();
 	show();
 }
 
-void OverlayModal::fadeOut()
+void
+OverlayModal::fadeOut()
 {
 	animation_->setDirection(QAbstractAnimation::Forward);
 	animation_->start();
diff --git a/src/ui/OverlayWidget.cc b/src/ui/OverlayWidget.cc
index d7e6337b..ab394966 100644
--- a/src/ui/OverlayWidget.cc
+++ b/src/ui/OverlayWidget.cc
@@ -2,7 +2,7 @@
 #include <QEvent>
 
 OverlayWidget::OverlayWidget(QWidget *parent)
-    : QWidget(parent)
+  : QWidget(parent)
 {
 	if (parent) {
 		parent->installEventFilter(this);
@@ -11,7 +11,8 @@ OverlayWidget::OverlayWidget(QWidget *parent)
 	}
 }
 
-bool OverlayWidget::event(QEvent *event)
+bool
+OverlayWidget::event(QEvent *event)
 {
 	if (!parent())
 		return QWidget::event(event);
@@ -33,7 +34,8 @@ bool OverlayWidget::event(QEvent *event)
 	return QWidget::event(event);
 }
 
-bool OverlayWidget::eventFilter(QObject *obj, QEvent *event)
+bool
+OverlayWidget::eventFilter(QObject *obj, QEvent *event)
 {
 	switch (event->type()) {
 	case QEvent::Move:
@@ -47,7 +49,8 @@ bool OverlayWidget::eventFilter(QObject *obj, QEvent *event)
 	return QWidget::eventFilter(obj, event);
 }
 
-QRect OverlayWidget::overlayGeometry() const
+QRect
+OverlayWidget::overlayGeometry() const
 {
 	QWidget *widget = parentWidget();
 
diff --git a/src/ui/RaisedButton.cc b/src/ui/RaisedButton.cc
index 52d74db6..f3bdb7c9 100644
--- a/src/ui/RaisedButton.cc
+++ b/src/ui/RaisedButton.cc
@@ -3,7 +3,8 @@
 
 #include "RaisedButton.h"
 
-void RaisedButton::init()
+void
+RaisedButton::init()
 {
 	shadow_state_machine_ = new QStateMachine(this);
 	normal_state_ = new QState;
@@ -57,13 +58,13 @@ void RaisedButton::init()
 }
 
 RaisedButton::RaisedButton(QWidget *parent)
-    : FlatButton(parent)
+  : FlatButton(parent)
 {
 	init();
 }
 
 RaisedButton::RaisedButton(const QString &text, QWidget *parent)
-    : FlatButton(parent)
+  : FlatButton(parent)
 {
 	init();
 	setText(text);
@@ -73,7 +74,8 @@ RaisedButton::~RaisedButton()
 {
 }
 
-bool RaisedButton::event(QEvent *event)
+bool
+RaisedButton::event(QEvent *event)
 {
 	if (QEvent::EnabledChange == event->type()) {
 		if (isEnabled()) {
diff --git a/src/ui/Ripple.cc b/src/ui/Ripple.cc
index 107bfd7f..636b45d1 100644
--- a/src/ui/Ripple.cc
+++ b/src/ui/Ripple.cc
@@ -2,25 +2,25 @@
 #include "RippleOverlay.h"
 
 Ripple::Ripple(const QPoint &center, QObject *parent)
-    : QParallelAnimationGroup(parent)
-    , overlay_(0)
-    , radius_anim_(animate("radius"))
-    , opacity_anim_(animate("opacity"))
-    , radius_(0)
-    , opacity_(0)
-    , center_(center)
+  : QParallelAnimationGroup(parent)
+  , overlay_(0)
+  , radius_anim_(animate("radius"))
+  , opacity_anim_(animate("opacity"))
+  , radius_(0)
+  , opacity_(0)
+  , center_(center)
 {
 	init();
 }
 
 Ripple::Ripple(const QPoint &center, RippleOverlay *overlay, QObject *parent)
-    : QParallelAnimationGroup(parent)
-    , overlay_(overlay)
-    , radius_anim_(animate("radius"))
-    , opacity_anim_(animate("opacity"))
-    , radius_(0)
-    , opacity_(0)
-    , center_(center)
+  : QParallelAnimationGroup(parent)
+  , overlay_(overlay)
+  , radius_anim_(animate("radius"))
+  , opacity_anim_(animate("opacity"))
+  , radius_(0)
+  , opacity_(0)
+  , center_(center)
 {
 	init();
 }
@@ -29,7 +29,8 @@ Ripple::~Ripple()
 {
 }
 
-void Ripple::setRadius(qreal radius)
+void
+Ripple::setRadius(qreal radius)
 {
 	Q_ASSERT(overlay_);
 
@@ -40,7 +41,8 @@ void Ripple::setRadius(qreal radius)
 	overlay_->update();
 }
 
-void Ripple::setOpacity(qreal opacity)
+void
+Ripple::setOpacity(qreal opacity)
 {
 	Q_ASSERT(overlay_);
 
@@ -51,7 +53,8 @@ void Ripple::setOpacity(qreal opacity)
 	overlay_->update();
 }
 
-void Ripple::setColor(const QColor &color)
+void
+Ripple::setColor(const QColor &color)
 {
 	if (brush_.color() == color)
 		return;
@@ -62,7 +65,8 @@ void Ripple::setColor(const QColor &color)
 		overlay_->update();
 }
 
-void Ripple::setBrush(const QBrush &brush)
+void
+Ripple::setBrush(const QBrush &brush)
 {
 	brush_ = brush;
 
@@ -70,16 +74,16 @@ void Ripple::setBrush(const QBrush &brush)
 		overlay_->update();
 }
 
-void Ripple::destroy()
+void
+Ripple::destroy()
 {
 	Q_ASSERT(overlay_);
 
 	overlay_->removeRipple(this);
 }
 
-QPropertyAnimation *Ripple::animate(const QByteArray &property,
-				    const QEasingCurve &easing,
-				    int duration)
+QPropertyAnimation *
+Ripple::animate(const QByteArray &property, const QEasingCurve &easing, int duration)
 {
 	QPropertyAnimation *animation = new QPropertyAnimation;
 	animation->setTargetObject(this);
@@ -92,7 +96,8 @@ QPropertyAnimation *Ripple::animate(const QByteArray &property,
 	return animation;
 }
 
-void Ripple::init()
+void
+Ripple::init()
 {
 	setOpacityStartValue(0.5);
 	setOpacityEndValue(0);
diff --git a/src/ui/RippleOverlay.cc b/src/ui/RippleOverlay.cc
index add030d9..be070355 100644
--- a/src/ui/RippleOverlay.cc
+++ b/src/ui/RippleOverlay.cc
@@ -4,8 +4,8 @@
 #include "RippleOverlay.h"
 
 RippleOverlay::RippleOverlay(QWidget *parent)
-    : OverlayWidget(parent)
-    , use_clip_(false)
+  : OverlayWidget(parent)
+  , use_clip_(false)
 {
 	setAttribute(Qt::WA_TransparentForMouseEvents);
 	setAttribute(Qt::WA_NoSystemBackground);
@@ -15,27 +15,31 @@ RippleOverlay::~RippleOverlay()
 {
 }
 
-void RippleOverlay::addRipple(Ripple *ripple)
+void
+RippleOverlay::addRipple(Ripple *ripple)
 {
 	ripple->setOverlay(this);
 	ripples_.push_back(ripple);
 	ripple->start();
 }
 
-void RippleOverlay::addRipple(const QPoint &position, qreal radius)
+void
+RippleOverlay::addRipple(const QPoint &position, qreal radius)
 {
 	Ripple *ripple = new Ripple(position);
 	ripple->setRadiusEndValue(radius);
 	addRipple(ripple);
 }
 
-void RippleOverlay::removeRipple(Ripple *ripple)
+void
+RippleOverlay::removeRipple(Ripple *ripple)
 {
 	if (ripples_.removeOne(ripple))
 		delete ripple;
 }
 
-void RippleOverlay::paintEvent(QPaintEvent *event)
+void
+RippleOverlay::paintEvent(QPaintEvent *event)
 {
 	Q_UNUSED(event)
 
@@ -50,7 +54,8 @@ void RippleOverlay::paintEvent(QPaintEvent *event)
 		paintRipple(&painter, *it);
 }
 
-void RippleOverlay::paintRipple(QPainter *painter, Ripple *ripple)
+void
+RippleOverlay::paintRipple(QPainter *painter, Ripple *ripple)
 {
 	const qreal radius = ripple->radius();
 	const QPointF center = ripple->center();
diff --git a/src/ui/ScrollBar.cc b/src/ui/ScrollBar.cc
index 300b9a04..73cdf2ba 100644
--- a/src/ui/ScrollBar.cc
+++ b/src/ui/ScrollBar.cc
@@ -22,8 +22,8 @@
 #include "ScrollBar.h"
 
 ScrollBar::ScrollBar(QScrollArea *area, QWidget *parent)
-    : QScrollBar(parent)
-    , area_{area}
+  : QScrollBar(parent)
+  , area_{ area }
 {
 	hideTimer_.setSingleShot(true);
 
@@ -33,7 +33,8 @@ ScrollBar::ScrollBar(QScrollArea *area, QWidget *parent)
 	setGraphicsEffect(eff);
 }
 
-void ScrollBar::fadeOut()
+void
+ScrollBar::fadeOut()
 {
 	isActive = false;
 
@@ -45,7 +46,8 @@ void ScrollBar::fadeOut()
 	anim->start(QPropertyAnimation::DeleteWhenStopped);
 }
 
-void ScrollBar::fadeIn()
+void
+ScrollBar::fadeIn()
 {
 	QPropertyAnimation *anim = new QPropertyAnimation(eff, "opacity");
 	anim->setDuration(AnimationDuration);
@@ -55,7 +57,8 @@ void ScrollBar::fadeIn()
 	anim->start(QPropertyAnimation::DeleteWhenStopped);
 }
 
-void ScrollBar::sliderChange(SliderChange change)
+void
+ScrollBar::sliderChange(SliderChange change)
 {
 	if (!isActive)
 		fadeIn();
@@ -67,7 +70,8 @@ void ScrollBar::sliderChange(SliderChange change)
 	QScrollBar::sliderChange(change);
 }
 
-void ScrollBar::paintEvent(QPaintEvent *)
+void
+ScrollBar::paintEvent(QPaintEvent *)
 {
 	if (!width() && !height()) {
 		hide();
diff --git a/src/ui/TextField.cc b/src/ui/TextField.cc
index ca2c3c11..2d529326 100644
--- a/src/ui/TextField.cc
+++ b/src/ui/TextField.cc
@@ -8,7 +8,7 @@
 #include <QPropertyAnimation>
 
 TextField::TextField(QWidget *parent)
-    : QLineEdit(parent)
+  : QLineEdit(parent)
 {
 	// Get rid of the focus border on macOS.
 	setAttribute(Qt::WA_MacShowFocusRect, 0);
@@ -36,17 +36,20 @@ TextField::~TextField()
 {
 }
 
-void TextField::setBackgroundColor(const QColor &color)
+void
+TextField::setBackgroundColor(const QColor &color)
 {
 	background_color_ = color;
 }
 
-QColor TextField::backgroundColor() const
+QColor
+TextField::backgroundColor() const
 {
 	return background_color_;
 }
 
-void TextField::setShowLabel(bool value)
+void
+TextField::setShowLabel(bool value)
 {
 	if (show_label_ == value) {
 		return;
@@ -66,12 +69,14 @@ void TextField::setShowLabel(bool value)
 	}
 }
 
-bool TextField::hasLabel() const
+bool
+TextField::hasLabel() const
 {
 	return show_label_;
 }
 
-void TextField::setLabelFontSize(qreal size)
+void
+TextField::setLabelFontSize(qreal size)
 {
 	label_font_size_ = size;
 
@@ -83,30 +88,35 @@ void TextField::setLabelFontSize(qreal size)
 	}
 }
 
-qreal TextField::labelFontSize() const
+qreal
+TextField::labelFontSize() const
 {
 	return label_font_size_;
 }
 
-void TextField::setLabel(const QString &label)
+void
+TextField::setLabel(const QString &label)
 {
 	label_text_ = label;
 	setShowLabel(true);
 	label_->update();
 }
 
-QString TextField::label() const
+QString
+TextField::label() const
 {
 	return label_text_;
 }
 
-void TextField::setTextColor(const QColor &color)
+void
+TextField::setTextColor(const QColor &color)
 {
 	text_color_ = color;
 	setStyleSheet(QString("QLineEdit { color: %1; }").arg(color.name()));
 }
 
-QColor TextField::textColor() const
+QColor
+TextField::textColor() const
 {
 	if (!text_color_.isValid()) {
 		return QColor("black");
@@ -115,26 +125,30 @@ QColor TextField::textColor() const
 	return text_color_;
 }
 
-void TextField::setLabelColor(const QColor &color)
+void
+TextField::setLabelColor(const QColor &color)
 {
 	label_color_ = color;
 }
 
-QColor TextField::labelColor() const
+QColor
+TextField::labelColor() const
 {
 	if (!label_color_.isValid()) {
-		return QColor("#abb");  // TODO: Move this into Theme.h
+		return QColor("#abb"); // TODO: Move this into Theme.h
 	}
 
 	return label_color_;
 }
 
-void TextField::setInkColor(const QColor &color)
+void
+TextField::setInkColor(const QColor &color)
 {
 	ink_color_ = color;
 }
 
-QColor TextField::inkColor() const
+QColor
+TextField::inkColor() const
 {
 	if (!ink_color_.isValid()) {
 		return QColor("black");
@@ -143,12 +157,14 @@ QColor TextField::inkColor() const
 	return ink_color_;
 }
 
-void TextField::setUnderlineColor(const QColor &color)
+void
+TextField::setUnderlineColor(const QColor &color)
 {
 	underline_color_ = color;
 }
 
-QColor TextField::underlineColor() const
+QColor
+TextField::underlineColor() const
 {
 	if (!underline_color_.isValid()) {
 		return QColor("black");
@@ -157,7 +173,8 @@ QColor TextField::underlineColor() const
 	return underline_color_;
 }
 
-bool TextField::event(QEvent *event)
+bool
+TextField::event(QEvent *event)
 {
 	switch (event->type()) {
 	case QEvent::Resize:
@@ -173,7 +190,8 @@ bool TextField::event(QEvent *event)
 	return QLineEdit::event(event);
 }
 
-void TextField::paintEvent(QPaintEvent *event)
+void
+TextField::paintEvent(QPaintEvent *event)
 {
 	QLineEdit::paintEvent(event);
 
@@ -181,7 +199,7 @@ void TextField::paintEvent(QPaintEvent *event)
 
 	if (text().isEmpty()) {
 		painter.setOpacity(1 - state_machine_->progress());
-		//painter.fillRect(rect(), parentWidget()->palette().color(backgroundRole()));
+		// painter.fillRect(rect(), parentWidget()->palette().color(backgroundRole()));
 		painter.fillRect(rect(), backgroundColor());
 	}
 
@@ -210,7 +228,8 @@ void TextField::paintEvent(QPaintEvent *event)
 }
 
 TextFieldStateMachine::TextFieldStateMachine(TextField *parent)
-    : QStateMachine(parent), text_field_(parent)
+  : QStateMachine(parent)
+  , text_field_(parent)
 {
 	normal_state_ = new QState;
 	focused_state_ = new QState;
@@ -258,7 +277,8 @@ TextFieldStateMachine::~TextFieldStateMachine()
 {
 }
 
-void TextFieldStateMachine::setLabel(TextFieldLabel *label)
+void
+TextFieldStateMachine::setLabel(TextFieldLabel *label)
 {
 	if (label_) {
 		delete label_;
@@ -290,7 +310,8 @@ void TextFieldStateMachine::setLabel(TextFieldLabel *label)
 	setupProperties();
 }
 
-void TextFieldStateMachine::setupProperties()
+void
+TextFieldStateMachine::setupProperties()
 {
 	if (label_) {
 		const int m = text_field_->textMargins().top();
@@ -316,7 +337,8 @@ void TextFieldStateMachine::setupProperties()
 }
 
 TextFieldLabel::TextFieldLabel(TextField *parent)
-    : QWidget(parent), text_field_(parent)
+  : QWidget(parent)
+  , text_field_(parent)
 {
 	x_ = 0;
 	y_ = 26;
@@ -333,7 +355,8 @@ TextFieldLabel::~TextFieldLabel()
 {
 }
 
-void TextFieldLabel::paintEvent(QPaintEvent *)
+void
+TextFieldLabel::paintEvent(QPaintEvent *)
 {
 	if (!text_field_->hasLabel())
 		return;
diff --git a/src/ui/Theme.cc b/src/ui/Theme.cc
index ff32c92d..328bd874 100644
--- a/src/ui/Theme.cc
+++ b/src/ui/Theme.cc
@@ -3,7 +3,7 @@
 #include "Theme.h"
 
 Theme::Theme(QObject *parent)
-    : QObject(parent)
+  : QObject(parent)
 {
 	setColor("Black", ui::Color::Black);
 
@@ -26,7 +26,8 @@ Theme::~Theme()
 {
 }
 
-QColor Theme::rgba(int r, int g, int b, qreal a) const
+QColor
+Theme::rgba(int r, int g, int b, qreal a) const
 {
 	QColor color(r, g, b);
 	color.setAlphaF(a);
@@ -34,7 +35,8 @@ QColor Theme::rgba(int r, int g, int b, qreal a) const
 	return color;
 }
 
-QColor Theme::getColor(const QString &key) const
+QColor
+Theme::getColor(const QString &key) const
 {
 	if (!colors_.contains(key)) {
 		qWarning() << "Color with key" << key << "could not be found";
@@ -44,27 +46,23 @@ QColor Theme::getColor(const QString &key) const
 	return colors_.value(key);
 }
 
-void Theme::setColor(const QString &key, const QColor &color)
+void
+Theme::setColor(const QString &key, const QColor &color)
 {
 	colors_.insert(key, color);
 }
 
-void Theme::setColor(const QString &key, ui::Color color)
+void
+Theme::setColor(const QString &key, ui::Color color)
 {
 	static const QColor palette[] = {
 		QColor("#171919"),
 
-		QColor("#EBEBEB"),
-		QColor("#C9C9C9"),
-		QColor("#929292"),
+		QColor("#EBEBEB"), QColor("#C9C9C9"), QColor("#929292"),
 
-		QColor("#1C3133"),
-		QColor("#577275"),
-		QColor("#46A451"),
+		QColor("#1C3133"), QColor("#577275"), QColor("#46A451"),
 
-		QColor("#5D6565"),
-		QColor("#E22826"),
-		QColor("#81B3A9"),
+		QColor("#5D6565"), QColor("#E22826"), QColor("#81B3A9"),
 
 		rgba(0, 0, 0, 0),
 	};
diff --git a/src/ui/ThemeManager.cc b/src/ui/ThemeManager.cc
index 3c8a16ab..021008b1 100644
--- a/src/ui/ThemeManager.cc
+++ b/src/ui/ThemeManager.cc
@@ -7,13 +7,15 @@ ThemeManager::ThemeManager()
 	setTheme(new Theme);
 }
 
-void ThemeManager::setTheme(Theme *theme)
+void
+ThemeManager::setTheme(Theme *theme)
 {
 	theme_ = theme;
 	theme_->setParent(this);
 }
 
-QColor ThemeManager::themeColor(const QString &key) const
+QColor
+ThemeManager::themeColor(const QString &key) const
 {
 	Q_ASSERT(theme_);
 	return theme_->getColor(key);