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;
}
-// Button settings.
-namespace btn
-{
-static const int fontSize = 20;
-static const int cornerRadius = 3;
+namespace sidebarActions {
+static constexpr int height = textInput::height;
+static constexpr int iconSize = 28;
}
+// Button settings.
+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 <QList>
#include <QMap>
-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 <QHBoxLayout>
+#include <QResizeEvent>
+
+#include <FlatButton.h>
+
+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 MsgContent>
class MessageEvent : public RoomEvent<MessageEventContent>
{
@@ -52,9 +50,9 @@ MessageEvent<MsgContent>::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 Content>
class RoomEvent : public Event<Content>
{
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 Content>
class StateEvent : public RoomEvent<Content>
{
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 <QHash>
#include <QObject>
-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 806b166d..00000000
--- a/resources/icons/add-file.png
+++ /dev/null
Binary files differdiff --git a/resources/icons/clip-dark.png b/resources/icons/clip-dark.png
deleted file mode 100644
index c3c34fac..00000000
--- a/resources/icons/clip-dark.png
+++ /dev/null
Binary files differdiff --git a/resources/icons/cog.png b/resources/icons/cog.png
deleted file mode 100644
index 84311166..00000000
--- a/resources/icons/cog.png
+++ /dev/null
Binary files differdiff --git a/resources/icons/emoji-categories/activity.png b/resources/icons/emoji-categories/activity.png
index 7824765d..2d360762 100644
--- a/resources/icons/emoji-categories/activity.png
+++ b/resources/icons/emoji-categories/activity.png
Binary files differdiff --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 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg
- xmlns:dc="http://purl.org/dc/elements/1.1/"
- xmlns:cc="http://creativecommons.org/ns#"
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:svg="http://www.w3.org/2000/svg"
- xmlns="http://www.w3.org/2000/svg"
- xml:space="preserve"
- enable-background="new 0 0 24 24"
- viewBox="0 0 24 24"
- height="24px"
- width="24px"
- y="0px"
- x="0px"
- id="Слой_1"
- version="1.1"><metadata
- id="metadata4213"><rdf:RDF><cc:Work
- rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
- rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
- id="defs4211" /><g
- id="g4205"><path
- style="fill:#000000;fill-opacity:1"
- id="path4207"
- d="M12,0C5.373,0,0,5.372,0,12c0,6.627,5.373,12,12,12c6.628,0,12-5.373,12-12C24,5.372,18.628,0,12,0 M21.949,11H17.05c0.224-2.527,1.232-4.773,1.968-6.113C20.634,6.481,21.712,8.618,21.949,11 M13,11V2.051 c1.623,0.162,3.13,0.719,4.432,1.564C16.574,5.106,15.276,7.835,15.04,11H13z M11,11H8.961C8.723,7.835,7.425,5.106,6.568,3.615 C7.871,2.77,9.377,2.213,11,2.051V11z M11,13v8.949c-1.623-0.162-3.129-0.718-4.432-1.564C7.425,18.893,8.723,16.164,8.961,13H11z M15.04,13c0.236,3.164,1.534,5.893,2.392,7.385c-1.302,0.847-2.809,1.402-4.432,1.564V13H15.04z M4.982,4.887 C5.718,6.227,6.726,8.473,6.951,11h-4.9C2.289,8.618,3.367,6.481,4.982,4.887 M2.051,13h4.9c-0.226,2.527-1.233,4.771-1.969,6.113 C3.367,17.52,2.289,15.383,2.051,13 M19.018,19.113c-0.735-1.342-1.744-3.586-1.968-6.113h4.899 C21.712,15.383,20.634,17.52,19.018,19.113"
- fill="#010202" /></g></svg>
\ 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 00000000..d8f88711
--- /dev/null
+++ b/resources/icons/emoji-categories/activity@2x.png
Binary files differdiff --git a/resources/icons/emoji-categories/diversity.svg b/resources/icons/emoji-categories/diversity.svg
deleted file mode 100755
index 2498950f..00000000
--- a/resources/icons/emoji-categories/diversity.svg
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg
- xmlns:dc="http://purl.org/dc/elements/1.1/"
- xmlns:cc="http://creativecommons.org/ns#"
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:svg="http://www.w3.org/2000/svg"
- xmlns="http://www.w3.org/2000/svg"
- id="svg2"
- viewBox="0 0 32 32"
- height="32"
- width="32"
- version="1.1">
- <metadata
- id="metadata10">
- <rdf:RDF>
- <cc:Work
- rdf:about="">
- <dc:format>image/svg+xml</dc:format>
- <dc:type
- rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
- <dc:title></dc:title>
- </cc:Work>
- </rdf:RDF>
- </metadata>
- <defs
- id="defs8" />
- <path
- id="path4"
- d="M14 8c0-1.105 0.895-2 2-2s2 0.895 2 2c0 1.105-0.895 2-2 2s-2-0.895-2-2zM16 0c-8.837 0-16 7.163-16 16s7.163 16 16 16 16-7.163 16-16-7.163-16-16-16zM16 26c-1.105 0-2-0.895-2-2s0.895-2 2-2c1.105 0 2 0.895 2 2s-0.895 2-2 2zM16 16c-3.59 0-6.5 2.91-6.5 6.5s2.91 6.5 6.5 6.5c-7.18 0-13-5.82-13-13s5.82-13 13-13c3.59 0 6.5 2.91 6.5 6.5s-2.91 6.5-6.5 6.5z" />
-</svg>
diff --git a/resources/icons/emoji-categories/flags.png b/resources/icons/emoji-categories/flags.png
index 47f68375..9a52000f 100644
--- a/resources/icons/emoji-categories/flags.png
+++ b/resources/icons/emoji-categories/flags.png
Binary files differdiff --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 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg
- xmlns:dc="http://purl.org/dc/elements/1.1/"
- xmlns:cc="http://creativecommons.org/ns#"
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:svg="http://www.w3.org/2000/svg"
- xmlns="http://www.w3.org/2000/svg"
- xml:space="preserve"
- enable-background="new 0 0 24 24"
- viewBox="0 0 24 24"
- height="24px"
- width="24px"
- y="0px"
- x="0px"
- id="Слой_1"
- version="1.1"><metadata
- id="metadata6641"><rdf:RDF><cc:Work
- rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
- rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
- id="defs6639" /><g
- id="g6631"><polygon
- style="fill:#000000;fill-opacity:1"
- id="polygon6633"
- points="0,0 6.084,24 8,24 1.916,0 "
- fill="#010202" /><path
- style="fill:#000000;fill-opacity:1"
- id="path6635"
- d="M21,5h-4l-1-4H4l3,12h3l1,4h2h11L21,5z M6.563,3h7.875l2,8H8.563L6.563,3z M15.395,13l-2.856,1.904 L12.063,13H15.395z M19,13l-1.5-6h1.938l2,8H16L19,13z"
- fill="#010202" /></g></svg>
\ 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 00000000..45350593
--- /dev/null
+++ b/resources/icons/emoji-categories/flags@2x.png
Binary files differdiff --git a/resources/icons/emoji-categories/foods.png b/resources/icons/emoji-categories/foods.png
index 2443ece9..15c31069 100644
--- a/resources/icons/emoji-categories/foods.png
+++ b/resources/icons/emoji-categories/foods.png
Binary files differdiff --git a/resources/icons/emoji-categories/foods.svg b/resources/icons/emoji-categories/foods.svg
deleted file mode 100644
index 40c97c1c..00000000
--- a/resources/icons/emoji-categories/foods.svg
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg
- xmlns:dc="http://purl.org/dc/elements/1.1/"
- xmlns:cc="http://creativecommons.org/ns#"
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:svg="http://www.w3.org/2000/svg"
- xmlns="http://www.w3.org/2000/svg"
- xml:space="preserve"
- enable-background="new 0 0 24 24"
- viewBox="0 0 24 24"
- height="24px"
- width="24px"
- y="0px"
- x="0px"
- id="Слой_1"
- version="1.1"><metadata
- id="metadata4164"><rdf:RDF><cc:Work
- rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
- rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
- id="defs4162" /><g
- id="g4156"><path
- style="fill:#000000;fill-opacity:1"
- id="path4158"
- d="M17,4.978c-1.838,0-2.876,0.396-3.68,0.934c0.513-1.172,1.768-2.934,4.68-2.934c0.552,0,1-0.448,1-1 s-0.448-1-1-1c-2.921,0-4.629,1.365-5.547,2.512c-0.064,0.078-0.119,0.162-0.18,0.244c-0.543-1.896-1.475-3.711-3.066-3.711 C8.579,0.022,7.85,0.306,7,0.978C5.027,2.54,5.329,3.902,6.492,4.999C3.609,5.222,0,7.352,0,12.969c0,4.582,4.961,11.009,9,11.009 c1.975,0,2.371-0.486,3-1c0.629,0.514,1.025,1,3,1c4.039,0,9-6.418,9-11C24,7.025,19.945,4.978,17,4.978 M8.242,2.546 c0.641-0.508,0.943-0.523,0.965-0.523c0.426,0.169,0.975,1.405,1.357,3.055c-1.527-0.629-2.741-1.352-2.98-1.846 C7.643,3.12,7.825,2.876,8.242,2.546 M15,21.978c-1.08,0-1.21-0.109-1.559-0.402l-0.176-0.146 c-0.367-0.302-0.816-0.452-1.266-0.452s-0.898,0.15-1.266,0.452l-0.176,0.146C10.21,21.868,10.08,21.978,9,21.978 c-2.813,0-7-5.389-7-9.009c0-5.823,4.488-5.991,5-5.991c1.939,0,2.484,0.471,3.387,1.251c0.107,0.092,0.215,0.185,0.323,0.276 C11.083,8.82,11.541,8.978,12,8.978s0.917-0.157,1.29-0.473c0.108-0.092,0.216-0.185,0.323-0.276 c0.902-0.78,1.447-1.251,3.387-1.251c0.512,0,5,0.168,5,6C22,16.595,17.813,21.978,15,21.978"
- fill="#010202" /></g></svg>
\ 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 00000000..bbdd2a3c
--- /dev/null
+++ b/resources/icons/emoji-categories/foods@2x.png
Binary files differdiff --git a/resources/icons/emoji-categories/nature.png b/resources/icons/emoji-categories/nature.png
index 7a131ba2..eb1786cf 100644
--- a/resources/icons/emoji-categories/nature.png
+++ b/resources/icons/emoji-categories/nature.png
Binary files differdiff --git a/resources/icons/emoji-categories/nature.svg b/resources/icons/emoji-categories/nature.svg
deleted file mode 100644
index 4f291283..00000000
--- a/resources/icons/emoji-categories/nature.svg
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg
- xmlns:dc="http://purl.org/dc/elements/1.1/"
- xmlns:cc="http://creativecommons.org/ns#"
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:svg="http://www.w3.org/2000/svg"
- xmlns="http://www.w3.org/2000/svg"
- xml:space="preserve"
- enable-background="new 0 0 24 24"
- viewBox="0 0 24 24"
- height="24px"
- width="24px"
- y="0px"
- x="0px"
- id="Слой_1"
- version="1.1"><metadata
- id="metadata6036"><rdf:RDF><cc:Work
- rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
- rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
- id="defs6034" /><g
- id="g6024"><g
- id="g6578"><g
- id="g6583"><path
- style="fill:#000000;fill-opacity:1"
- id="path6028"
- d="M15.5,8C14.672,8,14,8.672,14,9.5s0.672,1.5,1.5,1.5S17,10.329,17,9.5S16.328,8,15.5,8"
- fill="#010202" /><g
- id="g6588"><path
- fill="#010202"
- d="M8.5,8C7.672,8,7,8.672,7,9.5S7.672,11,8.5,11S10,10.329,10,9.5S9.329,8,8.5,8"
- id="path6026"
- style="fill:#000000;fill-opacity:1" /><path
- fill="#010202"
- d="M18.933,0h-0.027c-0.97,0-2.138,0.787-3.018,1.497c-1.274-0.374-2.612-0.51-3.887-0.51 c-1.285,0-2.616,0.133-3.874,0.517C7.245,0.79,6.069,0,5.093,0H5.066C3.352,0,0.07,2.67,0.002,7.026 c-0.039,2.479,0.276,4.238,1.04,5.013c0.254,0.258,0.882,0.677,1.295,0.882c0.191,3.177,0.922,5.238,2.536,6.38 c0.897,0.637,2.187,0.949,3.2,1.102C8.04,20.6,8,20.795,8,21c0,1.773,2.35,3,4,3c1.648,0,4-1.227,4-3 c0-0.201-0.038-0.393-0.072-0.586c2.573-0.385,5.435-1.877,5.925-7.587c0.396-0.22,0.887-0.568,1.104-0.788 c0.763-0.774,1.079-2.534,1.04-5.013C23.929,2.67,20.646,0,18.933,0 M3.223,9.135c-0.237,0.281-0.837,1.155-0.884,1.238 c-0.15-0.41-0.368-1.349-0.337-3.291C2.053,3.801,4.48,2.11,5.093,2.051c0.256,0.015,0.731,0.27,1.265,0.646 c-1.11,1.171-2.275,2.915-2.352,5.125C3.873,8.368,3.608,8.68,3.223,9.135 M12,22c-0.901,0-1.954-0.693-2-1 c0-0.654,0.475-1.236,1-1.602V20c0,0.553,0.447,1,1,1s1-0.447,1-1v-0.602c0.524,0.365,1,0.947,1,1.602 C13.954,21.307,12.901,22,12,22 M15,18.52v0.02c-0.366-0.418-0.798-0.762-1.262-1.02c1.092-0.516,2.239-1.334,2.239-2.217 c0-1.842-1.781-2.195-3.977-2.195c-2.196,0-3.978,0.354-3.978,2.195c0,0.883,1.148,1.701,2.238,2.217 C9.799,17.777,9.368,18.121,9,18.539v-0.025c-1-0.076-2.182-0.281-2.973-0.842c-1.301-0.92-1.838-3.045-1.853-6.478 c0.008-0.014,0.016-0.028,0.023-0.041c0.496-0.826,1.49-1.45,1.804-3.102c0-2.047,1.357-3.631,2.362-4.522 C9.37,3.178,10.555,3,11.948,3c1.447,0,2.685,0.192,3.733,0.57c1,0.9,2.316,2.465,2.316,4.48c0.313,1.651,1.307,2.275,1.803,3.102 c0.035,0.058,0.068,0.117,0.102,0.178C19.843,17.297,17.953,18.34,15,18.52 M21.628,10.318c-0.037-0.065-0.074-0.13-0.113-0.195 c-0.233-0.387-0.502-0.706-0.739-0.987c-0.385-0.455-0.648-0.768-0.782-1.313c-0.076-2.209-1.241-3.954-2.353-5.124 c0.531-0.376,1.004-0.63,1.261-0.647c0.636,0.071,3.044,1.764,3.096,5.031C22.025,8.893,21.651,10.301,21.628,10.318"
- id="path6030"
- style="fill:#000000;fill-opacity:1" /></g></g></g></g></svg>
\ 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 00000000..81db5c08
--- /dev/null
+++ b/resources/icons/emoji-categories/nature@2x.png
Binary files differdiff --git a/resources/icons/emoji-categories/objects.png b/resources/icons/emoji-categories/objects.png
index 7f6a8d13..45c6eb37 100644
--- a/resources/icons/emoji-categories/objects.png
+++ b/resources/icons/emoji-categories/objects.png
Binary files differdiff --git a/resources/icons/emoji-categories/objects.svg b/resources/icons/emoji-categories/objects.svg
deleted file mode 100644
index 67c43610..00000000
--- a/resources/icons/emoji-categories/objects.svg
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg
- xmlns:dc="http://purl.org/dc/elements/1.1/"
- xmlns:cc="http://creativecommons.org/ns#"
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:svg="http://www.w3.org/2000/svg"
- xmlns="http://www.w3.org/2000/svg"
- xml:space="preserve"
- enable-background="new 0 0 24 24"
- viewBox="0 0 24 24"
- height="24px"
- width="24px"
- y="0px"
- x="0px"
- id="Слой_1"
- version="1.1"><metadata
- id="metadata4838"><rdf:RDF><cc:Work
- rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
- rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
- id="defs4836" /><g
- id="g4820"><g
- id="g4822" /><g
- id="g4830"><g
- id="g5383"><path
- style="fill:#000000;fill-opacity:1"
- d="M 12 0 C 7.029 0 3 4.029 3 9 C 3 12.120081 4.5888411 14.867862 7 16.482422 L 7 21 C 7 21 9.035 24 12 24 C 14.965 24 17 21 17 21 L 17 16.482422 C 19.411159 14.867862 21 12.120081 21 9 C 21 4.029 16.971 0 12 0 z M 12 2 C 15.86 2 19 5.141 19 9 C 19 12.859 15.86 16 12 16 C 8.14 16 5 12.859 5 9 C 5 5.141 8.14 2 12 2 z M 9 17.476562 C 9.9397054 17.809261 10.946226 18 12 18 C 13.053774 18 14.060295 17.809261 15 17.476562 L 15 18.310547 C 14.089581 18.746635 13.074971 19 12 19 C 10.925029 19 9.9104192 18.746635 9 18.310547 L 9 17.476562 z M 9.2363281 20.546875 C 10.108023 20.832252 11.032636 21 12 21 C 12.965197 21 13.887813 20.832689 14.757812 20.548828 C 14.155076 21.173162 13.152816 22 12 22 C 10.89775 22 9.8827458 21.211335 9.2363281 20.546875 z "
- id="path4824" /><path
- fill="#010202"
- d="M14.745,12.449h-0.004c-0.852-0.024-1.188-0.858-1.577-1.824c-0.421-1.061-0.703-1.561-1.182-1.566h-0.009 c-0.481,0-0.783,0.497-1.235,1.537c-0.436,0.982-0.801,1.811-1.636,1.791l-0.276-0.043c-0.565-0.171-0.853-0.691-1.284-1.794 c-0.125-0.313-0.202-0.632-0.27-0.913C7.221,9.424,7.145,9.107,7.077,9.003C7.067,9.004,7.039,9,6.99,9 C6.438,8.994,5.994,8.543,6,7.99C6.006,7.441,6.452,7,7,7h0.01c1.662,0.017,2.015,1.373,2.198,2.134 c0.486-0.981,1.304-2.058,2.797-2.075c1.531,0.018,2.28,1.153,2.731,2.141c0-0.002,0.001-0.006,0.002-0.008 C14.944,8.424,15.327,7,16.979,7h0.032C17.563,7.007,18.006,7.459,18,8.012C17.994,8.56,17.547,9,17,9h-0.011 c-0.149,0.076-0.256,0.474-0.319,0.709c-0.079,0.295-0.169,0.629-0.311,0.951C15.93,11.633,15.569,12.449,14.745,12.449"
- id="path4832" /></g></g></g></svg>
\ 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 00000000..01fd5cb4
--- /dev/null
+++ b/resources/icons/emoji-categories/objects@2x.png
Binary files differdiff --git a/resources/icons/emoji-categories/people.png b/resources/icons/emoji-categories/people.png
index 8c826fa9..710e808a 100644
--- a/resources/icons/emoji-categories/people.png
+++ b/resources/icons/emoji-categories/people.png
Binary files differdiff --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 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg
- xmlns:dc="http://purl.org/dc/elements/1.1/"
- xmlns:cc="http://creativecommons.org/ns#"
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:svg="http://www.w3.org/2000/svg"
- xmlns="http://www.w3.org/2000/svg"
- xml:space="preserve"
- enable-background="new 0 0 24 24"
- viewBox="0 0 24 24"
- height="24px"
- width="24px"
- y="0px"
- x="0px"
- id="Слой_1"
- version="1.1"><metadata
- id="metadata7236"><rdf:RDF><cc:Work
- rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
- rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
- id="defs7234" /><g
- id="g7222"><path
- style="fill:#000000;fill-opacity:1"
- id="path7224"
- d="M12,0C5.373,0,0,5.373,0,12s5.373,12,12,12s12-5.373,12-12S18.627,0,12,0 M12,22C6.486,22,2,17.514,2,12 S6.486,2,12,2s10,4.486,10,10S17.514,22,12,22"
- fill="#010202" /><path
- style="fill:#000000;fill-opacity:1"
- id="path7226"
- d="M8,7C6.895,7,6,7.895,6,9s0.895,2,2,2s2-0.895,2-2S9.105,7,8,7"
- fill="#010202" /><path
- style="fill:#000000;fill-opacity:1"
- id="path7228"
- d="M16,7c-1.105,0-2,0.895-2,2s0.895,2,2,2s2-0.895,2-2S17.105,7,16,7"
- fill="#010202" /><path
- style="fill:#000000;fill-opacity:1"
- id="path7230"
- d="M15.232,15c-0.693,1.195-1.87,2-3.349,2c-1.477,0-2.655-0.805-3.347-2H15 M18,13H6c0,3.314,2.686,6,6,6 S18,16.314,18,13"
- fill="#010202" /></g></svg>
\ 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 00000000..142ba09e
--- /dev/null
+++ b/resources/icons/emoji-categories/people@2x.png
Binary files differdiff --git a/resources/icons/emoji-categories/recent.svg b/resources/icons/emoji-categories/recent.svg
deleted file mode 100644
index e79b2ebc..00000000
--- a/resources/icons/emoji-categories/recent.svg
+++ /dev/null
@@ -1,29 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg
- xmlns:dc="http://purl.org/dc/elements/1.1/"
- xmlns:cc="http://creativecommons.org/ns#"
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:svg="http://www.w3.org/2000/svg"
- xmlns="http://www.w3.org/2000/svg"
- xml:space="preserve"
- enable-background="new 0 0 24 24"
- viewBox="0 0 24 24"
- height="24px"
- width="24px"
- y="0px"
- x="0px"
- id="Слой_1"
- version="1.1"><metadata
- id="metadata8433"><rdf:RDF><cc:Work
- rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
- rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
- id="defs8431" /><g
- id="g8421"><path
- id="polygon8423"
- d="M 13,4 11,4 10.999,11 9,11 l 0,2 2,0 0,2 2,0 0,-2 4,0 0,-2 -4,0 z"
- style="fill:#000000;fill-opacity:1" /><g
- id="g8425"><path
- style="fill:#000000;fill-opacity:1"
- id="path8427"
- d="M12,0C5.373,0,0,5.373,0,12s5.373,12,12,12s12-5.373,12-12S18.627,0,12,0 M12,22C6.486,22,2,17.514,2,12 S6.486,2,12,2s10,4.486,10,10S17.514,22,12,22"
- fill="#010202" /></g></g></svg>
\ No newline at end of file
diff --git a/resources/icons/emoji-categories/symbols.png b/resources/icons/emoji-categories/symbols.png
index 69a39754..08184de1 100644
--- a/resources/icons/emoji-categories/symbols.png
+++ b/resources/icons/emoji-categories/symbols.png
Binary files differdiff --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 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg
- xmlns:dc="http://purl.org/dc/elements/1.1/"
- xmlns:cc="http://creativecommons.org/ns#"
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:svg="http://www.w3.org/2000/svg"
- xmlns="http://www.w3.org/2000/svg"
- xml:space="preserve"
- enable-background="new 0 0 24 24"
- viewBox="0 0 24 24"
- height="24px"
- width="24px"
- y="0px"
- x="0px"
- id="Слой_1"
- version="1.1"><metadata
- id="metadata7837"><rdf:RDF><cc:Work
- rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
- rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
- id="defs7835" /><g
- id="g7817"><path
- id="rect7819"
- d="M 0,0 11,0 11,2 0,2 Z"
- style="fill:#000000;fill-opacity:1" /><path
- id="polygon7821"
- d="M 4,11 7,11 7,6 11,6 11,4 0,4 0,6 4,6 Z"
- style="fill:#000000;fill-opacity:1" /><path
- style="fill:#000000;fill-opacity:1"
- id="path7823"
- d="M15.5,17c1.381,0,2.5-1.116,2.5-2.493s-1.119-2.493-2.5-2.493S13,13.13,13,14.507S14.119,17,15.5,17 M15.5,14.014c0.276,0,0.5,0.222,0.5,0.493C16,14.779,15.776,15,15.5,15S15,14.779,15,14.507C15,14.235,15.224,14.014,15.5,14.014"
- fill="#010202" /><path
- style="fill:#000000;fill-opacity:1"
- id="path7825"
- d="M21.5,19.014c-1.381,0-2.5,1.116-2.5,2.493S20.119,24,21.5,24s2.5-1.116,2.5-2.493 S22.881,19.014,21.5,19.014 M21.5,22c-0.276,0-0.5-0.221-0.5-0.493c0-0.271,0.224-0.493,0.5-0.493s0.5,0.222,0.5,0.493 C22,21.779,21.776,22,21.5,22"
- fill="#010202" /><path
- id="polygon7827"
- d="m 22,13 -9,9 1.513,1.5 8.99,-9.009 z"
- style="fill:#000000;fill-opacity:1" /><path
- style="fill:#000000;fill-opacity:1"
- id="path7829"
- d="M17,11c2.209,0,4-1.119,4-2.5V2c0,0,0.985-0.161,1.498,0.949C23.01,4.055,23,6,23,6s1-1.119,1-3.135 C24-0.02,21,0,21,0h-2v6.347C18.41,6.132,17.732,6,17,6c-2.209,0-4,1.119-4,2.5S14.791,11,17,11"
- fill="#010202" /><path
- style="fill:#000000;fill-opacity:1"
- id="path7831"
- d="M10.297,20.482l-1.475-1.585c-0.773,0.619-1.254,0.995-1.442,1.129c-0.307-0.288-0.989-1.016-2.045-2.183 c0.902-0.836,1.479-1.466,1.729-1.892s0.376-0.871,0.376-1.336c0-0.592-0.273-1.178-0.818-1.759 c-0.546-0.581-1.329-0.871-2.349-0.871c-1.008,0-1.79,0.293-2.344,0.879c-0.556,0.587-0.832,1.181-0.832,1.784 c0,0.813,0.419,1.748,1.256,2.805c-0.847,0.614-1.444,1.208-1.794,1.784c-0.35,0.575-0.523,1.186-0.523,1.833 c0,0.857,0.308,1.56,0.924,2.107C1.576,23.726,2.383,24,3.38,24c1.173,0,2.444-0.379,3.813-1.137L8.235,24h2.819l-2.09-2.383 L10.297,20.482z M3.561,14.093c0.199-0.19,0.443-0.286,0.73-0.286c0.31,0,0.559,0.085,0.747,0.254 c0.189,0.171,0.283,0.391,0.283,0.659c0,0.518-0.419,1.112-1.257,1.784c-0.536-0.651-0.805-1.231-0.805-1.742 C3.26,14.508,3.36,14.284,3.561,14.093 M3.74,22c-0.427,0-0.778-0.116-1.057-0.349c-0.279-0.232-0.418-0.487-0.418-0.766 c0-0.594,0.509-1.288,1.527-2.083c0.968,1.134,1.717,1.946,2.248,2.438C5.119,21.747,4.354,22,3.74,22"
- fill="#010202" /></g></svg>
\ 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 00000000..b5e7cc6c
--- /dev/null
+++ b/resources/icons/emoji-categories/symbols@2x.png
Binary files differdiff --git a/resources/icons/emoji-categories/travel.png b/resources/icons/emoji-categories/travel.png
index ab50f7cb..93da773e 100644
--- a/resources/icons/emoji-categories/travel.png
+++ b/resources/icons/emoji-categories/travel.png
Binary files differdiff --git a/resources/icons/emoji-categories/travel.svg b/resources/icons/emoji-categories/travel.svg
deleted file mode 100644
index ca6cb325..00000000
--- a/resources/icons/emoji-categories/travel.svg
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg
- xmlns:dc="http://purl.org/dc/elements/1.1/"
- xmlns:cc="http://creativecommons.org/ns#"
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:svg="http://www.w3.org/2000/svg"
- xmlns="http://www.w3.org/2000/svg"
- xml:space="preserve"
- enable-background="new 0 0 24 24"
- viewBox="0 0 24 24"
- height="24px"
- width="24px"
- y="0px"
- x="0px"
- id="Слой_1"
- version="1.1"><metadata
- id="metadata5438"><rdf:RDF><cc:Work
- rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
- rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
- id="defs5436" /><g
- id="g5426"><g
- id="g5980"><path
- fill="#010202"
- d="M6.5,12C5.122,12,4,13.121,4,14.5S5.122,17,6.5,17S9,15.879,9,14.5S7.878,12,6.5,12 M6.5,15 C6.225,15,6,14.775,6,14.5S6.225,14,6.5,14S7,14.225,7,14.5S6.775,15,6.5,15"
- id="path5428"
- style="fill:#000000;fill-opacity:1" /><path
- fill="#010202"
- d="M17.5,12c-1.378,0-2.5,1.121-2.5,2.5s1.122,2.5,2.5,2.5s2.5-1.121,2.5-2.5S18.878,12,17.5,12 M17.5,15 c-0.275,0-0.5-0.225-0.5-0.5s0.225-0.5,0.5-0.5s0.5,0.225,0.5,0.5S17.775,15,17.5,15"
- id="path5430"
- style="fill:#000000;fill-opacity:1" /><path
- fill="#010202"
- d="M22.482,9.494l-1.039-0.346L21.4,9H22c0.552,0,1-0.439,1-0.992C23,8.002,22.997,8,22.997,8H23 c0-1-0.889-2-1.984-2h-0.642l-0.731-1.717C19.262,3.012,18.091,2,16.764,2H7.236C5.909,2,4.738,3.012,4.357,4.283L3.626,6H2.984 C1.889,6,1,7,1,8h0.003C1.003,8,1,8.002,1,8.008C1,8.561,1.448,9,2,9h0.6L2.557,9.148L1.518,9.494 C0.63,9.79,0.066,10.661,0.159,11.591l0.751,7.508C0.961,19.611,1.391,20,1.904,20H3v1c0,1.103,0.896,2,2,2h2c1.104,0,2-0.897,2-2 v-1h6v1c0,1.103,0.896,2,2,2h2c1.104,0,2-0.897,2-2v-1h1.096c0.514,0,0.943-0.389,0.994-0.901l0.751-7.508 C23.934,10.661,23.37,9.79,22.482,9.494 M6.273,4.857C6.402,4.43,6.788,4,7.236,4h9.527c0.448,0,0.834,0.43,0.963,0.857L19.313,9 H4.688L6.273,4.857z M7,21H5v-1h2V21z M19,21h-2v-1h2V21z M21.189,18H21h-6H9H3H2.811l-0.662-6.607L3,11h18l0.852,0.393L21.189,18z "
- id="path5432"
- style="fill:#000000;fill-opacity:1" /></g></g></svg>
\ 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 00000000..2f72a281
--- /dev/null
+++ b/resources/icons/emoji-categories/travel@2x.png
Binary files differdiff --git a/resources/icons/emoji-categories/unicode9.svg b/resources/icons/emoji-categories/unicode9.svg
deleted file mode 100755
index 310c4228..00000000
--- a/resources/icons/emoji-categories/unicode9.svg
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg
- xmlns:dc="http://purl.org/dc/elements/1.1/"
- xmlns:cc="http://creativecommons.org/ns#"
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:svg="http://www.w3.org/2000/svg"
- xmlns="http://www.w3.org/2000/svg"
- id="svg2"
- viewBox="0 0 32 32"
- height="32"
- width="32"
- version="1.1">
- <metadata
- id="metadata10">
- <rdf:RDF>
- <cc:Work
- rdf:about="">
- <dc:format>image/svg+xml</dc:format>
- <dc:type
- rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
- <dc:title></dc:title>
- </cc:Work>
- </rdf:RDF>
- </metadata>
- <defs
- id="defs8" />
- <path
- id="path4"
- d="M20 12.667v-2.688h-2.688v2.688h2.688zM20 7.354c1.438 0 2.688 1.125 2.688 2.625v8c0 1.5-1.25 2.688-2.688 2.688h-5.313v-2.688h5.313v-2.625h-2.688c-1.438 0-2.625-1.188-2.625-2.688v-2.688c0-1.5 1.188-2.625 2.625-2.625h2.688zM28 23.354v-18.688h-18.688v18.688h18.688zM28 1.979c1.438 0 2.688 1.25 2.688 2.688v18.688c0 1.438-1.25 2.625-2.688 2.625h-18.688c-1.438 0-2.625-1.188-2.625-2.625v-18.688c0-1.438 1.188-2.688 2.625-2.688h18.688zM4 7.354v21.313h21.313v2.688h-21.313c-1.438 0-2.688-1.25-2.688-2.688v-21.313h2.688z" />
-</svg>
diff --git a/resources/icons/error.png b/resources/icons/error.png
deleted file mode 100644
index 295dbf06..00000000
--- a/resources/icons/error.png
+++ /dev/null
Binary files differdiff --git a/resources/icons/left-angle.png b/resources/icons/left-angle.png
deleted file mode 100644
index 71543286..00000000
--- a/resources/icons/left-angle.png
+++ /dev/null
Binary files differdiff --git a/resources/icons/left-chevron.png b/resources/icons/left-chevron.png
deleted file mode 100644
index 386395fb..00000000
--- a/resources/icons/left-chevron.png
+++ /dev/null
Binary files differdiff --git a/resources/icons/plus-symbol.png b/resources/icons/plus-symbol.png
deleted file mode 100644
index 35aef7d0..00000000
--- a/resources/icons/plus-symbol.png
+++ /dev/null
Binary files differdiff --git a/resources/icons/power-button-off.png b/resources/icons/power-button-off.png
deleted file mode 100644
index 2409032f..00000000
--- a/resources/icons/power-button-off.png
+++ /dev/null
Binary files differdiff --git a/resources/icons/search.png b/resources/icons/search.png
deleted file mode 100644
index 94e2f4fc..00000000
--- a/resources/icons/search.png
+++ /dev/null
Binary files differdiff --git a/resources/icons/send-button.png b/resources/icons/send-button.png
deleted file mode 100644
index d19bf69f..00000000
--- a/resources/icons/send-button.png
+++ /dev/null
Binary files differdiff --git a/resources/icons/share-dark.png b/resources/icons/share-dark.png
deleted file mode 100644
index 3e4d42a8..00000000
--- a/resources/icons/share-dark.png
+++ /dev/null
Binary files differdiff --git a/resources/icons/smile.png b/resources/icons/smile.png
deleted file mode 100644
index f226a5f3..00000000
--- a/resources/icons/smile.png
+++ /dev/null
Binary files differdiff --git a/resources/icons/ui/add-square-button.png b/resources/icons/ui/add-square-button.png
new file mode 100644
index 00000000..a4933c16
--- /dev/null
+++ b/resources/icons/ui/add-square-button.png
Binary files differdiff --git a/resources/icons/ui/add-square-button@2x.png b/resources/icons/ui/add-square-button@2x.png
new file mode 100644
index 00000000..b2c4a44b
--- /dev/null
+++ b/resources/icons/ui/add-square-button@2x.png
Binary files differdiff --git a/resources/icons/ui/angle-pointing-to-left.png b/resources/icons/ui/angle-pointing-to-left.png
new file mode 100644
index 00000000..7c5432a6
--- /dev/null
+++ b/resources/icons/ui/angle-pointing-to-left.png
Binary files differdiff --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 00000000..f2fa93c4
--- /dev/null
+++ b/resources/icons/ui/angle-pointing-to-left@2x.png
Binary files differdiff --git a/resources/icons/ui/cloud-storage-uploading-option.png b/resources/icons/ui/cloud-storage-uploading-option.png
new file mode 100644
index 00000000..f679d676
--- /dev/null
+++ b/resources/icons/ui/cloud-storage-uploading-option.png
Binary files differdiff --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 00000000..162bc954
--- /dev/null
+++ b/resources/icons/ui/cloud-storage-uploading-option@2x.png
Binary files differdiff --git a/resources/icons/ui/cursor.png b/resources/icons/ui/cursor.png
new file mode 100644
index 00000000..cc7a2477
--- /dev/null
+++ b/resources/icons/ui/cursor.png
Binary files differdiff --git a/resources/icons/ui/cursor@2x.png b/resources/icons/ui/cursor@2x.png
new file mode 100644
index 00000000..d02d29fb
--- /dev/null
+++ b/resources/icons/ui/cursor@2x.png
Binary files differdiff --git a/resources/icons/ui/paper-clip-outline.png b/resources/icons/ui/paper-clip-outline.png
new file mode 100644
index 00000000..a30fd07b
--- /dev/null
+++ b/resources/icons/ui/paper-clip-outline.png
Binary files differdiff --git a/resources/icons/ui/paper-clip-outline@2x.png b/resources/icons/ui/paper-clip-outline@2x.png
new file mode 100644
index 00000000..6cb3d6a5
--- /dev/null
+++ b/resources/icons/ui/paper-clip-outline@2x.png
Binary files differdiff --git a/resources/icons/ui/plus-black-symbol.png b/resources/icons/ui/plus-black-symbol.png
new file mode 100644
index 00000000..4ddfc93f
--- /dev/null
+++ b/resources/icons/ui/plus-black-symbol.png
Binary files differdiff --git a/resources/icons/ui/plus-black-symbol@2x.png b/resources/icons/ui/plus-black-symbol@2x.png
new file mode 100644
index 00000000..c217b396
--- /dev/null
+++ b/resources/icons/ui/plus-black-symbol@2x.png
Binary files differdiff --git a/resources/icons/ui/power-button-off.png b/resources/icons/ui/power-button-off.png
new file mode 100644
index 00000000..7763de0f
--- /dev/null
+++ b/resources/icons/ui/power-button-off.png
Binary files differdiff --git a/resources/icons/ui/power-button-off@2x.png b/resources/icons/ui/power-button-off@2x.png
new file mode 100644
index 00000000..a4629446
--- /dev/null
+++ b/resources/icons/ui/power-button-off@2x.png
Binary files differdiff --git a/resources/icons/ui/settings.png b/resources/icons/ui/settings.png
new file mode 100644
index 00000000..6e013f75
--- /dev/null
+++ b/resources/icons/ui/settings.png
Binary files differdiff --git a/resources/icons/ui/settings@2x.png b/resources/icons/ui/settings@2x.png
new file mode 100644
index 00000000..dae05360
--- /dev/null
+++ b/resources/icons/ui/settings@2x.png
Binary files differdiff --git a/resources/icons/ui/smile.png b/resources/icons/ui/smile.png
new file mode 100644
index 00000000..161d46d4
--- /dev/null
+++ b/resources/icons/ui/smile.png
Binary files differdiff --git a/resources/icons/ui/smile@2x.png b/resources/icons/ui/smile@2x.png
new file mode 100644
index 00000000..acc439e9
--- /dev/null
+++ b/resources/icons/ui/smile@2x.png
Binary files differdiff --git a/resources/icons/ui/speech-bubbles-comment-option.png b/resources/icons/ui/speech-bubbles-comment-option.png
new file mode 100644
index 00000000..3ec0165d
--- /dev/null
+++ b/resources/icons/ui/speech-bubbles-comment-option.png
Binary files differdiff --git a/resources/icons/ui/speech-bubbles-comment-option@2x.png b/resources/icons/ui/speech-bubbles-comment-option@2x.png
new file mode 100644
index 00000000..8a07321d
--- /dev/null
+++ b/resources/icons/ui/speech-bubbles-comment-option@2x.png
Binary files differdiff --git a/resources/icons/ui/vertical-ellipsis.png b/resources/icons/ui/vertical-ellipsis.png
new file mode 100644
index 00000000..5ce9d78f
--- /dev/null
+++ b/resources/icons/ui/vertical-ellipsis.png
Binary files differdiff --git a/resources/icons/ui/vertical-ellipsis@2x.png b/resources/icons/ui/vertical-ellipsis@2x.png
new file mode 100644
index 00000000..9af0c042
--- /dev/null
+++ b/resources/icons/ui/vertical-ellipsis@2x.png
Binary files differdiff --git a/resources/icons/user-shape.png b/resources/icons/user-shape.png
deleted file mode 100644
index 1b4b46cc..00000000
--- a/resources/icons/user-shape.png
+++ /dev/null
Binary files differdiff --git a/resources/icons/vertical-ellipsis.png b/resources/icons/vertical-ellipsis.png
deleted file mode 100644
index 82714451..00000000
--- a/resources/icons/vertical-ellipsis.png
+++ /dev/null
Binary files differdiff --git a/resources/login.png b/resources/login.png
new file mode 100644
index 00000000..e65084ef
--- /dev/null
+++ b/resources/login.png
Binary files differdiff --git a/resources/login@2x.png b/resources/login@2x.png
new file mode 100644
index 00000000..4f89112f
--- /dev/null
+++ b/resources/login@2x.png
Binary files differdiff --git a/resources/register.png b/resources/register.png
new file mode 100644
index 00000000..e65084ef
--- /dev/null
+++ b/resources/register.png
Binary files differdiff --git a/resources/register@2x.png b/resources/register@2x.png
new file mode 100644
index 00000000..4f89112f
--- /dev/null
+++ b/resources/register@2x.png
Binary files differdiff --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 @@
<RCC>
<qresource prefix="/icons">
- <file>icons/left-chevron.png</file>
- <file>icons/left-angle.png</file>
- <file>icons/add-file.png</file>
- <file>icons/send-button.png</file>
- <file>icons/cog.png</file>
- <file>icons/search.png</file>
- <file>icons/plus-symbol.png</file>
- <file>icons/clip-dark.png</file>
- <file>icons/share-dark.png</file>
- <file>icons/user-shape.png</file>
- <file>icons/power-button-off.png</file>
- <file>icons/smile.png</file>
- <file>icons/error.png</file>
+ <file>icons/ui/cursor.png</file>
+ <file>icons/ui/cursor@2x.png</file>
+ <file>icons/ui/settings.png</file>
+ <file>icons/ui/settings@2x.png</file>
+ <file>icons/ui/smile.png</file>
+ <file>icons/ui/smile@2x.png</file>
+ <file>icons/ui/speech-bubbles-comment-option.png</file>
+ <file>icons/ui/speech-bubbles-comment-option@2x.png</file>
+ <file>icons/ui/vertical-ellipsis.png</file>
+ <file>icons/ui/vertical-ellipsis@2x.png</file>
+ <file>icons/ui/power-button-off.png</file>
+ <file>icons/ui/power-button-off@2x.png</file>
+ <file>icons/ui/plus-black-symbol.png</file>
+ <file>icons/ui/plus-black-symbol@2x.png</file>
+ <file>icons/ui/add-square-button.png</file>
+ <file>icons/ui/add-square-button@2x.png</file>
+ <file>icons/ui/cloud-storage-uploading-option.png</file>
+ <file>icons/ui/cloud-storage-uploading-option@2x.png</file>
+ <file>icons/ui/paper-clip-outline.png</file>
+ <file>icons/ui/paper-clip-outline@2x.png</file>
+ <file>icons/ui/angle-pointing-to-left.png</file>
+ <file>icons/ui/angle-pointing-to-left@2x.png</file>
<file>icons/emoji-categories/people.png</file>
+ <file>icons/emoji-categories/people@2x.png</file>
<file>icons/emoji-categories/nature.png</file>
+ <file>icons/emoji-categories/nature@2x.png</file>
<file>icons/emoji-categories/foods.png</file>
+ <file>icons/emoji-categories/foods@2x.png</file>
<file>icons/emoji-categories/activity.png</file>
+ <file>icons/emoji-categories/activity@2x.png</file>
<file>icons/emoji-categories/travel.png</file>
+ <file>icons/emoji-categories/travel@2x.png</file>
<file>icons/emoji-categories/objects.png</file>
+ <file>icons/emoji-categories/objects@2x.png</file>
<file>icons/emoji-categories/symbols.png</file>
+ <file>icons/emoji-categories/symbols@2x.png</file>
<file>icons/emoji-categories/flags.png</file>
-
- <file>icons/vertical-ellipsis.png</file>
+ <file>icons/emoji-categories/flags@2x.png</file>
</qresource>
<qresource prefix="/logos">
<file>nheko.png</file>
+
+ <file>splash.png</file>
+ <file>splash@2x.png</file>
+
+ <file>register.png</file>
+ <file>register@2x.png</file>
+
+ <file>login.png</file>
+ <file>login@2x.png</file>
+
<file>nheko-512.png</file>
<file>nheko-256.png</file>
<file>nheko-128.png</file>
@@ -37,16 +62,10 @@
</qresource>
<qresource prefix="/fonts">
- <file>fonts/OpenSans/OpenSans-Light.ttf</file>
- <file>fonts/OpenSans/OpenSans-LightItalic.ttf</file>
<file>fonts/OpenSans/OpenSans-Regular.ttf</file>
<file>fonts/OpenSans/OpenSans-Italic.ttf</file>
<file>fonts/OpenSans/OpenSans-Bold.ttf</file>
- <file>fonts/OpenSans/OpenSans-BoldItalic.ttf</file>
<file>fonts/OpenSans/OpenSans-Semibold.ttf</file>
- <file>fonts/OpenSans/OpenSans-SemiboldItalic.ttf</file>
- <file>fonts/OpenSans/OpenSans-ExtraBold.ttf</file>
- <file>fonts/OpenSans/OpenSans-ExtraBoldItalic.ttf</file>
<file>fonts/EmojiOne/emojione-android.ttf</file>
</qresource>
diff --git a/resources/splash.png b/resources/splash.png
new file mode 100644
index 00000000..4f89112f
--- /dev/null
+++ b/resources/splash.png
Binary files differdiff --git a/resources/splash@2x.png b/resources/splash@2x.png
new file mode 100644
index 00000000..3c39b0be
--- /dev/null
+++ b/resources/splash@2x.png
Binary files differdiff --git a/src/Cache.cc b/src/Cache.cc
index c96ec37d..3f7b141b 100644
--- a/src/Cache.cc
+++ b/src/Cache.cc
@@ -36,8 +36,7 @@ Cache::Cache(const QString &userId)
, roomDb_{ 0 }
, isMounted_{ false }
, userId_{ userId }
-{
-}
+{}
void
Cache::setup()
diff --git a/src/ChatPage.cc b/src/ChatPage.cc
index 92692fc1..24844183 100644
--- a/src/ChatPage.cc
+++ b/src/ChatPage.cc
@@ -60,8 +60,11 @@ ChatPage::ChatPage(QSharedPointer<MatrixClient> 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<MatrixClient> 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<MatrixClient> 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 <QDebug>
+#include <QIcon>
+
+#include "Config.h"
+#include "Theme.h"
+#include <SideBarActions.h>
+
+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."));
|