Yet another merge from master, need to be faster... ;)
11
README.md
|
@ -9,8 +9,8 @@ Sebastian J. Wolf [sebastian@ygriega.de](mailto:sebastian@ygriega.de) and severa
|
||||||
Fernschreiber wouldn't be the same without all the people helping in making it better. Thank you very much to all contributors!
|
Fernschreiber wouldn't be the same without all the people helping in making it better. Thank you very much to all contributors!
|
||||||
|
|
||||||
### Code (Features, Bugfixes, Optimizations etc.)
|
### Code (Features, Bugfixes, Optimizations etc.)
|
||||||
- Chat list model, notifications, TDLib receiver, animated stickers, project dependencies: [Slava Monich](https://github.com/monich)
|
- Chat list model, chat model, notifications, TDLib receiver, animated stickers, project dependencies, qml/c++ optimizations, chatPhoto, TDLibFile, code reviews, logging categories: [Slava Monich](https://github.com/monich)
|
||||||
- Chat info page, performance improvements to chat page, location support, app initialization/registration with Telegram, project dependencies: [jgibbon](https://github.com/jgibbon)
|
- Chat info page, performance improvements to chat page, location support, app initialization/registration with Telegram, project dependencies, emoji handling, qml/js optimizations, multi-message actions, i18n fixes, chat permission handling, code reviews, logging categories: [jgibbon](https://github.com/jgibbon)
|
||||||
- Copy message to clipboard [Christian Stemmle](https://github.com/chstem)
|
- Copy message to clipboard [Christian Stemmle](https://github.com/chstem)
|
||||||
|
|
||||||
### Logo/Icon
|
### Logo/Icon
|
||||||
|
@ -44,6 +44,13 @@ You get the Telegram API ID and hash as soon as you've registered your own appli
|
||||||
|
|
||||||
Moreover, you need to have a compiled version of [TDLib](https://github.com/tdlib/td) in the sub-directory `tdlib`. This sub-directory must contain another sub-directory that fits to the target device architecture (e.g. armv7hl, i486). Within this directory, there needs to be a folder called `lib` that contains at least `libtdjson.so`. For armv7hl the relative path would consequently be `tdlib/armv7hl/lib`.
|
Moreover, you need to have a compiled version of [TDLib](https://github.com/tdlib/td) in the sub-directory `tdlib`. This sub-directory must contain another sub-directory that fits to the target device architecture (e.g. armv7hl, i486). Within this directory, there needs to be a folder called `lib` that contains at least `libtdjson.so`. For armv7hl the relative path would consequently be `tdlib/armv7hl/lib`.
|
||||||
|
|
||||||
|
## Debug
|
||||||
|
Fernschreiber does only output a few TDLib messages by default. To get its own debug log messages, you can either run a debug build to see all of them or use the environment variable `QT_LOGGING_RULES` to specify/filter which messages you'd like to see.
|
||||||
|
|
||||||
|
Run `QT_LOGGING_RULES="fernschreiber.*=true" harbour-fernschreiber` to see all messages or replace the `*` with specific logging categories. You'll find the logging category inside the corresponding `.cpp` file for backend usage or you can use `JS` to only see frontend messages.
|
||||||
|
|
||||||
|
## Contribute
|
||||||
|
|
||||||
If you want to contribute bug fixes, improvements, new features etc. please create a pull request (PR). PRs are always welcome and will be reviewed as soon as possible, but may take some time. :)
|
If you want to contribute bug fixes, improvements, new features etc. please create a pull request (PR). PRs are always welcome and will be reviewed as soon as possible, but may take some time. :)
|
||||||
|
|
||||||
## Credits
|
## Credits
|
||||||
|
|
|
@ -28,6 +28,7 @@ SOURCES += src/harbour-fernschreiber.cpp \
|
||||||
src/dbusinterface.cpp \
|
src/dbusinterface.cpp \
|
||||||
src/emojisearchworker.cpp \
|
src/emojisearchworker.cpp \
|
||||||
src/fernschreiberutils.cpp \
|
src/fernschreiberutils.cpp \
|
||||||
|
src/mceinterface.cpp \
|
||||||
src/notificationmanager.cpp \
|
src/notificationmanager.cpp \
|
||||||
src/processlauncher.cpp \
|
src/processlauncher.cpp \
|
||||||
src/stickermanager.cpp \
|
src/stickermanager.cpp \
|
||||||
|
@ -64,6 +65,7 @@ DISTFILES += qml/harbour-fernschreiber.qml \
|
||||||
qml/components/chatInformationPage/ChatInformationTextItem.qml \
|
qml/components/chatInformationPage/ChatInformationTextItem.qml \
|
||||||
qml/components/chatInformationPage/EditGroupChatPermissionsColumn.qml \
|
qml/components/chatInformationPage/EditGroupChatPermissionsColumn.qml \
|
||||||
qml/components/chatInformationPage/EditSuperGroupSlowModeColumn.qml \
|
qml/components/chatInformationPage/EditSuperGroupSlowModeColumn.qml \
|
||||||
|
qml/js/debug.js \
|
||||||
qml/js/functions.js \
|
qml/js/functions.js \
|
||||||
qml/pages/ChatInformationPage.qml \
|
qml/pages/ChatInformationPage.qml \
|
||||||
qml/pages/ChatPage.qml \
|
qml/pages/ChatPage.qml \
|
||||||
|
@ -146,8 +148,11 @@ HEADERS += \
|
||||||
src/chatmodel.h \
|
src/chatmodel.h \
|
||||||
src/dbusadaptor.h \
|
src/dbusadaptor.h \
|
||||||
src/dbusinterface.h \
|
src/dbusinterface.h \
|
||||||
|
src/debuglog.h \
|
||||||
|
src/debuglogjs.h \
|
||||||
src/emojisearchworker.h \
|
src/emojisearchworker.h \
|
||||||
src/fernschreiberutils.h \
|
src/fernschreiberutils.h \
|
||||||
|
src/mceinterface.h \
|
||||||
src/notificationmanager.h \
|
src/notificationmanager.h \
|
||||||
src/processlauncher.h \
|
src/processlauncher.h \
|
||||||
src/stickermanager.h \
|
src/stickermanager.h \
|
||||||
|
|
|
@ -20,6 +20,8 @@ import QtQuick 2.6
|
||||||
import Sailfish.Silica 1.0
|
import Sailfish.Silica 1.0
|
||||||
import QtMultimedia 5.6
|
import QtMultimedia 5.6
|
||||||
import "../js/functions.js" as Functions
|
import "../js/functions.js" as Functions
|
||||||
|
import "../js/debug.js" as Debug
|
||||||
|
|
||||||
|
|
||||||
Item {
|
Item {
|
||||||
id: audioMessageComponent
|
id: audioMessageComponent
|
||||||
|
@ -249,39 +251,39 @@ Item {
|
||||||
|
|
||||||
onStatusChanged: {
|
onStatusChanged: {
|
||||||
if (status == MediaPlayer.NoMedia) {
|
if (status == MediaPlayer.NoMedia) {
|
||||||
console.log("No Media");
|
Debug.log("No Media");
|
||||||
audioBusyIndicator.visible = false;
|
audioBusyIndicator.visible = false;
|
||||||
}
|
}
|
||||||
if (status == MediaPlayer.Loading) {
|
if (status == MediaPlayer.Loading) {
|
||||||
console.log("Loading");
|
Debug.log("Loading");
|
||||||
audioBusyIndicator.visible = true;
|
audioBusyIndicator.visible = true;
|
||||||
}
|
}
|
||||||
if (status == MediaPlayer.Loaded) {
|
if (status == MediaPlayer.Loaded) {
|
||||||
console.log("Loaded");
|
Debug.log("Loaded");
|
||||||
audioBusyIndicator.visible = false;
|
audioBusyIndicator.visible = false;
|
||||||
}
|
}
|
||||||
if (status == MediaPlayer.Buffering) {
|
if (status == MediaPlayer.Buffering) {
|
||||||
console.log("Buffering");
|
Debug.log("Buffering");
|
||||||
audioBusyIndicator.visible = true;
|
audioBusyIndicator.visible = true;
|
||||||
}
|
}
|
||||||
if (status == MediaPlayer.Stalled) {
|
if (status == MediaPlayer.Stalled) {
|
||||||
console.log("Stalled");
|
Debug.log("Stalled");
|
||||||
audioBusyIndicator.visible = true;
|
audioBusyIndicator.visible = true;
|
||||||
}
|
}
|
||||||
if (status == MediaPlayer.Buffered) {
|
if (status == MediaPlayer.Buffered) {
|
||||||
console.log("Buffered");
|
Debug.log("Buffered");
|
||||||
audioBusyIndicator.visible = false;
|
audioBusyIndicator.visible = false;
|
||||||
}
|
}
|
||||||
if (status == MediaPlayer.EndOfMedia) {
|
if (status == MediaPlayer.EndOfMedia) {
|
||||||
console.log("End of Media");
|
Debug.log("End of Media");
|
||||||
audioBusyIndicator.visible = false;
|
audioBusyIndicator.visible = false;
|
||||||
}
|
}
|
||||||
if (status == MediaPlayer.InvalidMedia) {
|
if (status == MediaPlayer.InvalidMedia) {
|
||||||
console.log("Invalid Media");
|
Debug.log("Invalid Media");
|
||||||
audioBusyIndicator.visible = false;
|
audioBusyIndicator.visible = false;
|
||||||
}
|
}
|
||||||
if (status == MediaPlayer.UnknownStatus) {
|
if (status == MediaPlayer.UnknownStatus) {
|
||||||
console.log("Unknown Status");
|
Debug.log("Unknown Status");
|
||||||
audioBusyIndicator.visible = false;
|
audioBusyIndicator.visible = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,14 +10,13 @@ PhotoTextsListItem {
|
||||||
photoData: photo_small || ({})
|
photoData: photo_small || ({})
|
||||||
}
|
}
|
||||||
property int ownUserId
|
property int ownUserId
|
||||||
property url emojiBase: "../js/emoji/"
|
|
||||||
|
|
||||||
// chat title
|
// chat title
|
||||||
primaryText.text: title ? Emoji.emojify(title + ( display.notification_settings.mute_for > 0 ? " 🔇" : "" ), Theme.fontSizeMedium, emojiBase) : qsTr("Unknown")
|
primaryText.text: title ? Emoji.emojify(title + ( display.notification_settings.mute_for > 0 ? " 🔇" : "" ), Theme.fontSizeMedium) : qsTr("Unknown")
|
||||||
// last user
|
// last user
|
||||||
prologSecondaryText.text: is_channel ? "" : ( last_message_sender_id ? ( last_message_sender_id !== ownUserId ? Emoji.emojify(Functions.getUserName(tdLibWrapper.getUserInformation(last_message_sender_id)), primaryText.font.pixelSize) : qsTr("You") ) : qsTr("Unknown") )
|
prologSecondaryText.text: is_channel ? "" : ( last_message_sender_id ? ( last_message_sender_id !== ownUserId ? Emoji.emojify(Functions.getUserName(tdLibWrapper.getUserInformation(last_message_sender_id)), primaryText.font.pixelSize) : qsTr("You") ) : qsTr("Unknown") )
|
||||||
// last message
|
// last message
|
||||||
secondaryText.text: last_message_text ? Emoji.emojify(Functions.enhanceHtmlEntities(last_message_text), Theme.fontSizeExtraSmall, emojiBase) : qsTr("Unknown")
|
secondaryText.text: last_message_text ? Emoji.emojify(Functions.enhanceHtmlEntities(last_message_text), Theme.fontSizeExtraSmall) : qsTr("Unknown")
|
||||||
// message date
|
// message date
|
||||||
tertiaryText.text: ( last_message_date ? Functions.getDateTimeElapsed(last_message_date) : qsTr("Unknown") ) + Emoji.emojify(last_message_status, tertiaryText.font.pixelSize)
|
tertiaryText.text: ( last_message_date ? Functions.getDateTimeElapsed(last_message_date) : qsTr("Unknown") ) + Emoji.emojify(last_message_status, tertiaryText.font.pixelSize)
|
||||||
unreadCount: unread_count
|
unreadCount: unread_count
|
||||||
|
|
|
@ -58,33 +58,24 @@ Row {
|
||||||
spacing: Theme.paddingSmall
|
spacing: Theme.paddingSmall
|
||||||
width: parent.width - ( inReplyToRow.editable ? ( Theme.paddingSmall + removeInReplyToIconButton.width ) : 0 )
|
width: parent.width - ( inReplyToRow.editable ? ( Theme.paddingSmall + removeInReplyToIconButton.width ) : 0 )
|
||||||
|
|
||||||
Text {
|
Label {
|
||||||
id: inReplyToUserText
|
id: inReplyToUserText
|
||||||
|
|
||||||
width: parent.width
|
width: parent.width
|
||||||
font.pixelSize: Theme.fontSizeExtraSmall
|
font.pixelSize: Theme.fontSizeExtraSmall
|
||||||
font.weight: Font.ExtraBold
|
font.weight: Font.ExtraBold
|
||||||
color: Theme.primaryColor
|
|
||||||
maximumLineCount: 1
|
maximumLineCount: 1
|
||||||
elide: Text.ElideRight
|
truncationMode: TruncationMode.Fade
|
||||||
textFormat: Text.StyledText
|
textFormat: Text.StyledText
|
||||||
horizontalAlignment: Text.AlignLeft
|
horizontalAlignment: Text.AlignLeft
|
||||||
}
|
}
|
||||||
|
|
||||||
Text {
|
Label {
|
||||||
id: inReplyToMessageText
|
id: inReplyToMessageText
|
||||||
font.pixelSize: Theme.fontSizeExtraSmall
|
font.pixelSize: Theme.fontSizeExtraSmall
|
||||||
color: Theme.primaryColor
|
|
||||||
width: parent.width
|
width: parent.width
|
||||||
elide: Text.ElideRight
|
|
||||||
textFormat: Text.StyledText
|
textFormat: Text.StyledText
|
||||||
onTruncatedChanged: {
|
truncationMode: TruncationMode.Fade
|
||||||
// There is obviously a bug in QML in truncating text with images.
|
|
||||||
// We simply remove Emojis then...
|
|
||||||
if (truncated) {
|
|
||||||
text = text.replace(/\<img [^>]+\/\>/g, "");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -21,6 +21,7 @@ import Sailfish.Silica 1.0
|
||||||
import "../js/twemoji.js" as Emoji
|
import "../js/twemoji.js" as Emoji
|
||||||
import "../js/functions.js" as Functions
|
import "../js/functions.js" as Functions
|
||||||
import QtQml.Models 2.3
|
import QtQml.Models 2.3
|
||||||
|
import "../js/debug.js" as Debug
|
||||||
|
|
||||||
ListItem {
|
ListItem {
|
||||||
id: messageListItem
|
id: messageListItem
|
||||||
|
@ -136,12 +137,12 @@ ListItem {
|
||||||
messageBackground.isUnread = index > chatModel.getLastReadMessageIndex();
|
messageBackground.isUnread = index > chatModel.getLastReadMessageIndex();
|
||||||
}
|
}
|
||||||
onLastReadSentMessageUpdated: {
|
onLastReadSentMessageUpdated: {
|
||||||
console.log("[ChatModel] Messages in this chat were read, new last read: " + lastReadSentIndex + ", updating description for index " + index + ", status: " + (index <= lastReadSentIndex));
|
Debug.log("[ChatModel] Messages in this chat were read, new last read: ", lastReadSentIndex, ", updating description for index ", index, ", status: ", (index <= lastReadSentIndex));
|
||||||
messageDateText.text = getMessageStatusText(myMessage, index, lastReadSentIndex, messageDateText.useElapsed);
|
messageDateText.text = getMessageStatusText(myMessage, index, lastReadSentIndex, messageDateText.useElapsed);
|
||||||
}
|
}
|
||||||
onMessageUpdated: {
|
onMessageUpdated: {
|
||||||
if (index === modelIndex) {
|
if (index === modelIndex) {
|
||||||
console.log("[ChatModel] This message was updated, index " + index + ", updating content...");
|
Debug.log("[ChatModel] This message was updated, index ", index, ", updating content...");
|
||||||
messageDateText.text = getMessageStatusText(myMessage, index, chatView.lastReadSentIndex, messageDateText.useElapsed);
|
messageDateText.text = getMessageStatusText(myMessage, index, chatView.lastReadSentIndex, messageDateText.useElapsed);
|
||||||
messageText.text = Emoji.emojify(Functions.getMessageText(myMessage, false, messageListItem.isOwnMessage), messageText.font.pixelSize);
|
messageText.text = Emoji.emojify(Functions.getMessageText(myMessage, false, messageListItem.isOwnMessage), messageText.font.pixelSize);
|
||||||
}
|
}
|
||||||
|
@ -254,7 +255,7 @@ ListItem {
|
||||||
anchors.centerIn: messageBackground
|
anchors.centerIn: messageBackground
|
||||||
|
|
||||||
|
|
||||||
Text {
|
Label {
|
||||||
id: userText
|
id: userText
|
||||||
|
|
||||||
width: parent.width
|
width: parent.width
|
||||||
|
@ -263,7 +264,7 @@ ListItem {
|
||||||
font.weight: Font.ExtraBold
|
font.weight: Font.ExtraBold
|
||||||
color: messageListItem.textColor
|
color: messageListItem.textColor
|
||||||
maximumLineCount: 1
|
maximumLineCount: 1
|
||||||
elide: Text.ElideRight
|
truncationMode: TruncationMode.Fade
|
||||||
textFormat: Text.StyledText
|
textFormat: Text.StyledText
|
||||||
horizontalAlignment: messageListItem.textAlign
|
horizontalAlignment: messageListItem.textAlign
|
||||||
visible: precalculatedValues.showUserInfo
|
visible: precalculatedValues.showUserInfo
|
||||||
|
@ -341,38 +342,23 @@ ListItem {
|
||||||
Column {
|
Column {
|
||||||
spacing: Theme.paddingSmall
|
spacing: Theme.paddingSmall
|
||||||
width: parent.width - forwardedThumbnail.width - Theme.paddingSmall
|
width: parent.width - forwardedThumbnail.width - Theme.paddingSmall
|
||||||
Text {
|
Label {
|
||||||
font.pixelSize: Theme.fontSizeExtraSmall
|
font.pixelSize: Theme.fontSizeExtraSmall
|
||||||
color: Theme.primaryColor
|
|
||||||
width: parent.width
|
width: parent.width
|
||||||
font.italic: true
|
font.italic: true
|
||||||
elide: Text.ElideRight
|
truncationMode: TruncationMode.Fade
|
||||||
textFormat: Text.StyledText
|
textFormat: Text.StyledText
|
||||||
text: qsTr("Forwarded Message")
|
text: qsTr("Forwarded Message")
|
||||||
onTruncatedChanged: {
|
|
||||||
// There is obviously a bug in QML in truncating text with images.
|
|
||||||
// We simply remove Emojis then...
|
|
||||||
if (truncated) {
|
|
||||||
text = text.replace(/\<img [^>]+\/\>/g, "");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
Text {
|
Label {
|
||||||
id: forwardedChannelText
|
id: forwardedChannelText
|
||||||
font.pixelSize: Theme.fontSizeExtraSmall
|
font.pixelSize: Theme.fontSizeExtraSmall
|
||||||
color: Theme.primaryColor
|
color: Theme.primaryColor
|
||||||
width: parent.width
|
width: parent.width
|
||||||
font.bold: true
|
font.bold: true
|
||||||
elide: Text.ElideRight
|
truncationMode: TruncationMode.Fade
|
||||||
textFormat: Text.StyledText
|
textFormat: Text.StyledText
|
||||||
text: Emoji.emojify(forwardedMessageInformationRow.otherChatInformation.title, font.pixelSize)
|
text: Emoji.emojify(forwardedMessageInformationRow.otherChatInformation.title, font.pixelSize)
|
||||||
onTruncatedChanged: {
|
|
||||||
// There is obviously a bug in QML in truncating text with images.
|
|
||||||
// We simply remove Emojis then...
|
|
||||||
if (truncated) {
|
|
||||||
text = text.replace(/\<img [^>]+\/\>/g, "");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -109,7 +109,7 @@ Flickable {
|
||||||
width: Theme.itemSizeLarge
|
width: Theme.itemSizeLarge
|
||||||
height: Theme.itemSizeLarge
|
height: Theme.itemSizeLarge
|
||||||
}
|
}
|
||||||
Text {
|
Label {
|
||||||
id: overlayMessageUserText
|
id: overlayMessageUserText
|
||||||
|
|
||||||
width: parent.width - overlayMessagePictureThumbnail.width
|
width: parent.width - overlayMessagePictureThumbnail.width
|
||||||
|
@ -117,9 +117,8 @@ Flickable {
|
||||||
text: messageOverlayFlickable.isOwnMessage ? qsTr("You") : Emoji.emojify(Functions.getUserName(messageOverlayFlickable.userInformation), font.pixelSize)
|
text: messageOverlayFlickable.isOwnMessage ? qsTr("You") : Emoji.emojify(Functions.getUserName(messageOverlayFlickable.userInformation), font.pixelSize)
|
||||||
font.pixelSize: Theme.fontSizeExtraLarge
|
font.pixelSize: Theme.fontSizeExtraLarge
|
||||||
font.weight: Font.ExtraBold
|
font.weight: Font.ExtraBold
|
||||||
color: Theme.primaryColor
|
|
||||||
maximumLineCount: 1
|
maximumLineCount: 1
|
||||||
elide: Text.ElideRight
|
truncationMode: TruncationMode.Fade
|
||||||
textFormat: Text.StyledText
|
textFormat: Text.StyledText
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -163,7 +162,7 @@ Flickable {
|
||||||
id: webPagePreview
|
id: webPagePreview
|
||||||
|
|
||||||
onImplicitHeightChanged: {
|
onImplicitHeightChanged: {
|
||||||
webPagePreviewLoader.height = webPagePreview.implicitHeight;
|
overlayWebPagePreviewLoader.height = webPagePreview.implicitHeight;
|
||||||
}
|
}
|
||||||
|
|
||||||
webPageData: overlayMessage.content.web_page
|
webPageData: overlayMessage.content.web_page
|
||||||
|
|
|
@ -78,61 +78,41 @@ ListItem {
|
||||||
width: parent.width * 5 / 6 - Theme.horizontalPageMargin
|
width: parent.width * 5 / 6 - Theme.horizontalPageMargin
|
||||||
spacing: Theme.paddingSmall
|
spacing: Theme.paddingSmall
|
||||||
|
|
||||||
Text {
|
Label {
|
||||||
id: primaryText
|
id: primaryText
|
||||||
textFormat: Text.StyledText
|
textFormat: Text.StyledText
|
||||||
font.pixelSize: Theme.fontSizeMedium
|
font.pixelSize: Theme.fontSizeMedium
|
||||||
color: Theme.primaryColor
|
truncationMode: TruncationMode.Fade
|
||||||
elide: Text.ElideRight
|
|
||||||
width: parent.width
|
width: parent.width
|
||||||
onTruncatedChanged: {
|
|
||||||
// There is obviously a bug in QML in truncating text with images.
|
|
||||||
// We simply remove Emojis then...
|
|
||||||
if (truncated) {
|
|
||||||
text = text.replace(/\<img [^>]+\/\>/g, "");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Row {
|
Row {
|
||||||
id: additionalTextRow
|
id: additionalTextRow
|
||||||
width: parent.width
|
width: parent.width
|
||||||
spacing: Theme.paddingSmall
|
spacing: Theme.paddingSmall
|
||||||
Text {
|
Label {
|
||||||
id: prologSecondaryText
|
id: prologSecondaryText
|
||||||
font.pixelSize: Theme.fontSizeExtraSmall
|
font.pixelSize: Theme.fontSizeExtraSmall
|
||||||
|
width: Math.min(implicitWidth, parent.width)
|
||||||
color: Theme.highlightColor
|
color: Theme.highlightColor
|
||||||
textFormat: Text.StyledText
|
textFormat: Text.StyledText
|
||||||
onTruncatedChanged: {
|
truncationMode: TruncationMode.Fade
|
||||||
// There is obviously a bug in QML in truncating text with images.
|
|
||||||
// We simply remove Emojis then...
|
|
||||||
if (truncated) {
|
|
||||||
text = text.replace(/\<img [^>]+\/\>/g, "");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
Text {
|
Label {
|
||||||
id: secondaryText
|
id: secondaryText
|
||||||
font.pixelSize: Theme.fontSizeExtraSmall
|
font.pixelSize: Theme.fontSizeExtraSmall
|
||||||
color: Theme.primaryColor
|
|
||||||
width: parent.width - Theme.paddingMedium - prologSecondaryText.width
|
width: parent.width - Theme.paddingMedium - prologSecondaryText.width
|
||||||
elide: Text.ElideRight
|
truncationMode: TruncationMode.Fade
|
||||||
textFormat: Text.StyledText
|
textFormat: Text.StyledText
|
||||||
onTruncatedChanged: {
|
|
||||||
// There is obviously a bug in QML in truncating text with images.
|
|
||||||
// We simply remove Emojis then...
|
|
||||||
if (truncated) {
|
|
||||||
text = text.replace(/\<img [^>]+\/\>/g, "");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Text {
|
Label {
|
||||||
id: tertiaryText
|
id: tertiaryText
|
||||||
width: parent.width
|
width: parent.width
|
||||||
font.pixelSize: Theme.fontSizeTiny
|
font.pixelSize: Theme.fontSizeTiny
|
||||||
color: Theme.secondaryColor
|
color: Theme.secondaryColor
|
||||||
|
truncationMode: TruncationMode.Fade
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -21,6 +21,7 @@ import Sailfish.Silica 1.0
|
||||||
import "../components"
|
import "../components"
|
||||||
import "../js/functions.js" as Functions
|
import "../js/functions.js" as Functions
|
||||||
import "../js/twemoji.js" as Emoji
|
import "../js/twemoji.js" as Emoji
|
||||||
|
import "../js/debug.js" as Debug
|
||||||
|
|
||||||
Item {
|
Item {
|
||||||
id: pinnedMessageItem
|
id: pinnedMessageItem
|
||||||
|
@ -31,7 +32,7 @@ Item {
|
||||||
|
|
||||||
onPinnedMessageChanged: {
|
onPinnedMessageChanged: {
|
||||||
if (pinnedMessage) {
|
if (pinnedMessage) {
|
||||||
console.log("[ChatPage] Activating pinned message");
|
Debug.log("[ChatPage] Activating pinned message");
|
||||||
var messageUserText = (pinnedMessage.sender_user_id !== chatPage.myUserId) ? Emoji.emojify(Functions.getUserName(tdLibWrapper.getUserInformation(pinnedMessage.sender_user_id)), pinnedMessageUserText.font.pixelSize) : qsTr("You");
|
var messageUserText = (pinnedMessage.sender_user_id !== chatPage.myUserId) ? Emoji.emojify(Functions.getUserName(tdLibWrapper.getUserInformation(pinnedMessage.sender_user_id)), pinnedMessageUserText.font.pixelSize) : qsTr("You");
|
||||||
pinnedMessageUserText.text = (messageUserText === "" ? qsTr("Pinned Message") : messageUserText );
|
pinnedMessageUserText.text = (messageUserText === "" ? qsTr("Pinned Message") : messageUserText );
|
||||||
pinnedMessageText.text = Emoji.emojify(Functions.getMessageText(pinnedMessage, true, pinnedMessage.sender_user_id === chatPage.myUserId), pinnedMessageText.font.pixelSize);
|
pinnedMessageText.text = Emoji.emojify(Functions.getMessageText(pinnedMessage, true, pinnedMessage.sender_user_id === chatPage.myUserId), pinnedMessageText.font.pixelSize);
|
||||||
|
@ -77,7 +78,7 @@ Item {
|
||||||
spacing: Theme.paddingSmall
|
spacing: Theme.paddingSmall
|
||||||
width: parent.width
|
width: parent.width
|
||||||
|
|
||||||
Text {
|
Label {
|
||||||
id: pinnedMessageUserText
|
id: pinnedMessageUserText
|
||||||
|
|
||||||
width: parent.width
|
width: parent.width
|
||||||
|
@ -85,18 +86,18 @@ Item {
|
||||||
font.weight: Font.ExtraBold
|
font.weight: Font.ExtraBold
|
||||||
color: Theme.primaryColor
|
color: Theme.primaryColor
|
||||||
maximumLineCount: 1
|
maximumLineCount: 1
|
||||||
elide: Text.ElideRight
|
truncationMode: TruncationMode.Fade
|
||||||
textFormat: Text.StyledText
|
textFormat: Text.StyledText
|
||||||
horizontalAlignment: Text.AlignLeft
|
horizontalAlignment: Text.AlignLeft
|
||||||
}
|
}
|
||||||
|
|
||||||
Text {
|
Label {
|
||||||
id: pinnedMessageText
|
id: pinnedMessageText
|
||||||
|
|
||||||
font.pixelSize: Theme.fontSizeExtraSmall
|
font.pixelSize: Theme.fontSizeExtraSmall
|
||||||
color: Theme.primaryColor
|
color: Theme.primaryColor
|
||||||
width: parent.width
|
width: parent.width
|
||||||
elide: Text.ElideRight
|
truncationMode: TruncationMode.Fade
|
||||||
maximumLineCount: 1
|
maximumLineCount: 1
|
||||||
textFormat: Text.StyledText
|
textFormat: Text.StyledText
|
||||||
}
|
}
|
||||||
|
|
|
@ -106,11 +106,9 @@ Item {
|
||||||
id: canAnswerDelegate
|
id: canAnswerDelegate
|
||||||
TextSwitch {
|
TextSwitch {
|
||||||
id: optionDelegate
|
id: optionDelegate
|
||||||
// TextSwitch changes the html base path:
|
|
||||||
property url emojiBase: "../js/emoji/"
|
|
||||||
width: pollMessageComponent.width
|
width: pollMessageComponent.width
|
||||||
automaticCheck: false
|
automaticCheck: false
|
||||||
text: Emoji.emojify(modelData.text, Theme.fontSizeMedium, emojiBase)
|
text: Emoji.emojify(modelData.text, Theme.fontSizeMedium)
|
||||||
checked: pollMessageComponent.chosenIndexes.indexOf(index) > -1
|
checked: pollMessageComponent.chosenIndexes.indexOf(index) > -1
|
||||||
onClicked: {
|
onClicked: {
|
||||||
pollMessageComponent.handleChoose(index);
|
pollMessageComponent.handleChoose(index);
|
||||||
|
|
|
@ -63,13 +63,12 @@ Item {
|
||||||
id: stickerPickerColumn
|
id: stickerPickerColumn
|
||||||
spacing: Theme.paddingMedium
|
spacing: Theme.paddingMedium
|
||||||
width: stickerPickerFlickable.width
|
width: stickerPickerFlickable.width
|
||||||
Text {
|
Label {
|
||||||
font.pixelSize: Theme.fontSizeMedium
|
font.pixelSize: Theme.fontSizeMedium
|
||||||
font.bold: true
|
font.bold: true
|
||||||
color: Theme.primaryColor
|
|
||||||
width: parent.width
|
width: parent.width
|
||||||
maximumLineCount: 1
|
maximumLineCount: 1
|
||||||
elide: Text.ElideRight
|
truncationMode: TruncationMode.Fade
|
||||||
text: qsTr("Recently used")
|
text: qsTr("Recently used")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -122,13 +121,12 @@ Item {
|
||||||
Column {
|
Column {
|
||||||
spacing: Theme.paddingMedium
|
spacing: Theme.paddingMedium
|
||||||
width: parent.width
|
width: parent.width
|
||||||
Text {
|
Label {
|
||||||
font.pixelSize: Theme.fontSizeMedium
|
font.pixelSize: Theme.fontSizeMedium
|
||||||
font.bold: true
|
font.bold: true
|
||||||
color: Theme.primaryColor
|
|
||||||
width: parent.width
|
width: parent.width
|
||||||
maximumLineCount: 1
|
maximumLineCount: 1
|
||||||
elide: Text.ElideRight
|
truncationMode: TruncationMode.Fade
|
||||||
text: modelData.title
|
text: modelData.title
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -159,12 +157,11 @@ Item {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Text {
|
Label {
|
||||||
font.pixelSize: Theme.fontSizeHuge
|
font.pixelSize: Theme.fontSizeHuge
|
||||||
color: Theme.primaryColor
|
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
maximumLineCount: 1
|
maximumLineCount: 1
|
||||||
elide: Text.ElideRight
|
truncationMode: TruncationMode.Fade
|
||||||
text: Emoji.emojify(modelData.emoji, font.pixelSize)
|
text: Emoji.emojify(modelData.emoji, font.pixelSize)
|
||||||
visible: !modelData.thumbnail.photo.local.is_downloading_completed
|
visible: !modelData.thumbnail.photo.local.is_downloading_completed
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,6 +20,7 @@ import QtQuick 2.6
|
||||||
import Sailfish.Silica 1.0
|
import Sailfish.Silica 1.0
|
||||||
import QtMultimedia 5.6
|
import QtMultimedia 5.6
|
||||||
import "../js/functions.js" as Functions
|
import "../js/functions.js" as Functions
|
||||||
|
import "../js/debug.js" as Debug
|
||||||
|
|
||||||
Item {
|
Item {
|
||||||
id: videoMessageComponent
|
id: videoMessageComponent
|
||||||
|
@ -302,39 +303,39 @@ Item {
|
||||||
|
|
||||||
onStatusChanged: {
|
onStatusChanged: {
|
||||||
if (status == MediaPlayer.NoMedia) {
|
if (status == MediaPlayer.NoMedia) {
|
||||||
console.log("No Media");
|
Debug.log("No Media");
|
||||||
videoBusyIndicator.visible = false;
|
videoBusyIndicator.visible = false;
|
||||||
}
|
}
|
||||||
if (status == MediaPlayer.Loading) {
|
if (status == MediaPlayer.Loading) {
|
||||||
console.log("Loading");
|
Debug.log("Loading");
|
||||||
videoBusyIndicator.visible = true;
|
videoBusyIndicator.visible = true;
|
||||||
}
|
}
|
||||||
if (status == MediaPlayer.Loaded) {
|
if (status == MediaPlayer.Loaded) {
|
||||||
console.log("Loaded");
|
Debug.log("Loaded");
|
||||||
videoBusyIndicator.visible = false;
|
videoBusyIndicator.visible = false;
|
||||||
}
|
}
|
||||||
if (status == MediaPlayer.Buffering) {
|
if (status == MediaPlayer.Buffering) {
|
||||||
console.log("Buffering");
|
Debug.log("Buffering");
|
||||||
videoBusyIndicator.visible = true;
|
videoBusyIndicator.visible = true;
|
||||||
}
|
}
|
||||||
if (status == MediaPlayer.Stalled) {
|
if (status == MediaPlayer.Stalled) {
|
||||||
console.log("Stalled");
|
Debug.log("Stalled");
|
||||||
videoBusyIndicator.visible = true;
|
videoBusyIndicator.visible = true;
|
||||||
}
|
}
|
||||||
if (status == MediaPlayer.Buffered) {
|
if (status == MediaPlayer.Buffered) {
|
||||||
console.log("Buffered");
|
Debug.log("Buffered");
|
||||||
videoBusyIndicator.visible = false;
|
videoBusyIndicator.visible = false;
|
||||||
}
|
}
|
||||||
if (status == MediaPlayer.EndOfMedia) {
|
if (status == MediaPlayer.EndOfMedia) {
|
||||||
console.log("End of Media");
|
Debug.log("End of Media");
|
||||||
videoBusyIndicator.visible = false;
|
videoBusyIndicator.visible = false;
|
||||||
}
|
}
|
||||||
if (status == MediaPlayer.InvalidMedia) {
|
if (status == MediaPlayer.InvalidMedia) {
|
||||||
console.log("Invalid Media");
|
Debug.log("Invalid Media");
|
||||||
videoBusyIndicator.visible = false;
|
videoBusyIndicator.visible = false;
|
||||||
}
|
}
|
||||||
if (status == MediaPlayer.UnknownStatus) {
|
if (status == MediaPlayer.UnknownStatus) {
|
||||||
console.log("Unknown Status");
|
Debug.log("Unknown Status");
|
||||||
videoBusyIndicator.visible = false;
|
videoBusyIndicator.visible = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -70,7 +70,7 @@ Column {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Text {
|
Label {
|
||||||
id: siteNameText
|
id: siteNameText
|
||||||
|
|
||||||
width: parent.width
|
width: parent.width
|
||||||
|
@ -78,35 +78,33 @@ Column {
|
||||||
font.pixelSize: webPagePreviewColumn.largerFontSize ? Theme.fontSizeSmall : Theme.fontSizeExtraSmall
|
font.pixelSize: webPagePreviewColumn.largerFontSize ? Theme.fontSizeSmall : Theme.fontSizeExtraSmall
|
||||||
font.bold: true
|
font.bold: true
|
||||||
color: Theme.secondaryHighlightColor
|
color: Theme.secondaryHighlightColor
|
||||||
elide: Text.ElideRight
|
truncationMode: TruncationMode.Fade
|
||||||
maximumLineCount: 1
|
maximumLineCount: 1
|
||||||
textFormat: Text.StyledText
|
textFormat: Text.StyledText
|
||||||
visible: (text !== "")
|
visible: (text !== "")
|
||||||
}
|
}
|
||||||
|
|
||||||
Text {
|
Label {
|
||||||
id: titleText
|
id: titleText
|
||||||
|
|
||||||
width: parent.width
|
width: parent.width
|
||||||
text: webPageData.title ? Emoji.emojify(webPageData.title, font.pixelSize) : ""
|
text: webPageData.title ? Emoji.emojify(webPageData.title, font.pixelSize) : ""
|
||||||
font.pixelSize: webPagePreviewColumn.largerFontSize ? Theme.fontSizeSmall : Theme.fontSizeExtraSmall
|
font.pixelSize: webPagePreviewColumn.largerFontSize ? Theme.fontSizeSmall : Theme.fontSizeExtraSmall
|
||||||
font.bold: true
|
font.bold: true
|
||||||
color: Theme.primaryColor
|
truncationMode: TruncationMode.Fade
|
||||||
elide: Text.ElideRight
|
|
||||||
wrapMode: Text.Wrap
|
wrapMode: Text.Wrap
|
||||||
maximumLineCount: 2
|
maximumLineCount: 2
|
||||||
textFormat: Text.StyledText
|
textFormat: Text.StyledText
|
||||||
visible: (text !== "")
|
visible: (text !== "")
|
||||||
}
|
}
|
||||||
|
|
||||||
Text {
|
Label {
|
||||||
id: descriptionText
|
id: descriptionText
|
||||||
|
|
||||||
width: parent.width
|
width: parent.width
|
||||||
text: webPageData.description ? Emoji.emojify(webPageData.description, font.pixelSize) : ""
|
text: webPageData.description ? Emoji.emojify(webPageData.description, font.pixelSize) : ""
|
||||||
font.pixelSize: webPagePreviewColumn.largerFontSize ? Theme.fontSizeSmall : Theme.fontSizeExtraSmall
|
font.pixelSize: webPagePreviewColumn.largerFontSize ? Theme.fontSizeSmall : Theme.fontSizeExtraSmall
|
||||||
color: Theme.primaryColor
|
truncationMode: TruncationMode.Fade
|
||||||
elide: Text.ElideRight
|
|
||||||
wrapMode: Text.Wrap
|
wrapMode: Text.Wrap
|
||||||
maximumLineCount: 3
|
maximumLineCount: 3
|
||||||
textFormat: Text.StyledText
|
textFormat: Text.StyledText
|
||||||
|
@ -146,7 +144,7 @@ Column {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Text {
|
Label {
|
||||||
id: noPreviewAvailableText
|
id: noPreviewAvailableText
|
||||||
|
|
||||||
width: parent.width
|
width: parent.width
|
||||||
|
@ -154,7 +152,7 @@ Column {
|
||||||
font.pixelSize: webPagePreviewColumn.largerFontSize ? Theme.fontSizeExtraSmall : Theme.fontSizeTiny
|
font.pixelSize: webPagePreviewColumn.largerFontSize ? Theme.fontSizeExtraSmall : Theme.fontSizeTiny
|
||||||
font.italic: true
|
font.italic: true
|
||||||
color: Theme.secondaryColor
|
color: Theme.secondaryColor
|
||||||
elide: Text.ElideRight
|
truncationMode: TruncationMode.Fade
|
||||||
wrapMode: Text.Wrap
|
wrapMode: Text.Wrap
|
||||||
maximumLineCount: 1
|
maximumLineCount: 1
|
||||||
textFormat: Text.StyledText
|
textFormat: Text.StyledText
|
||||||
|
|
|
@ -21,6 +21,7 @@ import Sailfish.Silica 1.0
|
||||||
import "../"
|
import "../"
|
||||||
import "../../js/twemoji.js" as Emoji
|
import "../../js/twemoji.js" as Emoji
|
||||||
import "../../js/functions.js" as Functions
|
import "../../js/functions.js" as Functions
|
||||||
|
import "../../js/debug.js" as Debug
|
||||||
|
|
||||||
|
|
||||||
SilicaFlickable {
|
SilicaFlickable {
|
||||||
|
@ -59,7 +60,7 @@ SilicaFlickable {
|
||||||
chatInformationPage.isChannel = chatInformationPage.groupInformation.is_channel;
|
chatInformationPage.isChannel = chatInformationPage.groupInformation.is_channel;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
console.log("is set up", chatInformationPage.isPrivateChat, chatInformationPage.isBasicGroup, chatInformationPage.isSuperGroup, chatInformationPage.chatPartnerGroupId)
|
Debug.log("is set up", chatInformationPage.isPrivateChat, chatInformationPage.isBasicGroup, chatInformationPage.isSuperGroup, chatInformationPage.chatPartnerGroupId)
|
||||||
if(!chatInformationPage.isPrivateChat) {
|
if(!chatInformationPage.isPrivateChat) {
|
||||||
updateGroupStatusText();
|
updateGroupStatusText();
|
||||||
}
|
}
|
||||||
|
@ -123,13 +124,13 @@ SilicaFlickable {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
onSupergroupFullInfoReceived: {
|
onSupergroupFullInfoReceived: {
|
||||||
console.log("onSupergroupFullInfoReceived", chatInformationPage.isSuperGroup, chatInformationPage.chatPartnerGroupId, groupId)
|
Debug.log("onSupergroupFullInfoReceived", chatInformationPage.isSuperGroup, chatInformationPage.chatPartnerGroupId, groupId)
|
||||||
if(chatInformationPage.isSuperGroup && chatInformationPage.chatPartnerGroupId === groupId) {
|
if(chatInformationPage.isSuperGroup && chatInformationPage.chatPartnerGroupId === groupId) {
|
||||||
chatInformationPage.groupFullInformation = groupFullInfo;
|
chatInformationPage.groupFullInformation = groupFullInfo;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
onSupergroupFullInfoUpdated: {
|
onSupergroupFullInfoUpdated: {
|
||||||
console.log("onSupergroupFullInfoUpdated", chatInformationPage.isSuperGroup, chatInformationPage.chatPartnerGroupId, groupId)
|
Debug.log("onSupergroupFullInfoUpdated", chatInformationPage.isSuperGroup, chatInformationPage.chatPartnerGroupId, groupId)
|
||||||
if(chatInformationPage.isSuperGroup && chatInformationPage.chatPartnerGroupId === groupId) {
|
if(chatInformationPage.isSuperGroup && chatInformationPage.chatPartnerGroupId === groupId) {
|
||||||
chatInformationPage.groupFullInformation = groupFullInfo;
|
chatInformationPage.groupFullInformation = groupFullInfo;
|
||||||
}
|
}
|
||||||
|
@ -281,14 +282,12 @@ SilicaFlickable {
|
||||||
asynchronous: true
|
asynchronous: true
|
||||||
anchors.fill: chatPictureThumbnail
|
anchors.fill: chatPictureThumbnail
|
||||||
source: chatInformationPage.isPrivateChat
|
source: chatInformationPage.isPrivateChat
|
||||||
? "../components/chatInformationPage/ChatInformationProfilePictureList.qml"
|
? "ChatInformationProfilePictureList.qml"
|
||||||
: "../components/chatInformationPage/ChatInformationProfilePicture.qml"
|
: "ChatInformationProfilePicture.qml"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// PageHeader changes the html base path:
|
|
||||||
property url emojiBase: "../js/emoji/"
|
|
||||||
leftMargin: imageContainer.getEased((imageContainer.minDimension + Theme.paddingMedium), 0, imageContainer.tweenFactor) + Theme.horizontalPageMargin
|
leftMargin: imageContainer.getEased((imageContainer.minDimension + Theme.paddingMedium), 0, imageContainer.tweenFactor) + Theme.horizontalPageMargin
|
||||||
title: chatInformationPage.chatInformation.title !== "" ? Emoji.emojify(chatInformationPage.chatInformation.title, Theme.fontSizeLarge, emojiBase) : qsTr("Unknown")
|
title: chatInformationPage.chatInformation.title !== "" ? Emoji.emojify(chatInformationPage.chatInformation.title, Theme.fontSizeLarge) : qsTr("Unknown")
|
||||||
description: chatInformationPage.isPrivateChat ? ("@"+(chatInformationPage.privateChatUserInformation.username || chatInformationPage.chatPartnerGroupId)) : ""
|
description: chatInformationPage.isPrivateChat ? ("@"+(chatInformationPage.privateChatUserInformation.username || chatInformationPage.chatPartnerGroupId)) : ""
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -77,19 +77,18 @@ ChatInformationTabItemBase {
|
||||||
width: parent.width
|
width: parent.width
|
||||||
|
|
||||||
// chat title
|
// chat title
|
||||||
primaryText.text: Emoji.emojify(Functions.getUserName(user), primaryText.font.pixelSize, "../js/emoji/")
|
primaryText.text: Emoji.emojify(Functions.getUserName(user), primaryText.font.pixelSize)
|
||||||
// last user
|
// last user
|
||||||
prologSecondaryText.text: "@"+(user.username !== "" ? user.username : user_id) + (user_id === chatInformationPage.myUserId ? " " + qsTr("You") : "")
|
prologSecondaryText.text: "@"+(user.username !== "" ? user.username : user_id) + (user_id === chatInformationPage.myUserId ? " " + qsTr("You") : "")
|
||||||
secondaryText {
|
secondaryText {
|
||||||
horizontalAlignment: Text.AlignRight
|
horizontalAlignment: Text.AlignRight
|
||||||
property string statusText: Functions.getChatMemberStatusText(model.status["@type"])
|
property string statusText: Functions.getChatMemberStatusText(model.status["@type"])
|
||||||
property string customText: model.status.custom_title ? Emoji.emojify(model.status.custom_title, secondaryText.font.pixelSize, "../js/emoji/") : ""
|
property string customText: model.status.custom_title ? Emoji.emojify(model.status.custom_title, secondaryText.font.pixelSize) : ""
|
||||||
text: (statusText !== "" && customText !== "") ? statusText + ", " + customText : statusText + customText
|
text: (statusText !== "" && customText !== "") ? statusText + ", " + customText : statusText + customText
|
||||||
}
|
}
|
||||||
tertiaryText {
|
tertiaryText {
|
||||||
maximumLineCount: 1
|
maximumLineCount: 1
|
||||||
text: user.type["@type"] === "userTypeBot" ? (Emoji.emojify("🤖 "+bot_info.description, tertiaryText.font.pixelSize, "../js/emoji/")) : Functions.getChatPartnerStatusText(user.status["@type"], user.status.was_online);
|
text: user.type["@type"] === "userTypeBot" ? (Emoji.emojify("🤖 "+bot_info.description, tertiaryText.font.pixelSize)) : Functions.getChatPartnerStatusText(user.status["@type"], user.status.was_online);
|
||||||
elide: Text.ElideRight
|
|
||||||
}
|
}
|
||||||
|
|
||||||
onClicked: {
|
onClicked: {
|
||||||
|
@ -160,7 +159,7 @@ ChatInformationTabItemBase {
|
||||||
onChatChanged: {
|
onChatChanged: {
|
||||||
if (changedChatId === chat_id) {
|
if (changedChatId === chat_id) {
|
||||||
// Force update of some list item elements (currently only last message text seems to create problems). dataChanged() doesn't seem to trigger them all :(
|
// Force update of some list item elements (currently only last message text seems to create problems). dataChanged() doesn't seem to trigger them all :(
|
||||||
secondaryText.text = last_message_text ? Emoji.emojify(Functions.enhanceHtmlEntities(last_message_text), Theme.fontSizeExtraSmall, "../../js/emoji/") : qsTr("Unknown")
|
secondaryText.text = last_message_text ? Emoji.emojify(Functions.enhanceHtmlEntities(last_message_text), Theme.fontSizeExtraSmall) : qsTr("Unknown")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -61,7 +61,6 @@ Item {
|
||||||
width: loaded ? (headerGrid.width / tabView.count) : 0
|
width: loaded ? (headerGrid.width / tabView.count) : 0
|
||||||
opacity: loaded ? 1.0 : 0.0
|
opacity: loaded ? 1.0 : 0.0
|
||||||
|
|
||||||
Behavior on width { PropertyAnimation {duration: 200}}
|
|
||||||
Behavior on opacity { FadeAnimation {}}
|
Behavior on opacity { FadeAnimation {}}
|
||||||
height: Theme.itemSizeLarge
|
height: Theme.itemSizeLarge
|
||||||
property int itemIndex: index
|
property int itemIndex: index
|
||||||
|
|
|
@ -50,7 +50,7 @@ Column {
|
||||||
font.pixelSize: Theme.fontSizeSmall
|
font.pixelSize: Theme.fontSizeSmall
|
||||||
textFormat: Text.StyledText
|
textFormat: Text.StyledText
|
||||||
color: Theme.primaryColor
|
color: Theme.primaryColor
|
||||||
text: Emoji.emojify( Functions.replaceUrlsWithLinks(textItem.text).replace(/\n/g, "<br>"), Theme.fontSizeExtraSmall, "../../js/emoji/")
|
text: Emoji.emojify( Functions.replaceUrlsWithLinks(textItem.text).replace(/\n/g, "<br>"), Theme.fontSizeExtraSmall)
|
||||||
linkColor: Theme.highlightColor
|
linkColor: Theme.highlightColor
|
||||||
visible: text !== ""
|
visible: text !== ""
|
||||||
onLinkActivated: {
|
onLinkActivated: {
|
||||||
|
|
47
qml/js/debug.js
Normal file
|
@ -0,0 +1,47 @@
|
||||||
|
/*
|
||||||
|
Copyright (C) 2020 Sebastian J. Wolf and other contributors
|
||||||
|
|
||||||
|
This file is part of Fernschreiber.
|
||||||
|
|
||||||
|
Fernschreiber is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 3 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
Fernschreiber is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with Fernschreiber. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
.pragma library
|
||||||
|
.import WerkWolf.Fernschreiber 1.0 as Fernschreiber
|
||||||
|
var enabled = Fernschreiber.DebugLog.enabled;
|
||||||
|
var log = enabled ? console.log : function(){};
|
||||||
|
var assert = enabled ? console.assert : function(){};
|
||||||
|
var time = enabled ? console.time : function(){};
|
||||||
|
var timeEnd = enabled ? console.timeEnd : function(){};
|
||||||
|
var trace = enabled ? console.trace : function(){};
|
||||||
|
var count = enabled ? console.count : function(){};
|
||||||
|
var profile = enabled ? console.profile : function(){};
|
||||||
|
var exception = enabled ? console.exception : function(){};
|
||||||
|
|
||||||
|
Fernschreiber.DebugLog.enabledChanged.connect(function() {
|
||||||
|
enabled = Fernschreiber.DebugLog.enabled;
|
||||||
|
if(enabled) {
|
||||||
|
log = console.log;
|
||||||
|
assert = console.assert;
|
||||||
|
time = console.time;
|
||||||
|
timeEnd = console.timeEnd;
|
||||||
|
trace = console.trace;
|
||||||
|
count = console.count;
|
||||||
|
profile = console.profile;
|
||||||
|
exception = console.exception;
|
||||||
|
} else {
|
||||||
|
log = assert = time = timeEnd = trace = count = profile = exception = function(){};
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
Before Width: | Height: | Size: 7 KiB After Width: | Height: | Size: 3.4 KiB |
|
@ -1 +1 @@
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#99AAB5" d="M35.059 18c0 3.304-7.642 11-17.067 11C8.566 29 .925 22.249.925 18c0-3.313 7.642-11 17.067-11s17.067 7.686 17.067 11z"/><path fill="#F5F8FA" d="M33.817 18c0 2.904-7.087 9.667-15.826 9.667-8.74 0-15.825-5.935-15.825-9.667 0-2.912 7.085-9.666 15.825-9.666C26.73 8.333 33.817 15.088 33.817 18z"/><circle fill="#55ACEE" cx="18" cy="18" r="8.458"/><circle fill="#292F33" cx="18" cy="18" r="4.708"/><circle fill="#F5F8FA" cx="21" cy="15" r="2"/></svg>
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#E1E8ED" d="M35.059 18c0 3.304-7.642 11-17.067 11C8.566 29 .925 22.249.925 18c0-3.314 34.134-3.314 34.134 0z"/><path fill="#292F33" d="M35.059 18H.925c0-3.313 7.642-11 17.067-11s17.067 7.686 17.067 11z"/><path fill="#F5F8FA" d="M33.817 18c0 2.904-7.087 9.667-15.826 9.667-8.74 0-15.825-5.935-15.825-9.667 0-2.912 7.085-9.666 15.825-9.666C26.73 8.333 33.817 15.088 33.817 18z"/><circle fill="#8B5E3C" cx="18" cy="18" r="8.458"/><circle fill="#292F33" cx="18" cy="18" r="4.708"/><circle fill="#F5F8FA" cx="14.983" cy="15" r="2"/></svg>
|
Before Width: | Height: | Size: 528 B After Width: | Height: | Size: 605 B |
|
@ -1 +1 @@
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#E0E7EC" d="M36 32c0 2.209-1.791 4-4 4H4c-2.209 0-4-1.791-4-4V9c0-2.209 1.791-4 4-4h28c2.209 0 4 1.791 4 4v23z"/><path fill="#DD2F45" d="M34 0h-3.277c.172.295.277.634.277 1 0 1.104-.896 2-2 2s-2-.896-2-2c0-.366.105-.705.277-1H8.723C8.895.295 9 .634 9 1c0 1.104-.896 2-2 2s-2-.896-2-2c0-.366.105-.705.277-1H2C.896 0 0 .896 0 2v11h36V2c0-1.104-.896-2-2-2z"/><path fill="#66757F" d="M23.688 19h-.5c-1.085 0-1.538-.731-1.538-1.5 0-.792.565-1.5 1.538-1.5h2.015c.972 0 1.515.701 1.515 1.605V30.47c0 1.13-.558 1.763-1.53 1.763s-1.5-.633-1.5-1.763V19z"/><g fill="#F3AAB9"><circle cx="33" cy="10" r="1"/><circle cx="33" cy="7" r="1"/><circle cx="30" cy="10" r="1"/><circle cx="30" cy="7" r="1"/><circle cx="27" cy="10" r="1"/><circle cx="27" cy="7" r="1"/></g><path d="M2.468 4.94c0-.437.346-.783.783-.783h.173c.335 0 .569.173.711.406l1.891 3.08 1.9-3.089c.162-.264.386-.396.701-.396h.172c.437 0 .783.346.783.783v5.65c0 .437-.346.783-.783.783-.427 0-.772-.356-.772-.783V7.044L6.655 9.158c-.162.243-.365.396-.65.396s-.488-.152-.65-.396L4.003 7.074v3.537c0 .427-.346.762-.772.762s-.762-.335-.762-.762V4.94zm7.923 5.366l2.479-5.6c.173-.386.488-.62.915-.62h.091c.427 0 .732.234.905.62l2.479 5.6c.051.111.081.213.081.315 0 .417-.325.752-.742.752-.366 0-.61-.213-.752-.539l-.477-1.118h-3.13l-.498 1.169c-.132.305-.396.488-.722.488-.407 0-.722-.325-.722-.732.001-.112.042-.224.093-.335zm4.4-1.972l-.985-2.348-.986 2.348h1.971zm3.277-3.353c0-.437.346-.783.783-.783h2.47c.904 0 1.605.254 2.072.722.396.396.61.955.61 1.626v.021c0 1.118-.559 1.809-1.423 2.165l1.087 1.321c.153.193.255.356.255.6 0 .437-.366.722-.742.722-.355 0-.59-.173-.772-.407l-1.524-1.931h-1.25v1.555c0 .437-.346.783-.782.783-.437 0-.783-.346-.783-.783V4.981zm3.151 2.673c.762 0 1.199-.407 1.199-1.006v-.021c0-.67-.468-1.016-1.23-1.016h-1.555v2.043h1.586z" fill="#FFF"/><path fill="#66757F" d="M8.799 28.809l4.542-3.721c1.986-1.62 2.762-2.511 2.762-3.835 0-1.346-.89-2.077-2.145-2.077-1.004 0-1.712.434-2.602 1.392-.228.251-.639.503-1.187.503-.89 0-1.598-.708-1.598-1.598 0-.388.16-.799.411-1.096 1.278-1.484 2.785-2.351 5.204-2.351 3.31 0 5.501 1.94 5.501 4.93v.046c0 2.67-1.369 3.994-4.2 6.185l-2.602 2.009h5.569c.845 0 1.53.685 1.53 1.529 0 .844-.685 1.507-1.53 1.507H9.781c-1.096 0-1.895-.616-1.895-1.666 0-.685.32-1.278.913-1.757z"/></svg>
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#E0E7EC" d="M36 32c0 2.209-1.791 4-4 4H4c-2.209 0-4-1.791-4-4V9c0-2.209 1.791-4 4-4h28c2.209 0 4 1.791 4 4v23z"/><path d="M23.657 19.12H17.87c-1.22 0-1.673-.791-1.673-1.56 0-.791.429-1.56 1.673-1.56h8.184c1.154 0 1.628 1.04 1.628 1.628 0 .452-.249.927-.52 1.492l-5.607 11.395c-.633 1.266-.882 1.717-1.899 1.717-1.244 0-1.877-.949-1.877-1.605 0-.271.068-.474.226-.791l5.652-10.716zM10.889 19h-.5c-1.085 0-1.538-.731-1.538-1.5 0-.792.565-1.5 1.538-1.5h2.015c.972 0 1.515.701 1.515 1.605V30.47c0 1.13-.558 1.763-1.53 1.763s-1.5-.633-1.5-1.763V19z" fill="#66757F"/><path fill="#DD2F45" d="M34 0h-3.277c.172.295.277.634.277 1 0 1.104-.896 2-2 2s-2-.896-2-2c0-.366.105-.705.277-1H8.723C8.895.295 9 .634 9 1c0 1.104-.896 2-2 2s-2-.896-2-2c0-.366.105-.705.277-1H2C.896 0 0 .896 0 2v11h36V2c0-1.104-.896-2-2-2z"/><path d="M13.182 4.604c0-.5.32-.78.75-.78.429 0 .749.28.749.78v5.017h1.779c.51 0 .73.38.72.72-.02.33-.28.659-.72.659h-2.498c-.49 0-.78-.319-.78-.819V4.604zm-6.91 0c0-.5.32-.78.75-.78s.75.28.75.78v3.488c0 .92.589 1.649 1.539 1.649.909 0 1.529-.769 1.529-1.649V4.604c0-.5.319-.78.749-.78s.75.28.75.78v3.568c0 1.679-1.38 2.949-3.028 2.949-1.669 0-3.039-1.25-3.039-2.949V4.604zM5.49 9.001c0 1.679-1.069 2.119-1.979 2.119-.689 0-1.839-.27-1.839-1.14 0-.269.23-.609.56-.609.4 0 .75.37 1.199.37.56 0 .56-.52.56-.84V4.604c0-.5.32-.78.749-.78.431 0 .75.28.75.78v4.397z" fill="#F5F8FA"/><path d="M32 10c0 .552.447 1 1 1s1-.448 1-1-.447-1-1-1-1 .448-1 1m0-3c0 .552.447 1 1 1s1-.448 1-1-.447-1-1-1-1 .448-1 1m-3 3c0 .552.447 1 1 1s1-.448 1-1-.447-1-1-1-1 .448-1 1m0-3c0 .552.447 1 1 1s1-.448 1-1-.447-1-1-1-1 .448-1 1m-3 3c0 .552.447 1 1 1s1-.448 1-1-.447-1-1-1-1 .448-1 1m0-3c0 .552.447 1 1 1s1-.448 1-1-.447-1-1-1-1 .448-1 1m-3 0c0 .552.447 1 1 1s1-.448 1-1-.447-1-1-1-1 .448-1 1m0 3c0 .552.447 1 1 1s1-.448 1-1-.447-1-1-1-1 .448-1 1" fill="#F4ABBA"/></svg>
|
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 1.9 KiB |
|
@ -1 +1 @@
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#292F33" d="M35 32c0 2.209-1.791 4-4 4H5c-2.209 0-4-1.791-4-4V8c0-2.209 1.791-4 4-4h26c2.209 0 4 1.791 4 4v24z"/><path fill="#E1E8ED" d="M33 32c0 1.104-.896 2-2 2H5c-1.104 0-2-.896-2-2V12c0-1.104.896-2 2-2h26c1.104 0 2 .896 2 2v20z"/><path fill="#DD2E44" d="M33 16H3V8c0-1.104.896-2 2-2h26c1.104 0 2 .896 2 2v8z"/><path d="M11 7c0 .552-.448 1-1 1s-1-.448-1-1V1c0-.552.448-1 1-1s1 .448 1 1v6zm16 0c0 .552-.447 1-1 1-.553 0-1-.448-1-1V1c0-.552.447-1 1-1 .553 0 1 .448 1 1v6z" fill="#99AAB5"/><path d="M8.299 9.292c0-.393.311-.704.704-.704h.155c.301 0 .512.155.639.365l1.701 2.77 1.709-2.779c.146-.238.347-.357.631-.357h.155c.393 0 .704.311.704.704v5.082c0 .393-.311.704-.704.704-.384 0-.694-.32-.694-.704v-3.19l-1.234 1.901c-.146.219-.329.356-.585.356-.256 0-.439-.137-.585-.356L9.679 11.21v3.181c0 .384-.311.686-.695.686s-.686-.302-.686-.686V9.292zm7.126 4.826l2.23-5.037c.155-.347.439-.558.823-.558h.082c.384 0 .658.21.814.558l2.23 5.037c.046.1.073.192.073.283 0 .375-.293.676-.667.676-.329 0-.549-.192-.676-.484l-.43-1.006h-2.816l-.448 1.051c-.119.274-.357.439-.649.439-.366 0-.649-.293-.649-.658 0-.1.037-.2.083-.301zm3.957-1.773l-.886-2.112-.887 2.112h1.773zm2.948-3.016c0-.393.311-.704.704-.704h2.221c.813 0 1.444.229 1.864.649.357.357.549.859.549 1.463v.018c0 1.005-.502 1.627-1.28 1.947l.978 1.188c.138.174.229.32.229.539 0 .393-.329.649-.668.649-.32 0-.531-.155-.695-.366l-1.371-1.737h-1.124v1.398c0 .393-.311.704-.704.704-.393 0-.704-.311-.704-.704V9.329zm2.834 2.404c.685 0 1.079-.366 1.079-.905v-.018c0-.603-.421-.914-1.107-.914h-1.398v1.838h1.426z" fill="#FFF"/><path d="M23.477 20.376h-.45c-.976 0-1.383-.658-1.383-1.349 0-.712.509-1.349 1.383-1.349h1.813c.874 0 1.362.631 1.362 1.444v11.572c0 1.016-.502 1.586-1.376 1.586-.874 0-1.349-.569-1.349-1.586V20.376zm-13.391 8.823l4.086-3.347c1.786-1.457 2.484-2.258 2.484-3.449 0-1.211-.8-1.868-1.93-1.868-.903 0-1.54.391-2.341 1.252-.206.226-.575.452-1.068.452-.801 0-1.437-.637-1.437-1.437 0-.349.144-.719.37-.986 1.149-1.335 2.505-2.115 4.681-2.115 2.977 0 4.948 1.745 4.948 4.435v.041c0 2.402-1.232 3.593-3.777 5.563l-2.341 1.807h5.01c.76 0 1.376.616 1.376 1.376s-.616 1.355-1.376 1.355h-7.802c-.986 0-1.704-.554-1.704-1.499 0-.616.287-1.149.821-1.58z" fill="#66757F"/></svg>
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#292F33" d="M35 32c0 2.209-1.791 4-4 4H5c-2.209 0-4-1.791-4-4V8c0-2.209 1.791-4 4-4h26c2.209 0 4 1.791 4 4v24z"/><path fill="#E1E8ED" d="M33 32c0 1.104-.896 2-2 2H5c-1.104 0-2-.896-2-2V12c0-1.104.896-2 2-2h26c1.104 0 2 .896 2 2v20z"/><path d="M23.115 20.484H17.91c-1.098 0-1.504-.712-1.504-1.403 0-.712.386-1.403 1.504-1.403h7.362c1.038 0 1.464.935 1.464 1.464 0 .407-.224.834-.468 1.342l-5.043 10.25c-.569 1.139-.793 1.545-1.708 1.545-1.119 0-1.688-.854-1.688-1.444 0-.244.061-.427.204-.712l5.082-9.639zm-11.485-.108h-.45c-.976 0-1.383-.658-1.383-1.349 0-.712.509-1.349 1.383-1.349h1.813c.874 0 1.362.631 1.362 1.444v11.572c0 1.016-.502 1.586-1.376 1.586s-1.349-.569-1.349-1.586V20.376z" fill="#66757F"/><path fill="#DD2E44" d="M33 16H3V8c0-1.104.896-2 2-2h26c1.104 0 2 .896 2 2v8z"/><path d="M15.26 9.604c0-.5.3-.78.702-.78.402 0 .701.28.701.78v4.017h1.665c.477 0 .682.38.672.72-.018.33-.261.659-.672.659H15.99c-.458 0-.73-.319-.73-.819V9.604zm-6.465 0c0-.5.299-.78.702-.78.402 0 .701.28.701.78v2.488c0 .92.552 1.649 1.44 1.649.85 0 1.43-.769 1.43-1.649V9.604c0-.5.299-.78.702-.78.402 0 .701.28.701.78v2.568c0 1.679-1.291 2.949-2.833 2.949-1.561 0-2.843-1.25-2.843-2.949V9.604zm-.731 3.397c0 1.679-1 2.119-1.851 2.119-.645 0-1.721-.27-1.721-1.14 0-.269.216-.609.524-.609.374 0 .702.37 1.122.37.524 0 .524-.52.524-.84V9.604c0-.5.298-.78.7-.78.403 0 .702.28.702.78v3.397z" fill="#F5F8FA"/><path d="M30 14c0 .552.447 1 1 1s1-.448 1-1-.447-1-1-1-1 .448-1 1m-3 0c0 .552.447 1 1 1s1-.448 1-1-.447-1-1-1-1 .448-1 1m-3 0c0 .552.447 1 1 1s1-.448 1-1-.447-1-1-1-1 .448-1 1m0-3c0 .552.447 1 1 1s1-.448 1-1-.447-1-1-1-1 .448-1 1m3 0c0 .552.447 1 1 1s1-.448 1-1-.447-1-1-1-1 .448-1 1m3 0c0 .552.447 1 1 1s1-.448 1-1-.447-1-1-1-1 .448-1 1" fill="#F4ABBA"/><path d="M11 7c0 .552-.448 1-1 1s-1-.448-1-1V1c0-.552.448-1 1-1s1 .448 1 1v6zm16 0c0 .552-.447 1-1 1s-1-.448-1-1V1c0-.552.447-1 1-1s1 .448 1 1v6z" fill="#99AAB5"/></svg>
|
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 1.9 KiB |
|
@ -1 +1 @@
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#FFAC33" d="M1.061 19.062c-.583-.584-.583-1.539 0-2.122L16.94 1.061c.583-.583 1.539-.583 2.122 0L34.94 16.94c.583.583.583 1.538 0 2.121L19.062 34.939c-.583.583-1.539.583-2.122 0L1.061 19.062z"/></svg>
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#F4900C" d="M1.061 19.062c-.583-.584-.583-1.539 0-2.122L16.94 1.061c.583-.583 1.539-.583 2.122 0L34.94 16.94c.583.583.583 1.538 0 2.121L19.062 34.939c-.583.583-1.539.583-2.122 0L1.061 19.062z"/></svg>
|
Before Width: | Height: | Size: 272 B After Width: | Height: | Size: 272 B |
|
@ -1 +1 @@
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#FFAC33" d="M7.707 18.708c-.389-.389-.389-1.025 0-1.414l9.585-9.586c.389-.389 1.025-.389 1.414 0l9.587 9.587c.389.389.389 1.025 0 1.414l-9.587 9.585c-.389.389-1.025.389-1.414 0l-9.585-9.586z"/></svg>
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#F4900C" d="M7.707 18.708c-.389-.389-.389-1.025 0-1.414l9.585-9.586c.389-.389 1.025-.389 1.414 0l9.587 9.587c.389.389.389 1.025 0 1.414l-9.587 9.585c-.389.389-1.025.389-1.414 0l-9.585-9.586z"/></svg>
|
Before Width: | Height: | Size: 271 B After Width: | Height: | Size: 271 B |
|
@ -1 +1 @@
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><circle fill="#FFAC33" cx="18" cy="18" r="18"/></svg>
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><circle fill="#F4900C" cx="18" cy="18" r="18"/></svg>
|
Before Width: | Height: | Size: 113 B After Width: | Height: | Size: 113 B |
|
@ -1 +1 @@
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#FFAC33" d="M36 32c0 2.209-1.791 4-4 4H4c-2.209 0-4-1.791-4-4V4c0-2.209 1.791-4 4-4h28c2.209 0 4 1.791 4 4v28z"/></svg>
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#F4900C" d="M36 32c0 2.209-1.791 4-4 4H4c-2.209 0-4-1.791-4-4V4c0-2.209 1.791-4 4-4h28c2.209 0 4 1.791 4 4v28z"/></svg>
|
Before Width: | Height: | Size: 191 B After Width: | Height: | Size: 191 B |
|
@ -1 +1 @@
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#F7DECE" d="M20.591.985c-2.139-.842-5.474.244-5.861 2.743-.385 2.482.321 6.374 2.501 6.138 2.286-.247 4.63-.744 5.556-3.097.927-2.352-.056-4.942-2.196-5.784z"/><path fill="#F7DECE" d="M22.18 7.376c3.112-3.657-4.386-3.3-4.386-3.3-1.419.052-.442 2.416-1.11 3.707-.458.894 1.47 1.367 1.47 1.367s.885-.013.932 1.06v.01c.011.273-.018.598-.145 1.032-.635 2.149 2.252 3.467 2.885 1.313.251-.852.153-1.602.026-2.294l-.012-.061c-.191-1.028-.429-1.93.34-2.834z"/><path fill="#292F33" d="M23.035 1.848C21.611.181 19.652-.511 16.296.786c-2.931 1.133-1.988 3.463-1.306 3.065 1.882-1.097 3.131-.16 4.089 1.371.279-.752 1.507-1.214 1.755-.114.279 1.236-.869 1.775-.716 2.113.051.113-.058-.102 0 0 .734 1.289 1.929 1.694 1.929 1.694s.453.177 1.226-1.345c.773-1.522 1.177-4.067-.238-5.722z"/><path fill="#292F33" d="M22.264 3.601c2.904.626 1.712 5.155 1.997 6.821.35 2.051 2.364 2.124 2.364 2.124s-.332-1.429-.155-2.923c.246-2.072 1.597-3.745.171-5.768-1.821-2.584-6.182-.643-4.377-.254zm-2.012 28.637c-.937.204-1.397.837-1.522 1.423s.419 1.633.963 1.842 5.354.548 6.132-.078c1.162-.934-4.804-3.354-5.573-3.187z"/><path fill="#3A4449" d="M20.51 31.844c-.521.24-.552 1.313.159 2.024.846.846 2.409 1.519 3.34 1.769s2.548-.27 2.539-.923c-.009-.701-1.545-1.829-2.238-1.859-.693-.031-1.505-.042-1.868-.464-.362-.421-1.391-.796-1.932-.547z"/><path fill="#4289C1" d="M25.336 26.113c.655 2.154.529 4.598-1.058 5.452-1.52.818-4.71.946-4.71.946s-.905.89-.351 2.014c.315.639.649.921.58 1.007-.061.076-.748.153-1.053.214-.814.163-1.755.102-3.341.061-1.587-.041-2.272.113-3.998.076-1.912-.041-3.344-.507-4.298-2.08-.814-1.343-.395-3.338 1.505-4.638 1.546-1.058 6.469-2.197 8.341-2.482 1.873-.285 7.813-2.441 8.383-.57z"/><path fill="#2A6797" d="M11.014 32.461c.718.062 6.591.163 8.137.081 0 0 0 .57-1.505.651-1.505.081-4.516-.407-6.469-.244-.538.045-1.485.121-1.587-.041-.117-.185.925-.491 1.424-.447z"/><path fill="#9268CA" d="M25.28 24.097c0 1.946.508 2.792.592 3.638.047.47-1.553-.275-2.603-.41-2.727-.351-6.408-.309-6.408-.309-.557-2.685.576-4.818-.306-8.419-1.138-4.646 3.231-9.23 5.127-8.621 2.478.797 3.937 3.064 3.936 7.395 0 2.998-.338 4.78-.338 6.726z"/><path fill="#F7DECE" d="M19.3 15.532c-.341 2.345-.225 6.209-.58 6.395-2.051 1.072-4.163 3.421-5.517 3.961-.981.392-1.967.635-2.378 1.031-.659.634-1.453 1.184-1.497 1.8-.045.625.681.819 1.908.241.901-.424 1.624-.403 2.419-1.032 1.132-.896 6.19-1.666 7.84-4.348.557-.905.927-3.403 1.588-7.744-1.11-.401-3.783-.304-3.783-.304z"/></svg>
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#F7DECE" d="M19.652 1.065c-1.764-.694-4.514.202-4.834 2.263-.317 2.047.265 5.257 2.063 5.063 1.885-.204 3.819-.613 4.582-2.554.764-1.942-.047-4.078-1.811-4.772z"/><path fill="#F7DECE" d="M20.963 6.335c2.567-3.016-3.617-2.722-3.617-2.722-1.17.042-.365 1.993-.916 3.057-.378.737 1.212 1.128 1.212 1.128s.73-.011.769.875v.008c.009.225-.015.493-.12.851-.524 1.772 1.857 2.859 2.38 1.083.207-.703.127-1.321.022-1.892l-.009-.051c-.159-.847-.356-1.591.279-2.337z"/><path fill="#292F33" d="M21.668 1.776C20.493.401 18.877-.17 16.11.9c-2.417.934-1.64 2.856-1.077 2.528 1.552-.905 2.582-.132 3.372 1.131.23-.62 1.242-1.001 1.447-.094.23 1.02-.717 1.464-.59 1.742.042.093-.048-.084 0 0 .606 1.063 1.591 1.397 1.591 1.397s.373.147 1.01-1.109c.638-1.255.971-3.354-.195-4.719z"/><path fill="#292F33" d="M21.032 3.222c2.395.517 1.412 4.251 1.647 5.625.289 1.692 1.95 1.752 1.95 1.752s-.275-1.178-.129-2.41c.203-1.709 1.317-3.088.141-4.757-1.501-2.131-5.098-.531-3.609-.21z"/><path fill="#9268CA" d="M23.519 20.125c0 1.605.25 2.331.32 3.029.039.388-1.112-.255-1.978-.367-2.249-.289-5.165-1.089-5.165-1.089-.46-2.215.356-3.139-.372-6.109-.939-3.832 2.664-7.612 4.228-7.11 2.044.657 3.247 2.527 3.246 6.099-.001 2.473-.279 3.943-.279 5.547z"/><path fill="#292F33" d="M25.941 32.817l1.063-1.378c.354-.459 1.051-.443 1.383.032.363.518 1.508 1.7 3.206 2.314.264.096.725.291-.165 1.083 0 0-1.049.797-5.632-.453M8.486 36h5.01c.241 0 .437-.195.437-.437v-.413c0-.453-.138-.895-.396-1.267l-.384-.553h-1.935l-1.892.523c-.77.213-1.296.923-1.276 1.722.006.236.2.425.436.425z"/><path fill="#2A6797" d="M17.334 25.673l-.311 7.139s-.156 2.997 3.036 2.939l6.85-.837s.506-1.751-.35-2.51l-4.938-.592c-.137-.016-.228-.149-.194-.283l1.581-5.127c.201-.653.548-2.062.603-2.737.034-.415-.196-.091-.185-.51l-6.403 1.84.311.678z"/><path fill="#4289C1" d="M19.207 21.365c-1.873-.051-7.335.631-7.335.631-2.68.63-2.036 4.541-2.036 4.541l.525 6.917s1.67.954 3.053 0l.93-6.917 4.07.048s6.832 1.36 5.163-5.257c0 0-3.989.047-4.37.037z"/><path fill="#F7DECE" d="M18.587 13.062c-.282 1.934-.185 5.121-.478 5.274-1.692.884-4.111 2.144-5.227 2.59-.809.323-1.622.524-1.961.85-.544.523-1.199.977-1.235 1.485-.037.516.562.675 1.574.199.743-.35 1.339-.332 1.995-.851.934-.739 5.782-.697 7.143-2.909.459-.747.764-2.806 1.31-6.387-.917-.331-3.121-.251-3.121-.251z"/></svg>
|
Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 2.3 KiB |
|
@ -1 +1 @@
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#F7DECE" d="M20.905 1.103c-2.182-.859-5.584.249-5.979 2.799-.393 2.532.328 6.502 2.552 6.262 2.332-.252 4.724-.759 5.668-3.16.944-2.399-.059-5.042-2.241-5.901z"/><path fill="#F7DECE" d="M22.526 7.623c3.175-3.73-4.474-3.367-4.474-3.367-1.448.053-.451 2.465-1.133 3.782-.467.912 1.499 1.395 1.499 1.395s.903-.013.951 1.082v.01c.011.279-.018.61-.148 1.053-.648 2.192 2.297 3.537 2.944 1.34.256-.869.157-1.634.027-2.34l-.012-.063c-.196-1.049-.44-1.969.346-2.892z"/><path fill="#292F33" d="M23.398 1.983C21.945.282 19.863-.621 16.523.9c-1.361.62-1.971.391-2.165.663-.93 1.306.337 2.753.833 2.464 1.572-.917 2.99-.644 3.352.019s.028 1.854.321 1.862c.792.021.664-.755.977-1.202.514-.731 1.296-.318 1.467.496.136.645 0 1.741-1.054 1.934.717 1.577 2.136 2.058 2.136 2.058s.461.181 1.25-1.371c.789-1.554 1.201-4.151-.242-5.84zm-2.732 30.242c-.937.204-1.397.837-1.522 1.423-.126.586.419 1.633.963 1.842s5.354.548 6.132-.078c1.162-.934-4.804-3.354-5.573-3.187z"/><path fill="#3A4449" d="M20.924 31.831c-.521.24-.593 1.505.045 2.283.721.879 2.524 1.26 3.455 1.51s2.442-.001 2.446-1.322c.004-1.115-1.452-1.429-2.145-1.46-.693-.031-1.505-.042-1.868-.464s-1.391-.796-1.933-.547z"/><path fill="#4289C1" d="M25.75 26.1c.655 2.154.529 4.598-1.058 5.452-1.52.818-4.71.946-4.71.946s-.905.89-.351 2.014c.315.639.649.921.58 1.007-.061.076-.748.153-1.053.214-.814.163-1.755.102-3.341.061s-2.272.113-3.998.076c-1.912-.041-3.344-.507-4.298-2.08-.814-1.343-.395-3.338 1.505-4.638 1.546-1.058 6.469-2.197 8.341-2.482 1.874-.285 7.814-2.441 8.383-.57z"/><path fill="#77B255" d="M26.377 25.554c-.057 1.128.391 2.499-.26 2.27-2.565-.9-9.188-.988-9.188-.988-.568-2.564-.037-6.416.008-9.956.059-4.645 3.148-7.192 5.082-6.61 2.528.761 3.689 3.387 4.016 7.511s.398 6.646.342 7.773z"/><path fill="#F7DECE" d="M19.382 16.204c-.442 2.329-.227 6.078-.59 6.249-2.095.984-3.883 3.239-5.259 3.722-.997.349-1.992.55-2.42.928-.686.605-1.503 1.121-1.573 1.735-.072.623.645.847 1.896.323.919-.385 1.64-.333 2.461-.928 1.17-.847 5.832-1.399 7.596-4.008.595-.881 1.227-2.94 2.074-7.249-1.091-.449-4.185-.772-4.185-.772z"/><path fill="#2A6797" d="M11.429 32.448c.718.062 6.591.163 8.137.081 0 0 0 .57-1.505.651-1.505.081-4.516-.407-6.469-.244-.538.045-1.485.121-1.587-.041-.117-.185.924-.491 1.424-.447z"/></svg>
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#F7DECE" d="M18.973 1.123c-1.849-.728-4.732.211-5.067 2.372-.333 2.145.278 5.51 2.162 5.306 1.976-.213 4.003-.643 4.803-2.677.802-2.034-.048-4.273-1.898-5.001z"/><path fill="#F7DECE" d="M20.347 6.648c2.691-3.161-3.791-2.853-3.791-2.853-1.227.045-.383 2.089-.96 3.205-.396.772 1.271 1.182 1.271 1.182s.765-.011.806.917v.008c.009.236-.016.517-.126.892-.549 1.858 1.946 2.997 2.494 1.135.217-.737.133-1.385.023-1.983l-.01-.053c-.166-.889-.372-1.668.293-2.45z"/><path fill="#292F33" d="M21.086 1.869C19.855.428 18.091-.338 15.26.951c-1.153.525-1.67.331-1.834.561-.788 1.106.286 2.333.706 2.088 1.332-.777 2.534-.546 2.841.016.307.562.024 1.571.272 1.578.671.018.562-.64.828-1.019.435-.62 1.098-.269 1.243.42.115.546 0 1.475-.893 1.639.607 1.336 1.81 1.744 1.81 1.744s.391.154 1.059-1.162c.668-1.316 1.017-3.516-.206-4.947z"/><path fill="#77B255" d="M23.563 21.568c-.048.956.379 2.392-.173 2.198-2.174-.763-7.786-.837-7.786-.837-.482-2.173-.032-5.437.006-8.437.05-3.936 2.667-6.094 4.306-5.601 2.142.645 3.126 2.87 3.403 6.364.278 3.495.292 5.357.244 6.313z"/><path fill="#292F33" d="M25.935 32.82l1.062-1.377c.354-.458 1.05-.442 1.382.032.363.518 1.507 1.698 3.203 2.312.264.096.724.291-.165 1.082 0 0-1.048.797-5.627-.453M8.498 36h5.005c.241 0 .436-.195.436-.436v-.412c0-.452-.138-.894-.396-1.266l-.383-.553h-1.933l-1.89.522c-.769.213-1.295.922-1.275 1.72.006.236.199.425.436.425z"/><path fill="#2A6797" d="M17.337 25.683l-.311 7.133s-.156 2.994 3.033 2.936l6.844-.836s.505-1.75-.35-2.508l-4.933-.591c-.137-.016-.228-.149-.194-.282l1.579-5.122c.201-.652.548-2.06.603-2.735.034-.414-.195-.091-.185-.51l-6.397 1.838.311.677z"/><path fill="#4289C1" d="M19.208 21.379c-1.871-.051-7.328.63-7.328.63-2.677.629-2.034 4.537-2.034 4.537l.524 6.91s1.668.953 3.05 0l.929-6.91 4.066.048s6.825 1.359 5.158-5.252c0 .001-3.984.048-4.365.037z"/><path fill="#F7DECE" d="M17.683 13.919c-.374 1.973-.192 5.151-.5 5.295-1.776.833-4.337 1.001-5.502 1.41-.844.296-.825.466-1.188.786-.581.513-1.273.95-1.333 1.47-.061.528.547.718 1.607.273.779-.326 1.389-.282 2.085-.786.991-.718 5.126.558 6.62-1.653.504-.746 1.04-2.491 1.757-6.143-.924-.378-3.546-.652-3.546-.652z"/></svg>
|
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 2.2 KiB |
|
@ -1 +1 @@
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#F7DECE" d="M20.905 1.103c-2.182-.859-5.459.272-5.979 2.799-.726 3.526 1.288 6.513 3.513 6.273 2.332-.252 3.763-.769 4.708-3.17.943-2.4-.06-5.043-2.242-5.902z"/><path fill="#F7DECE" d="M22.526 7.623c3.175-3.73-4.474-3.367-4.474-3.367-1.448.053-.451 2.465-1.133 3.782-.467.912 1.499 1.395 1.499 1.395s.903-.013.951 1.082v.01c.011.279-.018.61-.148 1.053-.648 2.192 2.297 3.537 2.944 1.34.256-.869.157-1.634.027-2.34l-.012-.063c-.196-1.049-.44-1.969.346-2.892z"/><path fill="#292F33" d="M23.65 1.859C22.573.402 18.961-.884 16.668.96c-1.588-.275-2.196 1.234-2.061 2.103.108.694 1.813.873 2.241 2.19.297-.33.376-1.007.312-1.369.543.523.306 1.896 2.442 2.793 2.064.867 1.7 2.69 1.7 2.69s1.087-.514 1.844-1.39c1.443-1.67 1.691-4.512.504-6.118zm-2.984 30.366c-.937.204-1.397.837-1.522 1.423-.126.586.419 1.633.963 1.842s5.354.548 6.132-.078c1.162-.934-4.804-3.354-5.573-3.187z"/><path fill="#3A4449" d="M20.924 31.831c-.521.24-.593 1.505.045 2.283.721.879 2.524 1.26 3.455 1.51s2.442-.001 2.446-1.322c.004-1.115-1.452-1.429-2.145-1.46-.693-.031-1.505-.042-1.868-.464s-1.391-.796-1.933-.547z"/><path fill="#4289C1" d="M25.75 26.1c.655 2.154.529 4.598-1.058 5.452-1.52.818-4.71.946-4.71.946s-.905.89-.351 2.014c.315.639.649.921.58 1.007-.061.076-.748.153-1.053.214-.814.163-1.755.102-3.341.061s-2.272.113-3.998.076c-1.912-.041-3.344-.507-4.298-2.08-.814-1.343-.395-3.338 1.505-4.638 1.546-1.058 6.469-2.197 8.341-2.482 1.874-.285 7.814-2.441 8.383-.57z"/><path fill="#FA743E" d="M26.117 27.825c-2.565-.9-9.188-.988-9.188-.988.257-2.055.218-5.676-.002-9.362-.233-3.906 3.768-7.514 5.092-7.204 2.571.602 4.342 3.386 4.016 7.511-.469 5.926.733 10.271.082 10.043z"/><path fill="#F7DECE" d="M19.799 16.252c-.442 2.329-.599 6.406-.962 6.577-2.095.984-3.927 2.864-5.303 3.346-.997.349-1.992.55-2.42.928-.686.605-1.503 1.121-1.573 1.735-.072.623.645.847 1.896.323.919-.385 1.64-.333 2.461-.928 1.17-.847 5.832-1.399 7.596-4.008.595-.881 1.227-2.94 2.074-7.249-1.092-.449-3.769-.724-3.769-.724z"/><path fill="#2A6797" d="M11.429 32.448c.718.062 6.591.163 8.137.081 0 0 0 .57-1.505.651-1.505.081-4.516-.407-6.469-.244-.538.045-1.485.121-1.587-.041-.117-.185.924-.491 1.424-.447z"/></svg>
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#F7DECE" d="M19.321 1.07c-1.81-.712-4.528.226-4.96 2.322-.602 2.925 1.069 5.402 2.914 5.203 1.934-.209 3.121-.638 3.905-2.629.783-1.992-.049-4.184-1.859-4.896z"/><path fill="#F7DECE" d="M20.665 6.478c2.634-3.094-3.711-2.792-3.711-2.792-1.201.044-.374 2.044-.939 3.137-.388.756 1.244 1.157 1.244 1.157s.749-.011.789.897v.008c.009.231-.015.506-.123.873-.538 1.819 1.905 2.934 2.442 1.111.212-.721.13-1.355.022-1.941l-.01-.052c-.163-.87-.365-1.633.286-2.398z"/><path fill="#292F33" d="M21.598 1.697c-.893-1.208-3.89-2.275-5.792-.746-1.317-.228-1.822 1.024-1.71 1.745.089.575 1.504.724 1.859 1.817.246-.274.312-.835.259-1.135.45.433.254 1.573 2.025 2.317 1.712.719 1.41 2.232 1.41 2.232s.902-.426 1.53-1.153c1.198-1.388 1.403-3.745.419-5.077z"/><path fill="#FA743E" d="M23.663 22.44c-.135.623-7.64 1.303-7.64 1.303.213-1.705.181-6.037-.002-9.094-.193-3.24 3.126-6.232 4.223-5.976 2.132.499 3.601 2.809 3.331 6.23-.388 4.917.151 7.245.088 7.537z"/><path fill="#292F33" d="M25.935 32.82l1.062-1.377c.354-.458 1.05-.442 1.382.032.363.518 1.507 1.698 3.203 2.312.264.096.724.291-.165 1.082 0 0-1.048.797-5.627-.453M8.498 36h5.005c.241 0 .436-.195.436-.436v-.412c0-.452-.138-.894-.396-1.266l-.383-.553h-1.933l-1.89.522c-.769.213-1.295.922-1.275 1.72.006.236.199.425.436.425z"/><path fill="#2A6797" d="M17.337 25.683l-.311 7.133s-.156 2.994 3.033 2.936l6.844-.836s.505-1.75-.35-2.508l-4.933-.591c-.137-.016-.228-.149-.194-.282l1.579-5.122c.201-.652.548-2.06.603-2.735.034-.414-.195-.091-.185-.51l-6.397 1.838.311.677z"/><path fill="#4289C1" d="M19.208 21.379c-1.871-.051-7.328.63-7.328.63-2.677.629-2.034 4.537-2.034 4.537l.524 6.91s1.668.953 3.05 0l.929-6.91 4.066.048s6.825 1.359 5.158-5.252c0 .001-3.984.048-4.365.037z"/><path fill="#F7DECE" d="M18.404 13.635c-.366 1.931-.497 5.314-.798 5.455-1.738.816-3.258 1.323-4.399 1.723-.827.29-1.652.456-2.008.77-.569.502-1.246.93-1.305 1.439-.059.517.535.703 1.573.268.762-.32 1.36-.276 2.041-.77.97-.703 4.838-.108 6.3-2.272.494-.73 1.018-2.438 1.72-6.013-.904-.372-3.124-.6-3.124-.6z"/></svg>
|
Before Width: | Height: | Size: 2.2 KiB After Width: | Height: | Size: 2.1 KiB |
|
@ -1 +1 @@
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#F3D2A2" d="M20.591.985c-2.139-.842-5.474.244-5.861 2.743-.385 2.482.321 6.374 2.501 6.138 2.286-.247 4.63-.744 5.556-3.097.927-2.352-.056-4.942-2.196-5.784z"/><path fill="#F3D2A2" d="M22.18 7.376c3.112-3.657-4.386-3.3-4.386-3.3-1.419.052-.442 2.416-1.11 3.707-.458.894 1.47 1.367 1.47 1.367s.885-.013.932 1.06v.01c.011.273-.018.598-.145 1.032-.635 2.149 2.252 3.467 2.885 1.313.251-.852.153-1.602.026-2.294l-.012-.061c-.191-1.028-.429-1.93.34-2.834z"/><path fill="#FFE51E" d="M23.035 1.848C21.611.181 19.652-.511 16.296.786c-2.931 1.133-1.988 3.463-1.306 3.065 1.882-1.097 3.131-.16 4.089 1.371.279-.752 1.507-1.214 1.755-.114.279 1.236-.869 1.775-.716 2.113.051.113-.058-.102 0 0 .734 1.289 1.929 1.694 1.929 1.694s.453.177 1.226-1.345c.773-1.522 1.177-4.067-.238-5.722z"/><path fill="#FFE51E" d="M22.264 3.601c2.904.626 1.712 5.155 1.997 6.821.35 2.051 2.364 2.124 2.364 2.124s-.332-1.429-.155-2.923c.246-2.072 1.597-3.745.171-5.768-1.821-2.584-6.182-.643-4.377-.254z"/><path fill="#292F33" d="M20.252 32.238c-.937.204-1.397.837-1.522 1.423s.419 1.633.963 1.842 5.354.548 6.132-.078c1.162-.934-4.804-3.354-5.573-3.187z"/><path fill="#3A4449" d="M20.51 31.844c-.521.24-.552 1.313.159 2.024.846.846 2.409 1.519 3.34 1.769s2.548-.27 2.539-.923c-.009-.701-1.545-1.829-2.238-1.859-.693-.031-1.505-.042-1.868-.464-.362-.421-1.391-.796-1.932-.547z"/><path fill="#4289C1" d="M25.336 26.113c.655 2.154.529 4.598-1.058 5.452-1.52.818-4.71.946-4.71.946s-.905.89-.351 2.014c.315.639.649.921.58 1.007-.061.076-.748.153-1.053.214-.814.163-1.755.102-3.341.061-1.587-.041-2.272.113-3.998.076-1.912-.041-3.344-.507-4.298-2.08-.814-1.343-.395-3.338 1.505-4.638 1.546-1.058 6.469-2.197 8.341-2.482 1.873-.285 7.813-2.441 8.383-.57z"/><path fill="#2A6797" d="M11.014 32.461c.718.062 6.591.163 8.137.081 0 0 0 .57-1.505.651-1.505.081-4.516-.407-6.469-.244-.538.045-1.485.121-1.587-.041-.117-.185.925-.491 1.424-.447z"/><path fill="#9268CA" d="M25.28 24.097c0 1.946.508 2.792.592 3.638.047.47-1.553-.275-2.603-.41-2.727-.351-6.408-.309-6.408-.309-.557-2.685.576-4.818-.306-8.419-1.138-4.646 3.231-9.23 5.127-8.621 2.478.797 3.937 3.064 3.936 7.395 0 2.998-.338 4.78-.338 6.726z"/><path fill="#F3D2A2" d="M19.3 15.532c-.341 2.345-.225 6.209-.58 6.395-2.051 1.072-4.163 3.421-5.517 3.961-.981.392-1.967.635-2.378 1.031-.659.634-1.453 1.184-1.497 1.8-.045.625.681.819 1.908.241.901-.424 1.624-.403 2.419-1.032 1.132-.896 6.19-1.666 7.84-4.348.557-.905.927-3.403 1.588-7.744-1.11-.401-3.783-.304-3.783-.304z"/></svg>
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#F3D2A2" d="M19.652 1.065c-1.764-.694-4.514.202-4.834 2.263-.317 2.047.265 5.257 2.063 5.063 1.885-.204 3.819-.613 4.582-2.554.764-1.942-.047-4.078-1.811-4.772z"/><path fill="#F3D2A2" d="M20.963 6.335c2.567-3.016-3.617-2.722-3.617-2.722-1.17.042-.365 1.993-.916 3.057-.378.737 1.212 1.128 1.212 1.128s.73-.011.769.875v.008c.009.225-.015.493-.12.851-.524 1.772 1.857 2.859 2.38 1.083.207-.703.127-1.321.022-1.892l-.009-.051c-.159-.847-.356-1.591.279-2.337z"/><path fill="#FFE51E" d="M21.668 1.776C20.493.401 18.877-.17 16.11.9c-2.417.934-1.64 2.856-1.077 2.528 1.552-.905 2.582-.132 3.372 1.131.23-.62 1.242-1.001 1.447-.094.23 1.02-.717 1.464-.59 1.742.042.093-.048-.084 0 0 .606 1.063 1.591 1.397 1.591 1.397s.373.147 1.01-1.109c.638-1.255.971-3.354-.195-4.719z"/><path fill="#FFE51E" d="M21.032 3.222c2.395.517 1.412 4.251 1.647 5.625.289 1.692 1.95 1.752 1.95 1.752s-.275-1.178-.129-2.41c.203-1.709 1.317-3.088.141-4.757-1.501-2.131-5.098-.531-3.609-.21z"/><path fill="#9268CA" d="M23.519 20.125c0 1.605.25 2.331.32 3.029.039.388-1.112-.255-1.978-.367-2.249-.289-5.165-1.089-5.165-1.089-.46-2.215.356-3.139-.372-6.109-.939-3.832 2.664-7.612 4.228-7.11 2.044.657 3.247 2.527 3.246 6.099-.001 2.473-.279 3.943-.279 5.547z"/><path fill="#292F33" d="M25.941 32.817l1.063-1.378c.354-.459 1.051-.443 1.383.032.363.518 1.508 1.7 3.206 2.314.264.096.725.291-.165 1.083 0 0-1.049.797-5.632-.453M8.486 36h5.01c.241 0 .437-.195.437-.437v-.413c0-.453-.138-.895-.396-1.267l-.384-.553h-1.935l-1.892.523c-.77.213-1.296.923-1.276 1.722.006.236.2.425.436.425z"/><path fill="#2A6797" d="M17.334 25.673l-.311 7.139s-.156 2.997 3.036 2.939l6.85-.837s.506-1.751-.35-2.51l-4.938-.592c-.137-.016-.228-.149-.194-.283l1.581-5.127c.201-.653.548-2.062.603-2.737.034-.415-.196-.091-.185-.51l-6.403 1.84.311.678z"/><path fill="#4289C1" d="M19.207 21.365c-1.873-.051-7.335.631-7.335.631-2.68.63-2.036 4.541-2.036 4.541l.525 6.917s1.67.954 3.053 0l.93-6.917 4.07.048s6.832 1.36 5.163-5.257c0 0-3.989.047-4.37.037z"/><path fill="#F3D2A2" d="M18.587 13.062c-.282 1.934-.185 5.121-.478 5.274-1.692.884-4.111 2.144-5.227 2.59-.809.323-1.622.524-1.961.85-.544.523-1.199.977-1.235 1.485-.037.516.562.675 1.574.199.743-.35 1.339-.332 1.995-.851.934-.739 5.782-.697 7.143-2.909.459-.747.764-2.806 1.31-6.387-.917-.331-3.121-.251-3.121-.251z"/></svg>
|
Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 2.3 KiB |
|
@ -1 +1 @@
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#F3D2A2" d="M20.905 1.103c-2.182-.859-5.584.249-5.979 2.799-.393 2.532.328 6.502 2.552 6.262 2.332-.252 4.724-.759 5.668-3.16.944-2.399-.059-5.042-2.241-5.901z"/><path fill="#F3D2A2" d="M22.526 7.623c3.175-3.73-4.474-3.367-4.474-3.367-1.448.053-.451 2.465-1.133 3.782-.467.912 1.499 1.395 1.499 1.395s.903-.013.951 1.082v.01c.011.279-.018.61-.148 1.053-.648 2.192 2.297 3.537 2.944 1.34.256-.869.157-1.634.027-2.34l-.012-.063c-.196-1.049-.44-1.969.346-2.892z"/><path fill="#FFE51E" d="M23.398 1.983C21.945.282 19.863-.621 16.523.9c-1.361.62-1.971.391-2.165.663-.93 1.306.337 2.753.833 2.464 1.572-.917 2.99-.644 3.352.019s.028 1.854.321 1.862c.792.021.664-.755.977-1.202.514-.731 1.296-.318 1.467.496.136.645 0 1.741-1.054 1.934.717 1.577 2.136 2.058 2.136 2.058s.461.181 1.25-1.371c.789-1.554 1.201-4.151-.242-5.84z"/><path fill="#292F33" d="M20.666 32.225c-.937.204-1.397.837-1.522 1.423-.126.586.419 1.633.963 1.842s5.354.548 6.132-.078c1.162-.934-4.804-3.354-5.573-3.187z"/><path fill="#3A4449" d="M20.924 31.831c-.521.24-.593 1.505.045 2.283.721.879 2.524 1.26 3.455 1.51s2.442-.001 2.446-1.322c.004-1.115-1.452-1.429-2.145-1.46-.693-.031-1.505-.042-1.868-.464s-1.391-.796-1.933-.547z"/><path fill="#4289C1" d="M25.75 26.1c.655 2.154.529 4.598-1.058 5.452-1.52.818-4.71.946-4.71.946s-.905.89-.351 2.014c.315.639.649.921.58 1.007-.061.076-.748.153-1.053.214-.814.163-1.755.102-3.341.061s-2.272.113-3.998.076c-1.912-.041-3.344-.507-4.298-2.08-.814-1.343-.395-3.338 1.505-4.638 1.546-1.058 6.469-2.197 8.341-2.482 1.874-.285 7.814-2.441 8.383-.57z"/><path fill="#77B255" d="M26.377 25.554c-.057 1.128.391 2.499-.26 2.27-2.565-.9-9.188-.988-9.188-.988-.568-2.564-.037-6.416.008-9.956.059-4.645 3.148-7.192 5.082-6.61 2.528.761 3.689 3.387 4.016 7.511s.398 6.646.342 7.773z"/><path fill="#F3D2A2" d="M19.382 16.204c-.442 2.329-.227 6.078-.59 6.249-2.095.984-3.883 3.239-5.259 3.722-.997.349-1.992.55-2.42.928-.686.605-1.503 1.121-1.573 1.735-.072.623.645.847 1.896.323.919-.385 1.64-.333 2.461-.928 1.17-.847 5.832-1.399 7.596-4.008.595-.881 1.227-2.94 2.074-7.249-1.091-.449-4.185-.772-4.185-.772z"/><path fill="#2A6797" d="M11.429 32.448c.718.062 6.591.163 8.137.081 0 0 0 .57-1.505.651-1.505.081-4.516-.407-6.469-.244-.538.045-1.485.121-1.587-.041-.117-.185.924-.491 1.424-.447z"/></svg>
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#F3D2A2" d="M18.973 1.123c-1.849-.728-4.732.211-5.067 2.372-.333 2.145.278 5.51 2.162 5.306 1.976-.213 4.003-.643 4.803-2.677.802-2.034-.048-4.273-1.898-5.001z"/><path fill="#F3D2A2" d="M20.347 6.648c2.691-3.161-3.791-2.853-3.791-2.853-1.227.045-.383 2.089-.96 3.205-.396.772 1.271 1.182 1.271 1.182s.765-.011.806.917v.008c.009.236-.016.517-.126.892-.549 1.858 1.946 2.997 2.494 1.135.217-.737.133-1.385.023-1.983l-.01-.053c-.166-.889-.372-1.668.293-2.45z"/><path fill="#FFE51E" d="M21.086 1.869C19.855.428 18.091-.338 15.26.951c-1.153.525-1.67.331-1.834.561-.788 1.106.286 2.333.706 2.088 1.332-.777 2.534-.546 2.841.016.307.562.024 1.571.272 1.578.671.018.562-.64.828-1.019.435-.62 1.098-.269 1.243.42.115.546 0 1.475-.893 1.639.607 1.336 1.81 1.744 1.81 1.744s.391.154 1.059-1.162c.668-1.316 1.017-3.516-.206-4.947z"/><path fill="#77B255" d="M23.563 21.568c-.048.956.379 2.392-.173 2.198-2.174-.763-7.786-.837-7.786-.837-.482-2.173-.032-5.437.006-8.437.05-3.936 2.667-6.094 4.306-5.601 2.142.645 3.126 2.87 3.403 6.364.278 3.495.292 5.357.244 6.313z"/><path fill="#292F33" d="M25.935 32.82l1.062-1.377c.354-.458 1.05-.442 1.382.032.363.518 1.507 1.698 3.203 2.312.264.096.724.291-.165 1.082 0 0-1.048.797-5.627-.453M8.498 36h5.005c.241 0 .436-.195.436-.436v-.412c0-.452-.138-.894-.396-1.266l-.383-.553h-1.933l-1.89.522c-.769.213-1.295.922-1.275 1.72.006.236.199.425.436.425z"/><path fill="#2A6797" d="M17.337 25.683l-.311 7.133s-.156 2.994 3.033 2.936l6.844-.836s.505-1.75-.35-2.508l-4.933-.591c-.137-.016-.228-.149-.194-.282l1.579-5.122c.201-.652.548-2.06.603-2.735.034-.414-.195-.091-.185-.51l-6.397 1.838.311.677z"/><path fill="#4289C1" d="M19.208 21.379c-1.871-.051-7.328.63-7.328.63-2.677.629-2.034 4.537-2.034 4.537l.524 6.91s1.668.953 3.05 0l.929-6.91 4.066.048s6.825 1.359 5.158-5.252c0 .001-3.984.048-4.365.037z"/><path fill="#F3D2A2" d="M17.683 13.919c-.374 1.973-.192 5.151-.5 5.295-1.776.833-4.337 1.001-5.502 1.41-.844.296-.825.466-1.188.786-.581.513-1.273.95-1.333 1.47-.061.528.547.718 1.607.273.779-.326 1.389-.282 2.085-.786.991-.718 5.126.558 6.62-1.653.504-.746 1.04-2.491 1.757-6.143-.924-.378-3.546-.652-3.546-.652z"/></svg>
|
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 2.2 KiB |
|
@ -1 +1 @@
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#F3D2A2" d="M20.905 1.103c-2.182-.859-5.459.272-5.979 2.799-.726 3.526 1.288 6.513 3.513 6.273 2.332-.252 3.763-.769 4.708-3.17.943-2.4-.06-5.043-2.242-5.902z"/><path fill="#F3D2A2" d="M22.526 7.623c3.175-3.73-4.474-3.367-4.474-3.367-1.448.053-.451 2.465-1.133 3.782-.467.912 1.499 1.395 1.499 1.395s.903-.013.951 1.082v.01c.011.279-.018.61-.148 1.053-.648 2.192 2.297 3.537 2.944 1.34.256-.869.157-1.634.027-2.34l-.012-.063c-.196-1.049-.44-1.969.346-2.892z"/><path fill="#FFE51E" d="M23.65 1.859C22.573.402 18.961-.884 16.668.96c-1.588-.275-2.196 1.234-2.061 2.103.108.694 1.813.873 2.241 2.19.297-.33.376-1.007.312-1.369.543.523.306 1.896 2.442 2.793 2.064.867 1.7 2.69 1.7 2.69s1.087-.514 1.844-1.39c1.443-1.67 1.691-4.512.504-6.118z"/><path fill="#292F33" d="M20.666 32.225c-.937.204-1.397.837-1.522 1.423-.126.586.419 1.633.963 1.842s5.354.548 6.132-.078c1.162-.934-4.804-3.354-5.573-3.187z"/><path fill="#3A4449" d="M20.924 31.831c-.521.24-.593 1.505.045 2.283.721.879 2.524 1.26 3.455 1.51s2.442-.001 2.446-1.322c.004-1.115-1.452-1.429-2.145-1.46-.693-.031-1.505-.042-1.868-.464s-1.391-.796-1.933-.547z"/><path fill="#4289C1" d="M25.75 26.1c.655 2.154.529 4.598-1.058 5.452-1.52.818-4.71.946-4.71.946s-.905.89-.351 2.014c.315.639.649.921.58 1.007-.061.076-.748.153-1.053.214-.814.163-1.755.102-3.341.061s-2.272.113-3.998.076c-1.912-.041-3.344-.507-4.298-2.08-.814-1.343-.395-3.338 1.505-4.638 1.546-1.058 6.469-2.197 8.341-2.482 1.874-.285 7.814-2.441 8.383-.57z"/><path fill="#FA743E" d="M26.117 27.825c-2.565-.9-9.188-.988-9.188-.988.257-2.055.218-5.676-.002-9.362-.233-3.906 3.768-7.514 5.092-7.204 2.571.602 4.342 3.386 4.016 7.511-.469 5.926.733 10.271.082 10.043z"/><path fill="#F3D2A2" d="M19.799 16.252c-.442 2.329-.599 6.406-.962 6.577-2.095.984-3.927 2.864-5.303 3.346-.997.349-1.992.55-2.42.928-.686.605-1.503 1.121-1.573 1.735-.072.623.645.847 1.896.323.919-.385 1.64-.333 2.461-.928 1.17-.847 5.832-1.399 7.596-4.008.595-.881 1.227-2.94 2.074-7.249-1.092-.449-3.769-.724-3.769-.724z"/><path fill="#2A6797" d="M11.429 32.448c.718.062 6.591.163 8.137.081 0 0 0 .57-1.505.651-1.505.081-4.516-.407-6.469-.244-.538.045-1.485.121-1.587-.041-.117-.185.924-.491 1.424-.447z"/></svg>
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#F3D2A2" d="M19.321 1.07c-1.81-.712-4.528.226-4.96 2.322-.602 2.925 1.069 5.402 2.914 5.203 1.934-.209 3.121-.638 3.905-2.629.783-1.992-.049-4.184-1.859-4.896z"/><path fill="#F3D2A2" d="M20.665 6.478c2.634-3.094-3.711-2.792-3.711-2.792-1.201.044-.374 2.044-.939 3.137-.388.756 1.244 1.157 1.244 1.157s.749-.011.789.897v.008c.009.231-.015.506-.123.873-.538 1.819 1.905 2.934 2.442 1.111.212-.721.13-1.355.022-1.941l-.01-.052c-.163-.87-.365-1.633.286-2.398z"/><path fill="#FFE51E" d="M21.598 1.697c-.893-1.208-3.89-2.275-5.792-.746-1.317-.228-1.822 1.024-1.71 1.745.089.575 1.504.724 1.859 1.817.246-.274.312-.835.259-1.135.45.433.254 1.573 2.025 2.317 1.712.719 1.41 2.232 1.41 2.232s.902-.426 1.53-1.153c1.198-1.388 1.403-3.745.419-5.077z"/><path fill="#FA743E" d="M23.663 22.44c-.135.623-7.64 1.303-7.64 1.303.213-1.705.181-6.037-.002-9.094-.193-3.24 3.126-6.232 4.223-5.976 2.132.499 3.601 2.809 3.331 6.23-.388 4.917.151 7.245.088 7.537z"/><path fill="#292F33" d="M25.935 32.82l1.062-1.377c.354-.458 1.05-.442 1.382.032.363.518 1.507 1.698 3.203 2.312.264.096.724.291-.165 1.082 0 0-1.048.797-5.627-.453M8.498 36h5.005c.241 0 .436-.195.436-.436v-.412c0-.452-.138-.894-.396-1.266l-.383-.553h-1.933l-1.89.522c-.769.213-1.295.922-1.275 1.72.006.236.199.425.436.425z"/><path fill="#2A6797" d="M17.337 25.683l-.311 7.133s-.156 2.994 3.033 2.936l6.844-.836s.505-1.75-.35-2.508l-4.933-.591c-.137-.016-.228-.149-.194-.282l1.579-5.122c.201-.652.548-2.06.603-2.735.034-.414-.195-.091-.185-.51l-6.397 1.838.311.677z"/><path fill="#4289C1" d="M19.208 21.379c-1.871-.051-7.328.63-7.328.63-2.677.629-2.034 4.537-2.034 4.537l.524 6.91s1.668.953 3.05 0l.929-6.91 4.066.048s6.825 1.359 5.158-5.252c0 .001-3.984.048-4.365.037z"/><path fill="#F3D2A2" d="M18.404 13.635c-.366 1.931-.497 5.314-.798 5.455-1.738.816-3.258 1.323-4.399 1.723-.827.29-1.652.456-2.008.77-.569.502-1.246.93-1.305 1.439-.059.517.535.703 1.573.268.762-.32 1.36-.276 2.041-.77.97-.703 4.838-.108 6.3-2.272.494-.73 1.018-2.438 1.72-6.013-.904-.372-3.124-.6-3.124-.6z"/></svg>
|
Before Width: | Height: | Size: 2.2 KiB After Width: | Height: | Size: 2.1 KiB |
|
@ -1 +1 @@
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#D4AB88" d="M20.591.985c-2.139-.842-5.474.244-5.861 2.743-.385 2.482.321 6.374 2.501 6.138 2.286-.247 4.63-.744 5.556-3.097.927-2.352-.056-4.942-2.196-5.784z"/><path fill="#D4AB88" d="M22.18 7.376c3.112-3.657-4.386-3.3-4.386-3.3-1.419.052-.442 2.416-1.11 3.707-.458.894 1.47 1.367 1.47 1.367s.885-.013.932 1.06v.01c.011.273-.018.598-.145 1.032-.635 2.149 2.252 3.467 2.885 1.313.251-.852.153-1.602.026-2.294l-.012-.061c-.191-1.028-.429-1.93.34-2.834z"/><path fill="#963B22" d="M23.035 1.848C21.611.181 19.652-.511 16.296.786c-2.931 1.133-1.988 3.463-1.306 3.065 1.882-1.097 3.131-.16 4.089 1.371.279-.752 1.507-1.214 1.755-.114.279 1.236-.869 1.775-.716 2.113.051.113-.058-.102 0 0 .734 1.289 1.929 1.694 1.929 1.694s.453.177 1.226-1.345c.773-1.522 1.177-4.067-.238-5.722z"/><path fill="#963B22" d="M22.264 3.601c2.904.626 1.712 5.155 1.997 6.821.35 2.051 2.364 2.124 2.364 2.124s-.332-1.429-.155-2.923c.246-2.072 1.597-3.745.171-5.768-1.821-2.584-6.182-.643-4.377-.254z"/><path fill="#292F33" d="M20.252 32.238c-.937.204-1.397.837-1.522 1.423s.419 1.633.963 1.842 5.354.548 6.132-.078c1.162-.934-4.804-3.354-5.573-3.187z"/><path fill="#3A4449" d="M20.51 31.844c-.521.24-.552 1.313.159 2.024.846.846 2.409 1.519 3.34 1.769s2.548-.27 2.539-.923c-.009-.701-1.545-1.829-2.238-1.859-.693-.031-1.505-.042-1.868-.464-.362-.421-1.391-.796-1.932-.547z"/><path fill="#4289C1" d="M25.336 26.113c.655 2.154.529 4.598-1.058 5.452-1.52.818-4.71.946-4.71.946s-.905.89-.351 2.014c.315.639.649.921.58 1.007-.061.076-.748.153-1.053.214-.814.163-1.755.102-3.341.061-1.587-.041-2.272.113-3.998.076-1.912-.041-3.344-.507-4.298-2.08-.814-1.343-.395-3.338 1.505-4.638 1.546-1.058 6.469-2.197 8.341-2.482 1.873-.285 7.813-2.441 8.383-.57z"/><path fill="#2A6797" d="M11.014 32.461c.718.062 6.591.163 8.137.081 0 0 0 .57-1.505.651-1.505.081-4.516-.407-6.469-.244-.538.045-1.485.121-1.587-.041-.117-.185.925-.491 1.424-.447z"/><path fill="#9268CA" d="M25.28 24.097c0 1.946.508 2.792.592 3.638.047.47-1.553-.275-2.603-.41-2.727-.351-6.408-.309-6.408-.309-.557-2.685.576-4.818-.306-8.419-1.138-4.646 3.231-9.23 5.127-8.621 2.478.797 3.937 3.064 3.936 7.395 0 2.998-.338 4.78-.338 6.726z"/><path fill="#D4AB88" d="M19.3 15.532c-.341 2.345-.225 6.209-.58 6.395-2.051 1.072-4.163 3.421-5.517 3.961-.981.392-1.967.635-2.378 1.031-.659.634-1.453 1.184-1.497 1.8-.045.625.681.819 1.908.241.901-.424 1.624-.403 2.419-1.032 1.132-.896 6.19-1.666 7.84-4.348.557-.905.927-3.403 1.588-7.744-1.11-.401-3.783-.304-3.783-.304z"/></svg>
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#D4AB88" d="M19.652 1.065c-1.764-.694-4.514.202-4.834 2.263-.317 2.047.265 5.257 2.063 5.063 1.885-.204 3.819-.613 4.582-2.554.764-1.942-.047-4.078-1.811-4.772z"/><path fill="#D4AB88" d="M20.963 6.335c2.567-3.016-3.617-2.722-3.617-2.722-1.17.042-.365 1.993-.916 3.057-.378.737 1.212 1.128 1.212 1.128s.73-.011.769.875v.008c.009.225-.015.493-.12.851-.524 1.772 1.857 2.859 2.38 1.083.207-.703.127-1.321.022-1.892l-.009-.051c-.159-.847-.356-1.591.279-2.337z"/><path fill="#963B22" d="M21.668 1.776C20.493.401 18.877-.17 16.11.9c-2.417.934-1.64 2.856-1.077 2.528 1.552-.905 2.582-.132 3.372 1.131.23-.62 1.242-1.001 1.447-.094.23 1.02-.717 1.464-.59 1.742.042.093-.048-.084 0 0 .606 1.063 1.591 1.397 1.591 1.397s.373.147 1.01-1.109c.638-1.255.971-3.354-.195-4.719z"/><path fill="#963B22" d="M21.032 3.222c2.395.517 1.412 4.251 1.647 5.625.289 1.692 1.95 1.752 1.95 1.752s-.275-1.178-.129-2.41c.203-1.709 1.317-3.088.141-4.757-1.501-2.131-5.098-.531-3.609-.21z"/><path fill="#9268CA" d="M23.519 20.125c0 1.605.25 2.331.32 3.029.039.388-1.112-.255-1.978-.367-2.249-.289-5.165-1.089-5.165-1.089-.46-2.215.356-3.139-.372-6.109-.939-3.832 2.664-7.612 4.228-7.11 2.044.657 3.247 2.527 3.246 6.099-.001 2.473-.279 3.943-.279 5.547z"/><path fill="#292F33" d="M25.941 32.817l1.063-1.378c.354-.459 1.051-.443 1.383.032.363.518 1.508 1.7 3.206 2.314.264.096.725.291-.165 1.083 0 0-1.049.797-5.632-.453M8.486 36h5.01c.241 0 .437-.195.437-.437v-.413c0-.453-.138-.895-.396-1.267l-.384-.553h-1.935l-1.892.523c-.77.213-1.296.923-1.276 1.722.006.236.2.425.436.425z"/><path fill="#2A6797" d="M17.334 25.673l-.311 7.139s-.156 2.997 3.036 2.939l6.85-.837s.506-1.751-.35-2.51l-4.938-.592c-.137-.016-.228-.149-.194-.283l1.581-5.127c.201-.653.548-2.062.603-2.737.034-.415-.196-.091-.185-.51l-6.403 1.84.311.678z"/><path fill="#4289C1" d="M19.207 21.365c-1.873-.051-7.335.631-7.335.631-2.68.63-2.036 4.541-2.036 4.541l.525 6.917s1.67.954 3.053 0l.93-6.917 4.07.048s6.832 1.36 5.163-5.257c0 0-3.989.047-4.37.037z"/><path fill="#D4AB88" d="M18.587 13.062c-.282 1.934-.185 5.121-.478 5.274-1.692.884-4.111 2.144-5.227 2.59-.809.323-1.622.524-1.961.85-.544.523-1.199.977-1.235 1.485-.037.516.562.675 1.574.199.743-.35 1.339-.332 1.995-.851.934-.739 5.782-.697 7.143-2.909.459-.747.764-2.806 1.31-6.387-.917-.331-3.121-.251-3.121-.251z"/></svg>
|
Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 2.3 KiB |
|
@ -1 +1 @@
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#D4AB88" d="M20.905 1.103c-2.182-.859-5.584.249-5.979 2.799-.393 2.532.328 6.502 2.552 6.262 2.332-.252 4.724-.759 5.668-3.16.944-2.399-.059-5.042-2.241-5.901z"/><path fill="#D4AB88" d="M22.526 7.623c3.175-3.73-4.474-3.367-4.474-3.367-1.448.053-.451 2.465-1.133 3.782-.467.912 1.499 1.395 1.499 1.395s.903-.013.951 1.082v.01c.011.279-.018.61-.148 1.053-.648 2.192 2.297 3.537 2.944 1.34.256-.869.157-1.634.027-2.34l-.012-.063c-.196-1.049-.44-1.969.346-2.892z"/><path fill="#963B22" d="M23.398 1.983C21.945.282 19.863-.621 16.523.9c-1.361.62-1.971.391-2.165.663-.93 1.306.337 2.753.833 2.464 1.572-.917 2.99-.644 3.352.019s.028 1.854.321 1.862c.792.021.664-.755.977-1.202.514-.731 1.296-.318 1.467.496.136.645 0 1.741-1.054 1.934.717 1.577 2.136 2.058 2.136 2.058s.461.181 1.25-1.371c.789-1.554 1.201-4.151-.242-5.84z"/><path fill="#292F33" d="M20.666 32.225c-.937.204-1.397.837-1.522 1.423-.126.586.419 1.633.963 1.842s5.354.548 6.132-.078c1.162-.934-4.804-3.354-5.573-3.187z"/><path fill="#3A4449" d="M20.924 31.831c-.521.24-.593 1.505.045 2.283.721.879 2.524 1.26 3.455 1.51s2.442-.001 2.446-1.322c.004-1.115-1.452-1.429-2.145-1.46-.693-.031-1.505-.042-1.868-.464s-1.391-.796-1.933-.547z"/><path fill="#4289C1" d="M25.75 26.1c.655 2.154.529 4.598-1.058 5.452-1.52.818-4.71.946-4.71.946s-.905.89-.351 2.014c.315.639.649.921.58 1.007-.061.076-.748.153-1.053.214-.814.163-1.755.102-3.341.061s-2.272.113-3.998.076c-1.912-.041-3.344-.507-4.298-2.08-.814-1.343-.395-3.338 1.505-4.638 1.546-1.058 6.469-2.197 8.341-2.482 1.874-.285 7.814-2.441 8.383-.57z"/><path fill="#77B255" d="M26.377 25.554c-.057 1.128.391 2.499-.26 2.27-2.565-.9-9.188-.988-9.188-.988-.568-2.564-.037-6.416.008-9.956.059-4.645 3.148-7.192 5.082-6.61 2.528.761 3.689 3.387 4.016 7.511s.398 6.646.342 7.773z"/><path fill="#D4AB88" d="M19.382 16.204c-.442 2.329-.227 6.078-.59 6.249-2.095.984-3.883 3.239-5.259 3.722-.997.349-1.992.55-2.42.928-.686.605-1.503 1.121-1.573 1.735-.072.623.645.847 1.896.323.919-.385 1.64-.333 2.461-.928 1.17-.847 5.832-1.399 7.596-4.008.595-.881 1.227-2.94 2.074-7.249-1.091-.449-4.185-.772-4.185-.772z"/><path fill="#2A6797" d="M11.429 32.448c.718.062 6.591.163 8.137.081 0 0 0 .57-1.505.651-1.505.081-4.516-.407-6.469-.244-.538.045-1.485.121-1.587-.041-.117-.185.924-.491 1.424-.447z"/></svg>
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#D4AB88" d="M18.973 1.123c-1.849-.728-4.732.211-5.067 2.372-.333 2.145.278 5.51 2.162 5.306 1.976-.213 4.003-.643 4.803-2.677.802-2.034-.048-4.273-1.898-5.001z"/><path fill="#D4AB88" d="M20.347 6.648c2.691-3.161-3.791-2.853-3.791-2.853-1.227.045-.383 2.089-.96 3.205-.396.772 1.271 1.182 1.271 1.182s.765-.011.806.917v.008c.009.236-.016.517-.126.892-.549 1.858 1.946 2.997 2.494 1.135.217-.737.133-1.385.023-1.983l-.01-.053c-.166-.889-.372-1.668.293-2.45z"/><path fill="#963B22" d="M21.086 1.869C19.855.428 18.091-.338 15.26.951c-1.153.525-1.67.331-1.834.561-.788 1.106.286 2.333.706 2.088 1.332-.777 2.534-.546 2.841.016.307.562.024 1.571.272 1.578.671.018.562-.64.828-1.019.435-.62 1.098-.269 1.243.42.115.546 0 1.475-.893 1.639.607 1.336 1.81 1.744 1.81 1.744s.391.154 1.059-1.162c.668-1.316 1.017-3.516-.206-4.947z"/><path fill="#77B255" d="M23.563 21.568c-.048.956.379 2.392-.173 2.198-2.174-.763-7.786-.837-7.786-.837-.482-2.173-.032-5.437.006-8.437.05-3.936 2.667-6.094 4.306-5.601 2.142.645 3.126 2.87 3.403 6.364.278 3.495.292 5.357.244 6.313z"/><path fill="#292F33" d="M25.935 32.82l1.062-1.377c.354-.458 1.05-.442 1.382.032.363.518 1.507 1.698 3.203 2.312.264.096.724.291-.165 1.082 0 0-1.048.797-5.627-.453M8.498 36h5.005c.241 0 .436-.195.436-.436v-.412c0-.452-.138-.894-.396-1.266l-.383-.553h-1.933l-1.89.522c-.769.213-1.295.922-1.275 1.72.006.236.199.425.436.425z"/><path fill="#2A6797" d="M17.337 25.683l-.311 7.133s-.156 2.994 3.033 2.936l6.844-.836s.505-1.75-.35-2.508l-4.933-.591c-.137-.016-.228-.149-.194-.282l1.579-5.122c.201-.652.548-2.06.603-2.735.034-.414-.195-.091-.185-.51l-6.397 1.838.311.677z"/><path fill="#4289C1" d="M19.208 21.379c-1.871-.051-7.328.63-7.328.63-2.677.629-2.034 4.537-2.034 4.537l.524 6.91s1.668.953 3.05 0l.929-6.91 4.066.048s6.825 1.359 5.158-5.252c0 .001-3.984.048-4.365.037z"/><path fill="#D4AB88" d="M17.683 13.919c-.374 1.973-.192 5.151-.5 5.295-1.776.833-4.337 1.001-5.502 1.41-.844.296-.825.466-1.188.786-.581.513-1.273.95-1.333 1.47-.061.528.547.718 1.607.273.779-.326 1.389-.282 2.085-.786.991-.718 5.126.558 6.62-1.653.504-.746 1.04-2.491 1.757-6.143-.924-.378-3.546-.652-3.546-.652z"/></svg>
|
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 2.2 KiB |
|
@ -1 +1 @@
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#D4AB88" d="M20.905 1.103c-2.182-.859-5.459.272-5.979 2.799-.726 3.526 1.288 6.513 3.513 6.273 2.332-.252 3.763-.769 4.708-3.17.943-2.4-.06-5.043-2.242-5.902z"/><path fill="#D4AB88" d="M22.526 7.623c3.175-3.73-4.474-3.367-4.474-3.367-1.448.053-.451 2.465-1.133 3.782-.467.912 1.499 1.395 1.499 1.395s.903-.013.951 1.082v.01c.011.279-.018.61-.148 1.053-.648 2.192 2.297 3.537 2.944 1.34.256-.869.157-1.634.027-2.34l-.012-.063c-.196-1.049-.44-1.969.346-2.892z"/><path fill="#963B22" d="M23.65 1.859C22.573.402 18.961-.884 16.668.96c-1.588-.275-2.196 1.234-2.061 2.103.108.694 1.813.873 2.241 2.19.297-.33.376-1.007.312-1.369.543.523.306 1.896 2.442 2.793 2.064.867 1.7 2.69 1.7 2.69s1.087-.514 1.844-1.39c1.443-1.67 1.691-4.512.504-6.118z"/><path fill="#292F33" d="M20.666 32.225c-.937.204-1.397.837-1.522 1.423-.126.586.419 1.633.963 1.842s5.354.548 6.132-.078c1.162-.934-4.804-3.354-5.573-3.187z"/><path fill="#3A4449" d="M20.924 31.831c-.521.24-.593 1.505.045 2.283.721.879 2.524 1.26 3.455 1.51s2.442-.001 2.446-1.322c.004-1.115-1.452-1.429-2.145-1.46-.693-.031-1.505-.042-1.868-.464s-1.391-.796-1.933-.547z"/><path fill="#4289C1" d="M25.75 26.1c.655 2.154.529 4.598-1.058 5.452-1.52.818-4.71.946-4.71.946s-.905.89-.351 2.014c.315.639.649.921.58 1.007-.061.076-.748.153-1.053.214-.814.163-1.755.102-3.341.061s-2.272.113-3.998.076c-1.912-.041-3.344-.507-4.298-2.08-.814-1.343-.395-3.338 1.505-4.638 1.546-1.058 6.469-2.197 8.341-2.482 1.874-.285 7.814-2.441 8.383-.57z"/><path fill="#FA743E" d="M26.117 27.825c-2.565-.9-9.188-.988-9.188-.988.257-2.055.218-5.676-.002-9.362-.233-3.906 3.768-7.514 5.092-7.204 2.571.602 4.342 3.386 4.016 7.511-.469 5.926.733 10.271.082 10.043z"/><path fill="#D4AB88" d="M19.799 16.252c-.442 2.329-.599 6.406-.962 6.577-2.095.984-3.927 2.864-5.303 3.346-.997.349-1.992.55-2.42.928-.686.605-1.503 1.121-1.573 1.735-.072.623.645.847 1.896.323.919-.385 1.64-.333 2.461-.928 1.17-.847 5.832-1.399 7.596-4.008.595-.881 1.227-2.94 2.074-7.249-1.092-.449-3.769-.724-3.769-.724z"/><path fill="#2A6797" d="M11.429 32.448c.718.062 6.591.163 8.137.081 0 0 0 .57-1.505.651-1.505.081-4.516-.407-6.469-.244-.538.045-1.485.121-1.587-.041-.117-.185.924-.491 1.424-.447z"/></svg>
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#D4AB88" d="M19.321 1.07c-1.81-.712-4.528.226-4.96 2.322-.602 2.925 1.069 5.402 2.914 5.203 1.934-.209 3.121-.638 3.905-2.629.783-1.992-.049-4.184-1.859-4.896z"/><path fill="#D4AB88" d="M20.665 6.478c2.634-3.094-3.711-2.792-3.711-2.792-1.201.044-.374 2.044-.939 3.137-.388.756 1.244 1.157 1.244 1.157s.749-.011.789.897v.008c.009.231-.015.506-.123.873-.538 1.819 1.905 2.934 2.442 1.111.212-.721.13-1.355.022-1.941l-.01-.052c-.163-.87-.365-1.633.286-2.398z"/><path fill="#963B22" d="M21.598 1.697c-.893-1.208-3.89-2.275-5.792-.746-1.317-.228-1.822 1.024-1.71 1.745.089.575 1.504.724 1.859 1.817.246-.274.312-.835.259-1.135.45.433.254 1.573 2.025 2.317 1.712.719 1.41 2.232 1.41 2.232s.902-.426 1.53-1.153c1.198-1.388 1.403-3.745.419-5.077z"/><path fill="#FA743E" d="M23.663 22.44c-.135.623-7.64 1.303-7.64 1.303.213-1.705.181-6.037-.002-9.094-.193-3.24 3.126-6.232 4.223-5.976 2.132.499 3.601 2.809 3.331 6.23-.388 4.917.151 7.245.088 7.537z"/><path fill="#292F33" d="M25.935 32.82l1.062-1.377c.354-.458 1.05-.442 1.382.032.363.518 1.507 1.698 3.203 2.312.264.096.724.291-.165 1.082 0 0-1.048.797-5.627-.453M8.498 36h5.005c.241 0 .436-.195.436-.436v-.412c0-.452-.138-.894-.396-1.266l-.383-.553h-1.933l-1.89.522c-.769.213-1.295.922-1.275 1.72.006.236.199.425.436.425z"/><path fill="#2A6797" d="M17.337 25.683l-.311 7.133s-.156 2.994 3.033 2.936l6.844-.836s.505-1.75-.35-2.508l-4.933-.591c-.137-.016-.228-.149-.194-.282l1.579-5.122c.201-.652.548-2.06.603-2.735.034-.414-.195-.091-.185-.51l-6.397 1.838.311.677z"/><path fill="#4289C1" d="M19.208 21.379c-1.871-.051-7.328.63-7.328.63-2.677.629-2.034 4.537-2.034 4.537l.524 6.91s1.668.953 3.05 0l.929-6.91 4.066.048s6.825 1.359 5.158-5.252c0 .001-3.984.048-4.365.037z"/><path fill="#D4AB88" d="M18.404 13.635c-.366 1.931-.497 5.314-.798 5.455-1.738.816-3.258 1.323-4.399 1.723-.827.29-1.652.456-2.008.77-.569.502-1.246.93-1.305 1.439-.059.517.535.703 1.573.268.762-.32 1.36-.276 2.041-.77.97-.703 4.838-.108 6.3-2.272.494-.73 1.018-2.438 1.72-6.013-.904-.372-3.124-.6-3.124-.6z"/></svg>
|
Before Width: | Height: | Size: 2.2 KiB After Width: | Height: | Size: 2.1 KiB |
|
@ -1 +1 @@
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#AF7E57" d="M20.591.985c-2.139-.842-5.474.244-5.861 2.743-.385 2.482.321 6.374 2.501 6.138 2.286-.247 4.63-.744 5.556-3.097.927-2.352-.056-4.942-2.196-5.784z"/><path fill="#AF7E57" d="M22.18 7.376c3.112-3.657-4.386-3.3-4.386-3.3-1.419.052-.442 2.416-1.11 3.707-.458.894 1.47 1.367 1.47 1.367s.885-.013.932 1.06v.01c.011.273-.018.598-.145 1.032-.635 2.149 2.252 3.467 2.885 1.313.251-.852.153-1.602.026-2.294l-.012-.061c-.191-1.028-.429-1.93.34-2.834z"/><path fill="#60352A" d="M23.035 1.848C21.611.181 19.652-.511 16.296.786c-2.931 1.133-1.988 3.463-1.306 3.065 1.882-1.097 3.131-.16 4.089 1.371.279-.752 1.507-1.214 1.755-.114.279 1.236-.869 1.775-.716 2.113.051.113-.058-.102 0 0 .734 1.289 1.929 1.694 1.929 1.694s.453.177 1.226-1.345c.773-1.522 1.177-4.067-.238-5.722z"/><path fill="#60352A" d="M22.264 3.601c2.904.626 1.712 5.155 1.997 6.821.35 2.051 2.364 2.124 2.364 2.124s-.332-1.429-.155-2.923c.246-2.072 1.597-3.745.171-5.768-1.821-2.584-6.182-.643-4.377-.254z"/><path fill="#292F33" d="M20.252 32.238c-.937.204-1.397.837-1.522 1.423s.419 1.633.963 1.842 5.354.548 6.132-.078c1.162-.934-4.804-3.354-5.573-3.187z"/><path fill="#3A4449" d="M20.51 31.844c-.521.24-.552 1.313.159 2.024.846.846 2.409 1.519 3.34 1.769s2.548-.27 2.539-.923c-.009-.701-1.545-1.829-2.238-1.859-.693-.031-1.505-.042-1.868-.464-.362-.421-1.391-.796-1.932-.547z"/><path fill="#4289C1" d="M25.336 26.113c.655 2.154.529 4.598-1.058 5.452-1.52.818-4.71.946-4.71.946s-.905.89-.351 2.014c.315.639.649.921.58 1.007-.061.076-.748.153-1.053.214-.814.163-1.755.102-3.341.061-1.587-.041-2.272.113-3.998.076-1.912-.041-3.344-.507-4.298-2.08-.814-1.343-.395-3.338 1.505-4.638 1.546-1.058 6.469-2.197 8.341-2.482 1.873-.285 7.813-2.441 8.383-.57z"/><path fill="#2A6797" d="M11.014 32.461c.718.062 6.591.163 8.137.081 0 0 0 .57-1.505.651-1.505.081-4.516-.407-6.469-.244-.538.045-1.485.121-1.587-.041-.117-.185.925-.491 1.424-.447z"/><path fill="#9268CA" d="M25.28 24.097c0 1.946.508 2.792.592 3.638.047.47-1.553-.275-2.603-.41-2.727-.351-6.408-.309-6.408-.309-.557-2.685.576-4.818-.306-8.419-1.138-4.646 3.231-9.23 5.127-8.621 2.478.797 3.937 3.064 3.936 7.395 0 2.998-.338 4.78-.338 6.726z"/><path fill="#AF7E57" d="M19.3 15.532c-.341 2.345-.225 6.209-.58 6.395-2.051 1.072-4.163 3.421-5.517 3.961-.981.392-1.967.635-2.378 1.031-.659.634-1.453 1.184-1.497 1.8-.045.625.681.819 1.908.241.901-.424 1.624-.403 2.419-1.032 1.132-.896 6.19-1.666 7.84-4.348.557-.905.927-3.403 1.588-7.744-1.11-.401-3.783-.304-3.783-.304z"/></svg>
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#AF7E57" d="M19.652 1.065c-1.764-.694-4.514.202-4.834 2.263-.317 2.047.265 5.257 2.063 5.063 1.885-.204 3.819-.613 4.582-2.554.764-1.942-.047-4.078-1.811-4.772z"/><path fill="#AF7E57" d="M20.963 6.335c2.567-3.016-3.617-2.722-3.617-2.722-1.17.042-.365 1.993-.916 3.057-.378.737 1.212 1.128 1.212 1.128s.73-.011.769.875v.008c.009.225-.015.493-.12.851-.524 1.772 1.857 2.859 2.38 1.083.207-.703.127-1.321.022-1.892l-.009-.051c-.159-.847-.356-1.591.279-2.337z"/><path fill="#60352A" d="M21.668 1.776C20.493.401 18.877-.17 16.11.9c-2.417.934-1.64 2.856-1.077 2.528 1.552-.905 2.582-.132 3.372 1.131.23-.62 1.242-1.001 1.447-.094.23 1.02-.717 1.464-.59 1.742.042.093-.048-.084 0 0 .606 1.063 1.591 1.397 1.591 1.397s.373.147 1.01-1.109c.638-1.255.971-3.354-.195-4.719z"/><path fill="#60352A" d="M21.032 3.222c2.395.517 1.412 4.251 1.647 5.625.289 1.692 1.95 1.752 1.95 1.752s-.275-1.178-.129-2.41c.203-1.709 1.317-3.088.141-4.757-1.501-2.131-5.098-.531-3.609-.21z"/><path fill="#9268CA" d="M23.519 20.125c0 1.605.25 2.331.32 3.029.039.388-1.112-.255-1.978-.367-2.249-.289-5.165-1.089-5.165-1.089-.46-2.215.356-3.139-.372-6.109-.939-3.832 2.664-7.612 4.228-7.11 2.044.657 3.247 2.527 3.246 6.099-.001 2.473-.279 3.943-.279 5.547z"/><path fill="#292F33" d="M25.941 32.817l1.063-1.378c.354-.459 1.051-.443 1.383.032.363.518 1.508 1.7 3.206 2.314.264.096.725.291-.165 1.083 0 0-1.049.797-5.632-.453M8.486 36h5.01c.241 0 .437-.195.437-.437v-.413c0-.453-.138-.895-.396-1.267l-.384-.553h-1.935l-1.892.523c-.77.213-1.296.923-1.276 1.722.006.236.2.425.436.425z"/><path fill="#2A6797" d="M17.334 25.673l-.311 7.139s-.156 2.997 3.036 2.939l6.85-.837s.506-1.751-.35-2.51l-4.938-.592c-.137-.016-.228-.149-.194-.283l1.581-5.127c.201-.653.548-2.062.603-2.737.034-.415-.196-.091-.185-.51l-6.403 1.84.311.678z"/><path fill="#4289C1" d="M19.207 21.365c-1.873-.051-7.335.631-7.335.631-2.68.63-2.036 4.541-2.036 4.541l.525 6.917s1.67.954 3.053 0l.93-6.917 4.07.048s6.832 1.36 5.163-5.257c0 0-3.989.047-4.37.037z"/><path fill="#AF7E57" d="M18.587 13.062c-.282 1.934-.185 5.121-.478 5.274-1.692.884-4.111 2.144-5.227 2.59-.809.323-1.622.524-1.961.85-.544.523-1.199.977-1.235 1.485-.037.516.562.675 1.574.199.743-.35 1.339-.332 1.995-.851.934-.739 5.782-.697 7.143-2.909.459-.747.764-2.806 1.31-6.387-.917-.331-3.121-.251-3.121-.251z"/></svg>
|
Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 2.3 KiB |
|
@ -1 +1 @@
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#AF7E57" d="M20.905 1.103c-2.182-.859-5.584.249-5.979 2.799-.393 2.532.328 6.502 2.552 6.262 2.332-.252 4.724-.759 5.668-3.16.944-2.399-.059-5.042-2.241-5.901z"/><path fill="#AF7E57" d="M22.526 7.623c3.175-3.73-4.474-3.367-4.474-3.367-1.448.053-.451 2.465-1.133 3.782-.467.912 1.499 1.395 1.499 1.395s.903-.013.951 1.082v.01c.011.279-.018.61-.148 1.053-.648 2.192 2.297 3.537 2.944 1.34.256-.869.157-1.634.027-2.34l-.012-.063c-.196-1.049-.44-1.969.346-2.892z"/><path fill="#60352A" d="M23.398 1.983C21.945.282 19.863-.621 16.523.9c-1.361.62-1.971.391-2.165.663-.93 1.306.337 2.753.833 2.464 1.572-.917 2.99-.644 3.352.019s.028 1.854.321 1.862c.792.021.664-.755.977-1.202.514-.731 1.296-.318 1.467.496.136.645 0 1.741-1.054 1.934.717 1.577 2.136 2.058 2.136 2.058s.461.181 1.25-1.371c.789-1.554 1.201-4.151-.242-5.84z"/><path fill="#292F33" d="M20.666 32.225c-.937.204-1.397.837-1.522 1.423-.126.586.419 1.633.963 1.842s5.354.548 6.132-.078c1.162-.934-4.804-3.354-5.573-3.187z"/><path fill="#3A4449" d="M20.924 31.831c-.521.24-.593 1.505.045 2.283.721.879 2.524 1.26 3.455 1.51s2.442-.001 2.446-1.322c.004-1.115-1.452-1.429-2.145-1.46-.693-.031-1.505-.042-1.868-.464s-1.391-.796-1.933-.547z"/><path fill="#4289C1" d="M25.75 26.1c.655 2.154.529 4.598-1.058 5.452-1.52.818-4.71.946-4.71.946s-.905.89-.351 2.014c.315.639.649.921.58 1.007-.061.076-.748.153-1.053.214-.814.163-1.755.102-3.341.061s-2.272.113-3.998.076c-1.912-.041-3.344-.507-4.298-2.08-.814-1.343-.395-3.338 1.505-4.638 1.546-1.058 6.469-2.197 8.341-2.482 1.874-.285 7.814-2.441 8.383-.57z"/><path fill="#77B255" d="M26.377 25.554c-.057 1.128.391 2.499-.26 2.27-2.565-.9-9.188-.988-9.188-.988-.568-2.564-.037-6.416.008-9.956.059-4.645 3.148-7.192 5.082-6.61 2.528.761 3.689 3.387 4.016 7.511s.398 6.646.342 7.773z"/><path fill="#AF7E57" d="M19.382 16.204c-.442 2.329-.227 6.078-.59 6.249-2.095.984-3.883 3.239-5.259 3.722-.997.349-1.992.55-2.42.928-.686.605-1.503 1.121-1.573 1.735-.072.623.645.847 1.896.323.919-.385 1.64-.333 2.461-.928 1.17-.847 5.832-1.399 7.596-4.008.595-.881 1.227-2.94 2.074-7.249-1.091-.449-4.185-.772-4.185-.772z"/><path fill="#2A6797" d="M11.429 32.448c.718.062 6.591.163 8.137.081 0 0 0 .57-1.505.651-1.505.081-4.516-.407-6.469-.244-.538.045-1.485.121-1.587-.041-.117-.185.924-.491 1.424-.447z"/></svg>
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#AF7E57" d="M18.973 1.123c-1.849-.728-4.732.211-5.067 2.372-.333 2.145.278 5.51 2.162 5.306 1.976-.213 4.003-.643 4.803-2.677.802-2.034-.048-4.273-1.898-5.001z"/><path fill="#AF7E57" d="M20.347 6.648c2.691-3.161-3.791-2.853-3.791-2.853-1.227.045-.383 2.089-.96 3.205-.396.772 1.271 1.182 1.271 1.182s.765-.011.806.917v.008c.009.236-.016.517-.126.892-.549 1.858 1.946 2.997 2.494 1.135.217-.737.133-1.385.023-1.983l-.01-.053c-.166-.889-.372-1.668.293-2.45z"/><path fill="#60352A" d="M21.086 1.869C19.855.428 18.091-.338 15.26.951c-1.153.525-1.67.331-1.834.561-.788 1.106.286 2.333.706 2.088 1.332-.777 2.534-.546 2.841.016.307.562.024 1.571.272 1.578.671.018.562-.64.828-1.019.435-.62 1.098-.269 1.243.42.115.546 0 1.475-.893 1.639.607 1.336 1.81 1.744 1.81 1.744s.391.154 1.059-1.162c.668-1.316 1.017-3.516-.206-4.947z"/><path fill="#77B255" d="M23.563 21.568c-.048.956.379 2.392-.173 2.198-2.174-.763-7.786-.837-7.786-.837-.482-2.173-.032-5.437.006-8.437.05-3.936 2.667-6.094 4.306-5.601 2.142.645 3.126 2.87 3.403 6.364.278 3.495.292 5.357.244 6.313z"/><path fill="#292F33" d="M25.935 32.82l1.062-1.377c.354-.458 1.05-.442 1.382.032.363.518 1.507 1.698 3.203 2.312.264.096.724.291-.165 1.082 0 0-1.048.797-5.627-.453M8.498 36h5.005c.241 0 .436-.195.436-.436v-.412c0-.452-.138-.894-.396-1.266l-.383-.553h-1.933l-1.89.522c-.769.213-1.295.922-1.275 1.72.006.236.199.425.436.425z"/><path fill="#2A6797" d="M17.337 25.683l-.311 7.133s-.156 2.994 3.033 2.936l6.844-.836s.505-1.75-.35-2.508l-4.933-.591c-.137-.016-.228-.149-.194-.282l1.579-5.122c.201-.652.548-2.06.603-2.735.034-.414-.195-.091-.185-.51l-6.397 1.838.311.677z"/><path fill="#4289C1" d="M19.208 21.379c-1.871-.051-7.328.63-7.328.63-2.677.629-2.034 4.537-2.034 4.537l.524 6.91s1.668.953 3.05 0l.929-6.91 4.066.048s6.825 1.359 5.158-5.252c0 .001-3.984.048-4.365.037z"/><path fill="#AF7E57" d="M17.683 13.919c-.374 1.973-.192 5.151-.5 5.295-1.776.833-4.337 1.001-5.502 1.41-.844.296-.825.466-1.188.786-.581.513-1.273.95-1.333 1.47-.061.528.547.718 1.607.273.779-.326 1.389-.282 2.085-.786.991-.718 5.126.558 6.62-1.653.504-.746 1.04-2.491 1.757-6.143-.924-.378-3.546-.652-3.546-.652z"/></svg>
|
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 2.2 KiB |
|
@ -1 +1 @@
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#AF7E57" d="M20.905 1.103c-2.182-.859-5.459.272-5.979 2.799-.726 3.526 1.288 6.513 3.513 6.273 2.332-.252 3.763-.769 4.708-3.17.943-2.4-.06-5.043-2.242-5.902z"/><path fill="#AF7E57" d="M22.526 7.623c3.175-3.73-4.474-3.367-4.474-3.367-1.448.053-.451 2.465-1.133 3.782-.467.912 1.499 1.395 1.499 1.395s.903-.013.951 1.082v.01c.011.279-.018.61-.148 1.053-.648 2.192 2.297 3.537 2.944 1.34.256-.869.157-1.634.027-2.34l-.012-.063c-.196-1.049-.44-1.969.346-2.892z"/><path fill="#60352A" d="M23.65 1.859C22.573.402 18.961-.884 16.668.96c-1.588-.275-2.196 1.234-2.061 2.103.108.694 1.813.873 2.241 2.19.297-.33.376-1.007.312-1.369.543.523.306 1.896 2.442 2.793 2.064.867 1.7 2.69 1.7 2.69s1.087-.514 1.844-1.39c1.443-1.67 1.691-4.512.504-6.118z"/><path fill="#292F33" d="M20.666 32.225c-.937.204-1.397.837-1.522 1.423-.126.586.419 1.633.963 1.842s5.354.548 6.132-.078c1.162-.934-4.804-3.354-5.573-3.187z"/><path fill="#3A4449" d="M20.924 31.831c-.521.24-.593 1.505.045 2.283.721.879 2.524 1.26 3.455 1.51s2.442-.001 2.446-1.322c.004-1.115-1.452-1.429-2.145-1.46-.693-.031-1.505-.042-1.868-.464s-1.391-.796-1.933-.547z"/><path fill="#4289C1" d="M25.75 26.1c.655 2.154.529 4.598-1.058 5.452-1.52.818-4.71.946-4.71.946s-.905.89-.351 2.014c.315.639.649.921.58 1.007-.061.076-.748.153-1.053.214-.814.163-1.755.102-3.341.061s-2.272.113-3.998.076c-1.912-.041-3.344-.507-4.298-2.08-.814-1.343-.395-3.338 1.505-4.638 1.546-1.058 6.469-2.197 8.341-2.482 1.874-.285 7.814-2.441 8.383-.57z"/><path fill="#FA743E" d="M26.117 27.825c-2.565-.9-9.188-.988-9.188-.988.257-2.055.218-5.676-.002-9.362-.233-3.906 3.768-7.514 5.092-7.204 2.571.602 4.342 3.386 4.016 7.511-.469 5.926.733 10.271.082 10.043z"/><path fill="#AF7E57" d="M19.799 16.252c-.442 2.329-.599 6.406-.962 6.577-2.095.984-3.927 2.864-5.303 3.346-.997.349-1.992.55-2.42.928-.686.605-1.503 1.121-1.573 1.735-.072.623.645.847 1.896.323.919-.385 1.64-.333 2.461-.928 1.17-.847 5.832-1.399 7.596-4.008.595-.881 1.227-2.94 2.074-7.249-1.092-.449-3.769-.724-3.769-.724z"/><path fill="#2A6797" d="M11.429 32.448c.718.062 6.591.163 8.137.081 0 0 0 .57-1.505.651-1.505.081-4.516-.407-6.469-.244-.538.045-1.485.121-1.587-.041-.117-.185.924-.491 1.424-.447z"/></svg>
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#AF7E57" d="M19.321 1.07c-1.81-.712-4.528.226-4.96 2.322-.602 2.925 1.069 5.402 2.914 5.203 1.934-.209 3.121-.638 3.905-2.629.783-1.992-.049-4.184-1.859-4.896z"/><path fill="#AF7E57" d="M20.665 6.478c2.634-3.094-3.711-2.792-3.711-2.792-1.201.044-.374 2.044-.939 3.137-.388.756 1.244 1.157 1.244 1.157s.749-.011.789.897v.008c.009.231-.015.506-.123.873-.538 1.819 1.905 2.934 2.442 1.111.212-.721.13-1.355.022-1.941l-.01-.052c-.163-.87-.365-1.633.286-2.398z"/><path fill="#60352A" d="M21.598 1.697c-.893-1.208-3.89-2.275-5.792-.746-1.317-.228-1.822 1.024-1.71 1.745.089.575 1.504.724 1.859 1.817.246-.274.312-.835.259-1.135.45.433.254 1.573 2.025 2.317 1.712.719 1.41 2.232 1.41 2.232s.902-.426 1.53-1.153c1.198-1.388 1.403-3.745.419-5.077z"/><path fill="#FA743E" d="M23.663 22.44c-.135.623-7.64 1.303-7.64 1.303.213-1.705.181-6.037-.002-9.094-.193-3.24 3.126-6.232 4.223-5.976 2.132.499 3.601 2.809 3.331 6.23-.388 4.917.151 7.245.088 7.537z"/><path fill="#292F33" d="M25.935 32.82l1.062-1.377c.354-.458 1.05-.442 1.382.032.363.518 1.507 1.698 3.203 2.312.264.096.724.291-.165 1.082 0 0-1.048.797-5.627-.453M8.498 36h5.005c.241 0 .436-.195.436-.436v-.412c0-.452-.138-.894-.396-1.266l-.383-.553h-1.933l-1.89.522c-.769.213-1.295.922-1.275 1.72.006.236.199.425.436.425z"/><path fill="#2A6797" d="M17.337 25.683l-.311 7.133s-.156 2.994 3.033 2.936l6.844-.836s.505-1.75-.35-2.508l-4.933-.591c-.137-.016-.228-.149-.194-.282l1.579-5.122c.201-.652.548-2.06.603-2.735.034-.414-.195-.091-.185-.51l-6.397 1.838.311.677z"/><path fill="#4289C1" d="M19.208 21.379c-1.871-.051-7.328.63-7.328.63-2.677.629-2.034 4.537-2.034 4.537l.524 6.91s1.668.953 3.05 0l.929-6.91 4.066.048s6.825 1.359 5.158-5.252c0 .001-3.984.048-4.365.037z"/><path fill="#AF7E57" d="M18.404 13.635c-.366 1.931-.497 5.314-.798 5.455-1.738.816-3.258 1.323-4.399 1.723-.827.29-1.652.456-2.008.77-.569.502-1.246.93-1.305 1.439-.059.517.535.703 1.573.268.762-.32 1.36-.276 2.041-.77.97-.703 4.838-.108 6.3-2.272.494-.73 1.018-2.438 1.72-6.013-.904-.372-3.124-.6-3.124-.6z"/></svg>
|
Before Width: | Height: | Size: 2.2 KiB After Width: | Height: | Size: 2.1 KiB |
|
@ -1 +1 @@
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#7C533E" d="M20.591.985c-2.139-.842-5.474.244-5.861 2.743-.385 2.482.321 6.374 2.501 6.138 2.286-.247 4.63-.744 5.556-3.097.927-2.352-.056-4.942-2.196-5.784z"/><path fill="#7C533E" d="M22.18 7.376c3.112-3.657-4.386-3.3-4.386-3.3-1.419.052-.442 2.416-1.11 3.707-.458.894 1.47 1.367 1.47 1.367s.885-.013.932 1.06v.01c.011.273-.018.598-.145 1.032-.635 2.149 2.252 3.467 2.885 1.313.251-.852.153-1.602.026-2.294l-.012-.061c-.191-1.028-.429-1.93.34-2.834z"/><path fill="#0B0200" d="M23.035 1.848C21.611.181 19.652-.511 16.296.786c-2.931 1.133-1.988 3.463-1.306 3.065 1.882-1.097 3.131-.16 4.089 1.371.279-.752 1.507-1.214 1.755-.114.279 1.236-.869 1.775-.716 2.113.051.113-.058-.102 0 0 .734 1.289 1.929 1.694 1.929 1.694s.453.177 1.226-1.345c.773-1.522 1.177-4.067-.238-5.722z"/><path fill="#0B0200" d="M22.264 3.601c2.904.626 1.712 5.155 1.997 6.821.35 2.051 2.364 2.124 2.364 2.124s-.332-1.429-.155-2.923c.246-2.072 1.597-3.745.171-5.768-1.821-2.584-6.182-.643-4.377-.254z"/><path fill="#292F33" d="M20.252 32.238c-.937.204-1.397.837-1.522 1.423s.419 1.633.963 1.842 5.354.548 6.132-.078c1.162-.934-4.804-3.354-5.573-3.187z"/><path fill="#3A4449" d="M20.51 31.844c-.521.24-.552 1.313.159 2.024.846.846 2.409 1.519 3.34 1.769s2.548-.27 2.539-.923c-.009-.701-1.545-1.829-2.238-1.859-.693-.031-1.505-.042-1.868-.464-.362-.421-1.391-.796-1.932-.547z"/><path fill="#4289C1" d="M25.336 26.113c.655 2.154.529 4.598-1.058 5.452-1.52.818-4.71.946-4.71.946s-.905.89-.351 2.014c.315.639.649.921.58 1.007-.061.076-.748.153-1.053.214-.814.163-1.755.102-3.341.061-1.587-.041-2.272.113-3.998.076-1.912-.041-3.344-.507-4.298-2.08-.814-1.343-.395-3.338 1.505-4.638 1.546-1.058 6.469-2.197 8.341-2.482 1.873-.285 7.813-2.441 8.383-.57z"/><path fill="#2A6797" d="M11.014 32.461c.718.062 6.591.163 8.137.081 0 0 0 .57-1.505.651-1.505.081-4.516-.407-6.469-.244-.538.045-1.485.121-1.587-.041-.117-.185.925-.491 1.424-.447z"/><path fill="#9268CA" d="M25.28 24.097c0 1.946.508 2.792.592 3.638.047.47-1.553-.275-2.603-.41-2.727-.351-6.408-.309-6.408-.309-.557-2.685.576-4.818-.306-8.419-1.138-4.646 3.231-9.23 5.127-8.621 2.478.797 3.937 3.064 3.936 7.395 0 2.998-.338 4.78-.338 6.726z"/><path fill="#7C533E" d="M19.3 15.532c-.341 2.345-.225 6.209-.58 6.395-2.051 1.072-4.163 3.421-5.517 3.961-.981.392-1.967.635-2.378 1.031-.659.634-1.453 1.184-1.497 1.8-.045.625.681.819 1.908.241.901-.424 1.624-.403 2.419-1.032 1.132-.896 6.19-1.666 7.84-4.348.557-.905.927-3.403 1.588-7.744-1.11-.401-3.783-.304-3.783-.304z"/></svg>
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#7C533E" d="M19.652 1.065c-1.764-.694-4.514.202-4.834 2.263-.317 2.047.265 5.257 2.063 5.063 1.885-.204 3.819-.613 4.582-2.554.764-1.942-.047-4.078-1.811-4.772z"/><path fill="#7C533E" d="M20.963 6.335c2.567-3.016-3.617-2.722-3.617-2.722-1.17.042-.365 1.993-.916 3.057-.378.737 1.212 1.128 1.212 1.128s.73-.011.769.875v.008c.009.225-.015.493-.12.851-.524 1.772 1.857 2.859 2.38 1.083.207-.703.127-1.321.022-1.892l-.009-.051c-.159-.847-.356-1.591.279-2.337z"/><path fill="#0B0200" d="M21.668 1.776C20.493.401 18.877-.17 16.11.9c-2.417.934-1.64 2.856-1.077 2.528 1.552-.905 2.582-.132 3.372 1.131.23-.62 1.242-1.001 1.447-.094.23 1.02-.717 1.464-.59 1.742.042.093-.048-.084 0 0 .606 1.063 1.591 1.397 1.591 1.397s.373.147 1.01-1.109c.638-1.255.971-3.354-.195-4.719z"/><path fill="#0B0200" d="M21.032 3.222c2.395.517 1.412 4.251 1.647 5.625.289 1.692 1.95 1.752 1.95 1.752s-.275-1.178-.129-2.41c.203-1.709 1.317-3.088.141-4.757-1.501-2.131-5.098-.531-3.609-.21z"/><path fill="#9268CA" d="M23.519 20.125c0 1.605.25 2.331.32 3.029.039.388-1.112-.255-1.978-.367-2.249-.289-5.165-1.089-5.165-1.089-.46-2.215.356-3.139-.372-6.109-.939-3.832 2.664-7.612 4.228-7.11 2.044.657 3.247 2.527 3.246 6.099-.001 2.473-.279 3.943-.279 5.547z"/><path fill="#292F33" d="M25.941 32.817l1.063-1.378c.354-.459 1.051-.443 1.383.032.363.518 1.508 1.7 3.206 2.314.264.096.725.291-.165 1.083 0 0-1.049.797-5.632-.453M8.486 36h5.01c.241 0 .437-.195.437-.437v-.413c0-.453-.138-.895-.396-1.267l-.384-.553h-1.935l-1.892.523c-.77.213-1.296.923-1.276 1.722.006.236.2.425.436.425z"/><path fill="#2A6797" d="M17.334 25.673l-.311 7.139s-.156 2.997 3.036 2.939l6.85-.837s.506-1.751-.35-2.51l-4.938-.592c-.137-.016-.228-.149-.194-.283l1.581-5.127c.201-.653.548-2.062.603-2.737.034-.415-.196-.091-.185-.51l-6.403 1.84.311.678z"/><path fill="#4289C1" d="M19.207 21.365c-1.873-.051-7.335.631-7.335.631-2.68.63-2.036 4.541-2.036 4.541l.525 6.917s1.67.954 3.053 0l.93-6.917 4.07.048s6.832 1.36 5.163-5.257c0 0-3.989.047-4.37.037z"/><path fill="#7C533E" d="M18.587 13.062c-.282 1.934-.185 5.121-.478 5.274-1.692.884-4.111 2.144-5.227 2.59-.809.323-1.622.524-1.961.85-.544.523-1.199.977-1.235 1.485-.037.516.562.675 1.574.199.743-.35 1.339-.332 1.995-.851.934-.739 5.782-.697 7.143-2.909.459-.747.764-2.806 1.31-6.387-.917-.331-3.121-.251-3.121-.251z"/></svg>
|
Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 2.3 KiB |
|
@ -1 +1 @@
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#7C533E" d="M20.905 1.103c-2.182-.859-5.584.249-5.979 2.799-.393 2.532.328 6.502 2.552 6.262 2.332-.252 4.724-.759 5.668-3.16.944-2.399-.059-5.042-2.241-5.901z"/><path fill="#7C533E" d="M22.526 7.623c3.175-3.73-4.474-3.367-4.474-3.367-1.448.053-.451 2.465-1.133 3.782-.467.912 1.499 1.395 1.499 1.395s.903-.013.951 1.082v.01c.011.279-.018.61-.148 1.053-.648 2.192 2.297 3.537 2.944 1.34.256-.869.157-1.634.027-2.34l-.012-.063c-.196-1.049-.44-1.969.346-2.892z"/><path fill="#0B0200" d="M23.398 1.983C21.945.282 19.863-.621 16.523.9c-1.361.62-1.971.391-2.165.663-.93 1.306.337 2.753.833 2.464 1.572-.917 2.99-.644 3.352.019s.028 1.854.321 1.862c.792.021.664-.755.977-1.202.514-.731 1.296-.318 1.467.496.136.645 0 1.741-1.054 1.934.717 1.577 2.136 2.058 2.136 2.058s.461.181 1.25-1.371c.789-1.554 1.201-4.151-.242-5.84z"/><path fill="#292F33" d="M20.666 32.225c-.937.204-1.397.837-1.522 1.423-.126.586.419 1.633.963 1.842s5.354.548 6.132-.078c1.162-.934-4.804-3.354-5.573-3.187z"/><path fill="#3A4449" d="M20.924 31.831c-.521.24-.593 1.505.045 2.283.721.879 2.524 1.26 3.455 1.51s2.442-.001 2.446-1.322c.004-1.115-1.452-1.429-2.145-1.46-.693-.031-1.505-.042-1.868-.464s-1.391-.796-1.933-.547z"/><path fill="#4289C1" d="M25.75 26.1c.655 2.154.529 4.598-1.058 5.452-1.52.818-4.71.946-4.71.946s-.905.89-.351 2.014c.315.639.649.921.58 1.007-.061.076-.748.153-1.053.214-.814.163-1.755.102-3.341.061s-2.272.113-3.998.076c-1.912-.041-3.344-.507-4.298-2.08-.814-1.343-.395-3.338 1.505-4.638 1.546-1.058 6.469-2.197 8.341-2.482 1.874-.285 7.814-2.441 8.383-.57z"/><path fill="#77B255" d="M26.377 25.554c-.057 1.128.391 2.499-.26 2.27-2.565-.9-9.188-.988-9.188-.988-.568-2.564-.037-6.416.008-9.956.059-4.645 3.148-7.192 5.082-6.61 2.528.761 3.689 3.387 4.016 7.511s.398 6.646.342 7.773z"/><path fill="#7C533E" d="M19.382 16.204c-.442 2.329-.227 6.078-.59 6.249-2.095.984-3.883 3.239-5.259 3.722-.997.349-1.992.55-2.42.928-.686.605-1.503 1.121-1.573 1.735-.072.623.645.847 1.896.323.919-.385 1.64-.333 2.461-.928 1.17-.847 5.832-1.399 7.596-4.008.595-.881 1.227-2.94 2.074-7.249-1.091-.449-4.185-.772-4.185-.772z"/><path fill="#2A6797" d="M11.429 32.448c.718.062 6.591.163 8.137.081 0 0 0 .57-1.505.651-1.505.081-4.516-.407-6.469-.244-.538.045-1.485.121-1.587-.041-.117-.185.924-.491 1.424-.447z"/></svg>
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#7C533E" d="M18.973 1.123c-1.849-.728-4.732.211-5.067 2.372-.333 2.145.278 5.51 2.162 5.306 1.976-.213 4.003-.643 4.803-2.677.802-2.034-.048-4.273-1.898-5.001z"/><path fill="#7C533E" d="M20.347 6.648c2.691-3.161-3.791-2.853-3.791-2.853-1.227.045-.383 2.089-.96 3.205-.396.772 1.271 1.182 1.271 1.182s.765-.011.806.917v.008c.009.236-.016.517-.126.892-.549 1.858 1.946 2.997 2.494 1.135.217-.737.133-1.385.023-1.983l-.01-.053c-.166-.889-.372-1.668.293-2.45z"/><path fill="#0B0200" d="M21.086 1.869C19.855.428 18.091-.338 15.26.951c-1.153.525-1.67.331-1.834.561-.788 1.106.286 2.333.706 2.088 1.332-.777 2.534-.546 2.841.016.307.562.024 1.571.272 1.578.671.018.562-.64.828-1.019.435-.62 1.098-.269 1.243.42.115.546 0 1.475-.893 1.639.607 1.336 1.81 1.744 1.81 1.744s.391.154 1.059-1.162c.668-1.316 1.017-3.516-.206-4.947z"/><path fill="#77B255" d="M23.563 21.568c-.048.956.379 2.392-.173 2.198-2.174-.763-7.786-.837-7.786-.837-.482-2.173-.032-5.437.006-8.437.05-3.936 2.667-6.094 4.306-5.601 2.142.645 3.126 2.87 3.403 6.364.278 3.495.292 5.357.244 6.313z"/><path fill="#292F33" d="M25.935 32.82l1.062-1.377c.354-.458 1.05-.442 1.382.032.363.518 1.507 1.698 3.203 2.312.264.096.724.291-.165 1.082 0 0-1.048.797-5.627-.453M8.498 36h5.005c.241 0 .436-.195.436-.436v-.412c0-.452-.138-.894-.396-1.266l-.383-.553h-1.933l-1.89.522c-.769.213-1.295.922-1.275 1.72.006.236.199.425.436.425z"/><path fill="#2A6797" d="M17.337 25.683l-.311 7.133s-.156 2.994 3.033 2.936l6.844-.836s.505-1.75-.35-2.508l-4.933-.591c-.137-.016-.228-.149-.194-.282l1.579-5.122c.201-.652.548-2.06.603-2.735.034-.414-.195-.091-.185-.51l-6.397 1.838.311.677z"/><path fill="#4289C1" d="M19.208 21.379c-1.871-.051-7.328.63-7.328.63-2.677.629-2.034 4.537-2.034 4.537l.524 6.91s1.668.953 3.05 0l.929-6.91 4.066.048s6.825 1.359 5.158-5.252c0 .001-3.984.048-4.365.037z"/><path fill="#7C533E" d="M17.683 13.919c-.374 1.973-.192 5.151-.5 5.295-1.776.833-4.337 1.001-5.502 1.41-.844.296-.825.466-1.188.786-.581.513-1.273.95-1.333 1.47-.061.528.547.718 1.607.273.779-.326 1.389-.282 2.085-.786.991-.718 5.126.558 6.62-1.653.504-.746 1.04-2.491 1.757-6.143-.924-.378-3.546-.652-3.546-.652z"/></svg>
|
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 2.2 KiB |
|
@ -1 +1 @@
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#7C533E" d="M20.905 1.103c-2.182-.859-5.459.272-5.979 2.799-.726 3.526 1.288 6.513 3.513 6.273 2.332-.252 3.763-.769 4.708-3.17.943-2.4-.06-5.043-2.242-5.902z"/><path fill="#7C533E" d="M22.526 7.623c3.175-3.73-4.474-3.367-4.474-3.367-1.448.053-.451 2.465-1.133 3.782-.467.912 1.499 1.395 1.499 1.395s.903-.013.951 1.082v.01c.011.279-.018.61-.148 1.053-.648 2.192 2.297 3.537 2.944 1.34.256-.869.157-1.634.027-2.34l-.012-.063c-.196-1.049-.44-1.969.346-2.892z"/><path fill="#0B0200" d="M23.65 1.859C22.573.402 18.961-.884 16.668.96c-1.588-.275-2.196 1.234-2.061 2.103.108.694 1.813.873 2.241 2.19.297-.33.376-1.007.312-1.369.543.523.306 1.896 2.442 2.793 2.064.867 1.7 2.69 1.7 2.69s1.087-.514 1.844-1.39c1.443-1.67 1.691-4.512.504-6.118z"/><path fill="#292F33" d="M20.666 32.225c-.937.204-1.397.837-1.522 1.423-.126.586.419 1.633.963 1.842s5.354.548 6.132-.078c1.162-.934-4.804-3.354-5.573-3.187z"/><path fill="#3A4449" d="M20.924 31.831c-.521.24-.593 1.505.045 2.283.721.879 2.524 1.26 3.455 1.51s2.442-.001 2.446-1.322c.004-1.115-1.452-1.429-2.145-1.46-.693-.031-1.505-.042-1.868-.464s-1.391-.796-1.933-.547z"/><path fill="#4289C1" d="M25.75 26.1c.655 2.154.529 4.598-1.058 5.452-1.52.818-4.71.946-4.71.946s-.905.89-.351 2.014c.315.639.649.921.58 1.007-.061.076-.748.153-1.053.214-.814.163-1.755.102-3.341.061s-2.272.113-3.998.076c-1.912-.041-3.344-.507-4.298-2.08-.814-1.343-.395-3.338 1.505-4.638 1.546-1.058 6.469-2.197 8.341-2.482 1.874-.285 7.814-2.441 8.383-.57z"/><path fill="#FA743E" d="M26.117 27.825c-2.565-.9-9.188-.988-9.188-.988.257-2.055.218-5.676-.002-9.362-.233-3.906 3.768-7.514 5.092-7.204 2.571.602 4.342 3.386 4.016 7.511-.469 5.926.733 10.271.082 10.043z"/><path fill="#7C533E" d="M19.799 16.252c-.442 2.329-.599 6.406-.962 6.577-2.095.984-3.927 2.864-5.303 3.346-.997.349-1.992.55-2.42.928-.686.605-1.503 1.121-1.573 1.735-.072.623.645.847 1.896.323.919-.385 1.64-.333 2.461-.928 1.17-.847 5.832-1.399 7.596-4.008.595-.881 1.227-2.94 2.074-7.249-1.092-.449-3.769-.724-3.769-.724z"/><path fill="#2A6797" d="M11.429 32.448c.718.062 6.591.163 8.137.081 0 0 0 .57-1.505.651-1.505.081-4.516-.407-6.469-.244-.538.045-1.485.121-1.587-.041-.117-.185.924-.491 1.424-.447z"/></svg>
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#7C533E" d="M19.321 1.07c-1.81-.712-4.528.226-4.96 2.322-.602 2.925 1.069 5.402 2.914 5.203 1.934-.209 3.121-.638 3.905-2.629.783-1.992-.049-4.184-1.859-4.896z"/><path fill="#7C533E" d="M20.665 6.478c2.634-3.094-3.711-2.792-3.711-2.792-1.201.044-.374 2.044-.939 3.137-.388.756 1.244 1.157 1.244 1.157s.749-.011.789.897v.008c.009.231-.015.506-.123.873-.538 1.819 1.905 2.934 2.442 1.111.212-.721.13-1.355.022-1.941l-.01-.052c-.163-.87-.365-1.633.286-2.398z"/><path fill="#0B0200" d="M21.598 1.697c-.893-1.208-3.89-2.275-5.792-.746-1.317-.228-1.822 1.024-1.71 1.745.089.575 1.504.724 1.859 1.817.246-.274.312-.835.259-1.135.45.433.254 1.573 2.025 2.317 1.712.719 1.41 2.232 1.41 2.232s.902-.426 1.53-1.153c1.198-1.388 1.403-3.745.419-5.077z"/><path fill="#FA743E" d="M23.663 22.44c-.135.623-7.64 1.303-7.64 1.303.213-1.705.181-6.037-.002-9.094-.193-3.24 3.126-6.232 4.223-5.976 2.132.499 3.601 2.809 3.331 6.23-.388 4.917.151 7.245.088 7.537z"/><path fill="#292F33" d="M25.935 32.82l1.062-1.377c.354-.458 1.05-.442 1.382.032.363.518 1.507 1.698 3.203 2.312.264.096.724.291-.165 1.082 0 0-1.048.797-5.627-.453M8.498 36h5.005c.241 0 .436-.195.436-.436v-.412c0-.452-.138-.894-.396-1.266l-.383-.553h-1.933l-1.89.522c-.769.213-1.295.922-1.275 1.72.006.236.199.425.436.425z"/><path fill="#2A6797" d="M17.337 25.683l-.311 7.133s-.156 2.994 3.033 2.936l6.844-.836s.505-1.75-.35-2.508l-4.933-.591c-.137-.016-.228-.149-.194-.282l1.579-5.122c.201-.652.548-2.06.603-2.735.034-.414-.195-.091-.185-.51l-6.397 1.838.311.677z"/><path fill="#4289C1" d="M19.208 21.379c-1.871-.051-7.328.63-7.328.63-2.677.629-2.034 4.537-2.034 4.537l.524 6.91s1.668.953 3.05 0l.929-6.91 4.066.048s6.825 1.359 5.158-5.252c0 .001-3.984.048-4.365.037z"/><path fill="#7C533E" d="M18.404 13.635c-.366 1.931-.497 5.314-.798 5.455-1.738.816-3.258 1.323-4.399 1.723-.827.29-1.652.456-2.008.77-.569.502-1.246.93-1.305 1.439-.059.517.535.703 1.573.268.762-.32 1.36-.276 2.041-.77.97-.703 4.838-.108 6.3-2.272.494-.73 1.018-2.438 1.72-6.013-.904-.372-3.124-.6-3.124-.6z"/></svg>
|
Before Width: | Height: | Size: 2.2 KiB After Width: | Height: | Size: 2.1 KiB |
|
@ -1 +1 @@
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#FFDC5D" d="M20.591.985c-2.139-.842-5.474.244-5.861 2.743-.385 2.482.321 6.374 2.501 6.138 2.286-.247 4.63-.744 5.556-3.097.927-2.352-.056-4.942-2.196-5.784z"/><path fill="#FFDC5D" d="M22.18 7.376c3.112-3.657-4.386-3.3-4.386-3.3-1.419.052-.442 2.416-1.11 3.707-.458.894 1.47 1.367 1.47 1.367s.885-.013.932 1.06v.01c.011.273-.018.598-.145 1.032-.635 2.149 2.252 3.467 2.885 1.313.251-.852.153-1.602.026-2.294l-.012-.061c-.191-1.028-.429-1.93.34-2.834z"/><path fill="#FFAC33" d="M23.035 1.848C21.611.181 19.652-.511 16.296.786c-2.931 1.133-1.988 3.463-1.306 3.065 1.882-1.097 3.131-.16 4.089 1.371.279-.752 1.507-1.214 1.755-.114.279 1.236-.869 1.775-.716 2.113.051.113-.058-.102 0 0 .734 1.289 1.929 1.694 1.929 1.694s.453.177 1.226-1.345c.773-1.522 1.177-4.067-.238-5.722z"/><path fill="#FFAC33" d="M22.264 3.601c2.904.626 1.712 5.155 1.997 6.821.35 2.051 2.364 2.124 2.364 2.124s-.332-1.429-.155-2.923c.246-2.072 1.597-3.745.171-5.768-1.821-2.584-6.182-.643-4.377-.254z"/><path fill="#292F33" d="M20.252 32.238c-.937.204-1.397.837-1.522 1.423s.419 1.633.963 1.842 5.354.548 6.132-.078c1.162-.934-4.804-3.354-5.573-3.187z"/><path fill="#3A4449" d="M20.51 31.844c-.521.24-.552 1.313.159 2.024.846.846 2.409 1.519 3.34 1.769s2.548-.27 2.539-.923c-.009-.701-1.545-1.829-2.238-1.859-.693-.031-1.505-.042-1.868-.464-.362-.421-1.391-.796-1.932-.547z"/><path fill="#4289C1" d="M25.336 26.113c.655 2.154.529 4.598-1.058 5.452-1.52.818-4.71.946-4.71.946s-.905.89-.351 2.014c.315.639.649.921.58 1.007-.061.076-.748.153-1.053.214-.814.163-1.755.102-3.341.061-1.587-.041-2.272.113-3.998.076-1.912-.041-3.344-.507-4.298-2.08-.814-1.343-.395-3.338 1.505-4.638 1.546-1.058 6.469-2.197 8.341-2.482 1.873-.285 7.813-2.441 8.383-.57z"/><path fill="#2A6797" d="M11.014 32.461c.718.062 6.591.163 8.137.081 0 0 0 .57-1.505.651-1.505.081-4.516-.407-6.469-.244-.538.045-1.485.121-1.587-.041-.117-.185.925-.491 1.424-.447z"/><path fill="#9268CA" d="M25.28 24.097c0 1.946.508 2.792.592 3.638.047.47-1.553-.275-2.603-.41-2.727-.351-6.408-.309-6.408-.309-.557-2.685.576-4.818-.306-8.419-1.138-4.646 3.231-9.23 5.127-8.621 2.478.797 3.937 3.064 3.936 7.395 0 2.998-.338 4.78-.338 6.726z"/><path fill="#FFDC5D" d="M19.3 15.532c-.341 2.345-.225 6.209-.58 6.395-2.051 1.072-4.163 3.421-5.517 3.961-.981.392-1.967.635-2.378 1.031-.659.634-1.453 1.184-1.497 1.8-.045.625.681.819 1.908.241.901-.424 1.624-.403 2.419-1.032 1.132-.896 6.19-1.666 7.84-4.348.557-.905.927-3.403 1.588-7.744-1.11-.401-3.783-.304-3.783-.304z"/></svg>
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#FFDC5D" d="M19.652 1.065c-1.764-.694-4.514.202-4.834 2.263-.317 2.047.265 5.257 2.063 5.063 1.885-.204 3.819-.613 4.582-2.554.764-1.942-.047-4.078-1.811-4.772z"/><path fill="#FFDC5D" d="M20.963 6.335c2.567-3.016-3.617-2.722-3.617-2.722-1.17.042-.365 1.993-.916 3.057-.378.737 1.212 1.128 1.212 1.128s.73-.011.769.875v.008c.009.225-.015.493-.12.851-.524 1.772 1.857 2.859 2.38 1.083.207-.703.127-1.321.022-1.892l-.009-.051c-.159-.847-.356-1.591.279-2.337z"/><path fill="#FFAC33" d="M21.668 1.776C20.493.401 18.877-.17 16.11.9c-2.417.934-1.64 2.856-1.077 2.528 1.552-.905 2.582-.132 3.372 1.131.23-.62 1.242-1.001 1.447-.094.23 1.02-.717 1.464-.59 1.742.042.093-.048-.084 0 0 .606 1.063 1.591 1.397 1.591 1.397s.373.147 1.01-1.109c.638-1.255.971-3.354-.195-4.719z"/><path fill="#FFAC33" d="M21.032 3.222c2.395.517 1.412 4.251 1.647 5.625.289 1.692 1.95 1.752 1.95 1.752s-.275-1.178-.129-2.41c.203-1.709 1.317-3.088.141-4.757-1.501-2.131-5.098-.531-3.609-.21z"/><path fill="#9268CA" d="M23.519 20.125c0 1.605.25 2.331.32 3.029.039.388-1.112-.255-1.978-.367-2.249-.289-5.165-1.089-5.165-1.089-.46-2.215.356-3.139-.372-6.109-.939-3.832 2.664-7.612 4.228-7.11 2.044.657 3.247 2.527 3.246 6.099-.001 2.473-.279 3.943-.279 5.547z"/><path fill="#292F33" d="M25.941 32.817l1.063-1.378c.354-.459 1.051-.443 1.383.032.363.518 1.508 1.7 3.206 2.314.264.096.725.291-.165 1.083 0 0-1.049.797-5.632-.453M8.486 36h5.01c.241 0 .437-.195.437-.437v-.413c0-.453-.138-.895-.396-1.267l-.384-.553h-1.935l-1.892.523c-.77.213-1.296.923-1.276 1.722.006.236.2.425.436.425z"/><path fill="#2A6797" d="M17.334 25.673l-.311 7.139s-.156 2.997 3.036 2.939l6.85-.837s.506-1.751-.35-2.51l-4.938-.592c-.137-.016-.228-.149-.194-.283l1.581-5.127c.201-.653.548-2.062.603-2.737.034-.415-.196-.091-.185-.51l-6.403 1.84.311.678z"/><path fill="#4289C1" d="M19.207 21.365c-1.873-.051-7.335.631-7.335.631-2.68.63-2.036 4.541-2.036 4.541l.525 6.917s1.67.954 3.053 0l.93-6.917 4.07.048s6.832 1.36 5.163-5.257c0 0-3.989.047-4.37.037z"/><path fill="#FFDC5D" d="M18.587 13.062c-.282 1.934-.185 5.121-.478 5.274-1.692.884-4.111 2.144-5.227 2.59-.809.323-1.622.524-1.961.85-.544.523-1.199.977-1.235 1.485-.037.516.562.675 1.574.199.743-.35 1.339-.332 1.995-.851.934-.739 5.782-.697 7.143-2.909.459-.747.764-2.806 1.31-6.387-.917-.331-3.121-.251-3.121-.251z"/></svg>
|
Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 2.3 KiB |
|
@ -1 +1 @@
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#FFDC5D" d="M20.905 1.103c-2.182-.859-5.584.249-5.979 2.799-.393 2.532.328 6.502 2.552 6.262 2.332-.252 4.724-.759 5.668-3.16.944-2.399-.059-5.042-2.241-5.901z"/><path fill="#FFDC5D" d="M22.526 7.623c3.175-3.73-4.474-3.367-4.474-3.367-1.448.053-.451 2.465-1.133 3.782-.467.912 1.499 1.395 1.499 1.395s.903-.013.951 1.082v.01c.011.279-.018.61-.148 1.053-.648 2.192 2.297 3.537 2.944 1.34.256-.869.157-1.634.027-2.34l-.012-.063c-.196-1.049-.44-1.969.346-2.892z"/><path fill="#FFAC33" d="M23.398 1.983C21.945.282 19.863-.621 16.523.9c-1.361.62-1.971.391-2.165.663-.93 1.306.337 2.753.833 2.464 1.572-.917 2.99-.644 3.352.019s.028 1.854.321 1.862c.792.021.664-.755.977-1.202.514-.731 1.296-.318 1.467.496.136.645 0 1.741-1.054 1.934.717 1.577 2.136 2.058 2.136 2.058s.461.181 1.25-1.371c.789-1.554 1.201-4.151-.242-5.84z"/><path fill="#292F33" d="M20.666 32.225c-.937.204-1.397.837-1.522 1.423-.126.586.419 1.633.963 1.842s5.354.548 6.132-.078c1.162-.934-4.804-3.354-5.573-3.187z"/><path fill="#3A4449" d="M20.924 31.831c-.521.24-.593 1.505.045 2.283.721.879 2.524 1.26 3.455 1.51s2.442-.001 2.446-1.322c.004-1.115-1.452-1.429-2.145-1.46-.693-.031-1.505-.042-1.868-.464s-1.391-.796-1.933-.547z"/><path fill="#4289C1" d="M25.75 26.1c.655 2.154.529 4.598-1.058 5.452-1.52.818-4.71.946-4.71.946s-.905.89-.351 2.014c.315.639.649.921.58 1.007-.061.076-.748.153-1.053.214-.814.163-1.755.102-3.341.061s-2.272.113-3.998.076c-1.912-.041-3.344-.507-4.298-2.08-.814-1.343-.395-3.338 1.505-4.638 1.546-1.058 6.469-2.197 8.341-2.482 1.874-.285 7.814-2.441 8.383-.57z"/><path fill="#77B255" d="M26.377 25.554c-.057 1.128.391 2.499-.26 2.27-2.565-.9-9.188-.988-9.188-.988-.568-2.564-.037-6.416.008-9.956.059-4.645 3.148-7.192 5.082-6.61 2.528.761 3.689 3.387 4.016 7.511s.398 6.646.342 7.773z"/><path fill="#FFDC5D" d="M19.382 16.204c-.442 2.329-.227 6.078-.59 6.249-2.095.984-3.883 3.239-5.259 3.722-.997.349-1.992.55-2.42.928-.686.605-1.503 1.121-1.573 1.735-.072.623.645.847 1.896.323.919-.385 1.64-.333 2.461-.928 1.17-.847 5.832-1.399 7.596-4.008.595-.881 1.227-2.94 2.074-7.249-1.091-.449-4.185-.772-4.185-.772z"/><path fill="#2A6797" d="M11.429 32.448c.718.062 6.591.163 8.137.081 0 0 0 .57-1.505.651-1.505.081-4.516-.407-6.469-.244-.538.045-1.485.121-1.587-.041-.117-.185.924-.491 1.424-.447z"/></svg>
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#FFDC5D" d="M18.973 1.123c-1.849-.728-4.732.211-5.067 2.372-.333 2.145.278 5.51 2.162 5.306 1.976-.213 4.003-.643 4.803-2.677.802-2.034-.048-4.273-1.898-5.001z"/><path fill="#FFDC5D" d="M20.347 6.648c2.691-3.161-3.791-2.853-3.791-2.853-1.227.045-.383 2.089-.96 3.205-.396.772 1.271 1.182 1.271 1.182s.765-.011.806.917v.008c.009.236-.016.517-.126.892-.549 1.858 1.946 2.997 2.494 1.135.217-.737.133-1.385.023-1.983l-.01-.053c-.166-.889-.372-1.668.293-2.45z"/><path fill="#FFAC33" d="M21.086 1.869C19.855.428 18.091-.338 15.26.951c-1.153.525-1.67.331-1.834.561-.788 1.106.286 2.333.706 2.088 1.332-.777 2.534-.546 2.841.016.307.562.024 1.571.272 1.578.671.018.562-.64.828-1.019.435-.62 1.098-.269 1.243.42.115.546 0 1.475-.893 1.639.607 1.336 1.81 1.744 1.81 1.744s.391.154 1.059-1.162c.668-1.316 1.017-3.516-.206-4.947z"/><path fill="#77B255" d="M23.563 21.568c-.048.956.379 2.392-.173 2.198-2.174-.763-7.786-.837-7.786-.837-.482-2.173-.032-5.437.006-8.437.05-3.936 2.667-6.094 4.306-5.601 2.142.645 3.126 2.87 3.403 6.364.278 3.495.292 5.357.244 6.313z"/><path fill="#292F33" d="M25.935 32.82l1.062-1.377c.354-.458 1.05-.442 1.382.032.363.518 1.507 1.698 3.203 2.312.264.096.724.291-.165 1.082 0 0-1.048.797-5.627-.453M8.498 36h5.005c.241 0 .436-.195.436-.436v-.412c0-.452-.138-.894-.396-1.266l-.383-.553h-1.933l-1.89.522c-.769.213-1.295.922-1.275 1.72.006.236.199.425.436.425z"/><path fill="#2A6797" d="M17.337 25.683l-.311 7.133s-.156 2.994 3.033 2.936l6.844-.836s.505-1.75-.35-2.508l-4.933-.591c-.137-.016-.228-.149-.194-.282l1.579-5.122c.201-.652.548-2.06.603-2.735.034-.414-.195-.091-.185-.51l-6.397 1.838.311.677z"/><path fill="#4289C1" d="M19.208 21.379c-1.871-.051-7.328.63-7.328.63-2.677.629-2.034 4.537-2.034 4.537l.524 6.91s1.668.953 3.05 0l.929-6.91 4.066.048s6.825 1.359 5.158-5.252c0 .001-3.984.048-4.365.037z"/><path fill="#FFDC5D" d="M17.683 13.919c-.374 1.973-.192 5.151-.5 5.295-1.776.833-4.337 1.001-5.502 1.41-.844.296-.825.466-1.188.786-.581.513-1.273.95-1.333 1.47-.061.528.547.718 1.607.273.779-.326 1.389-.282 2.085-.786.991-.718 5.126.558 6.62-1.653.504-.746 1.04-2.491 1.757-6.143-.924-.378-3.546-.652-3.546-.652z"/></svg>
|
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 2.2 KiB |
|
@ -1 +1 @@
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#FFDC5D" d="M20.905 1.103c-2.182-.859-5.459.272-5.979 2.799-.726 3.526 1.288 6.513 3.513 6.273 2.332-.252 3.763-.769 4.708-3.17.943-2.4-.06-5.043-2.242-5.902z"/><path fill="#FFDC5D" d="M22.526 7.623c3.175-3.73-4.474-3.367-4.474-3.367-1.448.053-.451 2.465-1.133 3.782-.467.912 1.499 1.395 1.499 1.395s.903-.013.951 1.082v.01c.011.279-.018.61-.148 1.053-.648 2.192 2.297 3.537 2.944 1.34.256-.869.157-1.634.027-2.34l-.012-.063c-.196-1.049-.44-1.969.346-2.892z"/><path fill="#FFAC33" d="M23.65 1.859C22.573.402 18.961-.884 16.668.96c-1.588-.275-2.196 1.234-2.061 2.103.108.694 1.813.873 2.241 2.19.297-.33.376-1.007.312-1.369.543.523.306 1.896 2.442 2.793 2.064.867 1.7 2.69 1.7 2.69s1.087-.514 1.844-1.39c1.443-1.67 1.691-4.512.504-6.118z"/><path fill="#292F33" d="M20.666 32.225c-.937.204-1.397.837-1.522 1.423-.126.586.419 1.633.963 1.842s5.354.548 6.132-.078c1.162-.934-4.804-3.354-5.573-3.187z"/><path fill="#3A4449" d="M20.924 31.831c-.521.24-.593 1.505.045 2.283.721.879 2.524 1.26 3.455 1.51s2.442-.001 2.446-1.322c.004-1.115-1.452-1.429-2.145-1.46-.693-.031-1.505-.042-1.868-.464s-1.391-.796-1.933-.547z"/><path fill="#4289C1" d="M25.75 26.1c.655 2.154.529 4.598-1.058 5.452-1.52.818-4.71.946-4.71.946s-.905.89-.351 2.014c.315.639.649.921.58 1.007-.061.076-.748.153-1.053.214-.814.163-1.755.102-3.341.061s-2.272.113-3.998.076c-1.912-.041-3.344-.507-4.298-2.08-.814-1.343-.395-3.338 1.505-4.638 1.546-1.058 6.469-2.197 8.341-2.482 1.874-.285 7.814-2.441 8.383-.57z"/><path fill="#FA743E" d="M26.117 27.825c-2.565-.9-9.188-.988-9.188-.988.257-2.055.218-5.676-.002-9.362-.233-3.906 3.768-7.514 5.092-7.204 2.571.602 4.342 3.386 4.016 7.511-.469 5.926.733 10.271.082 10.043z"/><path fill="#FFDC5D" d="M19.799 16.252c-.442 2.329-.599 6.406-.962 6.577-2.095.984-3.927 2.864-5.303 3.346-.997.349-1.992.55-2.42.928-.686.605-1.503 1.121-1.573 1.735-.072.623.645.847 1.896.323.919-.385 1.64-.333 2.461-.928 1.17-.847 5.832-1.399 7.596-4.008.595-.881 1.227-2.94 2.074-7.249-1.092-.449-3.769-.724-3.769-.724z"/><path fill="#2A6797" d="M11.429 32.448c.718.062 6.591.163 8.137.081 0 0 0 .57-1.505.651-1.505.081-4.516-.407-6.469-.244-.538.045-1.485.121-1.587-.041-.117-.185.924-.491 1.424-.447z"/></svg>
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#FFDC5D" d="M19.321 1.07c-1.81-.712-4.528.226-4.96 2.322-.602 2.925 1.069 5.402 2.914 5.203 1.934-.209 3.121-.638 3.905-2.629.783-1.992-.049-4.184-1.859-4.896z"/><path fill="#FFDC5D" d="M20.665 6.478c2.634-3.094-3.711-2.792-3.711-2.792-1.201.044-.374 2.044-.939 3.137-.388.756 1.244 1.157 1.244 1.157s.749-.011.789.897v.008c.009.231-.015.506-.123.873-.538 1.819 1.905 2.934 2.442 1.111.212-.721.13-1.355.022-1.941l-.01-.052c-.163-.87-.365-1.633.286-2.398z"/><path fill="#FFAC33" d="M21.598 1.697c-.893-1.208-3.89-2.275-5.792-.746-1.317-.228-1.822 1.024-1.71 1.745.089.575 1.504.724 1.859 1.817.246-.274.312-.835.259-1.135.45.433.254 1.573 2.025 2.317 1.712.719 1.41 2.232 1.41 2.232s.902-.426 1.53-1.153c1.198-1.388 1.403-3.745.419-5.077z"/><path fill="#FA743E" d="M23.663 22.44c-.135.623-7.64 1.303-7.64 1.303.213-1.705.181-6.037-.002-9.094-.193-3.24 3.126-6.232 4.223-5.976 2.132.499 3.601 2.809 3.331 6.23-.388 4.917.151 7.245.088 7.537z"/><path fill="#292F33" d="M25.935 32.82l1.062-1.377c.354-.458 1.05-.442 1.382.032.363.518 1.507 1.698 3.203 2.312.264.096.724.291-.165 1.082 0 0-1.048.797-5.627-.453M8.498 36h5.005c.241 0 .436-.195.436-.436v-.412c0-.452-.138-.894-.396-1.266l-.383-.553h-1.933l-1.89.522c-.769.213-1.295.922-1.275 1.72.006.236.199.425.436.425z"/><path fill="#2A6797" d="M17.337 25.683l-.311 7.133s-.156 2.994 3.033 2.936l6.844-.836s.505-1.75-.35-2.508l-4.933-.591c-.137-.016-.228-.149-.194-.282l1.579-5.122c.201-.652.548-2.06.603-2.735.034-.414-.195-.091-.185-.51l-6.397 1.838.311.677z"/><path fill="#4289C1" d="M19.208 21.379c-1.871-.051-7.328.63-7.328.63-2.677.629-2.034 4.537-2.034 4.537l.524 6.91s1.668.953 3.05 0l.929-6.91 4.066.048s6.825 1.359 5.158-5.252c0 .001-3.984.048-4.365.037z"/><path fill="#FFDC5D" d="M18.404 13.635c-.366 1.931-.497 5.314-.798 5.455-1.738.816-3.258 1.323-4.399 1.723-.827.29-1.652.456-2.008.77-.569.502-1.246.93-1.305 1.439-.059.517.535.703 1.573.268.762-.32 1.36-.276 2.041-.77.97-.703 4.838-.108 6.3-2.272.494-.73 1.018-2.438 1.72-6.013-.904-.372-3.124-.6-3.124-.6z"/></svg>
|
Before Width: | Height: | Size: 2.2 KiB After Width: | Height: | Size: 2.1 KiB |
|
@ -1 +1 @@
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#FFAC33" d="M35.885 11.833c0-5.45-4.418-9.868-9.867-9.868-3.308 0-6.227 1.633-8.018 4.129-1.791-2.496-4.71-4.129-8.017-4.129-5.45 0-9.868 4.417-9.868 9.868 0 .772.098 1.52.266 2.241C1.751 22.587 11.216 31.568 18 34.034c6.783-2.466 16.249-11.447 17.617-19.959.17-.721.268-1.469.268-2.242z"/></svg>
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#F4900C" d="M35.885 11.833c0-5.45-4.418-9.868-9.867-9.868-3.308 0-6.227 1.633-8.018 4.129-1.791-2.496-4.71-4.129-8.017-4.129-5.45 0-9.868 4.417-9.868 9.868 0 .772.098 1.52.266 2.241C1.751 22.587 11.216 31.568 18 34.034c6.783-2.466 16.249-11.447 17.617-19.959.17-.721.268-1.469.268-2.242z"/></svg>
|
Before Width: | Height: | Size: 368 B After Width: | Height: | Size: 368 B |
|
@ -1 +1 @@
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#662113" d="M28 36H8c-1.65 0-3-1.35-3-3V5c0-1.65 1.35-3 3-3h20c1.65 0 3 1.35 3 3v28c0 1.65-1.35 3-3 3z"/><path fill="#C1694F" d="M28 34H8c-1.65 0-3-1.35-3-3V5c0-1.65 1.35-3 3-3h20c1.65 0 3 1.35 3 3v26c0 1.65-1.35 3-3 3z"/><path fill="#CCD6DD" d="M26 17H10c-1.654 0-3-1.346-3-3v-4c0-1.654 1.346-3 3-3h16c1.654 0 3 1.346 3 3v4c0 1.654-1.346 3-3 3zM10 9c-.551 0-1 .449-1 1v4c0 .551.449 1 1 1h16c.552 0 1-.449 1-1v-4c0-.551-.448-1-1-1H10z"/><path fill="#99AAB5" d="M26 17H10c-.55 0-1-.45-1-1s.45-1 1-1h16c.55 0 1 .45 1 1s-.45 1-1 1z"/><path fill="#FFF" d="M11 18c-.55 0-1-.45-1-1v-2c0-.55.45-1 1-1s1 .45 1 1v2c0 .55-.45 1-1 1zm4 0c-.55 0-1-.45-1-1v-2c0-.55.45-1 1-1s1 .45 1 1v2c0 .55-.45 1-1 1zm6 0c-.55 0-1-.45-1-1v-2c0-.55.45-1 1-1s1 .45 1 1v2c0 .55-.45 1-1 1zm4 0c-.55 0-1-.45-1-1v-2c0-.55.45-1 1-1s1 .45 1 1v2c0 .55-.45 1-1 1z"/><path fill="#E1E8ED" d="M26 9H10c-.552 0-1-.448-1-1s.448-1 1-1h16c.553 0 1 .448 1 1s-.447 1-1 1z"/><path fill="#FFF" d="M24 9H12c-.552 0-1-.448-1-1s.448-1 1-1h12c.553 0 1 .448 1 1s-.447 1-1 1z"/><path fill="#CCD6DD" d="M18 31.153c-.552 0-1-.447-1-1V3c-.012-.45-.195-1-1-1s-.988.55-1 1.012V5c0 .552-.448 1-1 1s-1-.448-1-1V3c0-1.206.799-3 3-3s3 1.794 3 3v27.153c0 .553-.448 1-1 1z"/><path fill="#99AAB5" d="M16 7h1v2h-1zm3 0h1v2h-1z"/><path fill="#F4900C" d="M18 35.651l-6-10.5v-3h12v3z"/><path fill="#FFCC4D" d="M18 32.651l-6-10.5s3-.886 6-.886 6 .886 6 .886l-6 10.5z"/><circle fill="#C1694F" cx="12.902" cy="27.098" r=".902"/><circle fill="#C1694F" cx="20.684" cy="30.684" r=".684"/><ellipse fill="#F4900C" cx="19.579" cy="25.211" rx="1.579" ry=".789"/><ellipse fill="#F4900C" cx="15.579" cy="28.211" rx="1.579" ry=".789"/><ellipse fill="#F4900C" cx="14.927" cy="23.487" rx=".927" ry=".513"/></svg>
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#662113" d="M24.833.089L0 11.655l12 17.431v.003h18.212L36 16.828z"/><path fill="#3D130C" d="M29.249 28.073H12.457l2.431-15.561h3.291z"/><path fill="#511212" d="M12.457 28.073L1.758 12.512h13.13l2.666 4.149z"/><path fill="#FFCC4D" d="M25.608 24.422l-12.364 5.522.78-1.581c.141.025.269.038.422.038.69 0 1.266-.301 1.266-.69 0-.339-.46-.615-1.048-.678l1.805-3.665c.602-.19 2.872-.405 5.918.163-.013.364.192.703.55.841.435.176.933-.025 1.125-.452.243.05.473.125.703.213l.843.289z"/><ellipse fill="#F4900C" cx="18.604" cy="24.424" rx="1.053" ry=".517"/><path fill="#F4900C" d="M15.716 27.706c0 .389-.574.697-1.27.697-.15 0-.287-.013-.423-.04l.642-1.327c.586.054 1.051.335 1.051.67zm10.097 2.238L13.244 35.09v-1.092c.627 0 1.138-.515 1.138-1.142 0-.615-.511-1.13-1.138-1.13v-1.782l12.364-5.522.077 2.033c-.153-.088-.32-.125-.511-.125-.639 0-1.151.502-1.151 1.13s.511 1.129 1.151 1.129c.217 0 .422-.063.588-.163l.051 1.518z"/><ellipse fill="#F4900C" cx="20.039" cy="27.023" rx="2.156" ry="1.058"/><path fill="#C1694F" d="M18.293 11.655H0L7.562.089h17.271z"/><g fill="#F98E00"><path d="M6.69 13.401h1.583V36H6.69z"/><path d="M7.485 12.842c-.874 0-1.582-.708-1.582-1.582V8.892c0-.409-.321-.73-.73-.73-.398 0-.73.321-.73.73v2.235c0 .83.343 1.593.885 2.147.553.542 1.317.885 2.158.885 1.093 0 2.045-.588 2.579-1.459H8.132c-.197.089-.415.142-.647.142z"/></g></svg>
|
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 1.4 KiB |
|
@ -17,6 +17,10 @@
|
||||||
along with Fernschreiber. If not, see <http://www.gnu.org/licenses/>.
|
along with Fernschreiber. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
.pragma library
|
||||||
|
.import "debug.js" as Debug
|
||||||
|
.import Sailfish.Silica 1.0 as Silica
|
||||||
|
|
||||||
function getUserName(userInformation) {
|
function getUserName(userInformation) {
|
||||||
var firstName = typeof userInformation.first_name !== "undefined" ? userInformation.first_name : "";
|
var firstName = typeof userInformation.first_name !== "undefined" ? userInformation.first_name : "";
|
||||||
var lastName = typeof userInformation.last_name !== "undefined" ? userInformation.last_name : "";
|
var lastName = typeof userInformation.last_name !== "undefined" ? userInformation.last_name : "";
|
||||||
|
@ -194,7 +198,7 @@ function getShortenedCount(count) {
|
||||||
}
|
}
|
||||||
|
|
||||||
function getDateTimeElapsed(timestamp) {
|
function getDateTimeElapsed(timestamp) {
|
||||||
return Format.formatDate(new Date(timestamp * 1000), Formatter.DurationElapsed);
|
return Silica.Format.formatDate(new Date(timestamp * 1000), Silica.Formatter.DurationElapsed);
|
||||||
}
|
}
|
||||||
|
|
||||||
function getDateTimeTranslated(timestamp) {
|
function getDateTimeTranslated(timestamp) {
|
||||||
|
@ -344,7 +348,7 @@ function handleLink(link) {
|
||||||
} else if (link.indexOf("userId://") === 0) {
|
} else if (link.indexOf("userId://") === 0) {
|
||||||
tdLibWrapper.createPrivateChat(link.substring(9));
|
tdLibWrapper.createPrivateChat(link.substring(9));
|
||||||
} else if (link.indexOf("tg://") === 0) {
|
} else if (link.indexOf("tg://") === 0) {
|
||||||
console.log("Special TG link: " + link);
|
Debug.log("Special TG link: ", link);
|
||||||
if (link.indexOf("tg://join?invite=") === 0) {
|
if (link.indexOf("tg://join?invite=") === 0) {
|
||||||
tdLibWrapper.joinChatByInviteLink(tMePrefix + "joinchat/" + link.substring(17));
|
tdLibWrapper.joinChatByInviteLink(tMePrefix + "joinchat/" + link.substring(17));
|
||||||
} else if (link.indexOf("tg://resolve?domain=") === 0) {
|
} else if (link.indexOf("tg://resolve?domain=") === 0) {
|
||||||
|
@ -353,12 +357,12 @@ function handleLink(link) {
|
||||||
} else {
|
} else {
|
||||||
if (link.indexOf(tMePrefix) === 0) {
|
if (link.indexOf(tMePrefix) === 0) {
|
||||||
if (link.indexOf("joinchat") !== -1) {
|
if (link.indexOf("joinchat") !== -1) {
|
||||||
console.log("Joining Chat: " + link);
|
Debug.log("Joining Chat: ", link);
|
||||||
tdLibWrapper.joinChatByInviteLink(link);
|
tdLibWrapper.joinChatByInviteLink(link);
|
||||||
// Do the necessary stuff to open the chat if successful
|
// Do the necessary stuff to open the chat if successful
|
||||||
// Fail with nice error message if it doesn't work
|
// Fail with nice error message if it doesn't work
|
||||||
} else {
|
} else {
|
||||||
console.log("Search public chat: " + link.substring(tMePrefix.length));
|
Debug.log("Search public chat: ", link.substring(tMePrefix.length));
|
||||||
tdLibWrapper.searchPublicChat(link.substring(tMePrefix.length));
|
tdLibWrapper.searchPublicChat(link.substring(tMePrefix.length));
|
||||||
// Check responses for updateBasicGroup or updateSupergroup
|
// Check responses for updateBasicGroup or updateSupergroup
|
||||||
// Fire createBasicGroupChat or createSupergroupChat
|
// Fire createBasicGroupChat or createSupergroupChat
|
||||||
|
|
|
@ -22,6 +22,7 @@ import "../components"
|
||||||
import "../components/chatInformationPage"
|
import "../components/chatInformationPage"
|
||||||
import "../js/twemoji.js" as Emoji
|
import "../js/twemoji.js" as Emoji
|
||||||
import "../js/functions.js" as Functions
|
import "../js/functions.js" as Functions
|
||||||
|
import "../js/debug.js" as Debug
|
||||||
|
|
||||||
Page {
|
Page {
|
||||||
id: chatInformationPage
|
id: chatInformationPage
|
||||||
|
@ -59,7 +60,7 @@ Page {
|
||||||
onStatusChanged: {
|
onStatusChanged: {
|
||||||
switch(status) {
|
switch(status) {
|
||||||
case PageStatus.Activating:
|
case PageStatus.Activating:
|
||||||
console.log("activating Loader")
|
Debug.log("activating Loader")
|
||||||
mainContentLoader.active = true
|
mainContentLoader.active = true
|
||||||
break;
|
break;
|
||||||
case PageStatus.Active:
|
case PageStatus.Active:
|
||||||
|
|
|
@ -23,6 +23,7 @@ import Sailfish.Pickers 1.0
|
||||||
import Nemo.Thumbnailer 1.0
|
import Nemo.Thumbnailer 1.0
|
||||||
import WerkWolf.Fernschreiber 1.0
|
import WerkWolf.Fernschreiber 1.0
|
||||||
import "../components"
|
import "../components"
|
||||||
|
import "../js/debug.js" as Debug
|
||||||
import "../js/twemoji.js" as Emoji
|
import "../js/twemoji.js" as Emoji
|
||||||
import "../js/functions.js" as Functions
|
import "../js/functions.js" as Functions
|
||||||
|
|
||||||
|
@ -133,7 +134,7 @@ Page {
|
||||||
}
|
}
|
||||||
|
|
||||||
function initializePage() {
|
function initializePage() {
|
||||||
console.log("[ChatPage] Initializing chat page...");
|
Debug.log("[ChatPage] Initializing chat page...");
|
||||||
chatView.currentIndex = -1;
|
chatView.currentIndex = -1;
|
||||||
chatView.lastReadSentIndex = 0;
|
chatView.lastReadSentIndex = 0;
|
||||||
var chatType = chatInformation.type['@type'];
|
var chatType = chatInformation.type['@type'];
|
||||||
|
@ -154,13 +155,13 @@ Page {
|
||||||
updateGroupStatusText();
|
updateGroupStatusText();
|
||||||
}
|
}
|
||||||
if (stickerManager.needsReload()) {
|
if (stickerManager.needsReload()) {
|
||||||
console.log("[ChatPage] Stickers will be reloaded!");
|
Debug.log("[ChatPage] Stickers will be reloaded!");
|
||||||
tdLibWrapper.getRecentStickers();
|
tdLibWrapper.getRecentStickers();
|
||||||
tdLibWrapper.getInstalledStickerSets();
|
tdLibWrapper.getInstalledStickerSets();
|
||||||
stickerManager.setNeedsReload(false);
|
stickerManager.setNeedsReload(false);
|
||||||
}
|
}
|
||||||
if (chatInformation.pinned_message_id.toString() !== "0") {
|
if (chatInformation.pinned_message_id.toString() !== "0") {
|
||||||
console.log("[ChatPage] Loading pinned message " + chatInformation.pinned_message_id);
|
Debug.log("[ChatPage] Loading pinned message ", chatInformation.pinned_message_id);
|
||||||
tdLibWrapper.getMessage(chatInformation.id, chatInformation.pinned_message_id);
|
tdLibWrapper.getMessage(chatInformation.id, chatInformation.pinned_message_id);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -292,28 +293,28 @@ Page {
|
||||||
|| (groupStatusType === "chatMemberStatusRestricted" && groupStatus.permissions[privilege])
|
|| (groupStatusType === "chatMemberStatusRestricted" && groupStatus.permissions[privilege])
|
||||||
}
|
}
|
||||||
function canPinMessages() {
|
function canPinMessages() {
|
||||||
console.log("Can we pin messages?");
|
Debug.log("Can we pin messages?");
|
||||||
if (chatPage.isPrivateChat) {
|
if (chatPage.isPrivateChat) {
|
||||||
console.log("Private Chat: No!");
|
Debug.log("Private Chat: No!");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if (chatPage.chatGroupInformation.status["@type"] === "chatMemberStatusCreator") {
|
if (chatPage.chatGroupInformation.status["@type"] === "chatMemberStatusCreator") {
|
||||||
console.log("Creator of this chat: Yes!");
|
Debug.log("Creator of this chat: Yes!");
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
if (chatPage.chatInformation.permissions.can_pin_messages) {
|
if (chatPage.chatInformation.permissions.can_pin_messages) {
|
||||||
console.log("All people can pin: Yes!");
|
Debug.log("All people can pin: Yes!");
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
if (chatPage.chatGroupInformation.status["@type"] === "chatMemberStatusAdministrator") {
|
if (chatPage.chatGroupInformation.status["@type"] === "chatMemberStatusAdministrator") {
|
||||||
console.log("Admin with privileges? " + chatPage.chatGroupInformation.status.can_pin_messages);
|
Debug.log("Admin with privileges? ", chatPage.chatGroupInformation.status.can_pin_messages);
|
||||||
return chatPage.chatGroupInformation.status.can_pin_messages;
|
return chatPage.chatGroupInformation.status.can_pin_messages;
|
||||||
}
|
}
|
||||||
if (chatPage.chatGroupInformation.status["@type"] === "chatMemberStatusRestricted") {
|
if (chatPage.chatGroupInformation.status["@type"] === "chatMemberStatusRestricted") {
|
||||||
console.log("Restricted, but can pin messages? " + chatPage.chatGroupInformation.status.permissions.can_pin_messages);
|
Debug.log("Restricted, but can pin messages? ", chatPage.chatGroupInformation.status.permissions.can_pin_messages);
|
||||||
return chatPage.chatGroupInformation.status.permissions.can_pin_messages;
|
return chatPage.chatGroupInformation.status.permissions.can_pin_messages;
|
||||||
}
|
}
|
||||||
console.log("Something else: No!");
|
Debug.log("Something else: No!");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -384,7 +385,7 @@ Page {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
onChatOnlineMemberCountUpdated: {
|
onChatOnlineMemberCountUpdated: {
|
||||||
console.log(isSuperGroup + "/" + isBasicGroup + "/" + chatInformation.id.toString() + "/" + chatId);
|
Debug.log(isSuperGroup, "/", isBasicGroup, "/", chatInformation.id.toString(), "/", chatId);
|
||||||
if ((isSuperGroup || isBasicGroup) && chatInformation.id.toString() === chatId) {
|
if ((isSuperGroup || isBasicGroup) && chatInformation.id.toString() === chatId) {
|
||||||
chatOnlineMemberCount = onlineMemberCount;
|
chatOnlineMemberCount = onlineMemberCount;
|
||||||
updateGroupStatusText();
|
updateGroupStatusText();
|
||||||
|
@ -405,7 +406,7 @@ Page {
|
||||||
}
|
}
|
||||||
onReceivedMessage: {
|
onReceivedMessage: {
|
||||||
if (messageId === chatInformation.pinned_message_id.toString()) {
|
if (messageId === chatInformation.pinned_message_id.toString()) {
|
||||||
console.log("[ChatPage] Received pinned message");
|
Debug.log("[ChatPage] Received pinned message");
|
||||||
pinnedMessageItem.pinnedMessage = message;
|
pinnedMessageItem.pinnedMessage = message;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -414,11 +415,11 @@ Page {
|
||||||
Connections {
|
Connections {
|
||||||
target: chatModel
|
target: chatModel
|
||||||
onMessagesReceived: {
|
onMessagesReceived: {
|
||||||
console.log("[ChatPage] Messages received, view has " + chatView.count + " messages, setting view to index " + modelIndex + ", own messages were read before index " + lastReadSentIndex);
|
Debug.log("[ChatPage] Messages received, view has ", chatView.count, " messages, setting view to index ", modelIndex, ", own messages were read before index ", lastReadSentIndex);
|
||||||
if (totalCount === 0) {
|
if (totalCount === 0) {
|
||||||
if (chatPage.iterativeInitialization) {
|
if (chatPage.iterativeInitialization) {
|
||||||
chatPage.iterativeInitialization = false;
|
chatPage.iterativeInitialization = false;
|
||||||
console.log("[ChatPage] actually, skipping that: No Messages in Chat.");
|
Debug.log("[ChatPage] actually, skipping that: No Messages in Chat.");
|
||||||
chatView.positionViewAtEnd();
|
chatView.positionViewAtEnd();
|
||||||
chatPage.loading = false;
|
chatPage.loading = false;
|
||||||
return;
|
return;
|
||||||
|
@ -436,28 +437,28 @@ Page {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (chatView.height > chatView.contentHeight) {
|
if (chatView.height > chatView.contentHeight) {
|
||||||
console.log("[ChatPage] Chat content quite small...");
|
Debug.log("[ChatPage] Chat content quite small...");
|
||||||
viewMessageTimer.queueViewMessage(chatView.count - 1);
|
viewMessageTimer.queueViewMessage(chatView.count - 1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
onNewMessageReceived: {
|
onNewMessageReceived: {
|
||||||
if (chatView.manuallyScrolledToBottom || message.sender_user_id === chatPage.myUserId) {
|
if (chatView.manuallyScrolledToBottom || message.sender_user_id === chatPage.myUserId) {
|
||||||
console.log("[ChatPage] Own message received or was scrolled to bottom, scrolling down to see it...");
|
Debug.log("[ChatPage] Own message received or was scrolled to bottom, scrolling down to see it...");
|
||||||
chatView.scrollToIndex(chatView.count - 1);
|
chatView.scrollToIndex(chatView.count - 1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
onUnreadCountUpdated: {
|
onUnreadCountUpdated: {
|
||||||
console.log("[ChatPage] Unread count updated, new count: " + unreadCount);
|
Debug.log("[ChatPage] Unread count updated, new count: ", unreadCount);
|
||||||
chatInformation.unread_count = unreadCount;
|
chatInformation.unread_count = unreadCount;
|
||||||
chatUnreadMessagesCountBackground.visible = ( !chatPage.loading && unreadCount > 0 );
|
chatUnreadMessagesCountBackground.visible = ( !chatPage.loading && unreadCount > 0 );
|
||||||
chatUnreadMessagesCount.text = unreadCount > 99 ? "99+" : unreadCount;
|
chatUnreadMessagesCount.text = unreadCount > 99 ? "99+" : unreadCount;
|
||||||
}
|
}
|
||||||
onLastReadSentMessageUpdated: {
|
onLastReadSentMessageUpdated: {
|
||||||
console.log("[ChatPage] Updating last read sent index, new index: " + lastReadSentIndex);
|
Debug.log("[ChatPage] Updating last read sent index, new index: ", lastReadSentIndex);
|
||||||
chatView.lastReadSentIndex = lastReadSentIndex;
|
chatView.lastReadSentIndex = lastReadSentIndex;
|
||||||
}
|
}
|
||||||
onMessagesIncrementalUpdate: {
|
onMessagesIncrementalUpdate: {
|
||||||
console.log("Incremental update received. View now has " + chatView.count + " messages, view is on index " + modelIndex + ", own messages were read before index " + lastReadSentIndex);
|
Debug.log("Incremental update received. View now has ", chatView.count, " messages, view is on index ", modelIndex, ", own messages were read before index ", lastReadSentIndex);
|
||||||
chatView.lastReadSentIndex = lastReadSentIndex;
|
chatView.lastReadSentIndex = lastReadSentIndex;
|
||||||
chatViewCooldownTimer.start();
|
chatViewCooldownTimer.start();
|
||||||
}
|
}
|
||||||
|
@ -468,7 +469,7 @@ Page {
|
||||||
onPinnedMessageChanged: {
|
onPinnedMessageChanged: {
|
||||||
chatInformation = chatModel.getChatInformation();
|
chatInformation = chatModel.getChatInformation();
|
||||||
if (chatInformation.pinned_message_id.toString() !== "0") {
|
if (chatInformation.pinned_message_id.toString() !== "0") {
|
||||||
console.log("[ChatPage] Loading pinned message " + chatInformation.pinned_message_id);
|
Debug.log("[ChatPage] Loading pinned message ", chatInformation.pinned_message_id);
|
||||||
tdLibWrapper.getMessage(chatInformation.id, chatInformation.pinned_message_id);
|
tdLibWrapper.getMessage(chatInformation.id, chatInformation.pinned_message_id);
|
||||||
} else {
|
} else {
|
||||||
pinnedMessageItem.pinnedMessage = undefined;
|
pinnedMessageItem.pinnedMessage = undefined;
|
||||||
|
@ -603,15 +604,15 @@ Page {
|
||||||
Row {
|
Row {
|
||||||
id: headerRow
|
id: headerRow
|
||||||
width: parent.width - (3 * Theme.horizontalPageMargin)
|
width: parent.width - (3 * Theme.horizontalPageMargin)
|
||||||
height: chatOverviewColumn.height + ( chatPage.isPortrait ? (2 * Theme.paddingMedium) : (2 * Theme.paddingSmall) )
|
height: chatOverviewItem.height + ( chatPage.isPortrait ? (2 * Theme.paddingMedium) : (2 * Theme.paddingSmall) )
|
||||||
anchors.horizontalCenter: parent.horizontalCenter
|
anchors.horizontalCenter: parent.horizontalCenter
|
||||||
spacing: Theme.paddingMedium
|
spacing: Theme.paddingMedium
|
||||||
|
|
||||||
ProfileThumbnail {
|
ProfileThumbnail {
|
||||||
id: chatPictureThumbnail
|
id: chatPictureThumbnail
|
||||||
replacementStringHint: chatNameText.text
|
replacementStringHint: chatNameText.text
|
||||||
width: chatOverviewColumn.height
|
width: chatOverviewItem.height
|
||||||
height: chatOverviewColumn.height
|
height: chatOverviewItem.height
|
||||||
anchors.bottom: parent.bottom
|
anchors.bottom: parent.bottom
|
||||||
anchors.bottomMargin: chatPage.isPortrait ? Theme.paddingMedium : Theme.paddingSmall
|
anchors.bottomMargin: chatPage.isPortrait ? Theme.paddingMedium : Theme.paddingSmall
|
||||||
|
|
||||||
|
@ -626,34 +627,38 @@ Page {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Column {
|
Item {
|
||||||
id: chatOverviewColumn
|
id: chatOverviewItem
|
||||||
width: parent.width - chatPictureThumbnail.width - Theme.paddingMedium
|
width: parent.width - chatPictureThumbnail.width - Theme.paddingMedium
|
||||||
|
height: chatNameText.height + chatStatusText.height
|
||||||
anchors.bottom: parent.bottom
|
anchors.bottom: parent.bottom
|
||||||
anchors.bottomMargin: chatPage.isPortrait ? Theme.paddingMedium : Theme.paddingSmall
|
anchors.bottomMargin: chatPage.isPortrait ? Theme.paddingMedium : Theme.paddingSmall
|
||||||
Text {
|
Label {
|
||||||
id: chatNameText
|
id: chatNameText
|
||||||
|
width: Math.min(implicitWidth, parent.width)
|
||||||
|
anchors.right: parent.right
|
||||||
text: chatInformation.title !== "" ? Emoji.emojify(chatInformation.title, font.pixelSize) : qsTr("Unknown")
|
text: chatInformation.title !== "" ? Emoji.emojify(chatInformation.title, font.pixelSize) : qsTr("Unknown")
|
||||||
textFormat: Text.StyledText
|
textFormat: Text.StyledText
|
||||||
font.pixelSize: chatPage.isPortrait ? Theme.fontSizeLarge : Theme.fontSizeMedium
|
font.pixelSize: chatPage.isPortrait ? Theme.fontSizeLarge : Theme.fontSizeMedium
|
||||||
font.family: Theme.fontFamilyHeading
|
font.family: Theme.fontFamilyHeading
|
||||||
color: Theme.highlightColor
|
color: Theme.highlightColor
|
||||||
elide: Text.ElideRight
|
truncationMode: TruncationMode.Fade
|
||||||
width: parent.width
|
|
||||||
maximumLineCount: 1
|
maximumLineCount: 1
|
||||||
horizontalAlignment: Text.AlignRight
|
|
||||||
}
|
}
|
||||||
Text {
|
Label {
|
||||||
id: chatStatusText
|
id: chatStatusText
|
||||||
|
width: Math.min(implicitWidth, parent.width)
|
||||||
|
anchors {
|
||||||
|
right: parent.right
|
||||||
|
bottom: parent.bottom
|
||||||
|
}
|
||||||
text: ""
|
text: ""
|
||||||
textFormat: Text.StyledText
|
textFormat: Text.StyledText
|
||||||
font.pixelSize: chatPage.isPortrait ? Theme.fontSizeExtraSmall : Theme.fontSizeTiny
|
font.pixelSize: chatPage.isPortrait ? Theme.fontSizeExtraSmall : Theme.fontSizeTiny
|
||||||
font.family: Theme.fontFamilyHeading
|
font.family: Theme.fontFamilyHeading
|
||||||
color: headerMouseArea.pressed ? Theme.secondaryHighlightColor : Theme.secondaryColor
|
color: headerMouseArea.pressed ? Theme.secondaryHighlightColor : Theme.secondaryColor
|
||||||
elide: Text.ElideRight
|
truncationMode: TruncationMode.Fade
|
||||||
width: parent.width
|
|
||||||
maximumLineCount: 1
|
maximumLineCount: 1
|
||||||
horizontalAlignment: Text.AlignRight
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -693,7 +698,7 @@ Page {
|
||||||
repeat: false
|
repeat: false
|
||||||
running: false
|
running: false
|
||||||
onTriggered: {
|
onTriggered: {
|
||||||
console.log("[ChatPage] Cooldown completed...");
|
Debug.log("[ChatPage] Cooldown completed...");
|
||||||
chatView.inCooldown = false;
|
chatView.inCooldown = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -743,7 +748,7 @@ Page {
|
||||||
}
|
}
|
||||||
|
|
||||||
function handleScrollPositionChanged() {
|
function handleScrollPositionChanged() {
|
||||||
console.log("Current position: " + chatView.contentY);
|
Debug.log("Current position: ", chatView.contentY);
|
||||||
if (chatInformation.unread_count > 0) {
|
if (chatInformation.unread_count > 0) {
|
||||||
var bottomIndex = chatView.indexAt(chatView.contentX, ( chatView.contentY + chatView.height - Theme.horizontalPageMargin ));
|
var bottomIndex = chatView.indexAt(chatView.contentX, ( chatView.contentY + chatView.height - Theme.horizontalPageMargin ));
|
||||||
if (bottomIndex > -1) {
|
if (bottomIndex > -1) {
|
||||||
|
@ -766,11 +771,11 @@ Page {
|
||||||
onContentYChanged: {
|
onContentYChanged: {
|
||||||
if (!chatPage.loading && !chatView.inCooldown) {
|
if (!chatPage.loading && !chatView.inCooldown) {
|
||||||
if (chatView.indexAt(chatView.contentX, chatView.contentY) < 10) {
|
if (chatView.indexAt(chatView.contentX, chatView.contentY) < 10) {
|
||||||
console.log("[ChatPage] Trying to get older history items...");
|
Debug.log("[ChatPage] Trying to get older history items...");
|
||||||
chatView.inCooldown = true;
|
chatView.inCooldown = true;
|
||||||
chatModel.triggerLoadMoreHistory();
|
chatModel.triggerLoadMoreHistory();
|
||||||
} else if (chatView.indexAt(chatView.contentX, chatView.contentY) > ( count - 10)) {
|
} else if (chatView.indexAt(chatView.contentX, chatView.contentY) > ( count - 10)) {
|
||||||
console.log("[ChatPage] Trying to get newer history items...");
|
Debug.log("[ChatPage] Trying to get newer history items...");
|
||||||
chatView.inCooldown = true;
|
chatView.inCooldown = true;
|
||||||
chatModel.triggerLoadMoreFuture();
|
chatModel.triggerLoadMoreFuture();
|
||||||
}
|
}
|
||||||
|
@ -995,7 +1000,7 @@ Page {
|
||||||
var picker = pageStack.push("Sailfish.Pickers.ImagePickerPage");
|
var picker = pageStack.push("Sailfish.Pickers.ImagePickerPage");
|
||||||
picker.selectedContentPropertiesChanged.connect(function(){
|
picker.selectedContentPropertiesChanged.connect(function(){
|
||||||
attachmentOptionsRow.visible = false;
|
attachmentOptionsRow.visible = false;
|
||||||
console.log("Selected document: " + picker.selectedContentProperties.filePath );
|
Debug.log("Selected document: ", picker.selectedContentProperties.filePath );
|
||||||
attachmentPreviewRow.fileProperties = picker.selectedContentProperties;
|
attachmentPreviewRow.fileProperties = picker.selectedContentProperties;
|
||||||
attachmentPreviewRow.isPicture = true;
|
attachmentPreviewRow.isPicture = true;
|
||||||
attachmentPreviewRow.visible = true;
|
attachmentPreviewRow.visible = true;
|
||||||
|
@ -1010,7 +1015,7 @@ Page {
|
||||||
var picker = pageStack.push("Sailfish.Pickers.VideoPickerPage");
|
var picker = pageStack.push("Sailfish.Pickers.VideoPickerPage");
|
||||||
picker.selectedContentPropertiesChanged.connect(function(){
|
picker.selectedContentPropertiesChanged.connect(function(){
|
||||||
attachmentOptionsRow.visible = false;
|
attachmentOptionsRow.visible = false;
|
||||||
console.log("Selected video: " + picker.selectedContentProperties.filePath );
|
Debug.log("Selected video: ", picker.selectedContentProperties.filePath );
|
||||||
attachmentPreviewRow.fileProperties = picker.selectedContentProperties;
|
attachmentPreviewRow.fileProperties = picker.selectedContentProperties;
|
||||||
attachmentPreviewRow.isVideo = true;
|
attachmentPreviewRow.isVideo = true;
|
||||||
attachmentPreviewRow.visible = true;
|
attachmentPreviewRow.visible = true;
|
||||||
|
@ -1025,7 +1030,7 @@ Page {
|
||||||
var picker = pageStack.push("Sailfish.Pickers.DocumentPickerPage");
|
var picker = pageStack.push("Sailfish.Pickers.DocumentPickerPage");
|
||||||
picker.selectedContentPropertiesChanged.connect(function(){
|
picker.selectedContentPropertiesChanged.connect(function(){
|
||||||
attachmentOptionsRow.visible = false;
|
attachmentOptionsRow.visible = false;
|
||||||
console.log("Selected document: " + picker.selectedContentProperties.filePath );
|
Debug.log("Selected document: ", picker.selectedContentProperties.filePath );
|
||||||
attachmentPreviewRow.fileProperties = picker.selectedContentProperties;
|
attachmentPreviewRow.fileProperties = picker.selectedContentProperties;
|
||||||
attachmentPreviewRow.isDocument = true;
|
attachmentPreviewRow.isDocument = true;
|
||||||
attachmentPreviewRow.visible = true;
|
attachmentPreviewRow.visible = true;
|
||||||
|
@ -1093,14 +1098,14 @@ Page {
|
||||||
visible: attachmentPreviewRow.isPicture || attachmentPreviewRow.isVideo
|
visible: attachmentPreviewRow.isPicture || attachmentPreviewRow.isVideo
|
||||||
}
|
}
|
||||||
|
|
||||||
Text {
|
Label {
|
||||||
id: attachmentPreviewText
|
id: attachmentPreviewText
|
||||||
font.pixelSize: Theme.fontSizeSmall
|
font.pixelSize: Theme.fontSizeSmall
|
||||||
text: typeof attachmentPreviewRow.fileProperties !== "undefined" ? attachmentPreviewRow.fileProperties.fileName || "" : "";
|
text: typeof attachmentPreviewRow.fileProperties !== "undefined" ? attachmentPreviewRow.fileProperties.fileName || "" : "";
|
||||||
anchors.verticalCenter: parent.verticalCenter
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
|
|
||||||
maximumLineCount: 1
|
maximumLineCount: 1
|
||||||
elide: Text.ElideRight
|
truncationMode: TruncationMode.Fade
|
||||||
color: Theme.secondaryColor
|
color: Theme.secondaryColor
|
||||||
visible: attachmentPreviewRow.isDocument
|
visible: attachmentPreviewRow.isDocument
|
||||||
}
|
}
|
||||||
|
|
|
@ -120,15 +120,14 @@ CoverBackground {
|
||||||
color: Theme.primaryColor
|
color: Theme.primaryColor
|
||||||
text: Functions.getShortenedCount(coverPage.unreadMessages)
|
text: Functions.getShortenedCount(coverPage.unreadMessages)
|
||||||
}
|
}
|
||||||
Text {
|
Label {
|
||||||
id: unreadMessagesText
|
id: unreadMessagesText
|
||||||
font.pixelSize: Theme.fontSizeSmall
|
font.pixelSize: Theme.fontSizeSmall
|
||||||
color: Theme.primaryColor
|
|
||||||
width: parent.width - unreadMessagesCountText.width - Theme.paddingMedium
|
width: parent.width - unreadMessagesCountText.width - Theme.paddingMedium
|
||||||
wrapMode: Text.Wrap
|
wrapMode: Text.Wrap
|
||||||
anchors.verticalCenter: unreadMessagesCountText.verticalCenter
|
anchors.verticalCenter: unreadMessagesCountText.verticalCenter
|
||||||
maximumLineCount: 2
|
maximumLineCount: 2
|
||||||
elide: Text.ElideRight
|
truncationMode: TruncationMode.Fade
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -20,6 +20,7 @@ import QtQuick 2.6
|
||||||
import Sailfish.Silica 1.0
|
import Sailfish.Silica 1.0
|
||||||
import "../components"
|
import "../components"
|
||||||
import "../js/functions.js" as Functions
|
import "../js/functions.js" as Functions
|
||||||
|
import "../js/debug.js" as Debug
|
||||||
|
|
||||||
Page {
|
Page {
|
||||||
id: imagePage
|
id: imagePage
|
||||||
|
@ -73,7 +74,7 @@ Page {
|
||||||
target: tdLibWrapper
|
target: tdLibWrapper
|
||||||
onFileUpdated: {
|
onFileUpdated: {
|
||||||
if (fileId === imagePage.pictureFileInformation.id) {
|
if (fileId === imagePage.pictureFileInformation.id) {
|
||||||
console.log("File updated, completed? " + fileInformation.local.is_downloading_completed);
|
Debug.log("File updated, completed? ", fileInformation.local.is_downloading_completed);
|
||||||
if (fileInformation.local.is_downloading_completed) {
|
if (fileInformation.local.is_downloading_completed) {
|
||||||
imagePage.pictureFileInformation = fileInformation;
|
imagePage.pictureFileInformation = fileInformation;
|
||||||
imagePage.imageUrl = fileInformation.local.path;
|
imagePage.imageUrl = fileInformation.local.path;
|
||||||
|
|
|
@ -23,6 +23,7 @@ import WerkWolf.Fernschreiber 1.0
|
||||||
import "../components"
|
import "../components"
|
||||||
import "../js/twemoji.js" as Emoji
|
import "../js/twemoji.js" as Emoji
|
||||||
import "../js/functions.js" as Functions
|
import "../js/functions.js" as Functions
|
||||||
|
import "../js/debug.js" as Debug
|
||||||
|
|
||||||
Page {
|
Page {
|
||||||
id: overviewPage
|
id: overviewPage
|
||||||
|
@ -44,14 +45,14 @@ Page {
|
||||||
Connections {
|
Connections {
|
||||||
target: dBusAdaptor
|
target: dBusAdaptor
|
||||||
onPleaseOpenMessage: {
|
onPleaseOpenMessage: {
|
||||||
console.log("[OverviewPage] Opening chat from external call...")
|
Debug.log("[OverviewPage] Opening chat from external call...")
|
||||||
if (chatListCreated) {
|
if (chatListCreated) {
|
||||||
pageStack.pop(overviewPage, PageStackAction.Immediate)
|
pageStack.pop(overviewPage, PageStackAction.Immediate)
|
||||||
pageStack.push(Qt.resolvedUrl("../pages/ChatPage.qml"), { "chatInformation" : chatListModel.getById(chatId) }, PageStackAction.Immediate)
|
pageStack.push(Qt.resolvedUrl("../pages/ChatPage.qml"), { "chatInformation" : chatListModel.getById(chatId) }, PageStackAction.Immediate)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
onPleaseOpenUrl: {
|
onPleaseOpenUrl: {
|
||||||
console.log("[OverviewPage] Opening URL requested: " + url);
|
Debug.log("[OverviewPage] Opening URL requested: ", url);
|
||||||
Functions.handleLink(url);
|
Functions.handleLink(url);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -21,6 +21,7 @@ import Sailfish.Silica 1.0
|
||||||
import "../components"
|
import "../components"
|
||||||
import "../js/functions.js" as Functions
|
import "../js/functions.js" as Functions
|
||||||
import "../js/twemoji.js" as Emoji
|
import "../js/twemoji.js" as Emoji
|
||||||
|
import "../js/debug.js" as Debug
|
||||||
|
|
||||||
Page {
|
Page {
|
||||||
id: pollResultsPage
|
id: pollResultsPage
|
||||||
|
@ -146,7 +147,6 @@ Page {
|
||||||
if(extra === optionDelegate.usersResponseIdentifierString) {
|
if(extra === optionDelegate.usersResponseIdentifierString) {
|
||||||
for(var i = 0; i < userIds.length; i += 1) {
|
for(var i = 0; i < userIds.length; i += 1) {
|
||||||
optionDelegate.users.append({id: userIds[i], user:tdLibWrapper.getUserInformation(userIds[i])});
|
optionDelegate.users.append({id: userIds[i], user:tdLibWrapper.getUserInformation(userIds[i])});
|
||||||
console.log("APPEND USER", JSON.stringify({id: userIds[i], user:tdLibWrapper.getUserInformation(userIds[i])}));
|
|
||||||
}
|
}
|
||||||
loadUsersTimer.start();
|
loadUsersTimer.start();
|
||||||
}
|
}
|
||||||
|
|
|
@ -16,9 +16,9 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "appsettings.h"
|
#include "appsettings.h"
|
||||||
#include <QDebug>
|
|
||||||
|
|
||||||
#define LOG(x) qDebug() << "[AppSettings]" << x
|
#define DEBUG_MODULE AppSettings
|
||||||
|
#include "debuglog.h"
|
||||||
|
|
||||||
namespace {
|
namespace {
|
||||||
const QString KEY_SEND_BY_ENTER("sendByEnter");
|
const QString KEY_SEND_BY_ENTER("sendByEnter");
|
||||||
|
|
|
@ -19,9 +19,9 @@
|
||||||
|
|
||||||
#include "chatlistmodel.h"
|
#include "chatlistmodel.h"
|
||||||
#include "fernschreiberutils.h"
|
#include "fernschreiberutils.h"
|
||||||
#include <QDebug>
|
|
||||||
|
|
||||||
#define LOG(x) qDebug() << "[ChatListModel]" << x
|
#define DEBUG_MODULE ChatListModel
|
||||||
|
#include "debuglog.h"
|
||||||
|
|
||||||
namespace {
|
namespace {
|
||||||
const QString ID("id");
|
const QString ID("id");
|
||||||
|
|
|
@ -22,9 +22,9 @@
|
||||||
#include <QListIterator>
|
#include <QListIterator>
|
||||||
#include <QByteArray>
|
#include <QByteArray>
|
||||||
#include <QBitArray>
|
#include <QBitArray>
|
||||||
#include <QDebug>
|
|
||||||
|
|
||||||
#define LOG(x) qDebug() << "[ChatModel]" << x
|
#define DEBUG_MODULE ChatModel
|
||||||
|
#include "debuglog.h"
|
||||||
|
|
||||||
namespace {
|
namespace {
|
||||||
const QString ID("id");
|
const QString ID("id");
|
||||||
|
|
|
@ -19,22 +19,22 @@
|
||||||
|
|
||||||
#include "dbusadaptor.h"
|
#include "dbusadaptor.h"
|
||||||
|
|
||||||
#include <QDebug>
|
#define DEBUG_MODULE DBusAdaptor
|
||||||
|
#include "debuglog.h"
|
||||||
|
|
||||||
DBusAdaptor::DBusAdaptor(QObject *parent): QDBusAbstractAdaptor(parent)
|
DBusAdaptor::DBusAdaptor(QObject *parent): QDBusAbstractAdaptor(parent)
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void DBusAdaptor::openMessage(const QString &chatId, const QString &messageId)
|
void DBusAdaptor::openMessage(const QString &chatId, const QString &messageId)
|
||||||
{
|
{
|
||||||
qDebug() << "[DBusAdaptor] Open Message " << chatId << messageId;
|
LOG("Open Message" << chatId << messageId);
|
||||||
emit pleaseOpenMessage(chatId, messageId);
|
emit pleaseOpenMessage(chatId, messageId);
|
||||||
}
|
}
|
||||||
|
|
||||||
void DBusAdaptor::openUrl(const QStringList &arguments)
|
void DBusAdaptor::openUrl(const QStringList &arguments)
|
||||||
{
|
{
|
||||||
qDebug() << "[DBusAdaptor] Open Url" << arguments;
|
LOG("Open Url" << arguments);
|
||||||
if (arguments.length() >= 1) {
|
if (arguments.length() >= 1) {
|
||||||
emit pleaseOpenUrl(arguments.first());
|
emit pleaseOpenUrl(arguments.first());
|
||||||
}
|
}
|
||||||
|
|
|
@ -19,27 +19,29 @@
|
||||||
|
|
||||||
#include "dbusinterface.h"
|
#include "dbusinterface.h"
|
||||||
|
|
||||||
|
#define DEBUG_MODULE DBusInterface
|
||||||
|
#include "debuglog.h"
|
||||||
|
|
||||||
DBusInterface::DBusInterface(QObject *parent) : QObject(parent)
|
DBusInterface::DBusInterface(QObject *parent) : QObject(parent)
|
||||||
{
|
{
|
||||||
qDebug() << "[DBusInterface] Initializing D-BUS connectivity";
|
LOG("Initializing D-BUS connectivity");
|
||||||
this->dbusAdaptor = new DBusAdaptor(this);
|
this->dbusAdaptor = new DBusAdaptor(this);
|
||||||
QDBusConnection sessionBusConnection = QDBusConnection::sessionBus();
|
QDBusConnection sessionBusConnection = QDBusConnection::sessionBus();
|
||||||
|
|
||||||
if (!sessionBusConnection.isConnected()) {
|
if (!sessionBusConnection.isConnected()) {
|
||||||
qDebug() << "[DBusInterface] Error connecting to D-BUS";
|
WARN("Error connecting to D-BUS");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!sessionBusConnection.registerObject(PATH_NAME, this)) {
|
if (!sessionBusConnection.registerObject(PATH_NAME, this)) {
|
||||||
qDebug() << "[DBusInterface] Error registering root object to D-BUS" << sessionBusConnection.lastError().message();
|
WARN("Error registering root object to D-BUS" << sessionBusConnection.lastError().message());
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!sessionBusConnection.registerService(INTERFACE_NAME)) {
|
if (!sessionBusConnection.registerService(INTERFACE_NAME)) {
|
||||||
qDebug() << "[DBusInterface] Error registering interface to D-BUS" << sessionBusConnection.lastError().message();
|
WARN("Error registering interface to D-BUS" << sessionBusConnection.lastError().message());
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
DBusAdaptor *DBusInterface::getDBusAdaptor()
|
DBusAdaptor *DBusInterface::getDBusAdaptor()
|
||||||
|
|
45
src/debuglog.h
Normal file
|
@ -0,0 +1,45 @@
|
||||||
|
/*
|
||||||
|
Copyright (C) 2020 Slava Monich et al.
|
||||||
|
|
||||||
|
This file is part of Fernschreiber.
|
||||||
|
|
||||||
|
Fernschreiber is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 3 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
Fernschreiber is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with Fernschreiber. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef FERNSCHREIBER_DEBUG_LOG_H
|
||||||
|
#define FERNSCHREIBER_DEBUG_LOG_H
|
||||||
|
|
||||||
|
#include <QLoggingCategory>
|
||||||
|
|
||||||
|
#ifndef DEBUG_MODULE
|
||||||
|
# define DEBUG_MODULE Debug
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define LOG_CATEGORY__(x) x##Log
|
||||||
|
#define LOG_CATEGORY_(x) LOG_CATEGORY__(x)
|
||||||
|
#define LOG_CATEGORY LOG_CATEGORY_(DEBUG_MODULE)
|
||||||
|
static const QLoggingCategory LOG_CATEGORY("fernschreiber." QT_STRINGIFY(DEBUG_MODULE));
|
||||||
|
#define LOG(x) qCDebug(LOG_CATEGORY) << "[" QT_STRINGIFY(DEBUG_MODULE) "]" << x
|
||||||
|
#define WARN(x) qCWarning(LOG_CATEGORY) << "[" QT_STRINGIFY(DEBUG_MODULE) "]" << x
|
||||||
|
|
||||||
|
// No VERBOSE in release build
|
||||||
|
#ifndef VERBOSE
|
||||||
|
# if defined (QT_DEBUG) || defined (DEBUG)
|
||||||
|
# define VERBOSE(x) LOG(x)
|
||||||
|
# else
|
||||||
|
# define VERBOSE(x)
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif // FERNSCHREIBER_DEBUG_LOG_H
|
51
src/debuglogjs.h
Normal file
|
@ -0,0 +1,51 @@
|
||||||
|
/*
|
||||||
|
Copyright (C) 2020 Sebastian J. Wolf and other contributors
|
||||||
|
|
||||||
|
This file is part of Fernschreiber.
|
||||||
|
|
||||||
|
Fernschreiber is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 3 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
Fernschreiber is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with Fernschreiber. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef DEBUGLOGJS_H
|
||||||
|
#define DEBUGLOGJS_H
|
||||||
|
|
||||||
|
#include <QObject>
|
||||||
|
#include <QQmlEngine>
|
||||||
|
#include <QLoggingCategory>
|
||||||
|
|
||||||
|
class DebugLogJS : public QObject
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
Q_PROPERTY(bool enabled READ isEnabled WRITE setEnabled NOTIFY enabledChanged)
|
||||||
|
public:
|
||||||
|
|
||||||
|
DebugLogJS(QObject* parent = Q_NULLPTR) : QObject(parent), category("fernschreiber.JS") {
|
||||||
|
enabled = category.isDebugEnabled();
|
||||||
|
}
|
||||||
|
static QObject* createSingleton(QQmlEngine*, QJSEngine*) { return new DebugLogJS(); }
|
||||||
|
bool isEnabled() const { return enabled; }
|
||||||
|
void setEnabled(bool value) {
|
||||||
|
if (enabled != value) {
|
||||||
|
enabled = value;
|
||||||
|
Q_EMIT enabledChanged();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Q_SIGNALS:
|
||||||
|
void enabledChanged();
|
||||||
|
private:
|
||||||
|
bool enabled;
|
||||||
|
const QLoggingCategory category;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // DEBUGLOGJS_H
|
|
@ -18,7 +18,8 @@
|
||||||
*/
|
*/
|
||||||
#include "emojisearchworker.h"
|
#include "emojisearchworker.h"
|
||||||
|
|
||||||
#define LOG(x) qDebug() << "[EmojiSearchWorker]" << x
|
#define DEBUG_MODULE EmojiSearchWorker
|
||||||
|
#include "debuglog.h"
|
||||||
|
|
||||||
EmojiSearchWorker::~EmojiSearchWorker()
|
EmojiSearchWorker::~EmojiSearchWorker()
|
||||||
{
|
{
|
||||||
|
|
|
@ -24,7 +24,6 @@
|
||||||
#include <QSqlQuery>
|
#include <QSqlQuery>
|
||||||
#include <QSqlError>
|
#include <QSqlError>
|
||||||
#include <QVariantList>
|
#include <QVariantList>
|
||||||
#include <QDebug>
|
|
||||||
|
|
||||||
class EmojiSearchWorker : public QThread
|
class EmojiSearchWorker : public QThread
|
||||||
{
|
{
|
||||||
|
|
|
@ -28,23 +28,35 @@
|
||||||
#include <QQmlContext>
|
#include <QQmlContext>
|
||||||
#include <QQmlEngine>
|
#include <QQmlEngine>
|
||||||
#include <QGuiApplication>
|
#include <QGuiApplication>
|
||||||
|
#include <QLoggingCategory>
|
||||||
#include "appsettings.h"
|
#include "appsettings.h"
|
||||||
|
#include "debuglogjs.h"
|
||||||
#include "tdlibfile.h"
|
#include "tdlibfile.h"
|
||||||
#include "tdlibwrapper.h"
|
#include "tdlibwrapper.h"
|
||||||
#include "chatlistmodel.h"
|
#include "chatlistmodel.h"
|
||||||
#include "chatmodel.h"
|
#include "chatmodel.h"
|
||||||
#include "notificationmanager.h"
|
#include "notificationmanager.h"
|
||||||
|
#include "mceinterface.h"
|
||||||
#include "dbusadaptor.h"
|
#include "dbusadaptor.h"
|
||||||
#include "processlauncher.h"
|
#include "processlauncher.h"
|
||||||
#include "stickermanager.h"
|
#include "stickermanager.h"
|
||||||
#include "tgsplugin.h"
|
#include "tgsplugin.h"
|
||||||
#include "fernschreiberutils.h"
|
#include "fernschreiberutils.h"
|
||||||
|
|
||||||
|
// The default filter can be overridden by QT_LOGGING_RULES envinronment variable, e.g.
|
||||||
|
// QT_LOGGING_RULES="fernschreiber.*=true" harbour-fernschreiber
|
||||||
|
#if defined (QT_DEBUG) || defined(DEBUG)
|
||||||
|
# define DEFAULT_LOG_FILTER "fernschreiber.*=true"
|
||||||
|
#else
|
||||||
|
# define DEFAULT_LOG_FILTER "fernschreiber.*=false"
|
||||||
|
#endif
|
||||||
|
|
||||||
Q_IMPORT_PLUGIN(TgsIOPlugin)
|
Q_IMPORT_PLUGIN(TgsIOPlugin)
|
||||||
|
|
||||||
int main(int argc, char *argv[])
|
int main(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
|
QLoggingCategory::setFilterRules(DEFAULT_LOG_FILTER);
|
||||||
|
|
||||||
QScopedPointer<QGuiApplication> app(SailfishApp::application(argc, argv));
|
QScopedPointer<QGuiApplication> app(SailfishApp::application(argc, argv));
|
||||||
QScopedPointer<QQuickView> view(SailfishApp::createView());
|
QScopedPointer<QQuickView> view(SailfishApp::createView());
|
||||||
|
|
||||||
|
@ -52,12 +64,14 @@ int main(int argc, char *argv[])
|
||||||
|
|
||||||
const char *uri = "WerkWolf.Fernschreiber";
|
const char *uri = "WerkWolf.Fernschreiber";
|
||||||
qmlRegisterType<TDLibFile>(uri, 1, 0, "TDLibFile");
|
qmlRegisterType<TDLibFile>(uri, 1, 0, "TDLibFile");
|
||||||
|
qmlRegisterSingletonType<DebugLogJS>(uri, 1, 0, "DebugLog", DebugLogJS::createSingleton);
|
||||||
|
|
||||||
AppSettings *appSettings = new AppSettings(view.data());
|
AppSettings *appSettings = new AppSettings(view.data());
|
||||||
context->setContextProperty("appSettings", appSettings);
|
context->setContextProperty("appSettings", appSettings);
|
||||||
qmlRegisterUncreatableType<AppSettings>(uri, 1, 0, "AppSettings", QString());
|
qmlRegisterUncreatableType<AppSettings>(uri, 1, 0, "AppSettings", QString());
|
||||||
|
|
||||||
TDLibWrapper *tdLibWrapper = new TDLibWrapper(appSettings, view.data());
|
MceInterface *mceInterface = new MceInterface(view.data());
|
||||||
|
TDLibWrapper *tdLibWrapper = new TDLibWrapper(appSettings, mceInterface, view.data());
|
||||||
context->setContextProperty("tdLibWrapper", tdLibWrapper);
|
context->setContextProperty("tdLibWrapper", tdLibWrapper);
|
||||||
qmlRegisterUncreatableType<TDLibWrapper>(uri, 1, 0, "TelegramAPI", QString());
|
qmlRegisterUncreatableType<TDLibWrapper>(uri, 1, 0, "TelegramAPI", QString());
|
||||||
|
|
||||||
|
@ -73,7 +87,7 @@ int main(int argc, char *argv[])
|
||||||
ChatModel chatModel(tdLibWrapper);
|
ChatModel chatModel(tdLibWrapper);
|
||||||
context->setContextProperty("chatModel", &chatModel);
|
context->setContextProperty("chatModel", &chatModel);
|
||||||
|
|
||||||
NotificationManager notificationManager(tdLibWrapper, appSettings, &chatModel);
|
NotificationManager notificationManager(tdLibWrapper, appSettings, mceInterface, &chatModel);
|
||||||
context->setContextProperty("notificationManager", ¬ificationManager);
|
context->setContextProperty("notificationManager", ¬ificationManager);
|
||||||
|
|
||||||
ProcessLauncher processLauncher;
|
ProcessLauncher processLauncher;
|
||||||
|
|
54
src/mceinterface.cpp
Normal file
|
@ -0,0 +1,54 @@
|
||||||
|
/*
|
||||||
|
Copyright (C) 2020 Slava Monich et al.
|
||||||
|
|
||||||
|
This file is part of Fernschreiber.
|
||||||
|
|
||||||
|
Fernschreiber is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 3 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
Fernschreiber is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with Fernschreiber. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "mceinterface.h"
|
||||||
|
#include <QDBusConnection>
|
||||||
|
|
||||||
|
#define DEBUG_MODULE MceInterface
|
||||||
|
#include "debuglog.h"
|
||||||
|
|
||||||
|
MceInterface::MceInterface(QObject *parent) :
|
||||||
|
QDBusInterface("com.nokia.mce", "/com/nokia/mce/request", "com.nokia.mce.request",
|
||||||
|
QDBusConnection::systemBus(), parent)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
void MceInterface::ledPatternActivate(const QString &pattern)
|
||||||
|
{
|
||||||
|
LOG("Activating pattern" << pattern);
|
||||||
|
call(QStringLiteral("req_led_pattern_activate"), pattern);
|
||||||
|
}
|
||||||
|
|
||||||
|
void MceInterface::ledPatternDeactivate(const QString &pattern)
|
||||||
|
{
|
||||||
|
LOG("Deactivating pattern" << pattern);
|
||||||
|
call(QStringLiteral("req_led_pattern_deactivate"), pattern);
|
||||||
|
}
|
||||||
|
|
||||||
|
void MceInterface::displayCancelBlankingPause()
|
||||||
|
{
|
||||||
|
LOG("Enabling display blanking");
|
||||||
|
call(QStringLiteral("req_display_cancel_blanking_pause"));
|
||||||
|
}
|
||||||
|
|
||||||
|
void MceInterface::displayBlankingPause()
|
||||||
|
{
|
||||||
|
LOG("Disabling display blanking");
|
||||||
|
call(QStringLiteral("req_display_blanking_pause"));
|
||||||
|
}
|
37
src/mceinterface.h
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
/*
|
||||||
|
Copyright (C) 2020 Slava Monich et al.
|
||||||
|
|
||||||
|
This file is part of Fernschreiber.
|
||||||
|
|
||||||
|
Fernschreiber is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 3 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
Fernschreiber is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with Fernschreiber. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef MCE_INTERFACE_H
|
||||||
|
#define MCE_INTERFACE_H
|
||||||
|
|
||||||
|
#include <QDBusInterface>
|
||||||
|
|
||||||
|
class MceInterface : public QDBusInterface
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
MceInterface(QObject *parent = Q_NULLPTR);
|
||||||
|
|
||||||
|
void ledPatternActivate(const QString &pattern);
|
||||||
|
void ledPatternDeactivate(const QString &pattern);
|
||||||
|
void displayCancelBlankingPause();
|
||||||
|
void displayBlankingPause();
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // MCE_INTERFACE_H
|
||||||
|
|
|
@ -21,14 +21,14 @@
|
||||||
#include "fernschreiberutils.h"
|
#include "fernschreiberutils.h"
|
||||||
#include "chatmodel.h"
|
#include "chatmodel.h"
|
||||||
#include <sailfishapp.h>
|
#include <sailfishapp.h>
|
||||||
#include <QDebug>
|
|
||||||
#include <QListIterator>
|
#include <QListIterator>
|
||||||
#include <QUrl>
|
#include <QUrl>
|
||||||
#include <QDateTime>
|
#include <QDateTime>
|
||||||
#include <QDBusConnection>
|
#include <QDBusConnection>
|
||||||
#include <QGuiApplication>
|
#include <QGuiApplication>
|
||||||
|
|
||||||
#define LOG(x) qDebug() << "[NotificationManager]" << x
|
#define DEBUG_MODULE NotificationManager
|
||||||
|
#include "debuglog.h"
|
||||||
|
|
||||||
namespace {
|
namespace {
|
||||||
const QString _TYPE("@type");
|
const QString _TYPE("@type");
|
||||||
|
@ -120,14 +120,13 @@ NotificationManager::NotificationGroup::~NotificationGroup()
|
||||||
delete nemoNotification;
|
delete nemoNotification;
|
||||||
}
|
}
|
||||||
|
|
||||||
NotificationManager::NotificationManager(TDLibWrapper *tdLibWrapper, AppSettings *appSettings, ChatModel *chatModel) :
|
NotificationManager::NotificationManager(TDLibWrapper *tdLibWrapper, AppSettings *appSettings, MceInterface *mceInterface, ChatModel *chatModel) :
|
||||||
mceInterface("com.nokia.mce", "/com/nokia/mce/request", "com.nokia.mce.request", QDBusConnection::systemBus()),
|
|
||||||
appIconFile(SailfishApp::pathTo("images/fernschreiber-notification.png").toLocalFile())
|
appIconFile(SailfishApp::pathTo("images/fernschreiber-notification.png").toLocalFile())
|
||||||
{
|
{
|
||||||
LOG("Initializing...");
|
LOG("Initializing...");
|
||||||
this->tdLibWrapper = tdLibWrapper;
|
this->tdLibWrapper = tdLibWrapper;
|
||||||
this->appSettings = appSettings;
|
this->appSettings = appSettings;
|
||||||
this->appSettings = appSettings;
|
this->mceInterface = mceInterface;
|
||||||
this->chatModel = chatModel;
|
this->chatModel = chatModel;
|
||||||
|
|
||||||
connect(this->tdLibWrapper, SIGNAL(activeNotificationsUpdated(QVariantList)), this, SLOT(handleUpdateActiveNotifications(QVariantList)));
|
connect(this->tdLibWrapper, SIGNAL(activeNotificationsUpdated(QVariantList)), this, SLOT(handleUpdateActiveNotifications(QVariantList)));
|
||||||
|
@ -383,9 +382,9 @@ QString NotificationManager::getNotificationText(const QVariantMap ¬ification
|
||||||
void NotificationManager::controlLedNotification(bool enabled)
|
void NotificationManager::controlLedNotification(bool enabled)
|
||||||
{
|
{
|
||||||
static const QString PATTERN("PatternCommunicationIM");
|
static const QString PATTERN("PatternCommunicationIM");
|
||||||
static const QString ACTIVATE("req_led_pattern_activate");
|
if (enabled) {
|
||||||
static const QString DEACTIVATE("req_led_pattern_deactivate");
|
mceInterface->ledPatternActivate(PATTERN);
|
||||||
|
} else {
|
||||||
LOG("Controlling notification LED" << enabled);
|
mceInterface->ledPatternDeactivate(PATTERN);
|
||||||
mceInterface.call(enabled ? ACTIVATE : DEACTIVATE, PATTERN);
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -21,10 +21,10 @@
|
||||||
#define NOTIFICATIONMANAGER_H
|
#define NOTIFICATIONMANAGER_H
|
||||||
|
|
||||||
#include <QObject>
|
#include <QObject>
|
||||||
#include <QDBusInterface>
|
|
||||||
#include <nemonotifications-qt5/notification.h>
|
#include <nemonotifications-qt5/notification.h>
|
||||||
#include "tdlibwrapper.h"
|
#include "tdlibwrapper.h"
|
||||||
#include "appsettings.h"
|
#include "appsettings.h"
|
||||||
|
#include "mceinterface.h"
|
||||||
|
|
||||||
class ChatModel;
|
class ChatModel;
|
||||||
|
|
||||||
|
@ -36,7 +36,7 @@ class NotificationManager : public QObject
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
NotificationManager(TDLibWrapper *tdLibWrapper, AppSettings *appSettings, ChatModel *chatModel);
|
NotificationManager(TDLibWrapper *tdLibWrapper, AppSettings *appSettings, MceInterface *mceInterface, ChatModel *chatModel);
|
||||||
~NotificationManager() override;
|
~NotificationManager() override;
|
||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
|
@ -61,10 +61,10 @@ private:
|
||||||
|
|
||||||
TDLibWrapper *tdLibWrapper;
|
TDLibWrapper *tdLibWrapper;
|
||||||
AppSettings *appSettings;
|
AppSettings *appSettings;
|
||||||
|
MceInterface *mceInterface;
|
||||||
ChatModel *chatModel;
|
ChatModel *chatModel;
|
||||||
QMap<qlonglong,ChatInfo*> chatMap;
|
QMap<qlonglong,ChatInfo*> chatMap;
|
||||||
QMap<int,NotificationGroup*> notificationGroups;
|
QMap<int,NotificationGroup*> notificationGroups;
|
||||||
QDBusInterface mceInterface;
|
|
||||||
QString appIconFile;
|
QString appIconFile;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,18 +1,23 @@
|
||||||
#include "processlauncher.h"
|
#include "processlauncher.h"
|
||||||
|
#include <QProcess>
|
||||||
|
#include <QStandardPaths>
|
||||||
|
|
||||||
#define LOG(x) qDebug() << "[ProcessLauncher]" << x
|
#define DEBUG_MODULE ProcessLauncher
|
||||||
|
#include "debuglog.h"
|
||||||
|
|
||||||
ProcessLauncher::ProcessLauncher(QObject *parent) : QObject(parent)
|
ProcessLauncher::ProcessLauncher(QObject *parent) : QObject(parent)
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool ProcessLauncher::launchProgram(const QString &program, const QStringList &arguments)
|
bool ProcessLauncher::launchProgram(const QString &program, const QStringList &arguments)
|
||||||
{
|
{
|
||||||
QString executablePath = QStandardPaths::findExecutable(program);
|
const QString executablePath(QStandardPaths::findExecutable(program));
|
||||||
if(executablePath == "") {
|
if (executablePath.isEmpty()) {
|
||||||
LOG("[ProcessLauncher] Program " + program + "not found");
|
LOG("Program" << program << "not found");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
QProcess *externalProcess = new QProcess(this);
|
|
||||||
return externalProcess->startDetached(program, arguments);
|
QProcess *process = new QProcess(this);
|
||||||
|
connect(process, SIGNAL(finished(int)), process, SLOT(deleteLater()));
|
||||||
|
return process->startDetached(program, arguments);
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,9 +2,6 @@
|
||||||
#define PROCESSLAUNCHER_H
|
#define PROCESSLAUNCHER_H
|
||||||
|
|
||||||
#include <QObject>
|
#include <QObject>
|
||||||
#include <QProcess>
|
|
||||||
#include <QStandardPaths>
|
|
||||||
#include <QDebug>
|
|
||||||
|
|
||||||
class ProcessLauncher : public QObject
|
class ProcessLauncher : public QObject
|
||||||
{
|
{
|
||||||
|
|
|
@ -18,10 +18,10 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "stickermanager.h"
|
#include "stickermanager.h"
|
||||||
#include <QDebug>
|
|
||||||
#include <QListIterator>
|
#include <QListIterator>
|
||||||
|
|
||||||
#define LOG(x) qDebug() << "[StickerManager]" << x
|
#define DEBUG_MODULE StickerManager
|
||||||
|
#include "debuglog.h"
|
||||||
|
|
||||||
StickerManager::StickerManager(TDLibWrapper *tdLibWrapper, QObject *parent) : QObject(parent)
|
StickerManager::StickerManager(TDLibWrapper *tdLibWrapper, QObject *parent) : QObject(parent)
|
||||||
{
|
{
|
||||||
|
|
|
@ -18,9 +18,9 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "tdlibfile.h"
|
#include "tdlibfile.h"
|
||||||
#include <QDebug>
|
|
||||||
|
|
||||||
#define LOG(x) qDebug() << "[TDLibFile]" << x
|
#define DEBUG_MODULE TDLibFile
|
||||||
|
#include "debuglog.h"
|
||||||
|
|
||||||
namespace {
|
namespace {
|
||||||
const QString ID("id");
|
const QString ID("id");
|
||||||
|
|
|
@ -18,13 +18,8 @@
|
||||||
*/
|
*/
|
||||||
#include "tdlibreceiver.h"
|
#include "tdlibreceiver.h"
|
||||||
|
|
||||||
#define LOG(x) qDebug() << "[TDLibReceiver]" << x
|
#define DEBUG_MODULE TDLibReceiver
|
||||||
|
#include "debuglog.h"
|
||||||
#if defined (QT_DEBUG) || defined (DEBUG)
|
|
||||||
# define VERBOSE(x) LOG(x)
|
|
||||||
#else
|
|
||||||
# define VERBOSE(x)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
namespace {
|
namespace {
|
||||||
const QString ID("id");
|
const QString ID("id");
|
||||||
|
|
|
@ -19,7 +19,8 @@
|
||||||
#ifndef TDLIBRECEIVER_H
|
#ifndef TDLIBRECEIVER_H
|
||||||
#define TDLIBRECEIVER_H
|
#define TDLIBRECEIVER_H
|
||||||
|
|
||||||
#include <QDebug>
|
#include <QHash>
|
||||||
|
#include <QVariantMap>
|
||||||
#include <QThread>
|
#include <QThread>
|
||||||
#include <QJsonDocument>
|
#include <QJsonDocument>
|
||||||
#include <QJsonObject>
|
#include <QJsonObject>
|
||||||
|
|
|
@ -25,19 +25,13 @@
|
||||||
#include <QLocale>
|
#include <QLocale>
|
||||||
#include <QProcess>
|
#include <QProcess>
|
||||||
#include <QSysInfo>
|
#include <QSysInfo>
|
||||||
#include <QDebug>
|
|
||||||
#include <QJsonDocument>
|
#include <QJsonDocument>
|
||||||
#include <QStandardPaths>
|
#include <QStandardPaths>
|
||||||
#include <QDBusConnection>
|
#include <QDBusConnection>
|
||||||
#include <QDBusInterface>
|
#include <QDBusInterface>
|
||||||
|
|
||||||
#define LOG(x) qDebug() << "[TDLibWrapper]" << x
|
#define DEBUG_MODULE TDLibWrapper
|
||||||
|
#include "debuglog.h"
|
||||||
#if defined (QT_DEBUG) || defined (DEBUG)
|
|
||||||
# define VERBOSE(x) LOG(x)
|
|
||||||
#else
|
|
||||||
# define VERBOSE(x)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
namespace {
|
namespace {
|
||||||
const QString STATUS("status");
|
const QString STATUS("status");
|
||||||
|
@ -50,10 +44,11 @@ namespace {
|
||||||
const QString _EXTRA("@extra");
|
const QString _EXTRA("@extra");
|
||||||
}
|
}
|
||||||
|
|
||||||
TDLibWrapper::TDLibWrapper(AppSettings *appSettings, QObject *parent) : QObject(parent), joinChatRequested(false), contactsRequested(false)
|
TDLibWrapper::TDLibWrapper(AppSettings *appSettings, MceInterface *mceInterface, QObject *parent) : QObject(parent), joinChatRequested(false), contactsRequested(false)
|
||||||
{
|
{
|
||||||
LOG("Initializing TD Lib...");
|
LOG("Initializing TD Lib...");
|
||||||
this->appSettings = appSettings;
|
this->appSettings = appSettings;
|
||||||
|
this->mceInterface = mceInterface;
|
||||||
this->tdLibClient = td_json_client_create();
|
this->tdLibClient = td_json_client_create();
|
||||||
this->tdLibReceiver = new TDLibReceiver(this->tdLibClient, this);
|
this->tdLibReceiver = new TDLibReceiver(this->tdLibClient, this);
|
||||||
|
|
||||||
|
@ -202,7 +197,7 @@ void TDLibWrapper::setAuthenticationPassword(const QString &authenticationPasswo
|
||||||
|
|
||||||
void TDLibWrapper::registerUser(const QString &firstName, const QString &lastName)
|
void TDLibWrapper::registerUser(const QString &firstName, const QString &lastName)
|
||||||
{
|
{
|
||||||
qDebug() << "[TDLibWrapper] Register User " << firstName << lastName;
|
LOG("Register User " << firstName << lastName);
|
||||||
QVariantMap requestObject;
|
QVariantMap requestObject;
|
||||||
requestObject.insert("@type", "registerUser");
|
requestObject.insert("@type", "registerUser");
|
||||||
requestObject.insert("first_name", firstName);
|
requestObject.insert("first_name", firstName);
|
||||||
|
@ -907,24 +902,18 @@ void TDLibWrapper::openFileOnDevice(const QString &filePath)
|
||||||
argumentsList.append(filePath);
|
argumentsList.append(filePath);
|
||||||
bool successfullyStarted = QProcess::startDetached("xdg-open", argumentsList);
|
bool successfullyStarted = QProcess::startDetached("xdg-open", argumentsList);
|
||||||
if (successfullyStarted) {
|
if (successfullyStarted) {
|
||||||
qDebug() << "Successfully opened file " << filePath;
|
LOG("Successfully opened file " << filePath);
|
||||||
} else {
|
} else {
|
||||||
qDebug() << "Error opening file " << filePath;
|
LOG("Error opening file " << filePath);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void TDLibWrapper::controlScreenSaver(bool enabled)
|
void TDLibWrapper::controlScreenSaver(bool enabled)
|
||||||
{
|
{
|
||||||
LOG("Controlling device screen saver" << enabled);
|
|
||||||
QDBusConnection dbusConnection = QDBusConnection::connectToBus(QDBusConnection::SystemBus, "system");
|
|
||||||
QDBusInterface dbusInterface("com.nokia.mce", "/com/nokia/mce/request", "com.nokia.mce.request", dbusConnection);
|
|
||||||
|
|
||||||
if (enabled) {
|
if (enabled) {
|
||||||
qDebug() << "Enabling screensaver";
|
mceInterface->displayCancelBlankingPause();
|
||||||
dbusInterface.call("req_display_cancel_blanking_pause");
|
|
||||||
} else {
|
} else {
|
||||||
qDebug() << "Disabling screensaver";
|
mceInterface->displayBlankingPause();
|
||||||
dbusInterface.call("req_display_blanking_pause");
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1259,21 +1248,21 @@ void TDLibWrapper::setLogVerbosityLevel()
|
||||||
void TDLibWrapper::initializeOpenWith()
|
void TDLibWrapper::initializeOpenWith()
|
||||||
{
|
{
|
||||||
LOG("Initialize open-with");
|
LOG("Initialize open-with");
|
||||||
|
LOG("Checking standard open URL file...");
|
||||||
qDebug() << "Checking standard open URL file...";
|
const QString applicationsLocation(QStandardPaths::writableLocation(QStandardPaths::ApplicationsLocation));
|
||||||
QString openUrlFilePath = QStandardPaths::writableLocation(QStandardPaths::ApplicationsLocation) + "/open-url.desktop";
|
const QString openUrlFilePath(applicationsLocation + "/open-url.desktop");
|
||||||
if (QFile::exists(openUrlFilePath)) {
|
if (QFile::exists(openUrlFilePath)) {
|
||||||
qDebug() << "Standard open URL file exists, good!";
|
LOG("Standard open URL file exists, good!");
|
||||||
} else {
|
} else {
|
||||||
qDebug() << "Copying standard open URL file to " << openUrlFilePath;
|
LOG("Copying standard open URL file to " << openUrlFilePath);
|
||||||
QFile::copy("/usr/share/applications/open-url.desktop", openUrlFilePath);
|
QFile::copy("/usr/share/applications/open-url.desktop", openUrlFilePath);
|
||||||
QProcess::startDetached("update-desktop-database " + QStandardPaths::writableLocation(QStandardPaths::ApplicationsLocation));
|
QProcess::startDetached("update-desktop-database " + applicationsLocation);
|
||||||
}
|
}
|
||||||
|
|
||||||
QString desktopFilePath = QStandardPaths::writableLocation(QStandardPaths::ApplicationsLocation) + "/harbour-fernschreiber-open-url.desktop";
|
const QString desktopFilePath(applicationsLocation + "/harbour-fernschreiber-open-url.desktop");
|
||||||
QFile desktopFile(desktopFilePath);
|
QFile desktopFile(desktopFilePath);
|
||||||
if (!desktopFile.exists()) {
|
if (!desktopFile.exists()) {
|
||||||
qDebug() << "Creating Open-With file at " << desktopFile.fileName();
|
LOG("Creating Open-With file at " << desktopFile.fileName());
|
||||||
if (desktopFile.open(QIODevice::WriteOnly | QIODevice::Text)) {
|
if (desktopFile.open(QIODevice::WriteOnly | QIODevice::Text)) {
|
||||||
QTextStream fileOut(&desktopFile);
|
QTextStream fileOut(&desktopFile);
|
||||||
fileOut.setCodec("UTF-8");
|
fileOut.setCodec("UTF-8");
|
||||||
|
@ -1289,7 +1278,7 @@ void TDLibWrapper::initializeOpenWith()
|
||||||
fileOut << QString("Hidden=true;").toUtf8() << "\n";
|
fileOut << QString("Hidden=true;").toUtf8() << "\n";
|
||||||
fileOut.flush();
|
fileOut.flush();
|
||||||
desktopFile.close();
|
desktopFile.close();
|
||||||
QProcess::startDetached("update-desktop-database " + QStandardPaths::writableLocation(QStandardPaths::ApplicationsLocation));
|
QProcess::startDetached("update-desktop-database " + applicationsLocation);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -26,12 +26,13 @@
|
||||||
#include "dbusinterface.h"
|
#include "dbusinterface.h"
|
||||||
#include "emojisearchworker.h"
|
#include "emojisearchworker.h"
|
||||||
#include "appsettings.h"
|
#include "appsettings.h"
|
||||||
|
#include "mceinterface.h"
|
||||||
|
|
||||||
class TDLibWrapper : public QObject
|
class TDLibWrapper : public QObject
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
public:
|
public:
|
||||||
explicit TDLibWrapper(AppSettings *appSettings, QObject *parent = nullptr);
|
explicit TDLibWrapper(AppSettings *appSettings, MceInterface *mceInterface, QObject *parent = nullptr);
|
||||||
~TDLibWrapper();
|
~TDLibWrapper();
|
||||||
|
|
||||||
enum AuthorizationState {
|
enum AuthorizationState {
|
||||||
|
@ -255,6 +256,7 @@ private:
|
||||||
private:
|
private:
|
||||||
void *tdLibClient;
|
void *tdLibClient;
|
||||||
AppSettings *appSettings;
|
AppSettings *appSettings;
|
||||||
|
MceInterface *mceInterface;
|
||||||
TDLibReceiver *tdLibReceiver;
|
TDLibReceiver *tdLibReceiver;
|
||||||
DBusInterface *dbusInterface;
|
DBusInterface *dbusInterface;
|
||||||
QString version;
|
QString version;
|
||||||
|
|
|
@ -18,7 +18,6 @@
|
||||||
#include "tgsplugin.h"
|
#include "tgsplugin.h"
|
||||||
#include "rlottie.h"
|
#include "rlottie.h"
|
||||||
|
|
||||||
#include <QDebug>
|
|
||||||
#include <QSize>
|
#include <QSize>
|
||||||
#include <QImage>
|
#include <QImage>
|
||||||
#include <QImageIOHandler>
|
#include <QImageIOHandler>
|
||||||
|
@ -27,8 +26,9 @@
|
||||||
|
|
||||||
#include <zlib.h>
|
#include <zlib.h>
|
||||||
|
|
||||||
#define LOG(x) qDebug() << "[TgsIOHandler]" << qPrintable(fileName) << x
|
#define DEBUG_MODULE TgsIOHandler
|
||||||
#define WARN(x) qWarning() << "[TgsIOHandler]" << qPrintable(fileName) << x
|
#include "debuglog.h"
|
||||||
|
#define LOG_(x) LOG(qPrintable(fileName) << x)
|
||||||
|
|
||||||
class TgsIOHandler : public QImageIOHandler
|
class TgsIOHandler : public QImageIOHandler
|
||||||
{
|
{
|
||||||
|
@ -93,7 +93,7 @@ TgsIOHandler::~TgsIOHandler()
|
||||||
if (currentRender.valid()) {
|
if (currentRender.valid()) {
|
||||||
currentRender.get();
|
currentRender.get();
|
||||||
}
|
}
|
||||||
LOG("Done");
|
LOG_("Done");
|
||||||
}
|
}
|
||||||
|
|
||||||
TgsIOHandler::ByteArray TgsIOHandler::uncompress()
|
TgsIOHandler::ByteArray TgsIOHandler::uncompress()
|
||||||
|
@ -112,7 +112,7 @@ TgsIOHandler::ByteArray TgsIOHandler::uncompress()
|
||||||
unzip.next_out = (Bytef*)unzipped.data();
|
unzip.next_out = (Bytef*)unzipped.data();
|
||||||
unzip.avail_in = zipped.size();
|
unzip.avail_in = zipped.size();
|
||||||
unzip.avail_out = chunk;
|
unzip.avail_out = chunk;
|
||||||
LOG("Compressed size" << zipped.size());
|
LOG_("Compressed size" << zipped.size());
|
||||||
while (unzip.avail_out > 0 && zerr == Z_OK) {
|
while (unzip.avail_out > 0 && zerr == Z_OK) {
|
||||||
zerr = inflate(&unzip, Z_NO_FLUSH);
|
zerr = inflate(&unzip, Z_NO_FLUSH);
|
||||||
if (zerr == Z_OK && unzip.avail_out < chunk) {
|
if (zerr == Z_OK && unzip.avail_out < chunk) {
|
||||||
|
@ -124,7 +124,7 @@ TgsIOHandler::ByteArray TgsIOHandler::uncompress()
|
||||||
}
|
}
|
||||||
if (zerr == Z_STREAM_END) {
|
if (zerr == Z_STREAM_END) {
|
||||||
unzipped.resize(unzip.next_out - (Bytef*)unzipped.data());
|
unzipped.resize(unzip.next_out - (Bytef*)unzipped.data());
|
||||||
LOG("Uncompressed size" << unzipped.size());
|
LOG_("Uncompressed size" << unzipped.size());
|
||||||
} else {
|
} else {
|
||||||
unzipped.clear();
|
unzipped.clear();
|
||||||
}
|
}
|
||||||
|
@ -146,7 +146,7 @@ bool TgsIOHandler::load()
|
||||||
frameRate = animation->frameRate();
|
frameRate = animation->frameRate();
|
||||||
frameCount = (int) animation->totalFrame();
|
frameCount = (int) animation->totalFrame();
|
||||||
size = QSize(width, height);
|
size = QSize(width, height);
|
||||||
LOG(size << frameCount << "frames," << frameRate << "fps");
|
LOG_(size << frameCount << "frames," << frameRate << "fps");
|
||||||
render(0); // Pre-render first frame
|
render(0); // Pre-render first frame
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -160,7 +160,7 @@ void TgsIOHandler::finishRendering()
|
||||||
currentRender.get();
|
currentRender.get();
|
||||||
prevImage = currentImage;
|
prevImage = currentImage;
|
||||||
if (!currentFrame && !firstImage.isNull()) {
|
if (!currentFrame && !firstImage.isNull()) {
|
||||||
LOG("Rendered first frame");
|
LOG_("Rendered first frame");
|
||||||
firstImage = currentImage;
|
firstImage = currentImage;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
@ -192,7 +192,7 @@ bool TgsIOHandler::read(QImage* out)
|
||||||
if (currentFrame && currentRender.valid()) {
|
if (currentFrame && currentRender.valid()) {
|
||||||
std::future_status status = currentRender.wait_for(std::chrono::milliseconds(0));
|
std::future_status status = currentRender.wait_for(std::chrono::milliseconds(0));
|
||||||
if (status != std::future_status::ready) {
|
if (status != std::future_status::ready) {
|
||||||
LOG("Skipping frame" << currentFrame);
|
LOG_("Skipping frame" << currentFrame);
|
||||||
currentFrame = (currentFrame + 1) % frameCount;
|
currentFrame = (currentFrame + 1) % frameCount;
|
||||||
*out = prevImage;
|
*out = prevImage;
|
||||||
return true;
|
return true;
|
||||||
|
|
|
@ -99,84 +99,84 @@
|
||||||
<name>ChatInformationPageContent</name>
|
<name>ChatInformationPageContent</name>
|
||||||
<message numerus="yes">
|
<message numerus="yes">
|
||||||
<source>%1 subscribers</source>
|
<source>%1 subscribers</source>
|
||||||
<translation type="unfinished">
|
<translation>
|
||||||
|
<numerusform>%1 tilaaja</numerusform>
|
||||||
<numerusform>%1 tilaajaa</numerusform>
|
<numerusform>%1 tilaajaa</numerusform>
|
||||||
<numerusform></numerusform>
|
|
||||||
</translation>
|
</translation>
|
||||||
</message>
|
</message>
|
||||||
<message numerus="yes">
|
<message numerus="yes">
|
||||||
<source>%1 members</source>
|
<source>%1 members</source>
|
||||||
<translation type="unfinished">
|
<translation>
|
||||||
|
<numerusform>%1 jäsen</numerusform>
|
||||||
<numerusform>%1 jäsentä</numerusform>
|
<numerusform>%1 jäsentä</numerusform>
|
||||||
<numerusform></numerusform>
|
|
||||||
</translation>
|
</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Leave Chat</source>
|
<source>Leave Chat</source>
|
||||||
<translation type="unfinished">Poistu keskustelusta</translation>
|
<translation>Poistu keskustelusta</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Join Chat</source>
|
<source>Join Chat</source>
|
||||||
<translation type="unfinished">Liity keskusteluun</translation>
|
<translation>Liity keskusteluun</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Leaving chat</source>
|
<source>Leaving chat</source>
|
||||||
<translation type="unfinished">Poistutaan keskustelusta</translation>
|
<translation>Poistutaan keskustelusta</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Unmute Chat</source>
|
<source>Unmute Chat</source>
|
||||||
<translation type="unfinished">Poista keskustelun vaimennus</translation>
|
<translation>Poista keskustelun vaimennus</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Mute Chat</source>
|
<source>Mute Chat</source>
|
||||||
<translation type="unfinished">Vaimenna keskustelu</translation>
|
<translation>Vaimenna keskustelu</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Unknown</source>
|
<source>Unknown</source>
|
||||||
<translation type="unfinished">Tuntematon</translation>
|
<translation>Tuntematon</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Chat Title</source>
|
<source>Chat Title</source>
|
||||||
<comment>group title header</comment>
|
<comment>group title header</comment>
|
||||||
<translation type="unfinished">Keskustelun otsikko</translation>
|
<translation>Keskustelun otsikko</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Enter 1-128 characters</source>
|
<source>Enter 1-128 characters</source>
|
||||||
<translation type="unfinished">Syötä 1-128 merkkiä</translation>
|
<translation>Syötä 1-128 merkkiä</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>There is no information text available, yet.</source>
|
<source>There is no information text available, yet.</source>
|
||||||
<translation type="unfinished">Tietoa ei ole vielä saatavilla.</translation>
|
<translation>Tietoa ei ole vielä saatavilla.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Info</source>
|
<source>Info</source>
|
||||||
<comment>group or user infotext header</comment>
|
<comment>group or user infotext header</comment>
|
||||||
<translation type="unfinished">Tietoa</translation>
|
<translation>Tietoa</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Phone Number</source>
|
<source>Phone Number</source>
|
||||||
<comment>user phone number header</comment>
|
<comment>user phone number header</comment>
|
||||||
<translation type="unfinished">Puhelinnumero</translation>
|
<translation>Puhelinnumero</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Invite Link</source>
|
<source>Invite Link</source>
|
||||||
<comment>header</comment>
|
<comment>header</comment>
|
||||||
<translation type="unfinished">Kutsulinkki</translation>
|
<translation>Kutsulinkki</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>The Invite Link has been copied to the clipboard.</source>
|
<source>The Invite Link has been copied to the clipboard.</source>
|
||||||
<translation type="unfinished">Kutsulinkki on kopioitu leikepöydälle.</translation>
|
<translation>Kutsulinkki on kopioitu leikepöydälle.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>%1, %2</source>
|
<source>%1, %2</source>
|
||||||
<comment>combination of '[x members], [y online]', which are separate translations</comment>
|
<comment>combination of '[x members], [y online]', which are separate translations</comment>
|
||||||
<translation type="unfinished"></translation>
|
<translation>%1, %2</translation>
|
||||||
</message>
|
</message>
|
||||||
<message numerus="yes">
|
<message numerus="yes">
|
||||||
<source>%1 online</source>
|
<source>%1 online</source>
|
||||||
<translation type="unfinished">
|
<translation>
|
||||||
<numerusform></numerusform>
|
<numerusform>%1 paikalla</numerusform>
|
||||||
<numerusform></numerusform>
|
<numerusform>%1 paikalla</numerusform>
|
||||||
</translation>
|
</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
|
@ -217,17 +217,17 @@
|
||||||
<message>
|
<message>
|
||||||
<source>Groups</source>
|
<source>Groups</source>
|
||||||
<comment>Button: groups in common (short)</comment>
|
<comment>Button: groups in common (short)</comment>
|
||||||
<translation type="unfinished">Ryhmät</translation>
|
<translation>Ryhmät</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Members</source>
|
<source>Members</source>
|
||||||
<comment>Button: Group Members</comment>
|
<comment>Button: Group Members</comment>
|
||||||
<translation type="unfinished">Jäsenet</translation>
|
<translation>Jäsenet</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Settings</source>
|
<source>Settings</source>
|
||||||
<comment>Button: Chat Settings</comment>
|
<comment>Button: Chat Settings</comment>
|
||||||
<translation type="unfinished">Asetukset</translation>
|
<translation>Asetukset</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
|
@ -273,16 +273,16 @@
|
||||||
</message>
|
</message>
|
||||||
<message numerus="yes">
|
<message numerus="yes">
|
||||||
<source>%1 members</source>
|
<source>%1 members</source>
|
||||||
<translation type="unfinished">
|
<translation>
|
||||||
|
<numerusform>%1 jäsen</numerusform>
|
||||||
<numerusform>%1 jäsentä</numerusform>
|
<numerusform>%1 jäsentä</numerusform>
|
||||||
<numerusform></numerusform>
|
|
||||||
</translation>
|
</translation>
|
||||||
</message>
|
</message>
|
||||||
<message numerus="yes">
|
<message numerus="yes">
|
||||||
<source>%1 subscribers</source>
|
<source>%1 subscribers</source>
|
||||||
<translation type="unfinished">
|
<translation>
|
||||||
|
<numerusform>%1 tilaaja</numerusform>
|
||||||
<numerusform>%1 tilaajaa</numerusform>
|
<numerusform>%1 tilaajaa</numerusform>
|
||||||
<numerusform></numerusform>
|
|
||||||
</translation>
|
</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
@ -331,48 +331,48 @@
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Select Messages</source>
|
<source>Select Messages</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Valitse viestejä</translation>
|
||||||
</message>
|
</message>
|
||||||
<message numerus="yes">
|
<message numerus="yes">
|
||||||
<source>%Ln Messages deleted</source>
|
<source>%Ln Messages deleted</source>
|
||||||
<translation type="unfinished">
|
<translation>
|
||||||
<numerusform></numerusform>
|
<numerusform>%Ln Viesti poistettu</numerusform>
|
||||||
<numerusform></numerusform>
|
<numerusform>%Ln Viestiä poistettu</numerusform>
|
||||||
</translation>
|
</translation>
|
||||||
</message>
|
</message>
|
||||||
<message numerus="yes">
|
<message numerus="yes">
|
||||||
<source>%Ln messages have been copied</source>
|
<source>%Ln messages have been copied</source>
|
||||||
<translation type="unfinished">
|
<translation>
|
||||||
<numerusform></numerusform>
|
<numerusform>%Ln viesti kopioitu</numerusform>
|
||||||
<numerusform></numerusform>
|
<numerusform>%Ln viestiä kopioitu</numerusform>
|
||||||
</translation>
|
</translation>
|
||||||
</message>
|
</message>
|
||||||
<message numerus="yes">
|
<message numerus="yes">
|
||||||
<source>Forward %Ln messages</source>
|
<source>Forward %Ln messages</source>
|
||||||
<comment>dialog header</comment>
|
<comment>dialog header</comment>
|
||||||
<translation type="unfinished">
|
<translation>
|
||||||
<numerusform></numerusform>
|
<numerusform>Välitä %Ln viesti</numerusform>
|
||||||
<numerusform></numerusform>
|
<numerusform>Välitä %Ln viestiä</numerusform>
|
||||||
</translation>
|
</translation>
|
||||||
</message>
|
</message>
|
||||||
<message numerus="yes">
|
<message numerus="yes">
|
||||||
<source>%Ln messages selected</source>
|
<source>%Ln messages selected</source>
|
||||||
<comment>number of messages selected</comment>
|
<comment>number of messages selected</comment>
|
||||||
<translation type="unfinished">
|
<translation>
|
||||||
<numerusform></numerusform>
|
<numerusform>%Ln viesti valittu</numerusform>
|
||||||
<numerusform></numerusform>
|
<numerusform>%Ln viestiä valittu</numerusform>
|
||||||
</translation>
|
</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>%1, %2</source>
|
<source>%1, %2</source>
|
||||||
<comment>combination of '[x members], [y online]', which are separate translations</comment>
|
<comment>combination of '[x members], [y online]', which are separate translations</comment>
|
||||||
<translation type="unfinished"></translation>
|
<translation>%1, %2</translation>
|
||||||
</message>
|
</message>
|
||||||
<message numerus="yes">
|
<message numerus="yes">
|
||||||
<source>%1 online</source>
|
<source>%1 online</source>
|
||||||
<translation type="unfinished">
|
<translation>
|
||||||
<numerusform></numerusform>
|
<numerusform>%1 paikalla</numerusform>
|
||||||
<numerusform></numerusform>
|
<numerusform>%1 paikalla</numerusform>
|
||||||
</translation>
|
</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
|
@ -380,11 +380,11 @@
|
||||||
<name>ChatSelectionPage</name>
|
<name>ChatSelectionPage</name>
|
||||||
<message>
|
<message>
|
||||||
<source>Select Chat</source>
|
<source>Select Chat</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Valitse keskustelu</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>You don't have any chats yet.</source>
|
<source>You don't have any chats yet.</source>
|
||||||
<translation type="unfinished">Sinulla ei ole vielä keskusteluja.</translation>
|
<translation>Sinulla ei ole vielä keskusteluja.</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
|
@ -866,11 +866,11 @@
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Select Message</source>
|
<source>Select Message</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Valitse viesti</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Pin Message</source>
|
<source>Pin Message</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Kiinnitä viesti</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
|
@ -884,11 +884,11 @@
|
||||||
<name>MessageOverlayFlickable</name>
|
<name>MessageOverlayFlickable</name>
|
||||||
<message>
|
<message>
|
||||||
<source>You</source>
|
<source>You</source>
|
||||||
<translation type="unfinished">Sinä</translation>
|
<translation>Sinä</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>This message was forwarded. Original author: %1</source>
|
<source>This message was forwarded. Original author: %1</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Välitetty viesti. Alkuperäinen lähettäjä: %1</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
|
@ -926,9 +926,9 @@
|
||||||
<name>NotificationManager</name>
|
<name>NotificationManager</name>
|
||||||
<message numerus="yes">
|
<message numerus="yes">
|
||||||
<source>%Ln unread messages</source>
|
<source>%Ln unread messages</source>
|
||||||
<translation type="unfinished">
|
<translation>
|
||||||
<numerusform></numerusform>
|
<numerusform>%Ln lukematon viesti</numerusform>
|
||||||
<numerusform></numerusform>
|
<numerusform>%Ln lukematonta viestiä</numerusform>
|
||||||
</translation>
|
</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
|
@ -983,15 +983,15 @@
|
||||||
<name>PinnedMessageItem</name>
|
<name>PinnedMessageItem</name>
|
||||||
<message>
|
<message>
|
||||||
<source>You</source>
|
<source>You</source>
|
||||||
<translation type="unfinished">Sinä</translation>
|
<translation>Sinä</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Pinned Message</source>
|
<source>Pinned Message</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Kiinnitetty viesti</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Message unpinned</source>
|
<source>Message unpinned</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Viestin kiinnitys poistettu</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
|
@ -1084,9 +1084,9 @@
|
||||||
<message numerus="yes">
|
<message numerus="yes">
|
||||||
<source>%Ln%</source>
|
<source>%Ln%</source>
|
||||||
<comment>% of votes for option</comment>
|
<comment>% of votes for option</comment>
|
||||||
<translation type="unfinished">
|
<translation>
|
||||||
|
<numerusform>%Ln%</numerusform>
|
||||||
<numerusform>%Ln%</numerusform>
|
<numerusform>%Ln%</numerusform>
|
||||||
<numerusform></numerusform>
|
|
||||||
</translation>
|
</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
@ -1153,9 +1153,9 @@
|
||||||
<message numerus="yes">
|
<message numerus="yes">
|
||||||
<source>%Ln%</source>
|
<source>%Ln%</source>
|
||||||
<comment>% of votes for option</comment>
|
<comment>% of votes for option</comment>
|
||||||
<translation type="unfinished">
|
<translation>
|
||||||
|
<numerusform>%Ln%</numerusform>
|
||||||
<numerusform>%Ln%</numerusform>
|
<numerusform>%Ln%</numerusform>
|
||||||
<numerusform></numerusform>
|
|
||||||
</translation>
|
</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
@ -1236,7 +1236,7 @@
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Notification turns on the display</source>
|
<source>Notification turns on the display</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Ilmoitus kytkee näytön päälle</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
|
@ -1269,7 +1269,7 @@
|
||||||
<name>WebPagePreview</name>
|
<name>WebPagePreview</name>
|
||||||
<message>
|
<message>
|
||||||
<source>Preview not supported for this link...</source>
|
<source>Preview not supported for this link...</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Esikatselua ei tueta tälle linkille...</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
|
@ -1630,11 +1630,11 @@
|
||||||
<message>
|
<message>
|
||||||
<source>sent a video note</source>
|
<source>sent a video note</source>
|
||||||
<comment>myself</comment>
|
<comment>myself</comment>
|
||||||
<translation type="unfinished"></translation>
|
<translation>lähetit videoviestin</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>sent a video note</source>
|
<source>sent a video note</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>lähetti videoviestin</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>You are already a member of this chat.</source>
|
<source>You are already a member of this chat.</source>
|
||||||
|
|
|
@ -99,84 +99,84 @@
|
||||||
<name>ChatInformationPageContent</name>
|
<name>ChatInformationPageContent</name>
|
||||||
<message numerus="yes">
|
<message numerus="yes">
|
||||||
<source>%1 subscribers</source>
|
<source>%1 subscribers</source>
|
||||||
<translation type="unfinished">
|
<translation>
|
||||||
|
<numerusform>%1 abbonato</numerusform>
|
||||||
<numerusform>%1 abbonati</numerusform>
|
<numerusform>%1 abbonati</numerusform>
|
||||||
<numerusform></numerusform>
|
|
||||||
</translation>
|
</translation>
|
||||||
</message>
|
</message>
|
||||||
<message numerus="yes">
|
<message numerus="yes">
|
||||||
<source>%1 members</source>
|
<source>%1 members</source>
|
||||||
<translation type="unfinished">
|
<translation>
|
||||||
|
<numerusform>%1 membro</numerusform>
|
||||||
<numerusform>%1 membri</numerusform>
|
<numerusform>%1 membri</numerusform>
|
||||||
<numerusform></numerusform>
|
|
||||||
</translation>
|
</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Leave Chat</source>
|
<source>Leave Chat</source>
|
||||||
<translation type="unfinished">Lascia chat</translation>
|
<translation>Lascia chat</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Join Chat</source>
|
<source>Join Chat</source>
|
||||||
<translation type="unfinished">Entra nella chat</translation>
|
<translation>Entra nella chat</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Leaving chat</source>
|
<source>Leaving chat</source>
|
||||||
<translation type="unfinished">Lascia chat</translation>
|
<translation>Lascia chat</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Unmute Chat</source>
|
<source>Unmute Chat</source>
|
||||||
<translation type="unfinished">Riattiva suoni chat</translation>
|
<translation>Riattiva suoni chat</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Mute Chat</source>
|
<source>Mute Chat</source>
|
||||||
<translation type="unfinished">Silenzia chat</translation>
|
<translation>Silenzia chat</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Unknown</source>
|
<source>Unknown</source>
|
||||||
<translation type="unfinished">Sconosciuto</translation>
|
<translation>Sconosciuto</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Chat Title</source>
|
<source>Chat Title</source>
|
||||||
<comment>group title header</comment>
|
<comment>group title header</comment>
|
||||||
<translation type="unfinished">Titolo chat</translation>
|
<translation>Titolo chat</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Enter 1-128 characters</source>
|
<source>Enter 1-128 characters</source>
|
||||||
<translation type="unfinished">Inserisci da 1 a 128 caratteri</translation>
|
<translation>Inserisci da 1 a 128 caratteri</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>There is no information text available, yet.</source>
|
<source>There is no information text available, yet.</source>
|
||||||
<translation type="unfinished">Attualmente non è disponibile nessuna informazione.</translation>
|
<translation>Nessuna informazione disponibile.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Info</source>
|
<source>Info</source>
|
||||||
<comment>group or user infotext header</comment>
|
<comment>group or user infotext header</comment>
|
||||||
<translation type="unfinished">Info</translation>
|
<translation>Info</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Phone Number</source>
|
<source>Phone Number</source>
|
||||||
<comment>user phone number header</comment>
|
<comment>user phone number header</comment>
|
||||||
<translation type="unfinished">Telefono</translation>
|
<translation>Telefono</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Invite Link</source>
|
<source>Invite Link</source>
|
||||||
<comment>header</comment>
|
<comment>header</comment>
|
||||||
<translation type="unfinished">Link d'invito</translation>
|
<translation>Link d'invito</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>The Invite Link has been copied to the clipboard.</source>
|
<source>The Invite Link has been copied to the clipboard.</source>
|
||||||
<translation type="unfinished">Il link d'invito è stato copiato nella clipboard.</translation>
|
<translation>Il link d'invito è stato copiato.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>%1, %2</source>
|
<source>%1, %2</source>
|
||||||
<comment>combination of '[x members], [y online]', which are separate translations</comment>
|
<comment>combination of '[x members], [y online]', which are separate translations</comment>
|
||||||
<translation type="unfinished"></translation>
|
<translation>%1, %2</translation>
|
||||||
</message>
|
</message>
|
||||||
<message numerus="yes">
|
<message numerus="yes">
|
||||||
<source>%1 online</source>
|
<source>%1 online</source>
|
||||||
<translation type="unfinished">
|
<translation>
|
||||||
<numerusform></numerusform>
|
<numerusform>%1 online</numerusform>
|
||||||
<numerusform></numerusform>
|
<numerusform>%1 online</numerusform>
|
||||||
</translation>
|
</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
|
@ -217,17 +217,17 @@
|
||||||
<message>
|
<message>
|
||||||
<source>Groups</source>
|
<source>Groups</source>
|
||||||
<comment>Button: groups in common (short)</comment>
|
<comment>Button: groups in common (short)</comment>
|
||||||
<translation type="unfinished">Gruppi</translation>
|
<translation>Gruppi</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Members</source>
|
<source>Members</source>
|
||||||
<comment>Button: Group Members</comment>
|
<comment>Button: Group Members</comment>
|
||||||
<translation type="unfinished">Membri</translation>
|
<translation>Membri</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Settings</source>
|
<source>Settings</source>
|
||||||
<comment>Button: Chat Settings</comment>
|
<comment>Button: Chat Settings</comment>
|
||||||
<translation type="unfinished">Impostazioni</translation>
|
<translation>Impostazioni</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
|
@ -269,20 +269,20 @@
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Your message</source>
|
<source>Your message</source>
|
||||||
<translation>Tuo messaggio</translation>
|
<translation>Scrivi un messaggio...</translation>
|
||||||
</message>
|
</message>
|
||||||
<message numerus="yes">
|
<message numerus="yes">
|
||||||
<source>%1 members</source>
|
<source>%1 members</source>
|
||||||
<translation type="unfinished">
|
<translation>
|
||||||
|
<numerusform>%1 membro</numerusform>
|
||||||
<numerusform>%1 membri</numerusform>
|
<numerusform>%1 membri</numerusform>
|
||||||
<numerusform></numerusform>
|
|
||||||
</translation>
|
</translation>
|
||||||
</message>
|
</message>
|
||||||
<message numerus="yes">
|
<message numerus="yes">
|
||||||
<source>%1 subscribers</source>
|
<source>%1 subscribers</source>
|
||||||
<translation type="unfinished">
|
<translation>
|
||||||
|
<numerusform>%1 abbonato</numerusform>
|
||||||
<numerusform>%1 abbonati</numerusform>
|
<numerusform>%1 abbonati</numerusform>
|
||||||
<numerusform></numerusform>
|
|
||||||
</translation>
|
</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
@ -331,48 +331,48 @@
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Select Messages</source>
|
<source>Select Messages</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Seleziona messaggi</translation>
|
||||||
</message>
|
</message>
|
||||||
<message numerus="yes">
|
<message numerus="yes">
|
||||||
<source>%Ln Messages deleted</source>
|
<source>%Ln Messages deleted</source>
|
||||||
<translation type="unfinished">
|
<translation>
|
||||||
<numerusform></numerusform>
|
<numerusform>%Ln messaggio cancellato</numerusform>
|
||||||
<numerusform></numerusform>
|
<numerusform>%Ln messaggi cancellati</numerusform>
|
||||||
</translation>
|
</translation>
|
||||||
</message>
|
</message>
|
||||||
<message numerus="yes">
|
<message numerus="yes">
|
||||||
<source>%Ln messages have been copied</source>
|
<source>%Ln messages have been copied</source>
|
||||||
<translation type="unfinished">
|
<translation>
|
||||||
<numerusform></numerusform>
|
<numerusform>%Ln messaggio copiato</numerusform>
|
||||||
<numerusform></numerusform>
|
<numerusform>%Ln messaggi copiati</numerusform>
|
||||||
</translation>
|
</translation>
|
||||||
</message>
|
</message>
|
||||||
<message numerus="yes">
|
<message numerus="yes">
|
||||||
<source>Forward %Ln messages</source>
|
<source>Forward %Ln messages</source>
|
||||||
<comment>dialog header</comment>
|
<comment>dialog header</comment>
|
||||||
<translation type="unfinished">
|
<translation>
|
||||||
<numerusform></numerusform>
|
<numerusform>Inoltra %Ln messaggio</numerusform>
|
||||||
<numerusform></numerusform>
|
<numerusform>Inoltra %Ln messaggi</numerusform>
|
||||||
</translation>
|
</translation>
|
||||||
</message>
|
</message>
|
||||||
<message numerus="yes">
|
<message numerus="yes">
|
||||||
<source>%Ln messages selected</source>
|
<source>%Ln messages selected</source>
|
||||||
<comment>number of messages selected</comment>
|
<comment>number of messages selected</comment>
|
||||||
<translation type="unfinished">
|
<translation>
|
||||||
<numerusform></numerusform>
|
<numerusform>%Ln messaggio selezionato</numerusform>
|
||||||
<numerusform></numerusform>
|
<numerusform>%Ln messaggi selezionati</numerusform>
|
||||||
</translation>
|
</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>%1, %2</source>
|
<source>%1, %2</source>
|
||||||
<comment>combination of '[x members], [y online]', which are separate translations</comment>
|
<comment>combination of '[x members], [y online]', which are separate translations</comment>
|
||||||
<translation type="unfinished"></translation>
|
<translation>%1, %2</translation>
|
||||||
</message>
|
</message>
|
||||||
<message numerus="yes">
|
<message numerus="yes">
|
||||||
<source>%1 online</source>
|
<source>%1 online</source>
|
||||||
<translation type="unfinished">
|
<translation>
|
||||||
<numerusform></numerusform>
|
<numerusform>%1 online</numerusform>
|
||||||
<numerusform></numerusform>
|
<numerusform>%1 online</numerusform>
|
||||||
</translation>
|
</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
|
@ -380,11 +380,11 @@
|
||||||
<name>ChatSelectionPage</name>
|
<name>ChatSelectionPage</name>
|
||||||
<message>
|
<message>
|
||||||
<source>Select Chat</source>
|
<source>Select Chat</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Seleziona chat</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>You don't have any chats yet.</source>
|
<source>You don't have any chats yet.</source>
|
||||||
<translation type="unfinished">Non hai nessuna chat.</translation>
|
<translation>Nessuna chat presente.</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
|
@ -865,11 +865,11 @@
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Select Message</source>
|
<source>Select Message</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Seleziona messaggio</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Pin Message</source>
|
<source>Pin Message</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Metti messaggio in evidenza</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
|
@ -883,11 +883,11 @@
|
||||||
<name>MessageOverlayFlickable</name>
|
<name>MessageOverlayFlickable</name>
|
||||||
<message>
|
<message>
|
||||||
<source>You</source>
|
<source>You</source>
|
||||||
<translation type="unfinished">Tu</translation>
|
<translation>Tu</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>This message was forwarded. Original author: %1</source>
|
<source>This message was forwarded. Original author: %1</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Questo è un messaggio inoltrato. Autore originale: %1</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
|
@ -925,9 +925,9 @@
|
||||||
<name>NotificationManager</name>
|
<name>NotificationManager</name>
|
||||||
<message numerus="yes">
|
<message numerus="yes">
|
||||||
<source>%Ln unread messages</source>
|
<source>%Ln unread messages</source>
|
||||||
<translation type="unfinished">
|
<translation>
|
||||||
<numerusform></numerusform>
|
<numerusform>%Ln messaggio non letto</numerusform>
|
||||||
<numerusform></numerusform>
|
<numerusform>%Ln messaggi non letti</numerusform>
|
||||||
</translation>
|
</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
|
@ -982,15 +982,15 @@
|
||||||
<name>PinnedMessageItem</name>
|
<name>PinnedMessageItem</name>
|
||||||
<message>
|
<message>
|
||||||
<source>You</source>
|
<source>You</source>
|
||||||
<translation type="unfinished">Tu</translation>
|
<translation>Tu</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Pinned Message</source>
|
<source>Pinned Message</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Messaggio in evidenza</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Message unpinned</source>
|
<source>Message unpinned</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Messaggio non più in evidenza</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
|
@ -1083,9 +1083,9 @@
|
||||||
<message numerus="yes">
|
<message numerus="yes">
|
||||||
<source>%Ln%</source>
|
<source>%Ln%</source>
|
||||||
<comment>% of votes for option</comment>
|
<comment>% of votes for option</comment>
|
||||||
<translation type="unfinished">
|
<translation>
|
||||||
|
<numerusform>%Ln%</numerusform>
|
||||||
<numerusform>%Ln%</numerusform>
|
<numerusform>%Ln%</numerusform>
|
||||||
<numerusform></numerusform>
|
|
||||||
</translation>
|
</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
@ -1152,9 +1152,9 @@
|
||||||
<message numerus="yes">
|
<message numerus="yes">
|
||||||
<source>%Ln%</source>
|
<source>%Ln%</source>
|
||||||
<comment>% of votes for option</comment>
|
<comment>% of votes for option</comment>
|
||||||
<translation type="unfinished">
|
<translation>
|
||||||
|
<numerusform>%Ln%</numerusform>
|
||||||
<numerusform>%Ln%</numerusform>
|
<numerusform>%Ln%</numerusform>
|
||||||
<numerusform></numerusform>
|
|
||||||
</translation>
|
</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
@ -1235,7 +1235,7 @@
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Notification turns on the display</source>
|
<source>Notification turns on the display</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Notifiche attivano il display</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
|
@ -1268,7 +1268,7 @@
|
||||||
<name>WebPagePreview</name>
|
<name>WebPagePreview</name>
|
||||||
<message>
|
<message>
|
||||||
<source>Preview not supported for this link...</source>
|
<source>Preview not supported for this link...</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Anteprima non supportata per questo link...</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
|
@ -1629,11 +1629,11 @@
|
||||||
<message>
|
<message>
|
||||||
<source>sent a video note</source>
|
<source>sent a video note</source>
|
||||||
<comment>myself</comment>
|
<comment>myself</comment>
|
||||||
<translation type="unfinished"></translation>
|
<translation>hai inviato un videomessaggio</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>sent a video note</source>
|
<source>sent a video note</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>ha inviato un videomessaggio</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>You are already a member of this chat.</source>
|
<source>You are already a member of this chat.</source>
|
||||||
|
|
|
@ -1235,7 +1235,7 @@
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Notification turns on the display</source>
|
<source>Notification turns on the display</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Avisering tänder skärmen</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
|
|
|
@ -1216,7 +1216,7 @@
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Notification turns on the display</source>
|
<source>Notification turns on the display</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>收到通知时点亮屏幕</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
|
|