Compare commits

..

408 commits

Author SHA1 Message Date
Sebastian Wolf
0236586e44 Switch to gh tool for release creation, see https://github.com/actions/runner-images/issues/8362 2023-12-03 23:52:21 +03:00
Sebastian Wolf
e13c7ae68c Prepare 0.17 release 2023-12-03 23:52:19 +03:00
Sebastian Wolf
1d68123ea1 Restore content width in landscape as per discussion in #540 2023-12-03 23:52:06 +03:00
Slava Monich
cf7b706582 Tweaked the logic of moving reactions into the view (#543)
There's no need to reposition list items if reactions bar are already
fully visible.
2023-12-03 23:50:55 +03:00
free software
c42d030d02 Update harbour-fernschreiber-es.ts (#542) 2023-12-03 23:50:55 +03:00
Sebastian Wolf
edfce9b492 Highlight message that was jumped to 2023-12-03 23:50:55 +03:00
mbarashkov
e5d1ecd9f3 Jump to post from quote (#538)
* Jump to post from quote

* Add a setting to go to quoted message.

---------

Co-authored-by: Mikhail Barashkov <git@mbarashkov.ru>
2023-12-03 23:50:23 +03:00
Sebastian Wolf
42a7813776 Not only tablets have widescreen ;) 2023-12-03 23:50:21 +03:00
mbarashkov
627faba0db Improve chat UI on tablets by making messages narrower and limiting content items width as well. (#540)
Co-authored-by: Mikhail Barashkov <git@mbarashkov.ru>
2023-12-03 23:49:14 +03:00
Slava Monich
a4ebaf52f5 Fix broken signal-slot connection (#541)
QObject::connect: No such signal TDLibWrapper::chatAvailableReactionsUpdated(qlonglong, QString) in src/chatlistmodel.cpp:410
2023-12-03 23:46:48 +03:00
Sebastian Wolf
660fe527f2 Handle event updateChatAvailableReactions 2023-12-03 23:46:46 +03:00
Sebastian Wolf
1a0ed7f298 Only one star per list, restore users in poll results 2023-12-03 23:46:30 +03:00
062f5d3811 Merge pull request 'upstream_changes_251123' (#14) from upstream_changes_251123 into master
Reviewed-on: #14
2023-11-25 13:50:00 +03:00
034c70542f Update build number 2023-11-25 13:49:08 +03:00
Patrick Hervieux
ef244c3319 Update French translation (#532)
Co-authored-by: Patrick Hervieux <patrick.hervieux+git@pherjung.ch>
2023-11-25 13:34:26 +03:00
free software
556505894c Update harbour-fernschreiber-es.ts (#531) 2023-11-25 13:34:11 +03:00
Sebastian Wolf
7c63ad66f9 Interaction hint for new reactions behavior 2023-11-25 13:33:45 +03:00
Sebastian Wolf
26772a48eb Show reactions on double-click 2023-11-25 13:33:13 +03:00
Slava Monich
2ded14deda Added "unread mention" indicator to the chat list (#530)
It's displayed in place of the "unread reaction" indicator. In case
if there are both unread mentions and reactions, "unread mention"
takes precedence.
2023-11-25 13:31:50 +03:00
free software
465c082328 Update harbour-fernschreiber-es.ts (#529)
* Update harbour-fernschreiber-es.ts

* Update harbour-fernschreiber-es.ts
2023-11-25 13:31:35 +03:00
Slava Monich
25e6660e8e Updated Russian translation (#528) 2023-11-25 13:31:25 +03:00
f58afe92cb Merge pull request 'upstream_changes' (#13) from upstream_changes into master
Reviewed-on: #13
2023-11-21 14:24:05 +03:00
2b3ca0dff9 Update gitignore 2023-11-21 14:23:24 +03:00
Sebastian Wolf
1e88a31f90 Display reactions on last message again 2023-11-21 14:18:20 +03:00
Sebastian Wolf
026d32c92a Restore search in chats 2023-11-21 14:18:20 +03:00
Sebastian Wolf
a28b9df6b5 Minor tweaks for the new session timout setting 2023-11-21 14:18:12 +03:00
d2bde99e1f Merge pull request 'Revert executable rename' (#12) from revert_executable_rename into master
Reviewed-on: #12
2023-11-20 22:31:56 +03:00
f8ffedb5db Revert executable rename 2023-11-20 19:31:56 +00:00
4b7d17c02f Merge pull request 'upstream_changes' (#11) from upstream_changes into master
Reviewed-on: #11
2023-11-20 00:54:47 +03:00
0ae98f96b5 Release version ++ 2023-11-19 21:54:39 +00:00
Slava Monich
fb3d314ee2 Added UI for configuring session inactivity timeout (#527) 2023-11-20 00:50:41 +03:00
Sebastian Wolf
b032b32db1 More places affected by new username handling 2023-11-20 00:50:37 +03:00
Sebastian Wolf
63f4b37655 Hide unsupported emojis for reactions 2023-11-20 00:49:35 +03:00
Sebastian Wolf
bdc0423bf3 Make replies backward-compatible again 2023-11-20 00:49:12 +03:00
749f05816c Merge pull request 'adapt_to_changes_in_tdlib' (#10) from adapt_to_changes_in_tdlib into master
Reviewed-on: #10
2023-11-19 16:35:16 +03:00
06ebe95309 Fix some validator warnings 2023-11-19 16:35:45 +03:00
Sebastian Wolf
40ec4b0968 Fix chat permissions handling 2023-11-19 16:16:46 +03:00
Slava Monich
c4c9dc83c0 Tweaked notification feedback settings UI (#526) 2023-11-19 16:16:36 +03:00
9a37db94ae Update tdlib headers 2023-11-19 16:11:29 +03:00
Sebastian Wolf
0ba3a8cd7f Trouble with usernames 2023-11-19 12:23:42 +03:00
Sebastian Wolf
0aeaf50c92 Some minor adjustments 2023-11-19 12:23:23 +03:00
Johannes Bachmann
a9947ff9f7 Always append last message content to notifications (#514)
* always append last message content to notifications

* make "always show notification" configurable

* add unfinished translations

* Fix spacing if no sender is printed
2023-11-19 12:22:22 +03:00
Peter G
c7324c020b Add option to suppress notification previews (#521)
* Add Switch in Settings

* Don't set notification preview body

* Support the setting in appSettings

* fixup! Add Switch in Settings

* Just show message count

* Also show only when notifications are enabled at all

---------

Co-authored-by: nephros <nemo@pgxperiiia10>
2023-11-19 12:22:13 +03:00
Peter G
46419b0960 Highlight unread Converstations (#513)
* Highlight unread conversations

See: #512

* make highlighting configurable

* more verbose variable names

* remove the rectangle gain, it is too annoying

* respect the setting

---------

Co-authored-by: nephros <nemo@pgxperiiia10>
2023-11-19 12:22:04 +03:00
Slava Monich
c1c8729023 Adapt to changes in reply message info (#525)
1.8.14:
https://github.com/tdlib/td/commit/fa94aba

1.8.21:
https://github.com/tdlib/td/commit/811a7c6
https://github.com/tdlib/td/commit/5216ea1
2023-11-19 12:21:17 +03:00
Sebastian Wolf
9bcc9ab690 Only expect chat partner information in private chats 2023-11-19 12:01:42 +03:00
Slava Monich
0b6a2db2f1 Adapt to changes in TdLib (#524)
* Adapt setTdlibParameters for TdLib > 1.8.5

For some reason tdlibParameters were inlined between 1.8.5 and 1.8.6
See https://github.com/tdlib/td/commit/f6a2ecd

* sponsoredMessage => sponsoredMessages in TdLib 1.8.8

See https://github.com/tdlib/td/commit/ec1310a

* Support another variant of messageReaction

The reaction field has changed from string to ReactionType somewhere
between 1.8.5 and 1.8.6

See https://github.com/tdlib/td/commit/b14708f

* Add support for new message reactions API

It has changed between 1.8.5 and 1.8.6

https://github.com/tdlib/td/commit/b14708f (ReactionType)
https://github.com/tdlib/td/commit/0b8e143 (ChatAvailableReactions)
https://github.com/tdlib/td/commit/6b2f6b4 (addMessageReaction)
https://github.com/tdlib/td/commit/d29d367 (updateActiveEmojiReactions)

etc.

* Highlight chosen reaction

* Support username in the new format

username attribute has been replaced with usernames in 1.8.8 and
now looks like this:

    "usernames": {
        "@type": "usernames",
        "active_usernames": [
            "whatever"
        ],
        "disabled_usernames": [
        ],
        "editable_username": "whatever"
    }

See https://github.com/tdlib/td/commit/897032e

* Support new reply_to message attribute

Since 1.8.15 it replaces reply_to_message_id and reply_in_chat_id.
Looks like this:

    "reply_to": {
        "@type": "messageReplyToMessage",
        "chat_id": -1001234567890,
        "is_quote_manual": false,
        "message_id": 234567890,
        "origin_send_date": 0
    },

See https://github.com/tdlib/td/commit/6116573

* Added support for MessageOrigin values

All of a sudden MessageForwardOrigin has been renamed into MessageOrigin
in TdLib 1.8.20 just because why not:

https://github.com/tdlib/td/commit/10c9e40
2023-11-19 12:01:27 +03:00
61a04b034a Merge pull request 'improve_unread_ballons' (#9) from sprainbrains/harbour-fernschreiber:improve_unread_ballons into master
Reviewed-on: #9
2023-11-18 22:38:58 +03:00
jgibbon
ca42a5e7e0 Add specific unread info for higher counts of unread messages 2023-11-18 22:38:44 +03:00
400cda8dcd Merge pull request 'origin_merged' (#8) from sprainbrains/harbour-fernschreiber:origin_merged into master
Reviewed-on: #8
2023-11-18 22:36:19 +03:00
fe50ead4ee Merged 2023-10-14 00:21:35 +03:00
f1717cbd29 Merge remote-tracking branch 'origin_sailfish/master' into origin_merged 2023-10-14 00:19:37 +03:00
Sebastian Wolf
5394fde136
Update chat list more reliably 2023-08-08 22:50:04 +02:00
1ad324aa23 Merge pull request 'Fixed size of background circle for Unread messages' (#7) from sprainbrains/harbour-fernschreiber:unread_message_background_fix into master
Reviewed-on: #7
2023-08-07 14:17:38 +03:00
59b99a0a28 Fixed size of background circle for Unread messages 2023-08-03 15:02:34 +03:00
12dbac7480 build number ++ 2023-07-12 01:31:25 +03:00
258466beeb Merge pull request 'remove own id from messages title' (#6) from remove_title_on_own_messages_4 into master
Reviewed-on: #6
2023-07-12 01:28:18 +03:00
656e8ccfe7 left margin for own messages in private chats 2023-07-12 01:27:18 +03:00
22930628ae wide message without left margin 2023-07-12 01:12:53 +03:00
0d26167ee3 remove left margin on own messages 2023-07-10 01:29:00 +03:00
723105382d remove own id from messages title 2023-07-09 15:16:06 +03:00
c9773fb5ab Merge pull request 'fix_own_message_ui_3' (#4) from fix_own_message_ui_3 into master
Reviewed-on: #4
2023-07-09 14:43:42 +03:00
51227c1323 forgot desktop file 2023-07-09 14:43:18 +03:00
aac7fd7328 remowed right align on own messages 2023-07-09 14:43:18 +03:00
f3dd33c4ca removed sailfish contact sync support 2023-07-09 14:43:18 +03:00
Sebastian Wolf
83f0c54f8b Switch to icon-m-video as placeholder 2023-07-09 14:43:18 +03:00
71d1831ed3 Merge pull request 'aurora_build' (#2) from aurora_build into master
Reviewed-on: #2
2023-07-08 10:32:41 +03:00
Sebastian Wolf
29621b739a
Switch to icon-m-video as placeholder 2023-06-20 09:46:01 +02:00
Denis Fedoseev
0b91948141 project build settings were modified 2023-04-04 10:54:18 +03:00
Denis Fedoseev
9d37635500 мелкие фиксы для валидатора 2023-04-04 10:53:39 +03:00
okruhliak
df6322c712 Update harbour-fernschreiber-sk.ts 2023-02-27 21:27:26 +01:00
free software
5de2e94f32 Update harbour-fernschreiber-es.ts 2023-02-27 11:57:52 +01:00
Rustem Abzalov
85732c6fbc Update harbour-fernschreiber-ru.ts 2023-02-27 11:56:18 +01:00
Sebastian Wolf
a7ab0ed33a
Prepare support for contact sync with SFOS 4.5 2023-02-05 20:17:06 +01:00
Slava Monich
f152bbeb5b
Always show user or group id on the info page (#511)
And copy it to the clipboard on tap.
2023-02-05 15:52:06 +01:00
Peter G
b469135877
improve message when search yields no results (#507)
Co-authored-by: nephros <nemo@pgxperiiia10>
2023-02-05 15:41:04 +01:00
Sebastian Wolf
a9b6bf5817
React to network configuration changes, fixes #504 2022-07-10 22:39:52 +02:00
Sebastian Wolf
f91eb7936a
Release 0.16 2022-06-12 17:39:15 +02:00
Sebastian Wolf
5465d454f5
Pre-allocate vertical space for reactions 2022-06-08 23:13:34 +02:00
Sebastian Wolf
227c9146f2
Try Auto-Build with 4.4.0.58 2022-06-07 23:27:36 +02:00
Sebastian Wolf
ec2a1cf398
Changelog for 0.16 2022-06-07 22:51:39 +02:00
Sebastian Wolf
0a76ede35a
Only display reactions on chat list for now 2022-06-06 23:06:57 +02:00
Sebastian Wolf
99910a3f3a
Bring unread mention/reactions to chat list 2022-06-06 15:55:21 +02:00
Sebastian Wolf
9ff7a8371d
README: build instructions | Try to avoid ghost chats in main list 2022-05-30 23:22:57 +02:00
Sebastian Wolf
fa8a77a265
Next version will be 0.16 2022-05-29 22:17:37 +02:00
Sebastian Wolf
03fad6da6d
Reactions only for current message, restore animated stickers 2022-05-29 22:10:30 +02:00
Sebastian Wolf
0cc6f959fc
Option to mark all chat reactions as read 2022-05-24 21:19:15 +02:00
Sebastian Wolf
033f96b366
Display reactions to message 2022-05-23 23:33:17 +02:00
Sebastian Wolf
7c56bbeae4
Merge branch 'master' of github.com:Wunderfitz/harbour-fernschreiber 2022-05-01 23:51:53 +02:00
Sebastian Wolf
723371e9c9
Add reactions flickable to messages (on click) 2022-05-01 23:51:03 +02:00
Sebastian Wolf
2c53848d04
Merge pull request #493 from monich/sessions
Made sure that context menu stays inside the screen area
2022-05-01 23:50:34 +02:00
Slava Monich
23df9d05ee Made sure that context menu stays inside the screen area 2022-05-01 17:11:17 +03:00
Sebastian Wolf
0e7ae00a67
Workaround for t.me/+... links 2022-05-01 14:04:28 +02:00
Sebastian Wolf
81cf5b6852
Use normal URL dialog for t.me/+... links 2022-05-01 01:17:37 +02:00
Sebastian Wolf
6d6b07b9a9
Get available message reactions 2022-04-30 23:51:47 +02:00
Sebastian Wolf
4445be3302
Add 'RemovableMedia' to the list of requested permissions 2022-04-27 23:19:48 +02:00
Sebastian Wolf
d21cbc455a
Fix typo in changelog 2022-04-27 22:26:18 +02:00
Sebastian Wolf
32a55c48be
Bring notifications back to lock screen, changelog for 0.15 2022-04-27 22:06:57 +02:00
Sebastian Wolf
99bb0c7b85
Remove direct call to Pure Maps, use generic handler for geo: URIs now 2022-04-26 22:26:54 +02:00
Sebastian Wolf
46433109a6
Store own user information also when 'my_id' option arrives after user itself 2022-04-24 22:11:31 +02:00
Sebastian Wolf
679426abc1
xdg-open doesn't seem to work anymore on SFOS 4.4 2022-04-24 20:55:06 +02:00
Sebastian Wolf
1f589cc2da
Sailjail: Remove Contacts (Harbour-compliance), changelog for 0.14 2022-04-24 16:20:56 +02:00
Sebastian Wolf
856a16c640
Don't overwrite active status of attachment row for voice notes, fixes #481 2022-04-24 14:39:36 +02:00
Sebastian Wolf
ebe0143a8a
SFOS 4.4 removed notification categories, fixes #486 2022-04-22 00:08:04 +02:00
Sebastian Wolf
e40cf02baa
Merge pull request #485 from monich/view-mess
Adapt handling of sponsored messages to the new format
2022-04-21 22:57:36 +02:00
Sebastian Wolf
7c74c7c444
Merge pull request #487 from carlosgonz0/patch-37
Update harbour-fernschreiber-es.ts
2022-04-21 22:39:06 +02:00
Sebastian Wolf
9d6ff8e7d7
Some SailJail stuff, eventually need to become SFOS 4.4-ready 2022-04-21 22:37:14 +02:00
free software
3957cdbde4
Update harbour-fernschreiber-es.ts 2022-04-05 22:30:52 -04:00
Slava Monich
5f16156f01 Adapt handling of sponsored messages to the new format 2022-03-27 22:22:47 +03:00
Slava Monich
3c5bf563a6 Pass ids to TDLibWrapper::viewMessage as integers
Because they are integers
2022-03-27 22:22:47 +03:00
Sebastian Wolf
40f60cf4be
Add Emoji 14.0 support :) 2022-03-21 22:37:27 +01:00
Sebastian Wolf
ea409c4220
Merge pull request #484 from pherjung/french
Update French translation
2022-03-21 21:50:56 +01:00
Sebastian Wolf
016e0ffd51
Merge pull request #483 from okruhliak/master
Update harbour-fernschreiber-sk.ts
2022-03-21 21:50:14 +01:00
Sebastian Wolf
8c725826cb
Merge pull request #482 from monich/strikethrough
Support textEntityTypeStrikethrough
2022-03-21 21:47:33 +01:00
Patrick Hervieux
01cbed675b Update French translation 2022-03-07 21:55:56 +01:00
okruhliak
da4393043f Update harbour-fernschreiber-sk.ts 2022-02-26 17:29:33 +01:00
Slava Monich
11f055932a Support textEntityTypeStrikethrough
It's not currently working because of this QtQuick bug:

  https://bugreports.qt.io/browse/QTBUG-72376

but maybe someday it will.
2022-02-20 18:58:38 +02:00
Sebastian Wolf
0b350d083e
Merge branch 'master' of github.com:Wunderfitz/harbour-fernschreiber 2022-01-13 21:49:50 +01:00
Sebastian Wolf
79b901b63f
Prepare release 0.13 2022-01-13 21:49:27 +01:00
Sebastian Wolf
6c78b9335e
Merge pull request #480 from mipstux/mipstux-patch-1
Update harbour-fernschreiber-fr.ts
2022-01-13 20:41:57 +01:00
mipstux
5e1d9c3bdb
Update harbour-fernschreiber-fr.ts
Correction of the word Apparance in Apparence (line 1480)
2022-01-11 15:11:28 +01:00
Sebastian Wolf
dc5e76e1e9
Merge pull request #479 from arustg/patch-19
Update harbour-fernschreiber-ru.ts
2022-01-10 22:06:33 +01:00
Rustem Abzalov
7ae3e25fb4
Update harbour-fernschreiber-ru.ts 2022-01-09 16:27:35 +03:00
Sebastian Wolf
338fd3edd1
New release somewhen after TDLib upgrade 2022-01-07 23:58:45 +01:00
Sebastian Wolf
60c1ed6bb1
Try to optimize sticker set handling (less reload) 2022-01-07 23:00:28 +01:00
Sebastian Wolf
932f483b7a
TDLib 1.8.0: New format for sponsored messages 2022-01-07 22:03:58 +01:00
Sebastian Wolf
fcbf9d65f1
TDLib 1.8.0: Headers and sender -> sender_id changes 2022-01-07 19:18:04 +01:00
Sebastian Wolf
3a8615dbe3
'getChats' becomes 'loadChats' with TDLib 1.8 2022-01-05 21:43:54 +01:00
Sebastian Wolf
fd46780b89
Merge pull request #477 from monich/replies
Fixed message reference in Replies chat
2022-01-05 21:07:30 +01:00
Sebastian Wolf
699d65ff4a
Merge pull request #478 from monich/zero-message-id
Don't try to load message with zero id
2022-01-05 21:00:16 +01:00
Sebastian Wolf
dfb3c58153
Merge pull request #476 from monich/forward-fix
Fix forwarding to channels with creator/admin access
2022-01-05 20:53:04 +01:00
Sebastian Wolf
29cc5968c0
Merge pull request #475 from arustg/patch-18
Update harbour-fernschreiber-ru.ts
2022-01-05 20:52:23 +01:00
Sebastian Wolf
964aa1a833
Merge pull request #474 from pherjung/french
Update French translation
2022-01-05 20:51:44 +01:00
Sebastian Wolf
c979e23084
Merge pull request #473 from atlochowski/patch-16
Update harbour-fernschreiber-pl.ts
2022-01-05 20:50:08 +01:00
Sebastian Wolf
6fecd5e217
Merge pull request #472 from eson57/patch-1
Update harbour-fernschreiber-sv.ts
2022-01-05 20:49:43 +01:00
Slava Monich
a6d469a999 Don't try to load message with zero id
chatPage.messageIdToShow can be defined and yet be zero
2021-12-26 04:50:37 +02:00
Slava Monich
af5a2b6c92 Fixed message reference in Replies chat
According to td_api.tl:

@reply_in_chat_id If non-zero, the identifier of the chat to which the
replied message belongs; Currently, only messages in the Replies chat
can have different reply_in_chat_id and chat_id
2021-12-26 04:46:52 +02:00
Slava Monich
326a789b01 Fix forwarding to channels with creator/admin access 2021-12-25 19:29:26 +02:00
Rustem Abzalov
0c3afffbac
Update harbour-fernschreiber-ru.ts 2021-12-24 19:48:35 +03:00
Patrick Hervieux
b6fa0413d4 Update French translation 2021-12-20 13:02:47 +01:00
Atlochowski
d243f130a2
Update harbour-fernschreiber-pl.ts 2021-12-20 09:38:21 +01:00
Åke Engelbrektson
effc1f0a3b
Update harbour-fernschreiber-sv.ts
Update Swedish translation
2021-12-20 09:04:48 +01:00
Sebastian Wolf
985e7341dc
Changelog for 0.12 2021-12-19 22:07:16 +01:00
Sebastian Wolf
b4f64aaedd
Merge pull request #471 from monich/optimize
Remove (some) unused entries from QVariantMaps
2021-12-18 20:59:44 +01:00
Sebastian Wolf
55d046d318
Merge pull request #470 from monich/long-tap
Make "In reply to" properly react to taps
2021-12-18 20:37:44 +01:00
Slava Monich
7c8db1b739 Remove (some) unused entries from QVariantMaps
This may save megabytes of heap depending on how many stickers you have.
2021-12-18 06:40:06 +02:00
Slava Monich
1179c86a06 Make "In reply to" properly react to taps 2021-12-18 02:44:45 +02:00
Sebastian Wolf
833f5f1df7
Prepare 0.12 2021-12-16 21:54:30 +01:00
Sebastian Wolf
2d58239c34
Merge pull request #466 from monich/forward
Optimized forwarding
2021-12-16 21:19:50 +01:00
Sebastian Wolf
49b7047ac9
Some cleanup after #469 2021-12-15 23:56:46 +01:00
Sebastian Wolf
1ff1426b8b
Merge pull request #469 from nephros/sessions
Move Session options to Settings page
2021-12-15 22:34:08 +01:00
Sebastian Wolf
5ad93a777a
Try switching back to ChatListModel for opening chats via notifications 2021-12-15 22:07:14 +01:00
nephros
a5e5e36083 Use Remorse.popupAction instead of RemorseItem
RemorseItem sets anchors which we can't have in a Column
2021-12-15 12:17:05 +01:00
nephros
8349cb4377 fixup! fixup! Settings: add login info and logout to Profile 2021-12-15 12:02:32 +01:00
nephros
313a4d3827 fixup! Settings: add login info and logout to Profile 2021-12-15 11:57:48 +01:00
nephros
f33162801c Settings: add login info and logout to Profile 2021-12-15 11:55:29 +01:00
nephros
3786a0cb3f Sessions: remove profile info, restore list design 2021-12-15 10:36:26 +01:00
Slava Monich
68a2adc38d Optimized forwarding
It was a very strange experience. Now it's more like what an average
user would expect :)
2021-12-15 01:30:26 +02:00
Sebastian Wolf
fb4ce26dd3
Merge branch 'master' of github.com:Wunderfitz/harbour-fernschreiber 2021-12-14 23:22:40 +01:00
Sebastian Wolf
7bfa4a54e0
Some logging for some strange issues... 2021-12-14 23:22:21 +01:00
Sebastian Wolf
4929efadeb
Merge pull request #467 from carlosgonz0/patch-36
Update harbour-fernschreiber-es.ts
2021-12-14 22:02:10 +01:00
nephros
f8bc0df74a Tweak dimensions, fix ResponsiveGrid 2021-12-14 12:56:11 +01:00
nephros
4a04a55513 Move Session options to Settings page 2021-12-12 22:09:28 +01:00
Sebastian Wolf
fe9cd73798
Narrow down message link option for tg/resolve links 2021-12-11 23:22:32 +01:00
free software
7996291d0f
Update harbour-fernschreiber-es.ts 2021-12-11 16:07:30 -05:00
Sebastian Wolf
b8e5fb189c
Handle many direct message links properly, fixes #312 2021-12-11 18:29:31 +01:00
Sebastian Wolf
37518d06a6
Merge pull request #464 from monich/filter
Improve chat search performance
2021-12-09 22:11:05 +01:00
Sebastian Wolf
f6d6352879
Merge pull request #465 from monich/appearance
Hide appearance settings that are not applicable
2021-12-09 21:53:55 +01:00
Sebastian Wolf
02138e9115
Merge pull request #463 from carlosgonz0/patch-35
Add: Fully updated es.ts
2021-12-09 21:29:35 +01:00
Slava Monich
5da08c2a15 Hide appearance settings that are not applicable 2021-12-09 05:16:21 +02:00
Slava Monich
3c20eb7ca8 Improve chat search performance
Simple text search performs significantly better that regular
expressions.

Disconnecting search filter model from the source when search is off
should be good for performance because the filter model won't have to
unnecessarily react to the source model changes.
2021-12-09 02:13:18 +02:00
free software
65567b9a19
Add: Fully updated es.ts 2021-12-08 18:15:11 -05:00
Sebastian Wolf
5309dda94b
Avoid saving drafts for deleted users, fixes #439 2021-12-08 23:57:06 +01:00
Sebastian Wolf
02573e8d4e
Add option to delete private chat, see #439 2021-12-08 22:35:26 +01:00
Sebastian Wolf
c509616db9
Merge pull request #462 from monich/emoji-bg
Apply last remaining sticker option to animated emoji
2021-12-08 21:26:34 +01:00
Sebastian Wolf
57f2d71eca
Basic group chat members come in differently 2021-12-08 21:24:29 +01:00
Slava Monich
fb2c0a42c1 Apply last remaining sticker option to animated emoji
In all other respects their behavior is already equivalent
2021-12-08 20:52:57 +02:00
Sebastian Wolf
c6f50b8071
Merge pull request #461 from carlosgonz0/patch-34
Update harbour-fernschreiber-es.ts
2021-12-08 00:36:14 +01:00
Sebastian Wolf
54f4ce2dfe
Merge branch 'master' into patch-34 2021-12-08 00:36:02 +01:00
Sebastian Wolf
fcdf6cc4ed
Merge pull request #460 from monich/emoji
Describe emoji with emoji
2021-12-08 00:34:50 +01:00
Sebastian Wolf
0f4e0eaf58
Better support sponsored message types 2021-12-08 00:33:35 +01:00
Slava Monich
2fea47af1b Describe emoji with emoji
And stickers too
2021-12-08 00:57:54 +02:00
free software
25db7a5904
Update harbour-fernschreiber-es.ts 2021-12-07 16:58:23 -05:00
Sebastian Wolf
b5b0ec5ed1
Some fixes for #457 were missing... 2021-12-07 20:36:48 +01:00
Sebastian Wolf
b2e41a6421
Adapt to new chat member format, fixes #457 2021-12-06 23:51:54 +01:00
Sebastian Wolf
a92712d158
Merge pull request #456 from eson57/patch-1
Update harbour-fernschreiber-sv.ts
2021-12-06 22:28:08 +01:00
Sebastian Wolf
fa59ca0bb1
Merge pull request #455 from monich/optimal-mess
Attempt to optimize sponsored message handling
2021-12-06 22:27:31 +01:00
Sebastian Wolf
22f7a956dc
Merge pull request #454 from atlochowski/patch-15
Update harbour-fernschreiber-pl.ts
2021-12-06 22:22:24 +01:00
Åke Engelbrektson
2086a72e8c
Update harbour-fernschreiber-sv.ts
Update Swedish translation
2021-12-06 07:18:57 +01:00
Slava Monich
84cfcb5150 Contigurable mess
There's no UI for that, you have to configure your mess manually))
Also, made sure that chats don't handle another char's mess.
2021-12-06 04:32:40 +02:00
Slava Monich
5a2596e9de Attempt to optimize sponsored message handling
By reducing number of QVariantMap lookups and various run-time
conversions to/from QString
2021-12-06 03:57:08 +02:00
Atlochowski
bf87aa723d
Update harbour-fernschreiber-pl.ts 2021-12-05 23:14:10 +01:00
Sebastian Wolf
4b744f300d
Prepare release 0.11 2021-12-05 22:29:30 +01:00
Sebastian Wolf
8573b3f6d9
Merge pull request #450 from monich/smarter-extra-options
Hide "Extra options..." context menu item if it's not needed
2021-12-05 22:10:14 +01:00
Sebastian Wolf
489c410b14
Merge branch 'master' into smarter-extra-options 2021-12-05 22:09:18 +01:00
Sebastian Wolf
a4dcec0540
Merge pull request #452 from carlosgonz0/patch-33
Finally i had the time to check & write on es.ts
2021-12-05 22:07:51 +01:00
Sebastian Wolf
9da9d22a71
Merge pull request #449 from monich/header-font-size
Use larger font for settings section headers
2021-12-05 22:06:59 +01:00
Sebastian Wolf
a59d32b29d
Update to TDLib 1.7.9, preliminary support for sponsored messages 2021-12-05 22:06:05 +01:00
free software
7657a6e4da
Finally i had the time to check & write es.ts 2021-12-05 11:31:51 -05:00
Slava Monich
9f4f3c9475 Hide "Extra options..." context menu item if it's not needed
If all context actions fit into the context menu limit (5 items in portrait,
4 items in landscape) it makes no sense to show this "Extra options..." thing.
2021-12-05 03:30:00 +02:00
Slava Monich
8a48982ca5 Use larger font for settings section headers 2021-12-05 01:12:49 +02:00
Sebastian Wolf
0400d12e52
Support for animated emoji 2021-12-04 22:05:22 +01:00
Sebastian Wolf
88d385ab0d
Don't forget the about page 2021-11-10 22:01:56 +01:00
Sebastian Wolf
7e985f5823
Changelog for 0.10.1 2021-11-09 22:49:12 +01:00
Sebastian Wolf
346ba3c8ef
Merge pull request #447 from atlochowski/patch-14
Update harbour-fernschreiber-pl.ts
2021-11-09 22:43:44 +01:00
Sebastian Wolf
406fbb04a4
MIME handling under SFOS is quite complicated 2021-11-09 22:42:54 +01:00
Atlochowski
4407d8f561
Update harbour-fernschreiber-pl.ts 2021-11-07 22:41:14 +01:00
Sebastian Wolf
f43364a71a
Changelog for 0.10 2021-11-07 20:10:19 +01:00
Sebastian Wolf
f3242bf7db
We only need the local .desktop files in Verla and earlier :) 2021-11-07 19:53:23 +01:00
Sebastian Wolf
a88abbb20f
Compatibility with earlier SFOS versions is hard... 2021-11-07 17:00:17 +01:00
Sebastian Wolf
db655d766f
No 'Recently used' section if there are no stickers, fixes #438 2021-11-07 15:09:33 +01:00
Sebastian Wolf
88d84caad9
New libcrypto dependencies, use Verla as build target for all archs 2021-11-07 14:43:19 +01:00
Sebastian Wolf
fd71c3c013
Complete build and run dependencies for TDLib 2021-11-04 20:16:19 +01:00
Sebastian Wolf
90b0a40824
Improve URL/open-with handler (hopefully) 2021-11-03 23:31:00 +01:00
Sebastian Wolf
0d01ad0b22
Update translation credits 2021-11-03 20:27:57 +01:00
Sebastian Wolf
f476239f3a
Merge pull request #446 from nbourdais/french_typo
fix for some typos
2021-11-03 20:21:40 +01:00
Sebastian Wolf
555b8320a6
Merge pull request #445 from nbourdais/french_sent
fix for 'sent' traduction
2021-11-03 20:21:10 +01:00
Nicolas Bourdais
9e45b8ee5c quelques corrections 2021-10-28 22:58:07 +02:00
Nicolas Bourdais
d336e6188e trad de sent
au passe simple
2021-10-28 22:22:55 +02:00
Sebastian Wolf
97ee0d7f1d
Merge pull request #443 from okruhliak/master
Update harbour-fernschreiber-sk.ts
2021-10-26 21:25:39 +02:00
Sebastian Wolf
9ef5151fa4
Integrate French translation 2021-10-26 21:23:59 +02:00
Sebastian Wolf
4d4868377b
Merge pull request #444 from pherjung/french
Add French translation
2021-10-26 21:20:29 +02:00
Patrick Hervieux
dcb213fe8a Fix spelling error in French translation 2021-10-25 07:02:32 +02:00
Patrick Hervieux
972d74f3e2 Update French translation 2021-10-25 06:59:18 +02:00
Patrick Hervieux
9b85f2ed82 Update French translation 2021-10-24 15:08:37 +02:00
Patrick Hervieux
4f37fdeb67 Continue translation 2021-10-23 13:20:15 +02:00
Patrick Hervieux
76063e21cb Partial and unverified French translation 2021-10-23 12:12:10 +02:00
okruhliak
6bd869b542 Update harbour-fernschreiber-sk.ts 2021-10-19 17:21:42 +02:00
Sebastian Wolf
162a47fd26
Merge pull request #440 from monich/accordion-icon
Animate accordion image rotation
2021-09-28 21:31:46 +02:00
Slava Monich
481d6e88cc Animate accordion image rotation 2021-09-18 16:59:37 +03:00
Sebastian Wolf
dce28370b5
Development continues with 0.10 2021-08-30 20:07:11 +02:00
Sebastian Wolf
2f635395bc
Merge pull request #430 from Wunderfitz/feature/settings-page-accordion
settings page accordion
2021-08-30 19:47:41 +02:00
Sebastian Wolf
bb9cacb71e
Adjust accordion arrows to match default UX (see sample components) 2021-08-30 19:25:49 +02:00
John Gibbon
5a76303f4d fix long emoji names 2021-08-18 11:30:39 +02:00
Sebastian Wolf
1379d2883f
Merge pull request #434 from jgibbon/feature/document_emojis
Documentation: Add emoji list
2021-08-18 10:57:41 +02:00
John Gibbon
56fc96aafa Add emoji list 2021-08-18 09:56:58 +02:00
jngibbon
fa9e0c7d54 Update chatNotificationSettings in chat info page 2021-07-02 23:47:30 +02:00
jngibbon
8bd4ff9102 Manually include translation updates from #427 2021-06-09 08:55:11 +02:00
jngibbon
2ffe9ae885 Remove some unused code/comments and a few empty lines 2021-06-09 08:55:11 +02:00
jngibbon
fbf8671012 Re-enable translations "lost" by settings reorganization 2021-06-09 08:55:11 +02:00
jngibbon
0aba35d9bd Implement Settings Accordion
fixes #344
2021-06-09 08:55:11 +02:00
jngibbon
a2b05fc227 fix qml type warning
… I created myself in df1f20cb (oops)
2021-06-09 08:55:11 +02:00
Slava Monich
a1859c0333 Switch to generic booster
That seems to fix a mysterious aarch64 crash with some animated
stickers.
2021-06-09 08:53:36 +02:00
Sebastian Wolf
ded3735973
Merge pull request #426 from arustg/patch-17
Update harbour-fernschreiber-ru.ts
2021-05-31 22:42:33 +02:00
Sebastian Wolf
612ff05983
Merge pull request #425 from okruhliak/master
Update harbour-fernschreiber-sk.ts
2021-05-31 22:40:45 +02:00
Sebastian Wolf
056b8b9aac
Merge pull request #424 from atlochowski/patch-13
Update harbour-fernschreiber-pl.ts
2021-05-31 22:39:35 +02:00
Sebastian Wolf
1eab3a0627
Merge pull request #423 from eson57/patch-1
Update harbour-fernschreiber-sv.ts
2021-05-31 22:38:27 +02:00
Rustem Abzalov
36947e8470
Update harbour-fernschreiber-ru.ts 2021-05-31 20:12:25 +03:00
okruhliak
5a2f250e39 Update harbour-fernschreiber-sk.ts 2021-05-30 22:07:22 +02:00
Atlochowski
d3a4c50e76
Update harbour-fernschreiber-pl.ts 2021-05-30 21:08:19 +02:00
Åke Engelbrektson
db8e1d6ba8
Update harbour-fernschreiber-sv.ts
Update Swedish translation
2021-05-30 21:03:45 +02:00
Sebastian Wolf
d668c8666e
Prepare release 0.9 2021-05-30 19:16:03 +02:00
Sebastian Wolf
d2df4ddf16
Enhance location attachment information (accuracy, address) 2021-05-27 23:48:50 +02:00
Sebastian Wolf
78e578c5e2
Merge pull request #422 from Wunderfitz/feature/wait-for-link-handler
Delay link/notification handling until chatListCreated
2021-05-26 22:45:59 +02:00
jngibbon
df1f20cb30 Delay link/notification handling until chatListCreated
(hopefully) fixes #412
2021-05-26 22:21:53 +02:00
Sebastian Wolf
91ec56898a
Merge branch 'master' of github.com:Wunderfitz/harbour-fernschreiber 2021-05-26 21:53:43 +02:00
Sebastian Wolf
136e4328d7
A chat might become visible after first discovery 2021-05-26 21:53:10 +02:00
Sebastian Wolf
bd9df7b10c
Merge pull request #421 from jgibbon/master
Add Github action
2021-05-26 21:03:51 +02:00
jngibbon
942e51a36f Add Github action 2021-05-26 20:19:09 +02:00
Sebastian Wolf
b719d18a70
Remove debug statement from previous testing... 2021-05-26 15:16:05 +02:00
Sebastian Wolf
b350487fb9
Adjust scroll position handling when chat window height changes, fixes #418 2021-05-25 23:15:43 +02:00
Sebastian Wolf
388ea83e45
Disable auto-scroll when app is in background, fixes 410 2021-05-25 22:48:25 +02:00
Sebastian Wolf
29719c0764
Update message index map after message exchange, fixes #407 2021-05-25 22:28:48 +02:00
Sebastian Wolf
9339a2cdf5
Merge pull request #419 from Wunderfitz/feature/stickerpicker-listview
Speed up Sticker Picker
2021-05-24 21:47:14 +02:00
Sebastian Wolf
98307c59e4
New sticker picker: layout optimizations 2021-05-24 21:41:21 +02:00
Sebastian Wolf
3262835f1d
Merge branch 'master' into feature/stickerpicker-listview 2021-05-24 21:04:10 +02:00
Sebastian Wolf
b9917059ed
Merge pull request #420 from Wunderfitz/lottie-update
Lottie update & Option to display stickers as emojis
2021-05-24 20:52:12 +02:00
Sebastian Wolf
a9c0ae8f37
Remove TDLib provides section from spec (once again) 2021-05-24 20:40:08 +02:00
jngibbon
5c69119b38 Remove unnecessary maximumLineCount 2021-05-23 22:13:16 +02:00
jngibbon
9fded3d3a8 Speed up Sticker Picker 2021-05-22 21:19:59 +02:00
Sebastian Wolf
109913c9ca
Introduce possibility to display stickers as emojis 2021-05-20 23:41:55 +02:00
Sebastian Wolf
cefa87767a
Update README, add German translation for #417 2021-05-20 22:11:52 +02:00
Sebastian Wolf
2adb002c28
Merge pull request #417 from santhoshmanikandan/autofoucus-textarea#322
Add focus text on entering chat
2021-05-20 22:03:23 +02:00
Santhosh Manikandan S
f559b4892b Add focus text on entering chat option
Added an option to focus the text area when entering a chat has
been added and the same is exposed under Settings page.
2021-05-13 00:02:26 +05:30
Sebastian Wolf
c26ce4cd6b
Merge pull request #416 from santhoshmanikandan/bug-fix#406
Fix new line in TextInput when using Send By Enter
2021-05-06 20:53:49 +02:00
Santhosh Manikandan S
93da676e6b Fix new line in TextInput when using Send By Enter
Fixed the issue by removing the enter that gets added to textarea
when enter is pressed using string operations.
2021-05-04 20:16:42 +05:30
Sebastian Wolf
23d4ac6c02
Merge pull request #411 from monich/hide-drawer
Handle more cases when the drawer should be closed
2021-04-05 11:02:41 +02:00
Slava Monich
9a2b2b0ca8 Handle more cases when the drawer should be closed
1. Other item is pressed
2. Any item is long-pressed, including the selected one
3. ChatPage is getting deactivated
2021-03-27 01:27:47 +02:00
Sebastian Wolf
4f65b3b666
Patch release 0.8.2 2021-03-02 23:11:02 +01:00
Sebastian Wolf
f240845927
Prepare aarch64 build 2021-03-02 22:46:08 +01:00
Sebastian Wolf
ee4fd1bdbb
Merge branch 'master' of github.com:Wunderfitz/harbour-fernschreiber 2021-03-02 22:36:37 +01:00
Sebastian Wolf
72f3fddcb2
Merge pull request #405 from atlochowski/patch-12
Update harbour-fernschreiber-pl.ts
2021-03-02 22:34:37 +01:00
Atlochowski
bc2e92a285
Update harbour-fernschreiber-pl.ts 2021-03-02 08:35:16 +01:00
Sebastian Wolf
d3556d293d
Prepare patch release 0.8.1 2021-03-01 21:43:45 +01:00
Sebastian Wolf
2eb75929aa
Merge pull request #404 from arustg/patch-16
Update harbour-fernschreiber-ru.ts
2021-03-01 21:03:42 +01:00
Rustem Abzalov
d76d9bea0f
Update harbour-fernschreiber-ru.ts 2021-02-27 21:21:37 +03:00
Sebastian Wolf
edd9db186b
Contact registered message becoming simple 2021-02-25 21:38:55 +01:00
Sebastian Wolf
747e35dd4b
Merge pull request #402 from jorm1s/patch-9
Update harbour-fernschreiber-fi.ts
2021-02-25 21:27:23 +01:00
Sebastian Wolf
8fabca8a0d
Merge pull request #401 from monich/authorizationState
Don't show Active Sessions button when not authenticated
2021-02-25 21:25:35 +01:00
Sebastian Wolf
2540b4e28c
Merge pull request #400 from GNUuser/patch-32
Update harbour-fernschreiber-es.ts
2021-02-25 19:32:08 +01:00
Miikka Jormanainen
c8fe64e83f Update harbour-fernschreiber-fi.ts 2021-02-25 18:58:09 +02:00
Slava Monich
545b716f24 Don't show Active Sessions button when not authenticated
Also, expose authorizationState as TDLibWrapper property.
2021-02-25 02:59:51 +02:00
carlosgonz
330c642f00
Update harbour-fernschreiber-es.ts 2021-02-24 12:22:58 -05:00
carlosgonz
0e64c620dc
Update harbour-fernschreiber-es.ts 2021-02-24 12:18:57 -05:00
carlosgonz
b422c15b86
Update harbour-fernschreiber-es.ts 2021-02-24 12:17:22 -05:00
Sebastian Wolf
694cc0f453
Merge pull request #399 from GNUuser/patch-31
Updated spanish transtation
2021-02-23 22:17:36 +01:00
carlosgonz
dd55c91000
Updated spanish transtation
Can you explain me which  feature is Ln: 1705
2021-02-23 16:13:38 -05:00
Sebastian Wolf
612026f937
Merge pull request #398 from arustg/patch-15
Update harbour-fernschreiber-ru.ts
2021-02-23 20:30:05 +01:00
Sebastian Wolf
b8e512855d
Merge pull request #397 from atlochowski/patch-11
Update harbour-fernschreiber-pl.ts
2021-02-23 20:29:28 +01:00
Atlochowski
4e9eb36e40
Update harbour-fernschreiber-pl.ts 2021-02-23 19:55:38 +01:00
Atlochowski
43478b646e
Update harbour-fernschreiber-pl.ts 2021-02-23 10:51:07 +01:00
Atlochowski
d3f721fcce
Update harbour-fernschreiber-pl.ts 2021-02-23 10:49:36 +01:00
Rustem Abzalov
8647c24f23
Update harbour-fernschreiber-ru.ts 2021-02-23 12:26:24 +03:00
Atlochowski
88160cb621
Update harbour-fernschreiber-pl.ts 2021-02-23 09:13:03 +01:00
Sebastian Wolf
5e8584af79
Prepare release 0.8, including changelog 2021-02-22 21:46:55 +01:00
Sebastian Wolf
eae863172d
Merge pull request #396 from arustg/patch-14
Update harbour-fernschreiber-ru.ts
2021-02-22 20:51:08 +01:00
Sebastian Wolf
57267dc944
Merge pull request #395 from okruhliak/master
Update harbour-fernschreiber-sk.ts
2021-02-22 20:49:55 +01:00
Sebastian Wolf
02f69c2a2c
Merge pull request #394 from eson57/patch-1
Update harbour-fernschreiber-sv.ts
2021-02-22 20:49:22 +01:00
Rustem Abzalov
d1043bc97e
Update harbour-fernschreiber-ru.ts 2021-02-22 12:24:28 +03:00
okruhliak
f0d1111c47 Update harbour-fernschreiber-sk.ts 2021-02-22 09:21:22 +01:00
okruhliak
e6471f3d54 Update harbour-fernschreiber-sk.ts 2021-02-22 09:13:09 +01:00
Åke Engelbrektson
f33f70d723
Update harbour-fernschreiber-sv.ts
add missing translation
2021-02-22 08:35:50 +01:00
Sebastian Wolf
3957ec27e4
Merge pull request #390 from monich/drawer
Don't have on-screen keyboard and drawer visible simultaneously
2021-02-21 23:35:13 +01:00
Slava Monich
4050f41ce2 Don't have on-screen keyboard and drawer visible simultaneously
Also, removed unnecessary closeRequested() signal.
2021-02-22 00:27:36 +02:00
Sebastian Wolf
15f33145a7
Merge pull request #393 from dashinfantry/patch-27
Update harbour-fernschreiber-zh_CN.ts
2021-02-21 22:36:07 +01:00
Sebastian Wolf
cca6e41369
Merge pull request #392 from GNUuser/patch-30
Update harbour-fernschreiber-es.ts
2021-02-21 22:34:12 +01:00
Sebastian Wolf
2ff093717c
Merge pull request #391 from monich/stickers
Fix MessageSticker highlight and click behavior
2021-02-21 22:31:37 +01:00
dashinfantry
525eba5be1
Update harbour-fernschreiber-zh_CN.ts 2021-02-21 23:09:36 +08:00
carlosgonz
426bf9c05e
Update harbour-fernschreiber-es.ts 2021-02-20 19:28:20 -05:00
Slava Monich
3497f9d0fc Fixed MessageSticker highlight and click behavior
The highlighted property has been moved to MessageContentBase and
the mouse area was stealing mouse events from the parent.
2021-02-21 01:47:05 +02:00
Sebastian Wolf
6ebe312651
Merge pull request #389 from arustg/patch-13
Update harbour-fernschreiber-ru.ts
2021-02-20 22:14:52 +01:00
Sebastian Wolf
45aaf50c40
Merge pull request #388 from eson57/patch-1
Update harbour-fernschreiber-sv.ts
2021-02-20 22:14:24 +01:00
Rustem Abzalov
6be12bd31c
Update harbour-fernschreiber-ru.ts 2021-02-20 11:56:40 +03:00
Åke Engelbrektson
bae1777df6
Update harbour-fernschreiber-sv.ts
Update Swedish translation
2021-02-20 07:14:22 +01:00
Sebastian Wolf
250a83347c
Merge pull request #387 from eson57/patch-2
Update harbour-fernschreiber-sv.ts
2021-02-20 00:16:41 +01:00
Sebastian Wolf
aef9fd8391
Support for managing Telegram sessions 2021-02-20 00:14:43 +01:00
Åke Engelbrektson
cb16582722
Update harbour-fernschreiber-sv.ts
Update Swedish translation
2021-02-19 16:52:31 +01:00
Sebastian Wolf
b2f2ee5453
Disable contacts sync on Sailfish OS 4.x 2021-02-18 22:48:01 +01:00
Sebastian Wolf
9715e03971
Merge pull request #382 from Wunderfitz/messageOptionsDrawer
Introduce message options drawer
2021-02-18 20:34:00 +01:00
Sebastian Wolf
aae881cec8
Merge pull request #386 from iamnomeutente/master
Update harbour-fernschreiber-it.ts
2021-02-18 20:30:20 +01:00
iamnomeutente
366b24bf02 Update harbour-fernschreiber-it.ts 2021-02-18 17:10:06 +01:00
Sebastian Wolf
58f6a26bff
Merge pull request #385 from dashinfantry/patch-25
Update harbour-fernschreiber-zh_CN.ts
2021-02-17 23:52:47 +01:00
Sebastian Wolf
1a409407c9
Add 'Forward Message' to options drawer, fix SFOS 4.0.1 bug 2021-02-17 23:48:08 +01:00
dashinfantry
4669d17cea
Update harbour-fernschreiber-zh_CN.ts 2021-02-17 16:32:06 +08:00
Sebastian Wolf
8ae148ec90
Merge remote-tracking branch 'origin/master' into messageOptionsDrawer 2021-02-16 21:55:04 +01:00
Sebastian Wolf
a432e91996
Trigger mark-as-read (almost) immediately after opening chat 2021-02-16 21:48:14 +01:00
Sebastian Wolf
7ae58badd9
Fix highlighted behavior after options drawer was opened 2021-02-16 21:36:29 +01:00
Sebastian Wolf
e2e78713df
Drawer: Replace Flickable/Column with SilicaListView 2021-02-16 20:54:48 +01:00
Sebastian Wolf
a734690d0d
Merge branch 'messageOptionsDrawer' of github.com:Wunderfitz/harbour-fernschreiber into messageOptionsDrawer 2021-02-16 18:52:13 +01:00
Sebastian Wolf
9688c09002
Define dock height/width more transparently 2021-02-16 18:51:50 +01:00
Sebastian Wolf
01cdb18b46
Reference chatPage correctly in new delete action
Co-authored-by: jgibbon <99138+jgibbon@users.noreply.github.com>
2021-02-16 18:47:12 +01:00
Sebastian Wolf
063d782001
Merge pull request #384 from arustg/patch-12
Update harbour-fernschreiber-ru.ts
2021-02-15 23:15:58 +01:00
Rustem Abzalov
7369eaec4f
Update harbour-fernschreiber-ru.ts 2021-02-16 01:02:11 +03:00
Sebastian Wolf
532b35e9f3
Adjust changed localization files 2021-02-15 21:57:44 +01:00
Sebastian Wolf
27f33d1883
Merge pull request #381 from arustg/patch-10
Update harbour-fernschreiber-ru.ts
2021-02-15 21:56:56 +01:00
Rustem Abzalov
2e3fbb0fd3
Update harbour-fernschreiber-ru.ts 2021-02-15 23:51:26 +03:00
Sebastian Wolf
1dcaaa7169
Merge remote-tracking branch 'origin/master' into messageOptionsDrawer 2021-02-15 21:27:50 +01:00
Sebastian Wolf
0a8f507f6f
Message option drawer: This crazy idea really seems to work... 2021-02-15 21:20:38 +01:00
Sebastian Wolf
41e9efb8e5
Merge pull request #376 from Wunderfitz/newStickerSets
Redesign sticker picker, show sticker sets, install/remove sticker sets
2021-02-15 21:19:13 +01:00
Sebastian Wolf
034069320f
Merge pull request #380 from arustg/patch-9
Update harbour-fernschreiber-ru.ts
2021-02-15 21:18:08 +01:00
Sebastian Wolf
fe6e1db689
Merge pull request #378 from iamnomeutente/master
Update harbour-fernschreiber-it.ts
2021-02-15 21:16:09 +01:00
Sebastian Wolf
20fd359fb1
Merge pull request #377 from GNUuser/patch-29
Update harbour-fernschreiber-es.ts
2021-02-15 21:15:32 +01:00
Rustem Abzalov
8cdfb8a30b
Update harbour-fernschreiber-ru.ts 2021-02-15 22:00:02 +03:00
iamnomeutente
1f832d6511 Update harbour-fernschreiber-it.ts 2021-02-15 18:29:25 +01:00
carlosgonz
3210bab4e3
Update harbour-fernschreiber-es.ts 2021-02-14 19:47:28 -05:00
Sebastian Wolf
d9991cce79
Try something for the too large context menu 2021-02-14 21:57:48 +01:00
Sebastian Wolf
22c30f334d
Merge remote-tracking branch 'origin/master' into newStickerSets 2021-02-14 12:56:28 +01:00
Sebastian Wolf
9ebe33a419
Relax rule for hiding private chats 2021-02-14 12:55:54 +01:00
Sebastian Wolf
257fc749ee
Merge remote-tracking branch 'origin/master' into newStickerSets 2021-02-14 11:57:36 +01:00
Sebastian Wolf
352789f79d
Disable auto-scroll after context menu interaction, fixes #139 2021-02-14 11:51:26 +01:00
Sebastian Wolf
ade5cb34fb
Stickers can now also be send as replies 2021-02-14 10:46:29 +01:00
Sebastian Wolf
42a697591d
Show first sticker in picker if no set thumbnail is available 2021-02-14 10:17:26 +01:00
Sebastian Wolf
23fd7cb7cd
Potentially fix another bug 2021-02-13 20:01:42 +01:00
Sebastian Wolf
8fc499582b
Redesign sticker picker, fix one sticker reload bug 2021-02-13 18:55:49 +01:00
Sebastian Wolf
ef9a999994
Properly add/remove sticker sets (almost ;)) 2021-02-13 00:34:01 +01:00
Sebastian Wolf
94aee83936
Showing new sticker sets 2021-02-11 23:39:56 +01:00
Sebastian Wolf
4435828ff7
Sort text replacements better to avoid overlaps, fixes #334 2021-02-10 22:02:53 +01:00
Sebastian Wolf
fc2c53f840
Show in-reply-to message if it was deleted, fixes #374 2021-02-09 22:35:19 +01:00
Sebastian Wolf
0a4fd6be93
Enable storage optimizer per default 2021-02-09 21:55:45 +01:00
Sebastian Wolf
3575e1674c
[SFOS4] Documents app can't access our files anymore, always use Downloads 2021-02-08 22:49:34 +01:00
Sebastian Wolf
5de6ea4f11
Next release will be 0.7.1 (patches/fixes only) 2021-02-07 18:28:07 +01:00
Sebastian Wolf
b0ed187bb4
Merge branch 'master' of github.com:Wunderfitz/harbour-fernschreiber 2021-02-07 18:24:26 +01:00
Sebastian Wolf
08b004f6a5
Hide empty private chats from list 2021-02-07 18:23:59 +01:00
Sebastian Wolf
40edb2069a
Merge pull request #373 from monich/break
Hardcode line break in "unread messages"
2021-02-07 18:22:35 +01:00
Sebastian Wolf
98eaf699bc
Merge pull request #370 from monich/muted
Use different badge colors for muted chats
2021-02-07 18:21:50 +01:00
Slava Monich
64ef10a10c Hardcode line break in "unread messages"
To avoid cover layout change when number of unread messages goes 9 => 10
2021-02-07 16:01:25 +02:00
Sebastian Wolf
9280236743
Merge pull request #372 from okruhliak/master
Update harbour-fernschreiber-sk.ts
2021-02-07 14:49:52 +01:00
okruhliak
bcff42c449 Update harbour-fernschreiber-sk.ts 2021-02-07 11:26:00 +01:00
Slava Monich
8f345174ab Use different badge colors for muted chats 2021-02-07 02:29:50 +02:00
Sebastian Wolf
4cf12cfd15
Merge pull request #369 from eson57/patch-1
Update harbour-fernschreiber-sv.ts
2021-02-06 22:05:23 +01:00
Åke Engelbrektson
472d07721f
Update harbour-fernschreiber-sv.ts
Minor correction!
2021-02-06 07:42:48 +01:00
Sebastian Wolf
f6e21b6428
Use default landscape format for settings page 2021-02-05 22:49:56 +01:00
Sebastian Wolf
cbee948e09
Avoid display errors on chat information page for multi-line infos 2021-02-05 22:16:26 +01:00
Sebastian Wolf
4b0f8f3166
Mark new messages as read when automatically scrolling down 2021-02-05 21:57:22 +01:00
Sebastian Wolf
35ed5879bc
Merge pull request #368 from eson57/patch-1
Update harbour-fernschreiber-sv.ts
2021-02-05 21:25:43 +01:00
Sebastian Wolf
42f55db3f4
Merge pull request #367 from monich/ru
Updated Russian translation
2021-02-05 21:24:45 +01:00
Åke Engelbrektson
58e0ecce1f
Update harbour-fernschreiber-sv.ts
Update Swedish translation
2021-02-05 10:11:00 +01:00
Slava Monich
0b7c6cd75f Updated Russian translation 2021-02-05 03:15:40 +02:00
Sebastian Wolf
299ab8d7a0
Adjust settings page layout 2021-02-04 23:46:06 +01:00
Sebastian Wolf
2d5798e182
Prepare changelog for 0.7 2021-02-04 23:04:56 +01:00
Sebastian Wolf
aa2d47cb11
Merge pull request #366 from jorm1s/patch-8
Update harbour-fernschreiber-fi.ts
2021-02-04 21:46:10 +01:00
Sebastian Wolf
1dee780d0b
Merge pull request #365 from okruhliak/master
Update harbour-fernschreiber-sk.ts
2021-02-04 21:41:53 +01:00
Sebastian Wolf
530afe2714
Merge pull request #364 from dashinfantry/patch-24
Update harbour-fernschreiber-zh_CN.ts
2021-02-04 21:40:14 +01:00
Miikka Jormanainen
0948d32fe1 Update harbour-fernschreiber-fi.ts 2021-02-04 19:59:46 +02:00
dashinfantry
1f4b9ce082
Update harbour-fernschreiber-zh_CN.ts 2021-02-04 22:21:18 +08:00
okruhliak
84752798f3 Update harbour-fernschreiber-sk.ts 2021-02-04 15:07:32 +01:00
dashinfantry
66dc268efc
Update harbour-fernschreiber-zh_CN.ts 2021-02-04 14:26:35 +08:00
Sebastian Wolf
40fea18a46
Try to fix video page (without refactoring ;)) 2021-02-03 23:12:24 +01:00
Sebastian Wolf
31ee65fc98
Introduce configurable delay for marking messages as read 2021-02-03 22:16:22 +01:00
Sebastian Wolf
ca94e7971b
Merge privacy settings 2021-02-03 21:54:46 +01:00
Sebastian Wolf
8d6d88de5f
Update logo, original by @iamnomeutente, adjustments by @monich 2021-02-03 21:48:59 +01:00
Sebastian Wolf
1a3767e599
Merge pull request #359 from Wunderfitz/chatIndexHandling
Improved chat message index handling
2021-02-03 21:42:01 +01:00
Sebastian Wolf
c12c9e2ac6
Merge pull request #362 from dashinfantry/patch-23
Update harbour-fernschreiber-zh_CN.ts
2021-02-03 19:55:08 +01:00
Sebastian Wolf
a6e0c9b3ab
Merge pull request #361 from jgibbon/bugfix/extraContent_click
Fix click signal forwarding for extra content items
2021-02-03 19:54:08 +01:00
dashinfantry
9219495081
Update harbour-fernschreiber-zh_CN.ts 2021-02-03 21:52:22 +08:00
John Gibbon
42f3cfb155 Fix click signal forwarding for extra content items 2021-02-03 11:47:03 +01:00
Sebastian Wolf
fba20712b2
Merge pull request #358 from iamnomeutente/master
Update harbour-fernschreiber-it.ts
2021-02-02 22:07:02 +01:00
iamnomeutente
910e261ad9 Update harbour-fernschreiber-it.ts 2021-02-02 18:46:47 +01:00
461 changed files with 40333 additions and 7970 deletions

102
.github/workflows/main.yml vendored Normal file
View file

@ -0,0 +1,102 @@
name: Fernschreiber build
on:
push:
branches:
- master
tags:
- '*'
# to prevent secrets leaking,
# we don't build on PRs
#pull_request:
# branches:
# - master
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
with:
submodules: 'true'
- name: Prepare
run: mkdir output
- name: Fetch TDLib
uses: dsaltares/fetch-gh-release-asset@master
with:
repo: "Wunderfitz/td"
file: "tdlib.zip"
target: tdlib/tdlib.zip
token: ${{ secrets.GITHUB_TOKEN }}
- name: Decompress TDLib
uses: TonyBogdanov/zip@1.0
with:
args: unzip -qq ./tdlib/tdlib.zip -d ./tdlib
- name: Set Secrets
uses: DamianReeves/write-file-action@master
with:
path: ./src/tdlibsecrets.h
contents: |
#ifndef TDLIBSECRETS_H
#define TDLIBSECRETS_H
const char TDLIB_API_ID[] = "${{secrets.TDLIB_API_ID}}";
const char TDLIB_API_HASH[] = "${{secrets.TDLIB_API_HASH}}";
#endif // TDLIBSECRETS_H
write-mode: overwrite
- name: Build armv7hl
id: build_armv7hl
uses: coderus/github-sfos-build@master
with:
release: 4.4.0.58
- name: Build i486
id: build_i486
uses: coderus/github-sfos-build@master
with:
release: 4.4.0.58
arch: i486
- name: Build aarch64
id: build_aarch64
uses: coderus/github-sfos-build@master
with:
release: 4.4.0.58
arch: aarch64
- name: Upload build result
uses: actions/upload-artifact@v2
with:
name: rpm-build-result
path: RPMS
- name: Create release
if: contains(github.ref, 'v')
run: |
set -x
assets=()
for asset in RPMS/*.rpm; do
assets+=("-a" "$asset")
done
tag_name="${GITHUB_REF##*/}"
gh release create "$tag_name" "${assets[@]}"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Create prerelease
if: contains(github.ref, 'pre')
run: |
set -x
assets=()
for asset in RPMS/*.rpm; do
assets+=("-a" "$asset")
done
tag_name="${GITHUB_REF##*/}"
gh release create "$tag_name" -p -n "This is a pre-release for testing purposes only. It may or may not be unstable." "${assets[@]}"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

3
.gitignore vendored
View file

@ -53,3 +53,6 @@ compile_commands.json
# TDLib API Secrets
tdlibsecrets.h
#Convinience scripts
*.sh

View file

@ -1,6 +1,7 @@
# Fernschreiber
A Telegram client for Sailfish OS
[![Fernschreiber build](https://github.com/Wunderfitz/harbour-fernschreiber/actions/workflows/main.yml/badge.svg)](https://github.com/Wunderfitz/harbour-fernschreiber/actions/workflows/main.yml)
## Authors
Sebastian J. Wolf [sebastian@ygriega.de](mailto:sebastian@ygriega.de) and several contributors
@ -10,9 +11,14 @@ Fernschreiber wouldn't be the same without all the people helping in making it b
### Code (Features, Bugfixes, Optimizations etc.)
- 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, emoji handling, qml/js optimizations, multi-message actions, i18n fixes, chat permission handling, code reviews, logging categories, bot support: [jgibbon](https://github.com/jgibbon)
- Copy message to clipboard [Christian Stemmle](https://github.com/chstem)
- Hide send message button if send-by-enter is switched on [santhoshmanikandan](https://github.com/santhoshmanikandan)
- 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, bot support, github build: [jgibbon](https://github.com/jgibbon)
- Copy message to clipboard: [Christian Stemmle](https://github.com/chstem)
- Hide send message button if send-by-enter is switched on, focus text input on entering a chat: [santhoshmanikandan](https://github.com/santhoshmanikandan)
- Integration of logout and sesison options to settings page, search results optimization, highlight unread conversations: [Peter G.](https://github.com/nephros)
- Option to always append last message in notifications: [Johannes Bachmann](https://github.com/dscheinah)
- Option to jump to quoted message, widescreen UI adjustments: [Mikhail Barashkov](https://github.com/mbarashkov)
This list might not be complete. In case I forgot something/somebody, please let me know or create a PR, thanks! :)
### Logo/Icon
- Designed by [Matteo](https://github.com/iamnomeutente), adjustments by [Slava Monich](https://github.com/monich)
@ -20,6 +26,7 @@ Fernschreiber wouldn't be the same without all the people helping in making it b
### Translations
- Chinese: [dashinfantry](https://github.com/dashinfantry)
- Finnish: [jorm1s](https://github.com/jorm1s)
- French: [Patrick Hervieux](https://github.com/pherjung), [Nicolas Bourdais](https://github.com/nbourdais)
- Hungarian: [edp17](https://github.com/edp17)
- Italian: [Matteo](https://github.com/iamnomeutente)
- Polish: [atlochowski](https://github.com/atlochowski)
@ -32,6 +39,7 @@ Fernschreiber wouldn't be the same without all the people helping in making it b
Licensed under GNU GPLv3
## Build
### Local build
Simply clone this repository and ensure to have all [submodules](https://git-scm.com/docs/git-submodule) imported as well (e.g. by using `git submodule update --init`). Then use the project file `harbour-fernschreiber.pro` to import the sources in your SailfishOS IDE. To build and run Fernschreiber or an application which is based on Fernschreiber, you need to create the file `harbour-fernschreiber/src/tdlibsecrets.h` and enter the required constants in the following format:
```
@ -44,29 +52,39 @@ const char TDLIB_API_HASH[] = "1234567890abcdef1234567890abcdef";
You get the Telegram API ID and hash as soon as you've registered your own application on [https://my.telegram.org](https://my.telegram.org).
Moreover, you need to have a compiled version of [TDLib 1.7](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 1.8.21](https://github.com/tdlib/td) or higher 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`.
In case you encounter strange performance issues on startup (several seconds delay, app seems to do nothing), please be sure to [follow the instructions from the respective GitHub issue](https://github.com/tdlib/td/issues/1322), i.e. let TDLib build SQLite with `-DOMIT_MEMLOCK` and be sure to comment the two lines 22558 (`#ifndef OMIT_MEMLOCK`) and 22567 (`#endif`) in the file `sqlite/sqlite/sqlite3.c`.
Moreover, TDLib 1.7 has issues loading some pinned messages in case the message database is used (which is the case in Fernschreiber). [A small patch](https://github.com/tdlib/td/commit/30d912bd4b145afb8d494b307d37645ffa21ec29) is required to make TDLib work properly in all cases. See [the respective TDLib issue](https://github.com/tdlib/td/issues/1343) for more details.
You may just want to download the [tdlib.zip from our fork](https://github.com/Wunderfitz/td/releases) to just use the exact version of the latest official Fernschreiber release. To use it, you need to extract it into your local `tdlib/` folder as described above. If so, you're done and can compile Fernschreiber using the Sailfish SDK. If you want to build TDLib for yourself, please keep on reading.
In case you want to use the same codebase which was used to compile the library that is shipped with Fernschreiber, please [check out the fork](https://github.com/Wunderfitz/td), be sure to use the branch `fernschreiber` and compile these sources using the following commands (be sure to have the Sailfish OS build engine running):
- `alias sfdk=~/SailfishOS/bin/sfdk`
- `sfdk config target=SailfishOS-3.3.0.16-armv7hl` (this compiles the sources on SFOS 3.3 and ARM - the target needs to be adjusted according to the running SDK engine and the platform)
- `sfdk config target=SailfishOS-4.4.0.58-armv7hl` (this compiles the sources on SFOS 4.4 and ARM - the target needs to be adjusted according to the running SDK engine and the platform)
- `mkdir build`
- `cd build`
- `sfdk build-init`
- `sfdk build-shell cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX:PATH=../tdlib -DTD_ENABLE_LTO=ON ..` (in case of compilation issues, try removing the flag `-DTD_ENABLE_LTO=ON`)
- `sfdk build-shell cmake --build . --target install`
You'll find the compiled library in the directory `td/tdlib`.
### Github Action
Please read the "Local build" section anyway to understand what's going on before continuing. If you want to automatically build your fork on Github, you'll still need to get a Telegram API ID and hash. These are then [added as project secrets](https://docs.github.com/en/actions/reference/encrypted-secrets#creating-encrypted-secrets-for-a-repository) named `TDLIB_API_ID` and `TDLIB_API_HASH`.
By default, only commits to the master branch will be built. You may [change that for your fork](https://docs.github.com/en/actions/quickstart), but please don't create a pull request to the official repository changing the github action without consulting the [Fernschreiber contributors](https://github.com/Wunderfitz/harbour-fernschreiber/issues/162) first.
If you push a tag containing the letter "v" (for example "v0.99.3"), a github release will be created allowing easy download of the resulting rpms. If the tag is named for example "pre-0.99.3", the resulting release is marked as a pre-release for testing purposes.
## 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.
You can append ` &> fernschreiber.log` to the command to create a text file containing the debug messages.
**Please be aware that debug messages will most likely include personal information** including (but not limited to) chat content and user ids/names of yourself and all your chat partners. Do not share it publicly and, at your discretion, try to remove private info even from the parts you do share with a trusted person.
## 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. :)
@ -78,5 +96,6 @@ This project uses
- The Telegram Database Library (TDLib) - available on [GitHub.com](https://github.com/tdlib/td). Thanks for making it available under the conditions of the Boost Software License 1.0! Details about the license of TDLib in [its license file](https://github.com/tdlib/td/blob/master/LICENSE_1_0.txt).
- Emoji parsing and artwork by [Twitter Emoji (Twemoji)](http://twitter.github.io/twemoji/), copyright 2018 Twitter, Inc and other contributors, Code licensed under the [MIT License](http://opensource.org/licenses/MIT), Graphics licensed under [CC-BY 4.0](https://creativecommons.org/licenses/by/4.0/)
- Animated sticker parsing and animation by [rlottie](https://github.com/Samsung/rlottie), copyright 2020 Samsung Electronics Co., Ltd. and [other contributors](https://github.com/Samsung/rlottie/blob/master/AUTHORS), Code licensed under the [MIT License](https://github.com/Samsung/rlottie/blob/master/licenses/COPYING.MIT), some rlottie components [licensed under other licenses](https://github.com/Samsung/rlottie/blob/master/COPYING).
- Reverse geocoding for location attachments by [OpenStreetMap Nominatim](https://wiki.openstreetmap.org/wiki/Nominatim).
Thanks to the maintainers of the used components and - again - all contributors to Fernschreiber!

Binary file not shown.

3288
doc/emojis.md Normal file

File diff suppressed because it is too large Load diff

View file

@ -4,3 +4,8 @@ X-Nemo-Application-Type=silica-qt5
Icon=harbour-fernschreiber
Exec=harbour-fernschreiber
Name=Fernschreiber
[X-Sailjail]
Permissions=Audio;Documents;Downloads;Internet;Location;MediaIndexing;Microphone;Music;Pictures;PublicDir;RemovableMedia;UserDirs;Videos
OrganizationName=de.ygriega
ApplicationName=fernschreiber

View file

@ -22,6 +22,7 @@ DEFINES += QT_STATICPLUGIN
SOURCES += src/harbour-fernschreiber.cpp \
src/appsettings.cpp \
src/chatpermissionfiltermodel.cpp \
src/chatlistmodel.cpp \
src/chatmodel.cpp \
src/contactsmodel.cpp \
@ -38,12 +39,14 @@ SOURCES += src/harbour-fernschreiber.cpp \
src/tdlibfile.cpp \
src/tdlibreceiver.cpp \
src/tdlibwrapper.cpp \
src/textfiltermodel.cpp \
src/tgsplugin.cpp
DISTFILES += qml/harbour-fernschreiber.qml \
qml/components/AudioPreview.qml \
qml/components/BackgroundImage.qml \
qml/components/ChatListViewItem.qml \
qml/components/ContactSync.qml \
qml/components/DocumentPreview.qml \
qml/components/GamePreview.qml \
qml/components/ImagePreview.qml \
@ -64,6 +67,7 @@ DISTFILES += qml/harbour-fernschreiber.qml \
qml/components/ReplyMarkupButtons.qml \
qml/components/StickerPicker.qml \
qml/components/PhotoTextsListItem.qml \
qml/components/StickerSetOverlay.qml \
qml/components/TDLibImage.qml \
qml/components/TDLibMinithumbnail.qml \
qml/components/TDLibPhoto.qml \
@ -92,6 +96,7 @@ DISTFILES += qml/harbour-fernschreiber.qml \
qml/components/inlineQueryResults/InlineQueryResultVenue.qml \
qml/components/inlineQueryResults/InlineQueryResultVideo.qml \
qml/components/inlineQueryResults/InlineQueryResultVoiceNote.qml \
qml/components/messageContent/MessageAnimatedEmoji.qml \
qml/components/messageContent/MessageAnimation.qml \
qml/components/messageContent/MessageAudio.qml \
qml/components/messageContent/MessageContentBase.qml \
@ -106,7 +111,17 @@ DISTFILES += qml/harbour-fernschreiber.qml \
qml/components/messageContent/MessageVideoNote.qml \
qml/components/messageContent/MessageVideo.qml \
qml/components/messageContent/MessageVoiceNote.qml \
qml/components/messageContent/SponsoredMessage.qml \
qml/components/messageContent/WebPagePreview.qml \
qml/components/settingsPage/Accordion.qml \
qml/components/settingsPage/AccordionItem.qml \
qml/components/settingsPage/ResponsiveGrid.qml \
qml/components/settingsPage/SettingsAppearance.qml \
qml/components/settingsPage/SettingsBehavior.qml \
qml/components/settingsPage/SettingsPrivacy.qml \
qml/components/settingsPage/SettingsSession.qml \
qml/components/settingsPage/SettingsStorage.qml \
qml/components/settingsPage/SettingsUserProfile.qml \
qml/js/debug.js \
qml/js/functions.js \
qml/pages/ChatInformationPage.qml \
@ -125,7 +140,6 @@ DISTFILES += qml/harbour-fernschreiber.qml \
qml/pages/VideoPage.qml \
rpm/harbour-fernschreiber.changes \
rpm/harbour-fernschreiber.spec \
rpm/harbour-fernschreiber.yaml \
translations/*.ts \
harbour-fernschreiber.desktop
@ -134,6 +148,7 @@ SAILFISHAPP_ICONS = 86x86 108x108 128x128 172x172 256x256
TRANSLATIONS += translations/harbour-fernschreiber-de.ts \
translations/harbour-fernschreiber-es.ts \
translations/harbour-fernschreiber-fi.ts \
translations/harbour-fernschreiber-fr.ts \
translations/harbour-fernschreiber-hu.ts \
translations/harbour-fernschreiber-it.ts \
translations/harbour-fernschreiber-pl.ts \
@ -143,11 +158,18 @@ TRANSLATIONS += translations/harbour-fernschreiber-de.ts \
translations/harbour-fernschreiber-en.ts \
translations/harbour-fernschreiber-zh_CN.ts
contains(QT_ARCH, arm) {
equals(QT_ARCH, arm) {
message(Building ARM)
TARGET_ARCHITECTURE = armv7hl
} else {
}
equals(QT_ARCH, i386) {
message(Building i486)
TARGET_ARCHITECTURE = i486
}
equals(QT_ARCH, arm64){
message(Building aarch64)
TARGET_ARCHITECTURE = aarch64
}
INCLUDEPATH += $$PWD/tdlib/include
DEPENDPATH += $$PWD/tdlib/include
@ -189,6 +211,7 @@ INSTALLS += telegram 86.png 108.png 128.png 172.png 256.png \
HEADERS += \
src/appsettings.h \
src/chatpermissionfiltermodel.h \
src/chatlistmodel.h \
src/chatmodel.h \
src/contactsmodel.h \
@ -208,6 +231,7 @@ HEADERS += \
src/tdlibreceiver.h \
src/tdlibsecrets.h \
src/tdlibwrapper.h \
src/textfiltermodel.h \
src/tgsplugin.h
# https://github.com/Samsung/rlottie.git

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.7 KiB

After

Width:  |  Height:  |  Size: 9.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.7 KiB

After

Width:  |  Height:  |  Size: 7.6 KiB

View file

@ -7,37 +7,37 @@
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
sodipodi:docname="background-black.svg"
inkscape:version="0.92.2 5c3e80d, 2017-08-06"
viewBox="0 0 114.66667 114.66667"
height="114.66667"
width="114.66667"
version="1.1"
xml:space="preserve"
id="svg2"
version="1.1"><sodipodi:namedview
inkscape:current-layer="svg2"
inkscape:window-maximized="1"
inkscape:window-y="0"
inkscape:window-x="0"
inkscape:cy="57.333336"
inkscape:cx="57.333336"
inkscape:zoom="2.0581394"
showgrid="false"
id="namedview70"
inkscape:window-height="1015"
inkscape:window-width="1920"
inkscape:pageshadow="2"
inkscape:pageopacity="0"
guidetolerance="10"
gridtolerance="10"
objecttolerance="10"
borderopacity="1"
width="114.66667"
height="114.66667"
viewBox="0 0 114.66667 114.66667"
inkscape:version="0.92.2 5c3e80d, 2017-08-06"
sodipodi:docname="background-black.svg"
id="svg60"><sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
pagecolor="#ffffff" /><metadata
id="metadata72"><rdf:RDF><cc:Work
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1920"
inkscape:window-height="1015"
id="namedview62"
showgrid="false"
inkscape:zoom="2.0581394"
inkscape:cx="57.333336"
inkscape:cy="57.333336"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="g67" /><metadata
id="metadata64"><rdf:RDF><cc:Work
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
id="defs12"><clipPath
id="defs8"><clipPath
clipPathUnits="userSpaceOnUse"
id="clipPath18"><path
d="M 0.301,43 C 0.301,42.364 0.3,1.723 0.3,1.723 v 0 C 0.3,0.938 0.938,0.3 1.723,0.3 v 0 H 43 c 23.584,0 42.7,19.117 42.7,42.7 v 0 C 85.7,66.583 66.584,85.7 43,85.7 v 0 C 19.417,85.7 0.301,66.583 0.301,43"
@ -67,16 +67,16 @@
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-72.476372,-72.476372,72.476372,-72.476372,73.193359,73.192871)"
spreadMethod="pad"
id="linearGradient30-152"><stop
id="linearGradient30-529"><stop
style="stop-opacity:1;stop-color:#727272;opacity:1"
offset="0"
id="stop3900" /><stop
id="stop74" /><stop
style="stop-opacity:1;stop-color:#898989;opacity:1"
offset="0.959184"
id="stop3902" /><stop
id="stop76" /><stop
style="stop-opacity:1;stop-color:#898989;opacity:1"
offset="1"
id="stop3904" /></linearGradient><linearGradient
id="stop78" /></linearGradient><linearGradient
x1="0"
y1="0"
x2="1"
@ -84,16 +84,16 @@
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-72.476372,-72.476372,72.476372,-72.476372,73.193359,73.192871)"
spreadMethod="pad"
id="linearGradient30-152-977"><stop
id="linearGradient30-529-824"><stop
style="stop-opacity:1;stop-color:#8d8d8d;opacity:1"
offset="0"
id="stop4065" /><stop
id="stop290" /><stop
style="stop-opacity:1;stop-color:#767676;opacity:1"
offset="0.959184"
id="stop4067" /><stop
id="stop292" /><stop
style="stop-opacity:1;stop-color:#767676;opacity:1"
offset="1"
id="stop4069" /></linearGradient></defs><g
id="stop294" /></linearGradient></defs><g
inkscape:groupmode="layer"
inkscape:label="harbour-fernschreiber"
transform="matrix(1.3333333,0,0,-1.3333333,0,114.66667)"
@ -102,15 +102,15 @@
clip-path="url(#clipPath18)"
id="g16"><path
d="M 0.301,43 C 0.301,42.364 0.3,1.723 0.3,1.723 v 0 C 0.3,0.938 0.938,0.3 1.723,0.3 v 0 H 43 c 23.584,0 42.7,19.117 42.7,42.7 v 0 C 85.7,66.583 66.584,85.7 43,85.7 v 0 C 19.417,85.7 0.301,66.583 0.301,43"
style="fill:url(#linearGradient30-152-977);stroke:none;opacity:1"
style="fill:url(#linearGradient30-529-824);stroke:none;opacity:1"
inkscape:connector-curvature="0"
id="path14" /></g></g><g
transform="translate(75,43.1621)"
id="g20" /><path
inkscape:connector-curvature="0"
style="opacity:0.9;fill:#464646;stroke-width:0.97363532;fill-opacity:1"
d="m 43.000002,75.285148 c -17.583854,0 -31.837875,-12.9659 -31.837875,-28.958836 V 17.367476 7.7148552 c 5.861284,0 10.612625,4.1720268 10.612625,9.5017078 h 21.22525 c 17.583855,0 31.837876,13.115841 31.837876,29.109749 0,15.992936 -14.254021,28.958836 -31.837876,28.958836 z"
id="path10" /><g
style="opacity:0.9;fill:#464646;fill-opacity:1;stroke-width:0.9930262"
d="M 42.700457,74.178768 C 24.766404,74.178768 10.2285,60.954638 10.2285,44.643189 V 15.107611 5.2627488 c 5.978017,0 10.823985,4.255117 10.823985,9.6909432 h 21.647972 c 17.934054,0 32.471954,13.377056 32.471954,29.689497 0,16.311449 -14.5379,29.535579 -32.471954,29.535579 z"
id="path10-3"
inkscape:connector-curvature="0" /><g
id="g46"
transform="translate(15.3208,45.7656)"><path
d="m 0,0 c 0,-0.729 0.592,-1.322 1.323,-1.322 0.732,0 1.324,0.593 1.324,1.322 0,0.73 -0.592,1.322 -1.324,1.322 C 0.592,1.322 0,0.73 0,0"

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 13 KiB

View file

@ -7,37 +7,37 @@
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
sodipodi:docname="background-white.svg"
inkscape:version="0.92.2 5c3e80d, 2017-08-06"
viewBox="0 0 114.66667 114.66667"
height="114.66667"
width="114.66667"
version="1.1"
xml:space="preserve"
id="svg2"
version="1.1"><sodipodi:namedview
inkscape:current-layer="svg2"
inkscape:window-maximized="1"
inkscape:window-y="0"
inkscape:window-x="0"
inkscape:cy="57.333336"
inkscape:cx="57.333336"
inkscape:zoom="2.0581394"
showgrid="false"
id="namedview70"
inkscape:window-height="1015"
inkscape:window-width="1920"
inkscape:pageshadow="2"
inkscape:pageopacity="0"
guidetolerance="10"
gridtolerance="10"
objecttolerance="10"
borderopacity="1"
width="114.66667"
height="114.66667"
viewBox="0 0 114.66667 114.66667"
inkscape:version="0.92.2 5c3e80d, 2017-08-06"
sodipodi:docname="background-white.svg"
id="svg60"><sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
pagecolor="#ffffff" /><metadata
id="metadata72"><rdf:RDF><cc:Work
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1920"
inkscape:window-height="1015"
id="namedview62"
showgrid="false"
inkscape:zoom="2.0581394"
inkscape:cx="57.333336"
inkscape:cy="57.333336"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="g67" /><metadata
id="metadata64"><rdf:RDF><cc:Work
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
id="defs12"><clipPath
id="defs8"><clipPath
id="clipPath18"
clipPathUnits="userSpaceOnUse"><path
id="path2"
@ -60,7 +60,7 @@
id="stop9"
offset="1"
style="stop-opacity:1;stop-color:#767676;opacity:1" /></linearGradient><linearGradient
id="linearGradient30-152"
id="linearGradient30-529"
spreadMethod="pad"
gradientTransform="matrix(-72.476372,-72.476372,72.476372,-72.476372,73.193359,73.192871)"
gradientUnits="userSpaceOnUse"
@ -68,13 +68,13 @@
x2="1"
y1="0"
x1="0"><stop
id="stop3900"
id="stop74"
offset="0"
style="stop-opacity:1;stop-color:#8d8d8d;opacity:1" /><stop
id="stop3902"
id="stop76"
offset="0.959184"
style="stop-opacity:1;stop-color:#767676;opacity:1" /><stop
id="stop3904"
id="stop78"
offset="1"
style="stop-opacity:1;stop-color:#767676;opacity:1" /></linearGradient></defs><g
id="g67"
@ -86,14 +86,14 @@
clip-path="url(#clipPath18)"><path
id="path14"
inkscape:connector-curvature="0"
style="fill:url(#linearGradient30-152);stroke:none;opacity:1"
style="fill:url(#linearGradient30-529);stroke:none;opacity:1"
d="M 0.301,43 C 0.301,42.364 0.3,1.723 0.3,1.723 v 0 C 0.3,0.938 0.938,0.3 1.723,0.3 v 0 H 43 c 23.584,0 42.7,19.117 42.7,42.7 v 0 C 85.7,66.583 66.584,85.7 43,85.7 v 0 C 19.417,85.7 0.301,66.583 0.301,43" /></g></g><g
id="g20"
transform="translate(75,43.1621)" /><path
id="path10"
d="m 43.000002,75.285148 c -17.583854,0 -31.837875,-12.9659 -31.837875,-28.958836 V 17.367476 7.7148552 c 5.861284,0 10.612625,4.1720268 10.612625,9.5017078 h 21.22525 c 17.583855,0 31.837876,13.115841 31.837876,29.109749 0,15.992936 -14.254021,28.958836 -31.837876,28.958836 z"
style="opacity:0.9;fill:#b9b9b9;stroke-width:0.97363532;fill-opacity:1"
inkscape:connector-curvature="0" /><g
inkscape:connector-curvature="0"
id="path10-3"
d="M 42.700457,74.178768 C 24.766404,74.178768 10.2285,60.954638 10.2285,44.643189 V 15.107611 5.2627488 c 5.978017,0 10.823985,4.255117 10.823985,9.6909432 h 21.647972 c 17.934054,0 32.471954,13.377056 32.471954,29.689497 0,16.311449 -14.5379,29.535579 -32.471954,29.535579 z"
style="opacity:0.9;fill:#b9b9b9;fill-opacity:1;stroke-width:0.9930262" /><g
transform="translate(15.3208,45.7656)"
id="g46"><path
inkscape:connector-curvature="0"

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

After

Width:  |  Height:  |  Size: 22 KiB

View file

@ -5,191 +5,200 @@
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
version="1.1"
id="svg2"
xml:space="preserve"
width="114.66667"
height="114.66667"
viewBox="0 0 114.66667 114.66667"
inkscape:version="0.92.4 (unknown)">
inkscape:version="0.92.4 (unknown)"
sodipodi:docname="harbour-fernschreiber-3.svg">
<defs>
<clipPath
clipPathUnits="userSpaceOnUse"
id="clipPath18">
clipPathUnits="userSpaceOnUse"
id="clipPath18">
<path
d="M 0.301,43 C 0.301,42.364 0.3,1.723 0.3,1.723 v 0 C 0.3,0.938 0.938,0.3 1.723,0.3 v 0 H 43 c 23.584,0 42.7,19.117 42.7,42.7 v 0 C 85.7,66.583 66.584,85.7 43,85.7 v 0 C 19.417,85.7 0.301,66.583 0.301,43"
inkscape:connector-curvature="0"/>
d="M 0.301,43 C 0.301,42.364 0.3,1.723 0.3,1.723 v 0 C 0.3,0.938 0.938,0.3 1.723,0.3 v 0 H 43 c 23.584,0 42.7,19.117 42.7,42.7 v 0 C 85.7,66.583 66.584,85.7 43,85.7 v 0 C 19.417,85.7 0.301,66.583 0.301,43"
inkscape:connector-curvature="0"
id="path2" />
</clipPath>
<linearGradient
x1="0"
y1="0"
x2="1"
y2="0"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-72.476372,-72.476372,72.476372,-72.476372,73.193359,73.192871)"
spreadMethod="pad"
id="linearGradient30">
x1="0"
y1="0"
x2="1"
y2="0"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-72.476372,-72.476372,72.476372,-72.476372,73.193359,73.192871)"
spreadMethod="pad"
id="linearGradient30">
<stop
style="stop-opacity:1;stop-color:#ec7221"
offset="0"/>
style="stop-opacity:1;stop-color:#ec7221"
offset="0"
id="stop5" />
<stop
style="stop-opacity:1;stop-color:#e7454c"
offset="0.959184"/>
style="stop-opacity:1;stop-color:#e7454c"
offset="0.959184"
id="stop7" />
<stop
style="stop-opacity:1;stop-color:#e7454c"
offset="1"/>
style="stop-opacity:1;stop-color:#e7454c"
offset="1"
id="stop9" />
</linearGradient>
</defs>
<g
inkscape:groupmode="layer"
inkscape:label="harbour-fernschreiber"
transform="matrix(1.3333333,0,0,-1.3333333,0,114.66667)">
<g>
inkscape:groupmode="layer"
inkscape:label="harbour-fernschreiber"
transform="matrix(1.3333333,0,0,-1.3333333,0,114.66667)"
id="g67">
<g
id="g18">
<g
clip-path="url(#clipPath18)">
clip-path="url(#clipPath18)"
id="g16">
<path
d="M 0.301,43 C 0.301,42.364 0.3,1.723 0.3,1.723 v 0 C 0.3,0.938 0.938,0.3 1.723,0.3 v 0 H 43 c 23.584,0 42.7,19.117 42.7,42.7 v 0 C 85.7,66.583 66.584,85.7 43,85.7 v 0 C 19.417,85.7 0.301,66.583 0.301,43"
style="fill:url(#linearGradient30);stroke:none"
inkscape:connector-curvature="0"/>
d="M 0.301,43 C 0.301,42.364 0.3,1.723 0.3,1.723 v 0 C 0.3,0.938 0.938,0.3 1.723,0.3 v 0 H 43 c 23.584,0 42.7,19.117 42.7,42.7 v 0 C 85.7,66.583 66.584,85.7 43,85.7 v 0 C 19.417,85.7 0.301,66.583 0.301,43"
style="fill:url(#linearGradient30);stroke:none"
inkscape:connector-curvature="0"
id="path14" />
</g>
</g>
<g
transform="translate(75,43.1621)"/>
transform="translate(75,43.1621)"
id="g20" />
<path
inkscape:connector-curvature="0"
style="opacity:0.9;fill:#fcba02;stroke-width:0.97363532;fill-opacity:1"
d="m 43.000002,75.285148 c -17.583854,0 -31.837875,-12.9659 -31.837875,-28.958836 V 17.367476 7.7148552 c 5.861284,0 10.612625,4.1720268 10.612625,9.5017078 h 21.22525 c 17.583855,0 31.837876,13.115841 31.837876,29.109749 0,15.992936 -14.254021,28.958836 -31.837876,28.958836 z"
id="path10"/><g
id="g46"
transform="translate(15.3208,45.7656)"><path
d="m 0,0 c 0,-0.729 0.592,-1.322 1.323,-1.322 0.732,0 1.324,0.593 1.324,1.322 0,0.73 -0.592,1.322 -1.324,1.322 C 0.592,1.322 0,0.73 0,0"
style="fill:#fffda9;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="path48"
inkscape:connector-curvature="0" /></g><g
id="g50"
transform="translate(21.8672,45.7656)"><path
d="m 0,0 c 0,-0.729 0.591,-1.322 1.321,-1.322 0.732,0 1.323,0.593 1.323,1.322 0,0.73 -0.591,1.322 -1.323,1.322 C 0.591,1.322 0,0.73 0,0"
style="fill:#fffda9;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="path52"
inkscape:connector-curvature="0" /></g><g
id="g54"
transform="translate(28.4116,45.7656)"><path
d="m 0,0 c 0,-0.729 0.591,-1.322 1.323,-1.322 0.729,0 1.321,0.593 1.321,1.322 0,0.73 -0.592,1.322 -1.321,1.322 C 0.591,1.322 0,0.73 0,0"
style="fill:#fffda9;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="path56"
inkscape:connector-curvature="0" /></g><g
id="g58"
transform="translate(34.9561,45.7656)"><path
d="m 0,0 c 0,-0.729 0.592,-1.322 1.323,-1.322 0.73,0 1.321,0.593 1.321,1.322 0,0.73 -0.591,1.322 -1.321,1.322 C 0.592,1.322 0,0.73 0,0"
style="fill:#fffda9;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="path60"
inkscape:connector-curvature="0" /></g><g
id="g62"
transform="translate(41.502,45.7656)"><path
d="m 0,0 c 0,-0.729 0.593,-1.322 1.32,-1.322 0.732,0 1.322,0.593 1.322,1.322 0,0.73 -0.59,1.322 -1.322,1.322 C 0.593,1.322 0,0.73 0,0"
style="fill:#fffda9;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="path64"
inkscape:connector-curvature="0" /></g><g
id="g66"
transform="translate(48.0469,45.7656)"><path
d="m 0,0 c 0,-0.729 0.59,-1.322 1.32,-1.322 0.732,0 1.322,0.593 1.322,1.322 0,0.73 -0.59,1.322 -1.322,1.322 C 0.59,1.322 0,0.73 0,0"
style="fill:#fffda9;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="path68"
inkscape:connector-curvature="0" /></g><g
id="g70"
transform="translate(54.5898,45.7656)"><path
d="m 0,0 c 0,-0.729 0.594,-1.322 1.32,-1.322 0.735,0 1.326,0.593 1.326,1.322 0,0.73 -0.591,1.322 -1.326,1.322 C 0.594,1.322 0,0.73 0,0"
style="fill:#fffda9;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="path72"
inkscape:connector-curvature="0" /></g><g
id="g74"
transform="translate(61.1377,45.7656)"><path
d="m 0,0 c 0,-0.729 0.59,-1.322 1.319,-1.322 0.732,0 1.322,0.593 1.322,1.322 0,0.73 -0.59,1.322 -1.322,1.322 C 0.59,1.322 0,0.73 0,0"
style="fill:#fffda9;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="path76"
inkscape:connector-curvature="0" /></g><g
id="g78"
transform="translate(14,26.1348)"><path
d="m 0,0 c 0,-1.465 1.184,-2.646 2.644,-2.646 1.461,0 2.645,1.181 2.645,2.646 0,1.459 -1.184,2.641 -2.645,2.641 C 1.184,2.641 0,1.459 0,0"
style="fill:#fffee3;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="path80"
inkscape:connector-curvature="0" /></g><g
id="g82"
transform="translate(20.5444,58.856)"><path
d="m 0,0 c 0,-1.462 1.185,-2.645 2.644,-2.645 1.461,0 2.645,1.183 2.645,2.645 0,1.459 -1.184,2.644 -2.645,2.644 C 1.185,2.644 0,1.459 0,0"
style="fill:#fffee3;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="path84"
inkscape:connector-curvature="0" /></g><g
id="g86"
transform="translate(27.0894,52.3101)"><path
d="m 0,0 c 0,-1.461 1.185,-2.644 2.645,-2.644 1.461,0 2.644,1.183 2.644,2.644 0,1.46 -1.183,2.645 -2.644,2.645 C 1.185,2.645 0,1.46 0,0"
style="fill:#fffee3;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="path88"
inkscape:connector-curvature="0" /></g><g
id="g90"
transform="translate(27.0894,26.1348)"><path
d="m 0,0 c 0,-1.465 1.185,-2.646 2.645,-2.646 1.461,0 2.644,1.181 2.644,2.646 0,1.459 -1.183,2.641 -2.644,2.641 C 1.185,2.641 0,1.459 0,0"
style="fill:#fffee3;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="path92"
inkscape:connector-curvature="0" /></g><g
id="g94"
transform="translate(33.6338,58.856)"><path
d="M 0,0 C 0,-1.462 1.184,-2.645 2.646,-2.645 4.106,-2.645 5.29,-1.462 5.29,0 5.29,1.459 4.106,2.644 2.646,2.644 1.184,2.644 0,1.459 0,0"
style="fill:#fffee3;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="path96"
inkscape:connector-curvature="0" /></g><g
id="g98"
transform="translate(40.1758,52.3101)"><path
d="m 0,0 c 0,-1.461 1.187,-2.644 2.646,-2.644 1.461,0 2.648,1.183 2.648,2.644 0,1.46 -1.187,2.645 -2.648,2.645 C 1.187,2.645 0,1.46 0,0"
style="fill:#fffee3;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="path100"
inkscape:connector-curvature="0" /></g><g
id="g102"
transform="translate(40.1758,32.6768)"><path
d="m 0,0 c 0,-1.458 1.187,-2.646 2.646,-2.646 1.461,0 2.648,1.188 2.648,2.646 0,1.459 -1.187,2.645 -2.648,2.645 C 1.187,2.645 0,1.459 0,0"
style="fill:#fffee3;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="path104"
inkscape:connector-curvature="0" /></g><g
id="g106"
transform="translate(40.1758,26.1348)"><path
d="m 0,0 c 0,-1.465 1.187,-2.646 2.646,-2.646 1.461,0 2.648,1.181 2.648,2.646 0,1.459 -1.187,2.641 -2.648,2.641 C 1.187,2.641 0,1.459 0,0"
style="fill:#fffee3;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="path108"
inkscape:connector-curvature="0" /></g><g
id="g110"
transform="translate(46.7236,52.3101)"><path
d="m 0,0 c 0,-1.461 1.184,-2.644 2.644,-2.644 1.461,0 2.645,1.183 2.645,2.644 0,1.46 -1.184,2.645 -2.645,2.645 C 1.184,2.645 0,1.46 0,0"
style="fill:#fffee3;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="path112"
inkscape:connector-curvature="0" /></g><g
id="g114"
transform="translate(46.7236,32.6768)"><path
d="m 0,0 c 0,-1.458 1.184,-2.646 2.644,-2.646 1.461,0 2.645,1.188 2.645,2.646 0,1.459 -1.184,2.645 -2.645,2.645 C 1.184,2.645 0,1.459 0,0"
style="fill:#fffee3;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="path116"
inkscape:connector-curvature="0" /></g><g
id="g118"
transform="translate(53.2686,58.856)"><path
d="m 0,0 c 0,-1.462 1.183,-2.645 2.643,-2.645 1.461,0 2.645,1.183 2.645,2.645 0,1.459 -1.184,2.644 -2.645,2.644 C 1.183,2.644 0,1.459 0,0"
style="fill:#fffee3;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="path120"
inkscape:connector-curvature="0" /></g><g
id="g122"
transform="translate(53.2686,52.3101)"><path
d="m 0,0 c 0,-1.461 1.183,-2.644 2.643,-2.644 1.461,0 2.645,1.183 2.645,2.644 0,1.46 -1.184,2.645 -2.645,2.645 C 1.183,2.645 0,1.46 0,0"
style="fill:#fffee3;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="path124"
inkscape:connector-curvature="0" /></g><g
id="g126"
transform="translate(59.8135,39.2217)"><path
d="m 0,0 c 0,-1.459 1.187,-2.646 2.644,-2.646 1.461,0 2.644,1.187 2.644,2.646 0,1.459 -1.183,2.646 -2.644,2.646 C 1.187,2.646 0,1.459 0,0"
style="fill:#fffee3;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="path128"
inkscape:connector-curvature="0" /></g><g
id="g130"
transform="translate(59.8135,32.6768)"><path
d="m 0,0 c 0,-1.458 1.187,-2.646 2.644,-2.646 1.461,0 2.644,1.188 2.644,2.646 0,1.459 -1.183,2.645 -2.644,2.645 C 1.187,2.645 0,1.459 0,0"
style="fill:#fffee3;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="path132"
inkscape:connector-curvature="0" /></g>
style="opacity:0.9;fill:#fcba02;fill-opacity:1;stroke-width:0.9930262"
d="M 42.700457,74.178768 C 24.766404,74.178768 10.2285,60.954638 10.2285,44.643189 V 15.107611 5.2627488 c 5.978017,0 10.823985,4.255117 10.823985,9.6909432 h 21.647972 c 17.934054,0 32.471954,13.377056 32.471954,29.689497 0,16.311449 -14.5379,29.535579 -32.471954,29.535579 z"
id="path10-3"
inkscape:connector-curvature="0" /><g
id="g46"
transform="translate(15.3208,45.7656)"><path
d="m 0,0 c 0,-0.729 0.592,-1.322 1.323,-1.322 0.732,0 1.324,0.593 1.324,1.322 0,0.73 -0.592,1.322 -1.324,1.322 C 0.592,1.322 0,0.73 0,0"
style="fill:#fffda9;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="path48"
inkscape:connector-curvature="0" /></g><g
id="g50"
transform="translate(21.8672,45.7656)"><path
d="m 0,0 c 0,-0.729 0.591,-1.322 1.321,-1.322 0.732,0 1.323,0.593 1.323,1.322 0,0.73 -0.591,1.322 -1.323,1.322 C 0.591,1.322 0,0.73 0,0"
style="fill:#fffda9;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="path52"
inkscape:connector-curvature="0" /></g><g
id="g54"
transform="translate(28.4116,45.7656)"><path
d="m 0,0 c 0,-0.729 0.591,-1.322 1.323,-1.322 0.729,0 1.321,0.593 1.321,1.322 0,0.73 -0.592,1.322 -1.321,1.322 C 0.591,1.322 0,0.73 0,0"
style="fill:#fffda9;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="path56"
inkscape:connector-curvature="0" /></g><g
id="g58"
transform="translate(34.9561,45.7656)"><path
d="m 0,0 c 0,-0.729 0.592,-1.322 1.323,-1.322 0.73,0 1.321,0.593 1.321,1.322 0,0.73 -0.591,1.322 -1.321,1.322 C 0.592,1.322 0,0.73 0,0"
style="fill:#fffda9;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="path60"
inkscape:connector-curvature="0" /></g><g
id="g62"
transform="translate(41.502,45.7656)"><path
d="m 0,0 c 0,-0.729 0.593,-1.322 1.32,-1.322 0.732,0 1.322,0.593 1.322,1.322 0,0.73 -0.59,1.322 -1.322,1.322 C 0.593,1.322 0,0.73 0,0"
style="fill:#fffda9;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="path64"
inkscape:connector-curvature="0" /></g><g
id="g66"
transform="translate(48.0469,45.7656)"><path
d="m 0,0 c 0,-0.729 0.59,-1.322 1.32,-1.322 0.732,0 1.322,0.593 1.322,1.322 0,0.73 -0.59,1.322 -1.322,1.322 C 0.59,1.322 0,0.73 0,0"
style="fill:#fffda9;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="path68"
inkscape:connector-curvature="0" /></g><g
id="g70"
transform="translate(54.5898,45.7656)"><path
d="m 0,0 c 0,-0.729 0.594,-1.322 1.32,-1.322 0.735,0 1.326,0.593 1.326,1.322 0,0.73 -0.591,1.322 -1.326,1.322 C 0.594,1.322 0,0.73 0,0"
style="fill:#fffda9;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="path72"
inkscape:connector-curvature="0" /></g><g
id="g74"
transform="translate(61.1377,45.7656)"><path
d="m 0,0 c 0,-0.729 0.59,-1.322 1.319,-1.322 0.732,0 1.322,0.593 1.322,1.322 0,0.73 -0.59,1.322 -1.322,1.322 C 0.59,1.322 0,0.73 0,0"
style="fill:#fffda9;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="path76"
inkscape:connector-curvature="0" /></g><g
id="g78"
transform="translate(14,26.1348)"><path
d="m 0,0 c 0,-1.465 1.184,-2.646 2.644,-2.646 1.461,0 2.645,1.181 2.645,2.646 0,1.459 -1.184,2.641 -2.645,2.641 C 1.184,2.641 0,1.459 0,0"
style="fill:#fffee3;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="path80"
inkscape:connector-curvature="0" /></g><g
id="g82"
transform="translate(20.5444,58.856)"><path
d="m 0,0 c 0,-1.462 1.185,-2.645 2.644,-2.645 1.461,0 2.645,1.183 2.645,2.645 0,1.459 -1.184,2.644 -2.645,2.644 C 1.185,2.644 0,1.459 0,0"
style="fill:#fffee3;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="path84"
inkscape:connector-curvature="0" /></g><g
id="g86"
transform="translate(27.0894,52.3101)"><path
d="m 0,0 c 0,-1.461 1.185,-2.644 2.645,-2.644 1.461,0 2.644,1.183 2.644,2.644 0,1.46 -1.183,2.645 -2.644,2.645 C 1.185,2.645 0,1.46 0,0"
style="fill:#fffee3;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="path88"
inkscape:connector-curvature="0" /></g><g
id="g90"
transform="translate(27.0894,26.1348)"><path
d="m 0,0 c 0,-1.465 1.185,-2.646 2.645,-2.646 1.461,0 2.644,1.181 2.644,2.646 0,1.459 -1.183,2.641 -2.644,2.641 C 1.185,2.641 0,1.459 0,0"
style="fill:#fffee3;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="path92"
inkscape:connector-curvature="0" /></g><g
id="g94"
transform="translate(33.6338,58.856)"><path
d="M 0,0 C 0,-1.462 1.184,-2.645 2.646,-2.645 4.106,-2.645 5.29,-1.462 5.29,0 5.29,1.459 4.106,2.644 2.646,2.644 1.184,2.644 0,1.459 0,0"
style="fill:#fffee3;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="path96"
inkscape:connector-curvature="0" /></g><g
id="g98"
transform="translate(40.1758,52.3101)"><path
d="m 0,0 c 0,-1.461 1.187,-2.644 2.646,-2.644 1.461,0 2.648,1.183 2.648,2.644 0,1.46 -1.187,2.645 -2.648,2.645 C 1.187,2.645 0,1.46 0,0"
style="fill:#fffee3;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="path100"
inkscape:connector-curvature="0" /></g><g
id="g102"
transform="translate(40.1758,32.6768)"><path
d="m 0,0 c 0,-1.458 1.187,-2.646 2.646,-2.646 1.461,0 2.648,1.188 2.648,2.646 0,1.459 -1.187,2.645 -2.648,2.645 C 1.187,2.645 0,1.459 0,0"
style="fill:#fffee3;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="path104"
inkscape:connector-curvature="0" /></g><g
id="g106"
transform="translate(40.1758,26.1348)"><path
d="m 0,0 c 0,-1.465 1.187,-2.646 2.646,-2.646 1.461,0 2.648,1.181 2.648,2.646 0,1.459 -1.187,2.641 -2.648,2.641 C 1.187,2.641 0,1.459 0,0"
style="fill:#fffee3;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="path108"
inkscape:connector-curvature="0" /></g><g
id="g110"
transform="translate(46.7236,52.3101)"><path
d="m 0,0 c 0,-1.461 1.184,-2.644 2.644,-2.644 1.461,0 2.645,1.183 2.645,2.644 0,1.46 -1.184,2.645 -2.645,2.645 C 1.184,2.645 0,1.46 0,0"
style="fill:#fffee3;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="path112"
inkscape:connector-curvature="0" /></g><g
id="g114"
transform="translate(46.7236,32.6768)"><path
d="m 0,0 c 0,-1.458 1.184,-2.646 2.644,-2.646 1.461,0 2.645,1.188 2.645,2.646 0,1.459 -1.184,2.645 -2.645,2.645 C 1.184,2.645 0,1.459 0,0"
style="fill:#fffee3;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="path116"
inkscape:connector-curvature="0" /></g><g
id="g118"
transform="translate(53.2686,58.856)"><path
d="m 0,0 c 0,-1.462 1.183,-2.645 2.643,-2.645 1.461,0 2.645,1.183 2.645,2.645 0,1.459 -1.184,2.644 -2.645,2.644 C 1.183,2.644 0,1.459 0,0"
style="fill:#fffee3;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="path120"
inkscape:connector-curvature="0" /></g><g
id="g122"
transform="translate(53.2686,52.3101)"><path
d="m 0,0 c 0,-1.461 1.183,-2.644 2.643,-2.644 1.461,0 2.645,1.183 2.645,2.644 0,1.46 -1.184,2.645 -2.645,2.645 C 1.183,2.645 0,1.46 0,0"
style="fill:#fffee3;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="path124"
inkscape:connector-curvature="0" /></g><g
id="g126"
transform="translate(59.8135,39.2217)"><path
d="m 0,0 c 0,-1.459 1.187,-2.646 2.644,-2.646 1.461,0 2.644,1.187 2.644,2.646 0,1.459 -1.183,2.646 -2.644,2.646 C 1.187,2.646 0,1.459 0,0"
style="fill:#fffee3;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="path128"
inkscape:connector-curvature="0" /></g><g
id="g130"
transform="translate(59.8135,32.6768)"><path
d="m 0,0 c 0,-1.458 1.187,-2.646 2.644,-2.646 1.461,0 2.644,1.188 2.644,2.646 0,1.459 -1.183,2.645 -2.644,2.645 C 1.187,2.645 0,1.459 0,0"
style="fill:#fffee3;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="path132"
inkscape:connector-curvature="0" /></g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 9.7 KiB

View file

@ -24,6 +24,8 @@ PhotoTextsListItem {
// message date
tertiaryText.text: showDraft ? Functions.getDateTimeElapsed(draft_message_date) : ( last_message_date ? ( last_message_date.length === 0 ? "" : Functions.getDateTimeElapsed(last_message_date) + Emoji.emojify(last_message_status, tertiaryText.font.pixelSize) ) : "" )
unreadCount: unread_count
unreadReactionCount: unread_reaction_count
unreadMentionCount: unread_mention_count
isSecret: ( chat_type === TelegramAPI.ChatTypeSecret )
isMarkedAsUnread: is_marked_as_unread
isPinned: is_pinned
@ -48,16 +50,18 @@ PhotoTextsListItem {
sourceComponent: Component {
ContextMenu {
MenuItem {
visible: unread_count > 0
visible: unread_count > 0 || unread_reaction_count > 0 || unread_mention_count > 0
onClicked: {
tdLibWrapper.viewMessage(chat_id, display.last_message.id, true);
tdLibWrapper.readAllChatMentions(chat_id);
tdLibWrapper.readAllChatReactions(chat_id);
tdLibWrapper.toggleChatIsMarkedAsUnread(chat_id, false);
}
text: qsTr("Mark all messages as read")
}
MenuItem {
visible: unread_count === 0
visible: unread_count === 0 && unread_reaction_count === 0 && unread_mention_count === 0
onClicked: {
tdLibWrapper.toggleChatIsMarkedAsUnread(chat_id, !is_marked_as_unread);
}

View file

@ -0,0 +1,44 @@
/*
Copyright (C) 2021 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/>.
*/
import QtQuick 2.0
//import org.nemomobile.contacts 1.0
Item {
// signal syncError();
// function synchronize() {
// if (peopleModel.count === 0) {
// appNotification.show(qsTr("Could not synchronize your contacts with Telegram."));
// syncError();
// } else {
// contactsModel.startImportingContacts();
// for (var i = 0; i < peopleModel.count; i++ ) {
// contactsModel.importContact(peopleModel.get(i));
// }
// contactsModel.stopImportingContacts();
// }
// }
// PeopleModel {
// id: peopleModel
// requiredProperty: PeopleModel.PhoneNumberRequired
// }
}

View file

@ -31,16 +31,24 @@ Row {
property string myUserId;
property var inReplyToMessage;
property bool editable: false;
property bool inReplyToMessageDeleted: false;
signal clearRequested()
onInReplyToMessageChanged: {
if (inReplyToMessage) {
inReplyToUserText.text = (inReplyToMessage.sender["@type"] === "messageSenderChat" ? page.chatInformation.title : (inReplyToRow.inReplyToMessage.sender.user_id !== inReplyToRow.myUserId) ? Emoji.emojify(Functions.getUserName(tdLibWrapper.getUserInformation(inReplyToRow.inReplyToMessage.sender.user_id)), inReplyToUserText.font.pixelSize) : qsTr("You"));
inReplyToUserText.text = (inReplyToMessage.sender_id["@type"] === "messageSenderChat" ? page.chatInformation.title : (inReplyToRow.inReplyToMessage.sender_id.user_id !== inReplyToRow.myUserId) ? Emoji.emojify(Functions.getUserName(tdLibWrapper.getUserInformation(inReplyToRow.inReplyToMessage.sender_id.user_id)), inReplyToUserText.font.pixelSize) : qsTr("You"));
inReplyToMessageText.text = Emoji.emojify(Functions.getMessageText(inReplyToRow.inReplyToMessage, true, inReplyToRow.myUserId, false), inReplyToMessageText.font.pixelSize);
}
}
onInReplyToMessageDeletedChanged: {
if (inReplyToMessageDeleted) {
inReplyToUserText.text = qsTr("Unknown")
inReplyToMessageText.text = "<i>" + qsTr("This message was deleted") + "</i>";
}
}
Rectangle {
id: inReplyToMessageRectangle
height: inReplyToMessageColumn.height

View file

@ -76,7 +76,6 @@ Column {
anchors.verticalCenter: parent.verticalCenter
text: editAreaColumn.text || editAreaColumn.emptyPlaceholderText
width: parent.width - editAreaButton.width
height: !editAreaColumn.multiLine ? implicitHeight : editAreaTextField.height
}
IconButton {
id: editAreaButton

View file

@ -40,7 +40,7 @@ Loader {
property string chatId
property string userName
property bool userNameIsValid: userName !== "" && inlineBotInformation && userName.toLowerCase() === inlineBotInformation.username.toLowerCase()
property bool userNameIsValid: userName !== "" && inlineBotInformation && userName.toLowerCase() === inlineBotInformation.usernames.editable_username.toLowerCase()
property string query
property int currentOffset: 0
property string responseExtra: chatId+"|"+userName+"|"+query+"|"+currentOffset

View file

@ -25,56 +25,193 @@ import "../js/debug.js" as Debug
ListItem {
id: messageListItem
contentHeight: messageBackground.height + Theme.paddingMedium
contentHeight: messageBackground.height + Theme.paddingMedium + ( reactionsColumn.visible ? reactionsColumn.height : 0 )
Behavior on contentHeight { NumberAnimation { duration: 200 } }
property var chatId
property var messageId
property int messageIndex
property int messageViewCount
property var myMessage
property var reactions
property bool canReplyToMessage
readonly property bool isAnonymous: myMessage.sender["@type"] === "messageSenderChat"
readonly property var userInformation: tdLibWrapper.getUserInformation(myMessage.sender.user_id)
readonly property bool isAnonymous: myMessage.sender_id["@type"] === "messageSenderChat"
readonly property var userInformation: tdLibWrapper.getUserInformation(myMessage.sender_id.user_id)
property QtObject precalculatedValues: ListView.view.precalculatedValues
readonly property color textColor: isOwnMessage ? Theme.highlightColor : Theme.primaryColor
readonly property int textAlign: isOwnMessage ? Text.AlignRight : Text.AlignLeft
readonly property int textAlign: Text.AlignLeft
readonly property Page page: precalculatedValues.page
readonly property bool isSelected: messageListItem.precalculatedValues.pageIsSelecting && page.selectedMessages.some(function(existingMessage) {
return existingMessage.id === messageId
});
readonly property bool isOwnMessage: page.myUserId === myMessage.sender.user_id
readonly property bool isOwnMessage: page.myUserId === myMessage.sender_id.user_id
readonly property bool canDeleteMessage: myMessage.can_be_deleted_for_all_users || (myMessage.can_be_deleted_only_for_self && myMessage.chat_id === page.myUserId)
property bool hasContentComponent
property bool additionalOptionsOpened
property bool wasNavigatedTo: false
highlighted: (down || isSelected) && !menuOpen
readonly property var additionalItemsModel: (extraContentLoader.item && ("extraContextMenuItems" in extraContentLoader.item)) ?
extraContentLoader.item.extraContextMenuItems : 0
readonly property int numberOfExtraOptionsOtherThanDeleteMessage:
(showCopyMessageToClipboardMenuItem ? 0 : 1) +
(showForwardMessageMenuItem ? 0 : 1) +
(page.canPinMessages() ? 1 : 0) +
(additionalItemsModel ? additionalItemsModel.length : 0)
readonly property bool deleteMessageIsOnlyExtraOption: canDeleteMessage && !numberOfExtraOptionsOtherThanDeleteMessage
readonly property int maxContextMenuItemCount: page.isPortrait ? 5 : 4
readonly property int baseContextMenuItemCount: (canReplyToMessage ? 1 : 0) +
(myMessage.can_be_edited ? 1 : 0) + 2 /* "Select Message" and "More Options..." */
readonly property bool showCopyMessageToClipboardMenuItem: (baseContextMenuItemCount + 1) <= maxContextMenuItemCount
readonly property bool showForwardMessageMenuItem: (baseContextMenuItemCount + 2) <= maxContextMenuItemCount
// And don't count "More Options..." for "Delete Message" if "Delete Message" is the only extra option
readonly property bool haveSpaceForDeleteMessageMenuItem: (baseContextMenuItemCount + 3 - (deleteMessageIsOnlyExtraOption ? 1 : 0)) <= maxContextMenuItemCount
property var chatReactions
property var messageReactions
highlighted: (down || isSelected || additionalOptionsOpened || wasNavigatedTo) && !menuOpen
openMenuOnPressAndHold: !messageListItem.precalculatedValues.pageIsSelecting
signal replyToMessage()
signal editMessage()
signal forwardMessage()
function deleteMessage() {
var chatId = page.chatInformation.id
var messageId = myMessage.id
Remorse.itemAction(messageListItem, qsTr("Message deleted"), function() {
tdLibWrapper.deleteMessages(chatId, [ messageId ]);
})
}
function copyMessageToClipboard() {
Clipboard.text = Functions.getMessageText(myMessage, true, userInformation.id, true)
}
function openContextMenu() {
messageOptionsDrawer.open = false
if (menu) {
openMenu()
} else {
contextMenuLoader.active = true
}
}
function getInteractionText(viewCount, reactions, size, highlightColor) {
var interactionText = "";
if (viewCount > 0) {
interactionText = Emoji.emojify("👁️ ", size) + Functions.getShortenedCount(viewCount);
}
for (var i = 0; i < reactions.length; i++) {
var reaction = reactions[i]
var reactionText = reaction.reaction ? reaction.reaction : (reaction.type && reaction.type.emoji) ? reaction.type.emoji : ""
if (reactionText) {
interactionText += ( "&nbsp;" + Emoji.emojify(reactionText, size) );
if (!chatPage.isPrivateChat) {
var count = Functions.getShortenedCount(reaction.total_count)
interactionText += " "
interactionText += (reaction.is_chosen ? ( "<font color='" + highlightColor + "'><b>" + count + "</b></font>" ) : count)
}
}
}
return interactionText;
}
function openReactions() {
if (messageListItem.chatReactions) {
Debug.log("Using chat reactions")
messageListItem.messageReactions = chatReactions
showItemCompletelyTimer.requestedIndex = index;
showItemCompletelyTimer.start();
} else {
Debug.log("Obtaining message reactions")
tdLibWrapper.getMessageAvailableReactions(messageListItem.chatId, messageListItem.messageId);
}
selectReactionBubble.visible = false;
}
function getContentWidthMultiplier() {
return Functions.isWidescreen(appWindow) ? 0.4 : 1.0
}
onClicked: {
if(messageListItem.precalculatedValues.pageIsSelecting) {
if (messageListItem.precalculatedValues.pageIsSelecting) {
page.toggleMessageSelection(myMessage);
} else {
if (messageOptionsDrawer.sourceItem !== messageListItem) {
messageOptionsDrawer.open = false
}
// Allow extra context to react to click
var extraContent = extraContentLoader.item
if (extraContent && ("clicked" in extraContent) && (typeof extraContent.clicked === "function") &&
mouseX >= extraContentLoader.x && mouseY >= extraContentLoader.y &&
mouseX < (extraContentLoader.x + extraContentLoader.width) &&
mouseY < (extraContentLoader.y + extraContentLoader.height)) {
if (extraContent && extraContentLoader.contains(mapToItem(extraContentLoader, mouse.x, mouse.y))) {
extraContent.clicked()
} else if (webPagePreviewLoader.item) {
webPagePreviewLoader.item.clicked()
}
if (messageListItem.messageReactions) {
messageListItem.messageReactions = null;
selectReactionBubble.visible = false;
} else {
selectReactionBubble.visible = !selectReactionBubble.visible;
elementSelected(index);
}
}
}
onDoubleClicked: {
if (messageListItem.chatReactions) {
Debug.log("Using chat reactions")
messageListItem.messageReactions = chatReactions
showItemCompletelyTimer.requestedIndex = index;
showItemCompletelyTimer.start();
} else {
Debug.log("Obtaining message reactions")
tdLibWrapper.getMessageAvailableReactions(messageListItem.chatId, messageListItem.messageId);
}
}
onPressAndHold: {
if(messageListItem.precalculatedValues.pageIsSelecting) {
page.selectedMessages = [];
page.state = ""
if (openMenuOnPressAndHold) {
openContextMenu()
} else {
contextMenuLoader.active = true;
page.selectedMessages = []
page.state = ""
}
}
onMenuOpenChanged: {
// When opening/closing the context menu, we no longer scroll automatically
chatView.manuallyScrolledToBottom = false;
}
Connections {
target: additionalOptionsOpened ? messageOptionsDrawer : null
onOpenChanged: {
if (!messageOptionsDrawer.open) {
additionalOptionsOpened = false
}
}
}
Connections {
target: chatPage
onResetElements: {
messageListItem.messageReactions = null;
selectReactionBubble.visible = false;
}
onElementSelected: {
if (elementIndex !== index) {
selectReactionBubble.visible = false;
}
}
onNavigatedTo: {
if (targetIndex === index) {
messageListItem.wasNavigatedTo = true;
restoreNormalityTimer.start();
}
}
}
Loader {
id: contextMenuLoader
active: false
@ -87,58 +224,50 @@ ListItem {
}
sourceComponent: Component {
ContextMenu {
Repeater {
model: (extraContentLoader.item && ("extraContextMenuItems" in extraContentLoader.item)) ?
extraContentLoader.item.extraContextMenuItems : 0
delegate: MenuItem {
visible: modelData.visible
text: modelData.name
onClicked: modelData.action()
}
}
MenuItem {
visible: messageListItem.canReplyToMessage
onClicked: messageListItem.replyToMessage()
visible: canReplyToMessage
onClicked: replyToMessage()
text: qsTr("Reply to Message")
}
MenuItem {
visible: myMessage.can_be_edited
onClicked: messageListItem.editMessage()
visible: typeof myMessage.can_be_edited !== "undefined" && myMessage.can_be_edited
onClicked: editMessage()
text: qsTr("Edit Message")
}
MenuItem {
onClicked: {
Clipboard.text = Functions.getMessageText(myMessage, true, userInformation.id, true);
}
text: qsTr("Copy Message to Clipboard")
}
MenuItem {
onClicked: {
page.toggleMessageSelection(myMessage);
}
onClicked: page.toggleMessageSelection(myMessage)
text: qsTr("Select Message")
}
MenuItem {
onClicked: {
if (myMessage.is_pinned) {
Remorse.popupAction(page, qsTr("Message unpinned"), function() { tdLibWrapper.unpinMessage(page.chatInformation.id, messageId);
pinnedMessageItem.requestCloseMessage(); } );
} else {
tdLibWrapper.pinMessage(page.chatInformation.id, messageId);
}
}
text: myMessage.is_pinned ? qsTr("Unpin Message") : qsTr("Pin Message")
visible: canPinMessages()
visible: showCopyMessageToClipboardMenuItem
onClicked: copyMessageToClipboard()
text: qsTr("Copy Message to Clipboard")
}
MenuItem {
onClicked: {
var chatId = page.chatInformation.id;
var messageId = messageListItem.messageId;
Remorse.itemAction(messageListItem, qsTr("Message deleted"), function() { tdLibWrapper.deleteMessages(chatId, [ messageId]); })
}
visible: showForwardMessageMenuItem
onClicked: forwardMessage()
text: qsTr("Forward Message")
}
MenuItem {
visible: canDeleteMessage && haveSpaceForDeleteMessageMenuItem
onClicked: deleteMessage()
text: qsTr("Delete Message")
visible: myMessage.can_be_deleted_for_all_users || (myMessage.can_be_deleted_only_for_self && myMessage.chat_id === page.myUserId)
}
MenuItem {
visible: (numberOfExtraOptionsOtherThanDeleteMessage > 0) ||
(deleteMessageIsOnlyExtraOption && !haveSpaceForDeleteMessageMenuItem)
onClicked: {
messageOptionsDrawer.myMessage = myMessage;
messageOptionsDrawer.userInformation = userInformation;
messageOptionsDrawer.sourceItem = messageListItem
messageOptionsDrawer.additionalItemsModel = additionalItemsModel
messageOptionsDrawer.showCopyMessageToClipboardMenuItem = !showCopyMessageToClipboardMenuItem
messageOptionsDrawer.showForwardMessageMenuItem = !showForwardMessageMenuItem
messageOptionsDrawer.showDeleteMessageMenuItem = canDeleteMessage && !haveSpaceForDeleteMessageMenuItem
messageListItem.additionalOptionsOpened = true;
messageOptionsDrawer.open = true;
}
text: qsTr("More Options...")
}
}
}
@ -147,16 +276,16 @@ ListItem {
Connections {
target: chatModel
onMessagesReceived: {
messageBackground.isUnread = index > chatModel.getLastReadMessageIndex();
messageBackground.isUnread = index > chatModel.getLastReadMessageIndex() && myMessage['@type'] !== "sponsoredMessage";
}
onMessagesIncrementalUpdate: {
messageBackground.isUnread = index > chatModel.getLastReadMessageIndex();
messageBackground.isUnread = index > chatModel.getLastReadMessageIndex() && myMessage['@type'] !== "sponsoredMessage";
}
onNewMessageReceived: {
messageBackground.isUnread = index > chatModel.getLastReadMessageIndex();
messageBackground.isUnread = index > chatModel.getLastReadMessageIndex() && myMessage['@type'] !== "sponsoredMessage";
}
onUnreadCountUpdated: {
messageBackground.isUnread = index > chatModel.getLastReadMessageIndex();
messageBackground.isUnread = index > chatModel.getLastReadMessageIndex() && myMessage['@type'] !== "sponsoredMessage";
}
onLastReadSentMessageUpdated: {
Debug.log("[ChatModel] Messages in this chat were read, new last read: ", lastReadSentIndex, ", updating description for index ", index, ", status: ", (index <= lastReadSentIndex));
@ -173,16 +302,68 @@ ListItem {
}
onMessageNotFound: {
if (messageId === myMessage.reply_to_message_id) {
messageInReplyToLoader.active = false;
messageInReplyToLoader.inReplyToMessageDeleted = true;
}
}
onAvailableReactionsReceived: {
if (messageListItem.messageId === messageId &&
pageStack.currentPage === chatPage) {
Debug.log("Available reactions for this message: " + reactions);
messageListItem.messageReactions = reactions;
showItemCompletelyTimer.requestedIndex = index;
showItemCompletelyTimer.start();
} else {
messageListItem.messageReactions = null;
}
}
onReactionsUpdated: {
chatReactions = tdLibWrapper.getChatReactions(page.chatInformation.id);
}
}
Timer {
id: showItemCompletelyTimer
property int requestedIndex: (chatView.count - 1)
repeat: false
running: false
interval: 200
triggeredOnStart: false
onTriggered: {
Debug.log("Show item completely timer triggered, requested index: " + requestedIndex + ", current index: " + index)
if (requestedIndex === index) {
var p = chatView.contentItem.mapFromItem(reactionsColumn, 0, 0)
if (chatView.contentY > p.y || p.y + reactionsColumn.height > chatView.contentY + chatView.height) {
Debug.log("Moving reactions for item at", requestedIndex, "info the view")
chatView.highlightMoveDuration = -1
chatView.highlightResizeDuration = -1
chatView.scrollToIndex(requestedIndex, height <= chatView.height ? ListView.Contain : ListView.End)
chatView.highlightMoveDuration = 0
chatView.highlightResizeDuration = 0
}
}
}
}
Timer {
id: restoreNormalityTimer
repeat: false
running: false
interval: 1000
triggeredOnStart: false
onTriggered: {
Debug.log("Restore normality for index " + index);
messageListItem.wasNavigatedTo = false;
}
}
Component.onCompleted: {
delegateComponentLoadingTimer.start();
if (myMessage.reply_to_message_id !== 0) {
tdLibWrapper.getMessage(page.chatInformation.id, myMessage.reply_to_message_id);
if (myMessage.reply_to_message_id) {
tdLibWrapper.getMessage(myMessage.reply_in_chat_id ? myMessage.reply_in_chat_id : page.chatInformation.id,
myMessage.reply_to_message_id)
}
}
@ -220,7 +401,10 @@ ListItem {
id: messageTextRow
spacing: Theme.paddingSmall
width: precalculatedValues.entryWidth
anchors.centerIn: parent
anchors.horizontalCenter: Functions.isWidescreen(appWindow) ? undefined : parent.horizontalCenter
anchors.left: Functions.isWidescreen(appWindow) ? parent.left : undefined
y: Theme.paddingSmall
anchors.leftMargin: Functions.isWidescreen(appWindow) ? Theme.paddingMedium : undefined
Loader {
id: profileThumbnailLoader
@ -260,16 +444,16 @@ ListItem {
anchors {
left: parent.left
leftMargin: messageListItem.isOwnMessage ? precalculatedValues.pageMarginDouble : 0
leftMargin: page.isPrivateChat ? (messageListItem.isOwnMessage ? precalculatedValues.pageMarginDouble : 0) : 0 //левый марджин для собственных сообщений в приватных чатах. В остальных на полную ширину
verticalCenter: parent.verticalCenter
}
height: messageTextColumn.height + precalculatedValues.paddingMediumDouble
width: precalculatedValues.backgroundWidth
property bool isUnread: index > chatModel.getLastReadMessageIndex()
color: Theme.colorScheme === Theme.LightOnDark ? (isUnread ? Theme.secondaryHighlightColor : Theme.secondaryColor) : (isUnread ? Theme.backgroundGlowColor : Theme.overlayBackgroundColor)
property bool isUnread: index > chatModel.getLastReadMessageIndex() && myMessage['@type'] !== "sponsoredMessage"
color: Theme.colorScheme === Theme.LightOnDark ? (isOwnMessage ? Theme.highlightBackgroundColor : (isUnread ? Theme.secondaryHighlightColor : Theme.secondaryColor)) : (isOwnMessage ? Theme.highlightBackgroundColor : (isUnread ? Theme.backgroundGlowColor : Theme.overlayBackgroundColor))
radius: parent.width / 50
opacity: isUnread ? 0.5 : 0.2
visible: appSettings.showStickersAsImages || myMessage.content['@type'] !== "messageSticker"
visible: appSettings.showStickersAsImages || (myMessage.content['@type'] !== "messageSticker" && myMessage.content['@type'] !== "messageAnimatedEmoji")
Behavior on color { ColorAnimation { duration: 200 } }
Behavior on opacity { FadeAnimation {} }
}
@ -287,7 +471,7 @@ ListItem {
id: userText
width: parent.width
text: messageListItem.isOwnMessage ? qsTr("You") : Emoji.emojify(messageListItem.isAnonymous ? page.chatInformation.title : Functions.getUserName(messageListItem.userInformation), font.pixelSize)
text: messageListItem.isOwnMessage ? qsTr("You") : Emoji.emojify( myMessage['@type'] === "sponsoredMessage" ? tdLibWrapper.getChat(myMessage.sponsor_chat_id).title : ( messageListItem.isAnonymous ? page.chatInformation.title : Functions.getUserName(messageListItem.userInformation) ), font.pixelSize)
font.pixelSize: Theme.fontSizeExtraSmall
font.weight: Font.ExtraBold
color: messageListItem.textColor
@ -295,7 +479,7 @@ ListItem {
truncationMode: TruncationMode.Fade
textFormat: Text.StyledText
horizontalAlignment: messageListItem.textAlign
visible: precalculatedValues.showUserInfo
visible: messageListItem.isOwnMessage ? false : (precalculatedValues.showUserInfo || myMessage['@type'] === "sponsoredMessage")
MouseArea {
anchors.fill: parent
enabled: !(messageListItem.precalculatedValues.pageIsSelecting || messageListItem.isAnonymous)
@ -311,11 +495,12 @@ ListItem {
Loader {
id: messageInReplyToLoader
active: myMessage.reply_to_message_id !== 0
active: typeof myMessage.reply_to_message_id !== "undefined" && myMessage.reply_to_message_id !== 0
width: parent.width
// text height ~= 1,28*font.pixelSize
height: active ? precalculatedValues.messageInReplyToHeight : 0
property var inReplyToMessage;
property bool inReplyToMessageDeleted: false;
sourceComponent: Component {
Item {
width: messageInReplyToRow.width
@ -323,14 +508,31 @@ ListItem {
InReplyToRow {
id: messageInReplyToRow
myUserId: page.myUserId
visible: true
layer.enabled: messageInReplyToMouseArea.pressed && !messageListItem.highlighted && !messageListItem.menuOpen
layer.effect: PressEffect { source: messageInReplyToRow }
inReplyToMessage: messageInReplyToLoader.inReplyToMessage
inReplyToMessageDeleted: messageInReplyToLoader.inReplyToMessageDeleted
}
MouseArea {
id: messageInReplyToMouseArea
anchors.fill: parent
onClicked: {
messageOverlayLoader.overlayMessage = messageInReplyToRow.inReplyToMessage;
messageOverlayLoader.active = true;
if (precalculatedValues.pageIsSelecting) {
page.toggleMessageSelection(myMessage)
} else {
messageOptionsDrawer.open = false
if(appSettings.goToQuotedMessage) {
chatPage.showMessage(messageInReplyToRow.inReplyToMessage.id, true)
} else {
messageOverlayLoader.active = true
messageOverlayLoader.overlayMessage = messageInReplyToRow.inReplyToMessage
}
}
}
onPressAndHold: {
if (openMenuOnPressAndHold) {
openContextMenu()
}
}
}
}
@ -350,11 +552,12 @@ ListItem {
width: parent.width
Component.onCompleted: {
if (myMessage.forward_info.origin["@type"] === "messageForwardOriginChannel") {
var originType = myMessage.forward_info.origin["@type"]
if (originType === "messageOriginChannel" || originType === "messageForwardOriginChannel") {
var otherChatInformation = tdLibWrapper.getChat(myMessage.forward_info.origin.chat_id);
forwardedThumbnail.photoData = (typeof otherChatInformation.photo !== "undefined") ? otherChatInformation.photo.small : {};
forwardedChannelText.text = Emoji.emojify(otherChatInformation.title, Theme.fontSizeExtraSmall);
} else if (myMessage.forward_info.origin["@type"] === "messageForwardOriginUser") {
} else if (originType === "messageOriginUser" || originType === "messageForwardOriginUser") {
var otherUserInformation = tdLibWrapper.getUserInformation(myMessage.forward_info.origin.sender_user_id);
forwardedThumbnail.photoData = (typeof otherUserInformation.profile_photo !== "undefined") ? otherUserInformation.profile_photo.small : {};
forwardedChannelText.text = Emoji.emojify(Functions.getUserName(otherUserInformation), Theme.fontSizeExtraSmall);
@ -416,11 +619,26 @@ ListItem {
visible: (text !== "")
}
Loader {
id: sponsoredMessageButtonLoader
active: myMessage['@type'] === "sponsoredMessage"
asynchronous: true
width: parent.width
height: (status === Loader.Ready) ? item.implicitHeight : myMessage['@type'] === "sponsoredMessage" ? Theme.itemSizeMedium : 0
sourceComponent: Component {
SponsoredMessage {
sponsoredMessageData: myMessage
width: parent.width
}
}
}
Loader {
id: webPagePreviewLoader
active: false
asynchronous: true
width: parent.width
width: parent.width * getContentWidthMultiplier()
height: (status === Loader.Ready) ? item.implicitHeight : myMessage.content.web_page ? precalculatedValues.webPagePreviewHeight : 0
sourceComponent: Component {
@ -434,7 +652,7 @@ ListItem {
Loader {
id: extraContentLoader
width: parent.width
width: parent.width * getContentWidthMultiplier()
asynchronous: true
height: item ? item.height : (messageListItem.hasContentComponent ? chatView.getContentComponentHeight(model.content_type, myMessage.content, width) : 0)
}
@ -465,7 +683,6 @@ ListItem {
}
}
Text {
width: parent.width
@ -476,7 +693,6 @@ ListItem {
color: messageListItem.isOwnMessage ? Theme.secondaryHighlightColor : Theme.secondaryColor
horizontalAlignment: messageListItem.textAlign
text: getMessageStatusText(myMessage, index, chatView.lastReadSentIndex, messageDateText.useElapsed)
rightPadding: interactionLoader.active ? interactionLoader.width : 0
MouseArea {
anchors.fill: parent
enabled: !messageListItem.precalculatedValues.pageIsSelecting
@ -485,33 +701,25 @@ ListItem {
messageDateText.text = getMessageStatusText(myMessage, index, chatView.lastReadSentIndex, messageDateText.useElapsed);
}
}
}
Loader {
id: interactionLoader
height: parent.height
anchors.right: parent.right
asynchronous: true
active: chatPage.isChannel && messageViewCount
sourceComponent: Component {
Label {
text: Functions.getShortenedCount(messageViewCount)
leftPadding: Theme.iconSizeSmall
font.pixelSize: Theme.fontSizeTiny
color: Theme.secondaryColor
Icon {
anchors.verticalCenter: parent.verticalCenter
width: Theme.iconSizeExtraSmall
height: Theme.iconSizeExtraSmall
opacity: 0.6
source: "../../images/icon-s-eye.svg"
sourceSize {
width: Theme.iconSizeExtraSmall
height: Theme.iconSizeExtraSmall
}
}
}
Loader {
id: interactionLoader
width: parent.width
asynchronous: true
active: ( chatPage.isChannel && messageViewCount > 0 ) || reactions.length > 0
height: ( ( chatPage.isChannel && messageViewCount > 0 ) || reactions.length > 0 ) ? ( Theme.fontSizeExtraSmall + Theme.paddingSmall ) : 0
sourceComponent: Component {
Label {
text: getInteractionText(messageViewCount, reactions, font.pixelSize, Theme.highlightColor)
width: parent.width
font.pixelSize: Theme.fontSizeTiny
color: messageListItem.isOwnMessage ? Theme.secondaryHighlightColor : Theme.secondaryColor
horizontalAlignment: messageListItem.textAlign
textFormat: Text.StyledText
maximumLineCount: 1
elide: Text.ElideRight
}
}
}
@ -521,4 +729,59 @@ ListItem {
}
Column {
id: reactionsColumn
width: parent.width - ( 2 * Theme.horizontalPageMargin )
anchors.top: messageTextRow.bottom
anchors.topMargin: Theme.paddingSmall
anchors.horizontalCenter: parent.horizontalCenter
visible: messageListItem.messageReactions ? ( messageListItem.messageReactions.length > 0 ? true : false ) : false
opacity: messageListItem.messageReactions ? ( messageListItem.messageReactions.length > 0 ? 1 : 0 ) : 0
Behavior on opacity { NumberAnimation {} }
spacing: Theme.paddingMedium
Flickable {
width: parent.width
height: reactionsResultRow.height + Theme.paddingSmall
anchors.horizontalCenter: parent.horizontalCenter
contentWidth: reactionsResultRow.width
clip: true
Row {
id: reactionsResultRow
spacing: Theme.paddingMedium
Repeater {
model: messageListItem.messageReactions
Item {
height: singleReactionRow.height
width: singleReactionRow.width
Row {
id: singleReactionRow
spacing: Theme.paddingSmall
Image {
id: emojiPicture
source: Emoji.getEmojiPath(modelData)
width: status === Image.Ready ? Theme.fontSizeLarge : 0
height: Theme.fontSizeLarge
}
}
MouseArea {
anchors.fill: parent
onClicked: {
tdLibWrapper.setMessageReaction(messageListItem.chatId, messageListItem.messageId, modelData);
messageListItem.messageReactions = null;
}
}
}
}
}
}
}
}

View file

@ -25,9 +25,9 @@ import "../js/debug.js" as Debug
Item {
id: messageListItem
property var myMessage: display
property bool senderIsUser: myMessage.sender["@type"] === "messageSenderUser"
property var userInformation: senderIsUser ? tdLibWrapper.getUserInformation(myMessage.sender.user_id) : null
property bool isOwnMessage: senderIsUser && chatPage.myUserId === myMessage.sender.user_id
property bool senderIsUser: myMessage.sender_id["@type"] === "messageSenderUser"
property var userInformation: senderIsUser ? tdLibWrapper.getUserInformation(myMessage.sender_id.user_id) : null
property bool isOwnMessage: senderIsUser && chatPage.myUserId === myMessage.sender_id.user_id
property var linkedMessage
height: backgroundRectangle.height + Theme.paddingMedium

View file

@ -32,19 +32,21 @@ Flickable {
property var overlayMessage;
property bool showHeader: true
readonly property var userInformation: tdLibWrapper.getUserInformation(overlayMessage.sender.user_id);
readonly property bool isOwnMessage: tdLibWrapper.getUserInformation().id === overlayMessage.sender.user_id;
readonly property bool isAnonymous: overlayMessage.sender["@type"] === "messageSenderChat"
readonly property var userInformation: tdLibWrapper.getUserInformation(overlayMessage.sender_id.user_id);
readonly property bool isOwnMessage: tdLibWrapper.getUserInformation().id === overlayMessage.sender_id.user_id;
readonly property bool isAnonymous: overlayMessage.sender_id["@type"] === "messageSenderChat"
property bool hasContentComponent: overlayMessage.content && chatView.delegateMessagesContent.indexOf(overlayMessage.content['@type']) > -1
signal requestClose;
function getOriginalAuthor(forwardInformation, fontSize) {
switch (forwardInformation.origin["@type"]) {
case "messageOriginChannel":
case "messageForwardOriginChannel":
var otherChatInformation = tdLibWrapper.getChat(forwardInformation.origin.chat_id);
return Emoji.emojify(otherChatInformation.title, fontSize);
case "messageOriginUser":
case "messageForwardOriginUser":
var otherUserInformation = tdLibWrapper.getUserInformation(forwardInformation.origin.sender.user_id);
var otherUserInformation = tdLibWrapper.getUserInformation(forwardInformation.origin.sender_id.user_id);
return Emoji.emojify(Functions.getUserName(otherUserInformation), fontSize);
default:
return Emoji.emojify(forwardInformation.origin.sender_name, fontSize);

View file

@ -31,12 +31,12 @@ Loader {
property var botUserInformation: tdLibWrapper.getUserInformation(message.via_bot_user_id)
color: Theme.secondaryColor
font.pixelSize: Theme.fontSizeExtraSmall
text: qsTr("via %1", "message posted via bot user").arg("<a style=\"text-decoration: none; font-weight: bold; color:"+Theme.primaryColor+"\" href=\"userId://" + message.via_bot_user_id + "\">@" + Emoji.emojify(botUserInformation.username, font.pixelSize)+"</a>")
text: qsTr("via %1", "message posted via bot user").arg("<a style=\"text-decoration: none; font-weight: bold; color:"+Theme.primaryColor+"\" href=\"userId://" + message.via_bot_user_id + "\">@" + Emoji.emojify(botUserInformation.usernames.editable_username, font.pixelSize)+"</a>")
textFormat: Text.RichText
truncationMode: TruncationMode.Fade
onLinkActivated: {
if(link === "userId://" + message.via_bot_user_id && botUserInformation.type.is_inline) {
newMessageTextField.text = "@"+botUserInformation.username+" "
newMessageTextField.text = "@"+botUserInformation.usernames.editable_username+" "
newMessageTextField.cursorPosition = newMessageTextField.text.length
lostFocusTimer.start();
}

View file

@ -1,6 +1,7 @@
import QtQuick 2.6
import Sailfish.Silica 1.0
import WerkWolf.Fernschreiber 1.0
import "../js/functions.js" as Functions
ListItem {
id: chatListViewItem
@ -11,6 +12,8 @@ ListItem {
property alias tertiaryText: tertiaryText //usually last message date
property int unreadCount: 0
property int unreadMentionCount: 0
property int unreadReactionCount: 0
property bool isSecret: false
property bool isVerified: false
property bool isMarkedAsUnread: false
@ -84,8 +87,8 @@ ListItem {
Rectangle {
id: chatUnreadMessagesCountBackground
color: Theme.highlightBackgroundColor
width: Theme.fontSizeLarge
color: isMuted ? ((Theme.colorScheme === Theme.DarkOnLight) ? "lightgray" : "dimgray") : Theme.highlightBackgroundColor
width: chatUnreadMessagesCount.width + Theme.fontSizeLarge / 2
height: Theme.fontSizeLarge
anchors.right: parent.right
anchors.bottom: parent.bottom
@ -100,10 +103,43 @@ ListItem {
color: Theme.primaryColor
anchors.centerIn: chatUnreadMessagesCountBackground
visible: chatListViewItem.unreadCount > 0
text: chatListViewItem.unreadCount > 99 ? "99+" : chatListViewItem.unreadCount
opacity: isMuted ? Theme.opacityHigh : 1.0
text: Functions.formatUnreadCount(chatListViewItem.unreadCount)
}
Rectangle {
color: isMuted ? ((Theme.colorScheme === Theme.DarkOnLight) ? "lightgray" : "dimgray") : Theme.highlightBackgroundColor
width: Theme.fontSizeLarge
height: Theme.fontSizeLarge
anchors.right: parent.right
anchors.top: parent.top
radius: parent.width / 2
visible: chatListViewItem.unreadReactionCount > 0 || chatListViewItem.unreadMentionCount > 0
Icon {
source: "image://theme/icon-s-favorite"
height: Theme.iconSizeExtraSmall
width: Theme.iconSizeExtraSmall
highlighted: chatListViewItem.highlighted
anchors.centerIn: parent
visible: chatListViewItem.unreadReactionCount > 0 && !chatListViewItem.unreadMentionCount
}
Text {
font {
pixelSize: Theme.iconSizeExtraSmall
bold: true
}
color: Theme.primaryColor
anchors.centerIn: parent
visible: chatListViewItem.unreadMentionCount > 0
opacity: isMuted ? Theme.opacityHigh : 1.0
text: "@"
}
}
}
}
Column {
id: contentColumn
anchors {
@ -126,6 +162,9 @@ ListItem {
truncationMode: TruncationMode.Fade
anchors.verticalCenter: parent.verticalCenter
width: Math.min(contentColumn.width - (verifiedImage.visible ? (verifiedImage.width + primaryTextRow.spacing) : 0) - (mutedImage.visible ? (mutedImage.width + primaryTextRow.spacing) : 0), implicitWidth)
font.bold: appSettings.highlightUnreadConversations && ( !chatListViewItem.isMuted && (chatListViewItem.unreadCount > 0 || chatListViewItem.isMarkedAsUnread) )
font.italic: appSettings.highlightUnreadConversations && (chatListViewItem.unreadReactionCount > 0)
color: (appSettings.highlightUnreadConversations && (chatListViewItem.unreadCount > 0)) ? Theme.highlightColor : Theme.primaryColor
}
Image {

View file

@ -33,7 +33,7 @@ Item {
onPinnedMessageChanged: {
if (pinnedMessage) {
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_id.user_id !== chatPage.myUserId) ? Emoji.emojify(Functions.getUserName(tdLibWrapper.getUserInformation(pinnedMessage.sender_id.user_id)), pinnedMessageUserText.font.pixelSize) : qsTr("You");
pinnedMessageUserText.text = (messageUserText === "" ? qsTr("Pinned Message") : messageUserText );
pinnedMessageText.text = Emoji.emojify(Functions.getMessageText(pinnedMessage, true, chatPage.myUserId, false), pinnedMessageText.font.pixelSize);
pinnedMessageItem.visible = true;

View file

@ -60,12 +60,12 @@ Column {
},
inlineKeyboardButtonTypeSwitchInline: function() {
if(modelData.type.in_current_chat) {
chatPage.setMessageText("@" + userInformation.username + " "+(modelData.type.query || ""))
chatPage.setMessageText("@" + userInformation.usernames.editable_username + " "+(modelData.type.query || ""))
} else {
pageStack.push(Qt.resolvedUrl("../pages/ChatSelectionPage.qml"), {
myUserId: chatPage.myUserId,
payload: { neededPermissions: ["can_send_other_messages"], text:"@" + userInformation.username + " "+(modelData.type.query || "")},
payload: { neededPermissions: ["can_send_other_messages"], text:"@" + userInformation.usernames.editable_username + " "+(modelData.type.query || "")},
state: "fillTextArea"
})
}

View file

@ -25,22 +25,52 @@ Item {
id: stickerPickerOverlayItem
anchors.fill: parent
property var recentStickers: stickerManager.getRecentStickers()
property var installedStickerSets: stickerManager.getInstalledStickerSets()
property bool pickerLoaded: false
property var recentStickers: stickerManager.getRecentStickers();
property var installedStickerSets: stickerManager.getInstalledStickerSets();
signal stickerPicked(var stickerId)
Timer {
id: stickerPickerLoadedTimer
interval: 100
running: true
repeat: false
onTriggered: {
stickerPickerOverlayItem.pickerLoaded = true;
Connections {
target: tdLibWrapper
onOkReceived: {
if (request === "removeStickerSet") {
appNotification.show(qsTr("Sticker set successfully removed!"));
tdLibWrapper.getInstalledStickerSets();
}
}
}
Connections {
target: stickerManager
onStickerSetsReceived: {
installedStickerSets = stickerManager.getInstalledStickerSets();
}
}
Component {
id: stickerComponent
BackgroundItem {
id: stickerSetItem
width: Theme.itemSizeExtraLarge
height: Theme.itemSizeExtraLarge
onClicked: stickerPickerOverlayItem.stickerPicked(modelData.sticker.remote.id)
TDLibThumbnail {
thumbnail: modelData.thumbnail
anchors.fill: parent
highlighted: stickerSetItem.highlighted
}
Label {
font.pixelSize: Theme.fontSizeSmall
anchors.right: parent.right
anchors.bottom: parent.bottom
text: Emoji.emojify(modelData.emoji, font.pixelSize)
}
}
}
signal stickerPicked(var stickerId)
Rectangle {
id: stickerPickerOverlayBackground
anchors.fill: parent
@ -49,35 +79,32 @@ Item {
opacity: 0.7
}
Flickable {
id: stickerPickerFlickable
SilicaListView {
id: stickerPickerListView
anchors.fill: parent
anchors.margins: Theme.paddingMedium
opacity: stickerPickerOverlayItem.pickerLoaded ? 1 : 0
Behavior on opacity { NumberAnimation {} }
visible: stickerPickerOverlayItem.pickerLoaded
contentHeight: stickerPickerColumn.height
clip: true
Column {
id: stickerPickerColumn
spacing: Theme.paddingMedium
width: stickerPickerFlickable.width
model: stickerPickerOverlayItem.installedStickerSets
header: Column {
spacing: Theme.paddingSmall
width: stickerPickerListView.width
height: recentStickersGridView.count > 0 ? ( Theme.fontSizeLarge + Theme.itemSizeExtraLarge + 4 * Theme.paddingSmall ) : 0
topPadding: Theme.paddingSmall
Label {
font.pixelSize: Theme.fontSizeMedium
font.pixelSize: Theme.fontSizeLarge
font.bold: true
width: parent.width
width: recentStickersGridView.width
leftPadding: Theme.paddingMedium
visible: recentStickersGridView.count > 0
maximumLineCount: 1
truncationMode: TruncationMode.Fade
text: qsTr("Recently used")
}
SilicaGridView {
id: recentStickersGridView
width: parent.width
height: Theme.itemSizeExtraLarge
width: stickerPickerListView.width
height: Theme.itemSizeExtraLarge + Theme.paddingSmall
cellWidth: Theme.itemSizeExtraLarge;
cellHeight: Theme.itemSizeExtraLarge;
visible: count > 0
@ -85,119 +112,132 @@ Item {
flow: GridView.FlowTopToBottom
model: stickerPickerOverlayItem.recentStickers
delegate: Item {
width: recentStickersGridView.cellWidth
height: recentStickersGridView.cellHeight
Image {
source: modelData.thumbnail.file.local.path
anchors.fill: parent
asynchronous: true
onStatusChanged: {
if (status === Image.Ready) {
stickerPickerLoadedTimer.restart();
}
}
}
MouseArea {
anchors.fill: parent
onClicked: stickerPickerOverlayItem.stickerPicked(modelData.sticker.remote.id)
}
}
delegate: stickerComponent
HorizontalScrollDecorator {}
}
}
delegate: Column {
id: stickerSetColumn
property bool isExpanded: false
function toggleDisplaySet() {
stickerSetColumn.isExpanded = !stickerSetColumn.isExpanded;
if (stickerSetColumn.isExpanded) {
stickerSetLoader.myStickerSet = modelData.stickers;
}
}
spacing: Theme.paddingSmall
width: parent.width
Row {
id: stickerSetTitleRow
width: parent.width
height: Theme.itemSizeMedium + ( 2 * Theme.paddingSmall )
spacing: Theme.paddingMedium
BackgroundItem {
id: stickerSetToggle
width: parent.width - removeSetButton.width - Theme.paddingMedium * 2
height: parent.height
onClicked: {
toggleDisplaySet();
}
TDLibThumbnail {
id: stickerSetThumbnail
thumbnail: modelData.thumbnail ? modelData.thumbnail : modelData.stickers[0].thumbnail
anchors {
left: parent.left
verticalCenter: parent.verticalCenter
leftMargin: Theme.paddingMedium
}
width: Theme.itemSizeMedium
height: Theme.itemSizeMedium
highlighted: stickerSetToggle.down
}
Repeater {
model: stickerPickerOverlayItem.installedStickerSets
width: stickerPickerFlickable.width
Column {
spacing: Theme.paddingMedium
width: parent.width
Label {
font.pixelSize: Theme.fontSizeMedium
id: setTitleText
font.pixelSize: Theme.fontSizeLarge
font.bold: true
width: parent.width
maximumLineCount: 1
anchors {
left: stickerSetThumbnail.right
right: expandSetButton.left
verticalCenter: parent.verticalCenter
margins: Theme.paddingSmall
}
truncationMode: TruncationMode.Fade
text: modelData.title
}
SilicaGridView {
id: installedStickerSetGridView
width: parent.width
height: Theme.itemSizeExtraLarge
cellWidth: Theme.itemSizeExtraLarge;
cellHeight: Theme.itemSizeExtraLarge;
visible: count > 0
clip: true
flow: GridView.FlowTopToBottom
model: modelData.stickers
delegate: Item {
width: installedStickerSetGridView.cellWidth
height: installedStickerSetGridView.cellHeight
Image {
id: singleStickerImage
source: modelData.thumbnail.file.local.is_downloading_completed ? modelData.thumbnail.file.local.path : ""
anchors.fill: parent
visible: modelData.thumbnail.file.local.is_downloading_completed
asynchronous: true
onStatusChanged: {
if (status === Image.Ready) {
stickerPickerLoadedTimer.restart();
}
}
}
Label {
font.pixelSize: Theme.fontSizeHuge
anchors.fill: parent
maximumLineCount: 1
truncationMode: TruncationMode.Fade
text: Emoji.emojify(modelData.emoji, font.pixelSize)
visible: !modelData.thumbnail.file.local.is_downloading_completed
}
MouseArea {
anchors.fill: parent
onClicked: stickerPickerOverlayItem.stickerPicked(modelData.sticker.remote.id)
}
Icon {
id: expandSetButton
source: stickerSetColumn.isExpanded ? "image://theme/icon-m-up" : "image://theme/icon-m-down"
anchors {
right: parent.right
verticalCenter: parent.verticalCenter
rightMargin: Theme.paddingMedium
}
}
}
IconButton {
id: removeSetButton
icon.source: "image://theme/icon-m-remove"
anchors.verticalCenter: parent.verticalCenter
onClicked: {
var stickerSetId = modelData.id;
Remorse.popupAction(chatPage, qsTr("Removing sticker set"), function() {
tdLibWrapper.changeStickerSet(stickerSetId, false);
});
}
}
}
Loader {
id: stickerSetLoader
width: parent.width
active: stickerSetColumn.isExpanded || height > 0
height: stickerSetColumn.isExpanded ? Theme.itemSizeExtraLarge + Theme.paddingSmall : 0
opacity: stickerSetColumn.isExpanded ? 1.0 : 0.0
Behavior on height {
NumberAnimation { duration: 200 }
}
Behavior on opacity {
NumberAnimation { duration: 200 }
}
property var myStickerSet
onActiveChanged: {
if(!active) {
myStickerSet = ({});
}
}
sourceComponent: Component {
SilicaListView {
id: installedStickerSetGridView
width: stickerSetLoader.width
height: stickerSetLoader.height
orientation: Qt.Horizontal
visible: count > 0
model: stickerSetLoader.myStickerSet
delegate: stickerComponent
HorizontalScrollDecorator {}
}
}
}
}
}
Column {
anchors.centerIn: parent
width: parent.width
spacing: Theme.paddingMedium
opacity: stickerPickerOverlayItem.pickerLoaded ? 0 : 1
Behavior on opacity { NumberAnimation {} }
visible: !stickerPickerOverlayItem.pickerLoaded
InfoLabel {
id: loadingLabel
text: qsTr("Loading stickers...")
}
BusyIndicator {
id: loadingBusyIndicator
anchors.horizontalCenter: parent.horizontalCenter
running: !stickerPickerOverlayItem.pickerLoaded
size: BusyIndicatorSize.Large
}
}
}

View file

@ -0,0 +1,173 @@
/*
Copyright (C) 2020-21 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/>.
*/
import QtQuick 2.6
import Sailfish.Silica 1.0
import "./messageContent"
import "../js/functions.js" as Functions
import "../js/twemoji.js" as Emoji
import "../js/debug.js" as Debug
Flickable {
id: stickerSetOverlayFlickable
anchors.fill: parent
boundsBehavior: Flickable.StopAtBounds
contentHeight: stickerSetContentColumn.height
clip: true
property string stickerSetId;
property var stickerSet;
signal requestClose;
Component.onCompleted: {
if (!stickerManager.hasStickerSet(stickerSetId)) {
tdLibWrapper.getStickerSet(stickerSetId);
} else {
stickerSet = stickerManager.getStickerSet(stickerSetId);
}
}
Connections {
target: tdLibWrapper
onStickerSetReceived: {
if (stickerSet.id === stickerSetOverlayFlickable.stickerSetId) {
stickerSetOverlayFlickable.stickerSet = stickerSet;
}
}
onOkReceived: {
if (request === "installStickerSet") {
appNotification.show(qsTr("Sticker set successfully installed!"));
installSetButton.visible = false;
tdLibWrapper.getInstalledStickerSets();
}
if (request === "removeStickerSet") {
appNotification.show(qsTr("Sticker set successfully removed!"));
installSetButton.visible = true;
tdLibWrapper.getInstalledStickerSets();
}
}
}
Rectangle {
id: stickerSetContentBackground
color: Theme.overlayBackgroundColor
opacity: 0.7
anchors.fill: parent
MouseArea {
anchors.fill: parent
onClicked: {
stickerSetOverlayFlickable.requestClose();
}
}
}
Column {
id: stickerSetContentColumn
spacing: Theme.paddingMedium
width: parent.width
height: parent.height
Row {
id: stickerSetTitleRow
width: parent.width - ( 2 * Theme.horizontalPageMargin )
height: overlayStickerTitleText.height + ( 2 * Theme.paddingMedium )
anchors.horizontalCenter: parent.horizontalCenter
Label {
id: overlayStickerTitleText
width: parent.width - installSetButton.width - closeSetButton.width
text: stickerSet.title
font.pixelSize: Theme.fontSizeExtraLarge
font.weight: Font.ExtraBold
maximumLineCount: 1
truncationMode: TruncationMode.Fade
textFormat: Text.StyledText
anchors.verticalCenter: parent.verticalCenter
}
IconButton {
id: installSetButton
icon.source: "image://theme/icon-m-add"
anchors.verticalCenter: parent.verticalCenter
visible: !stickerManager.isStickerSetInstalled(stickerSet.id)
onClicked: {
tdLibWrapper.changeStickerSet(stickerSet.id, true);
}
}
IconButton {
id: removeSetButton
icon.source: "image://theme/icon-m-remove"
anchors.verticalCenter: parent.verticalCenter
visible: !installSetButton.visible
onClicked: {
tdLibWrapper.changeStickerSet(stickerSet.id, false);
}
}
IconButton {
id: closeSetButton
icon.source: "image://theme/icon-m-clear"
anchors.verticalCenter: parent.verticalCenter
onClicked: {
stickerSetOverlayFlickable.requestClose();
}
}
}
SilicaGridView {
id: stickerSetGridView
width: parent.width - ( 2 * Theme.horizontalPageMargin )
height: parent.height - stickerSetTitleRow.height - Theme.paddingMedium
anchors.horizontalCenter: parent.horizontalCenter
cellWidth: chatPage.isLandscape ? (width / 5) : (width / 3);
cellHeight: cellWidth
visible: count > 0
clip: true
model: stickerSet.stickers
delegate: Item {
width: stickerSetGridView.cellWidth - Theme.paddingSmall
height: stickerSetGridView.cellHeight - Theme.paddingSmall
TDLibThumbnail {
id: singleStickerThumbnail
thumbnail: modelData.thumbnail
anchors.fill: parent
}
Label {
font.pixelSize: Theme.fontSizeSmall
anchors.right: parent.right
anchors.bottom: parent.bottom
text: Emoji.emojify(modelData.emoji, font.pixelSize)
}
}
VerticalScrollDecorator {}
}
}
}

View file

@ -209,7 +209,6 @@ Item {
attachmentOptionsFlickable.isNeeded = false;
attachmentPreviewRow.isVoiceNote = true;
attachmentPreviewRow.attachmentDescription = qsTr("Voice Note (%1)").arg(recordingDurationLabel.text);
attachmentPreviewRow.visible = true;
controlSendButton();
voiceNoteOverlayLoader.active = false;
}

View file

@ -98,7 +98,7 @@ SilicaFlickable {
if(groupFullInfo.members && groupFullInfo.members.length > 0) {
for(var memberIndex in groupFullInfo.members) {
var memberData = groupFullInfo.members[memberIndex];
var userInfo = tdLibWrapper.getUserInformation(memberData.user_id) || {user:{}, bot_info:{}};
var userInfo = tdLibWrapper.getUserInformation(memberData.member_id.user_id) || {user:{}, bot_info:{}};
memberData.user = userInfo;
memberData.bot_info = memberData.bot_info || {};
membersList.append(memberData);
@ -187,6 +187,14 @@ SilicaFlickable {
chatInformationPage.chatInformation = newInformation
}
}
onChatNotificationSettingsUpdated: {
if (chatInformationPage.chatInformation.id.toString() === chatId) {
// set whole object to trigger change
var newInformation = chatInformation;
newInformation.notification_settings = chatNotificationSettings;
chatInformationPage.chatInformation = newInformation;
}
}
}
Component.onCompleted: {
@ -292,7 +300,8 @@ SilicaFlickable {
}
leftMargin: imageContainer.getEased((imageContainer.minDimension + Theme.paddingMedium), 0, imageContainer.tweenFactor) + Theme.horizontalPageMargin
title: chatInformationPage.chatInformation.title !== "" ? Emoji.emojify(chatInformationPage.chatInformation.title, Theme.fontSizeLarge) : qsTr("Unknown")
description: (chatInformationPage.isPrivateChat || chatInformationPage.isSecretChat) ? ("@"+(chatInformationPage.privateChatUserInformation.username || chatInformationPage.chatPartnerGroupId)) : ""
description: ((chatInformationPage.isPrivateChat || chatInformationPage.isSecretChat) && chatInformationPage.privateChatUserInformation.usernames.editable_username)
? ("@"+chatInformationPage.privateChatUserInformation.usernames.editable_username) : ""
}
SilicaFlickable {
@ -355,6 +364,27 @@ SilicaFlickable {
height: imageContainer.hasImage ? imageContainer.maxDimension : 0
}
Label {
id: copyIdText
x: Math.max(headerItem.x + imageContainer.x - groupInfoItem.x + (imageContainer.width - width)/2, 0)
text: chatInformationPage.chatPartnerGroupId
font.pixelSize: Theme.fontSizeSmall
color: copyIdMouseArea.pressed ? Theme.secondaryHighlightColor : Theme.highlightColor
visible: text !== ""
MouseArea {
id: copyIdMouseArea
anchors {
fill: parent
margins: -Theme.paddingLarge
}
onClicked: {
Clipboard.text = copyIdText.text
appNotification.show(qsTr("ID has been copied to the clipboard."));
}
}
}
InformationEditArea {
visible: canEdit
canEdit: !(chatInformationPage.isPrivateChat || chatInformationPage.isSecretChat) && chatInformationPage.groupInformation.status && (chatInformationPage.groupInformation.status.can_change_info || chatInformationPage.groupInformation.status["@type"] === "chatMemberStatusCreator")

View file

@ -79,7 +79,7 @@ ChatInformationTabItemBase {
// chat title
primaryText.text: Emoji.emojify(Functions.getUserName(user), primaryText.font.pixelSize)
// last user
prologSecondaryText.text: "@"+(user.username !== "" ? user.username : user_id) + (user_id === chatInformationPage.myUserId ? " " + qsTr("You") : "")
prologSecondaryText.text: "@"+(user.username ? user.username : member_id.user_id) + (member_id.user_id === chatInformationPage.myUserId ? " " + qsTr("You") : "")
secondaryText {
horizontalAlignment: Text.AlignRight
property string statusText: Functions.getChatMemberStatusText(model.status["@type"])
@ -92,7 +92,7 @@ ChatInformationTabItemBase {
}
onClicked: {
tdLibWrapper.createPrivateChat(user_id, "openDirectly");
tdLibWrapper.createPrivateChat(member_id.user_id, "openDirectly");
}
}
footer: Component {
@ -179,7 +179,10 @@ ChatInformationTabItemBase {
if(members && members.length > 0 && chatInformationPage.groupInformation.member_count > membersView.count) {
for(var memberIndex in members) {
var memberData = members[memberIndex];
var userInfo = tdLibWrapper.getUserInformation(memberData.user_id) || {user:{}, bot_info:{}};
var userInfo = tdLibWrapper.getUserInformation(memberData.member_id.user_id) || {user:{}, bot_info:{}};
if (!userInfo.username && userInfo.usernames && userInfo.usernames.active_usernames) {
userInfo.username = userInfo.usernames.active_usernames[0]
}
memberData.user = userInfo;
memberData.bot_info = memberData.bot_info || {};
pageContent.membersList.append(memberData);

View file

@ -0,0 +1,27 @@
/*
Copyright (C) 2020-21 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/>.
*/
import QtQuick 2.6
import Sailfish.Silica 1.0
import WerkWolf.Fernschreiber 1.0
import "../"
import "../../js/twemoji.js" as Emoji
MessageSticker {
stickerData: messageListItem ? messageListItem.myMessage.content.animated_emoji.sticker : overlayFlickable.overlayMessage.content.animated_emoji.sticker;
}

View file

@ -35,7 +35,7 @@ MessageContentFileInfoBase {
onClicked: {
if(file.isDownloadingCompleted) {
// in this case, the MouseArea should take over
tdLibWrapper.openFileOnDevice(file.path);
tdLibWrapper.copyFileToDownloads(file.path, true);
} else if(!file.isDownloadingActive) {
file.load();
} else {
@ -76,7 +76,7 @@ MessageContentFileInfoBase {
rightMargin: copyButton.width
}
onClicked: {
tdLibWrapper.openFileOnDevice(file.path);
tdLibWrapper.copyFileToDownloads(file.path, true);
}
}
}

View file

@ -29,9 +29,7 @@ MessageContentBase {
property string fileExtra;
onClicked: {
if(!processLauncher.launchProgram('harbour-pure-maps', ["geo:"+locationData.latitude+","+locationData.longitude])) {
imageNotification.show(qsTr("Install Pure Maps to inspect this location."));
}
Qt.openUrlExternally("geo:" + locationData.latitude + "," + locationData.longitude);
}
onLocationDataChanged: updatePicture()
onWidthChanged: updatePicture()

View file

@ -1,5 +1,5 @@
/*
Copyright (C) 2020 Sebastian J. Wolf and other contributors
Copyright (C) 2020-21 Sebastian J. Wolf and other contributors
This file is part of Fernschreiber.
@ -20,14 +20,18 @@ import QtQuick 2.6
import Sailfish.Silica 1.0
import WerkWolf.Fernschreiber 1.0
import "../"
import "../../js/twemoji.js" as Emoji
MessageContentBase {
readonly property var stickerData: messageListItem ? messageListItem.myMessage.content.sticker : overlayFlickable.overlayMessage.content.sticker;
readonly property bool animated: stickerData.is_animated && appSettings.animateStickers
id: thisItem
property var stickerData: messageListItem ? messageListItem.myMessage.content.sticker : overlayFlickable.overlayMessage.content.sticker;
readonly property bool asEmoji: appSettings.showStickersAsEmojis
readonly property bool animated: stickerData.format["@type"] === "stickerFormatTgs" && appSettings.animateStickers
readonly property bool stickerVisible: staticStickerLoader.item ? staticStickerLoader.item.visible :
animatedStickerLoader.item ? animatedStickerLoader.item.visible : false
readonly property bool isOwnSticker : messageListItem ? messageListItem.isOwnMessage : overlayFlickable.isOwnMessage
property real aspectRatio: stickerData.width / stickerData.height
readonly property real aspectRatio: stickerData.width / stickerData.height
implicitWidth: stickerData.width
implicitHeight: stickerData.height
@ -40,6 +44,7 @@ MessageContentBase {
}
Item {
width: Math.min( stickerData.width, parent.width )
height: width * aspectRatio
// (centered in image mode, text-like in sticker mode)
@ -50,7 +55,7 @@ MessageContentBase {
Loader {
id: animatedStickerLoader
anchors.fill: parent
active: animated
active: animated && !asEmoji
sourceComponent: Component {
AnimatedImage {
id: animatedSticker
@ -59,7 +64,7 @@ MessageContentBase {
asynchronous: true
paused: !Qt.application.active
cache: false
layer.enabled: highlighted
layer.enabled: thisItem.highlighted
layer.effect: PressEffect { source: animatedSticker }
}
}
@ -68,19 +73,23 @@ MessageContentBase {
Loader {
id: staticStickerLoader
anchors.fill: parent
active: !animated
active: !animated || asEmoji
sourceComponent: Component {
Image {
id: staticSticker
anchors.fill: parent
source: file.path
source: asEmoji ? Emoji.getEmojiPath(stickerData.emoji) : file.path
sourceSize {
width: width
height: height
}
fillMode: Image.PreserveAspectFit
autoTransform: true
asynchronous: true
visible: opacity > 0
opacity: status === Image.Ready ? 1 : 0
Behavior on opacity { FadeAnimation {} }
layer.enabled: highlighted
layer.enabled: thisItem.highlighted
layer.effect: PressEffect { source: staticSticker }
}
}
@ -98,6 +107,11 @@ MessageContentBase {
}
}
onClicked: {
stickerSetOverlayLoader.stickerSetId = stickerData.set_id
stickerSetOverlayLoader.active = true
}
Timer {
id: placeHolderDelayTimer
interval: 1000

View file

@ -95,7 +95,7 @@ MessageContentBase {
tdLibWrapper.downloadFile(previewFileId);
}
} else {
placeholderImage.source = "image://theme/icon-l-video?white";
placeholderImage.source = "image://theme/icon-m-video?white";
placeholderImage.width = Theme.itemSizeLarge
placeholderImage.height = Theme.itemSizeLarge
}
@ -218,7 +218,7 @@ MessageContentBase {
highlighted: videoMessageComponent.highlighted || down
visible: ( placeholderImage.status === Image.Ready && !videoMessageComponent.fullscreen ) ? true : false
onClicked: {
pageStack.push(Qt.resolvedUrl("../../pages/VideoPage.qml"), {"videoData": videoData});
pageStack.push(Qt.resolvedUrl("../../pages/VideoPage.qml"), {"videoData": videoData, "sourceMessage": rawMessage});
}
}
}
@ -464,7 +464,7 @@ MessageContentBase {
}
visible: ( videoComponentLoader.active && messageVideo.playbackState === MediaPlayer.PausedState ) ? true : false
onClicked: {
pageStack.push(Qt.resolvedUrl("../../pages/VideoPage.qml"), {"videoData": videoData});
pageStack.push(Qt.resolvedUrl("../../pages/VideoPage.qml"), {"videoData": videoData, "sourceMessage": rawMessage});
}
}
}

View file

@ -0,0 +1,77 @@
/*
Copyright (C) 2021 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/>.
*/
import QtQuick 2.6
import QtGraphicalEffects 1.0
import Sailfish.Silica 1.0
import WerkWolf.Fernschreiber 1.0
import "../"
import "../../js/functions.js" as Functions
Column {
id: sponsoredMessageColumn
property var sponsoredMessageData;
Connections {
target: tdLibWrapper
onMessageLinkInfoReceived: {
if (sponsoredMessageData.link.url === url) {
messageOverlayLoader.overlayMessage = messageLinkInfo.message;
messageOverlayLoader.active = true;
}
}
}
Component.onCompleted: {
if (sponsoredMessageData) {
if (typeof sponsoredMessageData.link === "undefined") {
sponsoredMessageButton.text = qsTr("Go to Channel");
sponsoredMessageButton.advertisesChannel = true;
} else if (sponsoredMessageData.link['@type'] === "internalLinkTypeMessage") {
sponsoredMessageButton.text = qsTr("Go to Message");
sponsoredMessageButton.advertisesMessage = true;
} else {
sponsoredMessageButton.text = qsTr("Start Bot");
sponsoredMessageButton.advertisesBot = true;
}
}
}
Button {
id: sponsoredMessageButton
property bool advertisesChannel: false;
property bool advertisesMessage: false;
property bool advertisesBot: false;
anchors {
horizontalCenter: parent.horizontalCenter
}
onClicked: {
if (advertisesChannel) {
tdLibWrapper.createSupergroupChat(tdLibWrapper.getChat(sponsoredMessageData.sponsor_chat_id).type.supergroup_id, "openDirectly");
}
if (advertisesMessage) {
tdLibWrapper.getMessageLinkInfo(sponsoredMessageData.link.url);
}
if (advertisesBot) {
tdLibWrapper.createPrivateChat(tdLibWrapper.getUserInformationByName(sponsoredMessageData.link.bot_username).id, "openAndSendStartToBot:" + sponsoredMessageData.link.start_parameter);
}
}
}
}

View file

@ -0,0 +1,42 @@
/*
Copyright (C) 2021 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/>.
*/
import QtQuick 2.6
import Sailfish.Silica 1.0
Column {
width: parent.width
property SilicaFlickable flickable
property bool animate: false
signal setActiveArea(string activeAreaTitle)
function scrollUpFlickable(amount) {
if(flickable) {
flickableAnimation.to = Math.max(0, flickable.contentY - amount);
flickableAnimation.start()
}
}
NumberAnimation {
id: flickableAnimation
target: flickable
property: "contentY"
duration: 200
}
}

View file

@ -0,0 +1,106 @@
/*
Copyright (C) 2021 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/>.
*/
import QtQuick 2.6
import Sailfish.Silica 1.0
Item {
id: area
width: parent.width
height: button.height + content.height
property alias icon: image
property alias text: label.text
property alias asynchronous: content.asynchronous
property bool expanded: false
default property alias els: content.sourceComponent
states: [
State {
when: area.expanded
PropertyChanges { target: image; rotation: 90 }
PropertyChanges { target: content; height: content.implicitHeight + Theme.paddingLarge; opacity: 1.0 }
}
]
transitions: Transition {
to: "*"
enabled: area.parent.animate
NumberAnimation { target: content; properties: "height, opacity"; duration: 200}
NumberAnimation { target: image; properties: "rotation"; duration: 200}
}
Connections {
target: area.parent
onSetActiveArea: {
var expand = (activeAreaTitle === area.text);
if(area.expanded && !expand && area.parent.scrollUpFlickable) {
area.parent.scrollUpFlickable(content.implicitHeight + Theme.paddingLarge);
}
area.expanded = expand;
}
}
BackgroundItem {
id: button
height: Theme.itemSizeMedium
onClicked: {
area.parent.animate = true;
area.parent.setActiveArea(area.expanded ? -1 : area.text)
}
Rectangle {
anchors.fill: parent
gradient: Gradient {
GradientStop { position: 0.0; color: Theme.rgba(Theme.highlightBackgroundColor, 0.15) }
GradientStop { position: 1.0; color: "transparent" }
}
}
Label {
id: label
anchors {
left: parent.left
right: image.left
verticalCenter: parent.verticalCenter
leftMargin: Theme.horizontalPageMargin + Theme.paddingLarge
rightMargin: Theme.paddingMedium
}
horizontalAlignment: Text.AlignRight
truncationMode: TruncationMode.Fade
color: button.highlighted ? Theme.highlightColor : Theme.primaryColor
textFormat: Text.PlainText
}
HighlightImage {
id: image
anchors {
right: parent.right
verticalCenter: parent.verticalCenter
rightMargin: Theme.horizontalPageMargin
}
width: visible ? Theme.iconSizeMedium : 0
highlighted: parent.highlighted
source: "image://theme/icon-m-left"
rotation: -90
}
}
Loader {
id: content
width: parent.width
height: 0
opacity: 0
anchors.top: button.bottom
asynchronous: true
clip: true
}
}

View file

@ -0,0 +1,28 @@
/*
Copyright (C) 2021 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/>.
*/
import QtQuick 2.6
import Sailfish.Silica 1.0
import "../../js/functions.js" as Functions
Grid {
width: parent.width - ( 2 * x )
columns: Functions.isWidescreen(appWindow) ? 2 : 1
readonly property real columnWidth: width/columns
}

View file

@ -0,0 +1,89 @@
/*
Copyright (C) 2021 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/>.
*/
import QtQuick 2.6
import Sailfish.Silica 1.0
AccordionItem {
text: qsTr("Appearance")
clip: heightBehavior.enabled || heightAnimation.running
// One-shot behavior
Behavior on height {
id: heightBehavior
enabled: false
SequentialAnimation {
id: heightAnimation
SmoothedAnimation { duration: 200 }
ScriptAction { script: heightBehavior.enabled = false }
}
}
Component {
ResponsiveGrid {
bottomPadding: Theme.paddingMedium
TextSwitch {
width: parent.columnWidth
checked: appSettings.showStickersAsEmojis
text: qsTr("Show stickers as emojis")
description: qsTr("Only display emojis instead of the actual stickers")
automaticCheck: false
onClicked: {
heightBehavior.enabled = true
appSettings.showStickersAsEmojis = !checked
}
}
TextSwitch {
width: parent.columnWidth
checked: appSettings.showStickersAsImages
text: qsTr("Show stickers as images")
description: qsTr("Show background for stickers and align them centrally like images")
automaticCheck: false
onClicked: {
appSettings.showStickersAsImages = !checked
}
visible: !appSettings.showStickersAsEmojis
opacity: visible ? 1 : 0
Behavior on opacity { FadeAnimation { } }
}
Item {
// Placeholder to move the next switch to the second column
visible: parent.columns === 2
width: 1
height: 1
}
TextSwitch {
width: parent.columnWidth
checked: appSettings.animateStickers
text: qsTr("Animate stickers")
automaticCheck: false
onClicked: {
appSettings.animateStickers = !checked
}
visible: !appSettings.showStickersAsEmojis
opacity: visible ? 1 : 0
Behavior on opacity { FadeAnimation { } }
}
}
}
}

View file

@ -0,0 +1,221 @@
/*
Copyright (C) 2021 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/>.
*/
import QtQuick 2.6
import Sailfish.Silica 1.0
import WerkWolf.Fernschreiber 1.0
AccordionItem {
text: qsTr("Behavior")
Component {
ResponsiveGrid {
bottomPadding: Theme.paddingMedium
TextSwitch {
width: parent.columnWidth
checked: appSettings.sendByEnter
text: qsTr("Send message by enter")
description: qsTr("Send your message by pressing the enter key")
automaticCheck: false
onClicked: {
appSettings.sendByEnter = !checked
}
}
TextSwitch {
width: parent.columnWidth
checked: appSettings.focusTextAreaOnChatOpen
text: qsTr("Focus text input on chat open")
description: qsTr("Focus the text input area when entering a chat")
automaticCheck: false
onClicked: {
appSettings.focusTextAreaOnChatOpen = !checked
}
}
TextSwitch {
width: parent.columnWidth
checked: appSettings.focusTextAreaAfterSend
text: qsTr("Focus text input area after send")
description: qsTr("Focus the text input area after sending a message")
automaticCheck: false
onClicked: {
appSettings.focusTextAreaAfterSend = !checked
}
}
TextSwitch {
width: parent.columnWidth
checked: appSettings.delayMessageRead
text: qsTr("Delay before marking messages as read")
description: qsTr("Fernschreiber will wait a bit before messages are marked as read")
automaticCheck: false
onClicked: {
appSettings.delayMessageRead = !checked
}
}
TextSwitch {
width: parent.columnWidth
checked: appSettings.highlightUnreadConversations
text: qsTr("Highlight unread messages")
description: qsTr("Highlight Conversations with unread messages")
automaticCheck: false
onClicked: {
appSettings.highlightUnreadConversations = !checked
}
}
TextSwitch {
width: parent.columnWidth
checked: appSettings.useOpenWith
text: qsTr("Open-with menu integration")
description: qsTr("Integrate Fernschreiber into open-with menu of Sailfish OS")
automaticCheck: false
onClicked: {
appSettings.useOpenWith = !checked
}
}
TextSwitch {
width: parent.columnWidth
checked: appSettings.notificationAlwaysShowPreview
text: qsTr("Always append message preview to notifications")
description: qsTr("In addition to showing the number of unread messages, the latest message will also be appended to notifications.")
automaticCheck: false
onClicked: {
appSettings.notificationAlwaysShowPreview = !checked
}
}
TextSwitch {
width: parent.columnWidth
checked: appSettings.goToQuotedMessage
text: qsTr("Go to quoted message")
description: qsTr("When tapping a quoted message, open it in chat instead of showing it in an overlay.")
automaticCheck: false
onClicked: {
appSettings.goToQuotedMessage = !checked
}
}
ComboBox {
id: feedbackComboBox
width: parent.columnWidth
label: qsTr("Notification feedback")
description: qsTr("Use non-graphical feedback (sound, vibration) for notifications")
menu: ContextMenu {
id: feedbackMenu
x: 0
width: feedbackComboBox.width
MenuItem {
readonly property int value: AppSettings.NotificationFeedbackAll
text: qsTr("All events")
onClicked: {
appSettings.notificationFeedback = value
}
}
MenuItem {
readonly property int value: AppSettings.NotificationFeedbackNew
text: qsTr("Only new events")
onClicked: {
appSettings.notificationFeedback = value
}
}
MenuItem {
readonly property int value: AppSettings.NotificationFeedbackNone
text: qsTr("None")
onClicked: {
appSettings.notificationFeedback = value
}
}
}
Component.onCompleted: updateFeedbackSelection()
function updateFeedbackSelection() {
var menuItems = feedbackMenu.children
var n = menuItems.length
for (var i=0; i<n; i++) {
if (menuItems[i].value === appSettings.notificationFeedback) {
currentIndex = i
return
}
}
}
Connections {
target: appSettings
onNotificationFeedbackChanged: {
feedbackComboBox.updateFeedbackSelection()
}
}
}
Item {
// Occupies one grid cell so that the column ends up under the combo box
// in the landscape layout
visible: parent.columns === 2
width: 1
height: 1
}
Column {
enabled: appSettings.notificationFeedback !== AppSettings.NotificationFeedbackNone
width: parent.columnWidth
height: enabled ? implicitHeight: 0
clip: height < implicitHeight
visible: height > 0
Behavior on height { SmoothedAnimation { duration: 200 } }
TextSwitch {
checked: appSettings.notificationSuppressContent && enabled
text: qsTr("Hide content in notifications")
enabled: parent.enabled
automaticCheck: false
onClicked: {
appSettings.notificationSuppressContent = !checked
}
}
TextSwitch {
checked: appSettings.notificationTurnsDisplayOn && enabled
text: qsTr("Notification turns on the display")
enabled: parent.enabled
automaticCheck: false
onClicked: {
appSettings.notificationTurnsDisplayOn = !checked
}
}
TextSwitch {
checked: appSettings.notificationSoundsEnabled && enabled
text: qsTr("Enable notification sounds")
description: qsTr("When sounds are enabled, Fernschreiber will use the current Sailfish OS notification sound for chats, which can be configured in the system settings.")
enabled: parent.enabled
automaticCheck: false
onClicked: {
appSettings.notificationSoundsEnabled = !checked
}
}
}
}
}
}

View file

@ -0,0 +1,266 @@
/*
Copyright (C) 2021 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/>.
*/
import QtQuick 2.6
import Sailfish.Silica 1.0
import WerkWolf.Fernschreiber 1.0
AccordionItem {
text: qsTr("Privacy")
Component {
Column {
bottomPadding: Theme.paddingMedium
Connections {
target: tdLibWrapper
onUserPrivacySettingUpdated: {
Debug.log("Received updated privacy setting: " + setting + ":" + rule);
switch (setting) {
case TelegramAPI.SettingAllowChatInvites:
allowChatInvitesComboBox.currentIndex = rule;
break;
case TelegramAPI.SettingAllowFindingByPhoneNumber:
allowFindingByPhoneNumberComboBox.currentIndex = rule;
break;
case TelegramAPI.SettingShowLinkInForwardedMessages:
showLinkInForwardedMessagesComboBox.currentIndex = rule;
break;
case TelegramAPI.SettingShowPhoneNumber:
showPhoneNumberComboBox.currentIndex = rule;
break;
case TelegramAPI.SettingShowProfilePhoto:
showProfilePhotoComboBox.currentIndex = rule;
break;
case TelegramAPI.SettingShowStatus:
showStatusComboBox.currentIndex = rule;
break;
}
}
}
ResponsiveGrid {
ComboBox {
id: allowChatInvitesComboBox
width: parent.columnWidth
label: qsTr("Allow chat invites")
description: qsTr("Privacy setting for managing whether you can be invited to chats.")
menu: ContextMenu {
x: 0
width: allowChatInvitesComboBox.width
MenuItem {
text: qsTr("Yes")
onClicked: {
tdLibWrapper.setUserPrivacySettingRule(TelegramAPI.SettingAllowChatInvites, TelegramAPI.RuleAllowAll);
}
}
MenuItem {
text: qsTr("Your contacts only")
onClicked: {
tdLibWrapper.setUserPrivacySettingRule(TelegramAPI.SettingAllowChatInvites, TelegramAPI.RuleAllowContacts);
}
}
MenuItem {
text: qsTr("No")
onClicked: {
tdLibWrapper.setUserPrivacySettingRule(TelegramAPI.SettingAllowChatInvites, TelegramAPI.RuleRestrictAll);
}
}
}
Component.onCompleted: {
currentIndex = tdLibWrapper.getUserPrivacySettingRule(TelegramAPI.SettingAllowChatInvites);
}
}
ComboBox {
id: allowFindingByPhoneNumberComboBox
width: parent.columnWidth
label: qsTr("Allow finding by phone number")
description: qsTr("Privacy setting for managing whether you can be found by your phone number.")
menu: ContextMenu {
x: 0
width: allowFindingByPhoneNumberComboBox.width
MenuItem {
text: qsTr("Yes")
onClicked: {
tdLibWrapper.setUserPrivacySettingRule(TelegramAPI.SettingAllowFindingByPhoneNumber, TelegramAPI.RuleAllowAll);
}
}
MenuItem {
text: qsTr("Your contacts only")
onClicked: {
tdLibWrapper.setUserPrivacySettingRule(TelegramAPI.SettingAllowFindingByPhoneNumber, TelegramAPI.RuleAllowContacts);
}
}
}
Component.onCompleted: {
currentIndex = tdLibWrapper.getUserPrivacySettingRule(TelegramAPI.SettingAllowFindingByPhoneNumber);
}
}
ComboBox {
id: showLinkInForwardedMessagesComboBox
width: parent.columnWidth
label: qsTr("Show link in forwarded messages")
description: qsTr("Privacy setting for managing whether a link to your account is included in forwarded messages.")
menu: ContextMenu {
x: 0
width: showLinkInForwardedMessagesComboBox.width
MenuItem {
text: qsTr("Yes")
onClicked: {
tdLibWrapper.setUserPrivacySettingRule(TelegramAPI.SettingShowLinkInForwardedMessages, TelegramAPI.RuleAllowAll);
}
}
MenuItem {
text: qsTr("Your contacts only")
onClicked: {
tdLibWrapper.setUserPrivacySettingRule(TelegramAPI.SettingShowLinkInForwardedMessages, TelegramAPI.RuleAllowContacts);
}
}
MenuItem {
text: qsTr("No")
onClicked: {
tdLibWrapper.setUserPrivacySettingRule(TelegramAPI.SettingShowLinkInForwardedMessages, TelegramAPI.RuleRestrictAll);
}
}
}
Component.onCompleted: {
currentIndex = tdLibWrapper.getUserPrivacySettingRule(TelegramAPI.SettingShowLinkInForwardedMessages);
}
}
ComboBox {
id: showPhoneNumberComboBox
width: parent.columnWidth
label: qsTr("Show phone number")
description: qsTr("Privacy setting for managing whether your phone number is visible.")
menu: ContextMenu {
x: 0
width: showPhoneNumberComboBox.width
MenuItem {
text: qsTr("Yes")
onClicked: {
tdLibWrapper.setUserPrivacySettingRule(TelegramAPI.SettingShowPhoneNumber, TelegramAPI.RuleAllowAll);
}
}
MenuItem {
text: qsTr("Your contacts only")
onClicked: {
tdLibWrapper.setUserPrivacySettingRule(TelegramAPI.SettingShowPhoneNumber, TelegramAPI.RuleAllowContacts);
}
}
MenuItem {
text: qsTr("No")
onClicked: {
tdLibWrapper.setUserPrivacySettingRule(TelegramAPI.SettingShowPhoneNumber, TelegramAPI.RuleRestrictAll);
}
}
}
Component.onCompleted: {
currentIndex = tdLibWrapper.getUserPrivacySettingRule(TelegramAPI.SettingShowPhoneNumber);
}
}
ComboBox {
id: showProfilePhotoComboBox
width: parent.columnWidth
label: qsTr("Show profile photo")
description: qsTr("Privacy setting for managing whether your profile photo is visible.")
menu: ContextMenu {
x: 0
width: showProfilePhotoComboBox.width
MenuItem {
text: qsTr("Yes")
onClicked: {
tdLibWrapper.setUserPrivacySettingRule(TelegramAPI.SettingShowProfilePhoto, TelegramAPI.RuleAllowAll);
}
}
MenuItem {
text: qsTr("Your contacts only")
onClicked: {
tdLibWrapper.setUserPrivacySettingRule(TelegramAPI.SettingShowProfilePhoto, TelegramAPI.RuleAllowContacts);
}
}
MenuItem {
text: qsTr("No")
onClicked: {
tdLibWrapper.setUserPrivacySettingRule(TelegramAPI.SettingShowProfilePhoto, TelegramAPI.RuleRestrictAll);
}
}
}
Component.onCompleted: {
currentIndex = tdLibWrapper.getUserPrivacySettingRule(TelegramAPI.SettingShowProfilePhoto);
}
}
ComboBox {
id: showStatusComboBox
width: parent.columnWidth
label: qsTr("Show status")
description: qsTr("Privacy setting for managing whether your online status is visible.")
menu: ContextMenu {
x: 0
width: showStatusComboBox.width
MenuItem {
text: qsTr("Yes")
onClicked: {
tdLibWrapper.setUserPrivacySettingRule(TelegramAPI.SettingShowStatus, TelegramAPI.RuleAllowAll);
}
}
MenuItem {
text: qsTr("Your contacts only")
onClicked: {
tdLibWrapper.setUserPrivacySettingRule(TelegramAPI.SettingShowStatus, TelegramAPI.RuleAllowContacts);
}
}
MenuItem {
text: qsTr("No")
onClicked: {
tdLibWrapper.setUserPrivacySettingRule(TelegramAPI.SettingShowStatus, TelegramAPI.RuleRestrictAll);
}
}
}
Component.onCompleted: {
currentIndex = tdLibWrapper.getUserPrivacySettingRule(TelegramAPI.SettingShowStatus);
}
}
}
TextSwitch {
checked: appSettings.allowInlineBotLocationAccess
text: qsTr("Allow sending Location to inline bots")
description: qsTr("Some inline bots request location data when using them")
automaticCheck: false
onClicked: {
appSettings.allowInlineBotLocationAccess = !checked
}
}
}
}
}

View file

@ -0,0 +1,216 @@
/*
Copyright (C) 2020-21 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/>.
*/
import QtQuick 2.6
import Sailfish.Silica 1.0
import WerkWolf.Fernschreiber 1.0
import "../../components"
import "../../js/functions.js" as Functions
AccordionItem {
text: qsTr("Sessions")
property SilicaFlickable flickable: parent.flickable
Component {
Column {
id: activeSessionsItem
bottomPadding: Theme.paddingMedium
property variant activeSessions
property int inactiveSessionsTtlDays
Component.onCompleted: {
if (!activeSessions) {
tdLibWrapper.getActiveSessions();
}
}
Connections {
target: tdLibWrapper
onSessionsReceived: {
activeSessionsItem.activeSessions = sessions
activeSessionsItem.inactiveSessionsTtlDays = inactive_session_ttl_days
}
onOkReceived: {
if (request === "terminateSession") {
appNotification.show(qsTr("Session was terminated"));
tdLibWrapper.getActiveSessions();
}
}
}
Loader {
active: tdLibWrapper.authorizationState === TelegramAPI.AuthorizationReady
width: parent.width
sourceComponent: Component {
Column {
BusyIndicator {
anchors.horizontalCenter: parent.horizontalCenter
running: !activeSessionsListView.count && !activeSessionsItem.inactiveSessionsTtlDays
size: BusyIndicatorSize.Medium
visible: opacity > 0
height: running ? implicitHeight : 0
}
SilicaListView {
id: activeSessionsListView
width: parent.width
height: contentHeight
model: activeSessionsItem.activeSessions
headerPositioning: ListView.OverlayHeader
header: Separator {
width: parent.width
color: Theme.primaryColor
horizontalAlignment: Qt.AlignHCenter
visible: activeSessionsListView.count > 0
}
delegate: ListItem {
id: activeSessionListItem
width: parent.width
contentHeight: activeSessionColumn.height + ( 2 * Theme.paddingMedium )
menu: ContextMenu {
hasContent: !modelData.is_current
onHeightChanged: {
if (parent && flickable) {
// Make sure we are inside the screen area
var bottom = parent.mapToItem(flickable, x, y).y + height
if (bottom > flickable.height) {
flickable.contentY += bottom - flickable.height
}
}
}
MenuItem {
onClicked: {
var sessionId = modelData.id;
Remorse.itemAction(activeSessionListItem, qsTr("Terminating session"), function() { tdLibWrapper.terminateSession(sessionId); });
}
text: qsTr("Terminate Session")
}
}
Column {
id: activeSessionColumn
width: parent.width - ( 2 * Theme.horizontalPageMargin )
spacing: Theme.paddingSmall
anchors.verticalCenter: parent.verticalCenter
anchors.horizontalCenter: parent.horizontalCenter
Label {
width: parent.width
text: qsTr("This app")
font.pixelSize: Theme.fontSizeMedium
font.bold: true
visible: modelData.is_current
color: Theme.highlightColor
}
Label {
width: parent.width
text: modelData.application_name + " " + modelData.application_version
font.pixelSize: Theme.fontSizeMedium
font.bold: true
maximumLineCount: 1
elide: Text.ElideRight
}
Label {
width: parent.width
text: modelData.device_model + ", " + (modelData.platform + " " + modelData.system_version).trim()
font.pixelSize: Theme.fontSizeSmall
maximumLineCount: 1
truncationMode: TruncationMode.Fade
}
Label {
width: parent.width
text: qsTr("Active since: %1, last online: %2").arg(Functions.getDateTimeTimepoint(modelData.log_in_date)).arg(Functions.getDateTimeElapsed(modelData.last_active_date))
font.pixelSize: Theme.fontSizeExtraSmall
maximumLineCount: 1
truncationMode: TruncationMode.Fade
}
}
Separator {
anchors {
bottom: parent.bottom
}
width: parent.width
color: Theme.primaryColor
horizontalAlignment: Qt.AlignHCenter
}
}
}
ComboBox {
readonly property int ttl: activeSessionsItem.inactiveSessionsTtlDays
label: qsTr("Session Timeout")
description: qsTr("Inactive sessions will be terminated after this timeframe")
value: (currentItem && currentItem.text) ? currentItem.text : qsTr("%1 day(s)", "", ttl).arg(ttl)
visible: ttl > 0
menu: ContextMenu {
id: ttlMenu
MenuItem {
readonly property int days: 7
text: qsTr("1 week")
onClicked: tdLibWrapper.setInactiveSessionTtl(days)
}
MenuItem {
readonly property int days: 30
text: qsTr("1 month")
onClicked: tdLibWrapper.setInactiveSessionTtl(days)
}
MenuItem {
readonly property int days: 90
text: qsTr("3 months")
onClicked: tdLibWrapper.setInactiveSessionTtl(days)
}
MenuItem {
readonly property int days: 180
text: qsTr("6 months")
onClicked: tdLibWrapper.setInactiveSessionTtl(days)
}
MenuItem {
readonly property int days: 365
text: qsTr("1 year")
onClicked: tdLibWrapper.setInactiveSessionTtl(days)
}
}
Component.onCompleted: updateSelection()
onTtlChanged: updateSelection()
function updateSelection() {
var menuItems = ttlMenu.children
var n = menuItems.length
for (var i = 0; i < n; i++) {
if (menuItems[i].days === ttl) {
currentIndex = i
return
}
}
currentIndex = -1
}
}
}
}
}
}
}
}

View file

@ -0,0 +1,51 @@
/*
Copyright (C) 2021 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/>.
*/
import QtQuick 2.6
import Sailfish.Silica 1.0
import WerkWolf.Fernschreiber 1.0
AccordionItem {
text: qsTr("Storage")
Component {
ResponsiveGrid {
bottomPadding: Theme.paddingMedium
TextSwitch {
width: parent.columnWidth
checked: appSettings.onlineOnlyMode
text: qsTr("Enable online-only mode")
description: qsTr("Disables offline caching. Certain features may be limited or missing in this mode. Changes require a restart of Fernschreiber to take effect.")
automaticCheck: false
onClicked: {
appSettings.onlineOnlyMode = !checked
}
}
TextSwitch {
width: parent.columnWidth
checked: appSettings.storageOptimizer
text: qsTr("Enable storage optimizer")
automaticCheck: false
onClicked: {
appSettings.storageOptimizer = !checked
}
}
}
}
}

View file

@ -0,0 +1,346 @@
/*
Copyright (C) 2021 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/>.
*/
import QtQuick 2.6
import Sailfish.Silica 1.0
import Sailfish.Pickers 1.0
import WerkWolf.Fernschreiber 1.0
import "../"
import "../../pages/"
import "../../js/twemoji.js" as Emoji
import "../../js/functions.js" as Functions
AccordionItem {
text: qsTr("User Profile")
Component {
Column {
id: accordionContent
bottomPadding: Theme.paddingMedium
readonly property var userInformation: tdLibWrapper.getUserInformation()
property bool uploadInProgress: false
property bool contactSyncEnabled: false
Component.onCompleted: {
tdLibWrapper.getUserProfilePhotos(userInformation.id, 100, 0);
}
Connections {
target: tdLibWrapper
onOwnUserUpdated: {
firstNameEditArea.text = userInformation.first_name;
lastNameEditArea.text = userInformation.last_name;
userNameEditArea.text = userInformation.username;
}
onUserProfilePhotosReceived: {
if (extra === userInformation.id.toString()) {
imageContainer.thumbnailModel = photos;
}
}
onFileUpdated: {
if (uploadInProgress) {
profilePictureButtonColumn.visible = !fileInformation.remote.is_uploading_active;
uploadInProgress = fileInformation.remote.is_uploading_active;
if (!fileInformation.remote.is_uploading_active) {
uploadInProgress = false;
tdLibWrapper.getUserProfilePhotos(userInformation.id, 100, 0);
}
}
}
onOkReceived: {
if (request === "deleteProfilePhoto") {
tdLibWrapper.getUserProfilePhotos(userInformation.id, 100, 0);
}
if (request === "setProfilePhoto") {
tdLibWrapper.getUserProfilePhotos(userInformation.id, 100, 0);
profilePictureButtonColumn.visible = true;
uploadInProgress = false;
}
}
}
ResponsiveGrid {
x: Theme.horizontalPageMargin
InformationEditArea {
id: firstNameEditArea
visible: true
canEdit: true
headerText: qsTr("First Name", "first name of the logged-in profile - header")
text: userInformation.first_name
width: parent.columnWidth
headerLeftAligned: true
onSaveButtonClicked: {
if(!editItem.errorHighlight) {
tdLibWrapper.setName(textValue, lastNameEditArea.text);
} else {
isEditing = true;
}
}
onTextEdited: {
if(textValue.length > 0 && textValue.length < 65) {
editItem.errorHighlight = false;
editItem.label = "";
editItem.placeholderText = "";
} else {
editItem.label = qsTr("Enter 1-64 characters");
editItem.placeholderText = editItem.label;
editItem.errorHighlight = true;
}
}
}
InformationEditArea {
id: lastNameEditArea
visible: true
canEdit: true
headerText: qsTr("Last Name", "last name of the logged-in profile - header")
text: userInformation.last_name
width: parent.columnWidth
headerLeftAligned: true
onSaveButtonClicked: {
if(!editItem.errorHighlight) {
tdLibWrapper.setName(firstNameEditArea.text, textValue);
} else {
isEditing = true;
}
}
onTextEdited: {
if(textValue.length >= 0 && textValue.length < 65) {
editItem.errorHighlight = false;
editItem.label = "";
editItem.placeholderText = "";
} else {
editItem.label = qsTr("Enter 0-64 characters");
editItem.placeholderText = editItem.label;
editItem.errorHighlight = true;
}
}
}
InformationEditArea {
id: userNameEditArea
visible: true
canEdit: true
headerText: qsTr("Username", "user name of the logged-in profile - header")
text: userInformation.usernames.editable_username
width: parent.columnWidth
headerLeftAligned: true
onSaveButtonClicked: {
tdLibWrapper.setUsername(textValue);
}
}
Column {
id: contactSyncItem
width: parent.width
height: syncInProgress ? ( syncContactsBusyIndicator.height + Theme.paddingMedium ) : ( syncContactsButton.height + Theme.paddingMedium )
visible: accordionContent.contactSyncEnabled
property bool syncInProgress: false
Connections {
target: contactSyncLoader.item
onSyncError: {
contactSyncItem.syncInProgress = false;
}
}
Connections {
target: tdLibWrapper
onContactsImported: {
appNotification.show(qsTr("Contacts successfully synchronized with Telegram."));
}
}
Button {
id: syncContactsButton
text: qsTr("Synchronize Contacts with Telegram")
visible: !contactSyncItem.syncInProgress
anchors {
horizontalCenter: parent.horizontalCenter
}
onClicked: {
contactSyncLoader.item.synchronize();
}
}
BusyIndicator {
id: syncContactsBusyIndicator
anchors.horizontalCenter: parent.horizontalCenter
running: contactSyncItem.syncInProgress
size: BusyIndicatorSize.Small
visible: running
}
}
}
SectionHeader {
horizontalAlignment: Text.AlignLeft
text: qsTr("Profile Pictures")
}
Row {
width: parent.width - ( 2 * Theme.horizontalPageMargin )
spacing: Theme.paddingMedium
Item {
id: imageContainer
anchors.verticalCenter: parent.verticalCenter
width: parent.width / 2
height: profilePictureLoader.height
property var thumbnailModel: ({})
property bool thumbnailVisible: true
property bool thumbnailActive: thumbnailModel.length > 0
property int thumbnailRadius: imageContainer.width / 2
Loader {
id: profilePictureLoader
active: imageContainer.thumbnailActive
asynchronous: true
width: Theme.itemSizeExtraLarge
height: Theme.itemSizeExtraLarge
anchors.horizontalCenter: parent.horizontalCenter
source: "../ProfilePictureList.qml"
}
ProfileThumbnail {
id: chatPictureReplacement
visible: !profilePictureLoader.active
replacementStringHint: Functions.getUserName(accordionContent.userInformation)
radius: imageContainer.thumbnailRadius
anchors.horizontalCenter: parent.horizontalCenter
width: Theme.itemSizeExtraLarge
height: Theme.itemSizeExtraLarge
}
}
Column {
id: profilePictureButtonColumn
spacing: Theme.paddingSmall
width: parent.width / 2
Button {
id: addProfilePictureButton
text: qsTr("Add Picture")
anchors {
horizontalCenter: parent.horizontalCenter
}
onClicked: {
pageStack.push(imagePickerPage);
}
}
Button {
id: removeProfilePictureButton
text: qsTr("Delete Picture")
anchors {
horizontalCenter: parent.horizontalCenter
}
onClicked: {
var pictureIdForDeletion = imageContainer.thumbnailModel[profilePictureLoader.item.currentPictureIndex].id;
Remorse.popupAction(settingsPage, qsTr("Deleting profile picture"), function() { tdLibWrapper.deleteProfilePhoto(pictureIdForDeletion) });
}
}
}
Column {
id: uploadStatusColumn
visible: !profilePictureButtonColumn.visible
spacing: Theme.paddingMedium
width: parent.width / 2
Text {
id: uploadingText
font.pixelSize: Theme.fontSizeSmall
text: qsTr("Uploading...")
horizontalAlignment: Text.AlignHCenter
color: Theme.secondaryColor
width: parent.width
}
BusyIndicator {
anchors.horizontalCenter: parent.horizontalCenter
running: uploadStatusColumn.visible
size: BusyIndicatorSize.Medium
}
}
}
Loader {
id: contactSyncLoader
source: "../ContactSync.qml"
active: true
onLoaded: {
accordionContent.contactSyncEnabled = true;
}
}
Component {
id: imagePickerPage
ImagePickerPage {
onSelectedContentPropertiesChanged: {
profilePictureButtonColumn.visible = false;
uploadInProgress = true;
tdLibWrapper.setProfilePhoto(selectedContentProperties.filePath);
}
}
}
Column {
width: parent.width - ( 2 * Theme.horizontalPageMargin )
spacing: Theme.paddingMedium
Label {
width: parent.width
height: Theme.fontSizeExtraLarge
anchors.horizontalCenter: parent.horizontalCenter
horizontalAlignment: Text.AlignHCenter
verticalAlignment: Text.AlignBottom
text: qsTr("Phone number: +%1").arg(accordionContent.userInformation.phone_number)
font.pixelSize: Theme.fontSizeSmall
wrapMode: Text.Wrap
anchors {
horizontalCenter: parent.horizontalCenter
}
}
Button {
id: logOutButton
text: qsTr("Log Out")
anchors.horizontalCenter: parent.horizontalCenter
onClicked: Remorse.popupAction(settingsPage, qsTr("Logged out"), function() {
tdLibWrapper.logout();
pageStack.pop();
});
}
}
}
}
}

View file

@ -40,6 +40,16 @@ ApplicationWindow
}
}
Connections {
target: tdLibWrapper
onOpenFileExternally: {
Qt.openUrlExternally(filePath);
}
onTgUrlFound: {
Functions.handleLink(tgUrl);
}
}
AppNotification {
id: appNotification
parent: pageStack.currentPage

View file

@ -1 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#141414" d="M4 5C1.791 5 0 6.791 0 9v18c0 2.209 1.791 4 4 4h8V5H4z"/><path fill="#FEE833" d="M12 5h12v26H12z"/><path fill="#EE232C" d="M32 5h-8v26h8c2.209 0 4-1.791 4-4V9c0-2.209-1.791-4-4-4z"/></svg>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36" xml:space="preserve"><path fill="#141414" d="M7 5a4 4 0 0 0-4 4v18a4 4 0 0 0 4 4h6V5H7z"/><path fill="#FDDA24" d="M13 5h10v26H13z"/><path fill="#EF3340" d="M29 5h-6v26h6a4 4 0 0 0 4-4V9a4 4 0 0 0-4-4z"/></svg>

Before

Width:  |  Height:  |  Size: 272 B

After

Width:  |  Height:  |  Size: 269 B

View file

@ -1 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#138808" d="M0 27c0 2.209 1.791 4 4 4h28c2.209 0 4-1.791 4-4v-4H0v4z"/><path fill="#EEE" d="M0 13h36v10H0z"/><path fill="#F93" d="M36 13V9c0-2.209-1.791-4-4-4H4C1.791 5 0 6.791 0 9v4h36z"/><circle fill="navy" cx="18" cy="18" r="4"/><circle fill="#EEE" cx="18" cy="18" r="3"/><path fill="#6666B3" d="M18 15l.146 2.264 1.001-2.035-.73 2.147 1.704-1.498-1.497 1.705 2.147-.731-2.035 1.002L21 18l-2.264.146 2.035 1.001-2.147-.73 1.497 1.704-1.704-1.497.73 2.147-1.001-2.035L18 21l-.146-2.264-1.002 2.035.731-2.147-1.705 1.497 1.498-1.704-2.147.73 2.035-1.001L15 18l2.264-.146-2.035-1.002 2.147.731-1.498-1.705 1.705 1.498-.731-2.147 1.002 2.035z"/><circle fill="navy" cx="18" cy="18" r="1"/></svg>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36" xml:space="preserve"><path fill="#138808" d="M0 27a4 4 0 0 0 4 4h28a4 4 0 0 0 4-4v-5H0v5z"/><path fill="#F93" d="M36 14V9a4 4 0 0 0-4-4H4a4 4 0 0 0-4 4v5h36z"/><path fill="#F7F7F7" d="M0 13.667h36v8.667H0z"/><circle fill="navy" cx="18" cy="18" r="4"/><circle fill="#F7F7F7" cx="18" cy="18" r="3.375"/><path d="m18.1 16.75-.1.65-.1-.65.1-1.95zm-.928-1.841.408 1.909.265.602-.072-.653zm-.772.32.888 1.738.412.513-.238-.613zm-.663.508 1.308 1.45.531.389-.389-.531zm-.508.663 1.638 1.062.613.238-.513-.412zm-.32.772 1.858.601.653.072-.602-.265zM14.8 18l1.95.1.65-.1-.65-.1zm.109.828 1.909-.408.602-.265-.653.072zm.32.772 1.738-.888.513-.412-.613.238zm.508.663 1.45-1.308.389-.531-.531.389zm.663.508 1.062-1.638.238-.613-.412.513zm.772.32.601-1.858.072-.653-.265.602zM18 21.2l.1-1.95-.1-.65-.1.65zm.828-.109-.408-1.909-.265-.602.072.653zm.772-.32-.888-1.738-.412-.513.238.613zm.663-.508-1.308-1.45-.531-.389.389.531zm.508-.663-1.638-1.062-.613-.238.513.412zm.32-.772-1.858-.601-.653-.072.602.265zM21.2 18l-1.95-.1-.65.1.65.1zm-.109-.828-1.909.408-.602.265.653-.072zm-.32-.772-1.738.888-.513.412.613-.238zm-.508-.663-1.45 1.308-.389.531.531-.389zm-.663-.508-1.062 1.638-.238.613.412-.513zm-.772-.32-.601 1.858-.072.653.265-.602z" fill="#6666B3"/><g fill="navy"><circle cx="17.56" cy="14.659" r=".2"/><circle cx="16.71" cy="14.887" r=".2"/><circle cx="15.948" cy="15.326" r=".2"/><circle cx="15.326" cy="15.948" r=".2"/><circle cx="14.887" cy="16.71" r=".2"/><circle cx="14.659" cy="17.56" r=".2"/><circle cx="14.659" cy="18.44" r=".2"/><circle cx="14.887" cy="19.29" r=".2"/><circle cx="15.326" cy="20.052" r=".2"/><circle cx="15.948" cy="20.674" r=".2"/><circle cx="16.71" cy="21.113" r=".2"/><circle cx="17.56" cy="21.341" r=".2"/><circle cx="18.44" cy="21.341" r=".2"/><circle cx="19.29" cy="21.113" r=".2"/><circle cx="20.052" cy="20.674" r=".2"/><circle cx="20.674" cy="20.052" r=".2"/><circle cx="21.113" cy="19.29" r=".2"/><circle cx="21.341" cy="18.44" r=".2"/><circle cx="21.341" cy="17.56" r=".2"/><circle cx="21.113" cy="16.71" r=".2"/><circle cx="20.674" cy="15.948" r=".2"/><circle cx="20.052" cy="15.326" r=".2"/><circle cx="19.29" cy="14.887" r=".2"/><circle cx="18.44" cy="14.659" r=".2"/><circle cx="18" cy="18" r=".9"/></g></svg>

Before

Width:  |  Height:  |  Size: 765 B

After

Width:  |  Height:  |  Size: 2.2 KiB

View file

@ -1 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#060" d="M36 27c0 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 4v18z"/><path fill="#D52B1E" d="M32 5H15v26h17c2.209 0 4-1.791 4-4V9c0-2.209-1.791-4-4-4z"/><path fill="#FFCC4D" d="M15 10c-4.418 0-8 3.582-8 8s3.582 8 8 8 8-3.582 8-8-3.582-8-8-8zm3.994 5.938l2.089-1.393c.491.863.803 1.839.888 2.881l-2.977-1.488zM16 24h2.592c-.779.467-1.655.786-2.592.92V24zm-7.971-6.574c.083-1.022.383-1.982.858-2.832l1.602 1.602-2.46 1.23zm0 1.147l3.747 1.874.447-.895L9.118 18l2.116-1.058 1.412 1.412.707-.707-1.176-1.176.046-.023-.447-.895-.344.172-.975-.975 1.461.244.164-.986-2.514-.419c1.084-1.333 2.65-2.253 4.432-2.508V23h-3.099l2.376-1.584-.555-.832-3 2 .014.021c-.959-1.097-1.582-2.492-1.707-4.032zM14 24.92c-.937-.135-1.813-.453-2.592-.92H14v.92zm6.287-2.34l-2.933-2.933-.707.707.471.471-.395.592L19.099 23H16V11.08c1.321.189 2.524.741 3.499 1.561l-2.657.886.316.948 3-1-.103-.308c.167.174.323.357.471.548l-2.804 1.869L18 16l-.224.447L20.882 18l-3.105 1.553.447.895 3.747-1.874c-.124 1.527-.737 2.913-1.684 4.006z"/><path fill="#D52B1E" d="M11 13v7c0 2.209 1.791 4 4 4s4-1.791 4-4v-7h-8z"/><path fill="#FFF" d="M12 14v6c0 1.656 1.343 3 3 3s3-1.344 3-3v-6h-6z"/><path fill="#829ACD" d="M13 17h4v2h-4z"/><path fill="#829ACD" d="M14 16h2v4h-2z"/><path fill="#039" d="M12 17h1v2h-1zm2 0h2v2h-2zm3 0h1v2h-1zm-3 3h2v2h-2zm0-6h2v2h-2z"/></svg>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#060" d="M36 27c0 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 4v18z"/><path fill="#D52B1E" d="M32 5H15v26h17c2.209 0 4-1.791 4-4V9c0-2.209-1.791-4-4-4z"/><path fill="#FFCC4D" d="M15 10c-4.419 0-8 3.581-8 8 0 4.418 3.581 8 8 8 4.418 0 8-3.582 8-8 0-4.419-3.582-8-8-8zm-6.113 4.594l1.602 1.602-2.46 1.23c.083-1.022.383-1.981.858-2.832zm-.858 3.979l4.4 2.207-2.706 1.804.014.021c-.96-1.097-1.583-2.492-1.708-4.032zM14 24.92c-.937-.134-1.813-.453-2.592-.92H14v.92zM14 23h-3.099L14 20.934V23zm0-3.268l-.607.405L9.118 18l2.116-1.058L14 19.707v.025zm0-1.439l-3.543-3.543 3.543.59v2.953zm0-3.992l-4.432-.713c1.084-1.333 2.65-2.253 4.432-2.508v3.221zm7.113.293c.475.851.775 1.81.858 2.833l-2.46-1.23 1.602-1.603zM16 11.08c1.782.256 3.348 1.175 4.432 2.508L16 14.301V11.08zm0 4.26l3.543-.591L16 18.293V15.34zm0 4.367l2.765-2.765L20.882 18l-4.274 2.137-.608-.405v-.025zm0 5.213V24h2.592c-.779.467-1.655.786-2.592.92zM16 23v-2.066L19.099 23H16zm4.264-.395l.014-.021-2.706-1.804 4.4-2.207c-.126 1.54-.749 2.935-1.708 4.032z"/><path fill="#D52B1E" d="M11 13v7c0 2.209 1.791 4 4 4s4-1.791 4-4v-7h-8z"/><path fill="#FFF" d="M12 14v6c0 1.656 1.343 3 3 3s3-1.344 3-3v-6h-6z"/><path fill="#829ACD" d="M13 17h4v2h-4z"/><path fill="#829ACD" d="M14 16h2v4h-2z"/><path fill="#039" d="M12 17h1v2h-1zm2 0h2v2h-2zm3 0h1v2h-1zm-3 3h2v2h-2zm0-6h2v2h-2z"/></svg>

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

View file

@ -1 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#ED1C24" d="M32 5H4C1.791 5 0 6.791 0 9h36c0-2.209-1.791-4-4-4z"/><path fill="#EEE" d="M0 9h36v4H0z"/><path fill="#ED1C24" d="M32 31H4c-2.209 0-4-1.791-4-4h36c0 2.209-1.791 4-4 4z"/><path fill="#EEE" d="M0 23h36v4H0z"/><path fill="#241D4F" d="M0 13h36v10H0z"/></svg>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#A7122D" d="M0 26.518V27c0 2.209 1.791 4 4 4h28c2.209 0 4-1.791 4-4v-.482H0z"/><path fill="#EEE" d="M0 22.181h36v4.485H0z"/><path fill="#292648" d="M0 13.513h36v8.821H0z"/><path fill="#EEE" d="M0 9.181h36v4.485H0z"/><path fill="#A7122D" d="M0 9.333V9c0-2.209 1.791-4 4-4h28c2.209 0 4 1.791 4 4v.333H0z"/></svg>

Before

Width:  |  Height:  |  Size: 338 B

After

Width:  |  Height:  |  Size: 382 B

View file

@ -1 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><circle fill="#CCD6DD" cx="18" cy="18" r="18"/><circle fill="#3B88C3" cx="18" cy="18" r="14"/><circle fill="#DD2E44" cx="18" cy="18" r="10"/><circle fill="#FFAC33" cx="18" cy="18" r="6"/><path d="M34.864 29.199c-.42.306-1.257.592-1.934.592-1.965 0-4.654-.717-6.334-2.386l-2.954-3.872c-.274-.275-.357-.575-.21-.932.148-.359-.73-.601-.342-.601h5.058c1.867 0 4.308 1.256 5.925 3.018l.371.351c.772.843 1.183 1.629 1.182 2.386 0 .621-.272 1.087-.762 1.444z"/><path d="M28.305 35.204c-.771 0-1.632-.417-2.49-1.204l-.488-.378C23.532 31.977 22 29.491 22 27.59v-5.164c0-.396.5.514.865.363.363-.15.915-.066 1.195.214l3.166 3.124c1.699 1.711 3.061 4.619 3.061 6.62 0 .689-.143 1.255-.452 1.682-.364.499-.897.775-1.53.775z"/><path fill="#C1694F" d="M31.345 31.964c-.256 0-.487-.122-.683-.317l-14-14c-.391-.391-.391-1.023 0-1.415.391-.391 1.023-.39 1.414 0l14 14c.391.391.378 1.036-.013 1.427-.194.195-.461.305-.718.305z"/></svg>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><circle fill="#DD2E44" cx="18" cy="18" r="18"/><circle fill="#FFF" cx="18" cy="18" r="13.5"/><circle fill="#DD2E44" cx="18" cy="18" r="10"/><circle fill="#FFF" cx="18" cy="18" r="6"/><circle fill="#DD2E44" cx="18" cy="18" r="3"/><path opacity=".2" d="M18.24 18.282l13.144 11.754s-2.647 3.376-7.89 5.109L17.579 18.42l.661-.138z"/><path fill="#FFAC33" d="M18.294 19c-.255 0-.509-.097-.704-.292-.389-.389-.389-1.018 0-1.407l.563-.563c.389-.389 1.018-.389 1.408 0 .388.389.388 1.018 0 1.407l-.564.563c-.194.195-.448.292-.703.292z"/><path fill="#55ACEE" d="M24.016 6.981c-.403 2.079 0 4.691 0 4.691l7.054-7.388c.291-1.454-.528-3.932-1.718-4.238-1.19-.306-4.079.803-5.336 6.935zm5.003 5.003c-2.079.403-4.691 0-4.691 0l7.388-7.054c1.454-.291 3.932.528 4.238 1.718.306 1.19-.803 4.079-6.935 5.336z"/><path fill="#3A87C2" d="M32.798 4.485L21.176 17.587c-.362.362-1.673.882-2.51.046-.836-.836-.419-2.08-.057-2.443L31.815 3.501s.676-.635 1.159-.152-.176 1.136-.176 1.136z"/></svg>

Before

Width:  |  Height:  |  Size: 976 B

After

Width:  |  Height:  |  Size: 1 KiB

View file

@ -1 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#880082" d="M0 27c0 2.209 1.791 4 4 4h28c2.209 0 4-1.791 4-4v-.5H0v.5z"/><path fill="#3558A0" d="M0 22.07h36v4.6H0z"/><path fill="#138F3E" d="M0 17.83h36v4.5H0z"/><path fill="#FAD220" d="M0 13.5h36V18H0z"/><path fill="#FF5000" d="M0 9.17h36v4.5H0z"/><path fill="#FF000E" d="M32 5H4C1.791 5 0 6.791 0 9v.33h36V9c0-2.209-1.791-4-4-4z"/></svg>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36" xml:space="preserve"><path fill="#880082" d="M0 27a4 4 0 0 0 4 4h28a4 4 0 0 0 4-4v-.5H0v.5z"/><path fill="#3558A0" d="M0 22.07h36v4.6H0z"/><path fill="#138F3E" d="M0 17.83h36v4.5H0z"/><path fill="#FAD220" d="M0 13.5h36V18H0z"/><path fill="#FF7300" d="M0 9.17h36v4.5H0z"/><path fill="#FF000E" d="M32 5H4a4 4 0 0 0-4 4v.33h36V9a4 4 0 0 0-4-4z"/></svg>

Before

Width:  |  Height:  |  Size: 412 B

After

Width:  |  Height:  |  Size: 409 B

View file

@ -1 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#5BCEFA" d="M0 27c0 2.209 1.791 4 4 4h28c2.209 0 4-1.791 4-4v-1.3H0V27z"/><path fill="#F5A9B8" d="M.026 20.5L0 25.8h36v-5.3z"/><path fill="#EEE" d="M0 15.3h36v5.3H0z"/><path fill="#F5A9B8" d="M.026 10.1L0 15.4h36v-5.3z"/><path fill="#5BCEFA" d="M36 9c0-2.209-1.791-4-4-4H4C1.791 5 0 6.791 0 9v1.2h36V9z"/></svg>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#5BCEFA" d="M0 27c0 2.209 1.791 4 4 4h28c2.209 0 4-1.791 4-4v-1.3H0V27z"/><path fill="#F5A9B8" d="M.026 20.5L0 25.8h36v-5.3z"/><path fill="#EEE" d="M0 15.3h36v5.3H0z"/><path fill="#F5A9B8" d="M0 9.902h36V15.4H0z"/><path fill="#5BCEFA" d="M36 9c0-2.209-1.791-4-4-4H4C1.791 5 0 6.791 0 9v1.2h36V9z"/></svg>

Before

Width:  |  Height:  |  Size: 383 B

After

Width:  |  Height:  |  Size: 376 B

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#292F33" d="M11 11.844c-2.297-.669-3.315-3.565-3.734-5.369C6.313 7.952 4.23 10.155 0 11.28V.425C.955.154 1.959 0 3 0c6.075 0 11 4.925 11 11 0 3.009-1.211 5.733-3.168 7.719.107-.557.168-1.13.168-1.719v-5.156z"/><path fill="#F7DECE" d="M0 28.604L2 32l3-5v-1.523c2.968-1.051 5.222-3.607 5.832-6.757.107-.558.168-1.131.168-1.72v-5.156c-2.297-.669-3.315-3.565-3.734-5.369C6.313 7.952 4.23 10.155 0 11.28v17.324z"/><path fill="#3B94D9" d="M0 28.604L2 32l3-5h6c2.209 0 4 1.791 4 4v5H0v-7.396z"/><path fill="#1C6399" d="M10 32h1v4h-1z"/><path fill="#C1694F" d="M5 22h1s-1 2-4 2c-.809 0-1.462-.151-2-.363V22h5zm-2-2.5H1c-.276 0-.5-.224-.5-.5s.224-.5.5-.5h2c.276 0 .5.224.5.5s-.224.5-.5.5z"/><path fill="#662113" d="M6 16c-.553 0-1-.448-1-1v-1c0-.552.447-1 1-1s1 .448 1 1v1c0 .552-.447 1-1 1z"/><path fill="#292F33" d="M25 11.844c2.297-.669 3.315-3.565 3.734-5.369.953 1.477 3.036 3.68 7.266 4.805V.425C35.045.154 34.041 0 33 0c-6.075 0-11 4.925-11 11 0 3.009 1.211 5.733 3.168 7.719C25.061 18.162 25 17.589 25 17v-5.156z"/><path fill="#F7DECE" d="M36 11.28c-4.23-1.125-6.313-3.328-7.266-4.804-.42 1.804-1.438 4.699-3.734 5.369V17c0 .589.061 1.162.168 1.719.61 3.15 2.863 5.706 5.832 6.757V27l3 5 2-3.396V11.28z"/><path fill="#3B94D9" d="M36 28.604L34 32l-3-5h-6c-2.209 0-4 1.791-4 4v5h15v-7.396z"/><path fill="#1C6399" d="M25 32h1v4h-1z"/><path fill="#C1694F" d="M31 22h-1s1 2 4 2c.809 0 1.462-.151 2-.363V22h-5zm2-2.5h2c.276 0 .5-.224.5-.5s-.224-.5-.5-.5h-2c-.276 0-.5.224-.5.5s.224.5.5.5z"/><path fill="#662113" d="M30 16c.553 0 1-.448 1-1v-1c0-.552-.447-1-1-1s-1 .448-1 1v1c0 .552.447 1 1 1z"/><path fill="#DD2E44" d="M26.539 4.711c0-2.602-2.11-4.711-4.711-4.711C20.249 0 18.855.78 18 1.972 17.144.78 15.751 0 14.172 0c-2.601 0-4.711 2.109-4.711 4.711 0 .369.047.727.127 1.07.654 4.065 5.173 8.353 8.411 9.529 3.238-1.177 7.758-5.465 8.412-9.528.081-.344.128-.702.128-1.071z"/></svg>

After

Width:  |  Height:  |  Size: 1.9 KiB

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#292F33" d="M11 11.844c-2.297-.669-3.315-3.565-3.734-5.369C6.313 7.952 4.23 10.155 0 11.28V.425C.955.154 1.959 0 3 0c6.075 0 11 4.925 11 11 0 3.009-1.211 5.733-3.168 7.719.107-.557.168-1.13.168-1.719v-5.156z"/><path fill="#F7DECE" d="M0 28.604L2 32l3-5v-1.523c2.968-1.051 5.222-3.607 5.832-6.757.107-.558.168-1.131.168-1.72v-5.156c-2.297-.669-3.315-3.565-3.734-5.369C6.313 7.952 4.23 10.155 0 11.28v17.324z"/><path fill="#3B94D9" d="M0 28.604L2 32l3-5h6c2.209 0 4 1.791 4 4v5H0v-7.396z"/><path fill="#1C6399" d="M10 32h1v4h-1z"/><path fill="#C1694F" d="M5 22h1s-1 2-4 2c-.809 0-1.462-.151-2-.363V22h5zm-2-2.5H1c-.276 0-.5-.224-.5-.5s.224-.5.5-.5h2c.276 0 .5.224.5.5s-.224.5-.5.5z"/><path fill="#662113" d="M6 16c-.553 0-1-.448-1-1v-1c0-.552.447-1 1-1s1 .448 1 1v1c0 .552-.447 1-1 1z"/><path fill="#FFE51E" d="M25 11.844c2.297-.669 3.315-3.565 3.734-5.369.953 1.477 3.036 3.68 7.266 4.805V.425C35.045.154 34.041 0 33 0c-6.075 0-11 4.925-11 11 0 3.009 1.211 5.733 3.168 7.719C25.061 18.162 25 17.589 25 17v-5.156z"/><path fill="#F3D2A2" d="M36 11.28c-4.23-1.125-6.313-3.328-7.266-4.804-.42 1.804-1.438 4.699-3.734 5.369V17c0 .589.061 1.162.168 1.719.61 3.15 2.863 5.706 5.832 6.757V27l3 5 2-3.396V11.28z"/><path fill="#3B94D9" d="M36 28.604L34 32l-3-5h-6c-2.209 0-4 1.791-4 4v5h15v-7.396z"/><path fill="#1C6399" d="M25 32h1v4h-1z"/><path fill="#C1694F" d="M31 22h-1s1 2 4 2c.809 0 1.462-.151 2-.363V22h-5zm2-2.5h2c.276 0 .5-.224.5-.5s-.224-.5-.5-.5h-2c-.276 0-.5.224-.5.5s.224.5.5.5z"/><path fill="#662113" d="M30 16c.553 0 1-.448 1-1v-1c0-.552-.447-1-1-1s-1 .448-1 1v1c0 .552.447 1 1 1z"/><path fill="#DD2E44" d="M26.539 4.711c0-2.602-2.11-4.711-4.711-4.711C20.249 0 18.855.78 18 1.972 17.144.78 15.751 0 14.172 0c-2.601 0-4.711 2.109-4.711 4.711 0 .369.047.727.127 1.07.654 4.065 5.173 8.353 8.411 9.529 3.238-1.177 7.758-5.465 8.412-9.528.081-.344.128-.702.128-1.071z"/></svg>

After

Width:  |  Height:  |  Size: 1.9 KiB

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#292F33" d="M11 11.844c-2.297-.669-3.315-3.565-3.734-5.369C6.313 7.952 4.23 10.155 0 11.28V.425C.955.154 1.959 0 3 0c6.075 0 11 4.925 11 11 0 3.009-1.211 5.733-3.168 7.719.107-.557.168-1.13.168-1.719v-5.156z"/><path fill="#F7DECE" d="M0 28.604L2 32l3-5v-1.523c2.968-1.051 5.222-3.607 5.832-6.757.107-.558.168-1.131.168-1.72v-5.156c-2.297-.669-3.315-3.565-3.734-5.369C6.313 7.952 4.23 10.155 0 11.28v17.324z"/><path fill="#3B94D9" d="M0 28.604L2 32l3-5h6c2.209 0 4 1.791 4 4v5H0v-7.396z"/><path fill="#1C6399" d="M10 32h1v4h-1z"/><path fill="#C1694F" d="M5 22h1s-1 2-4 2c-.809 0-1.462-.151-2-.363V22h5zm-2-2.5H1c-.276 0-.5-.224-.5-.5s.224-.5.5-.5h2c.276 0 .5.224.5.5s-.224.5-.5.5z"/><path fill="#662113" d="M6 16c-.553 0-1-.448-1-1v-1c0-.552.447-1 1-1s1 .448 1 1v1c0 .552-.447 1-1 1z"/><path fill="#963B22" d="M25 11.844c2.297-.669 3.315-3.565 3.734-5.369.953 1.477 3.036 3.68 7.266 4.805V.425C35.045.154 34.041 0 33 0c-6.075 0-11 4.925-11 11 0 3.009 1.211 5.733 3.168 7.719C25.061 18.162 25 17.589 25 17v-5.156z"/><path fill="#D4AB88" d="M36 11.28c-4.23-1.125-6.313-3.328-7.266-4.804-.42 1.804-1.438 4.699-3.734 5.369V17c0 .589.061 1.162.168 1.719.61 3.15 2.863 5.706 5.832 6.757V27l3 5 2-3.396V11.28z"/><path fill="#3B94D9" d="M36 28.604L34 32l-3-5h-6c-2.209 0-4 1.791-4 4v5h15v-7.396z"/><path fill="#1C6399" d="M25 32h1v4h-1z"/><path fill="#C1694F" d="M31 22h-1s1 2 4 2c.809 0 1.462-.151 2-.363V22h-5zm2-2.5h2c.276 0 .5-.224.5-.5s-.224-.5-.5-.5h-2c-.276 0-.5.224-.5.5s.224.5.5.5z"/><path fill="#662113" d="M30 16c.553 0 1-.448 1-1v-1c0-.552-.447-1-1-1s-1 .448-1 1v1c0 .552.447 1 1 1z"/><path fill="#DD2E44" d="M26.539 4.711c0-2.602-2.11-4.711-4.711-4.711C20.249 0 18.855.78 18 1.972 17.144.78 15.751 0 14.172 0c-2.601 0-4.711 2.109-4.711 4.711 0 .369.047.727.127 1.07.654 4.065 5.173 8.353 8.411 9.529 3.238-1.177 7.758-5.465 8.412-9.528.081-.344.128-.702.128-1.071z"/></svg>

After

Width:  |  Height:  |  Size: 1.9 KiB

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#292F33" d="M11 11.844c-2.297-.669-3.315-3.565-3.734-5.369C6.313 7.952 4.23 10.155 0 11.28V.425C.955.154 1.959 0 3 0c6.075 0 11 4.925 11 11 0 3.009-1.211 5.733-3.168 7.719.107-.557.168-1.13.168-1.719v-5.156z"/><path fill="#F7DECE" d="M0 28.604L2 32l3-5v-1.523c2.968-1.051 5.222-3.607 5.832-6.757.107-.558.168-1.131.168-1.72v-5.156c-2.297-.669-3.315-3.565-3.734-5.369C6.313 7.952 4.23 10.155 0 11.28v17.324z"/><path fill="#3B94D9" d="M0 28.604L2 32l3-5h6c2.209 0 4 1.791 4 4v5H0v-7.396z"/><path fill="#1C6399" d="M10 32h1v4h-1z"/><path fill="#C1694F" d="M5 22h1s-1 2-4 2c-.809 0-1.462-.151-2-.363V22h5zm-2-2.5H1c-.276 0-.5-.224-.5-.5s.224-.5.5-.5h2c.276 0 .5.224.5.5s-.224.5-.5.5z"/><path fill="#662113" d="M6 16c-.553 0-1-.448-1-1v-1c0-.552.447-1 1-1s1 .448 1 1v1c0 .552-.447 1-1 1z"/><path fill="#60352A" d="M25 11.844c2.297-.669 3.315-3.565 3.734-5.369.953 1.477 3.036 3.68 7.266 4.805V.425C35.045.154 34.041 0 33 0c-6.075 0-11 4.925-11 11 0 3.009 1.211 5.733 3.168 7.719C25.061 18.162 25 17.589 25 17v-5.156z"/><path fill="#AF7E57" d="M36 11.28c-4.23-1.125-6.313-3.328-7.266-4.804-.42 1.804-1.438 4.699-3.734 5.369V17c0 .589.061 1.162.168 1.719.61 3.15 2.863 5.706 5.832 6.757V27l3 5 2-3.396V11.28z"/><path fill="#3B94D9" d="M36 28.604L34 32l-3-5h-6c-2.209 0-4 1.791-4 4v5h15v-7.396z"/><path fill="#1C6399" d="M25 32h1v4h-1z"/><path fill="#915A34" d="M31 22h-1s1 2 4 2c.809 0 1.462-.151 2-.363V22h-5zm2-2.5h2c.276 0 .5-.224.5-.5s-.224-.5-.5-.5h-2c-.276 0-.5.224-.5.5s.224.5.5.5z"/><path fill="#662113" d="M30 16c.553 0 1-.448 1-1v-1c0-.552-.447-1-1-1s-1 .448-1 1v1c0 .552.447 1 1 1z"/><path fill="#DD2E44" d="M26.539 4.711c0-2.602-2.11-4.711-4.711-4.711C20.249 0 18.855.78 18 1.972 17.144.78 15.751 0 14.172 0c-2.601 0-4.711 2.109-4.711 4.711 0 .369.047.727.127 1.07.654 4.065 5.173 8.353 8.411 9.529 3.238-1.177 7.758-5.465 8.412-9.528.081-.344.128-.702.128-1.071z"/></svg>

After

Width:  |  Height:  |  Size: 1.9 KiB

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#292F33" d="M11 11.844c-2.297-.669-3.315-3.565-3.734-5.369C6.313 7.952 4.23 10.155 0 11.28V.425C.955.154 1.959 0 3 0c6.075 0 11 4.925 11 11 0 3.009-1.211 5.733-3.168 7.719.107-.557.168-1.13.168-1.719v-5.156z"/><path fill="#F7DECE" d="M0 28.604L2 32l3-5v-1.523c2.968-1.051 5.222-3.607 5.832-6.757.107-.558.168-1.131.168-1.72v-5.156c-2.297-.669-3.315-3.565-3.734-5.369C6.313 7.952 4.23 10.155 0 11.28v17.324z"/><path fill="#3B94D9" d="M0 28.604L2 32l3-5h6c2.209 0 4 1.791 4 4v5H0v-7.396z"/><path fill="#1C6399" d="M10 32h1v4h-1z"/><path fill="#C1694F" d="M5 22h1s-1 2-4 2c-.809 0-1.462-.151-2-.363V22h5zm-2-2.5H1c-.276 0-.5-.224-.5-.5s.224-.5.5-.5h2c.276 0 .5.224.5.5s-.224.5-.5.5z"/><path fill="#662113" d="M6 16c-.553 0-1-.448-1-1v-1c0-.552.447-1 1-1s1 .448 1 1v1c0 .552-.447 1-1 1z"/><path fill="#0B0200" d="M25 11.844c2.297-.669 3.315-3.565 3.734-5.369.953 1.477 3.036 3.68 7.266 4.805V.425C35.045.154 34.041 0 33 0c-6.075 0-11 4.925-11 11 0 3.009 1.211 5.733 3.168 7.719C25.061 18.162 25 17.589 25 17v-5.156z"/><path fill="#7C533E" d="M36 11.28c-4.23-1.125-6.313-3.328-7.266-4.804-.42 1.804-1.438 4.699-3.734 5.369V17c0 .589.061 1.162.168 1.719.61 3.15 2.863 5.706 5.832 6.757V27l3 5 2-3.396V11.28z"/><path fill="#3B94D9" d="M36 28.604L34 32l-3-5h-6c-2.209 0-4 1.791-4 4v5h15v-7.396z"/><path fill="#1C6399" d="M25 32h1v4h-1z"/><path fill="#3D2E24" d="M31 22h-1s1 2 4 2c.809 0 1.462-.151 2-.363V22h-5zm2-2.5h2c.276 0 .5-.224.5-.5s-.224-.5-.5-.5h-2c-.276 0-.5.224-.5.5s.224.5.5.5z"/><path d="M30 16c.553 0 1-.448 1-1v-1c0-.552-.447-1-1-1s-1 .448-1 1v1c0 .552.447 1 1 1z"/><path fill="#DD2E44" d="M26.539 4.711c0-2.602-2.11-4.711-4.711-4.711C20.249 0 18.855.78 18 1.972 17.144.78 15.751 0 14.172 0c-2.601 0-4.711 2.109-4.711 4.711 0 .369.047.727.127 1.07.654 4.065 5.173 8.353 8.411 9.529 3.238-1.177 7.758-5.465 8.412-9.528.081-.344.128-.702.128-1.071z"/></svg>

After

Width:  |  Height:  |  Size: 1.9 KiB

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#F7DECE" d="M5 8.042c6.626 0 12 5.373 12 12 0 6.626-5.374 12-12 12-1.787 0-3.476-.401-5-1.102V9.143c1.524-.7 3.213-1.101 5-1.101z"/><path fill="#292F33" d="M15.333 15.042c-.055.06-.128.115-.197.171-.72.716-1.753 1.477-3.219 2.036-3.691 1.407-9.121.297-9.121.297s.748-1.198 2.101-2.492c-1.809.549-3.463 1.359-4.897 2.371v-9.25c1.81-.903 3.843-1.425 6-1.428 6.508-.008 9.915 3.393 10.059 6.135.176.085.352.168.531.265 0 0-.237.641-.902 1.459-.077.094-.161.191-.249.29-.038.047-.064.1-.106.146z"/><path fill="#662113" d="M10 21.542c1.411 0 1.497-1.251 1.5-1.503.001-.274.225-.497.5-.497.276 0 .5.224.5.5 0 .864-.523 2.5-2.5 2.5-.276 0-.5-.224-.5-.5 0-.277.224-.5.5-.5zm-5 0c1.411 0 1.497-1.251 1.5-1.503.001-.274.225-.497.5-.497.276 0 .5.224.5.5 0 .864-.523 2.5-2.5 2.5-.276 0-.5-.224-.5-.5 0-.277.224-.5.5-.5z"/><path fill="#C1694F" d="M9.995 25.542c-.273-.003-.495-.226-.495-.5 0-.276.224-.5.5-.5.602 0 1.5.399 1.5 1.5 0 .438-.143.765-.352 1 .209.235.352.562.352 1 0 1.101-.898 1.5-1.5 1.5-.273 0-.493-.22-.496-.494-.004-.273.217-.499.49-.506.231-.006.506-.098.506-.5s-.275-.494-.5-.5h-.011c-.272-.006-.489-.228-.489-.5 0-.274.222-.497.495-.5.23-.006.505-.098.505-.5 0-.403-.274-.494-.505-.5z"/><path fill="#F7DECE" d="M31 8.042c-6.626 0-12 5.373-12 12 0 6.626 5.374 12 12 12 1.787 0 3.476-.401 5-1.102V9.143c-1.524-.7-3.213-1.101-5-1.101z"/><path fill="#292F33" d="M20.667 15.042c.055.06.128.115.197.171.72.716 1.753 1.477 3.219 2.036 3.691 1.407 9.121.297 9.121.297s-.748-1.198-2.101-2.492c1.809.549 3.463 1.358 4.897 2.371v-9.25c-1.81-.904-3.843-1.426-6-1.429-6.508-.008-9.915 3.393-10.059 6.135-.176.085-.352.168-.531.265 0 0 .237.641.902 1.459.077.094.161.191.249.29.038.048.064.101.106.147z"/><path fill="#662113" d="M26 21.542c-1.411 0-1.497-1.251-1.5-1.503-.001-.274-.225-.497-.5-.497-.276 0-.5.224-.5.5 0 .864.523 2.5 2.5 2.5.276 0 .5-.224.5-.5 0-.277-.224-.5-.5-.5zm5 0c-1.411 0-1.497-1.251-1.5-1.503-.001-.274-.225-.497-.5-.497-.276 0-.5.224-.5.5 0 .864.523 2.5 2.5 2.5.276 0 .5-.224.5-.5 0-.277-.224-.5-.5-.5z"/><path fill="#C1694F" d="M26.005 25.542c.273-.003.495-.226.495-.5 0-.276-.224-.5-.5-.5-.602 0-1.5.399-1.5 1.5 0 .438.143.765.352 1-.209.235-.352.562-.352 1 0 1.101.898 1.5 1.5 1.5.273 0 .493-.22.496-.494.004-.273-.217-.499-.49-.506-.231-.006-.506-.098-.506-.5s.275-.494.5-.5h.011c.272-.006.489-.228.489-.5 0-.274-.222-.497-.495-.5-.23-.006-.505-.098-.505-.5 0-.403.274-.494.505-.5z"/><path fill="#DD2E44" d="M26.539 4.711c0-2.602-2.11-4.711-4.711-4.711C20.249 0 18.855.78 18 1.972 17.144.78 15.751 0 14.172 0c-2.601 0-4.711 2.109-4.711 4.711 0 .369.047.727.127 1.07.654 4.065 5.173 8.353 8.411 9.529 3.238-1.177 7.758-5.465 8.412-9.528.081-.344.128-.702.128-1.071z"/></svg>

After

Width:  |  Height:  |  Size: 2.7 KiB

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#F7DECE" d="M5 8.042c6.626 0 12 5.373 12 12 0 6.626-5.374 12-12 12-1.787 0-3.476-.401-5-1.102V9.143c1.524-.7 3.213-1.101 5-1.101z"/><path fill="#292F33" d="M15.333 15.042c-.055.06-.128.115-.197.171-.72.716-1.753 1.477-3.219 2.036-3.691 1.407-9.121.297-9.121.297s.748-1.198 2.101-2.492c-1.809.549-3.463 1.359-4.897 2.371v-9.25c1.81-.903 3.843-1.425 6-1.428 6.508-.008 9.915 3.393 10.059 6.135.176.085.352.168.531.265 0 0-.237.641-.902 1.459-.077.094-.161.191-.249.29-.038.047-.064.1-.106.146z"/><path fill="#662113" d="M10 21.542c1.411 0 1.497-1.251 1.5-1.503.001-.274.225-.497.5-.497.276 0 .5.224.5.5 0 .864-.523 2.5-2.5 2.5-.276 0-.5-.224-.5-.5 0-.277.224-.5.5-.5zm-5 0c1.411 0 1.497-1.251 1.5-1.503.001-.274.225-.497.5-.497.276 0 .5.224.5.5 0 .864-.523 2.5-2.5 2.5-.276 0-.5-.224-.5-.5 0-.277.224-.5.5-.5z"/><path fill="#C1694F" d="M9.995 25.542c-.273-.003-.495-.226-.495-.5 0-.276.224-.5.5-.5.602 0 1.5.399 1.5 1.5 0 .438-.143.765-.352 1 .209.235.352.562.352 1 0 1.101-.898 1.5-1.5 1.5-.273 0-.493-.22-.496-.494-.004-.273.217-.499.49-.506.231-.006.506-.098.506-.5s-.275-.494-.5-.5h-.011c-.272-.006-.489-.228-.489-.5 0-.274.222-.497.495-.5.23-.006.505-.098.505-.5 0-.403-.274-.494-.505-.5z"/><path fill="#F3D2A2" d="M31 8.042c-6.626 0-12 5.373-12 12 0 6.626 5.374 12 12 12 1.787 0 3.476-.401 5-1.102V9.143c-1.524-.7-3.213-1.101-5-1.101z"/><path fill="#FFE51E" d="M20.667 15.042c.055.06.128.115.197.171.72.716 1.753 1.477 3.219 2.036 3.691 1.407 9.121.297 9.121.297s-.748-1.198-2.101-2.492c1.809.549 3.463 1.358 4.897 2.371v-9.25c-1.81-.904-3.843-1.426-6-1.429-6.508-.008-9.915 3.393-10.059 6.135-.176.085-.352.168-.531.265 0 0 .237.641.902 1.459.077.094.161.191.249.29.038.048.064.101.106.147z"/><path fill="#662113" d="M26 21.542c-1.411 0-1.497-1.251-1.5-1.503-.001-.274-.225-.497-.5-.497-.276 0-.5.224-.5.5 0 .864.523 2.5 2.5 2.5.276 0 .5-.224.5-.5 0-.277-.224-.5-.5-.5zm5 0c-1.411 0-1.497-1.251-1.5-1.503-.001-.274-.225-.497-.5-.497-.276 0-.5.224-.5.5 0 .864.523 2.5 2.5 2.5.276 0 .5-.224.5-.5 0-.277-.224-.5-.5-.5z"/><path fill="#C1694F" d="M26.005 25.542c.273-.003.495-.226.495-.5 0-.276-.224-.5-.5-.5-.602 0-1.5.399-1.5 1.5 0 .438.143.765.352 1-.209.235-.352.562-.352 1 0 1.101.898 1.5 1.5 1.5.273 0 .493-.22.496-.494.004-.273-.217-.499-.49-.506-.231-.006-.506-.098-.506-.5s.275-.494.5-.5h.011c.272-.006.489-.228.489-.5 0-.274-.222-.497-.495-.5-.23-.006-.505-.098-.505-.5 0-.403.274-.494.505-.5z"/><path fill="#DD2E44" d="M26.539 4.711c0-2.602-2.11-4.711-4.711-4.711C20.249 0 18.855.78 18 1.972 17.144.78 15.751 0 14.172 0c-2.601 0-4.711 2.109-4.711 4.711 0 .369.047.727.127 1.07.654 4.065 5.173 8.353 8.411 9.529 3.238-1.177 7.758-5.465 8.412-9.528.081-.344.128-.702.128-1.071z"/></svg>

After

Width:  |  Height:  |  Size: 2.7 KiB

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#F7DECE" d="M5 8.042c6.626 0 12 5.373 12 12 0 6.626-5.374 12-12 12-1.787 0-3.476-.401-5-1.102V9.143c1.524-.7 3.213-1.101 5-1.101z"/><path fill="#292F33" d="M15.333 15.042c-.055.06-.128.115-.197.171-.72.716-1.753 1.477-3.219 2.036-3.691 1.407-9.121.297-9.121.297s.748-1.198 2.101-2.492c-1.809.549-3.463 1.359-4.897 2.371v-9.25c1.81-.903 3.843-1.425 6-1.428 6.508-.008 9.915 3.393 10.059 6.135.176.085.352.168.531.265 0 0-.237.641-.902 1.459-.077.094-.161.191-.249.29-.038.047-.064.1-.106.146z"/><path fill="#662113" d="M10 21.542c1.411 0 1.497-1.251 1.5-1.503.001-.274.225-.497.5-.497.276 0 .5.224.5.5 0 .864-.523 2.5-2.5 2.5-.276 0-.5-.224-.5-.5 0-.277.224-.5.5-.5zm-5 0c1.411 0 1.497-1.251 1.5-1.503.001-.274.225-.497.5-.497.276 0 .5.224.5.5 0 .864-.523 2.5-2.5 2.5-.276 0-.5-.224-.5-.5 0-.277.224-.5.5-.5z"/><path fill="#C1694F" d="M9.995 25.542c-.273-.003-.495-.226-.495-.5 0-.276.224-.5.5-.5.602 0 1.5.399 1.5 1.5 0 .438-.143.765-.352 1 .209.235.352.562.352 1 0 1.101-.898 1.5-1.5 1.5-.273 0-.493-.22-.496-.494-.004-.273.217-.499.49-.506.231-.006.506-.098.506-.5s-.275-.494-.5-.5h-.011c-.272-.006-.489-.228-.489-.5 0-.274.222-.497.495-.5.23-.006.505-.098.505-.5 0-.403-.274-.494-.505-.5z"/><path fill="#D4AB88" d="M31 8.042c-6.626 0-12 5.373-12 12 0 6.626 5.374 12 12 12 1.787 0 3.476-.401 5-1.102V9.143c-1.524-.7-3.213-1.101-5-1.101z"/><path fill="#963B22" d="M20.667 15.042c.055.06.128.115.197.171.72.716 1.753 1.477 3.219 2.036 3.691 1.407 9.121.297 9.121.297s-.748-1.198-2.101-2.492c1.809.549 3.463 1.358 4.897 2.371v-9.25c-1.81-.904-3.843-1.426-6-1.429-6.508-.008-9.915 3.393-10.059 6.135-.176.085-.352.168-.531.265 0 0 .237.641.902 1.459.077.094.161.191.249.29.038.048.064.101.106.147z"/><path fill="#662113" d="M26 21.542c-1.411 0-1.497-1.251-1.5-1.503-.001-.274-.225-.497-.5-.497-.276 0-.5.224-.5.5 0 .864.523 2.5 2.5 2.5.276 0 .5-.224.5-.5 0-.277-.224-.5-.5-.5zm5 0c-1.411 0-1.497-1.251-1.5-1.503-.001-.274-.225-.497-.5-.497-.276 0-.5.224-.5.5 0 .864.523 2.5 2.5 2.5.276 0 .5-.224.5-.5 0-.277-.224-.5-.5-.5z"/><path fill="#C1694F" d="M26.005 25.542c.273-.003.495-.226.495-.5 0-.276-.224-.5-.5-.5-.602 0-1.5.399-1.5 1.5 0 .438.143.765.352 1-.209.235-.352.562-.352 1 0 1.101.898 1.5 1.5 1.5.273 0 .493-.22.496-.494.004-.273-.217-.499-.49-.506-.231-.006-.506-.098-.506-.5s.275-.494.5-.5h.011c.272-.006.489-.228.489-.5 0-.274-.222-.497-.495-.5-.23-.006-.505-.098-.505-.5 0-.403.274-.494.505-.5z"/><path fill="#DD2E44" d="M26.539 4.711c0-2.602-2.11-4.711-4.711-4.711C20.249 0 18.855.78 18 1.972 17.144.78 15.751 0 14.172 0c-2.601 0-4.711 2.109-4.711 4.711 0 .369.047.727.127 1.07.654 4.065 5.173 8.353 8.411 9.529 3.238-1.177 7.758-5.465 8.412-9.528.081-.344.128-.702.128-1.071z"/></svg>

After

Width:  |  Height:  |  Size: 2.7 KiB

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#F7DECE" d="M5 8.042c6.626 0 12 5.373 12 12 0 6.626-5.374 12-12 12-1.787 0-3.476-.401-5-1.102V9.143c1.524-.7 3.213-1.101 5-1.101z"/><path fill="#292F33" d="M15.333 15.042c-.055.06-.128.115-.197.171-.72.716-1.753 1.477-3.219 2.036-3.691 1.407-9.121.297-9.121.297s.748-1.198 2.101-2.492c-1.809.549-3.463 1.359-4.897 2.371v-9.25c1.81-.903 3.843-1.425 6-1.428 6.508-.008 9.915 3.393 10.059 6.135.176.085.352.168.531.265 0 0-.237.641-.902 1.459-.077.094-.161.191-.249.29-.038.047-.064.1-.106.146z"/><path fill="#662113" d="M10 21.542c1.411 0 1.497-1.251 1.5-1.503.001-.274.225-.497.5-.497.276 0 .5.224.5.5 0 .864-.523 2.5-2.5 2.5-.276 0-.5-.224-.5-.5 0-.277.224-.5.5-.5zm-5 0c1.411 0 1.497-1.251 1.5-1.503.001-.274.225-.497.5-.497.276 0 .5.224.5.5 0 .864-.523 2.5-2.5 2.5-.276 0-.5-.224-.5-.5 0-.277.224-.5.5-.5z"/><path fill="#C1694F" d="M9.995 25.542c-.273-.003-.495-.226-.495-.5 0-.276.224-.5.5-.5.602 0 1.5.399 1.5 1.5 0 .438-.143.765-.352 1 .209.235.352.562.352 1 0 1.101-.898 1.5-1.5 1.5-.273 0-.493-.22-.496-.494-.004-.273.217-.499.49-.506.231-.006.506-.098.506-.5s-.275-.494-.5-.5h-.011c-.272-.006-.489-.228-.489-.5 0-.274.222-.497.495-.5.23-.006.505-.098.505-.5 0-.403-.274-.494-.505-.5z"/><path fill="#AF7E57" d="M31 8.042c-6.626 0-12 5.373-12 12 0 6.626 5.374 12 12 12 1.787 0 3.476-.401 5-1.102V9.143c-1.524-.7-3.213-1.101-5-1.101z"/><path fill="#60352A" d="M20.667 15.042c.055.06.128.115.197.171.72.716 1.753 1.477 3.219 2.036 3.691 1.407 9.121.297 9.121.297s-.748-1.198-2.101-2.492c1.809.549 3.463 1.358 4.897 2.371v-9.25c-1.81-.904-3.843-1.426-6-1.429-6.508-.008-9.915 3.393-10.059 6.135-.176.085-.352.168-.531.265 0 0 .237.641.902 1.459.077.094.161.191.249.29.038.048.064.101.106.147z"/><path fill="#662113" d="M26 21.542c-1.411 0-1.497-1.251-1.5-1.503-.001-.274-.225-.497-.5-.497-.276 0-.5.224-.5.5 0 .864.523 2.5 2.5 2.5.276 0 .5-.224.5-.5 0-.277-.224-.5-.5-.5zm5 0c-1.411 0-1.497-1.251-1.5-1.503-.001-.274-.225-.497-.5-.497-.276 0-.5.224-.5.5 0 .864.523 2.5 2.5 2.5.276 0 .5-.224.5-.5 0-.277-.224-.5-.5-.5z"/><path fill="#915A34" d="M26.005 25.542c.273-.003.495-.226.495-.5 0-.276-.224-.5-.5-.5-.602 0-1.5.399-1.5 1.5 0 .438.143.765.352 1-.209.235-.352.562-.352 1 0 1.101.898 1.5 1.5 1.5.273 0 .493-.22.496-.494.004-.273-.217-.499-.49-.506-.231-.006-.506-.098-.506-.5s.275-.494.5-.5h.011c.272-.006.489-.228.489-.5 0-.274-.222-.497-.495-.5-.23-.006-.505-.098-.505-.5 0-.403.274-.494.505-.5z"/><path fill="#DD2E44" d="M26.539 4.711c0-2.602-2.11-4.711-4.711-4.711C20.249 0 18.855.78 18 1.972 17.144.78 15.751 0 14.172 0c-2.601 0-4.711 2.109-4.711 4.711 0 .369.047.727.127 1.07.654 4.065 5.173 8.353 8.411 9.529 3.238-1.177 7.758-5.465 8.412-9.528.081-.344.128-.702.128-1.071z"/></svg>

After

Width:  |  Height:  |  Size: 2.7 KiB

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#F7DECE" d="M5 8.042c6.626 0 12 5.373 12 12 0 6.626-5.374 12-12 12-1.787 0-3.476-.401-5-1.102V9.143c1.524-.7 3.213-1.101 5-1.101z"/><path fill="#292F33" d="M15.333 15.042c-.055.06-.128.115-.197.171-.72.716-1.753 1.477-3.219 2.036-3.691 1.407-9.121.297-9.121.297s.748-1.198 2.101-2.492c-1.809.549-3.463 1.359-4.897 2.371v-9.25c1.81-.903 3.843-1.425 6-1.428 6.508-.008 9.915 3.393 10.059 6.135.176.085.352.168.531.265 0 0-.237.641-.902 1.459-.077.094-.161.191-.249.29-.038.047-.064.1-.106.146z"/><path fill="#662113" d="M10 21.542c1.411 0 1.497-1.251 1.5-1.503.001-.274.225-.497.5-.497.276 0 .5.224.5.5 0 .864-.523 2.5-2.5 2.5-.276 0-.5-.224-.5-.5 0-.277.224-.5.5-.5zm-5 0c1.411 0 1.497-1.251 1.5-1.503.001-.274.225-.497.5-.497.276 0 .5.224.5.5 0 .864-.523 2.5-2.5 2.5-.276 0-.5-.224-.5-.5 0-.277.224-.5.5-.5z"/><path fill="#C1694F" d="M9.995 25.542c-.273-.003-.495-.226-.495-.5 0-.276.224-.5.5-.5.602 0 1.5.399 1.5 1.5 0 .438-.143.765-.352 1 .209.235.352.562.352 1 0 1.101-.898 1.5-1.5 1.5-.273 0-.493-.22-.496-.494-.004-.273.217-.499.49-.506.231-.006.506-.098.506-.5s-.275-.494-.5-.5h-.011c-.272-.006-.489-.228-.489-.5 0-.274.222-.497.495-.5.23-.006.505-.098.505-.5 0-.403-.274-.494-.505-.5z"/><path fill="#7C533E" d="M31 8.042c-6.626 0-12 5.373-12 12 0 6.626 5.374 12 12 12 1.787 0 3.476-.401 5-1.102V9.143c-1.524-.7-3.213-1.101-5-1.101z"/><path fill="#0B0200" d="M20.667 15.042c.055.06.128.115.197.171.72.716 1.753 1.477 3.219 2.036 3.691 1.407 9.121.297 9.121.297s-.748-1.198-2.101-2.492c1.809.549 3.463 1.358 4.897 2.371v-9.25c-1.81-.904-3.843-1.426-6-1.429-6.508-.008-9.915 3.393-10.059 6.135-.176.085-.352.168-.531.265 0 0 .237.641.902 1.459.077.094.161.191.249.29.038.048.064.101.106.147z"/><path d="M26 21.542c-1.411 0-1.497-1.251-1.5-1.503-.001-.274-.225-.497-.5-.497-.276 0-.5.224-.5.5 0 .864.523 2.5 2.5 2.5.276 0 .5-.224.5-.5 0-.277-.224-.5-.5-.5zm5 0c-1.411 0-1.497-1.251-1.5-1.503-.001-.274-.225-.497-.5-.497-.276 0-.5.224-.5.5 0 .864.523 2.5 2.5 2.5.276 0 .5-.224.5-.5 0-.277-.224-.5-.5-.5z"/><path fill="#3D2E24" d="M26.005 25.542c.273-.003.495-.226.495-.5 0-.276-.224-.5-.5-.5-.602 0-1.5.399-1.5 1.5 0 .438.143.765.352 1-.209.235-.352.562-.352 1 0 1.101.898 1.5 1.5 1.5.273 0 .493-.22.496-.494.004-.273-.217-.499-.49-.506-.231-.006-.506-.098-.506-.5s.275-.494.5-.5h.011c.272-.006.489-.228.489-.5 0-.274-.222-.497-.495-.5-.23-.006-.505-.098-.505-.5 0-.403.274-.494.505-.5z"/><path fill="#DD2E44" d="M26.539 4.711c0-2.602-2.11-4.711-4.711-4.711C20.249 0 18.855.78 18 1.972 17.144.78 15.751 0 14.172 0c-2.601 0-4.711 2.109-4.711 4.711 0 .369.047.727.127 1.07.654 4.065 5.173 8.353 8.411 9.529 3.238-1.177 7.758-5.465 8.412-9.528.081-.344.128-.702.128-1.071z"/></svg>

After

Width:  |  Height:  |  Size: 2.7 KiB

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#FFE51E" d="M11 11.844c-2.297-.669-3.315-3.565-3.734-5.369C6.313 7.952 4.23 10.155 0 11.28V.425C.955.154 1.959 0 3 0c6.075 0 11 4.925 11 11 0 3.009-1.211 5.733-3.168 7.719.107-.557.168-1.13.168-1.719v-5.156z"/><path fill="#F3D2A2" d="M0 28.604L2 32l3-5v-1.523c2.968-1.051 5.222-3.607 5.832-6.757.107-.558.168-1.131.168-1.72v-5.156c-2.297-.669-3.315-3.565-3.734-5.369C6.313 7.952 4.23 10.155 0 11.28v17.324z"/><path fill="#3B94D9" d="M0 28.604L2 32l3-5h6c2.209 0 4 1.791 4 4v5H0v-7.396z"/><path fill="#1C6399" d="M10 32h1v4h-1z"/><path fill="#C1694F" d="M5 22h1s-1 2-4 2c-.809 0-1.462-.151-2-.363V22h5zm-2-2.5H1c-.276 0-.5-.224-.5-.5s.224-.5.5-.5h2c.276 0 .5.224.5.5s-.224.5-.5.5z"/><path fill="#662113" d="M6 16c-.553 0-1-.448-1-1v-1c0-.552.447-1 1-1s1 .448 1 1v1c0 .552-.447 1-1 1z"/><path fill="#292F33" d="M25 11.844c2.297-.669 3.315-3.565 3.734-5.369.953 1.477 3.036 3.68 7.266 4.805V.425C35.045.154 34.041 0 33 0c-6.075 0-11 4.925-11 11 0 3.009 1.211 5.733 3.168 7.719C25.061 18.162 25 17.589 25 17v-5.156z"/><path fill="#F7DECE" d="M36 11.28c-4.23-1.125-6.313-3.328-7.266-4.804-.42 1.804-1.438 4.699-3.734 5.369V17c0 .589.061 1.162.168 1.719.61 3.15 2.863 5.706 5.832 6.757V27l3 5 2-3.396V11.28z"/><path fill="#3B94D9" d="M36 28.604L34 32l-3-5h-6c-2.209 0-4 1.791-4 4v5h15v-7.396z"/><path fill="#1C6399" d="M25 32h1v4h-1z"/><path fill="#C1694F" d="M31 22h-1s1 2 4 2c.809 0 1.462-.151 2-.363V22h-5zm2-2.5h2c.276 0 .5-.224.5-.5s-.224-.5-.5-.5h-2c-.276 0-.5.224-.5.5s.224.5.5.5z"/><path fill="#662113" d="M30 16c.553 0 1-.448 1-1v-1c0-.552-.447-1-1-1s-1 .448-1 1v1c0 .552.447 1 1 1z"/><path fill="#DD2E44" d="M26.539 4.711c0-2.602-2.11-4.711-4.711-4.711C20.249 0 18.855.78 18 1.972 17.144.78 15.751 0 14.172 0c-2.601 0-4.711 2.109-4.711 4.711 0 .369.047.727.127 1.07.654 4.065 5.173 8.353 8.411 9.529 3.238-1.177 7.758-5.465 8.412-9.528.081-.344.128-.702.128-1.071z"/></svg>

After

Width:  |  Height:  |  Size: 1.9 KiB

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#FFE51E" d="M11 11.844c-2.297-.669-3.315-3.565-3.734-5.369C6.313 7.952 4.23 10.155 0 11.28V.425C.955.154 1.959 0 3 0c6.075 0 11 4.925 11 11 0 3.009-1.211 5.733-3.168 7.719.107-.557.168-1.13.168-1.719v-5.156z"/><path fill="#F3D2A2" d="M0 28.604L2 32l3-5v-1.523c2.968-1.051 5.222-3.607 5.832-6.757.107-.558.168-1.131.168-1.72v-5.156c-2.297-.669-3.315-3.565-3.734-5.369C6.313 7.952 4.23 10.155 0 11.28v17.324z"/><path fill="#3B94D9" d="M0 28.604L2 32l3-5h6c2.209 0 4 1.791 4 4v5H0v-7.396z"/><path fill="#1C6399" d="M10 32h1v4h-1z"/><path fill="#C1694F" d="M5 22h1s-1 2-4 2c-.809 0-1.462-.151-2-.363V22h5zm-2-2.5H1c-.276 0-.5-.224-.5-.5s.224-.5.5-.5h2c.276 0 .5.224.5.5s-.224.5-.5.5z"/><path fill="#662113" d="M6 16c-.553 0-1-.448-1-1v-1c0-.552.447-1 1-1s1 .448 1 1v1c0 .552-.447 1-1 1z"/><path fill="#FFE51E" d="M25 11.844c2.297-.669 3.315-3.565 3.734-5.369.953 1.477 3.036 3.68 7.266 4.805V.425C35.045.154 34.041 0 33 0c-6.075 0-11 4.925-11 11 0 3.009 1.211 5.733 3.168 7.719C25.061 18.162 25 17.589 25 17v-5.156z"/><path fill="#F3D2A2" d="M36 11.28c-4.23-1.125-6.313-3.328-7.266-4.804-.42 1.804-1.438 4.699-3.734 5.369V17c0 .589.061 1.162.168 1.719.61 3.15 2.863 5.706 5.832 6.757V27l3 5 2-3.396V11.28z"/><path fill="#3B94D9" d="M36 28.604L34 32l-3-5h-6c-2.209 0-4 1.791-4 4v5h15v-7.396z"/><path fill="#1C6399" d="M25 32h1v4h-1z"/><path fill="#C1694F" d="M31 22h-1s1 2 4 2c.809 0 1.462-.151 2-.363V22h-5zm2-2.5h2c.276 0 .5-.224.5-.5s-.224-.5-.5-.5h-2c-.276 0-.5.224-.5.5s.224.5.5.5z"/><path fill="#662113" d="M30 16c.553 0 1-.448 1-1v-1c0-.552-.447-1-1-1s-1 .448-1 1v1c0 .552.447 1 1 1z"/><path fill="#DD2E44" d="M26.539 4.711c0-2.602-2.11-4.711-4.711-4.711C20.249 0 18.855.78 18 1.972 17.144.78 15.751 0 14.172 0c-2.601 0-4.711 2.109-4.711 4.711 0 .369.047.727.127 1.07.654 4.065 5.173 8.353 8.411 9.529 3.238-1.177 7.758-5.465 8.412-9.528.081-.344.128-.702.128-1.071z"/></svg>

After

Width:  |  Height:  |  Size: 1.9 KiB

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#FFE51E" d="M11 11.844c-2.297-.669-3.315-3.565-3.734-5.369C6.313 7.952 4.23 10.155 0 11.28V.425C.955.154 1.959 0 3 0c6.075 0 11 4.925 11 11 0 3.009-1.211 5.733-3.168 7.719.107-.557.168-1.13.168-1.719v-5.156z"/><path fill="#F3D2A2" d="M0 28.604L2 32l3-5v-1.523c2.968-1.051 5.222-3.607 5.832-6.757.107-.558.168-1.131.168-1.72v-5.156c-2.297-.669-3.315-3.565-3.734-5.369C6.313 7.952 4.23 10.155 0 11.28v17.324z"/><path fill="#3B94D9" d="M0 28.604L2 32l3-5h6c2.209 0 4 1.791 4 4v5H0v-7.396z"/><path fill="#1C6399" d="M10 32h1v4h-1z"/><path fill="#C1694F" d="M5 22h1s-1 2-4 2c-.809 0-1.462-.151-2-.363V22h5zm-2-2.5H1c-.276 0-.5-.224-.5-.5s.224-.5.5-.5h2c.276 0 .5.224.5.5s-.224.5-.5.5z"/><path fill="#662113" d="M6 16c-.553 0-1-.448-1-1v-1c0-.552.447-1 1-1s1 .448 1 1v1c0 .552-.447 1-1 1z"/><path fill="#963B22" d="M25 11.844c2.297-.669 3.315-3.565 3.734-5.369.953 1.477 3.036 3.68 7.266 4.805V.425C35.045.154 34.041 0 33 0c-6.075 0-11 4.925-11 11 0 3.009 1.211 5.733 3.168 7.719C25.061 18.162 25 17.589 25 17v-5.156z"/><path fill="#D4AB88" d="M36 11.28c-4.23-1.125-6.313-3.328-7.266-4.804-.42 1.804-1.438 4.699-3.734 5.369V17c0 .589.061 1.162.168 1.719.61 3.15 2.863 5.706 5.832 6.757V27l3 5 2-3.396V11.28z"/><path fill="#3B94D9" d="M36 28.604L34 32l-3-5h-6c-2.209 0-4 1.791-4 4v5h15v-7.396z"/><path fill="#1C6399" d="M25 32h1v4h-1z"/><path fill="#C1694F" d="M31 22h-1s1 2 4 2c.809 0 1.462-.151 2-.363V22h-5zm2-2.5h2c.276 0 .5-.224.5-.5s-.224-.5-.5-.5h-2c-.276 0-.5.224-.5.5s.224.5.5.5z"/><path fill="#662113" d="M30 16c.553 0 1-.448 1-1v-1c0-.552-.447-1-1-1s-1 .448-1 1v1c0 .552.447 1 1 1z"/><path fill="#DD2E44" d="M26.539 4.711c0-2.602-2.11-4.711-4.711-4.711C20.249 0 18.855.78 18 1.972 17.144.78 15.751 0 14.172 0c-2.601 0-4.711 2.109-4.711 4.711 0 .369.047.727.127 1.07.654 4.065 5.173 8.353 8.411 9.529 3.238-1.177 7.758-5.465 8.412-9.528.081-.344.128-.702.128-1.071z"/></svg>

After

Width:  |  Height:  |  Size: 1.9 KiB

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#FFE51E" d="M11 11.844c-2.297-.669-3.315-3.565-3.734-5.369C6.313 7.952 4.23 10.155 0 11.28V.425C.955.154 1.959 0 3 0c6.075 0 11 4.925 11 11 0 3.009-1.211 5.733-3.168 7.719.107-.557.168-1.13.168-1.719v-5.156z"/><path fill="#F3D2A2" d="M0 28.604L2 32l3-5v-1.523c2.968-1.051 5.222-3.607 5.832-6.757.107-.558.168-1.131.168-1.72v-5.156c-2.297-.669-3.315-3.565-3.734-5.369C6.313 7.952 4.23 10.155 0 11.28v17.324z"/><path fill="#3B94D9" d="M0 28.604L2 32l3-5h6c2.209 0 4 1.791 4 4v5H0v-7.396z"/><path fill="#1C6399" d="M10 32h1v4h-1z"/><path fill="#C1694F" d="M5 22h1s-1 2-4 2c-.809 0-1.462-.151-2-.363V22h5zm-2-2.5H1c-.276 0-.5-.224-.5-.5s.224-.5.5-.5h2c.276 0 .5.224.5.5s-.224.5-.5.5z"/><path fill="#662113" d="M6 16c-.553 0-1-.448-1-1v-1c0-.552.447-1 1-1s1 .448 1 1v1c0 .552-.447 1-1 1z"/><path fill="#60352A" d="M25 11.844c2.297-.669 3.315-3.565 3.734-5.369.953 1.477 3.036 3.68 7.266 4.805V.425C35.045.154 34.041 0 33 0c-6.075 0-11 4.925-11 11 0 3.009 1.211 5.733 3.168 7.719C25.061 18.162 25 17.589 25 17v-5.156z"/><path fill="#AF7E57" d="M36 11.28c-4.23-1.125-6.313-3.328-7.266-4.804-.42 1.804-1.438 4.699-3.734 5.369V17c0 .589.061 1.162.168 1.719.61 3.15 2.863 5.706 5.832 6.757V27l3 5 2-3.396V11.28z"/><path fill="#3B94D9" d="M36 28.604L34 32l-3-5h-6c-2.209 0-4 1.791-4 4v5h15v-7.396z"/><path fill="#1C6399" d="M25 32h1v4h-1z"/><path fill="#915A34" d="M31 22h-1s1 2 4 2c.809 0 1.462-.151 2-.363V22h-5zm2-2.5h2c.276 0 .5-.224.5-.5s-.224-.5-.5-.5h-2c-.276 0-.5.224-.5.5s.224.5.5.5z"/><path fill="#662113" d="M30 16c.553 0 1-.448 1-1v-1c0-.552-.447-1-1-1s-1 .448-1 1v1c0 .552.447 1 1 1z"/><path fill="#DD2E44" d="M26.539 4.711c0-2.602-2.11-4.711-4.711-4.711C20.249 0 18.855.78 18 1.972 17.144.78 15.751 0 14.172 0c-2.601 0-4.711 2.109-4.711 4.711 0 .369.047.727.127 1.07.654 4.065 5.173 8.353 8.411 9.529 3.238-1.177 7.758-5.465 8.412-9.528.081-.344.128-.702.128-1.071z"/></svg>

After

Width:  |  Height:  |  Size: 1.9 KiB

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#FFE51E" d="M11 11.844c-2.297-.669-3.315-3.565-3.734-5.369C6.313 7.952 4.23 10.155 0 11.28V.425C.955.154 1.959 0 3 0c6.075 0 11 4.925 11 11 0 3.009-1.211 5.733-3.168 7.719.107-.557.168-1.13.168-1.719v-5.156z"/><path fill="#F3D2A2" d="M0 28.604L2 32l3-5v-1.523c2.968-1.051 5.222-3.607 5.832-6.757.107-.558.168-1.131.168-1.72v-5.156c-2.297-.669-3.315-3.565-3.734-5.369C6.313 7.952 4.23 10.155 0 11.28v17.324z"/><path fill="#3B94D9" d="M0 28.604L2 32l3-5h6c2.209 0 4 1.791 4 4v5H0v-7.396z"/><path fill="#1C6399" d="M10 32h1v4h-1z"/><path fill="#C1694F" d="M5 22h1s-1 2-4 2c-.809 0-1.462-.151-2-.363V22h5zm-2-2.5H1c-.276 0-.5-.224-.5-.5s.224-.5.5-.5h2c.276 0 .5.224.5.5s-.224.5-.5.5z"/><path fill="#662113" d="M6 16c-.553 0-1-.448-1-1v-1c0-.552.447-1 1-1s1 .448 1 1v1c0 .552-.447 1-1 1z"/><path fill="#0B0200" d="M25 11.844c2.297-.669 3.315-3.565 3.734-5.369.953 1.477 3.036 3.68 7.266 4.805V.425C35.045.154 34.041 0 33 0c-6.075 0-11 4.925-11 11 0 3.009 1.211 5.733 3.168 7.719C25.061 18.162 25 17.589 25 17v-5.156z"/><path fill="#7C533E" d="M36 11.28c-4.23-1.125-6.313-3.328-7.266-4.804-.42 1.804-1.438 4.699-3.734 5.369V17c0 .589.061 1.162.168 1.719.61 3.15 2.863 5.706 5.832 6.757V27l3 5 2-3.396V11.28z"/><path fill="#3B94D9" d="M36 28.604L34 32l-3-5h-6c-2.209 0-4 1.791-4 4v5h15v-7.396z"/><path fill="#1C6399" d="M25 32h1v4h-1z"/><path fill="#3D2E24" d="M31 22h-1s1 2 4 2c.809 0 1.462-.151 2-.363V22h-5zm2-2.5h2c.276 0 .5-.224.5-.5s-.224-.5-.5-.5h-2c-.276 0-.5.224-.5.5s.224.5.5.5z"/><path d="M30 16c.553 0 1-.448 1-1v-1c0-.552-.447-1-1-1s-1 .448-1 1v1c0 .552.447 1 1 1z"/><path fill="#DD2E44" d="M26.539 4.711c0-2.602-2.11-4.711-4.711-4.711C20.249 0 18.855.78 18 1.972 17.144.78 15.751 0 14.172 0c-2.601 0-4.711 2.109-4.711 4.711 0 .369.047.727.127 1.07.654 4.065 5.173 8.353 8.411 9.529 3.238-1.177 7.758-5.465 8.412-9.528.081-.344.128-.702.128-1.071z"/></svg>

After

Width:  |  Height:  |  Size: 1.9 KiB

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#F3D2A2" d="M5 8.042c6.626 0 12 5.373 12 12 0 6.626-5.374 12-12 12-1.787 0-3.476-.401-5-1.102V9.143c1.524-.7 3.213-1.101 5-1.101z"/><path fill="#FFE51E" d="M15.333 15.042c-.055.06-.128.115-.197.171-.72.716-1.753 1.477-3.219 2.036-3.691 1.407-9.121.297-9.121.297s.748-1.198 2.101-2.492c-1.809.549-3.463 1.359-4.897 2.371v-9.25c1.81-.903 3.843-1.425 6-1.428 6.508-.008 9.915 3.393 10.059 6.135.176.085.352.168.531.265 0 0-.237.641-.902 1.459-.077.094-.161.191-.249.29-.038.047-.064.1-.106.146z"/><path fill="#662113" d="M10 21.542c1.411 0 1.497-1.251 1.5-1.503.001-.274.225-.497.5-.497.276 0 .5.224.5.5 0 .864-.523 2.5-2.5 2.5-.276 0-.5-.224-.5-.5 0-.277.224-.5.5-.5zm-5 0c1.411 0 1.497-1.251 1.5-1.503.001-.274.225-.497.5-.497.276 0 .5.224.5.5 0 .864-.523 2.5-2.5 2.5-.276 0-.5-.224-.5-.5 0-.277.224-.5.5-.5z"/><path fill="#C1694F" d="M9.995 25.542c-.273-.003-.495-.226-.495-.5 0-.276.224-.5.5-.5.602 0 1.5.399 1.5 1.5 0 .438-.143.765-.352 1 .209.235.352.562.352 1 0 1.101-.898 1.5-1.5 1.5-.273 0-.493-.22-.496-.494-.004-.273.217-.499.49-.506.231-.006.506-.098.506-.5s-.275-.494-.5-.5h-.011c-.272-.006-.489-.228-.489-.5 0-.274.222-.497.495-.5.23-.006.505-.098.505-.5 0-.403-.274-.494-.505-.5z"/><path fill="#F7DECE" d="M31 8.042c-6.626 0-12 5.373-12 12 0 6.626 5.374 12 12 12 1.787 0 3.476-.401 5-1.102V9.143c-1.524-.7-3.213-1.101-5-1.101z"/><path fill="#292F33" d="M20.667 15.042c.055.06.128.115.197.171.72.716 1.753 1.477 3.219 2.036 3.691 1.407 9.121.297 9.121.297s-.748-1.198-2.101-2.492c1.809.549 3.463 1.358 4.897 2.371v-9.25c-1.81-.904-3.843-1.426-6-1.429-6.508-.008-9.915 3.393-10.059 6.135-.176.085-.352.168-.531.265 0 0 .237.641.902 1.459.077.094.161.191.249.29.038.048.064.101.106.147z"/><path fill="#662113" d="M26 21.542c-1.411 0-1.497-1.251-1.5-1.503-.001-.274-.225-.497-.5-.497-.276 0-.5.224-.5.5 0 .864.523 2.5 2.5 2.5.276 0 .5-.224.5-.5 0-.277-.224-.5-.5-.5zm5 0c-1.411 0-1.497-1.251-1.5-1.503-.001-.274-.225-.497-.5-.497-.276 0-.5.224-.5.5 0 .864.523 2.5 2.5 2.5.276 0 .5-.224.5-.5 0-.277-.224-.5-.5-.5z"/><path fill="#C1694F" d="M26.005 25.542c.273-.003.495-.226.495-.5 0-.276-.224-.5-.5-.5-.602 0-1.5.399-1.5 1.5 0 .438.143.765.352 1-.209.235-.352.562-.352 1 0 1.101.898 1.5 1.5 1.5.273 0 .493-.22.496-.494.004-.273-.217-.499-.49-.506-.231-.006-.506-.098-.506-.5s.275-.494.5-.5h.011c.272-.006.489-.228.489-.5 0-.274-.222-.497-.495-.5-.23-.006-.505-.098-.505-.5 0-.403.274-.494.505-.5z"/><path fill="#DD2E44" d="M26.539 4.711c0-2.602-2.11-4.711-4.711-4.711C20.249 0 18.855.78 18 1.972 17.144.78 15.751 0 14.172 0c-2.601 0-4.711 2.109-4.711 4.711 0 .369.047.727.127 1.07.654 4.065 5.173 8.353 8.411 9.529 3.238-1.177 7.758-5.465 8.412-9.528.081-.344.128-.702.128-1.071z"/></svg>

After

Width:  |  Height:  |  Size: 2.7 KiB

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#F3D2A2" d="M5 8.042c6.626 0 12 5.373 12 12 0 6.626-5.374 12-12 12-1.787 0-3.476-.401-5-1.102V9.143c1.524-.7 3.213-1.101 5-1.101z"/><path fill="#FFE51E" d="M15.333 15.042c-.055.06-.128.115-.197.171-.72.716-1.753 1.477-3.219 2.036-3.691 1.407-9.121.297-9.121.297s.748-1.198 2.101-2.492c-1.809.549-3.463 1.359-4.897 2.371v-9.25c1.81-.903 3.843-1.425 6-1.428 6.508-.008 9.915 3.393 10.059 6.135.176.085.352.168.531.265 0 0-.237.641-.902 1.459-.077.094-.161.191-.249.29-.038.047-.064.1-.106.146z"/><path fill="#662113" d="M10 21.542c1.411 0 1.497-1.251 1.5-1.503.001-.274.225-.497.5-.497.276 0 .5.224.5.5 0 .864-.523 2.5-2.5 2.5-.276 0-.5-.224-.5-.5 0-.277.224-.5.5-.5zm-5 0c1.411 0 1.497-1.251 1.5-1.503.001-.274.225-.497.5-.497.276 0 .5.224.5.5 0 .864-.523 2.5-2.5 2.5-.276 0-.5-.224-.5-.5 0-.277.224-.5.5-.5z"/><path fill="#C1694F" d="M9.995 25.542c-.273-.003-.495-.226-.495-.5 0-.276.224-.5.5-.5.602 0 1.5.399 1.5 1.5 0 .438-.143.765-.352 1 .209.235.352.562.352 1 0 1.101-.898 1.5-1.5 1.5-.273 0-.493-.22-.496-.494-.004-.273.217-.499.49-.506.231-.006.506-.098.506-.5s-.275-.494-.5-.5h-.011c-.272-.006-.489-.228-.489-.5 0-.274.222-.497.495-.5.23-.006.505-.098.505-.5 0-.403-.274-.494-.505-.5z"/><path fill="#F3D2A2" d="M31 8.042c-6.626 0-12 5.373-12 12 0 6.626 5.374 12 12 12 1.787 0 3.476-.401 5-1.102V9.143c-1.524-.7-3.213-1.101-5-1.101z"/><path fill="#FFE51E" d="M20.667 15.042c.055.06.128.115.197.171.72.716 1.753 1.477 3.219 2.036 3.691 1.407 9.121.297 9.121.297s-.748-1.198-2.101-2.492c1.809.549 3.463 1.358 4.897 2.371v-9.25c-1.81-.904-3.843-1.426-6-1.429-6.508-.008-9.915 3.393-10.059 6.135-.176.085-.352.168-.531.265 0 0 .237.641.902 1.459.077.094.161.191.249.29.038.048.064.101.106.147z"/><path fill="#662113" d="M26 21.542c-1.411 0-1.497-1.251-1.5-1.503-.001-.274-.225-.497-.5-.497-.276 0-.5.224-.5.5 0 .864.523 2.5 2.5 2.5.276 0 .5-.224.5-.5 0-.277-.224-.5-.5-.5zm5 0c-1.411 0-1.497-1.251-1.5-1.503-.001-.274-.225-.497-.5-.497-.276 0-.5.224-.5.5 0 .864.523 2.5 2.5 2.5.276 0 .5-.224.5-.5 0-.277-.224-.5-.5-.5z"/><path fill="#C1694F" d="M26.005 25.542c.273-.003.495-.226.495-.5 0-.276-.224-.5-.5-.5-.602 0-1.5.399-1.5 1.5 0 .438.143.765.352 1-.209.235-.352.562-.352 1 0 1.101.898 1.5 1.5 1.5.273 0 .493-.22.496-.494.004-.273-.217-.499-.49-.506-.231-.006-.506-.098-.506-.5s.275-.494.5-.5h.011c.272-.006.489-.228.489-.5 0-.274-.222-.497-.495-.5-.23-.006-.505-.098-.505-.5 0-.403.274-.494.505-.5z"/><path fill="#DD2E44" d="M26.539 4.711c0-2.602-2.11-4.711-4.711-4.711C20.249 0 18.855.78 18 1.972 17.144.78 15.751 0 14.172 0c-2.601 0-4.711 2.109-4.711 4.711 0 .369.047.727.127 1.07.654 4.065 5.173 8.353 8.411 9.529 3.238-1.177 7.758-5.465 8.412-9.528.081-.344.128-.702.128-1.071z"/></svg>

After

Width:  |  Height:  |  Size: 2.7 KiB

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#F3D2A2" d="M5 8.042c6.626 0 12 5.373 12 12 0 6.626-5.374 12-12 12-1.787 0-3.476-.401-5-1.102V9.143c1.524-.7 3.213-1.101 5-1.101z"/><path fill="#FFE51E" d="M15.333 15.042c-.055.06-.128.115-.197.171-.72.716-1.753 1.477-3.219 2.036-3.691 1.407-9.121.297-9.121.297s.748-1.198 2.101-2.492c-1.809.549-3.463 1.359-4.897 2.371v-9.25c1.81-.903 3.843-1.425 6-1.428 6.508-.008 9.915 3.393 10.059 6.135.176.085.352.168.531.265 0 0-.237.641-.902 1.459-.077.094-.161.191-.249.29-.038.047-.064.1-.106.146z"/><path fill="#662113" d="M10 21.542c1.411 0 1.497-1.251 1.5-1.503.001-.274.225-.497.5-.497.276 0 .5.224.5.5 0 .864-.523 2.5-2.5 2.5-.276 0-.5-.224-.5-.5 0-.277.224-.5.5-.5zm-5 0c1.411 0 1.497-1.251 1.5-1.503.001-.274.225-.497.5-.497.276 0 .5.224.5.5 0 .864-.523 2.5-2.5 2.5-.276 0-.5-.224-.5-.5 0-.277.224-.5.5-.5z"/><path fill="#C1694F" d="M9.995 25.542c-.273-.003-.495-.226-.495-.5 0-.276.224-.5.5-.5.602 0 1.5.399 1.5 1.5 0 .438-.143.765-.352 1 .209.235.352.562.352 1 0 1.101-.898 1.5-1.5 1.5-.273 0-.493-.22-.496-.494-.004-.273.217-.499.49-.506.231-.006.506-.098.506-.5s-.275-.494-.5-.5h-.011c-.272-.006-.489-.228-.489-.5 0-.274.222-.497.495-.5.23-.006.505-.098.505-.5 0-.403-.274-.494-.505-.5z"/><path fill="#D4AB88" d="M31 8.042c-6.626 0-12 5.373-12 12 0 6.626 5.374 12 12 12 1.787 0 3.476-.401 5-1.102V9.143c-1.524-.7-3.213-1.101-5-1.101z"/><path fill="#963B22" d="M20.667 15.042c.055.06.128.115.197.171.72.716 1.753 1.477 3.219 2.036 3.691 1.407 9.121.297 9.121.297s-.748-1.198-2.101-2.492c1.809.549 3.463 1.358 4.897 2.371v-9.25c-1.81-.904-3.843-1.426-6-1.429-6.508-.008-9.915 3.393-10.059 6.135-.176.085-.352.168-.531.265 0 0 .237.641.902 1.459.077.094.161.191.249.29.038.048.064.101.106.147z"/><path fill="#662113" d="M26 21.542c-1.411 0-1.497-1.251-1.5-1.503-.001-.274-.225-.497-.5-.497-.276 0-.5.224-.5.5 0 .864.523 2.5 2.5 2.5.276 0 .5-.224.5-.5 0-.277-.224-.5-.5-.5zm5 0c-1.411 0-1.497-1.251-1.5-1.503-.001-.274-.225-.497-.5-.497-.276 0-.5.224-.5.5 0 .864.523 2.5 2.5 2.5.276 0 .5-.224.5-.5 0-.277-.224-.5-.5-.5z"/><path fill="#C1694F" d="M26.005 25.542c.273-.003.495-.226.495-.5 0-.276-.224-.5-.5-.5-.602 0-1.5.399-1.5 1.5 0 .438.143.765.352 1-.209.235-.352.562-.352 1 0 1.101.898 1.5 1.5 1.5.273 0 .493-.22.496-.494.004-.273-.217-.499-.49-.506-.231-.006-.506-.098-.506-.5s.275-.494.5-.5h.011c.272-.006.489-.228.489-.5 0-.274-.222-.497-.495-.5-.23-.006-.505-.098-.505-.5 0-.403.274-.494.505-.5z"/><path fill="#DD2E44" d="M26.539 4.711c0-2.602-2.11-4.711-4.711-4.711C20.249 0 18.855.78 18 1.972 17.144.78 15.751 0 14.172 0c-2.601 0-4.711 2.109-4.711 4.711 0 .369.047.727.127 1.07.654 4.065 5.173 8.353 8.411 9.529 3.238-1.177 7.758-5.465 8.412-9.528.081-.344.128-.702.128-1.071z"/></svg>

After

Width:  |  Height:  |  Size: 2.7 KiB

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#F3D2A2" d="M5 8.042c6.626 0 12 5.373 12 12 0 6.626-5.374 12-12 12-1.787 0-3.476-.401-5-1.102V9.143c1.524-.7 3.213-1.101 5-1.101z"/><path fill="#FFE51E" d="M15.333 15.042c-.055.06-.128.115-.197.171-.72.716-1.753 1.477-3.219 2.036-3.691 1.407-9.121.297-9.121.297s.748-1.198 2.101-2.492c-1.809.549-3.463 1.359-4.897 2.371v-9.25c1.81-.903 3.843-1.425 6-1.428 6.508-.008 9.915 3.393 10.059 6.135.176.085.352.168.531.265 0 0-.237.641-.902 1.459-.077.094-.161.191-.249.29-.038.047-.064.1-.106.146z"/><path fill="#662113" d="M10 21.542c1.411 0 1.497-1.251 1.5-1.503.001-.274.225-.497.5-.497.276 0 .5.224.5.5 0 .864-.523 2.5-2.5 2.5-.276 0-.5-.224-.5-.5 0-.277.224-.5.5-.5zm-5 0c1.411 0 1.497-1.251 1.5-1.503.001-.274.225-.497.5-.497.276 0 .5.224.5.5 0 .864-.523 2.5-2.5 2.5-.276 0-.5-.224-.5-.5 0-.277.224-.5.5-.5z"/><path fill="#C1694F" d="M9.995 25.542c-.273-.003-.495-.226-.495-.5 0-.276.224-.5.5-.5.602 0 1.5.399 1.5 1.5 0 .438-.143.765-.352 1 .209.235.352.562.352 1 0 1.101-.898 1.5-1.5 1.5-.273 0-.493-.22-.496-.494-.004-.273.217-.499.49-.506.231-.006.506-.098.506-.5s-.275-.494-.5-.5h-.011c-.272-.006-.489-.228-.489-.5 0-.274.222-.497.495-.5.23-.006.505-.098.505-.5 0-.403-.274-.494-.505-.5z"/><path fill="#AF7E57" d="M31 8.042c-6.626 0-12 5.373-12 12 0 6.626 5.374 12 12 12 1.787 0 3.476-.401 5-1.102V9.143c-1.524-.7-3.213-1.101-5-1.101z"/><path fill="#60352A" d="M20.667 15.042c.055.06.128.115.197.171.72.716 1.753 1.477 3.219 2.036 3.691 1.407 9.121.297 9.121.297s-.748-1.198-2.101-2.492c1.809.549 3.463 1.358 4.897 2.371v-9.25c-1.81-.904-3.843-1.426-6-1.429-6.508-.008-9.915 3.393-10.059 6.135-.176.085-.352.168-.531.265 0 0 .237.641.902 1.459.077.094.161.191.249.29.038.048.064.101.106.147z"/><path fill="#662113" d="M26 21.542c-1.411 0-1.497-1.251-1.5-1.503-.001-.274-.225-.497-.5-.497-.276 0-.5.224-.5.5 0 .864.523 2.5 2.5 2.5.276 0 .5-.224.5-.5 0-.277-.224-.5-.5-.5zm5 0c-1.411 0-1.497-1.251-1.5-1.503-.001-.274-.225-.497-.5-.497-.276 0-.5.224-.5.5 0 .864.523 2.5 2.5 2.5.276 0 .5-.224.5-.5 0-.277-.224-.5-.5-.5z"/><path fill="#915A34" d="M26.005 25.542c.273-.003.495-.226.495-.5 0-.276-.224-.5-.5-.5-.602 0-1.5.399-1.5 1.5 0 .438.143.765.352 1-.209.235-.352.562-.352 1 0 1.101.898 1.5 1.5 1.5.273 0 .493-.22.496-.494.004-.273-.217-.499-.49-.506-.231-.006-.506-.098-.506-.5s.275-.494.5-.5h.011c.272-.006.489-.228.489-.5 0-.274-.222-.497-.495-.5-.23-.006-.505-.098-.505-.5 0-.403.274-.494.505-.5z"/><path fill="#DD2E44" d="M26.539 4.711c0-2.602-2.11-4.711-4.711-4.711C20.249 0 18.855.78 18 1.972 17.144.78 15.751 0 14.172 0c-2.601 0-4.711 2.109-4.711 4.711 0 .369.047.727.127 1.07.654 4.065 5.173 8.353 8.411 9.529 3.238-1.177 7.758-5.465 8.412-9.528.081-.344.128-.702.128-1.071z"/></svg>

After

Width:  |  Height:  |  Size: 2.7 KiB

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#F3D2A2" d="M5 8.042c6.626 0 12 5.373 12 12 0 6.626-5.374 12-12 12-1.787 0-3.476-.401-5-1.102V9.143c1.524-.7 3.213-1.101 5-1.101z"/><path fill="#FFE51E" d="M15.333 15.042c-.055.06-.128.115-.197.171-.72.716-1.753 1.477-3.219 2.036-3.691 1.407-9.121.297-9.121.297s.748-1.198 2.101-2.492c-1.809.549-3.463 1.359-4.897 2.371v-9.25c1.81-.903 3.843-1.425 6-1.428 6.508-.008 9.915 3.393 10.059 6.135.176.085.352.168.531.265 0 0-.237.641-.902 1.459-.077.094-.161.191-.249.29-.038.047-.064.1-.106.146z"/><path fill="#662113" d="M10 21.542c1.411 0 1.497-1.251 1.5-1.503.001-.274.225-.497.5-.497.276 0 .5.224.5.5 0 .864-.523 2.5-2.5 2.5-.276 0-.5-.224-.5-.5 0-.277.224-.5.5-.5zm-5 0c1.411 0 1.497-1.251 1.5-1.503.001-.274.225-.497.5-.497.276 0 .5.224.5.5 0 .864-.523 2.5-2.5 2.5-.276 0-.5-.224-.5-.5 0-.277.224-.5.5-.5z"/><path fill="#C1694F" d="M9.995 25.542c-.273-.003-.495-.226-.495-.5 0-.276.224-.5.5-.5.602 0 1.5.399 1.5 1.5 0 .438-.143.765-.352 1 .209.235.352.562.352 1 0 1.101-.898 1.5-1.5 1.5-.273 0-.493-.22-.496-.494-.004-.273.217-.499.49-.506.231-.006.506-.098.506-.5s-.275-.494-.5-.5h-.011c-.272-.006-.489-.228-.489-.5 0-.274.222-.497.495-.5.23-.006.505-.098.505-.5 0-.403-.274-.494-.505-.5z"/><path fill="#7C533E" d="M31 8.042c-6.626 0-12 5.373-12 12 0 6.626 5.374 12 12 12 1.787 0 3.476-.401 5-1.102V9.143c-1.524-.7-3.213-1.101-5-1.101z"/><path fill="#0B0200" d="M20.667 15.042c.055.06.128.115.197.171.72.716 1.753 1.477 3.219 2.036 3.691 1.407 9.121.297 9.121.297s-.748-1.198-2.101-2.492c1.809.549 3.463 1.358 4.897 2.371v-9.25c-1.81-.904-3.843-1.426-6-1.429-6.508-.008-9.915 3.393-10.059 6.135-.176.085-.352.168-.531.265 0 0 .237.641.902 1.459.077.094.161.191.249.29.038.048.064.101.106.147z"/><path d="M26 21.542c-1.411 0-1.497-1.251-1.5-1.503-.001-.274-.225-.497-.5-.497-.276 0-.5.224-.5.5 0 .864.523 2.5 2.5 2.5.276 0 .5-.224.5-.5 0-.277-.224-.5-.5-.5zm5 0c-1.411 0-1.497-1.251-1.5-1.503-.001-.274-.225-.497-.5-.497-.276 0-.5.224-.5.5 0 .864.523 2.5 2.5 2.5.276 0 .5-.224.5-.5 0-.277-.224-.5-.5-.5z"/><path fill="#3D2E24" d="M26.005 25.542c.273-.003.495-.226.495-.5 0-.276-.224-.5-.5-.5-.602 0-1.5.399-1.5 1.5 0 .438.143.765.352 1-.209.235-.352.562-.352 1 0 1.101.898 1.5 1.5 1.5.273 0 .493-.22.496-.494.004-.273-.217-.499-.49-.506-.231-.006-.506-.098-.506-.5s.275-.494.5-.5h.011c.272-.006.489-.228.489-.5 0-.274-.222-.497-.495-.5-.23-.006-.505-.098-.505-.5 0-.403.274-.494.505-.5z"/><path fill="#DD2E44" d="M26.539 4.711c0-2.602-2.11-4.711-4.711-4.711C20.249 0 18.855.78 18 1.972 17.144.78 15.751 0 14.172 0c-2.601 0-4.711 2.109-4.711 4.711 0 .369.047.727.127 1.07.654 4.065 5.173 8.353 8.411 9.529 3.238-1.177 7.758-5.465 8.412-9.528.081-.344.128-.702.128-1.071z"/></svg>

After

Width:  |  Height:  |  Size: 2.7 KiB

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#963B22" d="M11 11.844c-2.297-.669-3.315-3.565-3.734-5.369C6.313 7.952 4.23 10.155 0 11.28V.425C.955.154 1.959 0 3 0c6.075 0 11 4.925 11 11 0 3.009-1.211 5.733-3.168 7.719.107-.557.168-1.13.168-1.719v-5.156z"/><path fill="#D4AB88" d="M0 28.604L2 32l3-5v-1.523c2.968-1.051 5.222-3.607 5.832-6.757.107-.558.168-1.131.168-1.72v-5.156c-2.297-.669-3.315-3.565-3.734-5.369C6.313 7.952 4.23 10.155 0 11.28v17.324z"/><path fill="#3B94D9" d="M0 28.604L2 32l3-5h6c2.209 0 4 1.791 4 4v5H0v-7.396z"/><path fill="#1C6399" d="M10 32h1v4h-1z"/><path fill="#C1694F" d="M5 22h1s-1 2-4 2c-.809 0-1.462-.151-2-.363V22h5zm-2-2.5H1c-.276 0-.5-.224-.5-.5s.224-.5.5-.5h2c.276 0 .5.224.5.5s-.224.5-.5.5z"/><path fill="#662113" d="M6 16c-.553 0-1-.448-1-1v-1c0-.552.447-1 1-1s1 .448 1 1v1c0 .552-.447 1-1 1z"/><path fill="#292F33" d="M25 11.844c2.297-.669 3.315-3.565 3.734-5.369.953 1.477 3.036 3.68 7.266 4.805V.425C35.045.154 34.041 0 33 0c-6.075 0-11 4.925-11 11 0 3.009 1.211 5.733 3.168 7.719C25.061 18.162 25 17.589 25 17v-5.156z"/><path fill="#F7DECE" d="M36 11.28c-4.23-1.125-6.313-3.328-7.266-4.804-.42 1.804-1.438 4.699-3.734 5.369V17c0 .589.061 1.162.168 1.719.61 3.15 2.863 5.706 5.832 6.757V27l3 5 2-3.396V11.28z"/><path fill="#3B94D9" d="M36 28.604L34 32l-3-5h-6c-2.209 0-4 1.791-4 4v5h15v-7.396z"/><path fill="#1C6399" d="M25 32h1v4h-1z"/><path fill="#C1694F" d="M31 22h-1s1 2 4 2c.809 0 1.462-.151 2-.363V22h-5zm2-2.5h2c.276 0 .5-.224.5-.5s-.224-.5-.5-.5h-2c-.276 0-.5.224-.5.5s.224.5.5.5z"/><path fill="#662113" d="M30 16c.553 0 1-.448 1-1v-1c0-.552-.447-1-1-1s-1 .448-1 1v1c0 .552.447 1 1 1z"/><path fill="#DD2E44" d="M26.539 4.711c0-2.602-2.11-4.711-4.711-4.711C20.249 0 18.855.78 18 1.972 17.144.78 15.751 0 14.172 0c-2.601 0-4.711 2.109-4.711 4.711 0 .369.047.727.127 1.07.654 4.065 5.173 8.353 8.411 9.529 3.238-1.177 7.758-5.465 8.412-9.528.081-.344.128-.702.128-1.071z"/></svg>

After

Width:  |  Height:  |  Size: 1.9 KiB

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#963B22" d="M11 11.844c-2.297-.669-3.315-3.565-3.734-5.369C6.313 7.952 4.23 10.155 0 11.28V.425C.955.154 1.959 0 3 0c6.075 0 11 4.925 11 11 0 3.009-1.211 5.733-3.168 7.719.107-.557.168-1.13.168-1.719v-5.156z"/><path fill="#D4AB88" d="M0 28.604L2 32l3-5v-1.523c2.968-1.051 5.222-3.607 5.832-6.757.107-.558.168-1.131.168-1.72v-5.156c-2.297-.669-3.315-3.565-3.734-5.369C6.313 7.952 4.23 10.155 0 11.28v17.324z"/><path fill="#3B94D9" d="M0 28.604L2 32l3-5h6c2.209 0 4 1.791 4 4v5H0v-7.396z"/><path fill="#1C6399" d="M10 32h1v4h-1z"/><path fill="#C1694F" d="M5 22h1s-1 2-4 2c-.809 0-1.462-.151-2-.363V22h5zm-2-2.5H1c-.276 0-.5-.224-.5-.5s.224-.5.5-.5h2c.276 0 .5.224.5.5s-.224.5-.5.5z"/><path fill="#662113" d="M6 16c-.553 0-1-.448-1-1v-1c0-.552.447-1 1-1s1 .448 1 1v1c0 .552-.447 1-1 1z"/><path fill="#FFE51E" d="M25 11.844c2.297-.669 3.315-3.565 3.734-5.369.953 1.477 3.036 3.68 7.266 4.805V.425C35.045.154 34.041 0 33 0c-6.075 0-11 4.925-11 11 0 3.009 1.211 5.733 3.168 7.719C25.061 18.162 25 17.589 25 17v-5.156z"/><path fill="#F3D2A2" d="M36 11.28c-4.23-1.125-6.313-3.328-7.266-4.804-.42 1.804-1.438 4.699-3.734 5.369V17c0 .589.061 1.162.168 1.719.61 3.15 2.863 5.706 5.832 6.757V27l3 5 2-3.396V11.28z"/><path fill="#3B94D9" d="M36 28.604L34 32l-3-5h-6c-2.209 0-4 1.791-4 4v5h15v-7.396z"/><path fill="#1C6399" d="M25 32h1v4h-1z"/><path fill="#C1694F" d="M31 22h-1s1 2 4 2c.809 0 1.462-.151 2-.363V22h-5zm2-2.5h2c.276 0 .5-.224.5-.5s-.224-.5-.5-.5h-2c-.276 0-.5.224-.5.5s.224.5.5.5z"/><path fill="#662113" d="M30 16c.553 0 1-.448 1-1v-1c0-.552-.447-1-1-1s-1 .448-1 1v1c0 .552.447 1 1 1z"/><path fill="#DD2E44" d="M26.539 4.711c0-2.602-2.11-4.711-4.711-4.711C20.249 0 18.855.78 18 1.972 17.144.78 15.751 0 14.172 0c-2.601 0-4.711 2.109-4.711 4.711 0 .369.047.727.127 1.07.654 4.065 5.173 8.353 8.411 9.529 3.238-1.177 7.758-5.465 8.412-9.528.081-.344.128-.702.128-1.071z"/></svg>

After

Width:  |  Height:  |  Size: 1.9 KiB

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#963B22" d="M11 11.844c-2.297-.669-3.315-3.565-3.734-5.369C6.313 7.952 4.23 10.155 0 11.28V.425C.955.154 1.959 0 3 0c6.075 0 11 4.925 11 11 0 3.009-1.211 5.733-3.168 7.719.107-.557.168-1.13.168-1.719v-5.156z"/><path fill="#D4AB88" d="M0 28.604L2 32l3-5v-1.523c2.968-1.051 5.222-3.607 5.832-6.757.107-.558.168-1.131.168-1.72v-5.156c-2.297-.669-3.315-3.565-3.734-5.369C6.313 7.952 4.23 10.155 0 11.28v17.324z"/><path fill="#3B94D9" d="M0 28.604L2 32l3-5h6c2.209 0 4 1.791 4 4v5H0v-7.396z"/><path fill="#1C6399" d="M10 32h1v4h-1z"/><path fill="#C1694F" d="M5 22h1s-1 2-4 2c-.809 0-1.462-.151-2-.363V22h5zm-2-2.5H1c-.276 0-.5-.224-.5-.5s.224-.5.5-.5h2c.276 0 .5.224.5.5s-.224.5-.5.5z"/><path fill="#662113" d="M6 16c-.553 0-1-.448-1-1v-1c0-.552.447-1 1-1s1 .448 1 1v1c0 .552-.447 1-1 1z"/><path fill="#963B22" d="M25 11.844c2.297-.669 3.315-3.565 3.734-5.369.953 1.477 3.036 3.68 7.266 4.805V.425C35.045.154 34.041 0 33 0c-6.075 0-11 4.925-11 11 0 3.009 1.211 5.733 3.168 7.719C25.061 18.162 25 17.589 25 17v-5.156z"/><path fill="#D4AB88" d="M36 11.28c-4.23-1.125-6.313-3.328-7.266-4.804-.42 1.804-1.438 4.699-3.734 5.369V17c0 .589.061 1.162.168 1.719.61 3.15 2.863 5.706 5.832 6.757V27l3 5 2-3.396V11.28z"/><path fill="#3B94D9" d="M36 28.604L34 32l-3-5h-6c-2.209 0-4 1.791-4 4v5h15v-7.396z"/><path fill="#1C6399" d="M25 32h1v4h-1z"/><path fill="#C1694F" d="M31 22h-1s1 2 4 2c.809 0 1.462-.151 2-.363V22h-5zm2-2.5h2c.276 0 .5-.224.5-.5s-.224-.5-.5-.5h-2c-.276 0-.5.224-.5.5s.224.5.5.5z"/><path fill="#662113" d="M30 16c.553 0 1-.448 1-1v-1c0-.552-.447-1-1-1s-1 .448-1 1v1c0 .552.447 1 1 1z"/><path fill="#DD2E44" d="M26.539 4.711c0-2.602-2.11-4.711-4.711-4.711C20.249 0 18.855.78 18 1.972 17.144.78 15.751 0 14.172 0c-2.601 0-4.711 2.109-4.711 4.711 0 .369.047.727.127 1.07.654 4.065 5.173 8.353 8.411 9.529 3.238-1.177 7.758-5.465 8.412-9.528.081-.344.128-.702.128-1.071z"/></svg>

After

Width:  |  Height:  |  Size: 1.9 KiB

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#963B22" d="M11 11.844c-2.297-.669-3.315-3.565-3.734-5.369C6.313 7.952 4.23 10.155 0 11.28V.425C.955.154 1.959 0 3 0c6.075 0 11 4.925 11 11 0 3.009-1.211 5.733-3.168 7.719.107-.557.168-1.13.168-1.719v-5.156z"/><path fill="#D4AB88" d="M0 28.604L2 32l3-5v-1.523c2.968-1.051 5.222-3.607 5.832-6.757.107-.558.168-1.131.168-1.72v-5.156c-2.297-.669-3.315-3.565-3.734-5.369C6.313 7.952 4.23 10.155 0 11.28v17.324z"/><path fill="#3B94D9" d="M0 28.604L2 32l3-5h6c2.209 0 4 1.791 4 4v5H0v-7.396z"/><path fill="#1C6399" d="M10 32h1v4h-1z"/><path fill="#C1694F" d="M5 22h1s-1 2-4 2c-.809 0-1.462-.151-2-.363V22h5zm-2-2.5H1c-.276 0-.5-.224-.5-.5s.224-.5.5-.5h2c.276 0 .5.224.5.5s-.224.5-.5.5z"/><path fill="#662113" d="M6 16c-.553 0-1-.448-1-1v-1c0-.552.447-1 1-1s1 .448 1 1v1c0 .552-.447 1-1 1z"/><path fill="#60352A" d="M25 11.844c2.297-.669 3.315-3.565 3.734-5.369.953 1.477 3.036 3.68 7.266 4.805V.425C35.045.154 34.041 0 33 0c-6.075 0-11 4.925-11 11 0 3.009 1.211 5.733 3.168 7.719C25.061 18.162 25 17.589 25 17v-5.156z"/><path fill="#AF7E57" d="M36 11.28c-4.23-1.125-6.313-3.328-7.266-4.804-.42 1.804-1.438 4.699-3.734 5.369V17c0 .589.061 1.162.168 1.719.61 3.15 2.863 5.706 5.832 6.757V27l3 5 2-3.396V11.28z"/><path fill="#3B94D9" d="M36 28.604L34 32l-3-5h-6c-2.209 0-4 1.791-4 4v5h15v-7.396z"/><path fill="#1C6399" d="M25 32h1v4h-1z"/><path fill="#915A34" d="M31 22h-1s1 2 4 2c.809 0 1.462-.151 2-.363V22h-5zm2-2.5h2c.276 0 .5-.224.5-.5s-.224-.5-.5-.5h-2c-.276 0-.5.224-.5.5s.224.5.5.5z"/><path fill="#662113" d="M30 16c.553 0 1-.448 1-1v-1c0-.552-.447-1-1-1s-1 .448-1 1v1c0 .552.447 1 1 1z"/><path fill="#DD2E44" d="M26.539 4.711c0-2.602-2.11-4.711-4.711-4.711C20.249 0 18.855.78 18 1.972 17.144.78 15.751 0 14.172 0c-2.601 0-4.711 2.109-4.711 4.711 0 .369.047.727.127 1.07.654 4.065 5.173 8.353 8.411 9.529 3.238-1.177 7.758-5.465 8.412-9.528.081-.344.128-.702.128-1.071z"/></svg>

After

Width:  |  Height:  |  Size: 1.9 KiB

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#963B22" d="M11 11.844c-2.297-.669-3.315-3.565-3.734-5.369C6.313 7.952 4.23 10.155 0 11.28V.425C.955.154 1.959 0 3 0c6.075 0 11 4.925 11 11 0 3.009-1.211 5.733-3.168 7.719.107-.557.168-1.13.168-1.719v-5.156z"/><path fill="#D4AB88" d="M0 28.604L2 32l3-5v-1.523c2.968-1.051 5.222-3.607 5.832-6.757.107-.558.168-1.131.168-1.72v-5.156c-2.297-.669-3.315-3.565-3.734-5.369C6.313 7.952 4.23 10.155 0 11.28v17.324z"/><path fill="#3B94D9" d="M0 28.604L2 32l3-5h6c2.209 0 4 1.791 4 4v5H0v-7.396z"/><path fill="#1C6399" d="M10 32h1v4h-1z"/><path fill="#C1694F" d="M5 22h1s-1 2-4 2c-.809 0-1.462-.151-2-.363V22h5zm-2-2.5H1c-.276 0-.5-.224-.5-.5s.224-.5.5-.5h2c.276 0 .5.224.5.5s-.224.5-.5.5z"/><path fill="#662113" d="M6 16c-.553 0-1-.448-1-1v-1c0-.552.447-1 1-1s1 .448 1 1v1c0 .552-.447 1-1 1z"/><path fill="#0B0200" d="M25 11.844c2.297-.669 3.315-3.565 3.734-5.369.953 1.477 3.036 3.68 7.266 4.805V.425C35.045.154 34.041 0 33 0c-6.075 0-11 4.925-11 11 0 3.009 1.211 5.733 3.168 7.719C25.061 18.162 25 17.589 25 17v-5.156z"/><path fill="#7C533E" d="M36 11.28c-4.23-1.125-6.313-3.328-7.266-4.804-.42 1.804-1.438 4.699-3.734 5.369V17c0 .589.061 1.162.168 1.719.61 3.15 2.863 5.706 5.832 6.757V27l3 5 2-3.396V11.28z"/><path fill="#3B94D9" d="M36 28.604L34 32l-3-5h-6c-2.209 0-4 1.791-4 4v5h15v-7.396z"/><path fill="#1C6399" d="M25 32h1v4h-1z"/><path fill="#3D2E24" d="M31 22h-1s1 2 4 2c.809 0 1.462-.151 2-.363V22h-5zm2-2.5h2c.276 0 .5-.224.5-.5s-.224-.5-.5-.5h-2c-.276 0-.5.224-.5.5s.224.5.5.5z"/><path d="M30 16c.553 0 1-.448 1-1v-1c0-.552-.447-1-1-1s-1 .448-1 1v1c0 .552.447 1 1 1z"/><path fill="#DD2E44" d="M26.539 4.711c0-2.602-2.11-4.711-4.711-4.711C20.249 0 18.855.78 18 1.972 17.144.78 15.751 0 14.172 0c-2.601 0-4.711 2.109-4.711 4.711 0 .369.047.727.127 1.07.654 4.065 5.173 8.353 8.411 9.529 3.238-1.177 7.758-5.465 8.412-9.528.081-.344.128-.702.128-1.071z"/></svg>

After

Width:  |  Height:  |  Size: 1.9 KiB

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#D4AB88" d="M5 8.042c6.626 0 12 5.373 12 12 0 6.626-5.374 12-12 12-1.787 0-3.476-.401-5-1.102V9.143c1.524-.7 3.213-1.101 5-1.101z"/><path fill="#963B22" d="M15.333 15.042c-.055.06-.128.115-.197.171-.72.716-1.753 1.477-3.219 2.036-3.691 1.407-9.121.297-9.121.297s.748-1.198 2.101-2.492c-1.809.549-3.463 1.359-4.897 2.371v-9.25c1.81-.903 3.843-1.425 6-1.428 6.508-.008 9.915 3.393 10.059 6.135.176.085.352.168.531.265 0 0-.237.641-.902 1.459-.077.094-.161.191-.249.29-.038.047-.064.1-.106.146z"/><path fill="#662113" d="M10 21.542c1.411 0 1.497-1.251 1.5-1.503.001-.274.225-.497.5-.497.276 0 .5.224.5.5 0 .864-.523 2.5-2.5 2.5-.276 0-.5-.224-.5-.5 0-.277.224-.5.5-.5zm-5 0c1.411 0 1.497-1.251 1.5-1.503.001-.274.225-.497.5-.497.276 0 .5.224.5.5 0 .864-.523 2.5-2.5 2.5-.276 0-.5-.224-.5-.5 0-.277.224-.5.5-.5z"/><path fill="#C1694F" d="M9.995 25.542c-.273-.003-.495-.226-.495-.5 0-.276.224-.5.5-.5.602 0 1.5.399 1.5 1.5 0 .438-.143.765-.352 1 .209.235.352.562.352 1 0 1.101-.898 1.5-1.5 1.5-.273 0-.493-.22-.496-.494-.004-.273.217-.499.49-.506.231-.006.506-.098.506-.5s-.275-.494-.5-.5h-.011c-.272-.006-.489-.228-.489-.5 0-.274.222-.497.495-.5.23-.006.505-.098.505-.5 0-.403-.274-.494-.505-.5z"/><path fill="#F7DECE" d="M31 8.042c-6.626 0-12 5.373-12 12 0 6.626 5.374 12 12 12 1.787 0 3.476-.401 5-1.102V9.143c-1.524-.7-3.213-1.101-5-1.101z"/><path fill="#292F33" d="M20.667 15.042c.055.06.128.115.197.171.72.716 1.753 1.477 3.219 2.036 3.691 1.407 9.121.297 9.121.297s-.748-1.198-2.101-2.492c1.809.549 3.463 1.358 4.897 2.371v-9.25c-1.81-.904-3.843-1.426-6-1.429-6.508-.008-9.915 3.393-10.059 6.135-.176.085-.352.168-.531.265 0 0 .237.641.902 1.459.077.094.161.191.249.29.038.048.064.101.106.147z"/><path fill="#662113" d="M26 21.542c-1.411 0-1.497-1.251-1.5-1.503-.001-.274-.225-.497-.5-.497-.276 0-.5.224-.5.5 0 .864.523 2.5 2.5 2.5.276 0 .5-.224.5-.5 0-.277-.224-.5-.5-.5zm5 0c-1.411 0-1.497-1.251-1.5-1.503-.001-.274-.225-.497-.5-.497-.276 0-.5.224-.5.5 0 .864.523 2.5 2.5 2.5.276 0 .5-.224.5-.5 0-.277-.224-.5-.5-.5z"/><path fill="#C1694F" d="M26.005 25.542c.273-.003.495-.226.495-.5 0-.276-.224-.5-.5-.5-.602 0-1.5.399-1.5 1.5 0 .438.143.765.352 1-.209.235-.352.562-.352 1 0 1.101.898 1.5 1.5 1.5.273 0 .493-.22.496-.494.004-.273-.217-.499-.49-.506-.231-.006-.506-.098-.506-.5s.275-.494.5-.5h.011c.272-.006.489-.228.489-.5 0-.274-.222-.497-.495-.5-.23-.006-.505-.098-.505-.5 0-.403.274-.494.505-.5z"/><path fill="#DD2E44" d="M26.539 4.711c0-2.602-2.11-4.711-4.711-4.711C20.249 0 18.855.78 18 1.972 17.144.78 15.751 0 14.172 0c-2.601 0-4.711 2.109-4.711 4.711 0 .369.047.727.127 1.07.654 4.065 5.173 8.353 8.411 9.529 3.238-1.177 7.758-5.465 8.412-9.528.081-.344.128-.702.128-1.071z"/></svg>

After

Width:  |  Height:  |  Size: 2.7 KiB

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#D4AB88" d="M5 8.042c6.626 0 12 5.373 12 12 0 6.626-5.374 12-12 12-1.787 0-3.476-.401-5-1.102V9.143c1.524-.7 3.213-1.101 5-1.101z"/><path fill="#963B22" d="M15.333 15.042c-.055.06-.128.115-.197.171-.72.716-1.753 1.477-3.219 2.036-3.691 1.407-9.121.297-9.121.297s.748-1.198 2.101-2.492c-1.809.549-3.463 1.359-4.897 2.371v-9.25c1.81-.903 3.843-1.425 6-1.428 6.508-.008 9.915 3.393 10.059 6.135.176.085.352.168.531.265 0 0-.237.641-.902 1.459-.077.094-.161.191-.249.29-.038.047-.064.1-.106.146z"/><path fill="#662113" d="M10 21.542c1.411 0 1.497-1.251 1.5-1.503.001-.274.225-.497.5-.497.276 0 .5.224.5.5 0 .864-.523 2.5-2.5 2.5-.276 0-.5-.224-.5-.5 0-.277.224-.5.5-.5zm-5 0c1.411 0 1.497-1.251 1.5-1.503.001-.274.225-.497.5-.497.276 0 .5.224.5.5 0 .864-.523 2.5-2.5 2.5-.276 0-.5-.224-.5-.5 0-.277.224-.5.5-.5z"/><path fill="#C1694F" d="M9.995 25.542c-.273-.003-.495-.226-.495-.5 0-.276.224-.5.5-.5.602 0 1.5.399 1.5 1.5 0 .438-.143.765-.352 1 .209.235.352.562.352 1 0 1.101-.898 1.5-1.5 1.5-.273 0-.493-.22-.496-.494-.004-.273.217-.499.49-.506.231-.006.506-.098.506-.5s-.275-.494-.5-.5h-.011c-.272-.006-.489-.228-.489-.5 0-.274.222-.497.495-.5.23-.006.505-.098.505-.5 0-.403-.274-.494-.505-.5z"/><path fill="#F3D2A2" d="M31 8.042c-6.626 0-12 5.373-12 12 0 6.626 5.374 12 12 12 1.787 0 3.476-.401 5-1.102V9.143c-1.524-.7-3.213-1.101-5-1.101z"/><path fill="#FFE51E" d="M20.667 15.042c.055.06.128.115.197.171.72.716 1.753 1.477 3.219 2.036 3.691 1.407 9.121.297 9.121.297s-.748-1.198-2.101-2.492c1.809.549 3.463 1.358 4.897 2.371v-9.25c-1.81-.904-3.843-1.426-6-1.429-6.508-.008-9.915 3.393-10.059 6.135-.176.085-.352.168-.531.265 0 0 .237.641.902 1.459.077.094.161.191.249.29.038.048.064.101.106.147z"/><path fill="#662113" d="M26 21.542c-1.411 0-1.497-1.251-1.5-1.503-.001-.274-.225-.497-.5-.497-.276 0-.5.224-.5.5 0 .864.523 2.5 2.5 2.5.276 0 .5-.224.5-.5 0-.277-.224-.5-.5-.5zm5 0c-1.411 0-1.497-1.251-1.5-1.503-.001-.274-.225-.497-.5-.497-.276 0-.5.224-.5.5 0 .864.523 2.5 2.5 2.5.276 0 .5-.224.5-.5 0-.277-.224-.5-.5-.5z"/><path fill="#C1694F" d="M26.005 25.542c.273-.003.495-.226.495-.5 0-.276-.224-.5-.5-.5-.602 0-1.5.399-1.5 1.5 0 .438.143.765.352 1-.209.235-.352.562-.352 1 0 1.101.898 1.5 1.5 1.5.273 0 .493-.22.496-.494.004-.273-.217-.499-.49-.506-.231-.006-.506-.098-.506-.5s.275-.494.5-.5h.011c.272-.006.489-.228.489-.5 0-.274-.222-.497-.495-.5-.23-.006-.505-.098-.505-.5 0-.403.274-.494.505-.5z"/><path fill="#DD2E44" d="M26.539 4.711c0-2.602-2.11-4.711-4.711-4.711C20.249 0 18.855.78 18 1.972 17.144.78 15.751 0 14.172 0c-2.601 0-4.711 2.109-4.711 4.711 0 .369.047.727.127 1.07.654 4.065 5.173 8.353 8.411 9.529 3.238-1.177 7.758-5.465 8.412-9.528.081-.344.128-.702.128-1.071z"/></svg>

After

Width:  |  Height:  |  Size: 2.7 KiB

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#D4AB88" d="M5 8.042c6.626 0 12 5.373 12 12 0 6.626-5.374 12-12 12-1.787 0-3.476-.401-5-1.102V9.143c1.524-.7 3.213-1.101 5-1.101z"/><path fill="#963B22" d="M15.333 15.042c-.055.06-.128.115-.197.171-.72.716-1.753 1.477-3.219 2.036-3.691 1.407-9.121.297-9.121.297s.748-1.198 2.101-2.492c-1.809.549-3.463 1.359-4.897 2.371v-9.25c1.81-.903 3.843-1.425 6-1.428 6.508-.008 9.915 3.393 10.059 6.135.176.085.352.168.531.265 0 0-.237.641-.902 1.459-.077.094-.161.191-.249.29-.038.047-.064.1-.106.146z"/><path fill="#662113" d="M10 21.542c1.411 0 1.497-1.251 1.5-1.503.001-.274.225-.497.5-.497.276 0 .5.224.5.5 0 .864-.523 2.5-2.5 2.5-.276 0-.5-.224-.5-.5 0-.277.224-.5.5-.5zm-5 0c1.411 0 1.497-1.251 1.5-1.503.001-.274.225-.497.5-.497.276 0 .5.224.5.5 0 .864-.523 2.5-2.5 2.5-.276 0-.5-.224-.5-.5 0-.277.224-.5.5-.5z"/><path fill="#C1694F" d="M9.995 25.542c-.273-.003-.495-.226-.495-.5 0-.276.224-.5.5-.5.602 0 1.5.399 1.5 1.5 0 .438-.143.765-.352 1 .209.235.352.562.352 1 0 1.101-.898 1.5-1.5 1.5-.273 0-.493-.22-.496-.494-.004-.273.217-.499.49-.506.231-.006.506-.098.506-.5s-.275-.494-.5-.5h-.011c-.272-.006-.489-.228-.489-.5 0-.274.222-.497.495-.5.23-.006.505-.098.505-.5 0-.403-.274-.494-.505-.5z"/><path fill="#D4AB88" d="M31 8.042c-6.626 0-12 5.373-12 12 0 6.626 5.374 12 12 12 1.787 0 3.476-.401 5-1.102V9.143c-1.524-.7-3.213-1.101-5-1.101z"/><path fill="#963B22" d="M20.667 15.042c.055.06.128.115.197.171.72.716 1.753 1.477 3.219 2.036 3.691 1.407 9.121.297 9.121.297s-.748-1.198-2.101-2.492c1.809.549 3.463 1.358 4.897 2.371v-9.25c-1.81-.904-3.843-1.426-6-1.429-6.508-.008-9.915 3.393-10.059 6.135-.176.085-.352.168-.531.265 0 0 .237.641.902 1.459.077.094.161.191.249.29.038.048.064.101.106.147z"/><path fill="#662113" d="M26 21.542c-1.411 0-1.497-1.251-1.5-1.503-.001-.274-.225-.497-.5-.497-.276 0-.5.224-.5.5 0 .864.523 2.5 2.5 2.5.276 0 .5-.224.5-.5 0-.277-.224-.5-.5-.5zm5 0c-1.411 0-1.497-1.251-1.5-1.503-.001-.274-.225-.497-.5-.497-.276 0-.5.224-.5.5 0 .864.523 2.5 2.5 2.5.276 0 .5-.224.5-.5 0-.277-.224-.5-.5-.5z"/><path fill="#C1694F" d="M26.005 25.542c.273-.003.495-.226.495-.5 0-.276-.224-.5-.5-.5-.602 0-1.5.399-1.5 1.5 0 .438.143.765.352 1-.209.235-.352.562-.352 1 0 1.101.898 1.5 1.5 1.5.273 0 .493-.22.496-.494.004-.273-.217-.499-.49-.506-.231-.006-.506-.098-.506-.5s.275-.494.5-.5h.011c.272-.006.489-.228.489-.5 0-.274-.222-.497-.495-.5-.23-.006-.505-.098-.505-.5 0-.403.274-.494.505-.5z"/><path fill="#DD2E44" d="M26.539 4.711c0-2.602-2.11-4.711-4.711-4.711C20.249 0 18.855.78 18 1.972 17.144.78 15.751 0 14.172 0c-2.601 0-4.711 2.109-4.711 4.711 0 .369.047.727.127 1.07.654 4.065 5.173 8.353 8.411 9.529 3.238-1.177 7.758-5.465 8.412-9.528.081-.344.128-.702.128-1.071z"/></svg>

After

Width:  |  Height:  |  Size: 2.7 KiB

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#D4AB88" d="M5 8.042c6.626 0 12 5.373 12 12 0 6.626-5.374 12-12 12-1.787 0-3.476-.401-5-1.102V9.143c1.524-.7 3.213-1.101 5-1.101z"/><path fill="#963B22" d="M15.333 15.042c-.055.06-.128.115-.197.171-.72.716-1.753 1.477-3.219 2.036-3.691 1.407-9.121.297-9.121.297s.748-1.198 2.101-2.492c-1.809.549-3.463 1.359-4.897 2.371v-9.25c1.81-.903 3.843-1.425 6-1.428 6.508-.008 9.915 3.393 10.059 6.135.176.085.352.168.531.265 0 0-.237.641-.902 1.459-.077.094-.161.191-.249.29-.038.047-.064.1-.106.146z"/><path fill="#662113" d="M10 21.542c1.411 0 1.497-1.251 1.5-1.503.001-.274.225-.497.5-.497.276 0 .5.224.5.5 0 .864-.523 2.5-2.5 2.5-.276 0-.5-.224-.5-.5 0-.277.224-.5.5-.5zm-5 0c1.411 0 1.497-1.251 1.5-1.503.001-.274.225-.497.5-.497.276 0 .5.224.5.5 0 .864-.523 2.5-2.5 2.5-.276 0-.5-.224-.5-.5 0-.277.224-.5.5-.5z"/><path fill="#C1694F" d="M9.995 25.542c-.273-.003-.495-.226-.495-.5 0-.276.224-.5.5-.5.602 0 1.5.399 1.5 1.5 0 .438-.143.765-.352 1 .209.235.352.562.352 1 0 1.101-.898 1.5-1.5 1.5-.273 0-.493-.22-.496-.494-.004-.273.217-.499.49-.506.231-.006.506-.098.506-.5s-.275-.494-.5-.5h-.011c-.272-.006-.489-.228-.489-.5 0-.274.222-.497.495-.5.23-.006.505-.098.505-.5 0-.403-.274-.494-.505-.5z"/><path fill="#AF7E57" d="M31 8.042c-6.626 0-12 5.373-12 12 0 6.626 5.374 12 12 12 1.787 0 3.476-.401 5-1.102V9.143c-1.524-.7-3.213-1.101-5-1.101z"/><path fill="#60352A" d="M20.667 15.042c.055.06.128.115.197.171.72.716 1.753 1.477 3.219 2.036 3.691 1.407 9.121.297 9.121.297s-.748-1.198-2.101-2.492c1.809.549 3.463 1.358 4.897 2.371v-9.25c-1.81-.904-3.843-1.426-6-1.429-6.508-.008-9.915 3.393-10.059 6.135-.176.085-.352.168-.531.265 0 0 .237.641.902 1.459.077.094.161.191.249.29.038.048.064.101.106.147z"/><path fill="#662113" d="M26 21.542c-1.411 0-1.497-1.251-1.5-1.503-.001-.274-.225-.497-.5-.497-.276 0-.5.224-.5.5 0 .864.523 2.5 2.5 2.5.276 0 .5-.224.5-.5 0-.277-.224-.5-.5-.5zm5 0c-1.411 0-1.497-1.251-1.5-1.503-.001-.274-.225-.497-.5-.497-.276 0-.5.224-.5.5 0 .864.523 2.5 2.5 2.5.276 0 .5-.224.5-.5 0-.277-.224-.5-.5-.5z"/><path fill="#915A34" d="M26.005 25.542c.273-.003.495-.226.495-.5 0-.276-.224-.5-.5-.5-.602 0-1.5.399-1.5 1.5 0 .438.143.765.352 1-.209.235-.352.562-.352 1 0 1.101.898 1.5 1.5 1.5.273 0 .493-.22.496-.494.004-.273-.217-.499-.49-.506-.231-.006-.506-.098-.506-.5s.275-.494.5-.5h.011c.272-.006.489-.228.489-.5 0-.274-.222-.497-.495-.5-.23-.006-.505-.098-.505-.5 0-.403.274-.494.505-.5z"/><path fill="#DD2E44" d="M26.539 4.711c0-2.602-2.11-4.711-4.711-4.711C20.249 0 18.855.78 18 1.972 17.144.78 15.751 0 14.172 0c-2.601 0-4.711 2.109-4.711 4.711 0 .369.047.727.127 1.07.654 4.065 5.173 8.353 8.411 9.529 3.238-1.177 7.758-5.465 8.412-9.528.081-.344.128-.702.128-1.071z"/></svg>

After

Width:  |  Height:  |  Size: 2.7 KiB

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#D4AB88" d="M5 8.042c6.626 0 12 5.373 12 12 0 6.626-5.374 12-12 12-1.787 0-3.476-.401-5-1.102V9.143c1.524-.7 3.213-1.101 5-1.101z"/><path fill="#963B22" d="M15.333 15.042c-.055.06-.128.115-.197.171-.72.716-1.753 1.477-3.219 2.036-3.691 1.407-9.121.297-9.121.297s.748-1.198 2.101-2.492c-1.809.549-3.463 1.359-4.897 2.371v-9.25c1.81-.903 3.843-1.425 6-1.428 6.508-.008 9.915 3.393 10.059 6.135.176.085.352.168.531.265 0 0-.237.641-.902 1.459-.077.094-.161.191-.249.29-.038.047-.064.1-.106.146z"/><path fill="#662113" d="M10 21.542c1.411 0 1.497-1.251 1.5-1.503.001-.274.225-.497.5-.497.276 0 .5.224.5.5 0 .864-.523 2.5-2.5 2.5-.276 0-.5-.224-.5-.5 0-.277.224-.5.5-.5zm-5 0c1.411 0 1.497-1.251 1.5-1.503.001-.274.225-.497.5-.497.276 0 .5.224.5.5 0 .864-.523 2.5-2.5 2.5-.276 0-.5-.224-.5-.5 0-.277.224-.5.5-.5z"/><path fill="#C1694F" d="M9.995 25.542c-.273-.003-.495-.226-.495-.5 0-.276.224-.5.5-.5.602 0 1.5.399 1.5 1.5 0 .438-.143.765-.352 1 .209.235.352.562.352 1 0 1.101-.898 1.5-1.5 1.5-.273 0-.493-.22-.496-.494-.004-.273.217-.499.49-.506.231-.006.506-.098.506-.5s-.275-.494-.5-.5h-.011c-.272-.006-.489-.228-.489-.5 0-.274.222-.497.495-.5.23-.006.505-.098.505-.5 0-.403-.274-.494-.505-.5z"/><path fill="#7C533E" d="M31 8.042c-6.626 0-12 5.373-12 12 0 6.626 5.374 12 12 12 1.787 0 3.476-.401 5-1.102V9.143c-1.524-.7-3.213-1.101-5-1.101z"/><path fill="#0B0200" d="M20.667 15.042c.055.06.128.115.197.171.72.716 1.753 1.477 3.219 2.036 3.691 1.407 9.121.297 9.121.297s-.748-1.198-2.101-2.492c1.809.549 3.463 1.358 4.897 2.371v-9.25c-1.81-.904-3.843-1.426-6-1.429-6.508-.008-9.915 3.393-10.059 6.135-.176.085-.352.168-.531.265 0 0 .237.641.902 1.459.077.094.161.191.249.29.038.048.064.101.106.147z"/><path d="M26 21.542c-1.411 0-1.497-1.251-1.5-1.503-.001-.274-.225-.497-.5-.497-.276 0-.5.224-.5.5 0 .864.523 2.5 2.5 2.5.276 0 .5-.224.5-.5 0-.277-.224-.5-.5-.5zm5 0c-1.411 0-1.497-1.251-1.5-1.503-.001-.274-.225-.497-.5-.497-.276 0-.5.224-.5.5 0 .864.523 2.5 2.5 2.5.276 0 .5-.224.5-.5 0-.277-.224-.5-.5-.5z"/><path fill="#3D2E24" d="M26.005 25.542c.273-.003.495-.226.495-.5 0-.276-.224-.5-.5-.5-.602 0-1.5.399-1.5 1.5 0 .438.143.765.352 1-.209.235-.352.562-.352 1 0 1.101.898 1.5 1.5 1.5.273 0 .493-.22.496-.494.004-.273-.217-.499-.49-.506-.231-.006-.506-.098-.506-.5s.275-.494.5-.5h.011c.272-.006.489-.228.489-.5 0-.274-.222-.497-.495-.5-.23-.006-.505-.098-.505-.5 0-.403.274-.494.505-.5z"/><path fill="#DD2E44" d="M26.539 4.711c0-2.602-2.11-4.711-4.711-4.711C20.249 0 18.855.78 18 1.972 17.144.78 15.751 0 14.172 0c-2.601 0-4.711 2.109-4.711 4.711 0 .369.047.727.127 1.07.654 4.065 5.173 8.353 8.411 9.529 3.238-1.177 7.758-5.465 8.412-9.528.081-.344.128-.702.128-1.071z"/></svg>

After

Width:  |  Height:  |  Size: 2.7 KiB

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#60352A" d="M11 11.844c-2.297-.669-3.315-3.565-3.734-5.369C6.313 7.952 4.23 10.155 0 11.28V.425C.955.154 1.959 0 3 0c6.075 0 11 4.925 11 11 0 3.009-1.211 5.733-3.168 7.719.107-.557.168-1.13.168-1.719v-5.156z"/><path fill="#AF7E57" d="M0 28.604L2 32l3-5v-1.523c2.968-1.051 5.222-3.607 5.832-6.757.107-.558.168-1.131.168-1.72v-5.156c-2.297-.669-3.315-3.565-3.734-5.369C6.313 7.952 4.23 10.155 0 11.28v17.324z"/><path fill="#3B94D9" d="M0 28.604L2 32l3-5h6c2.209 0 4 1.791 4 4v5H0v-7.396z"/><path fill="#1C6399" d="M10 32h1v4h-1z"/><path fill="#915A34" d="M5 22h1s-1 2-4 2c-.809 0-1.462-.151-2-.363V22h5zm-2-2.5H1c-.276 0-.5-.224-.5-.5s.224-.5.5-.5h2c.276 0 .5.224.5.5s-.224.5-.5.5z"/><path fill="#662113" d="M6 16c-.553 0-1-.448-1-1v-1c0-.552.447-1 1-1s1 .448 1 1v1c0 .552-.447 1-1 1z"/><path fill="#292F33" d="M25 11.844c2.297-.669 3.315-3.565 3.734-5.369.953 1.477 3.036 3.68 7.266 4.805V.425C35.045.154 34.041 0 33 0c-6.075 0-11 4.925-11 11 0 3.009 1.211 5.733 3.168 7.719C25.061 18.162 25 17.589 25 17v-5.156z"/><path fill="#F7DECE" d="M36 11.28c-4.23-1.125-6.313-3.328-7.266-4.804-.42 1.804-1.438 4.699-3.734 5.369V17c0 .589.061 1.162.168 1.719.61 3.15 2.863 5.706 5.832 6.757V27l3 5 2-3.396V11.28z"/><path fill="#3B94D9" d="M36 28.604L34 32l-3-5h-6c-2.209 0-4 1.791-4 4v5h15v-7.396z"/><path fill="#1C6399" d="M25 32h1v4h-1z"/><path fill="#C1694F" d="M31 22h-1s1 2 4 2c.809 0 1.462-.151 2-.363V22h-5zm2-2.5h2c.276 0 .5-.224.5-.5s-.224-.5-.5-.5h-2c-.276 0-.5.224-.5.5s.224.5.5.5z"/><path fill="#662113" d="M30 16c.553 0 1-.448 1-1v-1c0-.552-.447-1-1-1s-1 .448-1 1v1c0 .552.447 1 1 1z"/><path fill="#DD2E44" d="M26.539 4.711c0-2.602-2.11-4.711-4.711-4.711C20.249 0 18.855.78 18 1.972 17.144.78 15.751 0 14.172 0c-2.601 0-4.711 2.109-4.711 4.711 0 .369.047.727.127 1.07.654 4.065 5.173 8.353 8.411 9.529 3.238-1.177 7.758-5.465 8.412-9.528.081-.344.128-.702.128-1.071z"/></svg>

After

Width:  |  Height:  |  Size: 1.9 KiB

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#60352A" d="M11 11.844c-2.297-.669-3.315-3.565-3.734-5.369C6.313 7.952 4.23 10.155 0 11.28V.425C.955.154 1.959 0 3 0c6.075 0 11 4.925 11 11 0 3.009-1.211 5.733-3.168 7.719.107-.557.168-1.13.168-1.719v-5.156z"/><path fill="#AF7E57" d="M0 28.604L2 32l3-5v-1.523c2.968-1.051 5.222-3.607 5.832-6.757.107-.558.168-1.131.168-1.72v-5.156c-2.297-.669-3.315-3.565-3.734-5.369C6.313 7.952 4.23 10.155 0 11.28v17.324z"/><path fill="#3B94D9" d="M0 28.604L2 32l3-5h6c2.209 0 4 1.791 4 4v5H0v-7.396z"/><path fill="#1C6399" d="M10 32h1v4h-1z"/><path fill="#915A34" d="M5 22h1s-1 2-4 2c-.809 0-1.462-.151-2-.363V22h5zm-2-2.5H1c-.276 0-.5-.224-.5-.5s.224-.5.5-.5h2c.276 0 .5.224.5.5s-.224.5-.5.5z"/><path fill="#662113" d="M6 16c-.553 0-1-.448-1-1v-1c0-.552.447-1 1-1s1 .448 1 1v1c0 .552-.447 1-1 1z"/><path fill="#FFE51E" d="M25 11.844c2.297-.669 3.315-3.565 3.734-5.369.953 1.477 3.036 3.68 7.266 4.805V.425C35.045.154 34.041 0 33 0c-6.075 0-11 4.925-11 11 0 3.009 1.211 5.733 3.168 7.719C25.061 18.162 25 17.589 25 17v-5.156z"/><path fill="#F3D2A2" d="M36 11.28c-4.23-1.125-6.313-3.328-7.266-4.804-.42 1.804-1.438 4.699-3.734 5.369V17c0 .589.061 1.162.168 1.719.61 3.15 2.863 5.706 5.832 6.757V27l3 5 2-3.396V11.28z"/><path fill="#3B94D9" d="M36 28.604L34 32l-3-5h-6c-2.209 0-4 1.791-4 4v5h15v-7.396z"/><path fill="#1C6399" d="M25 32h1v4h-1z"/><path fill="#C1694F" d="M31 22h-1s1 2 4 2c.809 0 1.462-.151 2-.363V22h-5zm2-2.5h2c.276 0 .5-.224.5-.5s-.224-.5-.5-.5h-2c-.276 0-.5.224-.5.5s.224.5.5.5z"/><path fill="#662113" d="M30 16c.553 0 1-.448 1-1v-1c0-.552-.447-1-1-1s-1 .448-1 1v1c0 .552.447 1 1 1z"/><path fill="#DD2E44" d="M26.539 4.711c0-2.602-2.11-4.711-4.711-4.711C20.249 0 18.855.78 18 1.972 17.144.78 15.751 0 14.172 0c-2.601 0-4.711 2.109-4.711 4.711 0 .369.047.727.127 1.07.654 4.065 5.173 8.353 8.411 9.529 3.238-1.177 7.758-5.465 8.412-9.528.081-.344.128-.702.128-1.071z"/></svg>

After

Width:  |  Height:  |  Size: 1.9 KiB

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#60352A" d="M11 11.844c-2.297-.669-3.315-3.565-3.734-5.369C6.313 7.952 4.23 10.155 0 11.28V.425C.955.154 1.959 0 3 0c6.075 0 11 4.925 11 11 0 3.009-1.211 5.733-3.168 7.719.107-.557.168-1.13.168-1.719v-5.156z"/><path fill="#AF7E57" d="M0 28.604L2 32l3-5v-1.523c2.968-1.051 5.222-3.607 5.832-6.757.107-.558.168-1.131.168-1.72v-5.156c-2.297-.669-3.315-3.565-3.734-5.369C6.313 7.952 4.23 10.155 0 11.28v17.324z"/><path fill="#3B94D9" d="M0 28.604L2 32l3-5h6c2.209 0 4 1.791 4 4v5H0v-7.396z"/><path fill="#1C6399" d="M10 32h1v4h-1z"/><path fill="#915A34" d="M5 22h1s-1 2-4 2c-.809 0-1.462-.151-2-.363V22h5zm-2-2.5H1c-.276 0-.5-.224-.5-.5s.224-.5.5-.5h2c.276 0 .5.224.5.5s-.224.5-.5.5z"/><path fill="#662113" d="M6 16c-.553 0-1-.448-1-1v-1c0-.552.447-1 1-1s1 .448 1 1v1c0 .552-.447 1-1 1z"/><path fill="#963B22" d="M25 11.844c2.297-.669 3.315-3.565 3.734-5.369.953 1.477 3.036 3.68 7.266 4.805V.425C35.045.154 34.041 0 33 0c-6.075 0-11 4.925-11 11 0 3.009 1.211 5.733 3.168 7.719C25.061 18.162 25 17.589 25 17v-5.156z"/><path fill="#D4AB88" d="M36 11.28c-4.23-1.125-6.313-3.328-7.266-4.804-.42 1.804-1.438 4.699-3.734 5.369V17c0 .589.061 1.162.168 1.719.61 3.15 2.863 5.706 5.832 6.757V27l3 5 2-3.396V11.28z"/><path fill="#3B94D9" d="M36 28.604L34 32l-3-5h-6c-2.209 0-4 1.791-4 4v5h15v-7.396z"/><path fill="#1C6399" d="M25 32h1v4h-1z"/><path fill="#C1694F" d="M31 22h-1s1 2 4 2c.809 0 1.462-.151 2-.363V22h-5zm2-2.5h2c.276 0 .5-.224.5-.5s-.224-.5-.5-.5h-2c-.276 0-.5.224-.5.5s.224.5.5.5z"/><path fill="#662113" d="M30 16c.553 0 1-.448 1-1v-1c0-.552-.447-1-1-1s-1 .448-1 1v1c0 .552.447 1 1 1z"/><path fill="#DD2E44" d="M26.539 4.711c0-2.602-2.11-4.711-4.711-4.711C20.249 0 18.855.78 18 1.972 17.144.78 15.751 0 14.172 0c-2.601 0-4.711 2.109-4.711 4.711 0 .369.047.727.127 1.07.654 4.065 5.173 8.353 8.411 9.529 3.238-1.177 7.758-5.465 8.412-9.528.081-.344.128-.702.128-1.071z"/></svg>

After

Width:  |  Height:  |  Size: 1.9 KiB

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#60352A" d="M11 11.844c-2.297-.669-3.315-3.565-3.734-5.369C6.313 7.952 4.23 10.155 0 11.28V.425C.955.154 1.959 0 3 0c6.075 0 11 4.925 11 11 0 3.009-1.211 5.733-3.168 7.719.107-.557.168-1.13.168-1.719v-5.156z"/><path fill="#AF7E57" d="M0 28.604L2 32l3-5v-1.523c2.968-1.051 5.222-3.607 5.832-6.757.107-.558.168-1.131.168-1.72v-5.156c-2.297-.669-3.315-3.565-3.734-5.369C6.313 7.952 4.23 10.155 0 11.28v17.324z"/><path fill="#3B94D9" d="M0 28.604L2 32l3-5h6c2.209 0 4 1.791 4 4v5H0v-7.396z"/><path fill="#1C6399" d="M10 32h1v4h-1z"/><path fill="#915A34" d="M5 22h1s-1 2-4 2c-.809 0-1.462-.151-2-.363V22h5zm-2-2.5H1c-.276 0-.5-.224-.5-.5s.224-.5.5-.5h2c.276 0 .5.224.5.5s-.224.5-.5.5z"/><path fill="#662113" d="M6 16c-.553 0-1-.448-1-1v-1c0-.552.447-1 1-1s1 .448 1 1v1c0 .552-.447 1-1 1z"/><path fill="#60352A" d="M25 11.844c2.297-.669 3.315-3.565 3.734-5.369.953 1.477 3.036 3.68 7.266 4.805V.425C35.045.154 34.041 0 33 0c-6.075 0-11 4.925-11 11 0 3.009 1.211 5.733 3.168 7.719C25.061 18.162 25 17.589 25 17v-5.156z"/><path fill="#AF7E57" d="M36 11.28c-4.23-1.125-6.313-3.328-7.266-4.804-.42 1.804-1.438 4.699-3.734 5.369V17c0 .589.061 1.162.168 1.719.61 3.15 2.863 5.706 5.832 6.757V27l3 5 2-3.396V11.28z"/><path fill="#3B94D9" d="M36 28.604L34 32l-3-5h-6c-2.209 0-4 1.791-4 4v5h15v-7.396z"/><path fill="#1C6399" d="M25 32h1v4h-1z"/><path fill="#915A34" d="M31 22h-1s1 2 4 2c.809 0 1.462-.151 2-.363V22h-5zm2-2.5h2c.276 0 .5-.224.5-.5s-.224-.5-.5-.5h-2c-.276 0-.5.224-.5.5s.224.5.5.5z"/><path fill="#662113" d="M30 16c.553 0 1-.448 1-1v-1c0-.552-.447-1-1-1s-1 .448-1 1v1c0 .552.447 1 1 1z"/><path fill="#DD2E44" d="M26.539 4.711c0-2.602-2.11-4.711-4.711-4.711C20.249 0 18.855.78 18 1.972 17.144.78 15.751 0 14.172 0c-2.601 0-4.711 2.109-4.711 4.711 0 .369.047.727.127 1.07.654 4.065 5.173 8.353 8.411 9.529 3.238-1.177 7.758-5.465 8.412-9.528.081-.344.128-.702.128-1.071z"/></svg>

After

Width:  |  Height:  |  Size: 1.9 KiB

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#60352A" d="M11 11.844c-2.297-.669-3.315-3.565-3.734-5.369C6.313 7.952 4.23 10.155 0 11.28V.425C.955.154 1.959 0 3 0c6.075 0 11 4.925 11 11 0 3.009-1.211 5.733-3.168 7.719.107-.557.168-1.13.168-1.719v-5.156z"/><path fill="#AF7E57" d="M0 28.604L2 32l3-5v-1.523c2.968-1.051 5.222-3.607 5.832-6.757.107-.558.168-1.131.168-1.72v-5.156c-2.297-.669-3.315-3.565-3.734-5.369C6.313 7.952 4.23 10.155 0 11.28v17.324z"/><path fill="#3B94D9" d="M0 28.604L2 32l3-5h6c2.209 0 4 1.791 4 4v5H0v-7.396z"/><path fill="#1C6399" d="M10 32h1v4h-1z"/><path fill="#915A34" d="M5 22h1s-1 2-4 2c-.809 0-1.462-.151-2-.363V22h5zm-2-2.5H1c-.276 0-.5-.224-.5-.5s.224-.5.5-.5h2c.276 0 .5.224.5.5s-.224.5-.5.5z"/><path fill="#662113" d="M6 16c-.553 0-1-.448-1-1v-1c0-.552.447-1 1-1s1 .448 1 1v1c0 .552-.447 1-1 1z"/><path fill="#0B0200" d="M25 11.844c2.297-.669 3.315-3.565 3.734-5.369.953 1.477 3.036 3.68 7.266 4.805V.425C35.045.154 34.041 0 33 0c-6.075 0-11 4.925-11 11 0 3.009 1.211 5.733 3.168 7.719C25.061 18.162 25 17.589 25 17v-5.156z"/><path fill="#7C533E" d="M36 11.28c-4.23-1.125-6.313-3.328-7.266-4.804-.42 1.804-1.438 4.699-3.734 5.369V17c0 .589.061 1.162.168 1.719.61 3.15 2.863 5.706 5.832 6.757V27l3 5 2-3.396V11.28z"/><path fill="#3B94D9" d="M36 28.604L34 32l-3-5h-6c-2.209 0-4 1.791-4 4v5h15v-7.396z"/><path fill="#1C6399" d="M25 32h1v4h-1z"/><path fill="#3D2E24" d="M31 22h-1s1 2 4 2c.809 0 1.462-.151 2-.363V22h-5zm2-2.5h2c.276 0 .5-.224.5-.5s-.224-.5-.5-.5h-2c-.276 0-.5.224-.5.5s.224.5.5.5z"/><path d="M30 16c.553 0 1-.448 1-1v-1c0-.552-.447-1-1-1s-1 .448-1 1v1c0 .552.447 1 1 1z"/><path fill="#DD2E44" d="M26.539 4.711c0-2.602-2.11-4.711-4.711-4.711C20.249 0 18.855.78 18 1.972 17.144.78 15.751 0 14.172 0c-2.601 0-4.711 2.109-4.711 4.711 0 .369.047.727.127 1.07.654 4.065 5.173 8.353 8.411 9.529 3.238-1.177 7.758-5.465 8.412-9.528.081-.344.128-.702.128-1.071z"/></svg>

After

Width:  |  Height:  |  Size: 1.9 KiB

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#AF7E57" d="M5 8.042c6.626 0 12 5.373 12 12 0 6.626-5.374 12-12 12-1.787 0-3.476-.401-5-1.102V9.143c1.524-.7 3.213-1.101 5-1.101z"/><path fill="#60352A" d="M15.333 15.042c-.055.06-.128.115-.197.171-.72.716-1.753 1.477-3.219 2.036-3.691 1.407-9.121.297-9.121.297s.748-1.198 2.101-2.492c-1.809.549-3.463 1.359-4.897 2.371v-9.25c1.81-.903 3.843-1.425 6-1.428 6.508-.008 9.915 3.393 10.059 6.135.176.085.352.168.531.265 0 0-.237.641-.902 1.459-.077.094-.161.191-.249.29-.038.047-.064.1-.106.146z"/><path fill="#662113" d="M10 21.542c1.411 0 1.497-1.251 1.5-1.503.001-.274.225-.497.5-.497.276 0 .5.224.5.5 0 .864-.523 2.5-2.5 2.5-.276 0-.5-.224-.5-.5 0-.277.224-.5.5-.5zm-5 0c1.411 0 1.497-1.251 1.5-1.503.001-.274.225-.497.5-.497.276 0 .5.224.5.5 0 .864-.523 2.5-2.5 2.5-.276 0-.5-.224-.5-.5 0-.277.224-.5.5-.5z"/><path fill="#915A34" d="M9.995 25.542c-.273-.003-.495-.226-.495-.5 0-.276.224-.5.5-.5.602 0 1.5.399 1.5 1.5 0 .438-.143.765-.352 1 .209.235.352.562.352 1 0 1.101-.898 1.5-1.5 1.5-.273 0-.493-.22-.496-.494-.004-.273.217-.499.49-.506.231-.006.506-.098.506-.5s-.275-.494-.5-.5h-.011c-.272-.006-.489-.228-.489-.5 0-.274.222-.497.495-.5.23-.006.505-.098.505-.5 0-.403-.274-.494-.505-.5z"/><path fill="#F7DECE" d="M31 8.042c-6.626 0-12 5.373-12 12 0 6.626 5.374 12 12 12 1.787 0 3.476-.401 5-1.102V9.143c-1.524-.7-3.213-1.101-5-1.101z"/><path fill="#292F33" d="M20.667 15.042c.055.06.128.115.197.171.72.716 1.753 1.477 3.219 2.036 3.691 1.407 9.121.297 9.121.297s-.748-1.198-2.101-2.492c1.809.549 3.463 1.358 4.897 2.371v-9.25c-1.81-.904-3.843-1.426-6-1.429-6.508-.008-9.915 3.393-10.059 6.135-.176.085-.352.168-.531.265 0 0 .237.641.902 1.459.077.094.161.191.249.29.038.048.064.101.106.147z"/><path fill="#662113" d="M26 21.542c-1.411 0-1.497-1.251-1.5-1.503-.001-.274-.225-.497-.5-.497-.276 0-.5.224-.5.5 0 .864.523 2.5 2.5 2.5.276 0 .5-.224.5-.5 0-.277-.224-.5-.5-.5zm5 0c-1.411 0-1.497-1.251-1.5-1.503-.001-.274-.225-.497-.5-.497-.276 0-.5.224-.5.5 0 .864.523 2.5 2.5 2.5.276 0 .5-.224.5-.5 0-.277-.224-.5-.5-.5z"/><path fill="#C1694F" d="M26.005 25.542c.273-.003.495-.226.495-.5 0-.276-.224-.5-.5-.5-.602 0-1.5.399-1.5 1.5 0 .438.143.765.352 1-.209.235-.352.562-.352 1 0 1.101.898 1.5 1.5 1.5.273 0 .493-.22.496-.494.004-.273-.217-.499-.49-.506-.231-.006-.506-.098-.506-.5s.275-.494.5-.5h.011c.272-.006.489-.228.489-.5 0-.274-.222-.497-.495-.5-.23-.006-.505-.098-.505-.5 0-.403.274-.494.505-.5z"/><path fill="#DD2E44" d="M26.539 4.711c0-2.602-2.11-4.711-4.711-4.711C20.249 0 18.855.78 18 1.972 17.144.78 15.751 0 14.172 0c-2.601 0-4.711 2.109-4.711 4.711 0 .369.047.727.127 1.07.654 4.065 5.173 8.353 8.411 9.529 3.238-1.177 7.758-5.465 8.412-9.528.081-.344.128-.702.128-1.071z"/></svg>

After

Width:  |  Height:  |  Size: 2.7 KiB

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#AF7E57" d="M5 8.042c6.626 0 12 5.373 12 12 0 6.626-5.374 12-12 12-1.787 0-3.476-.401-5-1.102V9.143c1.524-.7 3.213-1.101 5-1.101z"/><path fill="#60352A" d="M15.333 15.042c-.055.06-.128.115-.197.171-.72.716-1.753 1.477-3.219 2.036-3.691 1.407-9.121.297-9.121.297s.748-1.198 2.101-2.492c-1.809.549-3.463 1.359-4.897 2.371v-9.25c1.81-.903 3.843-1.425 6-1.428 6.508-.008 9.915 3.393 10.059 6.135.176.085.352.168.531.265 0 0-.237.641-.902 1.459-.077.094-.161.191-.249.29-.038.047-.064.1-.106.146z"/><path fill="#662113" d="M10 21.542c1.411 0 1.497-1.251 1.5-1.503.001-.274.225-.497.5-.497.276 0 .5.224.5.5 0 .864-.523 2.5-2.5 2.5-.276 0-.5-.224-.5-.5 0-.277.224-.5.5-.5zm-5 0c1.411 0 1.497-1.251 1.5-1.503.001-.274.225-.497.5-.497.276 0 .5.224.5.5 0 .864-.523 2.5-2.5 2.5-.276 0-.5-.224-.5-.5 0-.277.224-.5.5-.5z"/><path fill="#915A34" d="M9.995 25.542c-.273-.003-.495-.226-.495-.5 0-.276.224-.5.5-.5.602 0 1.5.399 1.5 1.5 0 .438-.143.765-.352 1 .209.235.352.562.352 1 0 1.101-.898 1.5-1.5 1.5-.273 0-.493-.22-.496-.494-.004-.273.217-.499.49-.506.231-.006.506-.098.506-.5s-.275-.494-.5-.5h-.011c-.272-.006-.489-.228-.489-.5 0-.274.222-.497.495-.5.23-.006.505-.098.505-.5 0-.403-.274-.494-.505-.5z"/><path fill="#F3D2A2" d="M31 8.042c-6.626 0-12 5.373-12 12 0 6.626 5.374 12 12 12 1.787 0 3.476-.401 5-1.102V9.143c-1.524-.7-3.213-1.101-5-1.101z"/><path fill="#FFE51E" d="M20.667 15.042c.055.06.128.115.197.171.72.716 1.753 1.477 3.219 2.036 3.691 1.407 9.121.297 9.121.297s-.748-1.198-2.101-2.492c1.809.549 3.463 1.358 4.897 2.371v-9.25c-1.81-.904-3.843-1.426-6-1.429-6.508-.008-9.915 3.393-10.059 6.135-.176.085-.352.168-.531.265 0 0 .237.641.902 1.459.077.094.161.191.249.29.038.048.064.101.106.147z"/><path fill="#662113" d="M26 21.542c-1.411 0-1.497-1.251-1.5-1.503-.001-.274-.225-.497-.5-.497-.276 0-.5.224-.5.5 0 .864.523 2.5 2.5 2.5.276 0 .5-.224.5-.5 0-.277-.224-.5-.5-.5zm5 0c-1.411 0-1.497-1.251-1.5-1.503-.001-.274-.225-.497-.5-.497-.276 0-.5.224-.5.5 0 .864.523 2.5 2.5 2.5.276 0 .5-.224.5-.5 0-.277-.224-.5-.5-.5z"/><path fill="#C1694F" d="M26.005 25.542c.273-.003.495-.226.495-.5 0-.276-.224-.5-.5-.5-.602 0-1.5.399-1.5 1.5 0 .438.143.765.352 1-.209.235-.352.562-.352 1 0 1.101.898 1.5 1.5 1.5.273 0 .493-.22.496-.494.004-.273-.217-.499-.49-.506-.231-.006-.506-.098-.506-.5s.275-.494.5-.5h.011c.272-.006.489-.228.489-.5 0-.274-.222-.497-.495-.5-.23-.006-.505-.098-.505-.5 0-.403.274-.494.505-.5z"/><path fill="#DD2E44" d="M26.539 4.711c0-2.602-2.11-4.711-4.711-4.711C20.249 0 18.855.78 18 1.972 17.144.78 15.751 0 14.172 0c-2.601 0-4.711 2.109-4.711 4.711 0 .369.047.727.127 1.07.654 4.065 5.173 8.353 8.411 9.529 3.238-1.177 7.758-5.465 8.412-9.528.081-.344.128-.702.128-1.071z"/></svg>

After

Width:  |  Height:  |  Size: 2.7 KiB

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#AF7E57" d="M5 8.042c6.626 0 12 5.373 12 12 0 6.626-5.374 12-12 12-1.787 0-3.476-.401-5-1.102V9.143c1.524-.7 3.213-1.101 5-1.101z"/><path fill="#60352A" d="M15.333 15.042c-.055.06-.128.115-.197.171-.72.716-1.753 1.477-3.219 2.036-3.691 1.407-9.121.297-9.121.297s.748-1.198 2.101-2.492c-1.809.549-3.463 1.359-4.897 2.371v-9.25c1.81-.903 3.843-1.425 6-1.428 6.508-.008 9.915 3.393 10.059 6.135.176.085.352.168.531.265 0 0-.237.641-.902 1.459-.077.094-.161.191-.249.29-.038.047-.064.1-.106.146z"/><path fill="#662113" d="M10 21.542c1.411 0 1.497-1.251 1.5-1.503.001-.274.225-.497.5-.497.276 0 .5.224.5.5 0 .864-.523 2.5-2.5 2.5-.276 0-.5-.224-.5-.5 0-.277.224-.5.5-.5zm-5 0c1.411 0 1.497-1.251 1.5-1.503.001-.274.225-.497.5-.497.276 0 .5.224.5.5 0 .864-.523 2.5-2.5 2.5-.276 0-.5-.224-.5-.5 0-.277.224-.5.5-.5z"/><path fill="#915A34" d="M9.995 25.542c-.273-.003-.495-.226-.495-.5 0-.276.224-.5.5-.5.602 0 1.5.399 1.5 1.5 0 .438-.143.765-.352 1 .209.235.352.562.352 1 0 1.101-.898 1.5-1.5 1.5-.273 0-.493-.22-.496-.494-.004-.273.217-.499.49-.506.231-.006.506-.098.506-.5s-.275-.494-.5-.5h-.011c-.272-.006-.489-.228-.489-.5 0-.274.222-.497.495-.5.23-.006.505-.098.505-.5 0-.403-.274-.494-.505-.5z"/><path fill="#D4AB88" d="M31 8.042c-6.626 0-12 5.373-12 12 0 6.626 5.374 12 12 12 1.787 0 3.476-.401 5-1.102V9.143c-1.524-.7-3.213-1.101-5-1.101z"/><path fill="#963B22" d="M20.667 15.042c.055.06.128.115.197.171.72.716 1.753 1.477 3.219 2.036 3.691 1.407 9.121.297 9.121.297s-.748-1.198-2.101-2.492c1.809.549 3.463 1.358 4.897 2.371v-9.25c-1.81-.904-3.843-1.426-6-1.429-6.508-.008-9.915 3.393-10.059 6.135-.176.085-.352.168-.531.265 0 0 .237.641.902 1.459.077.094.161.191.249.29.038.048.064.101.106.147z"/><path fill="#662113" d="M26 21.542c-1.411 0-1.497-1.251-1.5-1.503-.001-.274-.225-.497-.5-.497-.276 0-.5.224-.5.5 0 .864.523 2.5 2.5 2.5.276 0 .5-.224.5-.5 0-.277-.224-.5-.5-.5zm5 0c-1.411 0-1.497-1.251-1.5-1.503-.001-.274-.225-.497-.5-.497-.276 0-.5.224-.5.5 0 .864.523 2.5 2.5 2.5.276 0 .5-.224.5-.5 0-.277-.224-.5-.5-.5z"/><path fill="#C1694F" d="M26.005 25.542c.273-.003.495-.226.495-.5 0-.276-.224-.5-.5-.5-.602 0-1.5.399-1.5 1.5 0 .438.143.765.352 1-.209.235-.352.562-.352 1 0 1.101.898 1.5 1.5 1.5.273 0 .493-.22.496-.494.004-.273-.217-.499-.49-.506-.231-.006-.506-.098-.506-.5s.275-.494.5-.5h.011c.272-.006.489-.228.489-.5 0-.274-.222-.497-.495-.5-.23-.006-.505-.098-.505-.5 0-.403.274-.494.505-.5z"/><path fill="#DD2E44" d="M26.539 4.711c0-2.602-2.11-4.711-4.711-4.711C20.249 0 18.855.78 18 1.972 17.144.78 15.751 0 14.172 0c-2.601 0-4.711 2.109-4.711 4.711 0 .369.047.727.127 1.07.654 4.065 5.173 8.353 8.411 9.529 3.238-1.177 7.758-5.465 8.412-9.528.081-.344.128-.702.128-1.071z"/></svg>

After

Width:  |  Height:  |  Size: 2.7 KiB

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#AF7E57" d="M5 8.042c6.626 0 12 5.373 12 12 0 6.626-5.374 12-12 12-1.787 0-3.476-.401-5-1.102V9.143c1.524-.7 3.213-1.101 5-1.101z"/><path fill="#60352A" d="M15.333 15.042c-.055.06-.128.115-.197.171-.72.716-1.753 1.477-3.219 2.036-3.691 1.407-9.121.297-9.121.297s.748-1.198 2.101-2.492c-1.809.549-3.463 1.359-4.897 2.371v-9.25c1.81-.903 3.843-1.425 6-1.428 6.508-.008 9.915 3.393 10.059 6.135.176.085.352.168.531.265 0 0-.237.641-.902 1.459-.077.094-.161.191-.249.29-.038.047-.064.1-.106.146z"/><path fill="#662113" d="M10 21.542c1.411 0 1.497-1.251 1.5-1.503.001-.274.225-.497.5-.497.276 0 .5.224.5.5 0 .864-.523 2.5-2.5 2.5-.276 0-.5-.224-.5-.5 0-.277.224-.5.5-.5zm-5 0c1.411 0 1.497-1.251 1.5-1.503.001-.274.225-.497.5-.497.276 0 .5.224.5.5 0 .864-.523 2.5-2.5 2.5-.276 0-.5-.224-.5-.5 0-.277.224-.5.5-.5z"/><path fill="#915A34" d="M9.995 25.542c-.273-.003-.495-.226-.495-.5 0-.276.224-.5.5-.5.602 0 1.5.399 1.5 1.5 0 .438-.143.765-.352 1 .209.235.352.562.352 1 0 1.101-.898 1.5-1.5 1.5-.273 0-.493-.22-.496-.494-.004-.273.217-.499.49-.506.231-.006.506-.098.506-.5s-.275-.494-.5-.5h-.011c-.272-.006-.489-.228-.489-.5 0-.274.222-.497.495-.5.23-.006.505-.098.505-.5 0-.403-.274-.494-.505-.5z"/><path fill="#AF7E57" d="M31 8.042c-6.626 0-12 5.373-12 12 0 6.626 5.374 12 12 12 1.787 0 3.476-.401 5-1.102V9.143c-1.524-.7-3.213-1.101-5-1.101z"/><path fill="#60352A" d="M20.667 15.042c.055.06.128.115.197.171.72.716 1.753 1.477 3.219 2.036 3.691 1.407 9.121.297 9.121.297s-.748-1.198-2.101-2.492c1.809.549 3.463 1.358 4.897 2.371v-9.25c-1.81-.904-3.843-1.426-6-1.429-6.508-.008-9.915 3.393-10.059 6.135-.176.085-.352.168-.531.265 0 0 .237.641.902 1.459.077.094.161.191.249.29.038.048.064.101.106.147z"/><path fill="#662113" d="M26 21.542c-1.411 0-1.497-1.251-1.5-1.503-.001-.274-.225-.497-.5-.497-.276 0-.5.224-.5.5 0 .864.523 2.5 2.5 2.5.276 0 .5-.224.5-.5 0-.277-.224-.5-.5-.5zm5 0c-1.411 0-1.497-1.251-1.5-1.503-.001-.274-.225-.497-.5-.497-.276 0-.5.224-.5.5 0 .864.523 2.5 2.5 2.5.276 0 .5-.224.5-.5 0-.277-.224-.5-.5-.5z"/><path fill="#915A34" d="M26.005 25.542c.273-.003.495-.226.495-.5 0-.276-.224-.5-.5-.5-.602 0-1.5.399-1.5 1.5 0 .438.143.765.352 1-.209.235-.352.562-.352 1 0 1.101.898 1.5 1.5 1.5.273 0 .493-.22.496-.494.004-.273-.217-.499-.49-.506-.231-.006-.506-.098-.506-.5s.275-.494.5-.5h.011c.272-.006.489-.228.489-.5 0-.274-.222-.497-.495-.5-.23-.006-.505-.098-.505-.5 0-.403.274-.494.505-.5z"/><path fill="#DD2E44" d="M26.539 4.711c0-2.602-2.11-4.711-4.711-4.711C20.249 0 18.855.78 18 1.972 17.144.78 15.751 0 14.172 0c-2.601 0-4.711 2.109-4.711 4.711 0 .369.047.727.127 1.07.654 4.065 5.173 8.353 8.411 9.529 3.238-1.177 7.758-5.465 8.412-9.528.081-.344.128-.702.128-1.071z"/></svg>

After

Width:  |  Height:  |  Size: 2.7 KiB

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#AF7E57" d="M5 8.042c6.626 0 12 5.373 12 12 0 6.626-5.374 12-12 12-1.787 0-3.476-.401-5-1.102V9.143c1.524-.7 3.213-1.101 5-1.101z"/><path fill="#60352A" d="M15.333 15.042c-.055.06-.128.115-.197.171-.72.716-1.753 1.477-3.219 2.036-3.691 1.407-9.121.297-9.121.297s.748-1.198 2.101-2.492c-1.809.549-3.463 1.359-4.897 2.371v-9.25c1.81-.903 3.843-1.425 6-1.428 6.508-.008 9.915 3.393 10.059 6.135.176.085.352.168.531.265 0 0-.237.641-.902 1.459-.077.094-.161.191-.249.29-.038.047-.064.1-.106.146z"/><path fill="#662113" d="M10 21.542c1.411 0 1.497-1.251 1.5-1.503.001-.274.225-.497.5-.497.276 0 .5.224.5.5 0 .864-.523 2.5-2.5 2.5-.276 0-.5-.224-.5-.5 0-.277.224-.5.5-.5zm-5 0c1.411 0 1.497-1.251 1.5-1.503.001-.274.225-.497.5-.497.276 0 .5.224.5.5 0 .864-.523 2.5-2.5 2.5-.276 0-.5-.224-.5-.5 0-.277.224-.5.5-.5z"/><path fill="#915A34" d="M9.995 25.542c-.273-.003-.495-.226-.495-.5 0-.276.224-.5.5-.5.602 0 1.5.399 1.5 1.5 0 .438-.143.765-.352 1 .209.235.352.562.352 1 0 1.101-.898 1.5-1.5 1.5-.273 0-.493-.22-.496-.494-.004-.273.217-.499.49-.506.231-.006.506-.098.506-.5s-.275-.494-.5-.5h-.011c-.272-.006-.489-.228-.489-.5 0-.274.222-.497.495-.5.23-.006.505-.098.505-.5 0-.403-.274-.494-.505-.5z"/><path fill="#7C533E" d="M31 8.042c-6.626 0-12 5.373-12 12 0 6.626 5.374 12 12 12 1.787 0 3.476-.401 5-1.102V9.143c-1.524-.7-3.213-1.101-5-1.101z"/><path fill="#0B0200" d="M20.667 15.042c.055.06.128.115.197.171.72.716 1.753 1.477 3.219 2.036 3.691 1.407 9.121.297 9.121.297s-.748-1.198-2.101-2.492c1.809.549 3.463 1.358 4.897 2.371v-9.25c-1.81-.904-3.843-1.426-6-1.429-6.508-.008-9.915 3.393-10.059 6.135-.176.085-.352.168-.531.265 0 0 .237.641.902 1.459.077.094.161.191.249.29.038.048.064.101.106.147z"/><path d="M26 21.542c-1.411 0-1.497-1.251-1.5-1.503-.001-.274-.225-.497-.5-.497-.276 0-.5.224-.5.5 0 .864.523 2.5 2.5 2.5.276 0 .5-.224.5-.5 0-.277-.224-.5-.5-.5zm5 0c-1.411 0-1.497-1.251-1.5-1.503-.001-.274-.225-.497-.5-.497-.276 0-.5.224-.5.5 0 .864.523 2.5 2.5 2.5.276 0 .5-.224.5-.5 0-.277-.224-.5-.5-.5z"/><path fill="#3D2E24" d="M26.005 25.542c.273-.003.495-.226.495-.5 0-.276-.224-.5-.5-.5-.602 0-1.5.399-1.5 1.5 0 .438.143.765.352 1-.209.235-.352.562-.352 1 0 1.101.898 1.5 1.5 1.5.273 0 .493-.22.496-.494.004-.273-.217-.499-.49-.506-.231-.006-.506-.098-.506-.5s.275-.494.5-.5h.011c.272-.006.489-.228.489-.5 0-.274-.222-.497-.495-.5-.23-.006-.505-.098-.505-.5 0-.403.274-.494.505-.5z"/><path fill="#DD2E44" d="M26.539 4.711c0-2.602-2.11-4.711-4.711-4.711C20.249 0 18.855.78 18 1.972 17.144.78 15.751 0 14.172 0c-2.601 0-4.711 2.109-4.711 4.711 0 .369.047.727.127 1.07.654 4.065 5.173 8.353 8.411 9.529 3.238-1.177 7.758-5.465 8.412-9.528.081-.344.128-.702.128-1.071z"/></svg>

After

Width:  |  Height:  |  Size: 2.7 KiB

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#0B0200" d="M11 11.844c-2.297-.669-3.315-3.565-3.734-5.369C6.313 7.952 4.23 10.155 0 11.28V.425C.955.154 1.959 0 3 0c6.075 0 11 4.925 11 11 0 3.009-1.211 5.733-3.168 7.719.107-.557.168-1.13.168-1.719v-5.156z"/><path fill="#7C533E" d="M0 28.604L2 32l3-5v-1.523c2.968-1.051 5.222-3.607 5.832-6.757.107-.558.168-1.131.168-1.72v-5.156c-2.297-.669-3.315-3.565-3.734-5.369C6.313 7.952 4.23 10.155 0 11.28v17.324z"/><path fill="#3B94D9" d="M0 28.604L2 32l3-5h6c2.209 0 4 1.791 4 4v5H0v-7.396z"/><path fill="#1C6399" d="M10 32h1v4h-1z"/><path fill="#3D2E24" d="M5 22h1s-1 2-4 2c-.809 0-1.462-.151-2-.363V22h5zm-2-2.5H1c-.276 0-.5-.224-.5-.5s.224-.5.5-.5h2c.276 0 .5.224.5.5s-.224.5-.5.5z"/><path d="M6 16c-.553 0-1-.448-1-1v-1c0-.552.447-1 1-1s1 .448 1 1v1c0 .552-.447 1-1 1z"/><path fill="#292F33" d="M25 11.844c2.297-.669 3.315-3.565 3.734-5.369.953 1.477 3.036 3.68 7.266 4.805V.425C35.045.154 34.041 0 33 0c-6.075 0-11 4.925-11 11 0 3.009 1.211 5.733 3.168 7.719C25.061 18.162 25 17.589 25 17v-5.156z"/><path fill="#F7DECE" d="M36 11.28c-4.23-1.125-6.313-3.328-7.266-4.804-.42 1.804-1.438 4.699-3.734 5.369V17c0 .589.061 1.162.168 1.719.61 3.15 2.863 5.706 5.832 6.757V27l3 5 2-3.396V11.28z"/><path fill="#3B94D9" d="M36 28.604L34 32l-3-5h-6c-2.209 0-4 1.791-4 4v5h15v-7.396z"/><path fill="#1C6399" d="M25 32h1v4h-1z"/><path fill="#C1694F" d="M31 22h-1s1 2 4 2c.809 0 1.462-.151 2-.363V22h-5zm2-2.5h2c.276 0 .5-.224.5-.5s-.224-.5-.5-.5h-2c-.276 0-.5.224-.5.5s.224.5.5.5z"/><path fill="#662113" d="M30 16c.553 0 1-.448 1-1v-1c0-.552-.447-1-1-1s-1 .448-1 1v1c0 .552.447 1 1 1z"/><path fill="#DD2E44" d="M26.539 4.711c0-2.602-2.11-4.711-4.711-4.711C20.249 0 18.855.78 18 1.972 17.144.78 15.751 0 14.172 0c-2.601 0-4.711 2.109-4.711 4.711 0 .369.047.727.127 1.07.654 4.065 5.173 8.353 8.411 9.529 3.238-1.177 7.758-5.465 8.412-9.528.081-.344.128-.702.128-1.071z"/></svg>

After

Width:  |  Height:  |  Size: 1.9 KiB

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#0B0200" d="M11 11.844c-2.297-.669-3.315-3.565-3.734-5.369C6.313 7.952 4.23 10.155 0 11.28V.425C.955.154 1.959 0 3 0c6.075 0 11 4.925 11 11 0 3.009-1.211 5.733-3.168 7.719.107-.557.168-1.13.168-1.719v-5.156z"/><path fill="#7C533E" d="M0 28.604L2 32l3-5v-1.523c2.968-1.051 5.222-3.607 5.832-6.757.107-.558.168-1.131.168-1.72v-5.156c-2.297-.669-3.315-3.565-3.734-5.369C6.313 7.952 4.23 10.155 0 11.28v17.324z"/><path fill="#3B94D9" d="M0 28.604L2 32l3-5h6c2.209 0 4 1.791 4 4v5H0v-7.396z"/><path fill="#1C6399" d="M10 32h1v4h-1z"/><path fill="#3D2E24" d="M5 22h1s-1 2-4 2c-.809 0-1.462-.151-2-.363V22h5zm-2-2.5H1c-.276 0-.5-.224-.5-.5s.224-.5.5-.5h2c.276 0 .5.224.5.5s-.224.5-.5.5z"/><path d="M6 16c-.553 0-1-.448-1-1v-1c0-.552.447-1 1-1s1 .448 1 1v1c0 .552-.447 1-1 1z"/><path fill="#FFE51E" d="M25 11.844c2.297-.669 3.315-3.565 3.734-5.369.953 1.477 3.036 3.68 7.266 4.805V.425C35.045.154 34.041 0 33 0c-6.075 0-11 4.925-11 11 0 3.009 1.211 5.733 3.168 7.719C25.061 18.162 25 17.589 25 17v-5.156z"/><path fill="#F3D2A2" d="M36 11.28c-4.23-1.125-6.313-3.328-7.266-4.804-.42 1.804-1.438 4.699-3.734 5.369V17c0 .589.061 1.162.168 1.719.61 3.15 2.863 5.706 5.832 6.757V27l3 5 2-3.396V11.28z"/><path fill="#3B94D9" d="M36 28.604L34 32l-3-5h-6c-2.209 0-4 1.791-4 4v5h15v-7.396z"/><path fill="#1C6399" d="M25 32h1v4h-1z"/><path fill="#C1694F" d="M31 22h-1s1 2 4 2c.809 0 1.462-.151 2-.363V22h-5zm2-2.5h2c.276 0 .5-.224.5-.5s-.224-.5-.5-.5h-2c-.276 0-.5.224-.5.5s.224.5.5.5z"/><path fill="#662113" d="M30 16c.553 0 1-.448 1-1v-1c0-.552-.447-1-1-1s-1 .448-1 1v1c0 .552.447 1 1 1z"/><path fill="#DD2E44" d="M26.539 4.711c0-2.602-2.11-4.711-4.711-4.711C20.249 0 18.855.78 18 1.972 17.144.78 15.751 0 14.172 0c-2.601 0-4.711 2.109-4.711 4.711 0 .369.047.727.127 1.07.654 4.065 5.173 8.353 8.411 9.529 3.238-1.177 7.758-5.465 8.412-9.528.081-.344.128-.702.128-1.071z"/></svg>

After

Width:  |  Height:  |  Size: 1.9 KiB

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#0B0200" d="M11 11.844c-2.297-.669-3.315-3.565-3.734-5.369C6.313 7.952 4.23 10.155 0 11.28V.425C.955.154 1.959 0 3 0c6.075 0 11 4.925 11 11 0 3.009-1.211 5.733-3.168 7.719.107-.557.168-1.13.168-1.719v-5.156z"/><path fill="#7C533E" d="M0 28.604L2 32l3-5v-1.523c2.968-1.051 5.222-3.607 5.832-6.757.107-.558.168-1.131.168-1.72v-5.156c-2.297-.669-3.315-3.565-3.734-5.369C6.313 7.952 4.23 10.155 0 11.28v17.324z"/><path fill="#3B94D9" d="M0 28.604L2 32l3-5h6c2.209 0 4 1.791 4 4v5H0v-7.396z"/><path fill="#1C6399" d="M10 32h1v4h-1z"/><path fill="#3D2E24" d="M5 22h1s-1 2-4 2c-.809 0-1.462-.151-2-.363V22h5zm-2-2.5H1c-.276 0-.5-.224-.5-.5s.224-.5.5-.5h2c.276 0 .5.224.5.5s-.224.5-.5.5z"/><path d="M6 16c-.553 0-1-.448-1-1v-1c0-.552.447-1 1-1s1 .448 1 1v1c0 .552-.447 1-1 1z"/><path fill="#963B22" d="M25 11.844c2.297-.669 3.315-3.565 3.734-5.369.953 1.477 3.036 3.68 7.266 4.805V.425C35.045.154 34.041 0 33 0c-6.075 0-11 4.925-11 11 0 3.009 1.211 5.733 3.168 7.719C25.061 18.162 25 17.589 25 17v-5.156z"/><path fill="#D4AB88" d="M36 11.28c-4.23-1.125-6.313-3.328-7.266-4.804-.42 1.804-1.438 4.699-3.734 5.369V17c0 .589.061 1.162.168 1.719.61 3.15 2.863 5.706 5.832 6.757V27l3 5 2-3.396V11.28z"/><path fill="#3B94D9" d="M36 28.604L34 32l-3-5h-6c-2.209 0-4 1.791-4 4v5h15v-7.396z"/><path fill="#1C6399" d="M25 32h1v4h-1z"/><path fill="#C1694F" d="M31 22h-1s1 2 4 2c.809 0 1.462-.151 2-.363V22h-5zm2-2.5h2c.276 0 .5-.224.5-.5s-.224-.5-.5-.5h-2c-.276 0-.5.224-.5.5s.224.5.5.5z"/><path fill="#662113" d="M30 16c.553 0 1-.448 1-1v-1c0-.552-.447-1-1-1s-1 .448-1 1v1c0 .552.447 1 1 1z"/><path fill="#DD2E44" d="M26.539 4.711c0-2.602-2.11-4.711-4.711-4.711C20.249 0 18.855.78 18 1.972 17.144.78 15.751 0 14.172 0c-2.601 0-4.711 2.109-4.711 4.711 0 .369.047.727.127 1.07.654 4.065 5.173 8.353 8.411 9.529 3.238-1.177 7.758-5.465 8.412-9.528.081-.344.128-.702.128-1.071z"/></svg>

After

Width:  |  Height:  |  Size: 1.9 KiB

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#0B0200" d="M11 11.844c-2.297-.669-3.315-3.565-3.734-5.369C6.313 7.952 4.23 10.155 0 11.28V.425C.955.154 1.959 0 3 0c6.075 0 11 4.925 11 11 0 3.009-1.211 5.733-3.168 7.719.107-.557.168-1.13.168-1.719v-5.156z"/><path fill="#7C533E" d="M0 28.604L2 32l3-5v-1.523c2.968-1.051 5.222-3.607 5.832-6.757.107-.558.168-1.131.168-1.72v-5.156c-2.297-.669-3.315-3.565-3.734-5.369C6.313 7.952 4.23 10.155 0 11.28v17.324z"/><path fill="#3B94D9" d="M0 28.604L2 32l3-5h6c2.209 0 4 1.791 4 4v5H0v-7.396z"/><path fill="#1C6399" d="M10 32h1v4h-1z"/><path fill="#3D2E24" d="M5 22h1s-1 2-4 2c-.809 0-1.462-.151-2-.363V22h5zm-2-2.5H1c-.276 0-.5-.224-.5-.5s.224-.5.5-.5h2c.276 0 .5.224.5.5s-.224.5-.5.5z"/><path d="M6 16c-.553 0-1-.448-1-1v-1c0-.552.447-1 1-1s1 .448 1 1v1c0 .552-.447 1-1 1z"/><path fill="#60352A" d="M25 11.844c2.297-.669 3.315-3.565 3.734-5.369.953 1.477 3.036 3.68 7.266 4.805V.425C35.045.154 34.041 0 33 0c-6.075 0-11 4.925-11 11 0 3.009 1.211 5.733 3.168 7.719C25.061 18.162 25 17.589 25 17v-5.156z"/><path fill="#AF7E57" d="M36 11.28c-4.23-1.125-6.313-3.328-7.266-4.804-.42 1.804-1.438 4.699-3.734 5.369V17c0 .589.061 1.162.168 1.719.61 3.15 2.863 5.706 5.832 6.757V27l3 5 2-3.396V11.28z"/><path fill="#3B94D9" d="M36 28.604L34 32l-3-5h-6c-2.209 0-4 1.791-4 4v5h15v-7.396z"/><path fill="#1C6399" d="M25 32h1v4h-1z"/><path fill="#915A34" d="M31 22h-1s1 2 4 2c.809 0 1.462-.151 2-.363V22h-5zm2-2.5h2c.276 0 .5-.224.5-.5s-.224-.5-.5-.5h-2c-.276 0-.5.224-.5.5s.224.5.5.5z"/><path fill="#662113" d="M30 16c.553 0 1-.448 1-1v-1c0-.552-.447-1-1-1s-1 .448-1 1v1c0 .552.447 1 1 1z"/><path fill="#DD2E44" d="M26.539 4.711c0-2.602-2.11-4.711-4.711-4.711C20.249 0 18.855.78 18 1.972 17.144.78 15.751 0 14.172 0c-2.601 0-4.711 2.109-4.711 4.711 0 .369.047.727.127 1.07.654 4.065 5.173 8.353 8.411 9.529 3.238-1.177 7.758-5.465 8.412-9.528.081-.344.128-.702.128-1.071z"/></svg>

After

Width:  |  Height:  |  Size: 1.9 KiB

Some files were not shown because too many files have changed in this diff Show more