From fd2d4d6db3c1ed93f1860260a0519c2284b97ffa Mon Sep 17 00:00:00 2001 From: Joseph Donofry <joedonofry@gmail.com> Date: Sun, 28 Jul 2019 23:14:10 -0400 Subject: [PATCH] Update mentions dialog Mentions are now separated into 'this room' and 'all rooms' tab., which allows the user to filter on the current room if they desire. Should add additional logic in the future to show which room the mention was in the for the 'all rooms' view. --- resources/langs/nheko_de.ts | 31 ++++++++++---- resources/langs/nheko_el.ts | 31 ++++++++++---- resources/langs/nheko_en.ts | 31 ++++++++++---- resources/langs/nheko_fi.ts | 31 ++++++++++---- resources/langs/nheko_fr.ts | 31 ++++++++++---- resources/langs/nheko_nl.ts | 31 ++++++++++---- resources/langs/nheko_pl.ts | 31 ++++++++++---- resources/langs/nheko_ru.ts | 31 ++++++++++---- resources/langs/nheko_zh_CN.ts | 31 ++++++++++---- src/ChatPage.cpp | 5 +-- src/dialogs/UserMentions.cpp | 75 ++++++++++++++++++++++++++-------- src/dialogs/UserMentions.h | 15 +++++-- 12 files changed, 270 insertions(+), 104 deletions(-) diff --git a/resources/langs/nheko_de.ts b/resources/langs/nheko_de.ts index 15497d600..b596fb67d 100644 --- a/resources/langs/nheko_de.ts +++ b/resources/langs/nheko_de.ts @@ -12,7 +12,7 @@ <context> <name>ChatPage</name> <message> - <location filename="../../src/ChatPage.cpp" line="+331"/> + <location filename="../../src/ChatPage.cpp" line="+330"/> <source>Failed to upload image. Please try again.</source> <translation>Hochladen des Bildes fehlgeschlagen. Bitte versuche es erneut.</translation> </message> @@ -977,6 +977,19 @@ Medien-Größe: %2 <translation>Hochladen der Bilddatei fehlgeschlagen: %s</translation> </message> </context> +<context> + <name>dialogs::UserMentions</name> + <message> + <location filename="../../src/dialogs/UserMentions.cpp" line="+53"/> + <source>This Room</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+1"/> + <source>All Rooms</source> + <translation type="unfinished"></translation> + </message> +</context> <context> <name>dialogs::UserProfile</name> <message> @@ -1056,32 +1069,32 @@ Medien-Größe: %2 <translation type="unfinished"></translation> </message> <message> - <location line="+2"/> + <location line="+3"/> <source>%1 an image</source> <translation type="unfinished"></translation> </message> <message> - <location line="+2"/> + <location line="+3"/> <source>%1 a file</source> <translation type="unfinished"></translation> </message> <message> - <location line="+2"/> + <location line="+3"/> <source>%1 a video clip</source> <translation type="unfinished"></translation> </message> <message> - <location line="+2"/> + <location line="+3"/> <source>%1 a sticker</source> <translation type="unfinished"></translation> </message> <message> - <location line="+2"/> + <location line="+3"/> <source>%1 a notification</source> <translation type="unfinished"></translation> </message> <message> - <location line="+6"/> + <location line="+7"/> <source>%1 an encrypted message</source> <translation type="unfinished"></translation> </message> @@ -1089,7 +1102,7 @@ Medien-Größe: %2 <context> <name>message-description:</name> <message> - <location line="-19"/> + <location line="-26"/> <source>sent</source> <comment>For when someone else is the sender</comment> <translation type="unfinished"></translation> @@ -1108,7 +1121,7 @@ Medien-Größe: %2 <name>utils</name> <message> <location filename="../../src/Utils.cpp" line="+46"/> - <location filename="../../src/Utils.h" line="+47"/> + <location filename="../../src/Utils.h" line="+55"/> <source>You</source> <translation>Du</translation> </message> diff --git a/resources/langs/nheko_el.ts b/resources/langs/nheko_el.ts index 84b76ba4e..700c3d575 100644 --- a/resources/langs/nheko_el.ts +++ b/resources/langs/nheko_el.ts @@ -12,7 +12,7 @@ <context> <name>ChatPage</name> <message> - <location filename="../../src/ChatPage.cpp" line="+331"/> + <location filename="../../src/ChatPage.cpp" line="+330"/> <source>Failed to upload image. Please try again.</source> <translation type="unfinished"></translation> </message> @@ -975,6 +975,19 @@ Media size: %2 <translation type="unfinished"></translation> </message> </context> +<context> + <name>dialogs::UserMentions</name> + <message> + <location filename="../../src/dialogs/UserMentions.cpp" line="+53"/> + <source>This Room</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+1"/> + <source>All Rooms</source> + <translation type="unfinished"></translation> + </message> +</context> <context> <name>dialogs::UserProfile</name> <message> @@ -1054,32 +1067,32 @@ Media size: %2 <translation type="unfinished"></translation> </message> <message> - <location line="+2"/> + <location line="+3"/> <source>%1 an image</source> <translation type="unfinished"></translation> </message> <message> - <location line="+2"/> + <location line="+3"/> <source>%1 a file</source> <translation type="unfinished"></translation> </message> <message> - <location line="+2"/> + <location line="+3"/> <source>%1 a video clip</source> <translation type="unfinished"></translation> </message> <message> - <location line="+2"/> + <location line="+3"/> <source>%1 a sticker</source> <translation type="unfinished"></translation> </message> <message> - <location line="+2"/> + <location line="+3"/> <source>%1 a notification</source> <translation type="unfinished"></translation> </message> <message> - <location line="+6"/> + <location line="+7"/> <source>%1 an encrypted message</source> <translation type="unfinished"></translation> </message> @@ -1087,7 +1100,7 @@ Media size: %2 <context> <name>message-description:</name> <message> - <location line="-19"/> + <location line="-26"/> <source>sent</source> <comment>For when someone else is the sender</comment> <translation type="unfinished"></translation> @@ -1106,7 +1119,7 @@ Media size: %2 <name>utils</name> <message> <location filename="../../src/Utils.cpp" line="+46"/> - <location filename="../../src/Utils.h" line="+47"/> + <location filename="../../src/Utils.h" line="+55"/> <source>You</source> <translation type="unfinished"></translation> </message> diff --git a/resources/langs/nheko_en.ts b/resources/langs/nheko_en.ts index f44f8a73c..a8329a940 100644 --- a/resources/langs/nheko_en.ts +++ b/resources/langs/nheko_en.ts @@ -12,7 +12,7 @@ <context> <name>ChatPage</name> <message> - <location filename="../../src/ChatPage.cpp" line="+331"/> + <location filename="../../src/ChatPage.cpp" line="+330"/> <source>Failed to upload image. Please try again.</source> <translation>Failed to upload image. Please try again.</translation> </message> @@ -979,6 +979,19 @@ Media size: %2 <translation>Failed to upload image: %s</translation> </message> </context> +<context> + <name>dialogs::UserMentions</name> + <message> + <location filename="../../src/dialogs/UserMentions.cpp" line="+53"/> + <source>This Room</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+1"/> + <source>All Rooms</source> + <translation type="unfinished"></translation> + </message> +</context> <context> <name>dialogs::UserProfile</name> <message> @@ -1058,32 +1071,32 @@ Media size: %2 <translation type="unfinished">%1 an audio clip</translation> </message> <message> - <location line="+2"/> + <location line="+3"/> <source>%1 an image</source> <translation type="unfinished">%1 an image</translation> </message> <message> - <location line="+2"/> + <location line="+3"/> <source>%1 a file</source> <translation type="unfinished">%1 a file</translation> </message> <message> - <location line="+2"/> + <location line="+3"/> <source>%1 a video clip</source> <translation type="unfinished">%1 a video clip</translation> </message> <message> - <location line="+2"/> + <location line="+3"/> <source>%1 a sticker</source> <translation type="unfinished">%1 a sticker</translation> </message> <message> - <location line="+2"/> + <location line="+3"/> <source>%1 a notification</source> <translation type="unfinished">%1 a notification</translation> </message> <message> - <location line="+6"/> + <location line="+7"/> <source>%1 an encrypted message</source> <translation type="unfinished">%1 an encrypted message</translation> </message> @@ -1091,7 +1104,7 @@ Media size: %2 <context> <name>message-description:</name> <message> - <location line="-19"/> + <location line="-26"/> <source>sent</source> <comment>For when someone else is the sender</comment> <translation type="unfinished">sent</translation> @@ -1110,7 +1123,7 @@ Media size: %2 <name>utils</name> <message> <location filename="../../src/Utils.cpp" line="+46"/> - <location filename="../../src/Utils.h" line="+47"/> + <location filename="../../src/Utils.h" line="+55"/> <source>You</source> <translation>You</translation> </message> diff --git a/resources/langs/nheko_fi.ts b/resources/langs/nheko_fi.ts index 6494664a1..89eb33b78 100644 --- a/resources/langs/nheko_fi.ts +++ b/resources/langs/nheko_fi.ts @@ -12,7 +12,7 @@ <context> <name>ChatPage</name> <message> - <location filename="../../src/ChatPage.cpp" line="+331"/> + <location filename="../../src/ChatPage.cpp" line="+330"/> <source>Failed to upload image. Please try again.</source> <translation>Kuvan lähettäminen epäonnistui. Ole hyvä ja yritä uudelleen.</translation> </message> @@ -979,6 +979,19 @@ Median koko: %2 <translation>Kuvan lähetys epäonnistui: %s</translation> </message> </context> +<context> + <name>dialogs::UserMentions</name> + <message> + <location filename="../../src/dialogs/UserMentions.cpp" line="+53"/> + <source>This Room</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+1"/> + <source>All Rooms</source> + <translation type="unfinished"></translation> + </message> +</context> <context> <name>dialogs::UserProfile</name> <message> @@ -1058,32 +1071,32 @@ Median koko: %2 <translation type="unfinished"></translation> </message> <message> - <location line="+2"/> + <location line="+3"/> <source>%1 an image</source> <translation type="unfinished"></translation> </message> <message> - <location line="+2"/> + <location line="+3"/> <source>%1 a file</source> <translation type="unfinished"></translation> </message> <message> - <location line="+2"/> + <location line="+3"/> <source>%1 a video clip</source> <translation type="unfinished"></translation> </message> <message> - <location line="+2"/> + <location line="+3"/> <source>%1 a sticker</source> <translation type="unfinished"></translation> </message> <message> - <location line="+2"/> + <location line="+3"/> <source>%1 a notification</source> <translation type="unfinished"></translation> </message> <message> - <location line="+6"/> + <location line="+7"/> <source>%1 an encrypted message</source> <translation type="unfinished"></translation> </message> @@ -1091,7 +1104,7 @@ Median koko: %2 <context> <name>message-description:</name> <message> - <location line="-19"/> + <location line="-26"/> <source>sent</source> <comment>For when someone else is the sender</comment> <translation type="unfinished"></translation> @@ -1110,7 +1123,7 @@ Median koko: %2 <name>utils</name> <message> <location filename="../../src/Utils.cpp" line="+46"/> - <location filename="../../src/Utils.h" line="+47"/> + <location filename="../../src/Utils.h" line="+55"/> <source>You</source> <translation>Sinä</translation> </message> diff --git a/resources/langs/nheko_fr.ts b/resources/langs/nheko_fr.ts index 600d191c9..42f82b0fc 100644 --- a/resources/langs/nheko_fr.ts +++ b/resources/langs/nheko_fr.ts @@ -12,7 +12,7 @@ <context> <name>ChatPage</name> <message> - <location filename="../../src/ChatPage.cpp" line="+331"/> + <location filename="../../src/ChatPage.cpp" line="+330"/> <source>Failed to upload image. Please try again.</source> <translation type="unfinished"></translation> </message> @@ -978,6 +978,19 @@ Taille du média : %2 <translation type="unfinished"></translation> </message> </context> +<context> + <name>dialogs::UserMentions</name> + <message> + <location filename="../../src/dialogs/UserMentions.cpp" line="+53"/> + <source>This Room</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+1"/> + <source>All Rooms</source> + <translation type="unfinished"></translation> + </message> +</context> <context> <name>dialogs::UserProfile</name> <message> @@ -1057,32 +1070,32 @@ Taille du média : %2 <translation type="unfinished"></translation> </message> <message> - <location line="+2"/> + <location line="+3"/> <source>%1 an image</source> <translation type="unfinished"></translation> </message> <message> - <location line="+2"/> + <location line="+3"/> <source>%1 a file</source> <translation type="unfinished"></translation> </message> <message> - <location line="+2"/> + <location line="+3"/> <source>%1 a video clip</source> <translation type="unfinished"></translation> </message> <message> - <location line="+2"/> + <location line="+3"/> <source>%1 a sticker</source> <translation type="unfinished"></translation> </message> <message> - <location line="+2"/> + <location line="+3"/> <source>%1 a notification</source> <translation type="unfinished"></translation> </message> <message> - <location line="+6"/> + <location line="+7"/> <source>%1 an encrypted message</source> <translation type="unfinished"></translation> </message> @@ -1090,7 +1103,7 @@ Taille du média : %2 <context> <name>message-description:</name> <message> - <location line="-19"/> + <location line="-26"/> <source>sent</source> <comment>For when someone else is the sender</comment> <translation type="unfinished"></translation> @@ -1109,7 +1122,7 @@ Taille du média : %2 <name>utils</name> <message> <location filename="../../src/Utils.cpp" line="+46"/> - <location filename="../../src/Utils.h" line="+47"/> + <location filename="../../src/Utils.h" line="+55"/> <source>You</source> <translation type="unfinished"></translation> </message> diff --git a/resources/langs/nheko_nl.ts b/resources/langs/nheko_nl.ts index aa1c69284..53840f824 100644 --- a/resources/langs/nheko_nl.ts +++ b/resources/langs/nheko_nl.ts @@ -12,7 +12,7 @@ <context> <name>ChatPage</name> <message> - <location filename="../../src/ChatPage.cpp" line="+331"/> + <location filename="../../src/ChatPage.cpp" line="+330"/> <source>Failed to upload image. Please try again.</source> <translation type="unfinished"></translation> </message> @@ -977,6 +977,19 @@ Mediagrootte: %2 <translation type="unfinished"></translation> </message> </context> +<context> + <name>dialogs::UserMentions</name> + <message> + <location filename="../../src/dialogs/UserMentions.cpp" line="+53"/> + <source>This Room</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+1"/> + <source>All Rooms</source> + <translation type="unfinished"></translation> + </message> +</context> <context> <name>dialogs::UserProfile</name> <message> @@ -1056,32 +1069,32 @@ Mediagrootte: %2 <translation type="unfinished"></translation> </message> <message> - <location line="+2"/> + <location line="+3"/> <source>%1 an image</source> <translation type="unfinished"></translation> </message> <message> - <location line="+2"/> + <location line="+3"/> <source>%1 a file</source> <translation type="unfinished"></translation> </message> <message> - <location line="+2"/> + <location line="+3"/> <source>%1 a video clip</source> <translation type="unfinished"></translation> </message> <message> - <location line="+2"/> + <location line="+3"/> <source>%1 a sticker</source> <translation type="unfinished"></translation> </message> <message> - <location line="+2"/> + <location line="+3"/> <source>%1 a notification</source> <translation type="unfinished"></translation> </message> <message> - <location line="+6"/> + <location line="+7"/> <source>%1 an encrypted message</source> <translation type="unfinished"></translation> </message> @@ -1089,7 +1102,7 @@ Mediagrootte: %2 <context> <name>message-description:</name> <message> - <location line="-19"/> + <location line="-26"/> <source>sent</source> <comment>For when someone else is the sender</comment> <translation type="unfinished"></translation> @@ -1108,7 +1121,7 @@ Mediagrootte: %2 <name>utils</name> <message> <location filename="../../src/Utils.cpp" line="+46"/> - <location filename="../../src/Utils.h" line="+47"/> + <location filename="../../src/Utils.h" line="+55"/> <source>You</source> <translation type="unfinished"></translation> </message> diff --git a/resources/langs/nheko_pl.ts b/resources/langs/nheko_pl.ts index 4c90292f7..f4f98dbbc 100644 --- a/resources/langs/nheko_pl.ts +++ b/resources/langs/nheko_pl.ts @@ -12,7 +12,7 @@ <context> <name>ChatPage</name> <message> - <location filename="../../src/ChatPage.cpp" line="+331"/> + <location filename="../../src/ChatPage.cpp" line="+330"/> <source>Failed to upload image. Please try again.</source> <translation>Nie udaÅ‚o siÄ™ wysÅ‚ać obrazu. Spróbuj ponownie.</translation> </message> @@ -981,6 +981,19 @@ Rozmiar multimediów: %2 <translation>Nie udaÅ‚o siÄ™ wysÅ‚ać obrazu: %s</translation> </message> </context> +<context> + <name>dialogs::UserMentions</name> + <message> + <location filename="../../src/dialogs/UserMentions.cpp" line="+53"/> + <source>This Room</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+1"/> + <source>All Rooms</source> + <translation type="unfinished"></translation> + </message> +</context> <context> <name>dialogs::UserProfile</name> <message> @@ -1060,32 +1073,32 @@ Rozmiar multimediów: %2 <translation type="unfinished"></translation> </message> <message> - <location line="+2"/> + <location line="+3"/> <source>%1 an image</source> <translation type="unfinished"></translation> </message> <message> - <location line="+2"/> + <location line="+3"/> <source>%1 a file</source> <translation type="unfinished"></translation> </message> <message> - <location line="+2"/> + <location line="+3"/> <source>%1 a video clip</source> <translation type="unfinished"></translation> </message> <message> - <location line="+2"/> + <location line="+3"/> <source>%1 a sticker</source> <translation type="unfinished"></translation> </message> <message> - <location line="+2"/> + <location line="+3"/> <source>%1 a notification</source> <translation type="unfinished"></translation> </message> <message> - <location line="+6"/> + <location line="+7"/> <source>%1 an encrypted message</source> <translation type="unfinished"></translation> </message> @@ -1093,7 +1106,7 @@ Rozmiar multimediów: %2 <context> <name>message-description:</name> <message> - <location line="-19"/> + <location line="-26"/> <source>sent</source> <comment>For when someone else is the sender</comment> <translation type="unfinished"></translation> @@ -1112,7 +1125,7 @@ Rozmiar multimediów: %2 <name>utils</name> <message> <location filename="../../src/Utils.cpp" line="+46"/> - <location filename="../../src/Utils.h" line="+47"/> + <location filename="../../src/Utils.h" line="+55"/> <source>You</source> <translation type="unfinished"></translation> </message> diff --git a/resources/langs/nheko_ru.ts b/resources/langs/nheko_ru.ts index 958e93fad..04285c729 100644 --- a/resources/langs/nheko_ru.ts +++ b/resources/langs/nheko_ru.ts @@ -12,7 +12,7 @@ <context> <name>ChatPage</name> <message> - <location filename="../../src/ChatPage.cpp" line="+331"/> + <location filename="../../src/ChatPage.cpp" line="+330"/> <source>Failed to upload image. Please try again.</source> <translation>Ðе удалоÑÑŒ загрузить изображение. ПожалуйÑта, попробуйте еще раз.</translation> </message> @@ -980,6 +980,19 @@ Media size: %2 <translation>Ðе удалоÑÑŒ загрузить изображение: %s</translation> </message> </context> +<context> + <name>dialogs::UserMentions</name> + <message> + <location filename="../../src/dialogs/UserMentions.cpp" line="+53"/> + <source>This Room</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+1"/> + <source>All Rooms</source> + <translation type="unfinished"></translation> + </message> +</context> <context> <name>dialogs::UserProfile</name> <message> @@ -1059,32 +1072,32 @@ Media size: %2 <translation type="unfinished"></translation> </message> <message> - <location line="+2"/> + <location line="+3"/> <source>%1 an image</source> <translation type="unfinished"></translation> </message> <message> - <location line="+2"/> + <location line="+3"/> <source>%1 a file</source> <translation type="unfinished"></translation> </message> <message> - <location line="+2"/> + <location line="+3"/> <source>%1 a video clip</source> <translation type="unfinished"></translation> </message> <message> - <location line="+2"/> + <location line="+3"/> <source>%1 a sticker</source> <translation type="unfinished"></translation> </message> <message> - <location line="+2"/> + <location line="+3"/> <source>%1 a notification</source> <translation type="unfinished"></translation> </message> <message> - <location line="+6"/> + <location line="+7"/> <source>%1 an encrypted message</source> <translation type="unfinished"></translation> </message> @@ -1092,7 +1105,7 @@ Media size: %2 <context> <name>message-description:</name> <message> - <location line="-19"/> + <location line="-26"/> <source>sent</source> <comment>For when someone else is the sender</comment> <translation type="unfinished"></translation> @@ -1111,7 +1124,7 @@ Media size: %2 <name>utils</name> <message> <location filename="../../src/Utils.cpp" line="+46"/> - <location filename="../../src/Utils.h" line="+47"/> + <location filename="../../src/Utils.h" line="+55"/> <source>You</source> <translation type="unfinished"></translation> </message> diff --git a/resources/langs/nheko_zh_CN.ts b/resources/langs/nheko_zh_CN.ts index 8c7b2d34d..1e539e64f 100644 --- a/resources/langs/nheko_zh_CN.ts +++ b/resources/langs/nheko_zh_CN.ts @@ -12,7 +12,7 @@ <context> <name>ChatPage</name> <message> - <location filename="../../src/ChatPage.cpp" line="+331"/> + <location filename="../../src/ChatPage.cpp" line="+330"/> <source>Failed to upload image. Please try again.</source> <translation>ä¸Šä¼ å›¾åƒå¤±è´¥ã€‚请é‡è¯•ã€‚</translation> </message> @@ -977,6 +977,19 @@ Media size: %2 <translation>ä¸Šä¼ å›¾åƒå¤±è´¥ï¼š%s</translation> </message> </context> +<context> + <name>dialogs::UserMentions</name> + <message> + <location filename="../../src/dialogs/UserMentions.cpp" line="+53"/> + <source>This Room</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+1"/> + <source>All Rooms</source> + <translation type="unfinished"></translation> + </message> +</context> <context> <name>dialogs::UserProfile</name> <message> @@ -1064,32 +1077,32 @@ Media size: %2 <translation type="unfinished"></translation> </message> <message> - <location line="+2"/> + <location line="+3"/> <source>%1 an image</source> <translation type="unfinished"></translation> </message> <message> - <location line="+2"/> + <location line="+3"/> <source>%1 a file</source> <translation type="unfinished"></translation> </message> <message> - <location line="+2"/> + <location line="+3"/> <source>%1 a video clip</source> <translation type="unfinished"></translation> </message> <message> - <location line="+2"/> + <location line="+3"/> <source>%1 a sticker</source> <translation type="unfinished"></translation> </message> <message> - <location line="+2"/> + <location line="+3"/> <source>%1 a notification</source> <translation type="unfinished"></translation> </message> <message> - <location line="+6"/> + <location line="+7"/> <source>%1 an encrypted message</source> <translation type="unfinished"></translation> </message> @@ -1097,7 +1110,7 @@ Media size: %2 <context> <name>message-description:</name> <message> - <location line="-19"/> + <location line="-26"/> <source>sent</source> <comment>For when someone else is the sender</comment> <translation type="unfinished"></translation> @@ -1116,7 +1129,7 @@ Media size: %2 <name>utils</name> <message> <location filename="../../src/Utils.cpp" line="+46"/> - <location filename="../../src/Utils.h" line="+47"/> + <location filename="../../src/Utils.h" line="+55"/> <source>You</source> <translation type="unfinished"></translation> </message> diff --git a/src/ChatPage.cpp b/src/ChatPage.cpp index 181884292..ca18d810b 100644 --- a/src/ChatPage.cpp +++ b/src/ChatPage.cpp @@ -91,12 +91,11 @@ ChatPage::ChatPage(QSharedPointer<UserSettings> userSettings, QWidget *parent) connect(sidebarActions_, &SideBarActions::createRoom, this, &ChatPage::createRoom); user_info_widget_ = new UserInfoWidget(sideBar_); - // user_mentions_widget_ = new UserMentionsWidget(sideBar_); + // user_mentions_widget_ = new UserMentionsWidget(top_bar_); room_list_ = new RoomList(sideBar_); connect(room_list_, &RoomList::joinRoom, this, &ChatPage::joinRoom); sideBarLayout_->addWidget(user_info_widget_); - // sideBarLayout_->addWidget(user_mentions_widget_); sideBarLayout_->addWidget(room_list_); sideBarLayout_->addWidget(sidebarActions_); @@ -1000,7 +999,7 @@ ChatPage::showNotificationsDialog(const mtx::responses::Notifications &res, cons const auto user_id = utils::event_sender(item.event); const auto body = utils::event_body(item.event); - notifDialog->pushItem(event_id, user_id, body, room_id); + notifDialog->pushItem(event_id, user_id, body, room_id, current_room_); } catch (const lmdb::error &e) { nhlog::db()->warn("error while sending desktop notification: {}", e.what()); diff --git a/src/dialogs/UserMentions.cpp b/src/dialogs/UserMentions.cpp index 8f56ec935..4cfcdaca8 100644 --- a/src/dialogs/UserMentions.cpp +++ b/src/dialogs/UserMentions.cpp @@ -1,3 +1,4 @@ +#include <QTabWidget> #include <QTimer> #include "UserMentions.h" @@ -8,31 +9,50 @@ using namespace dialogs; UserMentions::UserMentions(QWidget *parent) : QWidget{parent} { + tab_layout_ = new QTabWidget(this); + top_layout_ = new QVBoxLayout(this); top_layout_->setSpacing(0); top_layout_->setMargin(0); - scroll_area_ = new QScrollArea(this); - scroll_area_->setWidgetResizable(true); - scroll_area_->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); + local_scroll_area_ = new QScrollArea(this); + local_scroll_area_->setWidgetResizable(true); + local_scroll_area_->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); + + local_scroll_widget_ = new QWidget(this); + local_scroll_widget_->setObjectName("local_scroll_widget"); + + all_scroll_area_ = new QScrollArea(this); + all_scroll_area_->setWidgetResizable(true); + all_scroll_area_->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); - scroll_widget_ = new QWidget(this); - scroll_widget_->setObjectName("scroll_widget"); + all_scroll_widget_ = new QWidget(this); + all_scroll_widget_->setObjectName("all_scroll_widget"); // Height of the typing display. QFont f; f.setPointSizeF(f.pointSizeF() * 0.9); const int bottomMargin = QFontMetrics(f).height() + 6; - scroll_layout_ = new QVBoxLayout(scroll_widget_); - scroll_layout_->setContentsMargins(4, 0, 15, bottomMargin); - scroll_layout_->setSpacing(0); - scroll_layout_->setObjectName("timelinescrollarea"); + local_scroll_layout_ = new QVBoxLayout(local_scroll_widget_); + local_scroll_layout_->setContentsMargins(4, 0, 15, bottomMargin); + local_scroll_layout_->setSpacing(0); + local_scroll_layout_->setObjectName("localcrollarea"); - scroll_area_->setWidget(scroll_widget_); - scroll_area_->setAlignment(Qt::AlignBottom); + all_scroll_layout_ = new QVBoxLayout(all_scroll_widget_); + all_scroll_layout_->setContentsMargins(4, 0, 15, bottomMargin); + all_scroll_layout_->setSpacing(0); + all_scroll_layout_->setObjectName("allcrollarea"); - top_layout_->addWidget(scroll_area_); + local_scroll_area_->setWidget(local_scroll_widget_); + local_scroll_area_->setAlignment(Qt::AlignBottom); + + all_scroll_area_->setWidget(all_scroll_widget_); + all_scroll_area_->setAlignment(Qt::AlignBottom); + + tab_layout_->addTab(local_scroll_area_, tr("This Room")); + tab_layout_->addTab(all_scroll_area_, tr("All Rooms")); + top_layout_->addWidget(tab_layout_); setLayout(top_layout_); } @@ -41,18 +61,41 @@ void UserMentions::pushItem(const QString &event_id, const QString &user_id, const QString &body, - const QString &room_id) + const QString &room_id, + const QString ¤t_room_id) { + setUpdatesEnabled(false); + + // Add to the 'all' section TimelineItem *view_item = new TimelineItem( - mtx::events::MessageType::Text, user_id, body, true, room_id, scroll_widget_); + mtx::events::MessageType::Text, user_id, body, true, room_id, all_scroll_widget_); view_item->setEventId(event_id); - setUpdatesEnabled(false); view_item->hide(); - scroll_layout_->addWidget(view_item); + all_scroll_layout_->addWidget(view_item); QTimer::singleShot(0, this, [view_item, this]() { view_item->show(); view_item->adjustSize(); setUpdatesEnabled(true); }); + + // if it matches the current room... add it to the current room as well. + if (QString::compare(room_id, current_room_id, Qt::CaseInsensitive) == 0) { + // Add to the 'local' section + TimelineItem *local_view_item = new TimelineItem(mtx::events::MessageType::Text, + user_id, + body, + true, + room_id, + local_scroll_widget_); + local_view_item->setEventId(event_id); + local_view_item->hide(); + + local_scroll_layout_->addWidget(local_view_item); + + QTimer::singleShot(0, this, [local_view_item, this]() { + local_view_item->show(); + local_view_item->adjustSize(); + }); + } } \ No newline at end of file diff --git a/src/dialogs/UserMentions.h b/src/dialogs/UserMentions.h index e995b207c..9b43dcfda 100644 --- a/src/dialogs/UserMentions.h +++ b/src/dialogs/UserMentions.h @@ -2,6 +2,7 @@ #include <QScrollArea> #include <QScrollBar> +#include <QTabWidget> #include <QVBoxLayout> #include <QWidget> @@ -15,14 +16,20 @@ public: void pushItem(const QString &event_id, const QString &user_id, const QString &body, - const QString &room_id); + const QString &room_id, + const QString ¤t_room_id); private: + QTabWidget *tab_layout_; QVBoxLayout *top_layout_; - QVBoxLayout *scroll_layout_; + QVBoxLayout *local_scroll_layout_; + QVBoxLayout *all_scroll_layout_; - QScrollArea *scroll_area_; - QWidget *scroll_widget_; + QScrollArea *local_scroll_area_; + QWidget *local_scroll_widget_; + + QScrollArea *all_scroll_area_; + QWidget *all_scroll_widget_; }; } \ No newline at end of file -- GitLab