From 8390ff253d3688c3f76e3149d43d3120f9549359 Mon Sep 17 00:00:00 2001 From: Konstantinos Sideris Date: Sun, 15 Oct 2017 22:08:51 +0300 Subject: [PATCH] Fix icons for retina displays --- .clang-format | 1 - CMakeLists.txt | 2 + README.md | 1 + include/ChatPage.h | 2 + include/Config.h | 94 +++++++++--------- include/EmojiProvider.h | 3 +- include/MatrixClient.h | 3 +- include/RoomInfoListItem.h | 3 +- include/SideBarActions.h | 23 +++++ include/TimelineView.h | 9 +- include/Versions.h | 3 +- include/events/AliasesEventContent.h | 6 +- include/events/AvatarEventContent.h | 6 +- include/events/CanonicalAliasEventContent.h | 6 +- include/events/CreateEventContent.h | 6 +- include/events/Event.h | 7 +- .../events/HistoryVisibilityEventContent.h | 7 +- include/events/JoinRulesEventContent.h | 7 +- include/events/MemberEventContent.h | 7 +- include/events/MessageEvent.h | 10 +- include/events/MessageEventContent.h | 7 +- include/events/NameEventContent.h | 6 +- include/events/PowerLevelsEventContent.h | 7 +- include/events/RoomEvent.h | 6 +- include/events/StateEvent.h | 6 +- include/events/TopicEventContent.h | 6 +- include/events/messages/Audio.h | 10 +- include/events/messages/Emote.h | 9 +- include/events/messages/File.h | 10 +- include/events/messages/Image.h | 10 +- include/events/messages/Location.h | 10 +- include/events/messages/Notice.h | 9 +- include/events/messages/Text.h | 9 +- include/events/messages/Video.h | 10 +- include/ui/SnackBar.h | 3 +- include/ui/Theme.h | 53 ++++++++-- resources/icons/add-file.png | Bin 1124 -> 0 bytes resources/icons/clip-dark.png | Bin 1124 -> 0 bytes resources/icons/cog.png | Bin 952 -> 0 bytes resources/icons/emoji-categories/activity.png | Bin 659 -> 603 bytes resources/icons/emoji-categories/activity.svg | 25 ----- .../icons/emoji-categories/activity@2x.png | Bin 0 -> 1252 bytes .../icons/emoji-categories/diversity.svg | 30 ------ resources/icons/emoji-categories/flags.png | Bin 472 -> 416 bytes resources/icons/emoji-categories/flags.svg | 29 ------ resources/icons/emoji-categories/flags@2x.png | Bin 0 -> 824 bytes resources/icons/emoji-categories/foods.png | Bin 599 -> 537 bytes resources/icons/emoji-categories/foods.svg | 25 ----- resources/icons/emoji-categories/foods@2x.png | Bin 0 -> 1159 bytes resources/icons/emoji-categories/nature.png | Bin 725 -> 667 bytes resources/icons/emoji-categories/nature.svg | 36 ------- .../icons/emoji-categories/nature@2x.png | Bin 0 -> 1409 bytes resources/icons/emoji-categories/objects.png | Bin 640 -> 606 bytes resources/icons/emoji-categories/objects.svg | 30 ------ .../icons/emoji-categories/objects@2x.png | Bin 0 -> 1218 bytes resources/icons/emoji-categories/people.png | Bin 637 -> 581 bytes resources/icons/emoji-categories/people.svg | 37 ------- .../icons/emoji-categories/people@2x.png | Bin 0 -> 1222 bytes resources/icons/emoji-categories/recent.svg | 29 ------ resources/icons/emoji-categories/symbols.png | Bin 560 -> 504 bytes resources/icons/emoji-categories/symbols.svg | 46 --------- .../icons/emoji-categories/symbols@2x.png | Bin 0 -> 1001 bytes resources/icons/emoji-categories/travel.png | Bin 535 -> 439 bytes resources/icons/emoji-categories/travel.svg | 34 ------- .../icons/emoji-categories/travel@2x.png | Bin 0 -> 840 bytes resources/icons/emoji-categories/unicode9.svg | 30 ------ resources/icons/error.png | Bin 621 -> 0 bytes resources/icons/left-angle.png | Bin 225 -> 0 bytes resources/icons/left-chevron.png | Bin 590 -> 0 bytes resources/icons/plus-symbol.png | Bin 453 -> 0 bytes resources/icons/power-button-off.png | Bin 773 -> 0 bytes resources/icons/search.png | Bin 939 -> 0 bytes resources/icons/send-button.png | Bin 799 -> 0 bytes resources/icons/share-dark.png | Bin 799 -> 0 bytes resources/icons/smile.png | Bin 631 -> 0 bytes resources/icons/ui/add-square-button.png | Bin 0 -> 965 bytes resources/icons/ui/add-square-button@2x.png | Bin 0 -> 1386 bytes resources/icons/ui/angle-pointing-to-left.png | Bin 0 -> 663 bytes .../icons/ui/angle-pointing-to-left@2x.png | Bin 0 -> 877 bytes .../ui/cloud-storage-uploading-option.png | Bin 0 -> 1008 bytes .../ui/cloud-storage-uploading-option@2x.png | Bin 0 -> 1566 bytes resources/icons/ui/cursor.png | Bin 0 -> 811 bytes resources/icons/ui/cursor@2x.png | Bin 0 -> 1148 bytes resources/icons/ui/paper-clip-outline.png | Bin 0 -> 1121 bytes resources/icons/ui/paper-clip-outline@2x.png | Bin 0 -> 1852 bytes resources/icons/ui/plus-black-symbol.png | Bin 0 -> 735 bytes resources/icons/ui/plus-black-symbol@2x.png | Bin 0 -> 967 bytes resources/icons/ui/power-button-off.png | Bin 0 -> 1174 bytes resources/icons/ui/power-button-off@2x.png | Bin 0 -> 2044 bytes resources/icons/ui/settings.png | Bin 0 -> 1363 bytes resources/icons/ui/settings@2x.png | Bin 0 -> 2573 bytes resources/icons/ui/smile.png | Bin 0 -> 1317 bytes resources/icons/ui/smile@2x.png | Bin 0 -> 2536 bytes .../ui/speech-bubbles-comment-option.png | Bin 0 -> 1122 bytes .../ui/speech-bubbles-comment-option@2x.png | Bin 0 -> 1838 bytes resources/icons/ui/vertical-ellipsis.png | Bin 0 -> 830 bytes resources/icons/ui/vertical-ellipsis@2x.png | Bin 0 -> 1041 bytes resources/icons/user-shape.png | Bin 730 -> 0 bytes resources/icons/vertical-ellipsis.png | Bin 509 -> 0 bytes resources/login.png | Bin 0 -> 5523 bytes resources/login@2x.png | Bin 0 -> 11395 bytes resources/register.png | Bin 0 -> 5523 bytes resources/register@2x.png | Bin 0 -> 11395 bytes resources/res.qrc | 61 ++++++++---- resources/splash.png | Bin 0 -> 11395 bytes resources/splash@2x.png | Bin 0 -> 24776 bytes src/Cache.cc | 3 +- src/ChatPage.cc | 3 + src/Deserializable.cc | 3 +- src/EmojiPanel.cc | 26 +++-- src/EmojiPickButton.cc | 3 +- src/Login.cc | 3 +- src/LoginPage.cc | 10 +- src/MainWindow.cc | 4 +- src/QuickSwitcher.cc | 3 +- src/Register.cc | 3 +- src/RegisterPage.cc | 11 +- src/SideBarActions.cc | 65 ++++++++++++ src/TextInputWidget.cc | 13 +-- src/TopRoomBar.cc | 4 +- src/UserInfoWidget.cc | 8 +- src/WelcomePage.cc | 9 +- 122 files changed, 358 insertions(+), 602 deletions(-) create mode 100644 include/SideBarActions.h delete mode 100644 resources/icons/add-file.png delete mode 100644 resources/icons/clip-dark.png delete mode 100644 resources/icons/cog.png delete mode 100644 resources/icons/emoji-categories/activity.svg create mode 100644 resources/icons/emoji-categories/activity@2x.png delete mode 100755 resources/icons/emoji-categories/diversity.svg delete mode 100644 resources/icons/emoji-categories/flags.svg create mode 100644 resources/icons/emoji-categories/flags@2x.png delete mode 100644 resources/icons/emoji-categories/foods.svg create mode 100644 resources/icons/emoji-categories/foods@2x.png delete mode 100644 resources/icons/emoji-categories/nature.svg create mode 100644 resources/icons/emoji-categories/nature@2x.png delete mode 100644 resources/icons/emoji-categories/objects.svg create mode 100644 resources/icons/emoji-categories/objects@2x.png delete mode 100644 resources/icons/emoji-categories/people.svg create mode 100644 resources/icons/emoji-categories/people@2x.png delete mode 100644 resources/icons/emoji-categories/recent.svg delete mode 100644 resources/icons/emoji-categories/symbols.svg create mode 100644 resources/icons/emoji-categories/symbols@2x.png delete mode 100644 resources/icons/emoji-categories/travel.svg create mode 100644 resources/icons/emoji-categories/travel@2x.png delete mode 100755 resources/icons/emoji-categories/unicode9.svg delete mode 100644 resources/icons/error.png delete mode 100644 resources/icons/left-angle.png delete mode 100644 resources/icons/left-chevron.png delete mode 100644 resources/icons/plus-symbol.png delete mode 100644 resources/icons/power-button-off.png delete mode 100644 resources/icons/search.png delete mode 100644 resources/icons/send-button.png delete mode 100644 resources/icons/share-dark.png delete mode 100644 resources/icons/smile.png create mode 100644 resources/icons/ui/add-square-button.png create mode 100644 resources/icons/ui/add-square-button@2x.png create mode 100644 resources/icons/ui/angle-pointing-to-left.png create mode 100644 resources/icons/ui/angle-pointing-to-left@2x.png create mode 100644 resources/icons/ui/cloud-storage-uploading-option.png create mode 100644 resources/icons/ui/cloud-storage-uploading-option@2x.png create mode 100644 resources/icons/ui/cursor.png create mode 100644 resources/icons/ui/cursor@2x.png create mode 100644 resources/icons/ui/paper-clip-outline.png create mode 100644 resources/icons/ui/paper-clip-outline@2x.png create mode 100644 resources/icons/ui/plus-black-symbol.png create mode 100644 resources/icons/ui/plus-black-symbol@2x.png create mode 100644 resources/icons/ui/power-button-off.png create mode 100644 resources/icons/ui/power-button-off@2x.png create mode 100644 resources/icons/ui/settings.png create mode 100644 resources/icons/ui/settings@2x.png create mode 100644 resources/icons/ui/smile.png create mode 100644 resources/icons/ui/smile@2x.png create mode 100644 resources/icons/ui/speech-bubbles-comment-option.png create mode 100644 resources/icons/ui/speech-bubbles-comment-option@2x.png create mode 100644 resources/icons/ui/vertical-ellipsis.png create mode 100644 resources/icons/ui/vertical-ellipsis@2x.png delete mode 100644 resources/icons/user-shape.png delete mode 100644 resources/icons/vertical-ellipsis.png create mode 100644 resources/login.png create mode 100644 resources/login@2x.png create mode 100644 resources/register.png create mode 100644 resources/register@2x.png create mode 100644 resources/splash.png create mode 100644 resources/splash@2x.png create mode 100644 src/SideBarActions.cc diff --git a/.clang-format b/.clang-format index d5606cdf..42d7b6f7 100644 --- a/.clang-format +++ b/.clang-format @@ -5,7 +5,6 @@ AlignAfterOpenBracket: Align AlignConsecutiveAssignments: true AllowShortFunctionsOnASingleLine: Empty BasedOnStyle: Mozilla -BreakBeforeBraces: Linux ColumnLimit: 100 IndentCaseLabels: false IndentWidth: 8 diff --git a/CMakeLists.txt b/CMakeLists.txt index 6415b912..22673e66 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -151,6 +151,7 @@ set(SRC_FILES src/RoomList.cc src/RoomMessages.cc src/RoomState.cc + src/SideBarActions.cc src/Splitter.cc src/Sync.cc src/TextInputWidget.cc @@ -233,6 +234,7 @@ qt5_wrap_cpp(MOC_HEADERS include/RegisterPage.h include/RoomInfoListItem.h include/RoomList.h + include/SideBarActions.h include/Splitter.h include/TextInputWidget.h include/TimelineItem.h diff --git a/README.md b/README.md index 83ebad72..26356ef6 100644 --- a/README.md +++ b/README.md @@ -139,6 +139,7 @@ Here is a screen shot to get a feel for the UI, but things will probably change. ### Third party - [Emoji One](http://emojione.com) +- [Font Awesome](http://fontawesome.io/) - [Open Sans](https://fonts.google.com/specimen/Open+Sans) [Matrix]:https://matrix.org diff --git a/include/ChatPage.h b/include/ChatPage.h index 04464bc5..be8fc12c 100644 --- a/include/ChatPage.h +++ b/include/ChatPage.h @@ -27,6 +27,7 @@ #include "RoomList.h" #include "RoomSettings.h" #include "RoomState.h" +#include "SideBarActions.h" #include "Splitter.h" #include "TextInputWidget.h" #include "TimelineViewManager.h" @@ -96,6 +97,7 @@ private: RoomList *room_list_; TimelineViewManager *view_manager_; + SideBarActions *sidebarActions_; TopRoomBar *top_bar_; TextInputWidget *text_input_; diff --git a/include/Config.h b/include/Config.h index 2412a4d0..b5e876c0 100644 --- a/include/Config.h +++ b/include/Config.h @@ -4,72 +4,70 @@ // // Font sizes are in pixels. -namespace conf -{ +namespace conf { // Global settings. -static const int fontSize = 12; -static const int textInputFontSize = 14; -static const int emojiSize = 14; -static const int headerFontSize = 21; -static const int typingNotificationFontSize = 11; +static constexpr int fontSize = 12; +static constexpr int textInputFontSize = 14; +static constexpr int emojiSize = 14; +static constexpr int headerFontSize = 21; +static constexpr int typingNotificationFontSize = 11; // Window geometry. -namespace window -{ -static const int height = 600; -static const int width = 1066; +namespace window { +static constexpr int height = 600; +static constexpr int width = 1066; -static const int minHeight = 600; -static const int minWidth = 950; +static constexpr int minHeight = height; +static constexpr int minWidth = 950; +} // namespace window + +namespace textInput { +static constexpr int height = 50; +} + +namespace sidebarActions { +static constexpr int height = textInput::height; +static constexpr int iconSize = 28; } // Button settings. -namespace btn -{ -static const int fontSize = 20; -static const int cornerRadius = 3; -} +namespace btn { +static constexpr int fontSize = 20; +static constexpr int cornerRadius = 3; +} // namespace btn // RoomList specific. -namespace roomlist -{ -namespace fonts -{ -static const int heading = 13; -static const int badge = 10; -static const int bubble = 20; +namespace roomlist { +namespace fonts { +static constexpr int heading = 13; +static constexpr int badge = 10; +static constexpr int bubble = 20; } // namespace fonts } // namespace roomlist -namespace userInfoWidget -{ -namespace fonts -{ -static const int displayName = 16; -static const int userid = 14; +namespace userInfoWidget { +namespace fonts { +static constexpr int displayName = 16; +static constexpr int userid = 14; } // namespace fonts } // namespace userInfoWidget -namespace topRoomBar -{ -namespace fonts -{ -static const int roomName = 15; -static const int roomDescription = 13; +namespace topRoomBar { +namespace fonts { +static constexpr int roomName = 15; +static constexpr int roomDescription = 13; } // namespace fonts } // namespace topRoomBar -namespace timeline -{ -static const int msgMargin = 11; -static const int avatarSize = 36; -static const int headerSpacing = 5; -static const int headerLeftMargin = 15; +namespace timeline { +static constexpr int msgMargin = 11; +static constexpr int avatarSize = 36; +static constexpr int headerSpacing = 5; +static constexpr int headerLeftMargin = 15; -namespace fonts -{ -static const int timestamp = 9; -} -} +namespace fonts { +static constexpr int timestamp = 9; +} // namespace fonts +} // namespace timeline } // namespace conf diff --git a/include/EmojiProvider.h b/include/EmojiProvider.h index 5b6f7c88..3f91f2b3 100644 --- a/include/EmojiProvider.h +++ b/include/EmojiProvider.h @@ -21,7 +21,8 @@ #include #include -struct Emoji { +struct Emoji +{ // Unicode code. QString unicode; // Keyboard shortcut e.g :emoji: diff --git a/include/MatrixClient.h b/include/MatrixClient.h index 927fe3a6..01e2c319 100644 --- a/include/MatrixClient.h +++ b/include/MatrixClient.h @@ -104,7 +104,8 @@ private slots: void onResponse(QNetworkReply *reply); private: - enum class Endpoint { + enum class Endpoint + { GetOwnAvatar, GetOwnProfile, GetProfile, diff --git a/include/RoomInfoListItem.h b/include/RoomInfoListItem.h index 03023038..d7009a85 100644 --- a/include/RoomInfoListItem.h +++ b/include/RoomInfoListItem.h @@ -26,7 +26,8 @@ #include "RoomSettings.h" #include "RoomState.h" -struct DescInfo { +struct DescInfo +{ QString username; QString userid; QString body; diff --git a/include/SideBarActions.h b/include/SideBarActions.h new file mode 100644 index 00000000..60975a03 --- /dev/null +++ b/include/SideBarActions.h @@ -0,0 +1,23 @@ +#include +#include + +#include + +class SideBarActions : public QWidget +{ + Q_OBJECT + +public: + SideBarActions(QWidget *parent = nullptr); + ~SideBarActions(); + +protected: + void resizeEvent(QResizeEvent *event) override; + +private: + QHBoxLayout *layout_; + + FlatButton *settingsBtn_; + FlatButton *createRoomBtn_; + FlatButton *joinRoomBtn_; +}; diff --git a/include/TimelineView.h b/include/TimelineView.h index da73b00a..6ca91211 100644 --- a/include/TimelineView.h +++ b/include/TimelineView.h @@ -39,7 +39,8 @@ namespace events = matrix::events; // Contains info about a message shown in the history view // but not yet confirmed by the homeserver through sync. -struct PendingMessage { +struct PendingMessage +{ int txn_id; QString body; QString event_id; @@ -50,12 +51,12 @@ struct PendingMessage { , body(body) , event_id(event_id) , widget(widget) - { - } + {} }; // In which place new TimelineItems should be inserted. -enum class TimelineDirection { +enum class TimelineDirection +{ Top, Bottom, }; diff --git a/include/Versions.h b/include/Versions.h index 62584eb7..31d8af82 100644 --- a/include/Versions.h +++ b/include/Versions.h @@ -30,7 +30,8 @@ public: bool isVersionSupported(unsigned int major, unsigned int minor, unsigned int patch); private: - struct Version_ { + struct Version_ + { unsigned int major_; unsigned int minor_; unsigned int patch_; diff --git a/include/events/AliasesEventContent.h b/include/events/AliasesEventContent.h index a60da9e8..49e51275 100644 --- a/include/events/AliasesEventContent.h +++ b/include/events/AliasesEventContent.h @@ -22,10 +22,8 @@ #include "Deserializable.h" -namespace matrix -{ -namespace events -{ +namespace matrix { +namespace events { class AliasesEventContent : public Deserializable , public Serializable diff --git a/include/events/AvatarEventContent.h b/include/events/AvatarEventContent.h index d46f0420..98e2f12d 100644 --- a/include/events/AvatarEventContent.h +++ b/include/events/AvatarEventContent.h @@ -22,10 +22,8 @@ #include "Deserializable.h" -namespace matrix -{ -namespace events -{ +namespace matrix { +namespace events { /* * A picture that is associated with the room. */ diff --git a/include/events/CanonicalAliasEventContent.h b/include/events/CanonicalAliasEventContent.h index 210e4a34..9c961d42 100644 --- a/include/events/CanonicalAliasEventContent.h +++ b/include/events/CanonicalAliasEventContent.h @@ -22,10 +22,8 @@ #include "CanonicalAliasEventContent.h" #include "Deserializable.h" -namespace matrix -{ -namespace events -{ +namespace matrix { +namespace events { /* * This event is used to inform the room about which alias should be considered * the canonical one. This could be for display purposes or as suggestion to diff --git a/include/events/CreateEventContent.h b/include/events/CreateEventContent.h index 7db2d367..8edc4d24 100644 --- a/include/events/CreateEventContent.h +++ b/include/events/CreateEventContent.h @@ -21,10 +21,8 @@ #include "Deserializable.h" -namespace matrix -{ -namespace events -{ +namespace matrix { +namespace events { /* * This is the first event in a room and cannot be changed. It acts as the root * of all other events. diff --git a/include/events/Event.h b/include/events/Event.h index c6d2da2f..43ab4cc6 100644 --- a/include/events/Event.h +++ b/include/events/Event.h @@ -22,11 +22,10 @@ #include "Deserializable.h" -namespace matrix +namespace matrix { +namespace events { +enum class EventType { -namespace events -{ -enum class EventType { /// m.room.aliases RoomAliases, /// m.room.avatar diff --git a/include/events/HistoryVisibilityEventContent.h b/include/events/HistoryVisibilityEventContent.h index 53405087..94563d55 100644 --- a/include/events/HistoryVisibilityEventContent.h +++ b/include/events/HistoryVisibilityEventContent.h @@ -21,11 +21,10 @@ #include "Deserializable.h" -namespace matrix +namespace matrix { +namespace events { +enum class HistoryVisibility { -namespace events -{ -enum class HistoryVisibility { Invited, Joined, Shared, diff --git a/include/events/JoinRulesEventContent.h b/include/events/JoinRulesEventContent.h index 738be9d3..b9b6848d 100644 --- a/include/events/JoinRulesEventContent.h +++ b/include/events/JoinRulesEventContent.h @@ -21,11 +21,10 @@ #include "Deserializable.h" -namespace matrix +namespace matrix { +namespace events { +enum class JoinRule { -namespace events -{ -enum class JoinRule { // A user who wishes to join the room must first receive // an invite to the room from someone already inside of the room. Invite, diff --git a/include/events/MemberEventContent.h b/include/events/MemberEventContent.h index 5af19218..1dd703a0 100644 --- a/include/events/MemberEventContent.h +++ b/include/events/MemberEventContent.h @@ -22,11 +22,10 @@ #include "Deserializable.h" -namespace matrix +namespace matrix { +namespace events { +enum class Membership { -namespace events -{ -enum class Membership { // The user is banned. Ban, diff --git a/include/events/MessageEvent.h b/include/events/MessageEvent.h index 1b105d62..7e7493e7 100644 --- a/include/events/MessageEvent.h +++ b/include/events/MessageEvent.h @@ -20,10 +20,8 @@ #include "MessageEventContent.h" #include "RoomEvent.h" -namespace matrix -{ -namespace events -{ +namespace matrix { +namespace events { template class MessageEvent : public RoomEvent { @@ -52,9 +50,9 @@ MessageEvent::deserialize(const QJsonValue &data) msg_content_.deserialize(data.toObject().value("content").toObject()); } -namespace messages +namespace messages { +struct ThumbnailInfo { -struct ThumbnailInfo { int h; int w; int size; diff --git a/include/events/MessageEventContent.h b/include/events/MessageEventContent.h index 90f6cfaf..c096f155 100644 --- a/include/events/MessageEventContent.h +++ b/include/events/MessageEventContent.h @@ -21,11 +21,10 @@ #include "Deserializable.h" -namespace matrix +namespace matrix { +namespace events { +enum class MessageEventType { -namespace events -{ -enum class MessageEventType { // m.audio Audio, diff --git a/include/events/NameEventContent.h b/include/events/NameEventContent.h index d2cf86da..413c28cb 100644 --- a/include/events/NameEventContent.h +++ b/include/events/NameEventContent.h @@ -21,10 +21,8 @@ #include "Deserializable.h" -namespace matrix -{ -namespace events -{ +namespace matrix { +namespace events { /* * A human-friendly room name designed to be displayed to the end-user. */ diff --git a/include/events/PowerLevelsEventContent.h b/include/events/PowerLevelsEventContent.h index 7cfeadf1..04afa473 100644 --- a/include/events/PowerLevelsEventContent.h +++ b/include/events/PowerLevelsEventContent.h @@ -22,11 +22,10 @@ #include "Deserializable.h" -namespace matrix +namespace matrix { +namespace events { +enum class PowerLevels { -namespace events -{ -enum class PowerLevels { User = 0, Moderator = 50, Admin = 100, diff --git a/include/events/RoomEvent.h b/include/events/RoomEvent.h index 540fafaf..a1e88807 100644 --- a/include/events/RoomEvent.h +++ b/include/events/RoomEvent.h @@ -22,10 +22,8 @@ #include "Event.h" -namespace matrix -{ -namespace events -{ +namespace matrix { +namespace events { template class RoomEvent : public Event { diff --git a/include/events/StateEvent.h b/include/events/StateEvent.h index 75bf1bbb..146e96bd 100644 --- a/include/events/StateEvent.h +++ b/include/events/StateEvent.h @@ -21,10 +21,8 @@ #include "RoomEvent.h" -namespace matrix -{ -namespace events -{ +namespace matrix { +namespace events { template class StateEvent : public RoomEvent { diff --git a/include/events/TopicEventContent.h b/include/events/TopicEventContent.h index b6c376e7..d059e489 100644 --- a/include/events/TopicEventContent.h +++ b/include/events/TopicEventContent.h @@ -21,10 +21,8 @@ #include "Deserializable.h" -namespace matrix -{ -namespace events -{ +namespace matrix { +namespace events { /* * A topic is a short message detailing what is currently being discussed in the * room. diff --git a/include/events/messages/Audio.h b/include/events/messages/Audio.h index 41bc2496..8abdf7f2 100644 --- a/include/events/messages/Audio.h +++ b/include/events/messages/Audio.h @@ -21,13 +21,11 @@ #include "Deserializable.h" -namespace matrix +namespace matrix { +namespace events { +namespace messages { +struct AudioInfo { -namespace events -{ -namespace messages -{ -struct AudioInfo { uint64_t duration; int size; diff --git a/include/events/messages/Emote.h b/include/events/messages/Emote.h index 98d049e7..a11b7c8d 100644 --- a/include/events/messages/Emote.h +++ b/include/events/messages/Emote.h @@ -21,12 +21,9 @@ #include "Deserializable.h" -namespace matrix -{ -namespace events -{ -namespace messages -{ +namespace matrix { +namespace events { +namespace messages { class Emote : public Deserializable { public: diff --git a/include/events/messages/File.h b/include/events/messages/File.h index a4e8b6a4..ff5eb0a6 100644 --- a/include/events/messages/File.h +++ b/include/events/messages/File.h @@ -22,13 +22,11 @@ #include "Deserializable.h" #include "MessageEvent.h" -namespace matrix +namespace matrix { +namespace events { +namespace messages { +struct FileInfo { -namespace events -{ -namespace messages -{ -struct FileInfo { int size; QString mimetype; diff --git a/include/events/messages/Image.h b/include/events/messages/Image.h index 93a598e2..14889ff1 100644 --- a/include/events/messages/Image.h +++ b/include/events/messages/Image.h @@ -22,13 +22,11 @@ #include "Deserializable.h" #include "MessageEvent.h" -namespace matrix +namespace matrix { +namespace events { +namespace messages { +struct ImageInfo { -namespace events -{ -namespace messages -{ -struct ImageInfo { int h; int w; int size; diff --git a/include/events/messages/Location.h b/include/events/messages/Location.h index 4b523878..e51c6799 100644 --- a/include/events/messages/Location.h +++ b/include/events/messages/Location.h @@ -22,13 +22,11 @@ #include "Deserializable.h" #include "MessageEvent.h" -namespace matrix +namespace matrix { +namespace events { +namespace messages { +struct LocationInfo { -namespace events -{ -namespace messages -{ -struct LocationInfo { QString thumbnail_url; ThumbnailInfo thumbnail_info; }; diff --git a/include/events/messages/Notice.h b/include/events/messages/Notice.h index b303dd79..66f4386d 100644 --- a/include/events/messages/Notice.h +++ b/include/events/messages/Notice.h @@ -21,12 +21,9 @@ #include "Deserializable.h" -namespace matrix -{ -namespace events -{ -namespace messages -{ +namespace matrix { +namespace events { +namespace messages { class Notice : public Deserializable { public: diff --git a/include/events/messages/Text.h b/include/events/messages/Text.h index 2c787d04..c3182dc5 100644 --- a/include/events/messages/Text.h +++ b/include/events/messages/Text.h @@ -21,12 +21,9 @@ #include "Deserializable.h" -namespace matrix -{ -namespace events -{ -namespace messages -{ +namespace matrix { +namespace events { +namespace messages { class Text : public Deserializable { public: diff --git a/include/events/messages/Video.h b/include/events/messages/Video.h index 37056c27..d167b8c1 100644 --- a/include/events/messages/Video.h +++ b/include/events/messages/Video.h @@ -22,13 +22,11 @@ #include "Deserializable.h" #include "MessageEvent.h" -namespace matrix +namespace matrix { +namespace events { +namespace messages { +struct VideoInfo { -namespace events -{ -namespace messages -{ -struct VideoInfo { int h; int w; int size; diff --git a/include/ui/SnackBar.h b/include/ui/SnackBar.h index 076b7105..8a35c327 100644 --- a/include/ui/SnackBar.h +++ b/include/ui/SnackBar.h @@ -7,7 +7,8 @@ #include "OverlayWidget.h" -enum class SnackBarPosition { +enum class SnackBarPosition +{ Bottom, Top, }; diff --git a/include/ui/Theme.h b/include/ui/Theme.h index c2e809e5..c6c39553 100644 --- a/include/ui/Theme.h +++ b/include/ui/Theme.h @@ -4,12 +4,15 @@ #include #include -namespace ui +namespace ui { +enum class AvatarType { -enum class AvatarType { Icon, Image, Letter }; + Icon, + Image, + Letter +}; -namespace sidebar -{ +namespace sidebar { static const int SmallSize = 60; static const int NormalSize = 300; } @@ -19,19 +22,47 @@ 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 { +enum class Color +{ Black, BrightWhite, FadedWhite, diff --git a/resources/icons/add-file.png b/resources/icons/add-file.png deleted file mode 100644 index 806b166d26789b0a6d3ac9caf1c7383ba74a3aab..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1124 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE3?yBabR7dyEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+0817l2pPlzi}!T+mS|F5V0 zy`J_DicHjZf{=bn5kp)V@l%@T@n(_Zy22}i7>i;uo|8Ie` z0MY;b4IuIw(5STk*Fl2+|2O=<3N$nI|8=n7<*fhr6aHTVE54ZyvJqrmI#3p*=33hS z^9lcMr2PXjfW}@;{|6NR&j51dwY0xLaiD<^^+5KGwEuU3YLbD1An~g}sq}wf2mim3 z^#58qhzl|q=pLYBK<@v46RZ;GJCJ+Q|KH99+Xb{2EPFc_qU--Pu*+{Jf;8Sp2ignv z4$y@lH~haE3N{&L6g2dJR)9o+0UK+@_yI^2l?3?(Gw>8IzxnaVBu}UNO9b=(9awht z?^8paAAg!zHBY}~IU6z0crBAblFvk04#_wAy^1?3qXPsUZR66~&)9x##W%gZrF-~Q z9>11L-1U=iEM7~ z0ou-(%tiFY)wsWq-&l&BQLzcUQ;^sK?jS z#WBR<^wP`W;Y@}CtPcVm*R1I7QiwRfWag40Dk{h-ofP>-v^xL$fBPLL-vu%2pL2e8 z?&Nn9OU0zn;OKOt>(NpxoJ`FeS3eVbSi4%(VEfi`kA}6u1^2J=R`)yeo{KvWs&}W> zVZR)^OOn6`iJPa71aL~QxviKb!CF)GrN7Y7E|5j7QB$sl(K_bxJ0n4svXgF0X9PSQYLgyCg5MT~yn)%~K~RA&K2%H}}!J zxHl`4;>{S@Lt7^WmPctk3en-)Ss?L9qu57jqFKxTB^8e?3ug(3=mq)A`RhN&xbWfC zmUgXt)x7$D3zhSyj(9cFS|H7u^?41zbJk7I~ysWA_h-aKbLh*2~7ac(-?99 diff --git a/resources/icons/clip-dark.png b/resources/icons/clip-dark.png deleted file mode 100644 index c3c34fac97ec4ed2bfe112bf8f67c6ee9f70b810..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1124 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE3?yBabR7dyEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+0817l2pPlzi}L1$UaPW4Mp4opslbJNn&z*<1M92y#ciUX5V z1C!DMK<1=107X*4BB`nVNh$t`i3te_L1}3L$ti(J=|C;MKxIiFHw1#nw19*J5D64d zOY=_zDF8YZs1e8jiKnFcfz=0sL{dW2(twTuOM%scT@K{>B_%<$1g50=C!_@c6@#q^ z2AT=97i%~DXlQ6)aypO; z(hKq?NDyQZ*x5kWetIbp2&9Tig8YIRc#4o>%1uanJV-$S>CS5KluHn;ZxZD&mKc6VXu zV3qX%aySb-B8!2^={g8AI%&+V01C2~c>21sKV+5`U}Ee@wpE-Zn zCPM+%2Z4@jR&;kML>yo;b4d{u6=ao8ihLtlo&Wv6{f?9Gf|&KsIX^ph^1F$pVp3>u zbh^>?XsH!Wre=<-pNT!JT`g*`eQUW#!`k42`&W6Z`<;2u#T^LMyHo41Uyj`+N#KLT z&C^E$I3?KJR?L!Mt*QFbUub9-$fDM$DOba29dr4ekswQ21pnDjp)F5?4B5}PU)jf? zqvzVlAbz@1pp#KMt6zDSS2ky?3ipv+l9$*ns%_imsS}it#O|@1`)FR=o0UoNW{m8i zt&;-Fqck3c={&)yzj; zD(j|x;FX^fn3CUmNa9^X^(r-y2aPRCE9{LwcsM0qKO+3WCrNSdo=M-&vaNoxxUlif z@Aj%FkC^$KZ}pcyZ+t)hgMN2?%K0`2k$eV2U|6e`xJHzuB$lLFB^RXvDF!10 zLvvjNV_hTj5JNL710yQ~Lv0XgupnrWEsBQR{FKbJO57SQ@=G-WHAsSN2+mI{DNig) lWhgH%*UQYyE>2D?NY%?PN}v7CMhd8i!PC{xWt~$(695QKmJI*^ diff --git a/resources/icons/cog.png b/resources/icons/cog.png deleted file mode 100644 index 8431116658c829aa8cdb70b8d236bf2050587ba5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 952 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE0wix1Z>k4UEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10f+@+{-GzZ+Rj;xUkjGiz z5m^kh={g8AI%&+V01C2~c>21sKV+5`;IeMpmL(3<)aL2p7~*k!>Qrxk;Xsk&|Cj47 zGjqza4%X&4=3c3yakXRDVS&pZ7(IMC+@|ID#$-G?cKq7Z_yfnU?d_BnU%|-|)M@&3 zXM@m^;{0f3#?CFpF(p=Ka?_iN(+!``ss6XW`q{ai#w`6CMKgbQDW1N0=l$D%kLQVh zVA{faqv(N8#Q|-9#)1iCZ#ROLngbJfitKvG`%M ztg7?|(ah5iW&ZT8DeLvg=4Wcz;BP6gQeTdt;fdaT$E(w8^ey~Mk4Jm>Jf0|T>wC25 zlp0gRjf|VSWK$TIT)Zd}f3aG6*w z>bap*$*Ja-H;yfgez&sru;=kVI`=LctvwRvDRCioUSUx6Vz(!?b#FIGzE-)Rx@WQL z$q;9m3HvYHoAs(rYV+Bm2A`C>LAL#$|MQhQ%vx!Aq-BeB!d=x{it4kRixw@FW^fRY z*N%S@=a(pRT~^qAkK4J6>~W8dUMSxkVtHmW*KQ~NNAFLt%y_~Qry0wzYvtL9X^Us2 zE}6ykCF^O^z2wDjxZZt?mY@AUpnfI8sphScE;S6RY-Y{a#watzewN)L_x|}?LyERv zWcR7BJ=It{nUUKe?W@_RzLSeqFL|(m_gu-ln+yt>A2g;hFsSXluLwYP^+H00)|WTsW( z){tKv3d&`YARB`7(@M${i&7cN%ggmL^RkPR6AM!H@{7`Ezq647Dq`?-^>bP0l+XkK DXjYA7 diff --git a/resources/icons/emoji-categories/activity.png b/resources/icons/emoji-categories/activity.png index 7824765df3367cf29e0e49a292d28f45ae06ba1a..2d360762371055915dc0970ede31c7f152cee525 100644 GIT binary patch delta 26 fcmbQtdYff}3O`$tx4R3&e-K=-clqRv*&0j$f6xk3 delta 82 zcmcc3GMROPiaSfOlV=DA5Y%v_bTBY5a29w(7BevLodRJ-!$nR{fr64Ht`Q}{`DrEP hiAAXl<>lpinR(g8$%zH2dih1^v)|cBZ8X+k0sx)(7`^}i diff --git a/resources/icons/emoji-categories/activity.svg b/resources/icons/emoji-categories/activity.svg deleted file mode 100644 index d3d713e9..00000000 --- a/resources/icons/emoji-categories/activity.svg +++ /dev/null @@ -1,25 +0,0 @@ - -image/svg+xml \ No newline at end of file diff --git a/resources/icons/emoji-categories/activity@2x.png b/resources/icons/emoji-categories/activity@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..d8f8871158c09a0933db139e1e2b712a745e568b GIT binary patch literal 1252 zcmVczl8EvrsQ4sm;*Z2fcmrCXKKKiPqG?nDMN3;EB==r@m|fX^cV>2a zcT37QnTOf)J!j6D-8(bq%&kxk76DHHtAQS12~Y#>h~-nj6<`GT88{9c0WOv_eoLqU z+khe9-xk{-ur;=I%g_lN1g;fuT-y}z0kC*B9iI=p227UdxVCG++rWado$m&|^9XobLjCKEX*q#736m|Y3pl&h# zH?SS3dUW#wNKlP!jazi;z(5h_U9WgkfPQEI2{w7gn{g2R*k?XzCxJ?d0aP%*A=h|y zV120b-DJP{>p(-EJy&7?I{S@yO#MwP%X7X;cC~2&&jW|$`Cy3woD}Y-@tC?&oyIKZ zPVBS{ygQaHC;Jv2Eg^u%gx3I8#IiRnc3yWGT8!Bd)8x;D^R>u7Dj|SF!uv8Ms{mh! zd=lue89Hbob_(Zd;amq676{-jvfuiX!s#MAu?N&pjqKTGhh@Ndz^}sFSRjDS!WjV~ z3vZY3rjP^RRw0by-lX;m*Yz2N1fZYKJ_oNF`;_KxNfY!)ywhO_;Bnzz#=M!C1~3m8 z6V6)CxNiveL?Y;5`f}C4f2?i8Bqw>RQC2FApHjebaeMV6JZLiY4imcS}y(J03C(us7)LC zq<;)dWmykNn#iQl2K>bwIm{)(K{2+=V@QwFmmC9^eVpDc++%Pv`#B`!S8#7`Pf7n< z{HI748nLd=c7iJKvON1F-KmkyJ8enLY^RhLu&0#UgqKMv!PMuK)Fqr}g!2z@XMq3~ zl1=LMEwq#U)ZVihvz1jo7tS{#|Ip!BXaE2o3-7Cxtb!@+q~#Nsg~y5=mVteREng-U z8o+AdHMzOtzGbnq-D8XSnDU((w3QZ5IBd)`0LT^<4g)WcEiIlRr?d#>W@JJXZN=UG z5(C&MTw8JXD%s@Ai4FM6>qC@ZUe^L|y48VaL!D1B;4yeBFF2aOi!=27e+*!M6XTdF zvF|o9G=K%ME!P!O%g!fQPxd#Fw2QzyWcQ1Z0J?xZu??H;tF-XhxUh`u>ZENLco(x` z*{)ev#j^eQuWXamCin*%iZ;wex9e?`(UObqSuHYj0PmCCwTrYVOwHf9!_Ee3m=gDK z{I~9|*2El%U!_1@DsL?hMLVz#lce-u%7*ta{qHuHF{jP+-)$}x9r!<%2l9@IU}o3= O0000 - - - - - image/svg+xml - - - - - - - - diff --git a/resources/icons/emoji-categories/flags.png b/resources/icons/emoji-categories/flags.png index 47f68375033f2a7b3223c9d65fc1e778b8a99deb..9a52000fd1562d9acaad273c80ff6da9181ffe3a 100644 GIT binary patch delta 26 fcmcb?ynuOv3O`$tx4R3&e-K=-clqRv*}04Wfr<*A delta 82 zcmZ3$e1my{iaSfOlV=DA5Y%v_bTBY5a29w(7BevLodRJ-!$nR{fr64Ht`Q}{`DrEP hiAAXl<>lpinR(g8$%zH2dih1^v)|cBZ8Xkh1OT8s83_OY diff --git a/resources/icons/emoji-categories/flags.svg b/resources/icons/emoji-categories/flags.svg deleted file mode 100644 index bc9ec6fd..00000000 --- a/resources/icons/emoji-categories/flags.svg +++ /dev/null @@ -1,29 +0,0 @@ - -image/svg+xml \ No newline at end of file diff --git a/resources/icons/emoji-categories/flags@2x.png b/resources/icons/emoji-categories/flags@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..45350593bd9a1e8ba65706e64aa0a5a67fb4d08a GIT binary patch literal 824 zcmV-81IPS{P)e=x;Cj~xkEli;5&h+i~|G0GR7_73-C!? zI{|DK^0P7y449~5k;k~(IxchpeoJVfOyI5VXTLJ~+#Om!QgDm`D`KsH5^Pp_qR=pkok8o@Aq|gOQw*qV};VYy<9wfM;7QL?Y zx*voke2oIj_Ffoff(PzdX=& zK1iR6i^}Mx(l?3+x`ZI!wpAhP03#)9eIAtNL0SUef%if_LVVOrFcdtvi@R-Sg)U$S zcyL}B-Bx$K^qt=j6UT$Vy-dcqin;z)m4=^f@_`2U!V#drI2` z92as_C@ecdC2N0LpNez1b$7?;+|nlw0Ix}}|3%=kns0h9(%26C5e9FK3Ct)*(?Zt< zt`a}F(t@7__GGNvQFEs(!Mqd(tH3UU&6IMKlw#hyt}(4_W-JNZQbrdHHi5EP2Ch-; zu1kc<&eRXiD5HB8BmDP?|2*jT6asib{2Wf8`#}~Wh)uy6o+d7xjm zYJ)X_NXcQfVfe=u;3w;4G~a)EGw~GnX|%82aAH_X2zr0TX#@|-Bw&55XbjrKe?>@2 z=wrR%6vGo-9_+6-oO~q&4dg-D1cs6aOXNHi`NTgnB%_-)bqp5(0000_7&KZsuEZ;CDVhk6=jRxy&B>r^-AD~t+alTT+!(fikDr;{A@Lcu< z^D0b+va-Si1HqgiUGof!Don6AnBQvBd54|~6XdL!8eWC6y21oG>vauxLaA4nAV0>p zVMto9Pw1-v-WRM4YjfkxFr2C&!RcU)w;P9~>phE2|9Ao47>owibUKel<|(ZD2l#Tl z560m?1$5&^1iXS;61lI(RB!2{RLP=Bz2nYy#2xN!=000SaNLh0L01nCk01nClF``1{0000P zbVXQnQ*UN;cVTj60C#tHE@^ISb7Ns}WiD@WXPfRk8UO$R)Ja4^R7i=f)jwzyQ4j|3 zpXZ+gFNK0tP_T$%v=OyRu(6XgQ4z%|1TAbW#7+?{jACaav469%QV}s|rwBGy(SS${ zA|#@PL{zvW-dgM|w_eP0Yj$9GJM(6~@4eYK?@=tLFok)XD~MYYT1u`W>Chv&`2)Cv z4`||b8Sp~^*u)4x434rkyEe2$4r1?3yY`_SQnxGRD62^-;TI9{Swkl3x% z@G3CR(B9Ta1>l*CY9DDI!|1D!U}s=X!>=$J6%zCW=6}zcv}s^Ng#;N^vxb>4c2`KS zC&rl?o`$ikIaVP@V|)htr1koSO%;G|4y*)wGv`D&#wsAV9$1g_&i&H%Uc$gCzy|_j zQEv5_Tn^@0Z2u4Nt -image/svg+xml \ No newline at end of file diff --git a/resources/icons/emoji-categories/foods@2x.png b/resources/icons/emoji-categories/foods@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..bbdd2a3c82555a12f008c7d0509bf268abb0b052 GIT binary patch literal 1159 zcmV;21bF+2P)gb=8RefKJFqXtD+2&; z$1=>p_;x|3wJrkKg9VYztFo;WgYOXrd94cQwB`!UoQCPc%b1kdEK=M}wqtUY(6N@u z2RneLaUuR2z@|q&e5V#$qs*dF6Z+^Pp+8Sm++X_y*v_21yYV4z#U+@L)HOOO*Mpz1 z0q^0Xq^_1!!|lS9R%YHWvo5SlyF$y&qn}-N|DAER;QWpL)VPjTQVV~?^ z9!xr{am(~zUL*LK@;7LQgoS7^PDfW_KNiz)KfY`Ncnj`J%8pIy>PqTfocPMyYV>0E zK=3Ew$DBfM;mk&FF7(p}aIgUUAeJgOMf@wu@_nrd#)%UA$6+<JqK&HQ@!)8c{V> z6N*3Xp_-%_Qkqy1Oe>lYJ@2bI8v5wh%!*)IQOvfZCTwlfT38WGE4nUv-U8Rkj_fYS zo<_>z()E&J>&D~%vrLBhN~(DEYf`0^T7GB z(fY{fQx#k`lu!pgQO~wM&v3eIq~YFb7z?#THi9u@AmcY8<6h+s^zG6avQd)NMFl1a z(`dTDCd0Eo8Yyg_<0*bpQ6a)DV|>70rP}e(Aw;}mj$6uBurjCc@*&3@SWo8o&xBHn zG)_1?#Fadzy)Ds!$8-E{)51CBH0;c&>@|#P0;uc@j}pFe>~AMdElnNi93iM0SGrm8 zu63Gl0RKBl@8H}5`&sxr$Iou{mxwLt0{PME!$LUndLimIL0C(c3b!?}{Q)5eJUy}P zPRg#8AL;&G&T8ALrU?HJ5j$yD+A14t7_>&?InCX$G@JSoAESpFKCL;z;?@Xezi>Tt z2mUHyzfrh1Yf6Ke5-$=iBjyRS#0X)f+=cgrh3L1$wi|ch%H;3y!cFEc!bRR1VGuX1 Z{{f*}bJ&R$|GWSI002ovPDHLkV1jAZKV1L- literal 0 HcmV?d00001 diff --git a/resources/icons/emoji-categories/nature.png b/resources/icons/emoji-categories/nature.png index 7a131ba25a8b92eefcc4d2dba35ad9c44bc19040..eb1786cf16e521f25c6907b130fda9cfa24bedfc 100644 GIT binary patch delta 642 zcmV-|0)73}1)BwsB!32COGiWi{{a60|De66lK=n$P)S5VR7i=f)ys>IQ5XmCk83Cs z3dy7l7OdS98c{B}Wh40ml+_q3D`i|4ZV4M@ZBQf&MIvG0wn36I6f#Ec_n*aiUcYxv zzhM~PI=%06`##UPJm*kFA2g#4FR>SO{*1xc6ETm`gxehiYs%NM2Aae78HR-JXy~@X?GWaKabw6A(5o8>df{Tk zYzSRr$T#412!BQPt06D$26=&{5pyNvVIg;r*1m%NQB9F>#9t&B88NSeV_?W%Nhhb6 z!K(PbAAwu(4lOlEbK8T6U5U~0{|+98&?uen3f4u?+mPSXNRZpshumH&^Z^`KU9SpG zscvpd5N)ZEAh-3#Y1MwJ;212@xoIZXAnPtBWLygi!+&bL3gxUGB$yN&AEd7Cgu`kd z&w8n2uS@&&P`Zb9OPg87Y}FnDeM`o+_)f%`lKupyWJC>^iW!)m%>eEdit@F3C%!W? zvb@SN>NB~x%g)zwu9GgPFBntOFHt>V<3jP+nkoRqWefE*NwG=Cgy7bGb|A(M)R>W5P(vi1lE(TZ32 zg0IoPhC|_##~lyOpV$?K4_J+9F_Jv6yVe#lYtRw8?IrnyN@epyw;bQ1?Z#Y;!T=0H zBNk#0zK7qkh<{xW@@F&&f&xdvVJM!5ZhbzNb+9pfpJ7Poj)rar+zw$*7&nD{5xshl zpcgJh%!bg-3;71Lhfrp34S7iq$V)7Zn5!WV3;7Lc?hEvfYRZHo{vg4~h-nXwfgyh( z?VLiI`<2nZAA#HO9xZi9bK8T6U4hZje-95sm@n<`0)J~G=v~Nf>mq352Df9uH zP@As;r_~m>C5X1xNs!xmM{IeX3LJyQx*nRzb;x>(2^rU-(y$7zLpkdo5=;t?4(U{P z!Qn7AXZl9z#9o)y>!EZH?U5FYez`%zw!8DywMB -image/svg+xml \ No newline at end of file diff --git a/resources/icons/emoji-categories/nature@2x.png b/resources/icons/emoji-categories/nature@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..81db5c08e342db8a41b4af6e392f48af20a06e04 GIT binary patch literal 1409 zcmV-{1%CR8P)#{D2WasTyM zz#he08VL^p{!qdPJe{pjoPSDmKEgs{%eKAT!+S(=`i<|*Rf0j>sWVS;^2ondF6bGM z2hLZV$-r*KnFA8P(?zD%eBHmN=~cz7!n=W&2_s_`nNRIlVC!0BalKEiC= z5Utl?i;}O+05cS6i>f!P`iH=GWpG&ITVTCvyF%4FRegqU0KKYyj;g;=xNpJGwslC| zq3Xwh8v*p({zb{N4t(g0=Iq8kf_NP|Ka~WX2 zGE!yzzLK%Ie;+Vpepe$AtPh!XZK|_4B=A&b zaW~^}weqD43A6v9N-2DgIK19!J0h^NTHs=2Va+spQQ9#CRnW} ztOo#crDwwzfizly#|Y1phJgEk7gBg9sruFs<28&uSZqq+UrT(XNGmNVw%00t@O7r0 z9}Oa*HV(dfo6z!QiXS?>&kP-a-UUxf;OeWELdwnryIIB6Cq*Fs%YLrvN!KT(9534w zWcqBrx)8$`Fn07m;a~6oCn6h8pAh5WstDMgmTZnZb#-Zs_%0-TPE4?K8E!@}ub2T$!@Y7G0&c-gts~4w_K~;& z^cap0lYo1XwAt2qvl!r z#o(a;r}7l`@G%;|?*dLK)%gfFkUY0_@nyBXcZImJj)bSAVlf?f8uu1Mmp!;Q-g)3W z+&d^;+L1+EQB)!C$F~Eo<9_Ws4bNW8J*Mq$#oY_Mg+!(?Y4UhNKTSp1YZEev9^fL= zR;RcF7$Bnlq&XIscwr?#})NUNTfdeDK^D P00000NkvXXu0mjf6+xlF literal 0 HcmV?d00001 diff --git a/resources/icons/emoji-categories/objects.png b/resources/icons/emoji-categories/objects.png index 7f6a8d13534e1af29a716117c1f0a33a2e2ef944..45c6eb37970d1fce36bac64e9f1b656b5cc035b7 100644 GIT binary patch literal 606 zcmV-k0-^nhP)}p6w?}%zsR98^F4S?BoQT;Av%Y+Y~5n8w>cAPXQW*sOy7blH-S?+hT zHv2^Assp0>t+10@?mOYWpJM_qob~oQNgj)w*Iro?Q zCSj89WNrWt2_JEg&|wq4mY1bPLTSo4O7&5l+mU{Q=g0#z2oqYoa2kdGd!m*o^aGdy zR{i}La5=@X>Nt*Oml7v+2Va3UFzWAXfRT8?#PFQ3i#@`0A9kDbwTy7I|2GtPLdd?{ sIc?xEX}4Y_&H-8Oo>JQLPZ4&=Mh<4f~7$aC|nSg>21#yFknsi}37T=ey`*(7$?6p(b>O*Te<-&DqqH}51-MUo%mLCw zM`SD8Y2+<+;{g3nNGba(s)j6ZinOu$VVlbQ9jH|hegm!mpQIlIF7yiC>SX-$x9#Ls zRrC>P0{f&d13}jztHM)NwMp9cJ(3C83ew5x3kM#ln(j$8fro7GineeHcm@2FyaZ16 a3jPcKuB4VD)x(GY0000 -image/svg+xml \ No newline at end of file diff --git a/resources/icons/emoji-categories/objects@2x.png b/resources/icons/emoji-categories/objects@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..01fd5cb4df5e814dafa090d5e6cd0b966c002ceb GIT binary patch literal 1218 zcmV;z1U>tSP)56%Ltv|A0@yU4!WRQ?lptJ}*MS>4Eq*yLmLXyc*a@u1&4U|# z>GRKaHt9bKR5~esB4D%%ybJWU!PN_l_`abbRk{<43BS2X;NAkftAR5C-cjKC0=x-? z#{3~*Sqa<~&!zeIl)w$RXcH3ORh9wI6>?&zC~-tGR8CUPo7bp#?nYbRQ*fQwt_Z6X z8}rSun&iZOvIyZ(MfOfXfvsSlvUwyg(MpnUznxH-7ySXdcjh5_UJ-p&lE7AQLfL*c zt)XO)45<4L0kHNVBXZV=Tr|df4BQ{+yGBIbHX^5t$SDzd3%D=PZk;jaGb3`zh@8dR zE&lm_&6lAw75Xi#2k_$KhH@ELTk9kuFRS`msUotY&K^Y@jmY1s&6Ka*plpxjao~a? z=}B=QHr9>;29Xz1#Q)=jwNC(IM7{~s*Bt0ow$JBr;4eke4S=;gevtlbtAA4QwJ?QUiJ&pZyyDv~9QmByI;O2DkTKSvY|VeMmnj5pT(cFnyp`;_gQ zlfPucz@j|1b1WKh+wFe25UC^sh>(QQO# zQXKf5xv)T2uV-VC)hZsna-kJqXD6B#;Fp%=1b zD6{s_z#C0Vzc4m2%ckmM$#6I;r|B)|6BtWND<56Mq^ zh;qI}g{1fx*j)m59g7H`e@;?tP7IJ7Hnm+?nO_)i2U}kUj8$=qQGXj;{UoDJt(>HT zr*q4IV=0DX+ye9xE*0p*WtH9jdV{aii&SGd3M}oE_!<`B#%G#{yyaET-4;v%N8$o~ zL&&A2aExt0I}VlRd{h<@umU&Ehj3&57T{K2Hx2xXJ8Am__|!jJQ0Orn$|}>aD$qX{ z%ANyX;*MXA;Zl$p|NLg)F5I!?R^XnpwERDb7aIS02g-~>)408G4{$dw0xkD-=Y9P+ z?tjCJxG1%t2>o{Ynd}sJ4epPk8;Z(6AWyXZj9Uj&0>r^>Z*9Dh{*Z-f9FaTEL`ZY7@a g*L!ifQmLW)D%CYqSOk=Avj6}907*qoM6N<$f+6ZV9RL6T literal 0 HcmV?d00001 diff --git a/resources/icons/emoji-categories/people.png b/resources/icons/emoji-categories/people.png index 8c826fa9ba4975627d8d198de8b68da7bfb7916d..710e808a7b823d5d7a383a63ab76b38f1e51e5b3 100644 GIT binary patch delta 26 fcmey%a+GC)3O`$tx4R3&e-K=-clqRv*+NVJh(8LD delta 82 zcmX@g@|R_TiaSfOlV=DA5Y%v_bTBY5a29w(7BevLodRJ-!$nR{fr64Ht`Q}{`DrEP hiAAXl<>lpinR(g8$%zH2dih1^v)|cBZ8R2Q0syy>82bPK diff --git a/resources/icons/emoji-categories/people.svg b/resources/icons/emoji-categories/people.svg deleted file mode 100644 index 31849020..00000000 --- a/resources/icons/emoji-categories/people.svg +++ /dev/null @@ -1,37 +0,0 @@ - -image/svg+xml \ No newline at end of file diff --git a/resources/icons/emoji-categories/people@2x.png b/resources/icons/emoji-categories/people@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..142ba09e980353b674a4d0c30a30837d67111b65 GIT binary patch literal 1222 zcmV;%1UdVOP)a07JkNKpp5#`j>%u;2Q8Va0$2w{8`cXg-{2M z0p9^@1>0rdXku&K&<~se?vx;|+cNMz(AQ4loxpKmsY2qq-2vVPx~e8W2>j?7xB*N9 z?*K0X!@$GIq&t(}!@wwT3fTh3h+&K)a zI*k9F^ld6T0J2=h5ih03Sp~+58b0hWxCVSmd%VULU@BwG+>;o^e)22Gq}q*%WGwwA z4#pZ7#9s4vf#<7c>cReGOuZ*|gcLVndz%&3mwbx-*l%JM@oJfv#9n{vv23z%#KGr{ zEa5&RBI*sh(Kt&hrzN1*C3r>&&Lf^-qftlPw#n^1myphFd`o8lIEQSkMc@l$^T#5u zzFtbpC|7<=3Cxilqy}&Yom)v?4EenJUDy$O!W7Uc@uY{qImh5>`z&GtMfFcA*>BU1 zUZ81oH1I#kMGt|6hzS(c@1r%iHi4cRun*`k1TP~?s0h{y>c!|^2WE`x4q#sm*sBD; z2@LYJr|+wPZdv_{>UwXgWWL5w3Ok5wI9G<+AJ8qU|B}+V0Pvf-IUGS^0NHR0Nt=o! zUsnGq#q}!KF71&VMAjQyXytkn;J&(9#UZ6#=%SVDz1qg|DUTWwmQ8fK1pg;^NL?@0 zfZOV(Gt)Db$PPqhTPP4}ZvWH}FJvN=l-&sQmqEz(kh;EFLu!>Kb_a}H%S9<4Lbjh) z*H>ytk;%kJz{vSrl=9)rK>u^7I~eA_Y3DkaFLI7qgeypB}NVoHh{+mZC(MuzPLB9=`@NFc!u zBqr?2=x+kwBWc16a0QuMdfMwoyw6S~T^~VGPGd*yGHn^D`DaGhcA$=IeT&y)gf7 ka})TT*1y~QRd(S2000rJE_WD0y8r+H07*qoM6N<$g4b0 -image/svg+xml \ No newline at end of file diff --git a/resources/icons/emoji-categories/symbols.png b/resources/icons/emoji-categories/symbols.png index 69a39754b6074486a615ab3f072297f7f88c98ef..08184de1b3117ba0cc38f7c2f6628dce8b4d45a4 100644 GIT binary patch delta 26 fcmdnM@`HJT3O`$tx4R3&e-K=-clqRv*+&@xhJylpinR(g8$%zH2dih1^v)|cBZ8Sd02mr9_8Ik}1 diff --git a/resources/icons/emoji-categories/symbols.svg b/resources/icons/emoji-categories/symbols.svg deleted file mode 100644 index 75f30ee6..00000000 --- a/resources/icons/emoji-categories/symbols.svg +++ /dev/null @@ -1,46 +0,0 @@ - -image/svg+xml \ No newline at end of file diff --git a/resources/icons/emoji-categories/symbols@2x.png b/resources/icons/emoji-categories/symbols@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..b5e7cc6c2ab6292babcdbbba37b5c41e6511f94b GIT binary patch literal 1001 zcmV3fJx^3-`Y zXX-!j-g#C-<|Hz=%mLbw$dr)=Oa^uUWaICvUSz`f_(EVOQVuKw@_->E#=imX`Mlo` zRM~D8{G7{N*Mklg-NB&yd3otbxez65^kq<@;IPEpLO9R+}L<3#?J{Zt|2NnjH%IKJD-5K428w%Jv zB>8}Z%vxpsQ9uK_mG=vPwTkYC1^M_WhtZ|POy#AUF2G^nt}-7qJF0nO0Ql{*286us zeEd`uml$o~b!EOrnXmO@tVlg(_ZddqOeL>dcT~5*Hf2#iu+*6=L0Ufd{HA~gY_>3< zI8pK-{c)?ZxCv>V`xL!(KdQ(n1Njpc>ihd9YxpCP7d;_*dNZws4_*So_8h{Gd{3Hj!J>Ta5pJXIz z^#SW5CT~@})+rNhjIA_tkqD%^lM31mtcZxbb@i(Hd8Nmu`N$1{39tqKUcrVu1gKs+ z6y-y_?~AtMo#^f$_n(Q7FW0P9tJgw2s@FyhU=^?gn1b9O>;;|~zQho)GD7k&($2=m zDqyvu>jv0wAQohN!R$VV0+5FQ)oTvsud5q>fR7q|D3)~snjT+d4mBjMLZY^zs5n)*_tk@>-^8e9(Yb6WztJv3mUr XcDfa-utW;F00000NkvXXu0mjf>O{{R literal 0 HcmV?d00001 diff --git a/resources/icons/emoji-categories/travel.png b/resources/icons/emoji-categories/travel.png index ab50f7cbfd1ac005569b53786f51565b5ee976bf..93da773e8f235bbd2ee9642c5a7cdc64325e5a92 100644 GIT binary patch delta 426 zcmV;b0agB&1h)f_7k?NC1^@s6;CDUv00006VoOIv0RI600RN!9r;`8x0c=S`K~zYI z-PAuz98nYn@E>c0blL?iB0*vySZim%6bZIjh>(1tqz`_8wa{7xqg5mj(8kUb`Ll_z zl{Sf1$*#rR(b;8Zc1GRC1DDIY@7#0Vn|beXUs1i(Wf zH!xW0(fE;_{G6Hij@k_jYSEkO?85^*#3mkL8c!sr=r;IQY(|^cQlJoo*yLen6l*jGTTno21QA{sd8XpS`^0;qf+^C@y#mUI?k(VPc z6d2@jQ>|9kU?TFD$Xh+*e#qmdS}jN-6kSLs^Tw6=y^q>SAL8!a($q?mJ^*2h1wz;m-AOI55gXos7k{wzC-U6hR zya9x2c%TrlsWWLYs%lz^&p>+(a93@>lg>^BB`g7tR9fAx1MX_ubN&%nbT_(ycl@&) zY@ooP!6=GNCx39`*+?}2cXjUJT#HQ<*aC7i{`Q!b6Eg~M^p9ZE4$-W>fT2H(#?+9Q z#SrkS;EUFN-~@1h1EALeiYdndj)6YKeas708&mKSf15j&0=q_TTJdrDsSu?Lai6AJ z9ee-@#YZd!hP5VuPhdcdnBqCJfTIq=z@Fl#mI7y5_kVy^b>Nr<@^ai+C#l@QKCo^n zu!jE*77SKCY;*u{1&mstUgd$gfOxqBfLWUN9n1jq0QXIR--%sTTpI=X5&3VH5xprV zBEKL%9+ccc<*W8u#!?^?kY5xlP|LuBCpimDSPD$y|93x7`nQzz4GInAuZ!hprT_o{ N07*qoL -image/svg+xml \ No newline at end of file diff --git a/resources/icons/emoji-categories/travel@2x.png b/resources/icons/emoji-categories/travel@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..2f72a2813a09d6e697b1a03c5dda346b995b3d07 GIT binary patch literal 840 zcmV-O1GoH%P)n zJ>UDz-22{r0}V9LKo}eWo&t+N2`C$~60iU~0lMN6KL8XBigvRiaLKgzUf^#X#H*7y zZA!cae6FMTihTl7CMIxR5SM`KK#K`-2Q9!2s@K&y6Xa8Z^rZ<>7rYX+rfMZT1gs0v z{#r>ra8}e>2M*Ul_)rkeW9WD3f)wyo)O-+zpdGu7dGrfw)Sy^5jJnj$0~3x$E!u&f zF3FX4cE%{Yf=;S`wyG@w`*exVJ(9}6bj-q4O#5hgrb}A&Ng9e-w2C1gEq`=LOCAZo zf!4THD`<6Uy6IWeB@H+MUBY>WY% ztwoqX6y6^qe$2u?1E}c0`_yIm#G}HGHwEk$zW*DLyc=!GpbX(#9Ry){_u|o=FCutc ziKPP+x*TBwVR=u8*qllx7t{q&Y|Nv`y$Ir?@Lm-0j2e{RW3Fn7rLkLDaBPNXcRnib zHKB0=HeVy;)3`%J@YXTY2+Aup<-lI~0LwmulK`n{i{=sh7gW-07~DIs6R-@M6PN=w zwoglFY~XC8O^&08{pqe3*tJcff?^f8gR_l#J-W-{T8{OL`@smmrE~5icuk-nuH`PE zA|Ii)5q_@;dX%-DMI(+#ZPzaOsvM-#{o*x%|W(f{F*2j0{|UI+dLV#h!H*RF^P SWG2=C0000 - - - - - image/svg+xml - - - - - - - - diff --git a/resources/icons/error.png b/resources/icons/error.png deleted file mode 100644 index 295dbf06ddad543dc02ed4694d2ec69e4c80e8f8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 621 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE0wix1Z>k4UEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10f+@+{-GzZ+Rj;xUkjGiz z5m^kh={g8AI%&+V01C2~c>21sKV)ZRS5lvRbagfZ1EaO4i(`n#@wHP8^O_w5T;->2 zy%Lf)_a1MqpP=`hW@d$T4;DuVI+^V7do68YvMyHH{gz0>VLs_C88=_LeNHd`H-9eY zhPk@(dp1AswY~7c_ptc@}|Ikq+W)tC=(k#Ej z@}TJ~>Gqdz-+jJo{=t3BUHt_$nE%Cc_F-lEp_(8o?o0z|IuIDYJD`+52ILN=avE_7_* zc8^-!qwB7xv@3Gq#68hBe;cp;Fn2HeDK6!+)hn95N4$@FxHZB`Z%^25g;$H7W}V-b zu=hWcyH0@X9)6eiz>rlfag8WRNi0dVN-jzTQVd20hUU5kKx7(XU~Xk>Vr6WpZD3?& zU{Jic)(b^LZhlH;S|x4`O#hC418R^2*$|wcR#Ki=l*&+EUaps!mtCBkSdglhUz9%k SosASw5re0zpUXO@geCwgb?b8g diff --git a/resources/icons/left-angle.png b/resources/icons/left-angle.png deleted file mode 100644 index 715432864bd589e4093da4c2bd3d65e9b753cda8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 225 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaN3?zjj6;1;w=3*z$5DpHG+YkL80J)q69+AZi z42)VJ%-GU1Hy$V`S>hT|5}cn_Ql40p%1~Zju9umYU7Va)kgAtols@~NjTBH3e}GSj z>;M1%flN3Ew9fhf^$82SdtaUH}Q0F43W5;oY27Frpm}>Ay5|BuvyY~ zg2f@db4(sWZCfTJI8AbRxjpE6Pzb}08+?%-a?{s<4EJ>Pb6Mw<&;$UX CMLaS9 diff --git a/resources/icons/left-chevron.png b/resources/icons/left-chevron.png deleted file mode 100644 index 386395fb5092539d13c5f865aa05f817ee2964e4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 590 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE3?yBabR7dyEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10B00b(#1%+0?B6fCaFyty zRX|c?!AcMt%oSO<8p>X{iectVu|;6+f>r!Wmx?R^D+a3+n7>{Ote#=jD#4knL>8_D zav2&LK!QL91H(_gHy?nMd`XaBFat}@rK6Fn+t;LAUi*f%Z{1nJ^=CGm7T9=-jlcFJ z)5GK?wX=Xq8I!!-T^Kr8Wj%l#&H|6fVqg$l2Vq7hjoB4ILG}_)Usv{r%%TD&qQ9%S zrvZhUJzX3_EKbk8{F<*>frm9=M&7++d*YYB{=I+cu^GoQZYq9xf1O3c*6Xgfeba}P zZ%}*8H2dC}2 z_x<^2o!8+0!23}8BS*{9hVwOXAtT_eK~Lo+K=BP%0AZ39Cq1A|K}=Q&U`NSwWJ?9znhg z3{`3j3=J&|48MRv4KElNN(~qoUL`OvSj}Ky5HFasE6@fgAs65i;tHgH{QC9d=g+TS zzXHkczkUJH4<>&pI+S(=&2N}c2E0-#Wsr;B5V#`)v~2Ihr*e6DON z2i{z~crmF#<-jdQ7Df-I9EHXfM$rU5Zy;djoWdx%l8r}6R^z}#N9NE4oeP2OC7#SFv>lzsA z8kvU}7+V<_S(#dB14#pezg)ZDqiD#@PsvQH#I2zxoH-b%K@wy`aDG}zd16s2LwR|* gUS?i)adKios$PCk`s{Z$Qb0uvp00i_>zopr01}&sk^lez diff --git a/resources/icons/power-button-off.png b/resources/icons/power-button-off.png deleted file mode 100644 index 2409032f4999116c870fe83dd80d657869d485c1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 773 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM0wlfaz7_*1mUKs7M+SzC{oH>NS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lweBoc6VW5Sk5Uj7}P}D}aLRC7!;n>6h8q?WW4O@;uvCax_7c|_U!Yc1_bk{phb7~TuCGtoyxh?2r zob(f(g~zVFT#y}Jw)B#5%)-z6&hLGGhyMh}-3!xy1)2Z2e<4;ks>Iwoc;=DMS7z{g zD6TjiFWkZPD(D15)2^N2*OyHfbL3jKeBIgFfOsah-LK|IUAS79wilIEuo_9y>JBEmE>%*U9X3Ps@elT&Gu^;of8DjkmSC*xV8O)YZXFWafwZ8e= zUqvkp1vzGuMWaqy6-DKy=ca7cUB2y)m`2BUA;o`l$|o4B-eYDxXUyPs@9myX@9W(d z-cJ)$Ik#wy1iypcoC>}T)F8+3`eE2S>pMxZLd%&pRI*4h)q?;S_{kKR|bI*D5d2`f{G<}5wGo%;zWzPF) zSo_h$htc5HkFOKATgKK`eyS_ou)#^_p!8SH@{?;Gm&d7>wsgPRU{m?hB=ZtWP0h#d zcz zhCy^%87RdeH00)|WTsW()}Up5ZYNNKB*=!~{Irtt#G+J&^73-M%)IR4k4UEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10f+@+{-GzZ+Rj;xUkjGiz z5m^kh={g8AI%&+V01C2~c>21sKV+5`;I^K>HaZNbsnXNMF~sBe)G6n^r5#0%@6Y#j zO6t~Bi(F&xpy)1I^f}~%f~}?oM_e_BhjXUCQ}wzllNT&#Q>x1On8RQ7QC`4>U+#)o zfG^KY-QZKr(AcT!<@udpytJ#IR03g7PU@A@iwr?+v~Wo{Q7IM1 zSgT~u#dg6^NBZhwrl3C4Dn*F}_aEKzTim*WB}6tmkFAMux}inBS$mzQ!$r@vJ_ZVA zU3}HX>8Heggv|KD;BYSb`6~9^O6RAR{{M6;Sck*fU&P_K+`Bh6D|3G^XGl7iMe%Dt zZ<@9uI8JAl;j`P*rHcjPHP_qj4m{wXDfzEY&+wD!r0(l?9%V*OTYOO_gn#?*&ksa% zHAPe79ywcG%hyld7XQ02+4+{$if_9a7$)3$VzPem&1E~z&7akLOF}P7@JVd6SKG3T zS#3Mn180<^&Ased@q1t4)w?)FK#IZ0z|dUR zz*yJFJjBq<%Fxit)Kc5P$jZRrnC}Q!>*kacgMUX$Q!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10;!=Q5h%1o(eOq)Dnab4DIoHG0*Jhv z^6wf@5Ul2U>i>(eAiPX_4&farL!g;RlNQ->h%Y;AHFv?aD|1 zzp4D(_+tvtJjNt%cNc~ZR#^`qhqJ&VvKSaG*Fl)kNn>^eP>{XE)7O>#A+t0Sr(w{W zD}l^O>D<`ZKNU^ufMY_vI{PGz+XAA370JxcHzfzto23-b`1vvux<+nedZo zxqVpdBjY9SfPPUeag8WRNi0dVN-jzTQVd20hUU5k#=1u4AqGZP29{PPmf9eO!KQ_i zwxejs%}>cptHiD0@EBu OF?hQAxvX!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10;!=Q5h%1oxOG@(0&Gk=B z4Mv zkP!$r*`WahfPz3-|74K8!3pUwl_2-{fi(iX!=X_+0Z6%&1o;IssI$A@mMP%XbqGnX z?wN2v+MJPjZ0@uJgRv8ZPe=zYCn8$Zpdj@aQ(-^^ypQ~ z71djZpMF#Mx$(yopm~f*-tI089jvk*Kn`btM`STDTCRgIqm#z$3ZNi+iKnkC`$J}F z0akWBN3M9F&;d^u#}JFtb1yyTYIYD{dEjl_*}3fdz3TUS&;GU#_7miJ_15v({Y~;R zZ+MgIk3L`iosq>^B|t$?=E5O{B?gVrEy{tWV%JMz{SW9)T3Nz&?uOFr=5(Ej*SQ!J zyHq=ZpDkdL3R!7ezbI_^_ce+)H!ri@ers;t`u8?dOcNIH?De-bYX9i+BQiL7#@VCy z_Zl3Sq;cky)$|QT*?eZ_oc>HJJAJV4)qOb&8O;K#$A?bD6fQm}%P+Ozxi{05?JOJm zc_#d1T5cZ}`^b37JD^`wOI#yLQW8s2t&)pUffR$0fuXssfw8WUd5EEzm4T_1fw{JU zk(GggVq8xhiiX_$l+3hB+!_LyO%4GyNP=t#&QB{TPb^AhC@(M9%goCzPEIUH)ypqR UpZ(583aE&|)78&qol`;+0MT6@ZU6uP diff --git a/resources/icons/smile.png b/resources/icons/smile.png deleted file mode 100644 index f226a5f317cc4cdeb8d22a9194f1cae9eb22c2f2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 631 zcmV--0*L*IP)*8l(j8FWQhbW?9;ba!ELWdL_~cP?peYja~^ zaAhuUa%Y?FJQ@H10rW{kK~zYIwbn66l~EK2@ZWvekPRZykb_W=L37md+61S-rB*|5 zPud-gmI^l~YpkWADF_;}K@p`b2((!Q3B;-AZTQZEulMfvo(f*L-22^g&i{YUdFP(< zQqEb^NGXlsDIVe$ZiZ+NyZDB;Ip;r(AUWs0i3zOY2zkgn3f+k!Rsnn(`(fO{7c65o zh$mvd9I{U6?qhl&0iM+iexY5uRgXBl!ETc8oH)8gMswBr1{0ywMZibFUCUojRVc5--jRHYYjtBUQ zV~n>{d43gNbI$99Og_`dId9-|cr({hJtElb(S06go3Za5gXCMWwqaZ4=InWY+(P&s z1?Dy!#z*lbo|E84U>>&45#}?Ema1^U{kkBfbUUT=WEen7>2XTwPS5eZSod10s@O+> zmw2C2njZi@j}Lg!K(O0VmE01+$5>ZVN>c^!DXhfjrv`#`njhLFRk~&T#uDzvT#B=d zAGqA~&>BlcoL|F^=3cOa>oxuUQZcO9VFU~Kt}0>&v0uQ*sfyi&m+PA1qKj%cHG`RO z@vJTLpnmg4f*_g1T4chorhgo|lO?RwZ3?B4QX0oxgrW4eWgYKw&WBAH{{S0R&jYCR RakKyc002ovPDHLkV1iEQAFKcX diff --git a/resources/icons/ui/add-square-button.png b/resources/icons/ui/add-square-button.png new file mode 100644 index 0000000000000000000000000000000000000000..a4933c16c9097df85f9d165f70a9fab3860f006d GIT binary patch literal 965 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz#^NA%Cx&(BWL^R}oCO|{#S9Fh z9U#njDSry^7odplSvNn+hu+GdHy)QK2F?C$HG5 z!d3~a!V1U+3F|8Y3;nDA{o-C@9zzrKDK}xwt{K19`Se z86_nJR{Hwo<>h+i#(Mch>H3D2mX`VkM*2oZx=P7{9O-#x!EwNQn0$BtHPO|}r3j51k_V##lVOtdm< z7+K{VbX8gt5|gF4T_2Y_sri|md^c%t_S440b9YuhKT}XYt(vpsBjzQi z0&dlAJTcw-2dlGc-z$%3%PFgwUH7<4@SZqbuQ0txtnC5Eo`%^MJ~V!0+P_vg+1lri zjZC>!=$qW1uP^xj*8Qh7r)hGdhHj?U?X*zKsk;jvSl!<^{pw8NC2M8ET8hfwe3Sau zVpZIP(UUgTe~DWM4fMCgO9 literal 0 HcmV?d00001 diff --git a/resources/icons/ui/add-square-button@2x.png b/resources/icons/ui/add-square-button@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..b2c4a44b8a3e15f47f2f636f5e5174a00fb08745 GIT binary patch literal 1386 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=jKx9jP7LeL$-D$|I14-?iy0V1 zJ3yH6$aRMWKm{q8ArU1JzCKpT`MG+DDfvmMdKI|^K-CNkHWgMtW^QUpqC!P(PF}H9 zg{=};g%ywu64qBz04piUwpEJo4N!2-FG^J~)icpEP_pAvP*AWbN=dT{a&d!d2l8x{ zGD=Dctn~HE%ggo3jrH=2()A53EiLs8jP#9+bb%^#i!1X=5-W7`ij^UTz|3(;Elw`V zEGWs$&r<-Io0ybeT4JlD1hNPYpzh2qfLoMT4D}VzfBF@P1^R}12KsQ5ff{XqezbBf zN=+=uFAB-e&#?nJEi*5>I61K(734r0eRLI2D{b^a?m%)E#M59=ps($?fI49zXvcNu z__ACE2Il#mE{-7;jBjV}&J%VNX%kimVe8t%pvgE(TV{Ke`t7)TST?(7UVOib`Nlm|%U!@hz zFN(!)nR90q^Yp79f}4*_U$)@oB?IA%4|^LQc?(}in^h2V^gORv{Hy~$4zKeM_8+lc zm~-We{}wU(9_wFbIxmak|L^|#F|O79(5?@zGmhNQ3@SdvnYccIHEMcGw8?_Y+y`&J zKE3KZ*G`t0hi@{SjBhO$V|j10-)XVW<7E}mY6~Ra26y`@FZ(Sgl`2)>-kf^qk(p?9 z-wyUwwFR#x$2I+SZcpK7{&D*r*PYY0HoUPsAH>XL)OWU*AA2=rxuf@!EukGJ^26^N zA97qMGe3FC{_F2KXFHwJ*dA#4%z#~x2`Y8})2 zg=ZM@TVGxc%GN*D9m%tCRdV9y_=515qtojC9$xkS#)1F;|D3ujZP9Ba7hVzG`XE$g ziB3%T*{;o65r1EuJA9POWJXOAU!(IivEvi?p9v*9ywx^8ej`E8kjb>d8ov3L%hThD4k8b)%#CIavYvIj;w{gK-2SD{Zl7zo()Y|P z&YHRCcJj)feaUPUx4&eq+$#R~>ORNZsp^i9pr|>Mq)~D>=75d*2LqR#uO82meYEnb z)M1{6h*t@smF8a;oU2&J#>W_Eym8UDt213yl;UmpvcKFv&~V&s;+HwWru(o3)3%5o{CsFn#tX}9OQfRySGoOKF-iVEv+#wE zYo~TBc(d%nlD)PoSaUN<9xqzuJBKsF>GrfmtHbW(NtNh7f1lxa*<+*k+VvdgS>vou zoMiwf`jtIJreTq9)Gb3l{rb~%LAYR(vQHAvKD+;3ES0tMq6^dhuymT{Uq8?vcO6s! Ndb;|#taD0e0stp1AfjnEK zjFOT9D}DX)@^Za$W4-*MbbUihOG|wNBYh(yU7!lx;>x^|#0uTKVr7USFmqf|i<65o z3raHc^AtelCMM;Vme?vOfh>Xps5^5D;1=Z-LwyDGpMFJRfxe-hfj-=1phg>@AFZ5= zQWHz^i$e1AbL>D)%goCzPEIUH1v$`0A6*61N*jHUJCNK3@ibTz=xaMJpiWo_+Hu`E zzAP6QsAoJ~977^F--a7<9X8-GnLFENK}qI|33YqoUtUmjUU=b~;n_@!4+6&}i#{nG zOmucAw@bA2@)Tyibgyx;+TW^c+;;mL>_4!aYlyya(ld{VhyMY`31xfBlex9bduQ!+ z`N#Tkt?EySCtB=YrvDoaa>94c^V)Vhl>2t-HvO+<+3WSTl`G6@*t7ojKjxUm*hd?@ z#S$kiQ+=>=R@{C8NA?|VmRWu~Y>t}>>ctwlTwq+6z1{g=be!-*qZt85F5P};HY?C2 kj_>=!DN1KLeINhisXDPV#B!MwCn&Xey85}Sb4q9e0PEi7ivR!s literal 0 HcmV?d00001 diff --git a/resources/icons/ui/angle-pointing-to-left@2x.png b/resources/icons/ui/angle-pointing-to-left@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..f2fa93c441598709be07e4461326403871d1a52f GIT binary patch literal 877 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=jKx9jP7LeL$-D$|I14-?iy0Us zUV$*DSry^7odplSvNn+hu+GdHy)QK2F?C$HG5 z!d3~a!V1U+3F|8Y3;nDA{o-C@9zzrKDK}xwt{K19`Se z86_nJR{Hwo<>h+i#(Mch>H3D2mX`VkM*2oZx=P7{9O-#x!EwNQn0$BtHPF=$ElmG-g%<3dHLJz$bh&2*yQ4P8)gRhF6dupytQGsCejq=R<3!Vcwhzq*g$*Wb z{WD$HKjABrVs_=O8S+_0i;lD|V~+p+jd7E|_y>2P_5Qo}mK>VQrvLWaB~Jf)Z|~kV zp0fMW!<{D?Ics};|L!f>Hr=n{(u1XU@A>jM&(xN9!f(9kcjYX;_k!2#9bZM+eVM6s zTm1Tc)dTej@Am!4=z5&k)jjL*tS8P3Bs_O9wM?JYA~??>Tu_ED*QSS)eO7nhM$3Z_ z8J_ttc`UG!UUAs*Tfi1I$Fk!YLQRY>aym{*E^k1-+Z|0E~1r5Jvw3w*} zypz47b8y$pIS*c4Xk$Jr%lzR_A6RuRAN%Bj-SZY#85N)A_{l4Bb@56a&MD`gWeK&- zTFNGDZa6da`&19k4~bXwID`6^H@EDzpTD2!gUhz#hgc<>KzYE^)z4*}Q$iB}d$~|^ literal 0 HcmV?d00001 diff --git a/resources/icons/ui/cloud-storage-uploading-option.png b/resources/icons/ui/cloud-storage-uploading-option.png new file mode 100644 index 0000000000000000000000000000000000000000..f679d67646d099f584ec874197ffd57130c8dd2b GIT binary patch literal 1008 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz#^NA%Cx&(BWL^R}oCO|{#S9EQ zuR)mc={1*2Km{q8ArU1JzCKpT`MG+DDfvmMdKI|^K-CNkHWgMtW^QUpqC!P(PF}H9 zg{=};g%ywu64qBz04piUwpEJo4N!2-FG^J~)icpEP_pAvP*AWbN=dT{a&d!d2l8x{ zGD=Dctn~HE%ggo3jrH=2()A53EiLs8jP#9+bb%^#i!1X=5-W7`ij^UTz|3(;Elw`V zEGWs$&r<-Io0ybeT4JlD1hNPYpzh2qfLoMT4D}VzfBF@P1^R}12KsQ5ff{XqezbBf zN=+=uFAB-e&#?nJEi*5>I61K(734r0eRLI2D{b^a?m%)E#M59=ps($?fI49zXvcNu z__ACE1}0Tc7srqY&bQMHy=5Flj_b?0xGZiGFkI0pCZxp1S=Qb2Wm38-v4=;X1lDIsxTD~Fhp;{}%^%2^$*SAP7Cek#QNrdRmy@j*Lr`c2Q0Fe(@K(==Mb60aaH+)@bB-p ze|))H#+u2p^-A5Qr0@10eD8({o)@(0oOq|}mdY|IxkKD9TEjYWxm{*t-1(-w@pQqw z%NOp=Y|!G^l(xrd-fxvUd4(+pB5RuO?fS=X(Xb{(Xi9;H;Qo)Vn>?zU-8CJ(^PD`b zj0FvsnP)g2jq2R1t@upceC`FMxM+ukVd{6pH)Q?Y7EyG$OY0HC@#D|lZ10zdV6tEN z?&}*j#UoqPmmR#v5dMC~N6QPZE022V{${(!8^HcGfP0}l>`cwJxN@#&(o5iwMwb~}ne*gIXmS;(b!)E*9_V1aZ2Bp0%QGUkT^OG084HjMC zyR=s<%TwmAacu3&nB!_X6%$`fZ{$kePZu-=j@S+dtW54a{g+*v~2gvmvb&C k$2I?*-F5f)|7h(3PUHW6Kd!ymrUA-^p00i_>zopr0O+!xr2qf` literal 0 HcmV?d00001 diff --git a/resources/icons/ui/cloud-storage-uploading-option@2x.png b/resources/icons/ui/cloud-storage-uploading-option@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..162bc9549ecfb1a1fb93d7a8b17166d10996f1ee GIT binary patch literal 1566 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=jKx9jP7LeL$-D$|I14-?iy0Vr zUV|{>(`zo5fC^GFLn2Bde0{8v^KP? zWt5Z@Sn2DRmzV368|&p4rRy77T3YHG80i}s=>k>g7FXt#Bv$C=6)QswftllyTAW;z zSx}OhpQivaH!&%{w8U0P31kr*K;4;J0JkWw80ssa|MV*o3-k^34D{h912x(J{b=P} zl$uzQUlfv`pJNAdT4r8$adKioD#(F0`sga4R@&%;+=1jSh^N7#KwsN&0d>Mc(2ncQ z@nyLT3@pK(E{-7;jBlf&JA4Br2qsiv&+9(zFwbyEiQZg z*Z=>&udR)&o~x<7IZbo}R|M-CrZC3U4lA_`4k~;s`Z13)ggLk|FoEL-PY(lY;x5)1 z++n!~q7oznxI>sGH|{^c|3LYJ)C<c6Z}d2d!MCO?Es5 zVTT3EzyEFiDBf72j6dV3TrU_e?*{C zu$BLGZ>t7Ve6Bg~WN|?@!F11sodp_-pOg+cA6adn=`^F%L0PDh>w}obrEf|R?q&~^ zro3(tW%&Gq^TWZP3f%Xsj=iz5IekVYa-Y*3wg);NL{Es%p6p!Mb3>-$FUu3|yiIep zPb}bG6aS)G;6k4D!$9$q_dk?M?O1bhxv@FdHrWeVb3Z)e5&Amg$#)B*$Db@$>8~%` z6ZKlQFiG~4^E1{5q6Q}{%`4T8wr|iB^fPSWo6W0U_`Y7W^5oem9Dg|sT$_$)&Ni%& z;4nJ9$}aASs=lz&hu%PS#z#|PdOyBgrS$x|Sj(O#%c5DH?TMIkTvOU`1~-rWrgxtc zPk7f^xjqQp9U$Yb8*MltyFM>{Cuh~w#S^B>ly-jL<6C_s^G1;nn+$6kgZ`pb#f2xl z=UKVzP&s#K+GWE9+yN6mXJ2-V`_!wBlKC!LsmYC1<4_TD$m_JHrhGNITI(79>~_F+0V);u=)Jdj-3

nZ_-7HFJguD}Izz?P@>8nBM$)hH!y&M#0w2UV)YS=85uN z zNxb~}kAdgEo;-e@wc>`%Rquwvn9O%fc28cOKHI(Iz8iDL$@|tuZi?@i-XFVdQ&MBb@09`DSry^7odplSvNn+hu+GdHy)QK2F?C$HG5 z!d3~a!V1U+3F|8Y3;nDA{o-C@9zzrKDK}xwt{K19`Se z86_nJR{Hwo<>h+i#(Mch>H3D2mX`VkM*2oZx=P7{9O-#x!EwNQn0$BtHPq<;xTayvjlq+`>nL4|)3k3ZR_`A+k zUgGm<-WK7=)mx9(H!oG!e|_+NHFJgQ`ttuDxt>Vfaz1=e_9x5vg`y^TJNnP&SPAZF zId>u7`%TMDj>gO#!_>rjp@QOt(UAalW&-Y z%&`;KQQLHx+hXZerm2?NwY(c7JiOwCeV8x4%x+$MIlA%cm)b4QnYDfvd3xQK`SZqJ zm`^}np=5sgzVBC(f61RH%GvO9JO76U)>$*0l;Z=B*Q(8P*xYCOUF`CH$2jJ^!dIsA zKQ6phto!4p@QE)wAA43RUzVRTONsf`y=ajYYxQ3`oNx%K%1cO9(Aqn-@x_-gwndkt zfiB2TRM4!=Wj^^bTiU}fKI_0=&iIWpt6mA-kb9^0*7WVy>A?rwcU8Tz{Q7^o>VLod j8?B6e7x+$9t@+RRul(=f_MKWHpcL%s>gTe~DWM4fg;g?E literal 0 HcmV?d00001 diff --git a/resources/icons/ui/cursor@2x.png b/resources/icons/ui/cursor@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..d02d29fbccc75914b31a6fa87f67256ed27831fa GIT binary patch literal 1148 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 O+~w)&=d#Wzp$PyGesz8T literal 0 HcmV?d00001 diff --git a/resources/icons/ui/power-button-off.png b/resources/icons/ui/power-button-off.png new file mode 100644 index 0000000000000000000000000000000000000000..7763de0f5144b135c1d94aa3ac2e476254f6513c GIT binary patch literal 1174 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz#^NA%Cx&(BWL^R}oCO|{#S9F5 zuR)lx@NDB$pn{alkcg59UmvUF{9L`nl>DSry^7odplSvNn+hu+GdHy)QK2F?C$HG5 z!d3~a!V1U+3F|8Y3;nDA{o-C@9zzrKDK}xwt{K19`Se z86_nJR{Hwo<>h+i#(Mch>H3D2mX`VkM*2oZx=P7{9O-#x!EwNQn0$BtHPf-29_`#i|o~4?h>>+S+{f3~R z+Z|<5ODMD{OQqwT?!RCOPb@@isH;UiQJ3iMzY|R9=2Z zC3m~6f3hSlBq!vS@W*(+tSzpGIaMQf#9m}OHmOnl8G9Ie@kFsLQu>X&zsBH)PHl8vP&q@@i>(RuM|X?u-YU&oKe_Ib z?={&5v#OaNA6}`L9M~!Oc8PQR5?MdBS$q!G#%Gq*rL^48|GNAI`@f7@trvO4498|1 zJzPD>F^uiM)TjLDiLc9Mh8CU`lU;Y_(L+bKLhH8-r&axa=w01^6=(wOv#dP^yTlE*0TV0xQ5GMK{VnXK1VRH^^c@9~dH_s_a`b?pIW z{rA3NGmkp|2>oiy(!O<-|L)T3Li~GdPAF||QI7f<98@n-K5Z9Uv_ZG~EAKG*Ft19T zWoPG<#m1L!KEShirMzTHtA(DaY(lNOjOgv8klr&caVa559@f{7W_;NDW%HvA5v<={ zEHwXgV0I7FQrC5#&fOE@7m0oPXzR4?N7)zc^@0qQkV12 zUsm4AsCZ~8V79tCEJrxtdNX_6+ymxMm;CTr!`=C9Mxt0hYw}*1bDiZ!-zSN59Fw#C z($~@3A$Mq*Vx7+$(eE8KP6d%QdUnF`U28weuRbpw!w}hW2vk^jy85}Sb4q9e0BE%5 AHvj+t literal 0 HcmV?d00001 diff --git a/resources/icons/ui/power-button-off@2x.png b/resources/icons/ui/power-button-off@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..a462944604b6bfe418dabf81f1651d562364ed6f GIT binary patch literal 2044 zcmZ8i4LH+l8{ghHVn|1ltkb(z`6%0bhGEH;+7XTR)|A8;WB#_b38iC2*=V8Gl*8-b z_y|qjw0(u?*n=e z69@ zNH~$iCV3q~2h#y$Pzaq&LB;|MH5vqRiAAejfWi)f#R8F0EOe|Z{0joD_E*CwIP43A zO>>2lya+HXok@Y&Bkhn@a0~VFfe88SHR+6l}F_5Sbp$c7?-N8+{+& zcmj;?jiOlJRH^l$VuKhcYorzGdu4T^i&`TZ%cKOc=}aP>9*J3{79K@o1qU%Gs{~z8 z|Bv|A(gn53<9~R475ycuR*iwEGygh43}m3C2mpaJt?{^h#8~iDmS=gu5yKX`tFK7j z@N&=AQF!+?E%)O*?ggvPs;wJ#m|of8ap-AdBiCZ~rtv|dOUf>T#9jCTE*Cek5ttvl zTq>yIA1ygBu~PqVE_&$vADDAfa|;jsm)pccPPB@Ko`gGdeaiW(S9CS!Zm5iAhqv}( z_AMR`yj?l~-#W|XS32=EN~d+CsE3L$-CU>CWTKx>Rpf6LI7yZ27kM>bAQVgo;k!C1z6&0W9On)Ld03|hRhL>k7V zLYp^9#Las+ubgp5uZHpVrqWYr5-d54lz-?QPg2mnbkgiI)lK_NjmKE+Tuqx9JCKWy zl-DRcbh6No?mxBJY1D=lr)dggK;w2^Hr4$^8L9B?X9+V5%G&jUVAu-k@@Im)$L1J z&t97v>5TRJ{p)y?otFbAdqnl2S%q~7^~&YjhAiN(XfUUoM{B5OxW5*TYo;d+45f&Q z6npG_`gN0x+#TA2AL&-itmE}?&pmF+A+;@WxI)7cUf)lTic9$9@>J2%$xoL|j6FM_ zY<5H1MH-w0DuIaIO9R!Ub;8V?ruV~xu(g0aNRPVjNcqfTZ$PFe=WN;fE(zY$N8OjN99^iu;^3_YM_0>Yc9_(?859 z^RxkrXC+dgaW=~-BkRuT=?AAaFUDtzDX*ac5Es!*heVzg7zg*+e&4$Z0KHofwhaBY zSbK~32znWBluIzS%R^{HOeV-@pbX!L>L)S01G+zN%M7CoY%zJ;Yur=}=}f9NEU{LA zmfi9aA_TbJ6E;EYWIfr zD$xxmANW2fcewCkG*?wUu}G@&30@hL0HEuL7^xHu$*D6Oz)8JZ-_~f!lTAMJnQ0&C zCXOR#J*r!_tAeafRDI>$2==p-4<#)w6nBb)F26ZtmqR1C^JQo~F<7WH#~Z1}^t<%4 z933qP!FR!ym@`G8v_4)B)gzSm*Q^zLKINFNGoc1<4Hh8<6=xIxb>!!k3vO4E*)Sm@A3058sv?VH7N-R|tR zeWERZ?3y0NB;I0dM;~mZFF`=a7br$rr8qsAuXa3L*==q1`OYpY&N*x zT9ru-7=J5$q*GOgcUdX1I5%;w_vuuz=BX)%}oap?^+qu?Q_JO%F+(m{`_ zw^zCmpBG4(GRHe*>NBhikKB+MaM$`++d>Y>G%!7wiVZHS#Yy9ew}#~94V);{268z6 z>~1F?Y=uQq+XBYBrwkoB&q-Y0z*0=j>ZE}Ux7zQ=F_b@hFCLjJ{b2-dR+p?PKiGD* z^1rP9mo8+n=`|Yl^d*6-sdtJn-xAXdH?4&3|3&`%rXT?Es`K+G`^QZPg_)U==RbH* ziN0isJWRa@7LnfHed&BSdwnLaOi~Dcy;F&pg`O^LAxjGfRWtfd*chbERP5C1myF-< KjT5;CUi=du3$!Hw literal 0 HcmV?d00001 diff --git a/resources/icons/ui/settings.png b/resources/icons/ui/settings.png new file mode 100644 index 0000000000000000000000000000000000000000..6e013f75a5c053b11fe8b7123632b750988302c2 GIT binary patch literal 1363 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

pI$ag(J{XnA;EaF zP*?X&Q8W|{3GoogLYB&26k8RT2EOS|-!5Z+koOpnS26wi9B6WX&`=(*Y}s7Y`*hO2 zCZ)SG%Eq-GQS{09V&blh4sda--S1tJZFV}=WSkmXb2(!@?ZUu?aPuWb-kj5@%#hZ{ zUkD`9h&`CRufJEktT;u{=nGTm);ssuVc6RMKTw&O9poQeFE*_o80H8mnaH5e3MuEc`YfnTU#$%}6-_~8VqzYT! zcbFn?WN@=TOSen4mtW&T9)sh%hrjv?H6>C3qh0do#%3?=V47cLq@_5SBIwzG3kpae zO$2}hax>u>ig@NeNYHEA`B5d-#!L=%DDDOO8+zt}8gF7TR{`{;^EeWfc#qdV-)iLH zYi&xMNFB1D>22a=8T$sr(MvapUFdZaQFGA8WkuE``)8BVQb!Jy-aix7HH866oe5{< zOIM_29V46>xSO?N~A@)Ng*v(^`2UX42yuwD?wk z)$G|l$!*CA27VVG6gHU@8}Fp8o(@nVNZ(0$AZ@2Kk{+GU##gpL7Vof6KCFhqG{|jv z$HGEZsK-^yMj5)vb#rXouum|MjSkfVuX;MaL@TwjsbK2vl#fu-d=;E z(V;3fN9|BO5O3{qy(B{X*u9-AoQ!)qjvEywmRQc&Mo^tdU>sBvb`$@(>U5PxU3moy-iOw+7MLgM_1c-dlNgI@pvWwUu)NMvaO(QVv|>jjxMS!I75BpTe(~1a7Oe}C@PZEU3z}|jZUS@(T>sOJy;dEvc6o5(`L@?O}upGjNn!#qKt7mPre!eiF!p%dW zTfB1#Bln?Pw0LW{Ix|9g7hHOGs8Jr+rZi_U;gTbhvoPlTBUwr&PNLK>{8-}_xysLv zr`?e3KJro(Fn&pi7pYiQkp6Nq*%@wh)NgsG#j;(#J%;*bp)fa>{p6Nd(=A$eT}2Vz zuD)y$^pJw8Rvq+cdW&h7z$B)=`=bK}V?vdm%`bqGj(Aa6AqmS14=vwnrRMY%{osEAEJa5f# z*uHp+h|icv;%WzN#I+!u(N*r9fEm+omU?n_?pV36jhF-1+Sy8+(r{yY+#8h1yq9F~ zPT+o>RE#`_>><#?9*T?ScvubVP74rHMI78ijt@rJ2s`|&qeu)#JR6$5Cd`qefO3Lv z1G%da#1|IPna2xXG(XL;_1lf=yV%)$ie$^ROJ&v6C)cv>W4Ri5`w*PiV`WaQLtGTF z-aC_pufm-Ps}|Gj+_C9Hr~N)R6(s!A38h}|Xw#xVNs4Ye`u6ZZJ&g_E0=B4qlpQJzSWAxO8y4LB5?8!E#)g+%I(=st(8J54k8Mul6oc)1uXO3%hUUV zJR`~x3Xfl9A7|#V%$!wqC0nlEOnHRL{A~ziseWP&(1E~Yh!zH%-vIAUJI{Do9s7DC T7iE!n@JGX8?XBuhd&mD5SK5cA literal 0 HcmV?d00001 diff --git a/resources/icons/ui/smile.png b/resources/icons/ui/smile.png new file mode 100644 index 0000000000000000000000000000000000000000..161d46d4c62f59951962924b22d15a9df25de7cf GIT binary patch literal 1317 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz#^NA%Cx&(BWL^R}oCO|{#S9Dr zY9P$myv;`xs30XXB%&n3*T*V3KUXg?B|j-uuOhbqsG5Pnrosxy%uOvxRH(?!$t$+1 zuvG%9umZ9{!um=IU?nBlwn`Dc0SeCfMX3s=dM0`XN_Jcd3JNwwDQQ+gE^bimK%T8q zMoCG5mA-y?dAVM>v0i>ry1t>MrKP@sk-m|UE>MMTab;dfVufyAu`tKo-FP)SbBnaEtPap}qq8Pro9uK;KZ$Kp$>0P@@gdk5y^xri8eqgDQcR2imX$^P%AyZfVt8R(B=MLHPX880*6^HfC4UuTRpLnli-52T0 z=N|t$yY*O?fx|TsA8vnx{d~U@<=^P7Tzh`TER*9>=?^v;^jPg(wfqcwqC0o!l@+Gy zVoAE$+gMsBS~S;kZo6cmpLdR9i`$j#T^#wzF+aoK1Q%@G(6%+EW$W9(PQ5*s0~W51 z>wY#xGhyuxVfhW^XLgJK-+R&|Z|Zj23w?!*_u9)JINsnm1~m8hod(mz`}T@0Y`@9B z;(_HI9%g5Wi7$Q#zH77mBI&)=x%0%V^QU&~eG_@ybd85i^!Ibp{gWdy^wOl3|5B1$ zyi@a!rQ4Z#xzY=6zxGr=u=Yz_qVAucTN19VJztuAaK)#mJME;ZIjV2%&b9A(d$m`k z{rp$ko~ieb-ka3zHGkuUnZaN8-Ei);eH)u2HL)bhowe+tHGl2w?$Gdz63O7j*XC&5 zQ2xcMwIjx=&QR{c#&a9m_r|pBy{&e-v)$c1CcotJfjGT{OVdBpA9%(ZbD$#g_a7^7 zYx!*tJ-)Zu%sYQ|RxoR|%i2Qm0PRp|$?sFjtYp$Y3E4G8Uv^-QKI@!uZX#E&?HkoB zy$8HsmI|1ie(1efR<2e3Q^L`hvxXUcJ1rNr16}r~0+AeCy_pS__oqY0fM4|YcHnF*lc`HLL z`Ys#)m;DnI6g_{VR>bL9*S<9$iJSW3xHY?|*>9E44xg4z4s92H$7GiOa`Kuh;_>SX zvtzezU#Hx3TH>r^W8u?lGI^%)iFY`K{~r1FB=trU*0V$_4ip+^3@kh4{5A9 w7%AcV>EaBjtmdKI;Vst0HC8c`Tzg` literal 0 HcmV?d00001 diff --git a/resources/icons/ui/smile@2x.png b/resources/icons/ui/smile@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..acc439e9961b4f8cc76c2ff72c3bf6804d882163 GIT binary patch literal 2536 zcmZ9O2{hDeAIE3vB4f#t<%&$Bh?vDl&15NAS`Z=(sWD*~VEoEIqj_mjIOa&5&@U}o!zKz zcD867i3r7BCVBfn=|r-K1^`UxXwi`9L&bvW#K0g5nr;gDL7+wBtz{Sl`~#s9Od)P| z4&W1{U?1=ys1XznF$00YV3Xj>zGx>)>!0DGnJENMrIOJw7>!1Q(vVP6upbP8LZM)A zLztnVfrv1mgauKtbb}y@*566~$z$n5!3F!1ss5xO@K#=|Hz|Z_3W01D`uF*%lSuxz zP!Q#(E0I4K9ZQBGpm5l~nMHvnB9G`3!9G|jDcG4r3N+i2<{w0$;IL$$ErBMm|0jNy zG=XjD_#a(=oBpvXa%~0@MgFscW}vZ-Cqw{XhsG((?pnL5-NV|bT{0s)MA_J^x6ryVjf-_iqukcmz&uojPR5s1Wbe5>C#& zSL>~3)AoGyGOMq8sY^C7SpZW8LH#yYB{i=foKcrd*!v1O2MAp1!f++XsI2XH&eY9U(C#yBj z@8^Bu$UQf%+C2f0%0Uzb3;f1BN14O)QQ+Hc;pVXG+Qa?{T20;@iPTTHvP!H6S;?!2 z`33uJzQ(fXzisKo*x`Mgp^Wupu2-E{s#w^aXT2wwa3dTp^MrdOe_}qYSt*1VzhIsW z`@L0+?`>Zg&k`pT%CJ-Jo!H)0K2y3N&UZGJ>=}?TSBY-KW&xHxTvvG@3bG@eUF~*G z+4J?`CPCYGrv6SF*TO(M){~N%;qA6XD`p>Eq_R5(*LiQrN>?R+bI+Fch^<+Bmu9v| zl*XkrtA}HY7#(jC)aHZK>aa!=ae;dJt*g@a9?02^(SRYji8Tn7^>!h{2kuI_RWlHJ z{Qm9vf=fmfjcv^eS&SEfZ2Sr)@zze0S_jumMuf00y&c->E$$RLkRDTB6552Xk{=#= z{4&Y{_8Naz_{TY(mTY0>yu6QyQWfts9dXO6mgUA+NB7j_B<0DU)mqU7No{yY%@p~T zWt#&l)OMc!goI&J*^u5vo3T|GBrKUCHoiIzGXAV0&J~vrXg4*{Lm~kCKLF zv13DBmt+PMW=g{V=;2@TTIM$ymEWKHHD=D`_OQ9bENE4)G2iD8w~%h-0fh~>1%cu! zvaoF!^Raf$CSjEOV9r-?dVTv>4^PR>n2_9hnAewU>|;7@;omh@&vINN!r>w}h)>f!WXU69vAL|cJ< zQ_X?=C}k6!y)eb`rfUVIFm5<}@p3%S*$V0#pgX2^ZrA;cYu86~km>0CU9Z2+ zl0veJZx)m!O$~0O7PU-G=gGBJza2ucQoSQ4_x=e zvQg<-!;5Xqxtr5aklsikret_TVoon=QhIgAlD~!UX_%askbrgmChp#C(HEQDBj}y@?h2o1 zypdtCn|RJF(WlcFzFdy|iY<*BpO8{yszI-zIKSkN!^JB%wffHrjTkF(Sr%W8Kec-^ zxaVX0o9l>kW+jVoTg!^=*3pTt+V?zppgfkwf~~E`{29lk3SM`%-mNO_e3pdm)vigr z9gR3}KfH=&I;%7#tg`cwyQ;2eH~eh zzJ#-s&#{H7?sXZRzV9sriSXymA`jHVyH z$^{cI?$jVC@h=AzW<4anoKj72ipy)?ryuarKQ6E{zl1J2pH!~mpmKVKi_ZipMA^E3 z6og9~U*P-A4#4+$##T!?4e$F34@H^0hw}s6QqxeG;U4hau)=fRS}R`dX~$^E_BeH* za;qsz-aIm6I&kQ`XCgaNHCk!?qT%f6toresOeq~2(8wC$8@P-ND$}@5iX3QCHCj5H zH<^o5`}}*Ug-3*b>{`MV@68A*G)5!#V3Eh=fW}108JixJ^tU{9e6Z*;vAU15uXsL! zFHRC1Ug~<8RaGAA45^jn=dK)iVKfM+znFXTE_IxBgr~(y8CM>GMW|Zd`x|f>USxcknocVD%jxcgd zfG(#5gMRb7dA5SlYzlU^eg^YQDN=l$tH;@c#uBXxw87f`yatAlVISi$sxM%|#yAYlWF)RN literal 0 HcmV?d00001 diff --git a/resources/icons/ui/speech-bubbles-comment-option.png b/resources/icons/ui/speech-bubbles-comment-option.png new file mode 100644 index 0000000000000000000000000000000000000000..3ec0165dbf07076626228cb4ce49dfd3fb2d36d4 GIT binary patch literal 1122 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz#^NA%Cx&(BWL^R}oCO|{#X!Z^ zL734=V|E2lK}u#wL`j6Nk5zJhu3lnFep0GlMQ#C5H3Nf9g%yyQn_7~nP?4LHS8P>b zs{~eI1!RMS^_3LBN=mYAl_Got6rA&mQWZ?~O!N$t?6?#Z6l{u8(yW49+@RWlJX@uV zl9B=|ef{$Ca=mh6z5JqdeM3u2OML?)eIp}XpbFjM%Dj@q3f;V7Wr!g#b6ir3lZ!G7 zN;32F6hP)CCgqow*eWT3EP?~5J97)*7UdN~eFgNNennz|zM-ChKHOxWMjN0Xt(=Qe z6HD@oLh|!->_AS-%*!rLPAo_TInYKQT?N!i8-0*FklY3FG*}eqYdbEWPFM)qaost- zESG_SX}YJ2V@L$&+i9o0MH403`=>5lIwdix%PBBL+*>2cMIcL>nKydI?u>YWmMIyQ@1yq}%9H$foD!XJnq8`I$E7*_^{Se>A7>`~7?0 z{nULkBXXQ0;~M8o`1ko`IFsuH_SGMRpFOa42@7CY8j;)3T_E)BAm0s^><{eE5+&{( zGXBA#xmtqz`$O#$fe~UaZ?i5}*pwytQ}U3N>DS*!e^?7_*=3@>x^oq)fn;yccaG>= z>jG9SyKdg`NF(FST7!F{PrG?6!V~NtD0u8!9q9a+i{-4!)NOv1?#CaP<%AwwYsR(G zA|gL${@Wb>m3$fcZ#KPN^Q1n0`&XH&+w31VNtQJBHr^6FVz%Mi)1^j|Q{J`jpTK?Y zlli3moYV9^d~ut5?vwEC^NN@5>%|*CDcu`=J$u#k{`dp4D)-J=kp1B8^_;CAG7L?s ztlc&3kFJZe|9I}fW6{z=TLtl>o%d&azi~S|I$!l_R>kjE4ab&hSS!kwJIR-6IbOQ= zdvE5gX)3Xcj@3r&31pv|E?F(U?RMDr$#o2uCGK*vzp3LqDeCp>p#iVaRm~fW8SLrT zQj(u1viKy2e3zJHH`9G(HSf85E6=Ogw5V#ZpY^-Fr2jfgO;g|nIq%d3<$u^-d@{`J zI2Cn4J~T%3$-V~RjXn36%MC<&FR>Q0iM$Z8F!Nc-w2sL;dJfOaybJF``S&!|U8tWQ zZ57b&*v9SXDBpg0K~?O|x=Y*2n(Z!HO_>;SY6YJJ`{g%Huf!yaS%juc4&aKv@aDXu z?2Fo+)X{nT?f-EF$f^k|)i&m$#w^}nP z8oL?gV>%x-o%B;vOM+>wLpPN&mXcEG(22IwGiTm8_uYHn`Q3YezxT&`IRXCO+7Lqs z007V?`rw0<9=By0>dL*Akua%rD%>D%4?tr-^p!FJb9~5LC3twtR6O9<1xi3PBP5I$ z=10Orv6%>JH2VY%Az*TpXaE2!z$il|jYowEnDHzwM&M%l0fAA*TgOOK*arwN&c!s$ zF97DrPNcyc5GaI=sVf8qgJBb+>6joq;ZwOXb1{wK@i-VHlF#QO`1S~P;z^_}8jVKU z*dgugtd$6BZW4<}6a$>e+< z#NvKZrPPNMP&r6jgbng@XJsK)sS)FuNTc%Di6Lxuyz3S<1}lymMdi@82x5`{MtmBH zMQ-u<2d|H!Kb$I6yF!$ef8U@hWa5E{2><}2hcfaDW&)juSW-H?9m0Pr;>x+e4;5-!VkVC3OIpfVGu4$_c@daG)u>ue8aTVO&SPZSU)@7Hshkn-jmbz|+66ryQn?e9i+?^U1q8bj*3zq&_4QV9 znqTXTKh=s3N-lqtv1I%w_`P{=(%86)M6A(Wh`r!A4r5eojJ+$nTM9enP4dX;b3jd; z?siv1Xc(qCln|0bq_>NF%{qWC1b4p|lw`6d!+_E#InDd2YRp*X2{NHe1rl3|gK>57 zE|kPEdPE=rQ_@7CVlZ<0XJy>?QMKd&NGKFX@V=exNx0$_(pG8QhHT|ZdT=UmDGDG;ALMKRqUbja_XmL^L zpj$@k(3fP%Pv#C;woF;{3*QBzzSq8C@$OQl ze+fH{K+w-q`&O1;Ai*2Ot~G}Y@98Q8?wia+^oXD~_YW2grHt++1#(($<>mgLF0xEz z(qG6okIQ$9MuLAyS;ZU*ZqI}+<&|{54jtJ1@mA-QBY6sm1bLw&5B+%l;-d&rftxTq z>()~PE9U-_1=64I@9C=D~Z2r9K9YE_$%fH{r4$ps*s_zwwBQk zo|X^t&rwTN^XX25NhO_b?22WR;;|JUK6#;j#y7T*WVce151(l|==x5t40Mff%y%xU z*hbNanwxcw)Xc28dd|-9S@KY8JB|>xG4{v9wku6;9%@wQTEdlvlA*G+Euk97iWH*-EX*j^yf#c5iD?ZuDv)su4av7qWf6f7eTmIC+fD7)&!*mzl*y1v2eww#ym#X@~y-m@z2!mm5l$vb>e`v3KI zbiOh$?mjiNaCYBxvf#Z_ znE&dg(KCacZT$ya6_v#e({seP2C=r5{eu!H+^W$apw+`;d)B}=>92TKwJNAK@{EYc zo+P`LENQJUyHQPgX~#aMu5^$;@_i&l=Z7}~bfUTiF18ZhAhZzc;q>lDw@W+96|q+} z-IsyDm+ntq9;m)q?=swz0zHijxDg}DJ7S6LtAZ z(PCZ~c<^_fW8@qaS#dS|ilzSquuUBHc6UUE4!rW?+jb5F*{*90FG2v;;gwqRM1%OP OPmJj0k8kvdO#ch0yEAA2 literal 0 HcmV?d00001 diff --git a/resources/icons/ui/vertical-ellipsis.png b/resources/icons/ui/vertical-ellipsis.png new file mode 100644 index 0000000000000000000000000000000000000000..5ce9d78f26a1fc9d0cf445e10c2d458e45114f0f GIT binary patch literal 830 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz#^NA%Cx&(BWL^R}oCO|{#S9FB z8$g)xg!DSry^7odplSvNn+hu+GdHy)QK2F?C$HG5 z!d3~a!V1U+3F|8Y3;nDA{o-C@9zzrKDK}xwt{K19`Se z86_nJR{Hwo<>h+i#(Mch>H3D2mX`VkM*2oZx=P7{9O-#x!EwNQn0$BtHP@oQ?x4bNW&!@Rh#Lsf*ZtT*(bE2~*BGAXLn|h%K+BRkU|%r&NS;asJKc%*R$t zyf}U8)DO(lc`casAINQv`5{`voZ52h>WZrVkIu>G9`gNJZSD8Ze_5>6f$wQdcDvGl z9I0Xax8rx@@|?dsf7t$do~Z5#4CXn%;*I#X;;a;x?F;jNFKrd+ed@}qaeU39mpNd2 zWdq837a9H!WWJLHbWN`5q>pcI8(dj8S-0$M7JJ|((^zJp`CHfhGOTKB6#elIXr|~< ziK{O`Ydl+u;I)X whl@)#M=SmL_=G>>@3r6B$yY>NuigKw%(*N>UsB(GFDOxay85}Sb4q9e0OAfg{{R30 literal 0 HcmV?d00001 diff --git a/resources/icons/ui/vertical-ellipsis@2x.png b/resources/icons/ui/vertical-ellipsis@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..9af0c042684fe607641381b415a36f11601a145e GIT binary patch literal 1041 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=jKx9jP7LeL$-D$|I14-?iy0UM zH-IqX3H7fbKm{q8ArU1JzCKpT`MG+DDfvmMdKI|^K-CNkHWgMtW^QUpqC!P(PF}H9 zg{=};g%ywu64qBz04piUwpEJo4N!2-FG^J~)icpEP_pAvP*AWbN=dT{a&d!d2l8x{ zGD=Dctn~HE%ggo3jrH=2()A53EiLs8jP#9+bb%^#i!1X=5-W7`ij^UTz|3(;Elw`V zEGWs$&r<-Io0ybeT4JlD1hNPYpzh2qfLoMT4D}VzfBF@P1^R}12KsQ5ff{XqezbBf zN=+=uFAB-e&#?nJEi*5>I61K(734r0eRLI2D{b^a?m%)E#M59=ps($?fI49zXvcNu z__ACE1|~O87srqa#<$VlUd)aHyKe3Lk zUuI%)uxI!wu6L1rD6{x^ha{YQeNmagW^CCDtEV&a|JceMVa;dx3Ls zmXyp=OP+7`4bQa|YR~)c^@}eu$z6WpAFGGxZTaQ=wZ6HBr~I8>)7CD2KyU-|h8z2P ze(quXe!%nsW8y*w4FRqerZBFaQqddEjOh;NLLbO}e%B!VKr-XrvlR~*U&KETKL67B z{<2=}{~SxYrXG9g&1by%9`_vO&wrcVfH`6f?|%keejrf1LCoQ?M|AVzSqwG#(`Nyl z*Idfp(YTkVg&{6%QJCCC#;sGn3tivEZ1PP?N@mf$YfLpAaQ}YDS%1aE!mC)~&HFlI zlO3DtEzTKUe_M9r3v-&MO4*@XaveG^1^AsC0~AC)EIkkr-Y9u0?)L1(dybxszI*B9 z`Y%?sFK%zy`Mk4UEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10f+@+{-GzZ+Rj;xUkjGiz z5m^kh={g8AI%&+V01C2~c>21sKV+5`ke3in`CG`qz_`NG#WBR=_}a+_y_f<;+Wr@> zJ>c5yzb=VpsA zRlQ!Rbn=J))Ax^?9V`PLG;7LabjwZPnYmW~_T$|jECZGXSWXC8dP4BXyd81YLJge^ zK8ziabq>i%^~ypH!i*xk1=%m!U;WP06`GKFI&(&x-(T^M`vb)um8$c5i7vG=^N3%y zQt8CW&s84+9nbWX z?E3H0mb>rK`H6kE<&SKa-FIN&`76p>Kd>Y?7v1=>H*Q&fTf_Cxt9^4luWuEzzVGc5 z!lSfSXzD`dx?@2(3?C-Nv573W-t*+Zq&Q{~hibQ?3NO|ZU78MIHtdnf?2-HvOxRTR z3a0hA&-hq$!I1R;_au{ESrbO4l)m?wr(NdVTiVE!;gDLA{CaoDvV-qU&t2|(quk!A zxg-9gP2NC6cwc)I$ztaD0e0svKR8sz{0 diff --git a/resources/icons/vertical-ellipsis.png b/resources/icons/vertical-ellipsis.png deleted file mode 100644 index 82714451d31182dff0ac1748d05c1a0ffb0d860f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 509 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE0wix1Z>k4UEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10f+@+{-GzZ+Rj;xUkjGiz z5m^kh={g8AI%&+V01C2~c>21sKV%i-H5HI%SYiqkI_>G=7~*mK?9`2%hYbW=>wBb} z)e5BVq%u2d^*@mHQ9EUnx7pEZv1klyjKm@nB?b58f0Q+z?A&;+oL^2D?NY%?PN}v7CMhd8i!PC{xWt~$(695Rp BspbFx diff --git a/resources/login.png b/resources/login.png new file mode 100644 index 0000000000000000000000000000000000000000..e65084ef91b9e8d4e51072ff352941fb72c189c1 GIT binary patch literal 5523 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 J1aAHE{{g+5m}~$5 literal 0 HcmV?d00001 diff --git a/resources/register.png b/resources/register.png new file mode 100644 index 0000000000000000000000000000000000000000..e65084ef91b9e8d4e51072ff352941fb72c189c1 GIT binary patch literal 5523 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 J1aAHE{{g+5m}~$5 literal 0 HcmV?d00001 diff --git a/resources/res.qrc b/resources/res.qrc index 13a7d309..59d6559d 100644 --- a/resources/res.qrc +++ b/resources/res.qrc @@ -1,33 +1,58 @@ - icons/left-chevron.png - icons/left-angle.png - icons/add-file.png - icons/send-button.png - icons/cog.png - icons/search.png - icons/plus-symbol.png - icons/clip-dark.png - icons/share-dark.png - icons/user-shape.png - icons/power-button-off.png - icons/smile.png - icons/error.png + icons/ui/cursor.png + icons/ui/cursor@2x.png + icons/ui/settings.png + icons/ui/settings@2x.png + icons/ui/smile.png + icons/ui/smile@2x.png + icons/ui/speech-bubbles-comment-option.png + icons/ui/speech-bubbles-comment-option@2x.png + icons/ui/vertical-ellipsis.png + icons/ui/vertical-ellipsis@2x.png + icons/ui/power-button-off.png + icons/ui/power-button-off@2x.png + icons/ui/plus-black-symbol.png + icons/ui/plus-black-symbol@2x.png + icons/ui/add-square-button.png + icons/ui/add-square-button@2x.png + icons/ui/cloud-storage-uploading-option.png + icons/ui/cloud-storage-uploading-option@2x.png + icons/ui/paper-clip-outline.png + icons/ui/paper-clip-outline@2x.png + icons/ui/angle-pointing-to-left.png + icons/ui/angle-pointing-to-left@2x.png icons/emoji-categories/people.png + icons/emoji-categories/people@2x.png icons/emoji-categories/nature.png + icons/emoji-categories/nature@2x.png icons/emoji-categories/foods.png + icons/emoji-categories/foods@2x.png icons/emoji-categories/activity.png + icons/emoji-categories/activity@2x.png icons/emoji-categories/travel.png + icons/emoji-categories/travel@2x.png icons/emoji-categories/objects.png + icons/emoji-categories/objects@2x.png icons/emoji-categories/symbols.png + icons/emoji-categories/symbols@2x.png icons/emoji-categories/flags.png - - icons/vertical-ellipsis.png + icons/emoji-categories/flags@2x.png nheko.png + + splash.png + splash@2x.png + + register.png + register@2x.png + + login.png + login@2x.png + nheko-512.png nheko-256.png nheko-128.png @@ -37,16 +62,10 @@ - fonts/OpenSans/OpenSans-Light.ttf - fonts/OpenSans/OpenSans-LightItalic.ttf fonts/OpenSans/OpenSans-Regular.ttf fonts/OpenSans/OpenSans-Italic.ttf fonts/OpenSans/OpenSans-Bold.ttf - fonts/OpenSans/OpenSans-BoldItalic.ttf fonts/OpenSans/OpenSans-Semibold.ttf - fonts/OpenSans/OpenSans-SemiboldItalic.ttf - fonts/OpenSans/OpenSans-ExtraBold.ttf - fonts/OpenSans/OpenSans-ExtraBoldItalic.ttf fonts/EmojiOne/emojione-android.ttf diff --git a/resources/splash.png b/resources/splash.png new file mode 100644 index 0000000000000000000000000000000000000000..4f89112fa44eb62df87da26329605b65b2f0db41 GIT binary patch literal 11395 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 J1aAHE{{g+5m}~$5 literal 0 HcmV?d00001 diff --git a/resources/splash@2x.png b/resources/splash@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..3c39b0be499118d6350c783bbbd428ab2899abd8 GIT binary patch literal 24776 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 client, QWidget *parent) sideBarMainLayout_->setSpacing(0); sideBarMainLayout_->setMargin(0); + sidebarActions_ = new SideBarActions(this); + sideBarLayout_->addLayout(sideBarTopLayout_); sideBarLayout_->addLayout(sideBarMainLayout_); + sideBarLayout_->addWidget(sidebarActions_); sideBarTopWidget_ = new QWidget(sideBar_); sideBarTopWidget_->setStyleSheet("background-color: #d6dde3; color: #ebebeb;"); diff --git a/src/Deserializable.cc b/src/Deserializable.cc index 9bef7d68..6033f898 100644 --- a/src/Deserializable.cc +++ b/src/Deserializable.cc @@ -23,8 +23,7 @@ DeserializationException::DeserializationException(const std::string &msg) : msg_(msg) -{ -} +{} const char * DeserializationException::what() const noexcept diff --git a/src/EmojiPanel.cc b/src/EmojiPanel.cc index 2730ddb5..16299ace 100644 --- a/src/EmojiPanel.cc +++ b/src/EmojiPanel.cc @@ -63,43 +63,53 @@ EmojiPanel::EmojiPanel(QWidget *parent) categoriesLayout->setSpacing(6); categoriesLayout->setMargin(5); + QIcon icon; + auto peopleCategory = new FlatButton(emojiCategories); - peopleCategory->setIcon(QIcon(":/icons/icons/emoji-categories/people.png")); + icon.addFile(":/icons/icons/emoji-categories/people.png"); + peopleCategory->setIcon(icon); peopleCategory->setIconSize(QSize(categoryIconSize_, categoryIconSize_)); peopleCategory->setForegroundColor("gray"); auto natureCategory_ = new FlatButton(emojiCategories); - natureCategory_->setIcon(QIcon(":/icons/icons/emoji-categories/nature.png")); + icon.addFile(":/icons/icons/emoji-categories/nature.png"); + natureCategory_->setIcon(icon); natureCategory_->setIconSize(QSize(categoryIconSize_, categoryIconSize_)); natureCategory_->setForegroundColor("gray"); auto foodCategory_ = new FlatButton(emojiCategories); - foodCategory_->setIcon(QIcon(":/icons/icons/emoji-categories/foods.png")); + icon.addFile(":/icons/icons/emoji-categories/foods.png"); + foodCategory_->setIcon(icon); foodCategory_->setIconSize(QSize(categoryIconSize_, categoryIconSize_)); foodCategory_->setForegroundColor("gray"); auto activityCategory = new FlatButton(emojiCategories); - activityCategory->setIcon(QIcon(":/icons/icons/emoji-categories/activity.png")); + icon.addFile(":/icons/icons/emoji-categories/activity.png"); + activityCategory->setIcon(icon); activityCategory->setIconSize(QSize(categoryIconSize_, categoryIconSize_)); activityCategory->setForegroundColor("gray"); auto travelCategory = new FlatButton(emojiCategories); - travelCategory->setIcon(QIcon(":/icons/icons/emoji-categories/travel.png")); + icon.addFile(":/icons/icons/emoji-categories/travel.png"); + travelCategory->setIcon(icon); travelCategory->setIconSize(QSize(categoryIconSize_, categoryIconSize_)); travelCategory->setForegroundColor("gray"); auto objectsCategory = new FlatButton(emojiCategories); - objectsCategory->setIcon(QIcon(":/icons/icons/emoji-categories/objects.png")); + icon.addFile(":/icons/icons/emoji-categories/objects.png"); + objectsCategory->setIcon(icon); objectsCategory->setIconSize(QSize(categoryIconSize_, categoryIconSize_)); objectsCategory->setForegroundColor("gray"); auto symbolsCategory = new FlatButton(emojiCategories); - symbolsCategory->setIcon(QIcon(":/icons/icons/emoji-categories/symbols.png")); + icon.addFile(":/icons/icons/emoji-categories/symbols.png"); + symbolsCategory->setIcon(icon); symbolsCategory->setIconSize(QSize(categoryIconSize_, categoryIconSize_)); symbolsCategory->setForegroundColor("gray"); auto flagsCategory = new FlatButton(emojiCategories); - flagsCategory->setIcon(QIcon(":/icons/icons/emoji-categories/flags.png")); + icon.addFile(":/icons/icons/emoji-categories/flags.png"); + flagsCategory->setIcon(icon); flagsCategory->setIconSize(QSize(categoryIconSize_, categoryIconSize_)); flagsCategory->setForegroundColor("gray"); diff --git a/src/EmojiPickButton.cc b/src/EmojiPickButton.cc index 4f7dd59e..06d97d4c 100644 --- a/src/EmojiPickButton.cc +++ b/src/EmojiPickButton.cc @@ -22,8 +22,7 @@ EmojiPickButton::EmojiPickButton(QWidget *parent) : FlatButton(parent) , panel_{ nullptr } -{ -} +{} void EmojiPickButton::enterEvent(QEvent *e) diff --git a/src/Login.cc b/src/Login.cc index d0dd1ea9..16c6f172 100644 --- a/src/Login.cc +++ b/src/Login.cc @@ -27,8 +27,7 @@ LoginRequest::LoginRequest() {} LoginRequest::LoginRequest(QString username, QString password) : user_(username) , password_(password) -{ -} +{} QByteArray LoginRequest::serialize() noexcept diff --git a/src/LoginPage.cc b/src/LoginPage.cc index fd7fede3..bbe2a134 100644 --- a/src/LoginPage.cc +++ b/src/LoginPage.cc @@ -42,16 +42,16 @@ LoginPage::LoginPage(QSharedPointer client, QWidget *parent) top_bar_layout_->addStretch(1); QIcon icon; - icon.addFile(":/icons/icons/left-angle.png", QSize(), QIcon::Normal, QIcon::Off); + icon.addFile(":/icons/icons/ui/angle-pointing-to-left.png"); back_button_->setIcon(icon); - back_button_->setIconSize(QSize(24, 24)); + back_button_->setIconSize(QSize(32, 32)); - QIcon advanced_settings_icon; - advanced_settings_icon.addFile(":/icons/icons/cog.png", QSize(), QIcon::Normal, QIcon::Off); + QIcon logo; + logo.addFile(":/logos/login.png"); logo_ = new QLabel(this); - logo_->setPixmap(QPixmap(":/logos/nheko-128.png")); + logo_->setPixmap(logo.pixmap(128)); logo_layout_ = new QHBoxLayout(); logo_layout_->setContentsMargins(0, 0, 0, 20); diff --git a/src/MainWindow.cc b/src/MainWindow.cc index 06f8245c..8cb2b562 100644 --- a/src/MainWindow.cc +++ b/src/MainWindow.cc @@ -176,8 +176,8 @@ MainWindow::showChatPage(QString userid, QString homeserver, QString token) new LoadingIndicator(this), [=](LoadingIndicator *indicator) { indicator->deleteLater(); }); spinner_->setColor("#acc7dc"); - spinner_->setFixedHeight(120); - spinner_->setFixedWidth(120); + spinner_->setFixedHeight(100); + spinner_->setFixedWidth(100); spinner_->start(); } diff --git a/src/QuickSwitcher.cc b/src/QuickSwitcher.cc index 29876f99..5b459eaf 100644 --- a/src/QuickSwitcher.cc +++ b/src/QuickSwitcher.cc @@ -24,8 +24,7 @@ RoomSearchInput::RoomSearchInput(QWidget *parent) : TextField(parent) -{ -} +{} bool RoomSearchInput::focusNextPrevChild(bool next) diff --git a/src/Register.cc b/src/Register.cc index 2e2c227c..db3ce4f9 100644 --- a/src/Register.cc +++ b/src/Register.cc @@ -25,8 +25,7 @@ RegisterRequest::RegisterRequest(const QString &username, const QString &password) : user_(username) , password_(password) -{ -} +{} QByteArray RegisterRequest::serialize() noexcept diff --git a/src/RegisterPage.cc b/src/RegisterPage.cc index e485de7d..bcd02be0 100644 --- a/src/RegisterPage.cc +++ b/src/RegisterPage.cc @@ -38,17 +38,20 @@ RegisterPage::RegisterPage(QSharedPointer client, QWidget *parent) back_button_->setMinimumSize(QSize(30, 30)); QIcon icon; - icon.addFile(":/icons/icons/left-angle.png", QSize(), QIcon::Normal, QIcon::Off); + icon.addFile(":/icons/icons/ui/angle-pointing-to-left.png"); back_button_->setIcon(icon); - back_button_->setIconSize(QSize(24, 24)); + back_button_->setIconSize(QSize(32, 32)); back_layout_->addWidget(back_button_, 0, Qt::AlignLeft | Qt::AlignVCenter); back_layout_->addStretch(1); + QIcon logo; + logo.addFile(":/logos/register.png"); + logo_ = new Avatar(this); - logo_->setImage(QImage(":/logos/nheko-128.png")); - logo_->setSize(80); + logo_->setIcon(logo); + logo_->setSize(128); logo_layout_ = new QHBoxLayout(); logo_layout_->setMargin(0); diff --git a/src/SideBarActions.cc b/src/SideBarActions.cc new file mode 100644 index 00000000..d4874c6a --- /dev/null +++ b/src/SideBarActions.cc @@ -0,0 +1,65 @@ +#include +#include + +#include "Config.h" +#include "Theme.h" +#include + +SideBarActions::SideBarActions(QWidget *parent) + : QWidget{ parent } +{ + setFixedHeight(conf::sidebarActions::height); + + QSizePolicy sizePolicy(QSizePolicy::Preferred, QSizePolicy::Fixed); + setSizePolicy(sizePolicy); + + layout_ = new QHBoxLayout(this); + layout_->setMargin(0); + + QIcon settingsIcon; + settingsIcon.addFile(":/icons/icons/ui/settings.png"); + + QIcon createRoomIcon; + createRoomIcon.addFile(":/icons/icons/ui/add-square-button.png"); + + QIcon joinRoomIcon; + joinRoomIcon.addFile(":/icons/icons/ui/speech-bubbles-comment-option.png"); + + settingsBtn_ = new FlatButton(this); + settingsBtn_->setIcon(settingsIcon); + settingsBtn_->setCornerRadius(conf::sidebarActions::iconSize / 2); + settingsBtn_->setIconSize( + QSize(conf::sidebarActions::iconSize, conf::sidebarActions::iconSize)); + + createRoomBtn_ = new FlatButton(this); + createRoomBtn_->setIcon(createRoomIcon); + createRoomBtn_->setCornerRadius(conf::sidebarActions::iconSize / 2); + createRoomBtn_->setIconSize( + QSize(conf::sidebarActions::iconSize, conf::sidebarActions::iconSize)); + + joinRoomBtn_ = new FlatButton(this); + joinRoomBtn_->setIcon(joinRoomIcon); + joinRoomBtn_->setCornerRadius(conf::sidebarActions::iconSize / 2); + joinRoomBtn_->setIconSize( + QSize(conf::sidebarActions::iconSize, conf::sidebarActions::iconSize)); + + layout_->addWidget(createRoomBtn_); + layout_->addWidget(joinRoomBtn_); + layout_->addWidget(settingsBtn_); +} + +SideBarActions::~SideBarActions() {} + +void +SideBarActions::resizeEvent(QResizeEvent *event) +{ + Q_UNUSED(event); + + if (width() <= ui::sidebar::SmallSize) { + joinRoomBtn_->hide(); + createRoomBtn_->hide(); + } else { + joinRoomBtn_->show(); + createRoomBtn_->show(); + } +} diff --git a/src/TextInputWidget.cc b/src/TextInputWidget.cc index b90a7caa..0d5e1102 100644 --- a/src/TextInputWidget.cc +++ b/src/TextInputWidget.cc @@ -45,7 +45,7 @@ TextInputWidget::TextInputWidget(QWidget *parent) { setFont(QFont("Emoji One")); - setFixedHeight(50); + setFixedHeight(conf::textInput::height); setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed); setCursor(Qt::ArrowCursor); setStyleSheet("background-color: #fff;"); @@ -55,15 +55,13 @@ TextInputWidget::TextInputWidget(QWidget *parent) topLayout_->setContentsMargins(15, 0, 15, 5); QIcon send_file_icon; - send_file_icon.addFile(":/icons/icons/clip-dark.png", QSize(), QIcon::Normal, QIcon::Off); + send_file_icon.addFile(":/icons/icons/ui/paper-clip-outline.png"); sendFileBtn_ = new FlatButton(this); - sendFileBtn_->setForegroundColor(QColor("#acc7dc")); sendFileBtn_->setIcon(send_file_icon); sendFileBtn_->setIconSize(QSize(24, 24)); spinner_ = new LoadingIndicator(this); - spinner_->setColor("#acc7dc"); spinner_->setFixedHeight(32); spinner_->setFixedWidth(32); spinner_->hide(); @@ -79,19 +77,16 @@ TextInputWidget::TextInputWidget(QWidget *parent) input_->setStyleSheet("color: #333333; border: none; padding-top: 5px; margin: 0 5px"); sendMessageBtn_ = new FlatButton(this); - sendMessageBtn_->setForegroundColor(QColor("#acc7dc")); QIcon send_message_icon; - send_message_icon.addFile( - ":/icons/icons/share-dark.png", QSize(), QIcon::Normal, QIcon::Off); + send_message_icon.addFile(":/icons/icons/ui/cursor.png"); sendMessageBtn_->setIcon(send_message_icon); sendMessageBtn_->setIconSize(QSize(24, 24)); emojiBtn_ = new EmojiPickButton(this); - emojiBtn_->setForegroundColor(QColor("#acc7dc")); QIcon emoji_icon; - emoji_icon.addFile(":/icons/icons/smile.png", QSize(), QIcon::Normal, QIcon::Off); + emoji_icon.addFile(":/icons/icons/ui/smile.png"); emojiBtn_->setIcon(emoji_icon); emojiBtn_->setIconSize(QSize(24, 24)); diff --git a/src/TopRoomBar.cc b/src/TopRoomBar.cc index 3f93cad3..5a1f2d25 100644 --- a/src/TopRoomBar.cc +++ b/src/TopRoomBar.cc @@ -62,13 +62,11 @@ TopRoomBar::TopRoomBar(QWidget *parent) textLayout_->addWidget(topicLabel_); settingsBtn_ = new FlatButton(this); - settingsBtn_->setForegroundColor(QColor("#acc7dc")); settingsBtn_->setFixedSize(buttonSize_, buttonSize_); settingsBtn_->setCornerRadius(buttonSize_ / 2); QIcon settings_icon; - settings_icon.addFile( - ":/icons/icons/vertical-ellipsis.png", QSize(), QIcon::Normal, QIcon::Off); + settings_icon.addFile(":/icons/icons/ui/vertical-ellipsis.png"); settingsBtn_->setIcon(settings_icon); settingsBtn_->setIconSize(QSize(buttonSize_ / 2, buttonSize_ / 2)); diff --git a/src/UserInfoWidget.cc b/src/UserInfoWidget.cc index 09a75a3b..04cfec74 100644 --- a/src/UserInfoWidget.cc +++ b/src/UserInfoWidget.cc @@ -29,7 +29,7 @@ UserInfoWidget::UserInfoWidget(QWidget *parent) , user_id_("@user:homeserver.org") , logoutModal_{ nullptr } , logoutDialog_{ nullptr } - , logoutButtonSize_{ 32 } + , logoutButtonSize_{ 20 } { QSizePolicy sizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Fixed); setSizePolicy(sizePolicy); @@ -77,15 +77,13 @@ UserInfoWidget::UserInfoWidget(QWidget *parent) buttonLayout_->setMargin(0); logoutButton_ = new FlatButton(this); - logoutButton_->setForegroundColor(QColor("#555459")); - logoutButton_->setFixedSize(logoutButtonSize_, logoutButtonSize_); logoutButton_->setCornerRadius(logoutButtonSize_ / 2); QIcon icon; - icon.addFile(":/icons/icons/power-button-off.png", QSize(), QIcon::Normal, QIcon::Off); + icon.addFile(":/icons/icons/ui/power-button-off.png"); logoutButton_->setIcon(icon); - logoutButton_->setIconSize(QSize(logoutButtonSize_ / 2, logoutButtonSize_ / 2)); + logoutButton_->setIconSize(QSize(logoutButtonSize_, logoutButtonSize_)); buttonLayout_->addWidget(logoutButton_); diff --git a/src/WelcomePage.cc b/src/WelcomePage.cc index 5ea145f7..1fc0c19b 100644 --- a/src/WelcomePage.cc +++ b/src/WelcomePage.cc @@ -29,11 +29,14 @@ WelcomePage::WelcomePage(QWidget *parent) auto topLayout_ = new QVBoxLayout(this); topLayout_->setSpacing(20); - QFont headingFont("Open Sans", 23); - QFont subTitleFont("Open Sans", 22); + QFont headingFont("Open Sans", 22); + QFont subTitleFont("Open Sans", 21); + + QIcon icon; + icon.addFile(":/logos/splash.png"); auto logo_ = new QLabel(this); - logo_->setPixmap(QPixmap(":/logos/nheko-256.png")); + logo_->setPixmap(icon.pixmap(256)); logo_->setAlignment(Qt::AlignCenter); QString heading(tr("Welcome to nheko! The desktop client for the Matrix protocol."));