Compare commits

...

989 Commits

Author SHA1 Message Date
John Preston
c528ea24ea Version 3.1.11.
- Create special invite links that require admins to approve users before they become members.
- Admins can view the applicants' profiles and bios by tapping the Join Requests bar at the top of the chat.
- Add internal labels to your chat's Invite Links to keep them organized.
- Run natively on Apple Silicon (macOS only).
2021-10-29 19:06:19 +04:00
John Preston
fa8792927e Improve invite link name phrases. 2021-10-29 18:31:07 +04:00
John Preston
aaae5b0553 Support invite link label editing. 2021-10-29 18:31:07 +04:00
John Preston
eb82664452 Use recent requester userIds from API. 2021-10-29 18:31:07 +04:00
John Preston
36271d6b85 Save recent requester userIds from API. 2021-10-29 18:31:07 +04:00
John Preston
f839c7f2bb Update API scheme on layer 134. 2021-10-29 18:31:07 +04:00
John Preston
94dc595a81 Show full profile from group members list. 2021-10-29 18:31:07 +04:00
John Preston
2f4651fe6f Fix build on macOS. 2021-10-29 18:31:07 +04:00
John Preston
97ae094c3c Update API scheme with new cloud themes. 2021-10-29 18:31:07 +04:00
John Preston
045689fab1 Highlight links in about. 2021-10-29 18:31:07 +04:00
John Preston
47d957f942 Add 5 lines of About to group call context menu. 2021-10-29 18:31:07 +04:00
John Preston
d0606a3798 Show PeerShortInfoCover in group call context menu. 2021-10-29 18:31:07 +04:00
John Preston
bcddda3cd3 Extract PeerShortInfoCover from the box. 2021-10-29 18:31:07 +04:00
John Preston
b5f50a4b9f Preload photos in PeerShortInfoBox. 2021-10-29 18:31:07 +04:00
John Preston
9c77f26a8b Show radial progress in PeerShortInfoBox photo. 2021-10-29 18:31:07 +04:00
John Preston
d73d5724d8 Show radial progress in PeerShortInfoBox video. 2021-10-29 18:31:07 +04:00
John Preston
9f21da8bde Display profile video playback progress. 2021-10-29 18:31:07 +04:00
John Preston
6b137b9778 Make full PeerShortInfoBox scrollable. 2021-10-29 18:31:07 +04:00
John Preston
c9e5eadb06 Use a detailed phrase for single user join request. 2021-10-29 18:31:07 +04:00
John Preston
05bdef041b Improve PeerShortInfoBox cover updating. 2021-10-29 18:31:07 +04:00
John Preston
360a92c198 Show user photos overview in PeerShortInfoBox. 2021-10-29 18:31:07 +04:00
John Preston
64f6b86739 Return local search to requests box. 2021-10-29 18:31:07 +04:00
John Preston
dcc14a4726 Add info rows to PeerShortInfoBox. 2021-10-29 18:31:07 +04:00
John Preston
2ca5f26546 Don't show "You:" in private chats. 2021-10-29 18:31:07 +04:00
John Preston
24e0ea2a59 Show profile video in PeerShortInfoBox. 2021-10-29 18:31:07 +04:00
John Preston
61ac7e6c1d Start PeerShortInfoBox for small in-box profiles. 2021-10-29 18:31:06 +04:00
John Preston
49b28ac695 Reuse "info_add_member" icon for requests management. 2021-10-29 18:31:06 +04:00
John Preston
2163957299 Fix empty chat history after custom themed chat. 2021-10-29 18:31:06 +04:00
John Preston
2e1981c5a6 Improve confirm join box design. 2021-10-29 18:31:06 +04:00
John Preston
ab60628386 Usage limit and requests are mutually exclusive. 2021-10-29 18:31:06 +04:00
John Preston
2ade6be146 Show correct phrase in local join messages. 2021-10-29 18:31:06 +04:00
John Preston
721aac57a5 Fix processing requests from search results. 2021-10-29 18:31:06 +04:00
John Preston
8618f6d7eb Push recent requests from requests box to the bar. 2021-10-29 18:31:06 +04:00
John Preston
7543351bc9 Add pending requests bar in the chat. 2021-10-29 18:31:06 +04:00
John Preston
0dfbd5fa6e Allow processing requests from full list. 2021-10-29 18:31:06 +04:00
John Preston
9dfbc96274 Display full list of requests. 2021-10-29 18:31:06 +04:00
John Preston
ab58aa020e Allow many custom elements in PeerListRow. 2021-10-29 18:31:06 +04:00
John Preston
7f428f2eeb Show full requests list in a box. 2021-10-29 18:31:06 +04:00
John Preston
b4895ef730 Allow to accept / reject requests by link. 2021-10-29 18:31:06 +04:00
John Preston
9e05e44a14 Inform about join request being sent. 2021-10-29 18:31:06 +04:00
John Preston
3af3f85f82 Allow creating approve-only invite links. 2021-10-29 18:31:06 +04:00
John Preston
e471d61d7a Enable ads leading to a specific channel post. 2021-10-29 18:31:06 +04:00
John Preston
185523f66f Update API scheme to layer 134. 2021-10-29 18:31:06 +04:00
John Preston
66a83d3862 Update build script for macOS. 2021-10-29 18:29:29 +04:00
John Preston
ad9d15dd21 Remove debug code from resource loading. 2021-10-29 17:42:57 +04:00
John Preston
f204b9fca0 RegisterBundledResources only on macOS. 2021-10-29 17:42:57 +04:00
John Preston
a3e3bcd46d Fix repeated phoneCallRequested update handling. 2021-10-29 17:42:57 +04:00
John Preston
c693b03a64 Update breakpad build in Windows CI. 2021-10-29 17:42:57 +04:00
John Preston
31f15a2f09 Beta version 3.1.10.
- Native support for M1 on macOS.
2021-10-29 16:11:15 +04:00
John Preston
45b5e1241c Show device model in sessions list on Windows / Linux. 2021-10-29 16:11:15 +04:00
John Preston
43d42b54f8 Closed alpha version 3.1.9.5: Separate macOS updates. 2021-10-29 16:10:07 +04:00
John Preston
090277d7a1 Upload a separate macOS ARM update. 2021-10-29 16:10:07 +04:00
John Preston
766b393295 On macOS build autoupdates single-arch + universal setup. 2021-10-29 16:10:07 +04:00
John Preston
b2d647b579 Add support for fcitx-qt5 on Qt 6.2. 2021-10-29 16:10:07 +04:00
John Preston
1ed6844247 Use Qt resources from a file on macOS. 2021-10-29 16:10:07 +04:00
John Preston
5276e5b4ae Build minidump_stackwalk separately.
On macOS gyp is no longer required for non-official builds.
2021-10-29 16:10:07 +04:00
John Preston
6587f89db1 Update Breakpad to the latest commit. 2021-10-29 16:10:07 +04:00
John Preston
fb262b265b Link a single crashpad_client library. 2021-10-29 16:10:07 +04:00
John Preston
95074ef304 Closed alpha version 3.1.9.2 for macOS. 2021-10-29 16:10:07 +04:00
John Preston
4ac93806aa Fix emoji in the input fields on macOS with Qt 6.2. 2021-10-29 16:10:07 +04:00
John Preston
92b3149cdd Pass CMAKE_OSX_ARCHITECTURES from command line to configure. 2021-10-29 16:10:07 +04:00
John Preston
98c87d4a16 Dump symbols for both macOS builds. 2021-10-29 16:10:07 +04:00
John Preston
9a93d5811a Closed alpha version 3.1.9.1: Universal 2 macOS build. 2021-10-29 16:10:07 +04:00
John Preston
759e3270cc Fix popup menu transparency on macOS with Qt 6.2. 2021-10-29 16:10:07 +04:00
John Preston
746b72166f Fix main window drag-by-title on macOS with Qt 6.2. 2021-10-29 16:10:07 +04:00
John Preston
0292df12ef Working Universal 2 build. 2021-10-29 16:10:07 +04:00
John Preston
1e86c07505 Build FFMpeg as Universal 2 binaries. 2021-10-29 16:10:07 +04:00
John Preston
47b6956be9 Update crashpad to a new revision. 2021-10-29 16:10:07 +04:00
John Preston
df8708ef1e Build some dependencies as Universal 2 binaries. 2021-10-29 16:10:07 +04:00
John Preston
20c0be0df6 Use python from a correct folder. 2021-10-29 16:10:07 +04:00
23rd
cefdc29a7f Fixed release build of Breakpad on clean macOS. 2021-10-29 16:10:07 +04:00
23rd
70e9b4a332 Moved type of call id to alias. 2021-10-29 16:10:07 +04:00
23rd
08939ac51d Fixed display of edit badge in albums. 2021-10-29 16:10:07 +04:00
23rd
b5d9947408 Slightly improved code style in Calls:Call. 2021-10-29 16:10:07 +04:00
23rd
78f0cf908e Moved RateCallBox to td_ui. 2021-10-29 16:10:07 +04:00
23rd
93ae5e71f7 Guarded timers for online processing in touchbar's PinnedDialogButton. 2021-10-29 16:10:07 +04:00
Ilya Fedin
b8b268c7cc Add build architecture to version on other systems with non-x86_64 2021-10-29 16:02:41 +04:00
Ilya Fedin
c991bbc7e3 Reduce obtrusiveness of the lock bot 2021-10-29 16:02:15 +04:00
Ilya Fedin
45bbe33929 Multiple scale values in UI by device pixel ratio on non-Mac
To avoid confusion
2021-10-25 19:55:11 +04:00
John Preston
5aaa72e8cd Fix crash in scheduled emoji interactions.
Fixes #17093.
2021-10-25 09:43:22 +04:00
John Preston
57345cec3b Discard incoming calls by ring_timeout (1.5 minutes). 2021-10-25 09:43:12 +04:00
John Preston
fba17a8c25 Update description in lib/xdg/telegramdesktop.appdata.xml.in. 2021-10-25 09:23:36 +04:00
Ilya Fedin
70147922ae Re-enable kwayland with Qt 6 2021-10-25 08:59:43 +04:00
Ilya Fedin
44cc3c7809 Update submodules 2021-10-24 20:01:55 +04:00
Ilya Fedin
c50a5db277 Restore dbusmenu-qt dependent functionality with Qt 6 2021-10-24 20:01:55 +04:00
John Preston
389ea2af83 Fix compilation error on Linux. 2021-10-22 18:34:59 +04:00
John Preston
4cf9bf18e9 Fix clearing of macOS native notifications. 2021-10-21 23:37:14 +04:00
John Preston
7bc4b2c595 Add StickersSet::thumbnailBigFileBaseCacheKey. 2021-10-21 23:01:14 +04:00
John Preston
9075489c18 Use last history item date for jump-to-date. 2021-10-21 23:01:13 +04:00
John Preston
d361f5c6b0 Hide native notifications of deleted messages. 2021-10-21 23:01:13 +04:00
John Preston
1f95e00793 Fix "Copy Selected Text" appearing outside of selection. 2021-10-21 22:59:49 +04:00
John Preston
3d8899b9dc Update tg_owt revision. 2021-10-21 22:53:12 +04:00
John Preston
dba9aa30f7 Fix build action on macOS. 2021-10-21 21:01:33 +04:00
John Preston
3626943fc9 Use Qt 6.2 build on macOS GitHub action. 2021-10-21 20:20:35 +04:00
John Preston
1f6a9ab556 Fix prepare libraries on macOS with Qt 6.2. 2021-10-21 20:19:56 +04:00
John Preston
f7085b40b1 Support building macOS version with Qt 6.2. 2021-10-21 19:49:48 +04:00
Ilya Fedin
7222bc63f7 Update MozJPEG 2021-10-21 19:31:22 +04:00
Ilya Fedin
3dacbc6bf6 Ignore changes to Dockerfile on mac 2021-10-21 19:31:22 +04:00
Ilya Fedin
9dfa29ff0f Avoid using scl binary since it breaks conditions 2021-10-21 18:31:08 +04:00
Ilya Fedin
a1e67b6177 Fix failing on exit code check 2021-10-21 15:51:36 +04:00
Ilya Fedin
03a687c200 Adapt Dockerfile for Qt 6 2021-10-21 15:43:59 +04:00
Ilya Fedin
847c01d605 Add Qt 6 support
Tested only on Linux so far
2021-10-21 13:15:00 +04:00
23rd
ea10cf5758 Moved api polls processing to separated file. 2021-10-20 22:56:19 +03:00
23rd
159beb138a Moved api peer photo processing to separated file.
Removed MainWidget::deletePhotoLayer.
2021-10-20 22:56:19 +03:00
23rd
36d6682122 Improved code style in ChangePhoneBox. 2021-10-20 04:06:17 +03:00
23rd
25f6bea66e Moved ConfirmPhoneBox to td_ui. 2021-10-19 06:34:28 +03:00
23rd
80461bd9fe Moved ConfirmBox to Ui namespace. 2021-10-19 06:34:27 +03:00
23rd
6148edbc7d Moved ConfirmBox to td_ui. 2021-10-19 06:34:27 +03:00
23rd
3fa529d858 Extracted MaxInviteBox to separated file. 2021-10-19 06:34:27 +03:00
23rd
9117b3cdfa Extracted DeleteMessagesBox to separated file. 2021-10-19 06:34:27 +03:00
23rd
d4fe5f7a83 Extracted PinMessageBox to separated file. 2021-10-19 06:34:27 +03:00
23rd
fa6725c54a Extracted api code from ConfirmPhoneBox to separated file. 2021-10-19 06:34:27 +03:00
23rd
f9976005f7 Moved ShowPhoneBannedError to separated file. 2021-10-19 06:34:27 +03:00
23rd
c6e1b14429 Added Window::SessionController to ChangePhoneBox. 2021-10-19 06:34:27 +03:00
23rd
30681e2e58 Moved widget sliders to td_ui. 2021-10-19 06:34:27 +03:00
23rd
c15ba7d23a Moved SentCodeField to td_ui. 2021-10-19 06:34:27 +03:00
23rd
94d5d20281 Simplified saving self bio. 2021-10-19 06:34:27 +03:00
23rd
b776308fd7 Moved some constants for peer editing to separated file. 2021-10-19 06:34:27 +03:00
23rd
2d37920a4c Improved code style in some peer boxes. 2021-10-19 06:34:27 +03:00
23rd
ee05e0af06 Improved code style in UsernameBox. 2021-10-19 06:34:27 +03:00
23rd
2efd735243 Removed static storing of passport config. 2021-10-14 17:41:52 +03:00
John Preston
adb0a9b6f0 Fix document filenames.
Regression was introduced in 2b11e45692.
2021-10-11 22:58:24 +04:00
CoderTimZ
c9e24c2283 Display dates with the system date format 2021-10-11 21:56:29 +04:00
John Preston
041c922451 Add non-MTP ParseWebPageType. 2021-10-11 21:54:07 +04:00
John Preston
01c1096c62 Save Data::Session* in GameData. 2021-10-11 21:53:18 +04:00
John Preston
2b11e45692 Add DocumentData::setFileName. 2021-10-11 21:52:49 +04:00
23rd
6163e922b3 Added view button to webpages. 2021-10-10 19:30:38 +03:00
John Preston
1613495425 Version 3.1.9.
- Fix crash in chat closing while scrolling (macOS only).
2021-10-08 22:37:36 +04:00
23rd
455c7280a4 Fixed possible crash in scroll of empty HistoryWidget. 2021-10-08 19:10:39 +03:00
John Preston
746f8d835d Version 3.1.8.
- Show small media previews in chats list.
- Show media album previews and caption text in chats list.
- Add "Quick Reply" and "Mark as Read" to native Windows notifications.
2021-10-08 13:51:22 +04:00
John Preston
d66e9a1b00 Remove -pie linker flag.
See https://gitlab.gnome.org/GNOME/nautilus/-/issues/1601
2021-10-08 13:50:27 +04:00
John Preston
8cca75da5c Handle foreign instance in COM toast activator. 2021-10-08 13:46:52 +04:00
John Preston
8d0ff1b61d Try setting current window as foreground on activate. 2021-10-08 12:20:24 +04:00
John Preston
dd856b9e4a Use real QWindow for taskbar icon hider.
Fixes #17081.
2021-10-08 12:19:41 +04:00
23rd
eb5ba12ba3 Fixed ability to copy original caption in admin log.
Fixed #17076.
2021-10-08 10:39:36 +04:00
23rd
e2c5995a2e Fixed timestamp highlighting in albums.
Fixed #17078.
2021-10-08 10:39:36 +04:00
23rd
ef10bb2bd6 Fixed editing caption of album from context menu.
Fixed #17077.
2021-10-08 10:39:36 +04:00
23rd
64aa5480ad Fixed display edited badge in scheduled albums.
Moved hideEditedBadge from HistoryMessage to HistoryItem.
2021-10-08 10:39:36 +04:00
23rd
816f422e21 Removed MTP* from applying message edition.
Fixed #17073.
2021-10-08 10:39:36 +04:00
23rd
6c0dccd9ff Fixed replying in replies by double click.
Fixed #16645.
2021-10-08 10:39:36 +04:00
23rd
c2b505b78c Added ability to open specific post from sponsored messages. 2021-10-08 10:39:27 +04:00
23rd
d8fb5be9b5 Moved opening peer from PeerClickHandler to SessionController. 2021-10-07 23:32:10 +03:00
23rd
51b259fdea Updated ad description. 2021-10-07 23:32:10 +03:00
John Preston
d532b65d1c Don't use MTP* for replies data. 2021-10-07 22:57:44 +04:00
John Preston
bef35b9bc3 Don't use MTP* in call and invoice media data. 2021-10-07 18:22:28 +04:00
John Preston
ae261fcede Beta version 3.1.7.
- Fix channel message views and comments counter updates.
- Sponsored messages support.
- Crash fix.
2021-10-07 11:42:24 +04:00
John Preston
c04cdff7f7 Disable group call logs to console. 2021-10-07 11:42:24 +04:00
John Preston
466aa5a14d Fix view button style. 2021-10-07 11:38:07 +04:00
John Preston
4aac633413 Fix views increment.
Regression was introduced in 21aa1f49d7.

Fixes #17069.
2021-10-07 11:29:30 +04:00
23rd
ad328d35a2 Added box for ad description. 2021-10-07 11:09:09 +04:00
23rd
c5140f34a7 Added view button to sponsored messages. 2021-10-07 11:09:09 +04:00
23rd
419f6345b3 Added sponsored messages to HistoryWidget. 2021-10-07 11:09:09 +04:00
23rd
c2c53df886 Added new Ui::СontinuousScroll. 2021-10-07 11:09:09 +04:00
23rd
b3f73bb6a9 Added badge for sponsored messages. 2021-10-07 11:09:08 +04:00
23rd
eda5cd47ad Added manager of sponsored messages. 2021-10-07 11:09:08 +04:00
John Preston
0c906a5e6d Fix crash in local changelog messages. 2021-10-07 10:58:24 +04:00
John Preston
352768053d Beta version 3.1.6: Fix build on Linux. 2021-10-06 21:07:18 +04:00
John Preston
79b1cec4f3 Beta version 3.1.6: Remove -z,all from linker flags on Linux.
I hope it fixes #17037.
2021-10-06 20:37:39 +04:00
John Preston
8d09190439 Build ffmpeg without --disable-alsa/iconv on Linux. 2021-10-06 20:37:30 +04:00
John Preston
5cd0a3719e Beta version 3.1.6: Detach FastReply from MarkAsRead. 2021-10-06 19:24:30 +04:00
John Preston
8b7cd4a0c7 Beta version 3.1.6: Fix crash on old Windows 10 versions. 2021-10-06 17:36:30 +04:00
John Preston
937c2d3dce Beta version 3.1.6: Update patches revision. 2021-10-06 13:44:28 +04:00
23rd
1fa5d273cc Fixed scroll in Dialogs::Widget.
Regression was introduced in cb8f49aea0.
2021-10-06 13:40:26 +04:00
John Preston
24fa3dbf8f Beta version 3.1.6: Fix build on macOS. 2021-10-06 11:10:06 +04:00
John Preston
c9b782fd63 Beta version 3.1.6.
- Show small media previews in chats list.
- Show media album previews and caption text in chats list.
- Add "Quick Reply" and "Mark as Read" to native Windows notifications.
2021-10-06 11:07:38 +04:00
John Preston
e7cf560da0 Handle toast activations by COM activator. 2021-10-06 11:02:57 +04:00
John Preston
86e07518ad Fix clearing notifications from Action Center.
Regression was introduced in 997913be25.
2021-10-05 16:53:36 +04:00
John Preston
8c71d03959 Add reply from Windows native notifications. 2021-10-05 16:52:46 +04:00
John Preston
967e86f4ab Rewrite Windows native notifications using C++/WinRT. 2021-10-05 12:09:15 +04:00
John Preston
730412fefe Load albums of last chat messages. 2021-10-04 23:47:33 +04:00
John Preston
576883ddc8 Make mini preview radius 2px. 2021-10-04 23:47:33 +04:00
John Preston
992d636680 Generate album mini previews with up-to-three images. 2021-10-04 23:47:33 +04:00
John Preston
8cdd2f113f Add play icon to video mini previews. 2021-10-04 23:47:33 +04:00
John Preston
d5f935b73d Put mini-previews after sender name. 2021-10-04 23:47:33 +04:00
John Preston
84f561b251 Don't use MTP* in the image editor. 2021-10-04 23:47:33 +04:00
John Preston
21ac2b8f3a Don't use MTP* for reply markup data. 2021-10-04 23:47:30 +04:00
John Preston
1790828b01 Dump symbols from the binary instead of dSYM.
For some reason dump_syms from dSYM now fails with an error:

Telegram.app.dSYM/Contents/Resources/DWARF/Telegram:
the section '__text' in segment '__TEXT' claims its contents lie outside the segment's contents
2021-10-04 23:45:21 +04:00
John Preston
792b9090a7 Generate mini-previews for photos and files. 2021-10-04 23:45:21 +04:00
John Preston
8c21fad642 Move preview paint to Dialogs::Ui::MessageView. 2021-10-04 23:45:21 +04:00
John Preston
5136cc3c9c Rename Dialogs::Layout to Dialogs::Ui. 2021-10-04 23:45:21 +04:00
John Preston
b78b27f517 Move dialogs_layout to dialogs/ui/. 2021-10-04 23:45:21 +04:00
John Preston
85760ea92c Fix repeated attempt to transfer ownership.
Fixes #8570.
2021-10-04 23:45:21 +04:00
Ilya Fedin
c2212c719e Inform Qt about taskbar hider
This allows the feature to work without patching Qt
2021-10-04 23:23:50 +04:00
GitHub Action
fc8a0d0efd Update User-Agent for DNS to Chrome 94.0.4606.61. 2021-10-04 23:23:20 +04:00
23rd
c052c37621 Fixed build for non-Windows. 2021-09-30 21:04:43 +03:00
23rd
21f7cec781 Fixed build for macOS. 2021-09-30 21:21:07 +04:00
23rd
64af456d29 Fixed build for macOS. 2021-09-30 21:16:45 +04:00
John Preston
7751c4ac1f Port PQ factorization from TDLib. 2021-09-30 21:14:00 +04:00
23rd
ececdcb9c0 Removed Q_SLOTS from HistoryInner. 2021-09-30 18:45:38 +03:00
23rd
cb8f49aea0 Removed Q_OBJECT from ScrollArea. 2021-09-30 18:45:38 +03:00
23rd
e3ef7d6631 Removed MainWidget::highlightStartTime. 2021-09-30 18:45:38 +03:00
23rd
21aa1f49d7 Moved views increment scheduler from MainWidget to separate file. 2021-09-30 18:45:38 +03:00
John Preston
51e80170e2 Always clear passcode lock widget on reset.
Fixes #17016.
2021-09-30 19:37:42 +04:00
John Preston
b2526ab7f6 Make sure special MsgId-s are always outside ServerMaxMsgId range. 2021-09-30 19:31:03 +04:00
John Preston
e220447bdd Put the "N Seen" context menu item always first. 2021-09-30 15:36:14 +04:00
John Preston
ead695b101 Don't pass wide fake MsgId through MTPMessage. 2021-09-30 15:30:39 +04:00
John Preston
4ea72f8f89 Don't add "Change colors" to profile menu. 2021-09-30 15:30:29 +04:00
John Preston
4ef550da9b Hide webview while showing a box in payments. 2021-09-30 14:53:18 +04:00
John Preston
1e660fc2a2 Allocate 64 bits for message ids. 2021-09-30 13:49:37 +04:00
Ilya Fedin
6adf791b3b Update cmake_helpers 2021-09-29 09:04:23 +04:00
Ilya Fedin
d2a41a42e0 Move applicationDidFinishLaunching code to init
This should make the Qt patch catching the event unneeded
2021-09-29 09:04:23 +04:00
John Preston
315549b5f8 Beta version 3.1.5: Fix build on Linux. 2021-09-28 23:48:37 +04:00
John Preston
fd4a543bab Beta version 3.1.5: Fix theme change UI on Retina screens. 2021-09-28 22:27:41 +04:00
John Preston
d525e56053 Beta version 3.1.5: Fix build on Linux. 2021-09-28 22:08:28 +04:00
John Preston
dab5d1f994 Beta version 3.1.5.
- Choose one of 8 new preset themes for any individual private chat.
- Click on '...' menu > 'Change Colors' to pick a theme.
- Both chat participants will see the same theme
in that chat – on all their devices.
- Each new theme features colorful gradient message bubbles,
beautifully animated backgrounds and unique background patterns.
- All chat themes have day and night versions
and will follow your overall dark mode settings.
- Implement main window rounded corners on Windows 11.
- Fix audio capture from AirPods on macOS.
2021-09-28 22:00:51 +04:00
23rd
de3b52425c Removed unused HistoryInner::setFirstLoading. 2021-09-28 21:14:33 +04:00
John Preston
844fd58a97 Support Windows 11 rounded corners and themeable title bar. 2021-09-28 21:11:35 +04:00
John Preston
de2bad51d3 Scroll to currently selected theme. 2021-09-28 19:27:41 +04:00
John Preston
1424ea3540 Allow scrolling themes list. 2021-09-28 19:27:41 +04:00
John Preston
a8efd0ef3d Show chosen element in custom theme selector. 2021-09-28 19:27:41 +04:00
John Preston
1204e282d3 Fix attach icon in theme preview. 2021-09-28 19:27:41 +04:00
John Preston
6588242793 Prepare correct custom chat theme preview. 2021-09-28 19:27:41 +04:00
John Preston
b1ba9a42c6 Use Ui::GenerateBackgroundImage for preview in Settings. 2021-09-28 19:27:41 +04:00
John Preston
ab0d2bf9c6 Initial chat theme changing. 2021-09-28 19:27:41 +04:00
John Preston
80028e41f3 Bump OpenAL version in prepare script. 2021-09-28 19:25:39 +04:00
John Preston
2c581adc55 Add some hardening compiler / linker flags to dependencies. 2021-09-28 18:44:52 +04:00
John Preston
f0e8c1e325 Update lib_webview and docker patches revision. 2021-09-28 12:23:54 +04:00
John Preston
a2db9de4d7 Remove debug code. 2021-09-28 11:30:18 +04:00
John Preston
a228c62286 Fix "Nobody Viewed / Watched / Listened" seen state. 2021-09-27 18:51:50 +04:00
John Preston
37d940eca6 Beta version 3.1.4.
- Fix crash in network availability init.
- Fix assertion violation after a NaN-resulting std::round call.
2021-09-27 13:29:11 +04:00
John Preston
f7c24c54a1 Fix crash in failed network availability init. 2021-09-27 13:25:04 +04:00
John Preston
19ce1edc16 Use base::SafeRound instead of std::round.
Previous assertion violations because of NaN from std::round were
in video streaming, see commits 27d58ba07b, 8f5830d520.

Now the crashes happened in the ConvertScale() call from a background
thread when preparing an image from clipboard for sending to a chat.
2021-09-27 12:13:57 +04:00
John Preston
21b10cebe0 Beta version 3.1.3.
- Fix illegal instruction crash in opus encoder.
2021-09-27 10:28:29 +04:00
John Preston
50435f7783 Allow creating links with Ip addresses. 2021-09-27 10:28:29 +04:00
Ilya Fedin
1b789de4f4 Cherry-pick a opus fix for detecting CPU instructions on Windows 2021-09-27 08:50:51 +04:00
John Preston
a50310f0c1 Beta version 3.1.2 (Windows only).
- Control video in fullscreen mode using arrows and numbers.
- Open locations in browser if default Bing Maps is not installed.
- Reconnect without timeout when network availability changes.
- Crash fixes.
2021-09-26 17:24:09 +04:00
John Preston
eb02a7861a Add modern C++/WinRT headers path to Telegram project. 2021-09-26 17:20:22 +04:00
John Preston
8759ca4577 Rewrite bingmaps check to C++/WinRT. 2021-09-26 17:17:57 +04:00
Hermesis
d5c6d9a231 Open map in browser if default "bingmaps:" handler is not found 2021-09-26 17:16:38 +04:00
John Preston
63f179e93e Add Windows network reachability backend. 2021-09-26 14:31:54 +04:00
Hermesis
cfcc1b1ce7 Control video in fullscreen mode using arrows and numbers 2021-09-26 14:07:02 +04:00
John Preston
da1945d0ca Add some more information for an assertion violation. 2021-09-25 22:49:51 +04:00
John Preston
12252ef1aa One more attempt of OpenGL context loss crash fix. 2021-09-25 22:39:49 +04:00
John Preston
1eef94e8d9 Fix possible crash in delayed typing updates. 2021-09-25 22:39:11 +04:00
Ilya Fedin
0984e631fa Use opus built with cmake on Windows 2021-09-25 15:35:32 +04:00
John Preston
ec064a904d Version 3.1.1.
- Crash fixes.
2021-09-24 08:47:02 +04:00
John Preston
b47692e920 Update patches revision. 2021-09-24 08:46:52 +04:00
John Preston
132f127f3f Add some assertions to debug a crash. 2021-09-24 08:44:22 +04:00
John Preston
5c44b851fe One more attempt to fix crashes on context loss. 2021-09-23 17:39:39 +04:00
John Preston
2f5bed2899 Skip "contact joined" toast if disabled in Settings.
The chats still appear (they are server-side), but skip the toast.
2021-09-23 17:37:29 +04:00
John Preston
cf76933352 Fix saving tray "Toggle notifications" on relaunch.
Fixes https://bugs.telegram.org/c/9509
2021-09-22 14:03:41 +04:00
John Preston
eaa4c5e5b1 Fix caching by making a fake dir ThirdParty/gyp. 2021-09-22 12:42:59 +04:00
John Preston
a4b5b6e370 Fix crash in lottie destructor.
Fixes #16985.
2021-09-21 21:29:59 +04:00
John Preston
c1be1ca4ae Add ./build/prepare/linux.sh which builds docker. 2021-09-21 18:11:24 +04:00
Ilya Fedin
b2df781b76 Fix icon for Quit Telegram taskbar item in snap 2021-09-20 15:09:42 +03:00
Ilya Fedin
38815c1ca8 Backport fonts hook from snapcraft extensions 2021-09-20 11:40:03 +03:00
John Preston
2ec92f541c Version 3.1: Fix building Qt for Release. 2021-09-19 18:42:29 +03:00
John Preston
7ce8b42216 Version 3.1.
- Some animated emoji now have extra effects.
- Send 🎆 🎉, 🎈, :like:, 💩 or ❤️
to any private chat, then click on the animated emoji
to launch the effect.
- If your chat partner also has the chat open,
you will both see the effects.
- See the "Watching" status
when your chat partner is enjoying emoji effects with you.
- More interactive emoji coming soon.
- Right click one of your outgoing messages in small groups
to see who recently viewed it.
- To protect privacy, read receipts are only stored for 7 days
after the message was sent.
- Record video and audio from live broadcasts in your group or channel.
- Admins can start recording from the '...' menu.
- Choose between recording in portrait or landscape orientation.
- Finished recordings are sent to the admin's Saved Messages
and can be easily shared.
2021-09-19 18:21:31 +03:00
John Preston
17511749de Hold only last 5 custom themes in memory. 2021-09-19 18:15:46 +03:00
John Preston
4f6c7657bf Fix comments root pinned view disappearing. 2021-09-19 17:48:00 +03:00
John Preston
54085c70a4 Select light / dark custom theme based on dialogsBg value. 2021-09-19 17:39:29 +03:00
John Preston
e6c4b96c54 Just close SendFilesBox on last item remove.
Fixes https://bugs.telegram.org/c/2298
2021-09-19 17:36:31 +03:00
John Preston
b75221737a Make history-down button scale better. 2021-09-19 17:29:42 +03:00
John Preston
c336d725ea Fix media controls hiding workaround. 2021-09-19 16:55:55 +03:00
John Preston
d0fcc40d25 Don't play interactions in an inactive window. 2021-09-19 15:12:37 +03:00
John Preston
422bfd973b Don't play interactions without large emoji. 2021-09-19 15:12:20 +03:00
John Preston
d4db679ce8 Base custom chat themes on a separate light theme. 2021-09-19 14:43:09 +03:00
John Preston
2c7d8858c0 Base custom chat themes on a separate dark theme. 2021-09-19 14:43:09 +03:00
John Preston
155bbed3f4 Show correct video recording status. 2021-09-19 14:42:56 +03:00
John Preston
b1517c68fb Colorize outgoing selected state in light custom themes. 2021-09-19 14:42:51 +03:00
John Preston
d206ba7e1d Always underline links if color is the same as text. 2021-09-19 14:42:46 +03:00
John Preston
af100c2d13 Fix poll answer check in custom chat themes. 2021-09-19 14:40:43 +03:00
John Preston
1f25777929 Update watching emoji interaction phrase. 2021-09-19 14:40:43 +03:00
John Preston
a566405598 Show correct emoticon in interaction-seen status. 2021-09-19 14:40:43 +03:00
John Preston
b02967a44e Update tg_angle in prepare script. 2021-09-19 14:40:43 +03:00
John Preston
e0135e509d Allow exporting test chat themes. 2021-09-19 14:40:43 +03:00
John Preston
8274fddcbc Revert build-in Tinted theme.
Fixes #16969.
2021-09-19 14:40:43 +03:00
John Preston
82c45871c7 Fix build with Xcode. 2021-09-19 14:40:43 +03:00
23rd
2164caaab7 Fixed formatting of comments count. 2021-09-19 14:40:07 +03:00
Ilya Fedin
f4b162cbaf Update submodules 2021-09-19 13:22:38 +03:00
Ilya Fedin
4bc4584868 Build glibmm with LTO
In combination with https://github.com/desktop-app/cmake_helpers/pull/126 gets rid of unused glib symbols
2021-09-19 13:22:38 +03:00
John Preston
890a126423 Use shared provider for interaction animations. 2021-09-18 20:29:56 +03:00
John Preston
42cc24e167 Cache interactions in four cache keys. 2021-09-17 19:23:52 +03:00
John Preston
26b9146c32 Beta version 3.0.5: Try fixing messages skipping. 2021-09-17 14:27:34 +03:00
John Preston
ab6f5ae2ac Optimize bubble gradient background painting. 2021-09-17 13:22:33 +03:00
John Preston
559d4cf4da Update theme preview. 2021-09-17 13:22:33 +03:00
23rd
449f2d2f94 Migrated dependencies in Github CI for macOS. 2021-09-17 13:12:07 +03:00
John Preston
038f19d055 Beta version 3.0.5: Fix build on Linux. 2021-09-17 11:45:05 +03:00
John Preston
10d405aef4 Beta version 3.0.5: Add in-app changelog. 2021-09-17 10:57:42 +03:00
John Preston
efd4cceb19 Beta version 3.0.5.
- Add support for Emoji 13.1.
2021-09-17 10:56:16 +03:00
John Preston
822a3b69b5 Update libtgvoip. 2021-09-17 10:27:10 +03:00
John Preston
a632798383 Preserve alpha value in colorizer. 2021-09-17 10:25:37 +03:00
John Preston
cca08e3946 Fix crash in emoji interactions. 2021-09-17 10:25:36 +03:00
John Preston
4d267327b8 Update built-in Tinted dark theme. 2021-09-17 10:25:36 +03:00
John Preston
06798adce4 Accept skin colors and heart colors. 2021-09-17 10:25:36 +03:00
John Preston
34c0d97c54 Show emoji interaction seen status. 2021-09-17 10:25:36 +03:00
John Preston
4b7f594b0e Send emoji interaction seen requests. 2021-09-17 10:25:36 +03:00
John Preston
cfb43081c7 Play incoming interactions. 2021-09-17 10:25:36 +03:00
John Preston
703ea9aacd Apply scale keeping window center in place. 2021-09-17 10:25:36 +03:00
John Preston
de9b21e436 Correctly render interactions on inbox messages. 2021-09-17 10:25:36 +03:00
John Preston
73c0ea4b7d Don't mark as read when forwarding to scheduled. 2021-09-17 10:25:36 +03:00
John Preston
3e681e5449 Always force window frame inside screen geometry.
I hope this fixes #16934.
2021-09-17 10:25:36 +03:00
John Preston
bc2f96251f Limit amount of playing interactions. 2021-09-17 10:25:36 +03:00
John Preston
15f83892a1 Start emoji interactions playback. 2021-09-17 10:25:36 +03:00
John Preston
b6fafdd8f7 Limit emoji size to half of sticker size. 2021-09-17 10:25:36 +03:00
John Preston
139b9723d7 Accumulate and send emoji interactions. 2021-09-17 10:25:36 +03:00
John Preston
d152782115 Load and reload interaction stickers. 2021-09-17 10:25:36 +03:00
John Preston
35356a1736 Update API scheme. 2021-09-17 10:25:35 +03:00
Gleb Smirnoff
ef27670954 Fix compilation in presence of libzip installed.
When both minizip [1] and libzip [2] are present in the build
environment we have two <zip.h> includes. We are interested in
the minizip. Unfortunately, libzip usually installs its zip.h
straight into ${PREFIX}/include where lots of other headers reside.
We pick up ${PREFIX}/include into the include path with the
desktop-app::lib_base target, which is also dependency of
of tdesktop::td_* targets. To fix compilation in presence of
conflicting zip.h we need to put minizip's include directory
before ${PREFIX}/include, thus record its dependency before
all other dependencies that can bring desktop-app::lib_base.

[1] http://www.winimage.com/zLibDll/minizip.html
[2] https://libzip.org
2021-09-17 09:47:48 +03:00
Gleb Smirnoff
8cf9dc3319 Pull up to recent cmake_helpers and tg_owt that bring FreeBSD fixes. 2021-09-15 23:24:39 +03:00
Gleb Smirnoff
59f2f750b4 On FreeBSD the system malloc is jemalloc and non-portable
extensions are enabled including malloc_np.h.
2021-09-15 23:24:39 +03:00
John Preston
8069fdd873 Use base/random.h instead of openssl::RandomValue. 2021-09-15 13:42:22 +03:00
John Preston
52721847f4 Fix outgoing voice message unread mark. 2021-09-15 13:42:22 +03:00
John Preston
e492bbb883 Fix delayed pattern-with-negative-intensity appearance. 2021-09-14 16:36:30 +03:00
John Preston
7f20cc7b44 Update emoji to 13.1. 2021-09-14 15:14:25 +03:00
John Preston
7fbce765c9 Apply uniform-color palette to webpage preview titles. 2021-09-14 15:14:12 +03:00
John Preston
f771ad8cb1 Beta version 3.0.4: Fix build for Windows. 2021-09-13 20:13:15 +03:00
John Preston
6a53fc7edc Beta version 3.0.4: Add some theme loading logging. 2021-09-13 20:09:55 +03:00
John Preston
889c3293e7 Fix PathShiftGradient colors with custom palettes. 2021-09-13 20:09:23 +03:00
23rd
fa4b7145f5 Added extra space to choosing sticker animation in left position. 2021-09-13 18:13:50 +03:00
23rd
a5be9d78d8 Fixed animation for grouped userpics in who read context menu item. 2021-09-13 18:13:50 +03:00
John Preston
21c562fcb7 Make "set_version.py" working with Python 2.7 as well. 2021-09-13 18:03:43 +03:00
John Preston
626c062bf0 Beta version 3.0.4.
- Fix a crash when joining video chat or live broadcast.
- Add a "Close to Taskbar" option when tray icon is disabled
(Windows and Linux).
2021-09-13 18:01:39 +03:00
Ilya Fedin
e92ae40ecb Implement close to taskbar option 2021-09-13 17:46:53 +03:00
John Preston
ce256161f1 Couple of crash fixes. 2021-09-13 17:39:17 +03:00
John Preston
3bf9a1c70b Build minidump_stackwalk as part of macOS prepare. 2021-09-13 16:59:10 +03:00
John Preston
3202a5f081 Fix prepare getch for macOS. 2021-09-13 16:50:44 +03:00
John Preston
e99f650eaa Change default autoupdate URL. 2021-09-13 16:33:31 +03:00
John Preston
c6097d3d11 Accept "livestream" and "videochat" link params. 2021-09-13 16:19:59 +03:00
John Preston
58b5b3deec Update main built-in palette values. 2021-09-13 15:40:02 +03:00
John Preston
5a63428093 Improve messages in preparep.py. 2021-09-13 15:39:44 +03:00
John Preston
0c42bca111 Ask before rebuilding in prepare.py. 2021-09-13 15:01:52 +03:00
John Preston
13bf089672 Update patches revision. 2021-09-13 14:21:56 +03:00
John Preston
f73264025d Fix a crash after joining broadcasts. 2021-09-13 14:21:01 +03:00
Ilya Fedin
0a6fb696a3 Build Qt without egl-extension-platform-wayland 2021-09-13 10:51:35 +03:00
John Preston
bc2e6c4fd1 Accept uppercase hex values in theme testing links. 2021-09-12 23:18:37 +03:00
John Preston
d822f8e9ff Improve colorizing more. 2021-09-12 23:16:23 +03:00
John Preston
86362875dd Beta version 3.0.3.
- Try fixing crashes in allocator on Linux.
2021-09-12 01:53:04 +03:00
John Preston
0a4a96d4cd Fix action build on Linux. 2021-09-12 01:39:28 +03:00
John Preston
1c33eee80a Update hime to 0.9.11. 2021-09-12 00:33:35 +03:00
Ilya Fedin
4f5558d28c Move new dependencies to the beginning of Dockerfile, update patches
The reason was to not to do a full rebuild, but looks like the cache is already cleaned
2021-09-12 00:25:01 +03:00
Ilya Fedin
3fbd68cff9 Don't link glib with DESKTOP_APP_DISABLE_DBUS_INTEGRATION 2021-09-12 00:12:13 +03:00
Ilya Fedin
ee8c6f68d7 Use clang to build jemalloc since it crashes with gcc 2021-09-12 00:11:47 +03:00
John Preston
8d4174afb5 Fix macOS build in GitHub Actions. 2021-09-11 20:13:18 +03:00
John Preston
9150cc77f9 Improve colorizing of custom themes. 2021-09-11 12:26:35 +03:00
John Preston
8d31769846 Fix build with Xcode. 2021-09-11 00:02:15 +03:00
John Preston
13c00949ed Add a simple way of testing color themes. 2021-09-10 22:29:30 +03:00
John Preston
c4d822ba02 Fix action build on Windows. 2021-09-10 16:19:07 +03:00
John Preston
fd288fbdfd Beta version 3.0.2: Fix Windows build scripts. 2021-09-10 14:33:47 +03:00
John Preston
453954f901 Fix forward options for text messages. 2021-09-10 14:33:18 +03:00
John Preston
b1d52e088e Beta version 3.0.2.
- Check who've seen your message in small groups from the context menu.
- Enable recording with video in live streams and video chats.
2021-09-10 13:42:53 +03:00
Ilya Fedin
0570b2639d Link drm & zlib statically like before, make GL optional 2021-09-10 13:24:13 +03:00
Gleb Smirnoff
720f238cf8 Close a race between Gio threads and Qt application init.
QApplication has a historical feature[1] of calling setlocale(3) at init,
which today cause more harm than good.  Such call isn't thread safe neither
per C standard, not per any known libc implementation.  The Gio threads
would call into locale reading functions all the time, so early access to
locale by Gio may race with setlocale() by Qt leading to undefined behavior.

Platform specific start before the Sandbox (aka QApplication) is at core
design of tdesktop and that order can't be changed. There is no way to pause
Gio until QApplication instantiates.

Fortunately, Qt library itself has a static global flag that prevents it
from calling setlocale() twice. We don't even need to instantiate a
temporary QCoreApplication, we can just call into the method.  So call
it form Platform::start before any existing or future calls to Gio.

Fixes #16922

[1] https://chat.stackoverflow.com/rooms/63812/discussion-between-phil-armstrong-and-matteo-italia
2021-09-10 13:18:20 +03:00
John Preston
05b35bb803 Update API scheme. 2021-09-10 12:58:52 +03:00
John Preston
faa5619f1e Remove check used only for 32 bit ids. 2021-09-10 10:23:00 +03:00
John Preston
28be89f7c3 Correctly apply photos from "min" users. 2021-09-09 16:59:36 +03:00
23rd
54e76c0b71 Removed extra space from end of country patterns. 2021-09-09 16:32:07 +03:00
23rd
900a7d0b2b Appended references to const auto types in loop to prevent copying.
Suggested by Apple Clang.
2021-09-09 16:32:04 +03:00
John Preston
baea762832 Allow QSurfaceFormat::NoProfile in OpenGL detection. 2021-09-09 16:31:51 +03:00
John Preston
79b0bbf6cf Add an icon to who read context menu item. 2021-09-09 16:27:44 +03:00
John Preston
b4bff83266 Limit popup menu with who read users height. 2021-09-09 16:02:37 +03:00
John Preston
a3e8e379dd Show userpics in full who read list. 2021-09-09 11:48:30 +03:00
John Preston
14314df26a Show userpics in who read context item. 2021-09-09 00:10:49 +03:00
John Preston
8f480b52e7 Display who seen loading state as disabled item. 2021-09-08 14:38:05 +03:00
John Preston
fa5e66a736 Check listened / viewed for voice / video messages. 2021-09-08 13:50:56 +03:00
John Preston
eb1874566b Fix media caption text selection rendering. 2021-09-08 13:47:34 +03:00
John Preston
f135ece841 Update patches revision. 2021-09-08 00:10:36 +03:00
John Preston
374e3238ad Build FFmpeg with upstream yasm on macOS. 2021-09-07 23:41:54 +03:00
John Preston
54adf77d99 Build dependencies by script on Windows and macOS. 2021-09-07 23:41:54 +03:00
John Preston
7797099a49 Fix media viewer loading animation first show. 2021-09-07 23:41:08 +03:00
John Preston
d00226d51e Don't show important tooltips above layers. 2021-09-07 23:41:08 +03:00
John Preston
abbac61702 Show who've seen the message in submenu. 2021-09-07 23:41:08 +03:00
John Preston
2f5f100626 Start loading users who've read an outgoing message. 2021-09-07 23:41:08 +03:00
John Preston
8f9e394dd0 Fix build with GCC. 2021-09-07 23:41:08 +03:00
23rd
4582d2d0d5 Attempted to fix ordering buttons above boxes in group calls panel. 2021-09-07 23:41:08 +03:00
23rd
cd59ba6629 Added ability to start video recording in group calls. 2021-09-07 23:41:08 +03:00
John Preston
19611d5b26 Update patches revision in Docker. 2021-09-07 23:41:08 +03:00
John Preston
74846c87ce Closed alpha version 3.0.1.1. 2021-09-07 23:41:08 +03:00
John Preston
e880b66574 Rotate background with half a speed. 2021-09-07 23:41:08 +03:00
John Preston
b6cd9c2911 Invert patter image to white for dark colors. 2021-09-07 23:41:08 +03:00
John Preston
4273167aa2 Adjust outgoing bubble text and icon colors. 2021-09-07 23:41:08 +03:00
John Preston
c318f57fc0 Use outbox bubble colors, adjust custom colors. 2021-09-07 23:41:08 +03:00
John Preston
e4e5c4a1d2 Support 64 bit peer-bare-ids in export settings. 2021-09-07 23:41:07 +03:00
John Preston
a6c98f4bb4 Update API scheme to layer 133. 2021-09-07 23:41:07 +03:00
23rd
ce7a3c354c Simplified conditions for hiding hint for photo editor. 2021-09-07 23:41:07 +03:00
23rd
150dbef19f Added ability to save icon of last voice playback speed. 2021-09-07 23:41:07 +03:00
23rd
81a72caf07 Added context menu to voice playback speed button.
Fixed #16868.
Fixed #16138.
2021-09-07 23:41:07 +03:00
23rd
2f1db4f449 Fixed sending of choosing type from field autocomplete. 2021-09-07 23:41:07 +03:00
23rd
92425c7a1e Fixed space of action animation in middle text for different scales. 2021-09-07 23:41:07 +03:00
23rd
dabe83bd27 Fixed animation updating with small width for choosing sticker. 2021-09-07 23:41:07 +03:00
23rd
613f2ba708 Replaced instant base::call_delayed with InvokeQueued. 2021-09-07 23:41:07 +03:00
23rd
c1d3e5f0c5 Removed sending of typing action when sticker is chose in autocomplete. 2021-09-07 23:41:07 +03:00
23rd
de3b1ff9ae Removed unused static variable from CountryInput. 2021-09-07 23:41:07 +03:00
23rd
d4c0ac5e4a Removed forwarding options for dices. 2021-09-07 23:41:07 +03:00
23rd
58da62b413 Added refreshing of list in CountrySelectBox on update. 2021-09-07 23:41:07 +03:00
23rd
e80a7907a9 Removed Q_OBJECT from CountryInput. 2021-09-07 23:41:07 +03:00
23rd
48f7d715d6 Added all available calling codes on each country to CountrySelectBox. 2021-09-07 23:41:07 +03:00
Ilya Fedin
45360adbc2 Remove unneeded libraries from snapcraft.yaml 2021-09-07 23:40:08 +03:00
Ilya Fedin
60fb2d7c1f Move LZMA usage under TDESKTOP_DISABLE_AUTOUPDATE 2021-09-07 23:40:08 +03:00
John Preston
84cbb98000 Attempt#3 to fix build with GCC. 2021-09-07 12:59:33 +03:00
John Preston
32301046e7 Attempt#2 to fix build with GCC. 2021-09-07 12:56:54 +03:00
Ilya Fedin
23378e4661 Migrate to no-response action since github app is archived 2021-09-07 12:26:22 +03:00
GitHub Action
9a6d7d3a95 Update User-Agent for DNS to Chrome 92.0.4515.131. 2021-09-07 12:24:42 +03:00
Beni Cherniavsky-Paskin
f8c631ed24 Export CSS: per-line automatic bidi direction
Fixes #16120.
`unicode-bidi: plaintext` makes browser auto-detect base bidi direction according to bidi algorithm heuristics, on each line separately.
https://drafts.csswg.org/css-writing-modes/#bidi-algo
AFAICT this matches both Android and Desktop behaviors, and is the friendly behavior for mixed-direction users.
Purely LTR users should not be affected — the heuristics return LTR even on "neutral" lines that contain no letters, only punctuation/emojis/digits.
(http://www.unicode.org/reports/tr9/#P2 — rule P3 defaults to level 0, which is LTR.)
Whereas all RTL language users in practice need to deal with mixed-direction texts, and the ability to split lines to prevent LTR/RTL mixups is extremely handy...

The `text-align: start` ensures LTR-detected lines are displayed left-aligned, and RTL-detected lines right-aligned.
Which again matches both Android and Desktop behaviors.
This is redundant — it seems already the default with current CSS — but is important for mixed-language users, so I wanted to ensure it in case somebody sets alignment on bigger parts of the document in the future.
2021-09-07 12:20:44 +03:00
John Preston
246f2ca1ac Attempt to fix build with GCC. 2021-09-07 12:19:42 +03:00
John Preston
9f43719075 Fix build with Xcode. 2021-09-07 12:18:18 +03:00
Ilya Fedin
05d4d58f8b Replace GTK integration with xsettings + XDP 2021-09-06 15:43:28 +03:00
John Preston
434a7c5293 Remember volume from SMC.
Co-authored-by: 23rd <23rd@vivaldi.net>
2021-09-06 15:40:51 +03:00
udf
fb1c253992 Set mixer volume on media control change 2021-09-06 15:40:51 +03:00
udf
d53932382c Set mixer volume before changing setting 2021-09-06 15:40:51 +03:00
John Preston
463da7e410 Allow Ui::GL::Renderer::deinit on lost context. 2021-09-06 13:13:26 +03:00
John Preston
241798ac29 Custom colors in historyDown/unreadMentions buttons. 2021-09-06 13:13:26 +03:00
John Preston
64457cd6cb Custom colors in FillComplex(Overlay|Location)Rect. 2021-09-06 13:13:26 +03:00
John Preston
16c9031f88 Fix a phrase in voice chat settings. 2021-09-06 13:13:26 +03:00
John Preston
b2364140e9 Custom colors in all media/history_view_ modules. 2021-09-06 13:13:26 +03:00
John Preston
cbfe57c51d Custom colors in history_view_document module. 2021-09-06 13:13:26 +03:00
John Preston
23e9e7b9f0 Remove for_const macro. 2021-09-06 13:13:26 +03:00
John Preston
2a2607d026 Custom colors in history_view_service_message module. 2021-09-06 13:13:26 +03:00
John Preston
1a4a9319f3 Custom colors in history_view_message module. 2021-09-06 13:13:26 +03:00
John Preston
444f21fd7e Support colorizing of the default palette. 2021-09-06 13:13:26 +03:00
John Preston
2554aaf3c0 Move Window::Theme::Colorizer to style::colorizer. 2021-09-06 13:13:26 +03:00
John Preston
c4982711db Use ui/style/style_core_palette. 2021-09-06 13:13:26 +03:00
Ilya Fedin
5000902d61 Convert feature request template to the new format 2021-09-05 17:36:45 +03:00
Ilya Fedin
32dcb73cba Convert bug report issue template to the new format 2021-09-05 17:36:45 +03:00
John Preston
f6175e7b7c Invite by link in case of non-self voice chat join. 2021-09-02 11:04:28 +03:00
John Preston
b487644355 Fix incorrect bad file size logging. 2021-09-02 11:03:40 +03:00
John Preston
09e014cc14 Force non-transparency for WebDocuments in PhotoData. 2021-09-02 10:31:57 +03:00
John Preston
b0f54822e0 Version 3.0.1.
- Crash fixes.
2021-09-01 19:41:57 +03:00
John Preston
df4c9a0765 Cache correct background faster. 2021-09-01 19:38:36 +03:00
John Preston
47e15d136d Fix background update with all chats closed. 2021-09-01 19:28:02 +03:00
John Preston
5aff4cca0e Fix rare crash in message history resizing. 2021-09-01 19:21:39 +03:00
John Preston
a064e836f2 Removed redundant "base::EnterFromEventLoop". 2021-09-01 19:08:56 +03:00
John Preston
81ed3acfa1 Attempt to fix a crash in event loop nesting tracking. 2021-09-01 19:08:23 +03:00
John Preston
cc2dd31555 Attempt to fix a possible crash in InputField. 2021-09-01 18:50:11 +03:00
John Preston
0ee6395022 Try to a fix crash after lost OpenGL context. 2021-09-01 18:38:12 +03:00
John Preston
1d2a18929a Use QOperatingSystemVersion. 2021-09-01 18:33:53 +03:00
John Preston
a0a3de125a Detect Windows 11 by build number 22000. 2021-09-01 18:33:43 +03:00
John Preston
1cf207671e Fix crash in countries list refresh. 2021-09-01 18:33:24 +03:00
John Preston
c208b5dc58 Couple more of crash fixes. 2021-09-01 13:45:45 +03:00
John Preston
6eb5d47c35 Couple of crash fixes. 2021-09-01 13:27:36 +03:00
23rd
59977da2b4 Added choosing sticker action to field autocomplete. 2021-09-01 01:23:20 +03:00
23rd
4550b2a315 Decreased record bitrate of voice messages.
Fixed #6708.
2021-09-01 01:23:20 +03:00
23rd
bcbab7ad8e Added ability to change playback speed for long audio files. 2021-09-01 01:23:20 +03:00
23rd
b635a9d4a5 Changed voice playback speed setting to storage value of speed. 2021-09-01 01:23:20 +03:00
23rd
eadd7704ef Removed Main::Session forward declaration from data_types. 2021-09-01 01:23:20 +03:00
23rd
e6f0c176f7 Moved AudioMsgId to separated file. 2021-09-01 01:23:20 +03:00
John Preston
22d4331ead Version 3.0: Update tgcalls submodule. 2021-09-01 01:15:49 +03:00
John Preston
1247fde04e Version 3.0.
- Broadcast video and share your screen
to an unlimited number of viewers.
- To begin, tap the Live Stream button
in the title bar of a community where you are an admin.
- Tap the "Forward Message" label above the input field
to change how messages will be sent.
- Hide or show the original sender's name.
- Remove or keep captions from media messages.
- See how many unread comments there are
when opening a channel's comments.
2021-08-31 22:26:06 +03:00
John Preston
88a2f05c6d Fix crash in new phone formatting. 2021-08-31 22:26:06 +03:00
John Preston
df15c67dab Improve phrase in forwarding options box. 2021-08-31 22:10:56 +03:00
John Preston
f59db10267 Update default chat background. 2021-08-31 22:10:39 +03:00
John Preston
d29a1f5cd2 Refresh choose sticker animation data on lang update. 2021-08-31 20:47:08 +03:00
John Preston
cd8d257c70 Disable chat themes. 2021-08-31 19:51:56 +03:00
John Preston
9dfc60026e Add simple forwarding options on bar click. 2021-08-31 19:47:38 +03:00
John Preston
e9a5c45f34 Use separate strings for channel voice chats. 2021-08-31 17:59:29 +03:00
John Preston
2c07bdd0e8 Beta version 2.9.14.
- Fix crash in authorization after logout.
2021-08-31 14:07:42 +03:00
John Preston
b106438de8 Fix crash in stale authorization keys destruction. 2021-08-31 14:06:12 +03:00
23rd
92b7afc5f5 Fixed position of send action animation. 2021-08-31 14:06:11 +03:00
John Preston
0f28069881 Beta version 2.9.13: Fix clean build. 2021-08-31 13:35:12 +03:00
John Preston
cbe38af427 Beta version 2.9.13: Mark 'isPrefix' as '[[maybe_unused]]'. 2021-08-31 12:45:37 +03:00
John Preston
4598ce2671 Beta version 2.9.13: Update lib_webview. 2021-08-31 11:13:48 +03:00
John Preston
244ccba871 Beta version 2.9.13.
- See unread comments count when scrolling discussions in channels.
2021-08-31 10:37:31 +03:00
23rd
dc8eb79295 Moved code of data send actions from Data::Session to separated file. 2021-08-30 23:08:57 +03:00
23rd
f7abd85761 Slightly optimized replacement in send action text. 2021-08-30 21:45:56 +03:00
23rd
436212bb88 Added animation of send action for stickers to middle of text. 2021-08-30 20:50:36 +03:00
23rd
8c17e3e578 Added sending action when choosing sticker. 2021-08-30 20:50:32 +03:00
23rd
0852dbc40f Formatted classes for send actions. 2021-08-30 20:50:28 +03:00
23rd
ccea6ce492 Added animated indicator of choosing sticker action to chats list. 2021-08-30 20:50:24 +03:00
John Preston
2d0bcf7dca Resend non-authorization requests on main DC change. 2021-08-30 20:32:58 +03:00
John Preston
ae40ea9336 Always start with QR-code login. 2021-08-30 20:32:58 +03:00
John Preston
52a6282eb9 Count unread replies locally when possible. 2021-08-30 20:32:58 +03:00
John Preston
c39024c7fd Track and display unread count in discussions. 2021-08-30 20:32:58 +03:00
John Preston
85e4c8527b Always write local drafts the same way. 2021-08-30 20:32:58 +03:00
John Preston
f2da34c9f5 Fix jump to message / to end in discussions. 2021-08-30 20:32:58 +03:00
John Preston
9709297713 Remove unread bar in not-seen post comments opening. 2021-08-30 20:32:58 +03:00
John Preston
809b0e9fe0 Fix build for Linux. 2021-08-30 20:32:58 +03:00
John Preston
d684c8057c Fix build for macOS. 2021-08-30 20:32:57 +03:00
John Preston
d5820e7a5a Closed alpha version 2.9.12.1. 2021-08-30 20:32:57 +03:00
John Preston
beff635e45 Colorize bubbles according to a custom chat theme. 2021-08-30 20:32:57 +03:00
John Preston
5de83ef30c Fix assertion violation in profile video with zero file size. 2021-08-30 20:32:57 +03:00
John Preston
f5a323e40a Move all background helper methods to chat_theme module. 2021-08-30 20:32:57 +03:00
John Preston
0a1e84ddb2 Move ChatTheme to td_ui. 2021-08-30 20:32:57 +03:00
John Preston
3cd0f9d189 Start non-unique ChatTheme. 2021-08-30 20:32:57 +03:00
John Preston
f3dd8c68b3 Load chat cloud themes list. 2021-08-30 20:32:57 +03:00
John Preston
70808dfa7d Show chat theme changing service messages. 2021-08-30 20:32:57 +03:00
John Preston
0821c21285 Support mono playback in OpenAL ADM. 2021-08-30 20:32:57 +03:00
John Preston
29c0956d61 Always try to play video in voice chats. 2021-08-30 20:32:57 +03:00
John Preston
0cfede984c Update API scheme to layer 132. 2021-08-30 20:32:56 +03:00
23rd
558e1d96fd Simplified extracting of calling code from phone number. 2021-08-30 20:32:56 +03:00
23rd
44c188024e Fixed updating of masked input field in intro. 2021-08-30 20:32:56 +03:00
23rd
3acbcc6247 Updated fallback countries list. 2021-08-30 20:32:56 +03:00
23rd
6caddb5141 Removed old code entry from country info. 2021-08-30 20:32:56 +03:00
23rd
963fda69a8 Removed old formatting of phone numbers. 2021-08-30 20:32:56 +03:00
23rd
6ff0cb853d Added ability to extract pattern groups from incomplete phone number. 2021-08-29 23:31:12 +03:00
23rd
10c8162575 Added ability to extract pattern groups from phone number in modern way. 2021-08-29 23:31:12 +03:00
23rd
e4640590d0 Added ability to format phone numbers in modern way. 2021-08-29 23:31:12 +03:00
23rd
e5b85bbaf1 Improved country caching. 2021-08-29 23:31:12 +03:00
23rd
8310d7e47c Improved parsing of countries data from server. 2021-08-29 23:31:12 +03:00
23rd
cf523953ad Added initial manager of countries. 2021-08-29 23:29:39 +03:00
23rd
3e80c04da7 Replaced const char ptr with QString in country structs. 2021-08-29 21:01:30 +03:00
23rd
c593f43629 Made list of countries mutable. 2021-08-29 21:01:30 +03:00
23rd
86aaa9673d Moved countries to singleton. 2021-08-29 21:01:10 +03:00
23rd
a230e83778 Simplified some names in countries. 2021-08-29 21:00:48 +03:00
23rd
df02bbb0a3 Moved countries from Data to Countries namespace. 2021-08-29 20:39:43 +03:00
John Preston
1b3075ac2e Fix pattern background tiling on Retina screens. 2021-08-25 17:15:07 +03:00
John Preston
d45c530db0 Fix CDN downloads after authorization. 2021-08-25 16:24:20 +03:00
John Preston
2671e67119 Fix crash on cancelled Qr login attempt. 2021-08-25 16:24:15 +03:00
John Preston
bdc275a927 Don't crash on bad userId in local storage. 2021-08-25 16:24:09 +03:00
Ilya Fedin
6192413f0b Split webview initialization from GtkIntegration class 2021-08-25 12:52:43 +03:00
Ilya Fedin
51df482571 Get rid of gtk open with dialog
Portal open with dialog works just fine and is a more universal solution... That allows to get rid of an additional process.
2021-08-25 12:52:43 +03:00
John Preston
2694cb76a7 Remove crash debug information from streaming. 2021-08-25 11:24:32 +03:00
John Preston
b5ae492f5e Beta version 2.9.12: Fix build on Windows. 2021-08-24 21:08:35 +03:00
John Preston
018ee0564f Beta version 2.9.12.
- Disable floating point exceptions in 32 bit Windows version.
2021-08-24 20:34:54 +03:00
John Preston
156eb69d38 Disable fp exceptions in Windows 32 bit build. 2021-08-24 20:32:26 +03:00
23rd
df0229cffd Fixed render of text selection in sections.
Regression was introduced in f4fdadd3b0.
2021-08-24 20:02:36 +03:00
23rd
b3f8d0e81a Removed dcId from passport FileKey. 2021-08-24 20:02:36 +03:00
23rd
559d488b0b Moved load status of files in passport to separated class. 2021-08-24 20:02:36 +03:00
John Preston
401529e7d1 Fix possible crash in media viewer hide workaround. 2021-08-24 19:25:31 +03:00
John Preston
a6fb0e372e Beta version 2.9.11.
- Resolve (again) a video playback crash in 32 bit Windows version.
2021-08-24 18:12:26 +03:00
John Preston
7948fc509e Remove (incorrect) checks for double casts. 2021-08-24 18:11:47 +03:00
John Preston
2d6155fc85 Throw fp exceptions in Windows 32 bit build. 2021-08-24 17:43:31 +03:00
John Preston
c7e60ef723 Beta version 2.9.10.
- Resolve (hopefully) a video playback crash in 32 bit Windows version.
2021-08-24 12:42:58 +03:00
John Preston
8f5830d520 Workaround both std::round-s in video streaming. 2021-08-24 12:42:27 +03:00
John Preston
f21d7821e7 Beta version 2.9.9.
- Still(3) debugging a video playback crash in 32 bit Windows version.
2021-08-23 20:34:38 +03:00
John Preston
e8f1373edc Add some checks for NAN in video playback. 2021-08-23 20:29:40 +03:00
John Preston
c8d1e01159 Beta version 2.9.8.
- And still debugging a video playback crash in 32 bit Windows version.
2021-08-23 18:30:14 +03:00
John Preston
7e6f24552a Add basic OpenGL info to crash annotations. 2021-08-23 18:29:20 +03:00
John Preston
27d58ba07b Try to do a non-failed double->crl::time cast.
A crash on some old CPUs show, that in video frame processing
sometimes a cast from double to crl::time fails, writing to
the resulting crl::time value INT64_MIN (0x8000000000000000).

This is shown in crash logs, with lines like:

...,rounded:104,casted:-9223372036854775808,...

where logs are written like:

...
).arg(std::round(adjust * _options.speed)
).arg(crl::time(std::round(adjust * _options.speed))
...

I don't know what to do and how to workaround this. Trying other casts.
2021-08-23 17:58:59 +03:00
23rd
3a92a181a1 Fixed editing on Up arrow in sections with non-empty input field. 2021-08-23 13:57:35 +03:00
23rd
ddd5617043 Fixed processing GIF images as non-album files.
Fixed #16844.
2021-08-23 13:57:31 +03:00
John Preston
70b3e414ce Fix crash in Update-requested-by-tg://-link. 2021-08-23 13:54:49 +03:00
John Preston
2b04653f24 Beta version 2.9.7.
- Still debugging a video playback crash in 32 bit Windows version.
2021-08-23 12:21:09 +03:00
John Preston
868015da25 Add extensive video playback crash logs. 2021-08-23 12:17:40 +03:00
John Preston
7aeffa242e Beta version 2.9.6.
- Debugging a video playback crash in 32 bit Windows version.
2021-08-21 09:34:26 +03:00
John Preston
3136c0586e Add some more assertions to debug a crash. 2021-08-21 09:33:20 +03:00
John Preston
fb0fcbca7f Remove redundant -static-libstdc++ for Updater. 2021-08-20 21:14:39 +03:00
John Preston
0d449c037b Beta version 2.9.5: Fix hide workaround for media viewer. 2021-08-20 19:56:40 +03:00
John Preston
4d98230694 Beta version 2.9.5.
- Tile chat background patterns horizontally.
- Fix a rare crash in spellchecker on Windows.
- Fix animated chat backgrounds in Saved Messages.
- Fix "Sorry, group is inaccessible" message in scheduled voice chats.
2021-08-20 18:42:13 +03:00
John Preston
3d36e501a1 Add some assertions to debug a crash in video playback. 2021-08-20 18:42:13 +03:00
John Preston
b4eb9a0827 Fix single-colored patterns. 2021-08-20 16:24:26 +03:00
John Preston
aaf0015be4 Improve pattern wallpaper preview in Settings. 2021-08-20 16:14:09 +03:00
John Preston
1e8e163bb1 Tile patterns horizontally. 2021-08-20 15:55:10 +03:00
John Preston
f3f741e1eb Hide 'Tile' option in generated backgrounds. 2021-08-20 15:14:28 +03:00
John Preston
44f52ca6cd Fix solid color background preview. 2021-08-20 14:54:11 +03:00
John Preston
2b6e04bca3 Apply initial bubble opacity in QImage bubble backgrounds. 2021-08-20 14:54:11 +03:00
John Preston
784d57a2bc Use QImage bubbles background for some Media parts. 2021-08-20 14:54:11 +03:00
John Preston
f4fdadd3b0 Allow arbitrary QImage as outgoing bubbles background. 2021-08-20 14:54:11 +03:00
John Preston
1cc9a52461 Fix my speaking status freeze in voice chats. 2021-08-18 17:52:23 +03:00
John Preston
cd52982752 Hopefully fix an assertion violation in voice chats. 2021-08-18 17:45:21 +03:00
John Preston
4dd58b79e9 Fix forward of a bot message with a game from a group. 2021-08-18 16:43:22 +03:00
John Preston
c5c94276c2 Allow editing caption of forwarded audio file.
Fixes https://bugs.telegram.org/c/3025
2021-08-18 16:29:05 +03:00
John Preston
8e0b9b685c Show 'X subscribers' in channel ConfirmInviteBox.
Fixes https://bugs.telegram.org/c/2059
2021-08-18 15:57:52 +03:00
John Preston
1792bed721 Remove additional padding in shared contacts. 2021-08-18 15:52:04 +03:00
John Preston
a502cbc06e Move message link up in registered shared contacts.
Fixes #16804.
2021-08-18 15:48:30 +03:00
John Preston
ddda7b8c52 Fix crash in application Dock menu on macOS. 2021-08-18 15:44:38 +03:00
John Preston
0f19ba3231 Fix spellcheck crash on Windows on certain strings. 2021-08-18 15:22:27 +03:00
John Preston
36486a3d73 Fix creating a theme from a default one.
Regression was introduced in 79cc797aff.
2021-08-18 14:52:57 +03:00
John Preston
02f48a7781 Don't allow selected items together with text. 2021-08-18 14:52:49 +03:00
John Preston
c77f4dd794 Fix build on Linux. 2021-08-18 13:06:47 +03:00
John Preston
ca31a08182 Fix 'Sorry, group is inac...' in scheduled voice chat. 2021-08-18 11:34:16 +03:00
John Preston
33936195a1 Animate the chat background in Saved Messages. 2021-08-18 11:33:37 +03:00
John Preston
67bafa02fe Remove attempt of a shadow Qt build. 2021-08-17 18:15:55 +03:00
John Preston
1ef0046002 Beta version 2.9.4.
- Choose one from dozens of new gorgeous animated backgrounds
in Chat Settings > Chat background.
2021-08-17 18:09:18 +03:00
John Preston
f2f19b14eb Fix reading one message if last one is outgoing. 2021-08-17 18:07:20 +03:00
John Preston
662966ba31 Support patterns with negative intensity. 2021-08-17 17:35:10 +03:00
John Preston
5383ae3d96 Fix log in after password change by email. 2021-08-17 15:51:36 +03:00
John Preston
d80b25944e Fix Snap build on GitHub Actions. 2021-08-17 15:17:58 +03:00
23rd
76813db3ad Completed ability to recover cloud password with email. 2021-08-17 15:08:57 +03:00
John Preston
c3595f2e31 Ask for a new password when recovering by email. 2021-08-17 15:07:58 +03:00
John Preston
5a882d1fdc Rotate background in ListWidget. 2021-08-17 14:55:40 +03:00
John Preston
ce6f9f580f Remove unused ColorizePattern function. 2021-08-17 13:06:28 +03:00
John Preston
52b9a1fceb Log all Qt messages as usual in debug builds. 2021-08-17 12:25:13 +03:00
John Preston
1209b2692a Generate correct next rotated gradient. 2021-08-16 17:15:02 +03:00
John Preston
2abcb51dda Filter out patterns without background colors. 2021-08-16 17:14:34 +03:00
John Preston
7a06eccaec Make complex gradients animate on outgoing messages. 2021-08-16 16:07:43 +03:00
John Preston
a1f81e4de8 Generate static complex gradients. 2021-08-16 13:24:15 +03:00
John Preston
689378ee04 Prefer 1280x720 resolution for camera video. 2021-08-16 10:26:08 +03:00
John Preston
b239506150 Fix pattern wallpaper preview on retina screens. 2021-08-16 10:26:08 +03:00
John Preston
3dadcd9352 Animated transition on pattern-on-gradient resize. 2021-08-16 10:26:08 +03:00
John Preston
b9a9520ef5 Don't blend SoftLight patterns in realtime. 2021-08-16 10:26:08 +03:00
John Preston
2b46f87d7b Cache background quickly if no buttons pressed. 2021-08-16 10:26:08 +03:00
John Preston
2667bb3568 Move background caching to Window::SessionController. 2021-08-16 10:26:08 +03:00
John Preston
1bc5277d51 Show color / gradient wallpapers in WebPage previews. 2021-08-16 10:26:08 +03:00
John Preston
436d7b9d82 Add support for linear gradients without patterns. 2021-08-16 10:26:08 +03:00
John Preston
ba7e976fe2 Fix background sample generation. 2021-08-16 10:26:08 +03:00
John Preston
c2b1187948 Start support of linear gradient wallpapers. 2021-08-16 10:26:08 +03:00
23rd
1fd28d5cfb Removed MTP* from public interface of Api::CloudPassword. 2021-08-15 13:44:43 +03:00
23rd
eec58137e9 Fixed build for Linux. 2021-08-15 13:26:43 +03:00
Ilya Fedin
e7d39e6046 Get rid of GtkIntegration::initializeSettings use 2021-08-13 15:21:19 +03:00
Ilya Fedin
63a92cb90a Log icon theme 2021-08-13 15:21:19 +03:00
John Preston
85cc3b30a0 Don't use MTP* for WallPaper flags. 2021-08-12 12:32:30 +03:00
John Preston
474a6a71d9 Move unread mentions menu to chat_helpers/send_context_menu. 2021-08-12 10:06:16 +03:00
John Preston
393173c1da Finish 'Mark mentions as read' context menu. 2021-08-12 09:46:02 +03:00
John Preston
badc27eda4 Fix build with a correct lib_ui revision. 2021-08-12 09:03:19 +03:00
test
920f3b245b Update lang.strings 2021-08-12 08:52:56 +03:00
test
f189ffc6ac Summary 2021-08-12 08:52:56 +03:00
Nicholas Guriev
840bb447ba Mention some missing includes in payments/ subdirectory 2021-08-12 08:51:45 +03:00
Ilya Fedin
414456d003 Revert "Use gtk clipboard when available to avoid https://bugreports.qt.io/browse/QTBUG-56595"
Fixed in Qt by https://codereview.qt-project.org/c/qt/qtbase/+/306771

This reverts commit 3a91003eea.
2021-08-12 08:51:10 +03:00
23rd
ea3191badf Fixed Github CI build. 2021-08-12 08:34:51 +03:00
John Preston
4452edcaad Update release asset uploading script. 2021-08-12 08:34:47 +03:00
23rd
76eb00cea9 Added drafts saving on account switching. 2021-08-12 02:36:41 +03:00
23rd
b3622b413e Added ability to set custom auto-lock timer. 2021-08-12 02:36:41 +03:00
23rd
b55383efe7 Moved time input widgets to lib_ui. 2021-08-12 02:36:41 +03:00
23rd
852e46f0c9 Added filepath removal for modified images in photo editor.
Fixed #16791.
2021-08-12 02:35:53 +03:00
John Preston
84fef1f045 Fix linking to QtSvg properly. 2021-08-11 20:22:45 +03:00
John Preston
6cadf54874 Add support for SVG patterns in wallpapers. 2021-08-11 19:56:12 +03:00
John Preston
e8fc874456 Build and link with QtSvg. 2021-08-11 19:55:47 +03:00
John Preston
c79cd0b692 Use Images::Read instead of App::readImage. 2021-08-11 18:55:08 +03:00
John Preston
b150ab8ef5 Add .tgv as a known mime type. 2021-08-11 18:23:14 +03:00
Ilya Fedin
8b7b0fa570 Remove -externalupdater flag
Having a path to executable in /etc/tdesktop/externalupdater is a way more convenient and is enough
2021-08-11 18:20:52 +03:00
Ilya Fedin
a3ee1e4ed5 Remove mentions of unused -testmode flag 2021-08-11 18:20:52 +03:00
Ilya Fedin
349446e6b0 Lock issues once a day rather than once a hour 2021-08-11 17:56:25 +03:00
Ilya Fedin
97262a99c7 Get rid of osx and linux32 special targets 2021-08-11 16:59:27 +03:00
Ilya Fedin
1d2e34f5e9 Write Qt messages only to log in debug mode 2021-08-11 15:49:31 +03:00
Ilya Fedin
bc2fc94e25 Don't check libtgvoip defines, too big queue 2021-08-11 15:46:38 +03:00
Ilya Fedin
6f0e94a04a WebKitGTK support doesn't depend on GTK integration anymore 2021-08-11 15:46:38 +03:00
John Preston
60e43cfa3f Version 2.9.3.
- Fix requesting screencast rights on macOS (again).
2021-08-11 11:35:48 +03:00
John Preston
46885b7f9f Fix mouse input in layers in call window. 2021-08-11 11:06:34 +03:00
23rd
fff42a664c Fixed Github CI Windows build. 2021-08-11 05:53:16 +03:00
John Preston
437d35d8c4 Version 2.9.2: Fix build on macOS. 2021-08-10 19:24:56 +03:00
John Preston
36a5dd8d8b Version 2.9.2: Buffer more audio data.
I hope this fixes #16733.
2021-08-10 16:44:59 +03:00
John Preston
d8e99b4860 Version 2.9.2.
- Fix crashes and bugs in scheduled messages.
- Fix file sending after a call or voice chat on Windows.
- Fix main window title glitches on Windows 7.
2021-08-10 16:10:59 +03:00
John Preston
3cddcaa039 Update submodules. 2021-08-10 16:05:08 +03:00
John Preston
49078e5679 Apply a window title workaround on Windows 7.
Fixes #16785, fixes #16758, fixes #16721.
2021-08-10 15:46:18 +03:00
John Preston
1dec054766 Check if native window frame fits for saved geometry. 2021-08-10 15:46:18 +03:00
John Preston
91ef6f13c8 Use good bitrate for screen capture in calls. 2021-08-10 15:46:18 +03:00
John Preston
73c8f16340 Fix maximized window on Linux, update tg_angle. 2021-08-10 15:46:18 +03:00
23rd
cbad2469db Moved MTP cloud password from ApiWrap to Api::CloudPassword. 2021-08-10 15:46:18 +03:00
23rd
0ae260c6e1 Moved MTP blocked peers from ApiWrap to Api::BlockedPeers. 2021-08-10 15:46:18 +03:00
23rd
221ded6d54 Fixed handle of last message on Up arrow in sections on macOS. 2021-08-10 15:46:18 +03:00
23rd
6f80811ecd Fixed applying server messages as scheduled.
Fixed #16726 and many other problems.
2021-08-10 15:46:18 +03:00
23rd
5bd73bab9b Moved user privacy from ApiWrap to Api::UserPrivacy. 2021-08-10 15:46:18 +03:00
Ilya Fedin
ac86f3e5bd Use Communications category for tray icon
Since tdesktop fits it
2021-08-10 15:42:21 +03:00
GitHub Action
bae6a29326 Update User-Agent for DNS to Chrome 92.0.4515.107. 2021-08-09 10:21:57 +03:00
John Preston
dcf86f55af Version 2.9.1.
- Fix requesting screencast rights on macOS.
2021-07-30 21:28:24 +03:00
John Preston
2d223b3a2d Version 2.9: Add jemalloc submodule. 2021-07-30 21:26:05 +03:00
John Preston
f3ab01604c Version 2.9: Fix build on Linux. 2021-07-30 21:03:49 +03:00
John Preston
66bcc20f58 Fix requesting screencast rights on macOS. 2021-07-30 20:45:00 +03:00
John Preston
d69a1d3cd9 Version 2.9: Updated changelog. 2021-07-30 18:21:54 +03:00
John Preston
ccc5aeb8f7 Version 2.9.
- Reset your Two-Step Verification password even if you forgot
your old password and don't have a recovery email.
- To do this, you must be logged into your account.
The reset takes 7 days and can be cancelled from any of your devices.
2021-07-30 17:35:30 +03:00
John Preston
5899d60363 Remove some legacy langs scripts. 2021-07-30 16:11:42 +03:00
John Preston
4f89216db0 Disable noise suppression by default. 2021-07-30 16:11:13 +03:00
John Preston
bd78bac4bf Warn admins about many voice chat participants. 2021-07-30 16:06:27 +03:00
John Preston
b2e829904f Add support for 1 month self-destruct messages. 2021-07-30 16:05:13 +03:00
John Preston
256546071b Add ability to reset cloud password in 7 days. 2021-07-30 14:32:49 +03:00
John Preston
c100055fac Allow sharing screen or window in one-on-one calls. 2021-07-30 00:40:25 +03:00
John Preston
ae30366cbf Fix window move by title on macOS. 2021-07-29 15:30:22 +03:00
John Preston
663c99cc2d Fix build on macOS. 2021-07-29 15:30:22 +03:00
Ilya Fedin
d986e70a89 Fix global menu on 64-bit systems with X11
When Wayland support for global menu was added (0b86feeeb5), X11 support was broken since QWindow::winId returns WId what is a quintptr that expands to uint32 on 32-bit and to uint64 on 64-bit, while AppMenu d-bus service accepts only uint32.
2021-07-28 23:41:36 +03:00
Ilya Fedin
1ebf27bfa1 Switch MainWindow to Ui::RpWindow 2021-07-28 18:05:39 +03:00
John Preston
4ef2d3b957 Fix crash in mosaic layout. 2021-07-28 17:34:39 +03:00
John Preston
868c494299 Extract Mosaic::Layout::AbstractMosaicLayout. 2021-07-28 17:00:46 +03:00
John Preston
4a86b172d4 Rename Ui::Window to Ui::RpWindow. 2021-07-28 16:24:11 +03:00
Ilya Fedin
f71ce9afdf Fix dark titlebar on Windows 10 17763 2021-07-28 16:01:50 +03:00
John Preston
c170a86189 Fix build on Windows. 2021-07-28 15:59:42 +03:00
John Preston
116a768fde Don't use MTP* for Message flags. 2021-07-28 15:28:17 +03:00
John Preston
22e77bf3af Don't use MTP* for ReplyMarkup flags. 2021-07-28 15:16:23 +03:00
John Preston
bbbcd37b8f Provide latency values to AEC. 2021-07-28 15:16:23 +03:00
John Preston
bc707320f8 Add 'invited' icon in narrow voice chat members list. 2021-07-28 15:16:23 +03:00
23rd
000911ecfa Updated section icon for shared GIFs. 2021-07-27 20:40:44 +03:00
23rd
479611f6df Removed ui_getPeerForMouseAction. 2021-07-27 02:50:08 +03:00
23rd
dcc8a64d37 Removed App::sendBotCommand. 2021-07-27 02:50:08 +03:00
23rd
a030907598 Refactored sending bot commands. 2021-07-27 02:50:08 +03:00
23rd
34cac3092f Moved utils for sending bot commands to separated file. 2021-07-27 02:50:08 +03:00
23rd
05f1caf944 Removed App::searchByHashtag from facades. 2021-07-27 02:18:49 +03:00
23rd
93bcd90fd4 Provided more context for click handlers. 2021-07-27 02:18:49 +03:00
23rd
7c8b1cd5b1 Disabled forced session switching when closing PiP.
Regression was introduced in 7decf68122.
2021-07-26 18:54:58 +03:00
23rd
82165bec5e Replaced MainWidget::replyToItem with history element delegate. 2021-07-26 17:39:18 +03:00
23rd
65aecf16a6 Removed App::wnd() from HistoryView::Message. 2021-07-26 17:38:52 +03:00
23rd
ca83b8a8c6 Removed App::wnd() from HistoryView::Contact. 2021-07-26 17:38:52 +03:00
23rd
024bb5e54f Moved App::formatPhone to td_ui. 2021-07-26 17:38:51 +03:00
23rd
a14f2144e1 Removed layout.cpp/h. 2021-07-26 17:38:51 +03:00
23rd
c6071d1148 Moved generic document preview info to separated file. 2021-07-26 17:38:51 +03:00
23rd
6e2f8eb9a7 Moved text selection utils to td_ui. 2021-07-26 17:38:51 +03:00
23rd
793f748d2e Replaced overview and inline mosaic layouts with new mosaic layout. 2021-07-26 17:38:51 +03:00
23rd
bb404a38d3 Merged mosaic layouts from overview and inline to td_ui generic class. 2021-07-26 17:38:51 +03:00
23rd
c82006c6f8 Moved position info from ItemBases to AbstractLayoutItem. 2021-07-26 17:38:51 +03:00
23rd
2256482ae0 Moved layout utils to td_ui. 2021-07-26 17:38:51 +03:00
23rd
d11e756381 Detached abstract part of LayoutItemBase and moved to td_ui. 2021-07-26 17:38:51 +03:00
John Preston
a128c16f59 Define 'KHRONOS_STATIC' globally. 2021-07-26 16:23:41 +03:00
John Preston
48207102ce Beta version 2.8.13.
- Fix crash in messages animation.
- Save GIFs from context menu in channel comments.
2021-07-23 23:22:08 +03:00
23rd
2d354f8777 Added ability to save GIFs from context menu in sections.
Fixed #8739.
2021-07-23 22:05:23 +03:00
John Preston
b27dc4ef8d Fix crash in messages animation. 2021-07-23 21:41:43 +03:00
John Preston
99505b4ee2 Beta version 2.8.12: Fix build on Linux. 2021-07-23 20:42:24 +03:00
John Preston
245909e381 Beta version 2.8.12: Prune icon cache on Linux. 2021-07-23 19:39:31 +03:00
John Preston
0a545589ce Beta version 2.8.12: Fix build on macOS. 2021-07-23 19:36:47 +03:00
John Preston
4ec764bb57 Beta version 2.8.12.
- Change the default chat background.
- Add GIFs overview section in chats.
- Add a simple new messages animation.
- Use modern Telegram application icon.
- Use Direct3D 11 by default on Windows.
- Fix Direct3D acceleration on basic Windows 7 setup.
2021-07-23 15:46:25 +03:00
23rd
9b6ab6e137 Fixed date badge in Shared GIFs section. 2021-07-23 15:42:17 +03:00
23rd
73bb1382b1 Replaced MatrixRowShift with layout utils. 2021-07-23 15:42:17 +03:00
23rd
a153059b38 Added ability to unload not visible GIFs as heavy parts in overview. 2021-07-23 15:42:17 +03:00
23rd
039ffd3d34 Copied layout items mosaic drawing for overview layout. 2021-07-23 15:42:17 +03:00
23rd
abdd2fa99b Added ability to force open media viewer from overview layout. 2021-07-23 15:42:17 +03:00
23rd
b366c27a0c Added to Overview::Layout::Delegate ability to request repaint item. 2021-07-23 15:42:17 +03:00
23rd
1fa71b6569 Copied GIF Layout from inline bots results to overview. 2021-07-23 15:42:17 +03:00
23rd
81c39af122 Replaced mosaic drawing in InlineBots::Layout::Inner. 2021-07-23 15:42:17 +03:00
23rd
9699aeb1cd Slightly simplified ChatHelpers::GifsListWidget. 2021-07-23 15:42:17 +03:00
23rd
85ce179f58 Added layout utils file. 2021-07-23 15:42:17 +03:00
23rd
c4d8d52aed Replaced mosaic drawing in ChatHelpers::GifsListWidget. 2021-07-23 15:42:17 +03:00
23rd
812f5d4311 Modernized code style of InlineBots::Bots::MosaicLayout. 2021-07-23 15:42:17 +03:00
23rd
34d2d7bcba Moved layout items mosaic drawing to separate file. 2021-07-23 15:42:17 +03:00
c0re100
842a89d2c7 Add GIFs shared media section 2021-07-23 15:42:17 +03:00
John Preston
565877630f Dither default background to avoid color banding. 2021-07-23 15:42:17 +03:00
John Preston
8f478b86ee Change default wallpaper. 2021-07-23 15:42:17 +03:00
John Preston
9943f8a093 Use custom 'gpu_driver_bug_list.json'. 2021-07-23 15:42:17 +03:00
John Preston
c0f8e68f5d Don't use CurrentSingleComponentFormat.
Fix noise in voice chat blur in OpenGL ES (ANGLE).
2021-07-23 15:42:16 +03:00
John Preston
92d9ebc9f3 Fix Direct3D 11 ANGLE backend colors issue. 2021-07-23 15:42:16 +03:00
John Preston
530aae4bdb Fix crash in inline bots results. 2021-07-23 15:42:16 +03:00
23rd
e1ff230547 Added info for empty section of scheduled messages. 2021-07-23 15:42:16 +03:00
23rd
95a896004f Added bubble widget for empty list info in modern history view list. 2021-07-23 15:42:16 +03:00
John Preston
87ca2c891a Update Windows taskbar icon in new version. 2021-07-20 20:21:21 +03:00
John Preston
3a26644fa2 Fix new messages animation in sections. 2021-07-20 20:21:20 +03:00
John Preston
7e11966766 Fix d3dcompiler_47.dll loading on 64 bit build. 2021-07-20 20:21:20 +03:00
John Preston
c1c4314e52 Pack compiler to portable / store version. 2021-07-20 19:30:17 +03:00
23rd
a6dbcdad54 Disabled auto-closing section of scheduled messages after 'Send Now'. 2021-07-20 19:30:00 +03:00
23rd
3dc73417e9 Fixed some bugs in EditCaptionBox.
Fixed checkbox display in some cases.
Fixed editing of album items.

Regression was introduced in 7e83088a84.
2021-07-20 19:30:00 +03:00
John Preston
1ce66e5198 Pack and deploy d3dcompiler_47.dll. 2021-07-20 17:10:23 +03:00
Christian Hesse
6e90d6ae53 Add loading of custom shipped d3dcompiler_47.dll. 2021-07-20 15:41:49 +03:00
John Preston
5910c0ae30 Fix build on Windows. 2021-07-20 14:28:18 +03:00
23rd
2de0b79b4e Fixed overlapping emoji suggestions in Replies section. 2021-07-20 12:20:31 +03:00
23rd
cba0ebce6e Fixed size of animated preview in boxes. 2021-07-20 12:20:30 +03:00
John Preston
773912f586 Apply local / server comment updates together. 2021-07-20 12:20:22 +03:00
John Preston
c789349b24 Support add item animation in ListWidget (sections). 2021-07-20 12:20:22 +03:00
John Preston
7bbc4b7191 Add basic new messages animation. 2021-07-20 12:20:22 +03:00
John Preston
551732738b Update app icon. 2021-07-20 12:19:56 +03:00
Ilya Fedin
c5867e2293 Fix build with clang 2021-07-20 10:34:03 +03:00
Ilya Fedin
46d5fc1fa0 Allow to build with generators other than Xcode on mac 2021-07-20 10:27:40 +03:00
Christian Hesse
b922839490 re-compress preview image
The preview image takes some time to load, just re-compressing it can
save about 13% of data without changing the result.
2021-07-20 10:26:35 +03:00
Ilya Fedin
4b82a56270 Remove old instructions & patches they referred to
(& rename instructions to the actual state)

Old instruction names were from the time when tdesktop used GYP that had MSVC, XCode and CMake backends.
But tdesktop uses CMake now, so these names are no longer correct.
2021-07-20 09:50:57 +03:00
Christian Hesse
b2c762e974 Set (group) call window icon. 2021-07-20 00:15:04 +04:00
Ilya Fedin
0a4b8fc7f6 Always use QLibrary for gtk to avoid confusing dynamic linker 2021-07-19 22:57:07 +03:00
Ilya Fedin
087fbe89ce Add additional checks to NotificationData::setImage 2021-07-19 22:56:38 +03:00
Ilya Fedin
3e8912a53f Remove reference to non-existing linux_mpris_support from CMakeFiles.txt 2021-07-19 22:56:14 +03:00
Ilya Fedin
dc81f9eeaf Remove SetWatchingMediaKeys
Since SPMediaKeyTap has been removed on Mac, Linux is the only platform where this function is implemented, but that's not really needed due to MPRIS support, so SetWatchingMediaKeys can be dropped entirely
2021-07-19 22:56:14 +03:00
Ilya Fedin
49fed41dfa Use RegisterUrlScheme from lib_base 2021-07-19 22:55:57 +03:00
Ilya Fedin
9b1d967967 Move NotificationServiceWatcher to notifications manager 2021-07-19 22:39:38 +03:00
Pavel Moiseenko
4ea065fdf1 Specify name of app in list of installed apps 2021-07-19 22:33:25 +03:00
Ilya Fedin
a094fa42a0 Update submodules 2021-07-19 22:31:27 +03:00
Ilya Fedin
6f151f20e9 Add support for DESKTOP_APP_DISABLE_WEBKITGTK
Co-authored-by: mid-kid <esteve.varela@gmail.com>
2021-07-19 22:31:27 +03:00
Ilya Fedin
ae70dfb1f4 Return after throwing access denied error 2021-07-19 22:31:27 +03:00
Ilya Fedin
d9ea4f31ca Add SYSTEM flag to target_include_directories where appropriate 2021-07-19 22:31:27 +03:00
Ilya Fedin
ba9b72e038 Fix -Wunused-variable warnings with gcc 2021-07-19 22:31:27 +03:00
Christian Hesse
3d1a049405 window title for call window
Having an empty window title brings different issues, for example:

* invisible on task bar
* invisible in task switcher
* apply properties by match
* ...

So let's use the contact user name for window title.

Fixes #10243
2021-07-19 19:26:32 +03:00
Mahdi Jafari
df9e9a9d75 Fix applying of patches in Dockerfile. 2021-07-19 19:02:18 +03:00
John Preston
77d8c7ce01 Version 2.8.11.
- Check shader compilation / linking before using ANGLE.

It fails on default Windows 7 installations.
2021-07-17 12:47:10 +03:00
John Preston
de0897343b Version 2.8.10: Fix media loading. 2021-07-16 20:15:44 +03:00
John Preston
e27399baa6 Pinpoint patches revision, including Dockerfile. 2021-07-16 19:38:54 +03:00
John Preston
42eb74d07a Version 2.8.9: Fix GIF caption edit. 2021-07-16 10:10:58 +03:00
John Preston
aee991f598 Version 2.8.9.
- Fix version on Windows without SetDefaultDllDirectories.
- Fix fonts on Linux.
2021-07-16 09:41:52 +03:00
John Preston
96c3dc4161 Fix Windows version without SetDefaultDllDirectories. 2021-07-16 09:39:52 +03:00
John Preston
77586a1297 Fix font styles on Linux. 2021-07-16 09:27:26 +03:00
John Preston
b69cac3ed6 Version 2.8.8.
- Added an image editor.
Crop photos or highlight parts of screenshots before sending.
2021-07-15 21:22:58 +03:00
John Preston
c4654f1ee8 Update patches revision for Windows build. 2021-07-15 21:22:54 +03:00
John Preston
c45122ab1e Update tgcalls submodule. 2021-07-15 21:08:47 +03:00
John Preston
10e1feb40b Use GL_BGRA_EXT format with ANGLE. 2021-07-15 16:42:38 +03:00
John Preston
4d99c1fd44 Allow sharing system audio with window share. 2021-07-15 16:42:38 +03:00
John Preston
4276b6cce0 Use rpl for Window::Theme::Background updates. 2021-07-15 16:42:36 +03:00
23rd
7e83088a84 Completely refactored EditCaptionBox.
Moved preview content to separate widget.
Increased caption area height.
2021-07-13 22:15:49 +03:00
23rd
47a4f4229d Added ability to hide attach controls. 2021-07-13 22:15:22 +03:00
23rd
7cf5e6d94f Added ability to set controls type for single previews. 2021-07-13 22:15:22 +03:00
23rd
5431541694 Added AbstractSinglePreview. 2021-07-13 22:15:22 +03:00
23rd
c1e86418c2 Added ability to generate single media preview from history item. 2021-07-13 22:15:22 +03:00
23rd
86db29cec7 Added AbstractSingleMediaPreview. 2021-07-13 22:15:22 +03:00
23rd
19139a9a5f Added ability to generate single file preview from history item. 2021-07-13 22:15:22 +03:00
23rd
9509a00664 Added AbstractSingleFilePreview. 2021-07-13 22:15:20 +03:00
John Preston
e2a85e3156 Closed alpha version 2.8.7.1. 2021-07-13 22:09:48 +03:00
John Preston
99353dcfba Update submodules. 2021-07-13 22:09:14 +03:00
John Preston
86a2a4d63a Count unique video senders in limit. 2021-07-13 22:08:10 +03:00
John Preston
ab67aa28b5 Support resampling for loopback audio. 2021-07-13 22:08:10 +03:00
John Preston
db81638656 Allow sharing screen with sound on Windows. 2021-07-13 22:08:09 +03:00
John Preston
402729dc99 Check unmuted video limit in group call. 2021-07-13 22:08:09 +03:00
John Preston
801c8b6220 Screencast with system sound on Windows. 2021-07-13 22:08:09 +03:00
John Preston
881eb4510e Separate test and production RSA keys. 2021-07-13 22:08:09 +03:00
John Preston
cc013305ac Apply local volume / mute to additional audio stream. 2021-07-13 22:08:09 +03:00
John Preston
f17fc0b670 Support additional audio ssrc. 2021-07-13 22:08:09 +03:00
John Preston
5e2cdde2c8 Update API scheme. 2021-07-13 22:08:09 +03:00
John Preston
eea48c7139 Update used public RSA keys. 2021-07-13 22:08:09 +03:00
John Preston
95a7ce4622 New auth key generation algorithm. 2021-07-13 22:08:09 +03:00
John Preston
a0540e0486 Send dependent requests in bunches. 2021-07-13 22:08:09 +03:00
John Preston
e28fb1211e Handle MSG_WAIT_FAILED / MSG_WAIT_TIMEOUT. 2021-07-13 22:08:09 +03:00
John Preston
bae8335285 Always resend messages in a container. 2021-07-13 22:08:09 +03:00
John Preston
8fc7ba7ac1 Handle updateBotCommands. 2021-07-13 22:08:09 +03:00
John Preston
8f5ac0420e Update API scheme to layer 131. 2021-07-13 22:08:09 +03:00
John Preston
b57255297c Clang on Linux build fixes. 2021-07-13 21:56:36 +03:00
Ilya Fedin
79cc797aff Fix -Wunused-variable warnings 2021-07-13 21:43:34 +03:00
Ilya Fedin
b6881022ce Allow to build with -Werror and clang
Fixes -Wdeprecated-enum-enum-conversion, -Wdeprecated-declarations, -Wrange-loop-construct, -Winconsistent-missing-override
2021-07-13 21:32:06 +03:00
Ilya Fedin
89765340c3 Fix -Wunused-function warnings 2021-07-13 21:31:22 +03:00
John Preston
84b1fac0c8 Fix more warnings in submodules. 2021-07-13 21:30:55 +03:00
nyakze
a283049b34 Expand moderator mode + fix
Apparently for commands to work, they have to be bind to 1-9 keys, apart from any other alternative hotkeys. It should address this issue, as well as expanding to ease the usage on numpad.
2021-07-13 16:04:16 +03:00
Ilya Fedin
8ecc98eb03 Right file dialog freeze fix
The freezing is still happening if the service is not accessible
2021-07-12 11:10:16 +03:00
Ilya Fedin
c53564cfdc Set service name for MPRIS 2021-07-10 14:28:04 +03:00
John Preston
cc7f569c77 Fix build on non-Windows. 2021-07-09 21:39:08 +03:00
23rd
7526964904 Simplified calculation of minimum crop size in photo editor.
It also fixes cropping of images with unbalanced ratios.
2021-07-09 13:15:31 +03:00
23rd
f1669674d8 Moved formatting of image size text to single place.
Fixed wrong size display on retina screens.
Replaced "x" with special character.
2021-07-09 13:15:31 +03:00
23rd
cab8a52f8f Fixed visual glitch in image size text from SendFilexBox.
Regression was introduced in f52c6a6daa.
2021-07-09 13:15:31 +03:00
23rd
6b93d8dc41 Refactored and fixed saving scene states between modes in photo editor. 2021-07-09 12:49:07 +03:00
23rd
9be122710d Moved SaveState from Editor::BaseItem to Editor::NumberedItem. 2021-07-09 12:49:07 +03:00
23rd
1e3044fbf4 Moved performing of Undo/Redo from Editor::Paint to Editor::Scene. 2021-07-09 12:49:07 +03:00
23rd
aef2148ed0 Moved hasUndo and hasRedo from Editor::Paint to Editor::Scene. 2021-07-09 12:49:07 +03:00
23rd
fb511c3e03 Added status to Editor::NumberedItem. 2021-07-09 12:49:07 +03:00
23rd
6acd9f18ad Replaced interaction with QGraphicsItem to Editor::NumberedItem. 2021-07-09 12:49:07 +03:00
23rd
78b25c694e Added ability to save and restore items state in photo editor. 2021-07-09 12:49:07 +03:00
23rd
d2d97a3e47 Moved to separate file some structs for internal usage in photo editor. 2021-07-09 12:49:07 +03:00
23rd
bf8f3e42f4 Simplified work with Editor::ItemBase::Data. 2021-07-09 12:49:07 +03:00
23rd
fe8eae09c4 Fixed item handlers size when opening photo editor with modified scene. 2021-07-09 12:49:07 +03:00
23rd
5bbf3a329d Fixed items order when opening photo editor with modified scene. 2021-07-09 12:49:07 +03:00
23rd
8ddbf08a97 Changed max and min sizes of scene items from pixels to ratio. 2021-07-09 12:49:06 +03:00
23rd
d69090bf34 Moved flip and rotation info to Editor::ItemBase struct. 2021-07-09 12:49:06 +03:00
23rd
0c50fbf1b9 Moved Editor::ItemBase arguments to struct. 2021-07-09 12:49:06 +03:00
John Preston
4206ff0483 Don't use MTP* for StickersSet flags. 2021-07-09 09:08:58 +03:00
Ilya Fedin
62fd968409 Don't call gtk_selection_data_get_length on nullptr 2021-07-08 22:09:26 +03:00
Ilya Fedin
2c6e4eed19 Use unique_ptr for GtkSelectionData 2021-07-08 22:09:26 +03:00
John Preston
75090dedaa Don't store MTPInputStickerSet in data. 2021-07-08 22:08:59 +03:00
23rd
9dfb43d525 Fixed build for macOS and Linux. 2021-07-08 20:18:40 +03:00
Ilya Fedin
3b07785f87 Optimize pasting with gtk 2021-07-08 18:58:40 +03:00
John Preston
f22e68fc32 Don't use MTP* for PeerSettings flags. 2021-07-08 17:32:39 +03:00
John Preston
878c890bc2 Bump version to 2.8.7.beta for serialization. 2021-07-08 16:11:30 +03:00
John Preston
a74228acea Don't use MTP* for ChannelData flags. 2021-07-08 16:11:09 +03:00
John Preston
5040c2e766 Don't use MTP* for ChatData flags. 2021-07-08 15:11:46 +03:00
John Preston
e34375405e Don't use MTP* for UserData flags. 2021-07-08 14:19:12 +03:00
John Preston
2ffda9f240 Don't use MTP* for ChatAdminRight / ChatRestriction. 2021-07-08 13:34:06 +03:00
23rd
8e73a6a6ff Fixed Github CI Windows build. 2021-07-07 19:31:36 +03:00
John Preston
b642a80cd8 Fix timers race condition on Windows. 2021-07-07 17:57:31 +03:00
John Preston
94bdae13d8 Fix Qt build instructions on Windows. 2021-07-07 17:29:20 +03:00
Ilya Fedin
ee773a28bb Fix 30s freeze after pasting 2021-07-07 16:40:09 +03:00
John Preston
caddb44a2c Update tg_owt revision. 2021-07-07 16:39:26 +03:00
Ilya Fedin
1b4216803d Add snap permission to own name for gtk integration IPC 2021-07-07 14:26:33 +03:00
Ilya Fedin
17cee8ec56 Set service name for lib_base and lib_webview gtk integration 2021-07-07 12:16:01 +03:00
John Preston
3cdd115317 Beta version 2.8.6: Fix build for Linux. 2021-07-07 00:54:56 +03:00
John Preston
bdd1d2484c Beta version 2.8.6: Update build script. 2021-07-06 20:32:08 +03:00
John Preston
d5a416d5ea Beta version 2.8.6: Fix build for macOS. 2021-07-06 20:25:46 +03:00
John Preston
46d393ea0f Beta version 2.8.6.
- Added a simple image editor.
Crop photos or highlight parts of screenshots before sending.
- Use Direct3D 9 backend in ANGLE by default (Windows).
- Fix "Show in Finder" not focusing the Finder window (macOS).
- Use GTK from a child process (Linux).
2021-07-06 17:17:23 +03:00
nyakze
68e351b7c8 Attempt to fix not working commands
Attempt to fix not working commands by using more conventional keys
2021-07-06 17:16:46 +03:00
John Preston
6f9c911faa Fix Qt build instructions with ANGLE. 2021-07-06 17:04:05 +03:00
John Preston
dd381d9b56 Show vector elements count in DebugLogs. 2021-07-06 16:54:26 +03:00
John Preston
8eedc7b2ba Fix build on Windows. 2021-07-06 15:56:43 +03:00
John Preston
9ba1af2eb9 Use tg_angle fork. 2021-07-06 15:55:49 +03:00
23rd
f567328a60 Fixed deleting item after saving result of scene in photo editor. 2021-07-06 14:15:07 +03:00
23rd
953fa52490 Fixed updating of undo state on deleting item in photo editor. 2021-07-06 14:15:07 +03:00
23rd
b1477260f0 Improved content margins in photo editor. 2021-07-06 14:15:07 +03:00
23rd
038de9ef15 Changed behavior to keep StickerSetBox until pack is archived. 2021-07-06 12:13:06 +03:00
23rd
4701c5d6e3 Added ability to archive mask packs. 2021-07-06 12:13:06 +03:00
23rd
8420b7dc17 Disabled ability to use hotkeys when selecting color in photo editor. 2021-07-06 12:13:06 +03:00
23rd
9dacf69d41 Fixed line drawing on mode switching in photo editor. 2021-07-06 12:13:06 +03:00
23rd
a91efd9164 Fixed ability to draw blank lines in photo editor. 2021-07-06 12:13:06 +03:00
23rd
a631a28092 Removed App::pixmapFromImageInPlace. 2021-07-06 12:13:06 +03:00
23rd
7bcb1fc8b2 Fixed borders of drawn lines in photo editor. 2021-07-06 12:13:06 +03:00
23rd
cdafd8f171 Fixed width of preview for small media in SendFilesBox.
Regression was introduced in 42d4fdb89f.
2021-07-06 12:13:06 +03:00
23rd
116aa01e51 Refactored column width in SingleMediaPreview. 2021-07-06 12:13:06 +03:00
23rd
96b40f43e9 Added ability to drag and drop images in photo editor. 2021-07-06 12:13:06 +03:00
23rd
a93ec9c2c2 Added Escape hotkey to clear selection in photo editor. 2021-07-06 12:13:06 +03:00
23rd
3ee3919d50 Added hotkeys for switching between modes in photo editor. 2021-07-06 12:13:06 +03:00
23rd
b4410c49b9 Added background color in photo editor. 2021-07-06 12:13:06 +03:00
23rd
82bf6ca94f Fixed display of sticker panel on mode change in photo editor. 2021-07-06 12:13:06 +03:00
23rd
785ebfee34 Added animation to button bars in photo editor. 2021-07-06 12:13:06 +03:00
23rd
a60f8d75a0 Added second button bar for paint mode in photo editor. 2021-07-06 12:13:06 +03:00
23rd
5976a7ed19 Moved edge buttons to bar in photo editor. 2021-07-06 12:13:06 +03:00
23rd
df7026b59c Made alignment to bottom for button strip in photo editor. 2021-07-06 12:13:06 +03:00
23rd
edfd9bedc1 Improved style for controls in EditCaptionBox. 2021-07-06 12:13:06 +03:00
23rd
f52c6a6daa Improved style for controls in SendFilesBox. 2021-07-06 12:13:06 +03:00
23rd
af10b6d487 Added icons for SendFilesBox. 2021-07-06 12:13:06 +03:00
23rd
e30eacff41 Added photo editor hint to SendFilesBox. 2021-07-06 12:13:06 +03:00
23rd
18154e403a Added ability to open photo editor in SendFilesBox with left-click. 2021-07-06 12:13:06 +03:00
23rd
6975b04e6b Fixed triggering of pressed buttons in album preview. 2021-07-06 12:13:06 +03:00
23rd
948302cf02 Added setting to hide photo editor hint. 2021-07-06 12:13:06 +03:00
23rd
e4cff8cb4b Added photo editor hint to EditCaptionBox. 2021-07-06 12:13:06 +03:00
23rd
5bd17ae1b2 Fixed caption area height in EditCaptionBox.
Regression was introduced in 51f960442e.
2021-07-06 12:13:06 +03:00
23rd
22213a71c1 Added ability to open photo editor in EditCaptionBox with left-click. 2021-07-06 12:13:06 +03:00
23rd
e926e5f882 Slightly improved style of controls in photo editor. 2021-07-06 12:13:06 +03:00
23rd
221d45b500 Updated control icons for photo editor. 2021-07-06 12:13:06 +03:00
23rd
6bb7e2c2eb Removed using of hardcoded numbers of tray menu actions. 2021-07-06 12:13:06 +03:00
23rd
2a86ce596d Added shortcuts for actions of items in photo editor. 2021-07-06 12:13:06 +03:00
23rd
f936e484cc Removed unused types from scene items. 2021-07-06 12:13:05 +03:00
23rd
b2a1c10036 Removed masks panel when there are no masks. 2021-07-06 12:13:05 +03:00
23rd
2a58d01927 Removed search and featured buttons from masks panel. 2021-07-06 12:13:05 +03:00
23rd
7cd6b821b3 Fixed update of recently attached stickers after sending. 2021-07-06 12:13:05 +03:00
23rd
de108c8efe Fixed removing masks set from StickersListWidget. 2021-07-06 12:13:05 +03:00
23rd
e7104b5ebe Added support for archived masks. 2021-07-06 12:13:05 +03:00
23rd
2d17bd02a3 Moved mask management to separate box. 2021-07-06 12:13:05 +03:00
23rd
2a3115f461 Fixed phrases to display mask count. 2021-07-06 12:13:05 +03:00
23rd
8d62800e77 Moved stickerSetInstalled from ApiWrap to Data::Stickers. 2021-07-06 12:13:05 +03:00
23rd
7e04bf9533 Added ability to install mask sets. 2021-07-06 12:13:05 +03:00
23rd
2bd3a8aaff Added ability to delete and reorder mask sets.
Moved ApiWrap::stickerSetDisenabled and ApiWrap::stickersSaveOrder
to ApiWrap::saveStickerSets as lambdas.
2021-07-06 12:13:05 +03:00
23rd
70f92a7817 Added initial masks tab to manage stickers box. 2021-07-06 12:13:05 +03:00
23rd
8e08f69508 Added support updateNewStickerSet and updateStickerSets for masks. 2021-07-06 12:13:05 +03:00
23rd
abe62475cb Added support updateStickerSetsOrder for masks. 2021-07-06 12:13:05 +03:00
23rd
1cdb83462e Added initial implementation of masks panel. 2021-07-06 12:13:05 +03:00
23rd
d9a29b6f15 Fixed item pen width in big images. 2021-07-06 12:13:05 +03:00
23rd
1504f92a64 Fixed size limits of item on big images. 2021-07-06 12:13:05 +03:00
23rd
36e5056b59 Fixed selection of items on mode switching. 2021-07-06 12:13:05 +03:00
23rd
c5c707f0fd Fixed independence of item and scene transforms when adding. 2021-07-06 12:13:05 +03:00
23rd
832dd8d50c Moved some photo editor files to separate directories. 2021-07-06 12:13:05 +03:00
23rd
7d2b20e624 Made TabbedSelector more flexible. 2021-07-06 12:13:05 +03:00
23rd
049945a9b9 Added ability to duplicate items in photo editor. 2021-07-06 12:13:05 +03:00
23rd
808c9e3d2c Added ability to flip items in photo editor. 2021-07-06 12:13:05 +03:00
23rd
fde7cef9c8 Removed using of raw pointers for QGraphicsItem in photo editor.
Now all items are wrapped in the shared_ptr,
and the Scene loses ownership of all items before being destroyed.
2021-07-06 12:13:05 +03:00
23rd
2791f89f30 Added initial context menu to items in photo editor. 2021-07-06 12:13:05 +03:00
23rd
858b5831e8 Fixed clearing of redo list after adding sticker item in photo editor. 2021-07-06 12:13:05 +03:00
23rd
9166423598 Fixed multi selection of items in photo editor. 2021-07-06 12:13:05 +03:00
23rd
184d984336 Added ability to snap rotation of items with Shift key in photo editor. 2021-07-06 12:13:05 +03:00
23rd
0b5044f064 Fixed size of handles of base item in photo editor. 2021-07-06 12:13:05 +03:00
23rd
274b66f74b Added ability to create items in photo editor with different ratios. 2021-07-06 12:13:05 +03:00
23rd
e05343d721 Added sending info of stickered photos. 2021-07-06 12:13:05 +03:00
23rd
bc316a2536 Removed Storage::UploadedThumbDocument struct. 2021-07-06 12:13:05 +03:00
23rd
a6904be81d Slightly optimized mouse painting in photo editor. 2021-07-06 12:13:05 +03:00
23rd
690a7d1608 Fixed undo and redo paint actions. 2021-07-06 12:13:05 +03:00
23rd
a3e54fcd7c Moved draft painting in photo editor to separate files. 2021-07-06 12:13:05 +03:00
23rd
23c67bb2a2 Added ability to add stickers to photo in photo editor. 2021-07-06 12:13:05 +03:00
23rd
75367f0488 Added sticker panel to photo editor. 2021-07-06 12:13:05 +03:00
23rd
216ffad80e Added container of controllers for photo editor. 2021-07-06 12:13:05 +03:00
23rd
c312607ff8 Added stickers panel controller for photo editor. 2021-07-06 12:13:05 +03:00
23rd
812d616f66 Added scene base item for photo editor. 2021-07-06 12:13:05 +03:00
23rd
183408cb2d Added button highlighting for flipped image to photo editor. 2021-07-06 12:13:05 +03:00
23rd
1a7d5b7c95 Removed unused photo crop box. 2021-07-06 12:13:05 +03:00
23rd
17465e1082 Replaced old photo crop box with photo editor for profile photos. 2021-07-06 12:13:05 +03:00
23rd
a996b14291 Fixed keeping of aspect ratio in crop widget. 2021-07-06 12:13:05 +03:00
23rd
2045252cfd Added ability to pass data for photo editor. 2021-07-06 12:13:05 +03:00
23rd
a2e674bdb6 Added Window::Controller pointer to data of intro widget. 2021-07-06 12:13:05 +03:00
23rd
cc4055a5e3 Added method to Window::Controller to show custom layer widget. 2021-07-06 12:13:05 +03:00
23rd
d1b6cf1fae Added draft menu to EditCaptionBox to open photo editor. 2021-07-06 12:13:05 +03:00
23rd
671a06c407 Replaced using of QPixmap in photo editor with Image. 2021-07-06 12:13:05 +03:00
23rd
3ce315111f Added draft menu to SendFilesBox to open photo editor. 2021-07-06 12:13:05 +03:00
23rd
09768ce28a Refactored crop widget in photo editor. 2021-07-06 12:13:05 +03:00
23rd
c9affe0da5 Added custom layer widget with photo editor. 2021-07-06 12:13:05 +03:00
23rd
4909ba5a1e Added ability to pass custom layer widgets to stack. 2021-07-06 12:13:05 +03:00
23rd
e322733e20 Added saving of color and size of brush from photo editor to settings. 2021-07-06 12:13:05 +03:00
23rd
dc7f440902 Added color picker to photo editor. 2021-07-06 12:13:05 +03:00
23rd
4849376347 Added ability to undo and to redo paint actions in photo editor. 2021-07-06 12:13:05 +03:00
23rd
8eca57f419 Added saving and discarding between modes in photo editor. 2021-07-06 12:13:05 +03:00
23rd
0adcd37030 Added edge buttons to controls of photo editor. 2021-07-06 12:13:05 +03:00
23rd
2bdb9af146 Added dummy control icons for photo editor. 2021-07-06 12:13:05 +03:00
23rd
5b6bddd7fc Added initial implementation of mouse drawing in photo editor. 2021-07-06 12:13:05 +03:00
23rd
e1ea833ad6 Added ability to crop images in photo editor. 2021-07-06 12:13:05 +03:00
23rd
85c21ba0e4 Added ability to open photo editor with saved modifications. 2021-07-06 12:13:05 +03:00
23rd
4d72d20398 Added ability to send modified images. 2021-07-06 12:13:04 +03:00
23rd
9d3d16a725 Added initial ability to rotate and flip image to photo editor. 2021-07-06 12:13:04 +03:00
23rd
99deaf6005 Added dummy buttons to PhotoEditorControls. 2021-07-06 12:13:04 +03:00
23rd
d8921c7cf5 Added HorizontalContainer for buttons to PhotoEditorControls. 2021-07-06 12:13:04 +03:00
23rd
f7fa36ca1d Added photo painting to PhotoEditorContent. 2021-07-06 12:13:04 +03:00
23rd
45f8e68203 Initialized empty files of photo editor. 2021-07-06 12:13:04 +03:00
John Preston
2b47d6d63f Add depot_tools information to build instructions. 2021-07-06 12:05:45 +03:00
John Preston
aaefeed3f1 Support custom keyboard placeholders. 2021-07-05 21:12:52 +03:00
John Preston
7f00065bd8 Update API scheme to layer 130. 2021-07-05 21:12:52 +03:00
Ilya Fedin
6f031a715e Revert "Use QMenuBar instead of own global menu implementation on Linux"
This reverts commit 79f96480c2.
2021-07-05 21:01:20 +03:00
John Preston
6981ae605a Fix fake unread status reset on account change. 2021-07-05 19:48:06 +03:00
John Preston
d91c21fb26 Try enabling OpenGL back after switching to ANGLE. 2021-07-05 19:48:06 +03:00
John Preston
c95f052e60 Fix "Show in Finder" app focus bug by a Qt patch. 2021-07-05 19:31:21 +03:00
John Preston
c33be27b3c Update lib_webview submodule. 2021-07-05 15:57:55 +03:00
John Preston
6be9b25e99 Submit voice chat boxes by Enter. 2021-07-05 15:37:34 +03:00
Ilya Fedin
0bb391937e Update lib_webview 2021-07-04 20:05:53 +03:00
Ilya Fedin
75ff7a6637 Control GtkOpenWithDialog lifetime from outside 2021-07-04 20:05:53 +03:00
John Preston
aece7c1096 Remove testing code in stickers view. 2021-07-02 22:11:34 +03:00
John Preston
d2e6e7adf2 Fix build on macOS. 2021-07-02 22:11:23 +03:00
John Preston
b930bc0e6d Track bot commands separately in different chats. 2021-07-02 20:41:48 +03:00
John Preston
93d99d6173 Track only strings in BotCommand struct. 2021-07-02 20:41:46 +03:00
John Preston
a8df3dcf91 Remove test code for animated path thumbnails. 2021-07-02 20:40:32 +03:00
John Preston
b22e2ffe1d Animate inline path thumbnails with sliding gradient. 2021-07-02 20:40:32 +03:00
Ilya Fedin
22d23c8be1 Add missed signalId check 2021-07-02 20:11:28 +03:00
Ilya Fedin
b335741f99 Use gsl::finally to pop thread context where appropriate 2021-07-02 20:11:28 +03:00
Ilya Fedin
1261c775d4 Fix freeze after creating file dialog 2021-07-02 15:51:58 +03:00
John Preston
01b4a24ac7 Save sticker path thumbnails to local storage. 2021-07-02 13:39:08 +03:00
John Preston
4124c2eb57 Show inline path thumbnails for stickers. 2021-07-02 13:13:48 +03:00
John Preston
f09b91ebb5 Beta version 2.8.5: Fix build on non-Windows. 2021-07-02 04:45:58 +03:00
John Preston
57b147e0c8 Beta version 2.8.5.
- Use ANGLE for OpenGL over DirectX 9 / DirectX 11 (Windows).
- Use GTK from a child process (Linux).
2021-07-02 00:59:51 +03:00
Ilya Fedin
551ea7d879 Move GTK integration out of process with D-Bus 2021-07-02 00:59:36 +03:00
John Preston
d3c9bb0bc6 Try disabling native child OpenGL workaround. 2021-07-02 00:37:27 +03:00
John Preston
c711b1f1df Fix build on non-Linux systems. 2021-07-02 00:27:25 +03:00
23rd
af7ea90246 Added floating panel of playing playlist for scheduled audio files. 2021-07-01 23:53:45 +03:00
23rd
348cf4829c Added ability to scroll media in section of scheduled messages.
Fixed #8388.
2021-07-01 23:53:45 +03:00
23rd
4753a57091 Added ability to validate playlists in section of scheduled messages. 2021-07-01 23:53:45 +03:00
23rd
1a93f4fa4c Added ability to sparse id slices of scheduled media. 2021-07-01 23:53:45 +03:00
23rd
118fd187e3 Added abstract class for sparse ids slices. 2021-07-01 23:53:45 +03:00
23rd
baa47bde7f Removed unused MsgRange from SparseIdsSlice. 2021-07-01 23:53:45 +03:00
John Preston
18b48df9ce Allow to choose ANGLE backend. 2021-07-01 23:48:18 +03:00
John Preston
e71fc60d22 Use exact revision of ANGLE. 2021-07-01 23:48:16 +03:00
John Preston
148af59615 Don't check dll-s if "SetDefaultDllDirectories" is available. 2021-07-01 23:47:12 +03:00
John Preston
5b2db4112f Don't allow any .dll-s near Telegram.exe 2021-07-01 23:47:12 +03:00
John Preston
7cedc1f7a5 Add dynamic DirectX loading helper. 2021-07-01 23:47:08 +03:00
John Preston
6cea7d4a52 Fix YUV->RGB on D3D9 ANGLE backend. 2021-07-01 23:46:52 +03:00
John Preston
bd93aed393 Test build with statically linked ANGLE. 2021-07-01 23:46:52 +03:00
John Preston
348666de6d Use media viewer size hack only when required. 2021-07-01 23:46:52 +03:00
Ilya Fedin
47e32bebe4 Remove not really needed gtk scale factor query 2021-07-01 22:13:50 +03:00
Ilya Fedin
0b21c04489 Remove the copy of gtk file dialog 2021-07-01 22:13:50 +03:00
Ilya Fedin
85f013ebdb Revert "Avoid removing portal platformtheme plugin in snap"
This reverts commit 12db51fe75.
2021-07-01 22:13:50 +03:00
Ilya Fedin
832cc6ac69 Build Qt with gtk integration 2021-07-01 22:13:50 +03:00
Ilya Fedin
30ce049f51 Update submodules 2021-07-01 22:13:20 +03:00
Ilya Fedin
d42fb6d1b9 Switch from mallocng to jemalloc
Now it's known how to make it free the memory in an expected manner and it's better maintained
2021-07-01 22:13:20 +03:00
John Preston
cade53aa0a Version 2.8.4.
- Crash fixes in WebView on Windows.
2021-07-01 11:05:21 +03:00
GitHub Action
2fdcda7536 Update User-Agent for DNS to Chrome 91.0.4472.114. 2021-07-01 10:48:17 +03:00
Ilya Fedin
7e6439e4f8 Fix counting screen bottom point when restoring geometry 2021-06-30 00:27:39 +03:00
Ilya Fedin
f07ee7f590 Update lib_base and cmake_helpers 2021-06-29 17:35:39 +03:00
Ilya Fedin
02db4e01fa Get rid of qt5ct 2021-06-29 17:35:39 +03:00
Ilya Fedin
8d75078a42 Use Glib::MainLoop instead of QEventLoop in glib code 2021-06-29 15:10:08 +03:00
John Preston
0e25ef7524 Handle WinRT exceptions in WebView. 2021-06-29 14:08:50 +03:00
John Preston
8608d8aa4d Crash Fix: Destroy WebView before the container. 2021-06-29 11:07:47 +03:00
sammiee5311
c1a7332a5e Shorten if statement
Shorten if statement
2021-06-29 10:38:35 +03:00
Ilya Fedin
c3fb392906 Clean dbus-specific code in main_window_linux.h 2021-06-29 10:30:48 +03:00
Ilya Fedin
a59bfdb2f8 Fix handleNativeSurfaceChanged when dbus integration is disabled 2021-06-29 10:30:48 +03:00
Ilya Fedin
79f96480c2 Use QMenuBar instead of own global menu implementation on Linux 2021-06-29 10:30:48 +03:00
John Preston
60cbd96d91 Version 2.8.3.
- Fix crashes in OpenSSL on macOS.
2021-06-28 13:51:06 +03:00
1113 changed files with 53234 additions and 33947 deletions

View File

@@ -1,34 +0,0 @@
---
name: Bug report
about: Report errors or unexpected behavior.
---
<!--
Thanks for reporting issues of Telegram Desktop!
To make it easier for us to help you please enter detailed information below.
-->
### Steps to reproduce
1.
2.
3.
### Expected behaviour
Tell us what should happen
### Actual behaviour
Tell us what happens instead
### Configuration
**Operating system:**
**Version of Telegram Desktop:**
**Installation source (Linux Only)** - the official website / GitHub releases / flatpak / snap / distribution package:
**Used theme**:
<details><summary><b>Logs</b>:</summary>
Insert log.txt here (if necessary)
</details>

67
.github/ISSUE_TEMPLATE/BUG_REPORT.yml vendored Normal file
View File

@@ -0,0 +1,67 @@
name: Bug report
description: Report errors or unexpected behavior.
labels: [bug]
body:
- type: markdown
attributes:
value: |
Thanks for reporting issues of Telegram Desktop!
To make it easier for us to help you please enter detailed information below.
- type: textarea
attributes:
label: Steps to reproduce
placeholder: |
1.
2.
3.
validations:
required: true
- type: textarea
attributes:
label: Expected behaviour
placeholder: Tell us what should happen
validations:
required: true
- type: textarea
attributes:
label: Actual behaviour
placeholder: Tell us what happens instead
validations:
required: true
- type: input
attributes:
label: Operating system
description: >
Your operating system name, version and desktop environment.
Please don't use kernel version (uname), it's useless.
validations:
required: true
- type: input
attributes:
label: Version of Telegram Desktop
description: >
Please note we don't support versions from Linux distro repositories.
If you need support for these versions, please contact your distro maintainer
or your distro bugtracker.
Don't use 'latest', specify actual version, that's a reason to close your issue.
validations:
required: true
- type: dropdown
attributes:
label: Installation source
multiple: false
options:
- Static binary from official website
- Microsoft Store
- Mac App Store
- Flatpak
- Snap
- Other (unofficial) source
validations:
required: true
- type: textarea
attributes:
label: Logs
placeholder: Insert log.txt here (if necessary)
render: shell

View File

@@ -1,18 +0,0 @@
---
name: Feature request
about: Suggest an idea.
title: "[Feature Request] "
---
### Is your feature request related to a problem?
A clear and concise description of what the problem is.
### Describe the solution you'd like
A clear and concise description of what you want to happen.
### Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
### Additional context
Add any other context or screenshots about the feature request here.

View File

@@ -0,0 +1,30 @@
---
name: Feature request
description: Suggest an idea.
labels: [enhancement]
title: "[Feature Request] "
body:
- type: textarea
attributes:
label: Is your feature request related to a problem?
placeholder: A clear and concise description of what the problem is.
validations:
required: true
- type: textarea
attributes:
label: Describe the solution you'd like
placeholder: A clear and concise description of what you want to happen.
validations:
required: true
- type: textarea
attributes:
label: Describe alternatives you've considered
placeholder: A clear and concise description of any alternative solutions or features you've considered.
validations:
required: true
- type: textarea
attributes:
label: Additional context
placeholder: Add any other context or screenshots about the feature request here.
validations:
required: false

View File

@@ -1,11 +0,0 @@
# Number of days of inactivity before an Issue is closed for lack of response
daysUntilClose: 30
# Label requiring a response
responseRequiredLabel: waiting for answer
# Comment to post when closing an Issue for lack of response. Set to `false` to disable
closeComment: >
This issue has been automatically closed because there has been no response
to our request for more information from the original author. With only the
information that is currently in the issue, we don't have enough information
to take action. Please reach out if you have or find the answers we need so
that we can investigate further.

View File

@@ -5,7 +5,7 @@ on:
paths-ignore:
- 'docs/**'
- '**.md'
- '!docs/building-cmake.md'
- '!docs/building-linux.md'
- 'changelog.txt'
- 'LEGAL'
- 'LICENSE'
@@ -13,7 +13,6 @@ on:
- '!.github/workflows/linux.yml'
- 'snap/**'
- 'Telegram/build/**'
- 'Telegram/Patches/**'
- 'Telegram/Resources/uwp/**'
- 'Telegram/Resources/winrc/**'
- 'Telegram/SourceFiles/platform/win/**'
@@ -25,7 +24,7 @@ on:
paths-ignore:
- 'docs/**'
- '**.md'
- '!docs/building-cmake.md'
- '!docs/building-linux.md'
- 'changelog.txt'
- 'LEGAL'
- 'LICENSE'
@@ -33,7 +32,6 @@ on:
- '!.github/workflows/linux.yml'
- 'snap/**'
- 'Telegram/build/**'
- 'Telegram/Patches/**'
- 'Telegram/Resources/uwp/**'
- 'Telegram/Resources/winrc/**'
- 'Telegram/SourceFiles/platform/win/**'
@@ -55,7 +53,7 @@ jobs:
defaults:
run:
shell: scl enable devtoolset-9 -- bash --noprofile --norc -eo pipefail {0}
shell: scl enable llvm-toolset-7.0 -- scl enable devtoolset-9 -- bash --noprofile --norc -eo pipefail {0}
strategy:
matrix:
@@ -64,9 +62,6 @@ jobs:
- "DESKTOP_APP_DISABLE_DBUS_INTEGRATION"
- "DESKTOP_APP_DISABLE_X11_INTEGRATION"
- "DESKTOP_APP_DISABLE_WAYLAND_INTEGRATION"
- "DESKTOP_APP_DISABLE_GTK_INTEGRATION"
- "LIBTGVOIP_DISABLE_ALSA"
- "LIBTGVOIP_DISABLE_PULSEAUDIO"
env:
UPLOAD_ARTIFACT: "false"
@@ -93,6 +88,9 @@ jobs:
DEFINE=""
if [ -n "${{ matrix.defines }}" ]; then
DEFINE="-D ${{ matrix.defines }}=ON"
if [ "${{ matrix.defines }}" == "DESKTOP_APP_DISABLE_DBUS_INTEGRATION" ]; then
DEFINE="$DEFINE -D DESKTOP_APP_DISABLE_WEBKITGTK=ON"
fi
echo Define from matrix: $DEFINE
echo "ARTIFACT_NAME=Telegram_${{ matrix.defines }}" >> $GITHUB_ENV
else

View File

@@ -2,7 +2,7 @@ name: 'Lock Threads'
on:
schedule:
- cron: '0 * * * *'
- cron: '0 0 * * *'
jobs:
lock:
@@ -13,11 +13,3 @@ jobs:
github-token: ${{ github.token }}
issue-lock-inactive-days: 45
pr-lock-inactive-days: 45
issue-lock-comment: >
This issue has been automatically locked since there
has not been any recent activity after it was closed.
Please open a new issue for related bugs.
pr-lock-comment: >
This pull request has been automatically locked since there
has not been any recent activity after it was closed.
Please open a new issue for related bugs.

View File

@@ -5,7 +5,7 @@ on:
paths-ignore:
- 'docs/**'
- '**.md'
- '!docs/building-xcode.md'
- '!docs/building-mac.md'
- 'changelog.txt'
- 'LEGAL'
- 'LICENSE'
@@ -13,8 +13,7 @@ on:
- '!.github/workflows/mac.yml'
- 'lib/xdg/**'
- 'snap/**'
- 'Telegram/build/**'
- 'Telegram/Patches/**'
- 'Telegram/build/docker/**'
- 'Telegram/Resources/uwp/**'
- 'Telegram/Resources/winrc/**'
- 'Telegram/SourceFiles/platform/win/**'
@@ -24,7 +23,7 @@ on:
paths-ignore:
- 'docs/**'
- '**.md'
- '!docs/building-xcode.md'
- '!docs/building-mac.md'
- 'changelog.txt'
- 'LEGAL'
- 'LICENSE'
@@ -32,8 +31,7 @@ on:
- '!.github/workflows/mac.yml'
- 'lib/xdg/**'
- 'snap/**'
- 'Telegram/build/**'
- 'Telegram/Patches/**'
- 'Telegram/build/docker/**'
- 'Telegram/Resources/uwp/**'
- 'Telegram/Resources/winrc/**'
- 'Telegram/SourceFiles/platform/win/**'
@@ -51,21 +49,8 @@ jobs:
defines:
- ""
env:
MIN_MAC: "-mmacosx-version-min=10.12"
UNGUARDED: "-Werror=unguarded-availability-new"
GIT: "https://github.com"
PREFIX: "/usr/local/macos"
MACOSX_DEPLOYMENT_TARGET: "10.12"
XZ: "xz-5.2.5"
QT: "5_15_2"
OPENSSL_VER: "1_1_1"
QT_PREFIX: "/usr/local/desktop-app/Qt-5.15.2"
LIBICONV_VER: "libiconv-1.16"
UPLOAD_ARTIFACT: "false"
ONLY_CACHE: "false"
MANUAL_CACHING: "2"
DOC_PATH: "docs/building-xcode.md"
AUTO_CACHING: "1"
steps:
- name: Get repository name.
@@ -88,431 +73,23 @@ jobs:
sudo xcode-select -s /Applications/Xcode.app/Contents/Developer
xcodebuild -version > CACHE_KEY.txt
echo $MIN_MAC >> CACHE_KEY.txt
echo $PREFIX >> CACHE_KEY.txt
echo $MANUAL_CACHING >> CACHE_KEY.txt
echo "$GITHUB_WORKSPACE" >> CACHE_KEY.txt
if [ "$AUTO_CACHING" == "1" ]; then
thisFile=$REPO_NAME/.github/workflows/mac.yml
echo `md5 -q $thisFile` >> CACHE_KEY.txt
fi
echo "CACHE_KEY=`md5 -q CACHE_KEY.txt`" >> $GITHUB_ENV
echo "$PWD/Libraries/depot_tools" >> $GITHUB_PATH
mkdir -p Libraries/macos
cd Libraries/macos
echo "LibrariesPath=`pwd`" >> $GITHUB_ENV
curl -o tg_owt-version.json https://api.github.com/repos/desktop-app/tg_owt/git/refs/heads/master
- name: Patches.
run: |
echo "Find necessary commit from doc."
checkoutCommit=$(grep -A 1 "cd patches" $REPO_NAME/$DOC_PATH | sed -n 2p)
cd $LibrariesPath
git clone $GIT/desktop-app/patches.git
cd Patches
eval $checkoutCommit
- name: XZ.
run: |
cd $LibrariesPath
wget https://tukaani.org/xz/$XZ.tar.gz
tar -xvzf $XZ.tar.gz
cd $XZ
CFLAGS="$MIN_MAC" LDFLAGS="$MIN_MAC" ./configure --prefix=$PREFIX
make -j$(nproc)
sudo make install
- name: Zlib.
run: |
cd $LibrariesPath
git clone $GIT/desktop-app/zlib.git
cd zlib
CFLAGS="$MIN_MAC $UNGUARDED" LDFLAGS="$MIN_MAC" ./configure --prefix=$PREFIX
make -j$(nproc)
sudo make install
- name: MozJPEG.
run: |
cd $LibrariesPath
git clone -b v4.0.1-rc2 $GIT/mozilla/mozjpeg.git
cd mozjpeg
cmake -B build . \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=$PREFIX \
-DWITH_JPEG8=ON \
-DPNG_SUPPORTED=OFF
cmake --build build -j$(nproc)
sudo cmake --install build
- name: OpenSSL cache.
id: cache-openssl
- name: ThirdParty cache.
id: cache-third-party
uses: actions/cache@v2
with:
path: ${{ env.LibrariesPath }}/openssl_${{ env.OPENSSL_VER }}
key: ${{ runner.OS }}-${{ env.OPENSSL_VER }}-${{ env.CACHE_KEY }}
- name: OpenSSL.
if: steps.cache-openssl.outputs.cache-hit != 'true'
run: |
cd $LibrariesPath
path: ThirdParty
key: ${{ runner.OS }}-third-party
git clone $GIT/openssl/openssl openssl
cd openssl
git checkout OpenSSL_"$OPENSSL_VER"-stable
./Configure \
--prefix=$PREFIX \
no-tests \
darwin64-x86_64-cc \
-static \
$MIN_MAC
make build_libs -j$(nproc)
SSL_DIR=$LibrariesPath/openssl_$OPENSSL_VER
mkdir -p $SSL_DIR/include
copyLib() {
cp $1.a $SSL_DIR/$1.a
}
copyLib libssl
copyLib libcrypto
sudo cp -R include/. $SSL_DIR/include/
- name: Opus cache.
id: cache-opus
- name: Libraries cache.
id: cache-libs
uses: actions/cache@v2
with:
path: ${{ env.LibrariesPath }}/opus-cache
key: ${{ runner.OS }}-opus-${{ env.CACHE_KEY }}
- name: Opus.
if: steps.cache-opus.outputs.cache-hit != 'true'
path: Libraries
key: ${{ runner.OS }}-libs
- name: Libraries.
run: |
cd $LibrariesPath
git clone $GIT/xiph/opus
cd opus
git checkout v1.3
./autogen.sh
CFLAGS="$MIN_MAC $UNGUARDED" CPPFLAGS="$MIN_MAC $UNGUARDED" LDFLAGS="$MIN_MAC" ./configure --prefix=$PREFIX
make -j$(nproc)
sudo make DESTDIR="$LibrariesPath/opus-cache" install
- name: Opus install.
run: |
cd $LibrariesPath
sudo cp -R opus-cache/. /
- name: Rnnoise.
run: |
cd $LibrariesPath
git clone $GIT/desktop-app/rnnoise.git
mkdir -p rnnoise/out/Debug
cd rnnoise/out/Debug
cmake -G Ninja -DCMAKE_BUILD_TYPE=Debug ../..
ninja
- name: Libiconv cache.
id: cache-libiconv
uses: actions/cache@v2
with:
path: ${{ env.LibrariesPath }}/libiconv-cache
key: ${{ runner.OS }}-${{ env.LIBICONV_VER }}-${{ env.CACHE_KEY }}
- name: Libiconv.
if: steps.cache-libiconv.outputs.cache-hit != 'true'
run: |
cd $LibrariesPath
wget https://ftp.gnu.org/pub/gnu/libiconv/"$LIBICONV_VER".tar.gz
tar -xvzf "$LIBICONV_VER".tar.gz
cd $LIBICONV_VER
CFLAGS="$MIN_MAC $UNGUARDED" CPPFLAGS="$MIN_MAC $UNGUARDED" LDFLAGS="$MIN_MAC" ./configure --enable-static --prefix=$PREFIX
make -j$(nproc)
sudo make DESTDIR="$LibrariesPath/libiconv-cache" install
- name: Libiconv install.
run: |
cd $LibrariesPath
sudo cp -R libiconv-cache/. /
- name: FFmpeg cache.
id: cache-ffmpeg
uses: actions/cache@v2
with:
path: ${{ env.LibrariesPath }}/ffmpeg-cache
key: ${{ runner.OS }}-ffmpeg-${{ env.CACHE_KEY }}
- name: FFmpeg.
if: steps.cache-ffmpeg.outputs.cache-hit != 'true'
run: |
cd $LibrariesPath
git clone $GIT/FFmpeg/FFmpeg.git ffmpeg
cd ffmpeg
git checkout release/4.4
CFLAGS=`freetype-config --cflags`
LDFLAGS=`freetype-config --libs`
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig:/usr/lib/pkgconfig:/usr/X11/lib/pkgconfig
./configure --prefix=$LibrariesPath/ffmpeg-cache \
--extra-cflags="$MIN_MAC $UNGUARDED" \
--extra-cxxflags="$MIN_MAC $UNGUARDED" \
--extra-ldflags="$MIN_MAC" \
--x86asmexe=`pwd`/macos_yasm_wrap.sh \
--enable-protocol=file \
--enable-libopus \
--disable-programs \
--disable-doc \
--disable-network \
--disable-everything \
--enable-hwaccel=h264_videotoolbox \
--enable-hwaccel=hevc_videotoolbox \
--enable-hwaccel=mpeg1_videotoolbox \
--enable-hwaccel=mpeg2_videotoolbox \
--enable-hwaccel=mpeg4_videotoolbox \
--enable-decoder=aac \
--enable-decoder=aac_at \
--enable-decoder=aac_fixed \
--enable-decoder=aac_latm \
--enable-decoder=aasc \
--enable-decoder=alac \
--enable-decoder=alac_at \
--enable-decoder=flac \
--enable-decoder=gif \
--enable-decoder=h264 \
--enable-decoder=hevc \
--enable-decoder=mp1 \
--enable-decoder=mp1float \
--enable-decoder=mp2 \
--enable-decoder=mp2float \
--enable-decoder=mp3 \
--enable-decoder=mp3adu \
--enable-decoder=mp3adufloat \
--enable-decoder=mp3float \
--enable-decoder=mp3on4 \
--enable-decoder=mp3on4float \
--enable-decoder=mpeg4 \
--enable-decoder=msmpeg4v2 \
--enable-decoder=msmpeg4v3 \
--enable-decoder=opus \
--enable-decoder=pcm_alaw \
--enable-decoder=pcm_alaw_at \
--enable-decoder=pcm_f32be \
--enable-decoder=pcm_f32le \
--enable-decoder=pcm_f64be \
--enable-decoder=pcm_f64le \
--enable-decoder=pcm_lxf \
--enable-decoder=pcm_mulaw \
--enable-decoder=pcm_mulaw_at \
--enable-decoder=pcm_s16be \
--enable-decoder=pcm_s16be_planar \
--enable-decoder=pcm_s16le \
--enable-decoder=pcm_s16le_planar \
--enable-decoder=pcm_s24be \
--enable-decoder=pcm_s24daud \
--enable-decoder=pcm_s24le \
--enable-decoder=pcm_s24le_planar \
--enable-decoder=pcm_s32be \
--enable-decoder=pcm_s32le \
--enable-decoder=pcm_s32le_planar \
--enable-decoder=pcm_s64be \
--enable-decoder=pcm_s64le \
--enable-decoder=pcm_s8 \
--enable-decoder=pcm_s8_planar \
--enable-decoder=pcm_u16be \
--enable-decoder=pcm_u16le \
--enable-decoder=pcm_u24be \
--enable-decoder=pcm_u24le \
--enable-decoder=pcm_u32be \
--enable-decoder=pcm_u32le \
--enable-decoder=pcm_u8 \
--enable-decoder=vorbis \
--enable-decoder=wavpack \
--enable-decoder=wmalossless \
--enable-decoder=wmapro \
--enable-decoder=wmav1 \
--enable-decoder=wmav2 \
--enable-decoder=wmavoice \
--enable-encoder=libopus \
--enable-parser=aac \
--enable-parser=aac_latm \
--enable-parser=flac \
--enable-parser=h264 \
--enable-parser=hevc \
--enable-parser=mpeg4video \
--enable-parser=mpegaudio \
--enable-parser=opus \
--enable-parser=vorbis \
--enable-demuxer=aac \
--enable-demuxer=flac \
--enable-demuxer=gif \
--enable-demuxer=h264 \
--enable-demuxer=hevc \
--enable-demuxer=m4v \
--enable-demuxer=mov \
--enable-demuxer=mp3 \
--enable-demuxer=ogg \
--enable-demuxer=wav \
--enable-muxer=ogg \
--enable-muxer=opus
make -j$(nproc)
sudo make install
- name: FFmpeg install.
run: |
cd $LibrariesPath
# List of files from cmake/external/ffmpeg/CMakeLists.txt.
copyLib() {
mkdir -p ffmpeg/$1
\cp -fR ffmpeg-cache/lib/$1.a ffmpeg/$1/$1.a
}
copyLib libavformat
copyLib libavcodec
copyLib libswresample
copyLib libswscale
copyLib libavutil
sudo cp -R ffmpeg-cache/. $PREFIX
sudo cp -R ffmpeg-cache/include/. ffmpeg/
- name: OpenAL Soft.
run: |
cd $LibrariesPath
git clone --branch capture_with_webrtc $GIT/telegramdesktop/openal-soft.git
cd openal-soft/build
CFLAGS="$UNGUARDED" CPPFLAGS="$UNGUARDED" cmake \
-D CMAKE_INSTALL_PREFIX:PATH=$PREFIX \
-D ALSOFT_EXAMPLES=OFF \
-D LIBTYPE:STRING=STATIC \
-D CMAKE_OSX_DEPLOYMENT_TARGET:STRING=$MACOSX_DEPLOYMENT_TARGET ..
make -j$(nproc)
sudo make install
- name: Crashpad cache.
id: cache-crashpad
uses: actions/cache@v2
with:
path: ${{ env.LibrariesPath }}/crashpad
key: ${{ runner.OS }}-crashpad-${{ env.CACHE_KEY }}-${{ hashFiles('**/crashpad.diff') }}-${{ hashFiles('**/mini_chromium.diff') }}
- name: Crashpad.
if: steps.cache-crashpad.outputs.cache-hit != 'true'
run: |
cd Libraries
echo Install GYP for Crashpad.
git clone https://chromium.googlesource.com/external/gyp
git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
cd gyp
git checkout 9f2a7bb1
git apply $LibrariesPath/patches/gyp.diff
./setup.py build
sudo ./setup.py install
cd $LibrariesPath
git clone https://chromium.googlesource.com/crashpad/crashpad.git
cd crashpad
git checkout feb3aa3923
git apply ../patches/crashpad.diff
cd third_party/mini_chromium
git clone https://chromium.googlesource.com/chromium/mini_chromium
cd mini_chromium
git checkout 7c5b0c1ab4
git apply ../../../../patches/mini_chromium.diff
cd ../../gtest
git clone https://chromium.googlesource.com/external/github.com/google/googletest gtest
cd gtest
git checkout d62d6c6556
cd ../../..
build/gyp_crashpad.py -Dmac_deployment_target=10.10
ninja -C out/Debug
- name: Qt 5.15.2 cache.
id: cache-qt
uses: actions/cache@v2
with:
path: ${{ env.LibrariesPath }}/qt-cache
key: ${{ runner.OS }}-qt-${{ env.CACHE_KEY }}-${{ hashFiles('**/qtbase_5_15_2/*') }}
- name: Use cached Qt 5.15.2.
if: steps.cache-qt.outputs.cache-hit == 'true'
run: |
cd $LibrariesPath
mv qt-cache Qt-5.15.2
sudo mkdir -p $QT_PREFIX
sudo mv -f Qt-5.15.2 "$(dirname "$QT_PREFIX")"/
- name: Qt 5.15.2 build.
if: steps.cache-qt.outputs.cache-hit != 'true'
run: |
cd $LibrariesPath
git clone git://code.qt.io/qt/qt5.git qt_$QT
cd qt_$QT
perl init-repository --module-subset=qtbase,qtimageformats
git checkout v5.15.2
git submodule update qtbase
git submodule update qtimageformats
cd qtbase
find ../../patches/qtbase_$QT -type f -print0 | sort -z | xargs -0 git apply
cd ..
./configure \
-prefix "$QT_PREFIX" \
-debug \
-force-debug-info \
-opensource \
-confirm-license \
-static \
-opengl desktop \
-no-openssl \
-securetransport \
-nomake examples \
-nomake tests \
-platform macx-clang \
-I "$PREFIX/include" \
LIBJPEG_LIBS="$PREFIX/lib/libjpeg.a" \
ZLIB_LIBS="$PREFIX/lib/libz.a"
make -j$(nproc)
sudo make install
make clean
cp -r $QT_PREFIX $LibrariesPath/qt-cache
- name: WebRTC cache.
id: cache-webrtc
uses: actions/cache@v2
with:
path: ${{ env.LibrariesPath }}/tg_owt
key: ${{ runner.OS }}-webrtc-${{ env.CACHE_KEY }}-${{ hashFiles('**/tg_owt-version.json') }}
- name: WebRTC.
if: steps.cache-webrtc.outputs.cache-hit != 'true'
run: |
cd $LibrariesPath
git clone --recursive $GIT/desktop-app/tg_owt.git
mkdir -p tg_owt/out/Debug
cd tg_owt/out/Debug
cmake -G Ninja \
-DCMAKE_BUILD_TYPE=Debug \
-DTG_OWT_SPECIAL_TARGET=mac \
-DTG_OWT_BUILD_AUDIO_BACKENDS=OFF \
-DTG_OWT_LIBJPEG_INCLUDE_PATH=$PREFIX/include \
-DTG_OWT_OPENSSL_INCLUDE_PATH=`pwd`/../../../openssl_$OPENSSL_VER/include \
-DTG_OWT_OPUS_INCLUDE_PATH=$PREFIX/include/opus \
-DTG_OWT_FFMPEG_INCLUDE_PATH=$PREFIX/include \
../..
ninja
# Cleanup.
cd $LibrariesPath/tg_owt
mv out/Debug/libtg_owt.a libtg_owt.a
rm -rf out
mkdir -p out/Debug
mv libtg_owt.a out/Debug/libtg_owt.a
./$REPO_NAME/Telegram/build/prepare/mac.sh skip-release silent skip-qt5 qt6
- name: Telegram Desktop build.
if: env.ONLY_CACHE == 'false'
@@ -532,6 +109,7 @@ jobs:
-D CMAKE_C_FLAGS="-Werror" \
-D CMAKE_CXX_FLAGS="-Werror" \
-D TDESKTOP_API_TEST=ON \
-D DESKTOP_APP_QT6=ON \
-D DESKTOP_APP_USE_PACKAGED=OFF \
-D DESKTOP_APP_DISABLE_CRASH_REPORTS=OFF \
$DEFINE

28
.github/workflows/no-response.yml vendored Normal file
View File

@@ -0,0 +1,28 @@
name: No Response
# Both `issue_comment` and `scheduled` event types are required for this Action
# to work properly.
on:
issue_comment:
types: [created]
schedule:
- cron: '0 0 * * *'
jobs:
noResponse:
runs-on: ubuntu-latest
steps:
- uses: lee-dohm/no-response@v0.5.0
with:
token: ${{ github.token }}
# Number of days of inactivity before an Issue is closed for lack of response
daysUntilClose: 30
# Label requiring a response
responseRequiredLabel: waiting for answer
# Comment to post when closing an Issue for lack of response. Set to `false` to disable
closeComment: >
This issue has been automatically closed because there has been no response
to our request for more information from the original author. With only the
information that is currently in the issue, we don't have enough information
to take action. Please reach out if you have or find the answers we need so
that we can investigate further.

View File

@@ -11,7 +11,6 @@ on:
- '.github/**'
- '!.github/workflows/snap.yml'
- 'Telegram/build/**'
- 'Telegram/Patches/**'
- 'Telegram/Resources/uwp/**'
- 'Telegram/Resources/winrc/**'
- 'Telegram/SourceFiles/platform/win/**'
@@ -29,7 +28,6 @@ on:
- '.github/**'
- '!.github/workflows/snap.yml'
- 'Telegram/build/**'
- 'Telegram/Patches/**'
- 'Telegram/Resources/uwp/**'
- 'Telegram/Resources/winrc/**'
- 'Telegram/SourceFiles/platform/win/**'

View File

@@ -5,7 +5,7 @@ on:
paths-ignore:
- 'docs/**'
- '**.md'
- '!docs/building-msvc.md'
- '!docs/building-win.md'
- 'changelog.txt'
- 'LEGAL'
- 'LICENSE'
@@ -14,8 +14,6 @@ on:
- 'lib/xdg/**'
- 'snap/**'
- 'Telegram/build/**'
- 'Telegram/Patches/**'
- '!Telegram/Patches/build_ffmpeg_win.sh'
- 'Telegram/Resources/uwp/**'
- 'Telegram/SourceFiles/platform/linux/**'
- 'Telegram/SourceFiles/platform/mac/**'
@@ -26,7 +24,7 @@ on:
paths-ignore:
- 'docs/**'
- '**.md'
- '!docs/building-msvc.md'
- '!docs/building-win.md'
- 'changelog.txt'
- 'LEGAL'
- 'LICENSE'
@@ -35,12 +33,9 @@ on:
- 'lib/xdg/**'
- 'snap/**'
- 'Telegram/build/**'
- 'Telegram/Patches/**'
- '!Telegram/Patches/build_ffmpeg_win.sh'
- 'Telegram/Resources/uwp/**'
- 'Telegram/SourceFiles/platform/linux/**'
- 'Telegram/SourceFiles/platform/mac/**'
- '!Telegram/Patches/breakpad.diff'
- 'Telegram/Telegram/**'
- 'Telegram/configure.sh'
- 'Telegram/Telegram.plist'
@@ -57,28 +52,34 @@ jobs:
- ""
env:
SDK: "10.0.18362.0"
VC: "call vcvars32.bat && cd Libraries"
GIT: "https://github.com"
QT: "5_15_2"
QT_VER: "5.15.2"
OPENSSL_VER: "1_1_1"
UPLOAD_ARTIFACT: "false"
ONLY_CACHE: "false"
MANUAL_CACHING: "2"
DOC_PATH: "docs/building-msvc.md"
MANUAL_CACHING: "0"
PREPARE_PATH: "Telegram/build/prepare/prepare.py"
AUTO_CACHING: "1"
defaults:
run:
shell: cmd
working-directory: Libraries
steps:
- name: Get repository name.
shell: bash
working-directory: ${{ github.workspace }}
run: echo "REPO_NAME=${GITHUB_REPOSITORY##*/}" >> $GITHUB_ENV
- uses: ilammy/msvc-dev-cmd@v1.9.0
name: x86 Native Tools Command Prompt.
with:
arch: win32
- name: Set up environment paths.
shell: bash
working-directory: ${{ github.workspace }}
run: |
echo "C:\\Strawberry\\perl\\bin\\" >> $GITHUB_PATH
echo "C:\\Program Files\\NASM\\" >> $GITHUB_PATH
@@ -89,6 +90,8 @@ jobs:
p=`pwd | sed 's#^/[d]#d:#g' |sed 's#/#\\\\#g'`
echo "LibrariesPath=$p" >> $GITHUB_ENV
echo "QT=${QT_VER//./_}" >> $GITHUB_ENV
- name: Save msbuild version.
run: |
call vcvars32.bat
@@ -102,8 +105,10 @@ jobs:
- name: Generate cache key.
shell: bash
working-directory: ${{ github.workspace }}
run: |
curl -o $LibrariesPath/tg_owt-version.json https://api.github.com/repos/desktop-app/tg_owt/git/refs/heads/master
curl -o $LibrariesPath/tg_angle-version.json https://api.github.com/repos/desktop-app/tg_angle/git/refs/heads/master
echo $MANUAL_CACHING >> CACHE_KEY.txt
if [ "$AUTO_CACHING" == "1" ]; then
thisFile=$REPO_NAME/.github/workflows/win.yml
@@ -112,7 +117,10 @@ jobs:
echo "CACHE_KEY=`md5sum CACHE_KEY.txt | awk '{ print $1 }'`" >> $GITHUB_ENV
- name: Choco installs.
run: choco install --no-progress -y nasm yasm jom ninja
run: |
choco install --allow-empty-checksums --no-progress -y yasm
choco install --no-progress -y nasm jom ninja
python -m pip install pywin32
- name: NuGet sources.
run: |
@@ -121,30 +129,17 @@ jobs:
- name: Patches.
shell: bash
working-directory: ${{ github.workspace }}
run: |
echo "Find necessary commit from doc."
checkoutCommit=$(grep -A 1 "cd patches" $REPO_NAME/$DOC_PATH | sed -n 2p)
checkoutCommit=$(grep -A 1 "cd patches" $REPO_NAME/$PREPARE_PATH | sed -n 2p)
cd $LibrariesPath
git clone $GIT/desktop-app/patches.git
cd Patches
cd patches
eval $checkoutCommit
- name: Find any version of Python 2.
shell: bash
run: |
echo "Find any version of Python 2."
p=`ls /c/hostedtoolcache/windows/python | grep "^2" | tail -1`
if [ -z "$p" ]; then
echo "Python 2 is not found."
exit 1
fi
echo "PY2=C:\\hostedtoolcache\\windows\\Python\\$p\\x64" >> $GITHUB_ENV
echo "Found $p."
- name: LZMA.
run: |
%VC%
git clone %GIT%/telegramdesktop/lzma.git
cd lzma
cd C\Util\LzmaLib
@@ -154,38 +149,33 @@ jobs:
id: cache-openssl
uses: actions/cache@v2
with:
path: ${{ env.LibrariesPath }}/openssl_${{ env.OPENSSL_VER }}
path: ${{ env.LibrariesPath }}/openssl
key: ${{ runner.OS }}-${{ env.CACHE_KEY }}-${{ env.OPENSSL_VER }}
- name: OpenSSL.
if: steps.cache-openssl.outputs.cache-hit != 'true'
run: |
%VC%
git clone %GIT%/openssl/openssl.git openssl_%OPENSSL_VER%
cd openssl_%OPENSSL_VER%
git checkout OpenSSL_%OPENSSL_VER%-stable
git clone -b OpenSSL_%OPENSSL_VER%-stable %GIT%/openssl/openssl.git
cd openssl
perl Configure no-shared no-tests debug-VC-WIN32
nmake
mkdir out32.dbg
move libcrypto.lib out32.dbg
move libssl.lib out32.dbg
move ossl_static.pdb out32.dbg\ossl_static
mkdir out.dbg
move libcrypto.lib out.dbg
move libssl.lib out.dbg
move ossl_static.pdb out.dbg\ossl_static
nmake clean
move out32.dbg\ossl_static out32.dbg\ossl_static.pdb
move out.dbg\ossl_static out.dbg\ossl_static.pdb
perl Configure no-shared no-tests VC-WIN32
nmake
mkdir out32
move libcrypto.lib out32
move libssl.lib out32
move ossl_static.pdb out32
mkdir out
move libcrypto.lib out
move libssl.lib out
move ossl_static.pdb out
rmdir /S /Q test
rmdir /S /Q .git
- name: Zlib.
run: |
%VC%
git clone %GIT%/telegramdesktop/zlib.git
cd zlib
git checkout tdesktop
@@ -195,9 +185,7 @@ jobs:
- name: MozJPEG.
shell: cmd
run: |
%VC%
git clone -b v4.0.1-rc2 %GIT%/mozilla/mozjpeg.git
git clone -b v4.0.3 %GIT%/mozilla/mozjpeg.git
cd mozjpeg
cmake . ^
-G "Visual Studio 16 2019" ^
@@ -215,8 +203,6 @@ jobs:
- name: OpenAL Soft.
if: steps.cache-openal.outputs.cache-hit != 'true'
run: |
%VC%
git clone -b openal-soft-1.21.0 --depth=1 %GIT%/kcat/openal-soft.git
cd openal-soft\build
cmake .. ^
@@ -240,31 +226,29 @@ jobs:
GYP_MSVS_VERSION: 2019
if: steps.cache-breakpad.outputs.cache-hit != 'true'
run: |
cd %LibrariesPath%
git clone %GIT%/telegramdesktop/gyp.git
git clone https://chromium.googlesource.com/external/gyp
cd gyp
SET PATH=%PY2%;%cd%;%PATH%
git checkout tdesktop
SET PATH=%cd%;%PATH%
git checkout d6c5dd51dc
git apply ../patches/gyp.diff
cd %LibrariesPath%
git clone %GIT%/google/breakpad
git clone https://chromium.googlesource.com/breakpad/breakpad
cd breakpad
git checkout a1dbcdcb43
git checkout dfcb7b6799
git apply ../patches/breakpad.diff
cd src
git clone %GIT%/google/googletest testing
git clone -b release-1.11.0 %GIT%/google/googletest testing
cd client\windows
call gyp --no-circular-check breakpad_client.gyp --format=ninja
cd ..\..
ninja -C out/Debug common crash_generation_client exception_handler
ninja -C out/Release common crash_generation_client exception_handler
cd tools\windows\dump_syms
call gyp dump_syms.gyp
call vcvars32.bat
msbuild -m dump_syms.vcxproj /property:Configuration=Release
call gyp dump_syms.gyp --format=ninja
cd ..\..\..
ninja -C out/Release dump_syms
- name: Opus cache.
id: cache-opus
@@ -275,20 +259,20 @@ jobs:
- name: Opus.
if: steps.cache-opus.outputs.cache-hit != 'true'
run: |
%VC%
git clone %GIT%/telegramdesktop/opus.git
git clone -b v1.3.1 %GIT%/xiph/opus.git
cd opus
git checkout tdesktop
cd win32\VS2015
msbuild -m opus.sln /property:Configuration=Debug /property:Platform="Win32"
msbuild -m opus.sln /property:Configuration=Release /property:Platform="Win32"
git cherry-pick 927de8453c
cmake -B out . ^
-A Win32 ^
-DCMAKE_INSTALL_PREFIX=%LibrariesPath%/local/opus ^
-DCMAKE_C_FLAGS_DEBUG="/MTd /Zi /Ob0 /Od /RTC1" ^
-DCMAKE_C_FLAGS_RELEASE="/MT /O2 /Ob2 /DNDEBUG"
cmake --build out --config Debug
cmake --build out --config Release
cmake --install out --config Release
- name: Rnnoise.
shell: cmd
run: |
%VC%
git clone %GIT%/desktop-app/rnnoise.git
mkdir rnnoise\out
cd rnnoise\out
@@ -304,7 +288,6 @@ jobs:
- name: FFmpeg.
if: steps.cache-ffmpeg.outputs.cache-hit != 'true'
run: |
%VC%
choco install --no-progress -y msys2
git clone %GIT%/FFmpeg/FFmpeg.git ffmpeg
@@ -316,6 +299,31 @@ jobs:
rmdir /S /Q .git
- name: Angle cache.
id: cache-angle
uses: actions/cache@v2
with:
path: ${{ env.LibrariesPath }}/tg_angle
key: ${{ runner.OS }}-angle-${{ env.CACHE_KEY }}-${{ hashFiles('**/tg_angle-version.json') }}
- name: Angle.
if: steps.cache-angle.outputs.cache-hit != 'true'
run: |
git clone --recursive %GIT%/desktop-app/tg_angle.git
mkdir tg_angle\out\Debug
cd tg_angle\out\Debug
cmake -G Ninja ^
-DCMAKE_BUILD_TYPE=Debug ^
-DTG_ANGLE_SPECIAL_TARGET=win64 ^
-DTG_ANGLE_ZLIB_INCLUDE_PATH=%cd%/../../../zlib ../..
ninja
:: Cleanup.
cd %LibrariesPath%\tg_angle
move out\Debug\tg_angle.lib tg_angle.lib
rmdir /S /Q out
mkdir out\Debug
move tg_angle.lib out\Debug\tg_angle.lib
- name: Qt 5.15.2 cache.
id: cache-qt
uses: actions/cache@v2
@@ -325,20 +333,24 @@ jobs:
- name: Configure Qt 5.15.2.
if: steps.cache-qt.outputs.cache-hit != 'true'
run: |
%VC%
git clone git://code.qt.io/qt/qt5.git qt_%QT%
cd qt_%QT%
perl init-repository --module-subset=qtbase,qtimageformats
perl init-repository --module-subset=qtbase,qtimageformats,qtsvg
git checkout v%QT_VER%
git submodule update qtbase
git submodule update qtimageformats
git submodule update qtsvg
cd qtbase
for /r %%i in (..\..\patches\qtbase_%QT%\*) do git apply %%i
cd ..
SET SSL=%LibrariesPath%\openssl_%OPENSSL_VER%
SET LIBS=libcrypto.lib Ws2_32.lib Gdi32.lib Advapi32.lib Crypt32.lib User32.lib
SET SSL=%LibrariesPath%\openssl
SET SSL_LIBS=libcrypto.lib Ws2_32.lib Gdi32.lib Advapi32.lib Crypt32.lib User32.lib
SET ANGLE=%LibrariesPath%\tg_angle
SET ANGLE_LIBS=d3d9.lib dxgi.lib dxguid.lib
SET ZLIB=%LibrariesPath%\zlib\contrib\vstudio\vc14\x86
configure ^
-prefix "%LibrariesPath%\Qt-%QT_VER%" ^
@@ -347,22 +359,32 @@ jobs:
-opensource ^
-confirm-license ^
-static ^
-static-runtime -I "%SSL%\include" ^
-opengl dynamic ^
-static-runtime ^
-opengl es2 -no-angle ^
-I "%ANGLE%\include" ^
-D "GL_APICALL=" ^
QMAKE_LIBS_OPENGL_ES2_DEBUG="%ANGLE%\out\Debug\tg_angle.lib %ZLIB%\ZlibStatDebug\zlibstat.lib %ANGLE_LIBS%" ^
QMAKE_LIBS_OPENGL_ES2_RELEASE="%ANGLE%\out\Release\tg_angle.lib %ZLIB%\ZlibStatReleaseWithoutAsm\zlibstat.lib %ANGLE_LIBS%" ^
-egl ^
-D "EGLAPI=" ^
-D "DESKTOP_APP_QT_STATIC_ANGLE=" ^
QMAKE_LIBS_EGL_DEBUG="%ANGLE%\out\Debug\tg_angle.lib %ZLIB%\ZlibStatDebug\zlibstat.lib %ANGLE_LIBS% Gdi32.lib User32.lib" ^
QMAKE_LIBS_EGL_RELEASE="%ANGLE%\out\Release\tg_angle.lib %ZLIB%\ZlibStatReleaseWithoutAsm\zlibstat.lib %ANGLE_LIBS% Gdi32.lib User32.lib" ^
-openssl-linked ^
OPENSSL_LIBS_DEBUG="%SSL%\out32.dbg\libssl.lib %SSL%\out32.dbg\%LIBS%" ^
OPENSSL_LIBS_RELEASE="%SSL%\out32\libssl.lib %SSL%\out32\%LIBS%" ^
-I "%SSL%\include" ^
OPENSSL_LIBS_DEBUG="%SSL%\out.dbg\libssl.lib %SSL%\out.dbg\%SSL_LIBS%" ^
OPENSSL_LIBS_RELEASE="%SSL%\out\libssl.lib %SSL%\out\%SSL_LIBS%" ^
-I "%LibrariesPath%\mozjpeg" ^
LIBJPEG_LIBS_DEBUG="%LibrariesPath%\mozjpeg\Debug\jpeg-static.lib" ^
LIBJPEG_LIBS_RELEASE="%LibrariesPath%\mozjpeg\Release\jpeg-static.lib" ^
-mp ^
-nomake examples ^
-nomake tests ^
-platform win32-msvc ^
-I "%LibrariesPath%\mozjpeg" ^
LIBJPEG_LIBS_DEBUG="%LibrariesPath%\mozjpeg\Debug\jpeg-static.lib" ^
LIBJPEG_LIBS_RELEASE="%LibrariesPath%\mozjpeg\Release\jpeg-static.lib"
-platform win32-msvc
- name: Qt 5.15.2 build.
if: steps.cache-qt.outputs.cache-hit != 'true'
run: |
%VC%
cd qt_%QT%
jom -j%NUMBER_OF_PROCESSORS%
@@ -380,8 +402,6 @@ jobs:
- name: WebRTC.
if: steps.cache-webrtc.outputs.cache-hit != 'true'
run: |
%VC%
git clone --recursive %GIT%/desktop-app/tg_owt.git
mkdir tg_owt\out\Debug
cd tg_owt\out\Debug
@@ -390,7 +410,7 @@ jobs:
-DTG_OWT_SPECIAL_TARGET=win ^
-DTG_OWT_BUILD_AUDIO_BACKENDS=OFF ^
-DTG_OWT_LIBJPEG_INCLUDE_PATH=%cd%/../../../mozjpeg ^
-DTG_OWT_OPENSSL_INCLUDE_PATH=%cd%/../../../openssl_%OPENSSL_VER%/include ^
-DTG_OWT_OPENSSL_INCLUDE_PATH=%cd%/../../../openssl/include ^
-DTG_OWT_OPUS_INCLUDE_PATH=%cd%/../../../opus/include ^
-DTG_OWT_FFMPEG_INCLUDE_PATH=%cd%/../../../ffmpeg ^
../..
@@ -418,10 +438,12 @@ jobs:
echo "TDESKTOP_BUILD_DEFINE=$DEFINE" >> $GITHUB_ENV
- name: Free up some disk space.
working-directory: ${{ github.workspace }}
run: del /S *.pdb
- name: Telegram Desktop build.
if: env.ONLY_CACHE == 'false'
working-directory: ${{ github.workspace }}
run: |
cd %REPO_NAME%\Telegram
@@ -439,6 +461,7 @@ jobs:
- name: Move artifact.
if: env.UPLOAD_ARTIFACT == 'true'
working-directory: ${{ github.workspace }}
run: |
cd %REPO_NAME%\out\Debug
mkdir artifact

9
.gitmodules vendored
View File

@@ -76,9 +76,6 @@
[submodule "Telegram/ThirdParty/hime"]
path = Telegram/ThirdParty/hime
url = https://github.com/hime-ime/hime.git
[submodule "Telegram/ThirdParty/qt5ct"]
path = Telegram/ThirdParty/qt5ct
url = https://github.com/desktop-app/qt5ct.git
[submodule "Telegram/ThirdParty/fcitx5-qt"]
path = Telegram/ThirdParty/fcitx5-qt
url = https://github.com/fcitx/fcitx5-qt.git
@@ -91,9 +88,9 @@
[submodule "Telegram/lib_webview"]
path = Telegram/lib_webview
url = https://github.com/desktop-app/lib_webview.git
[submodule "Telegram/ThirdParty/mallocng"]
path = Telegram/ThirdParty/mallocng
url = https://github.com/desktop-app/mallocng.git
[submodule "Telegram/lib_waylandshells"]
path = Telegram/lib_waylandshells
url = https://github.com/desktop-app/lib_waylandshells.git
[submodule "Telegram/ThirdParty/jemalloc"]
path = Telegram/ThirdParty/jemalloc
url = https://github.com/jemalloc/jemalloc

View File

@@ -14,8 +14,13 @@ include(cmake/validate_special_target.cmake)
include(cmake/version.cmake)
desktop_app_parse_version(Telegram/build/version)
set(project_langs C CXX)
if (APPLE)
set(project_langs C CXX OBJC OBJCXX)
endif()
project(Telegram
LANGUAGES C CXX
LANGUAGES ${project_langs}
VERSION ${desktop_app_version_cmake}
DESCRIPTION "Official Telegram Desktop messenger"
HOMEPAGE_URL "https://desktop.telegram.org"
@@ -24,6 +29,7 @@ set_property(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} PROPERTY VS_STARTUP_PROJECT T
get_filename_component(third_party_loc "Telegram/ThirdParty" REALPATH)
get_filename_component(submodules_loc "Telegram" REALPATH)
get_filename_component(cmake_helpers_loc "cmake" REALPATH)
include(cmake/variables.cmake)
include(cmake/nice_target_sources.cmake)
@@ -32,6 +38,8 @@ include(cmake/target_link_frameworks.cmake)
include(cmake/init_target.cmake)
include(cmake/generate_target.cmake)
include(cmake/nuget.cmake)
include(cmake/validate_d3d_compiler.cmake)
include(cmake/target_prepare_qrc.cmake)
include(cmake/options.cmake)

View File

@@ -63,9 +63,9 @@ Version **1.8.15** was the last that supports older systems
## Build instructions
* Visual Studio 2019 [(32 bits)][msvc32] [(64 bits)][msvc64]
* [Xcode 12][xcode]
* [CMake on GNU/Linux][cmake]
* Windows [(32-bit)][win32] [(64-bit)][win64]
* [macOS][mac]
* [GNU/Linux using Docker][linux]
[//]: # (LINKS)
[telegram]: https://telegram.org
@@ -73,10 +73,9 @@ Version **1.8.15** was the last that supports older systems
[telegram_api]: https://core.telegram.org
[telegram_proto]: https://core.telegram.org/mtproto
[license]: LICENSE
[msvc32]: docs/building-msvc.md
[msvc64]: docs/building-msvc-x64.md
[xcode]: docs/building-xcode.md
[xcode_old]: docs/building-xcode-old.md
[cmake]: docs/building-cmake.md
[win32]: docs/building-win.md
[win64]: docs/building-win-x64.md
[mac]: docs/building-mac.md
[linux]: docs/building-linux.md
[preview_image]: https://github.com/telegramdesktop/tdesktop/blob/dev/docs/assets/preview.png "Preview of Telegram Desktop"
[preview_image_url]: https://raw.githubusercontent.com/telegramdesktop/tdesktop/dev/docs/assets/preview.png

View File

@@ -5,7 +5,7 @@
# https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
add_executable(Telegram WIN32 MACOSX_BUNDLE)
init_target(Telegram)
init_non_host_target(Telegram)
add_subdirectory(lib_rpl)
add_subdirectory(lib_crl)
@@ -42,16 +42,30 @@ include(cmake/generate_appdata_changelog.cmake)
if (WIN32)
include(cmake/generate_midl.cmake)
generate_midl(Telegram ${src_loc}/platform/win/windows_quiethours.idl)
generate_midl(Telegram ${src_loc}
platform/win/windows_quiethours.idl
platform/win/windows_toastactivator.idl
)
nuget_add_winrt(Telegram)
endif()
set_target_properties(Telegram PROPERTIES AUTOMOC ON AUTORCC ON)
set_target_properties(Telegram PROPERTIES AUTOMOC ON)
target_prepare_qrc(Telegram)
target_link_libraries(Telegram
PRIVATE
tdesktop::lib_tgcalls_legacy
tdesktop::lib_tgcalls
tdesktop::lib_tgvoip
# Order in this list defines the order of include paths in command line.
# We need to place desktop-app::external_minizip this early to have its
# include paths (usually ${PREFIX}/include/minizip) before any depend that
# would add ${PREFIX}/include. This path may have a different <zip.h>,
# for example installed by libzip (https://libzip.org).
desktop-app::external_minizip
tdesktop::td_export
tdesktop::td_mtproto
tdesktop::td_lang
@@ -71,7 +85,6 @@ PRIVATE
desktop-app::external_lz4
desktop-app::external_rlottie
desktop-app::external_zlib
desktop-app::external_minizip
desktop-app::external_qt_static_plugins
desktop-app::external_qt
desktop-app::external_qr_code_generator
@@ -82,59 +95,6 @@ PRIVATE
desktop-app::external_xxhash
)
if (LINUX)
target_link_libraries(Telegram
PRIVATE
desktop-app::external_glibmm
desktop-app::external_glib
desktop-app::external_mallocng
)
if (NOT DESKTOP_APP_DISABLE_DBUS_INTEGRATION)
target_link_libraries(Telegram
PRIVATE
desktop-app::external_statusnotifieritem
desktop-app::external_dbusmenu_qt
)
endif()
if (NOT DESKTOP_APP_DISABLE_X11_INTEGRATION)
target_link_libraries(Telegram
PRIVATE
desktop-app::external_xcb
)
endif()
if (NOT DESKTOP_APP_DISABLE_WAYLAND_INTEGRATION)
target_link_libraries(Telegram
PRIVATE
desktop-app::lib_waylandshells
desktop-app::external_kwayland
)
endif()
if (NOT DESKTOP_APP_DISABLE_GTK_INTEGRATION)
find_package(PkgConfig REQUIRED)
if (DESKTOP_APP_USE_PACKAGED AND NOT DESKTOP_APP_USE_PACKAGED_LAZY)
pkg_check_modules(GTK3 REQUIRED IMPORTED_TARGET gtk+-3.0)
target_link_libraries(Telegram PRIVATE PkgConfig::GTK3)
if (NOT DESKTOP_APP_DISABLE_X11_INTEGRATION)
pkg_check_modules(X11 REQUIRED IMPORTED_TARGET x11)
target_link_libraries(Telegram PRIVATE PkgConfig::X11)
endif()
else()
pkg_check_modules(GTK REQUIRED gtk+-3.0)
target_include_directories(Telegram PRIVATE ${GTK_INCLUDE_DIRS})
if (NOT DESKTOP_APP_DISABLE_X11_INTEGRATION)
target_link_libraries(Telegram PRIVATE X11)
endif()
endif()
endif()
endif()
target_precompile_headers(Telegram PRIVATE ${src_loc}/stdafx.h)
nice_target_sources(Telegram ${src_loc}
PRIVATE
@@ -144,13 +104,19 @@ PRIVATE
api/api_attached_stickers.h
api/api_authorizations.cpp
api/api_authorizations.h
api/api_blocked_peers.cpp
api/api_blocked_peers.h
api/api_bot.cpp
api/api_bot.h
api/api_chat_filters.cpp
api/api_chat_filters.h
api/api_chat_invite.cpp
api/api_chat_invite.h
api/api_cloud_password.cpp
api/api_cloud_password.h
api/api_common.h
api/api_confirm_phone.cpp
api/api_confirm_phone.h
api/api_editing.cpp
api/api_editing.h
api/api_global_privacy.cpp
@@ -161,6 +127,10 @@ PRIVATE
api/api_invite_links.h
api/api_media.cpp
api/api_media.h
api/api_peer_photo.cpp
api/api_peer_photo.h
api/api_polls.cpp
api/api_polls.h
api/api_self_destruct.cpp
api/api_self_destruct.h
api/api_send_progress.cpp
@@ -177,6 +147,12 @@ PRIVATE
api/api_toggling_media.h
api/api_updates.cpp
api/api_updates.h
api/api_user_privacy.cpp
api/api_user_privacy.h
api/api_views.cpp
api/api_views.h
api/api_who_read.cpp
api/api_who_read.h
boxes/filters/edit_filter_box.cpp
boxes/filters/edit_filter_box.h
boxes/filters/edit_filter_chats_list.cpp
@@ -191,20 +167,29 @@ PRIVATE
boxes/peers/edit_participant_box.h
boxes/peers/edit_participants_box.cpp
boxes/peers/edit_participants_box.h
boxes/peers/edit_peer_common.h
boxes/peers/edit_peer_info_box.cpp
boxes/peers/edit_peer_info_box.h
boxes/peers/edit_peer_invite_link.cpp
boxes/peers/edit_peer_invite_link.h
boxes/peers/edit_peer_invite_links.cpp
boxes/peers/edit_peer_invite_links.h
boxes/peers/edit_peer_type_box.cpp
boxes/peers/edit_peer_type_box.h
boxes/peers/edit_peer_history_visibility_box.cpp
boxes/peers/edit_peer_history_visibility_box.h
boxes/peers/edit_peer_permissions_box.cpp
boxes/peers/edit_peer_permissions_box.h
boxes/peers/edit_peer_requests_box.cpp
boxes/peers/edit_peer_requests_box.h
boxes/peers/edit_peer_type_box.cpp
boxes/peers/edit_peer_type_box.h
boxes/peers/peer_short_info_box.cpp
boxes/peers/peer_short_info_box.h
boxes/peers/prepare_short_info_box.cpp
boxes/peers/prepare_short_info_box.h
boxes/about_box.cpp
boxes/about_box.h
boxes/about_sponsored_box.cpp
boxes/about_sponsored_box.h
boxes/abstract_box.cpp
boxes/abstract_box.h
boxes/add_contact_box.cpp
@@ -219,14 +204,12 @@ PRIVATE
boxes/background_preview_box.h
boxes/change_phone_box.cpp
boxes/change_phone_box.h
boxes/confirm_box.cpp
boxes/confirm_box.h
boxes/confirm_phone_box.cpp
boxes/confirm_phone_box.h
boxes/connection_box.cpp
boxes/connection_box.h
boxes/create_poll_box.cpp
boxes/create_poll_box.h
boxes/delete_messages_box.cpp
boxes/delete_messages_box.h
boxes/dictionaries_manager.cpp
boxes/dictionaries_manager.h
boxes/download_path_box.cpp
@@ -241,6 +224,8 @@ PRIVATE
boxes/language_box.h
boxes/local_storage_box.cpp
boxes/local_storage_box.h
boxes/max_invite_box.cpp
boxes/max_invite_box.h
boxes/mute_settings_box.cpp
boxes/mute_settings_box.h
boxes/peer_list_box.cpp
@@ -251,10 +236,10 @@ PRIVATE
boxes/peer_lists_box.h
boxes/passcode_box.cpp
boxes/passcode_box.h
boxes/photo_crop_box.cpp
boxes/photo_crop_box.h
boxes/rate_call_box.cpp
boxes/rate_call_box.h
boxes/phone_banned_box.cpp
boxes/phone_banned_box.h
boxes/pin_messages_box.cpp
boxes/pin_messages_box.h
boxes/self_destruction_box.cpp
boxes/self_destruction_box.h
boxes/send_files_box.cpp
@@ -273,8 +258,11 @@ PRIVATE
boxes/username_box.h
calls/group/calls_choose_join_as.cpp
calls/group/calls_choose_join_as.h
calls/group/calls_cover_item.cpp
calls/group/calls_cover_item.h
calls/group/calls_group_call.cpp
calls/group/calls_group_call.h
calls/group/calls_group_common.cpp
calls/group/calls_group_common.h
calls/group/calls_group_invite_controller.cpp
calls/group/calls_group_invite_controller.h
@@ -320,8 +308,12 @@ PRIVATE
calls/calls_video_bubble.h
calls/calls_video_incoming.cpp
calls/calls_video_incoming.h
chat_helpers/bot_command.cpp
chat_helpers/bot_command.h
chat_helpers/bot_keyboard.cpp
chat_helpers/bot_keyboard.h
chat_helpers/emoji_interactions.cpp
chat_helpers/emoji_interactions.h
chat_helpers/emoji_keywords.cpp
chat_helpers/emoji_keywords.h
chat_helpers/emoji_list_widget.cpp
@@ -391,12 +383,17 @@ PRIVATE
core/utils.cpp
core/utils.h
core/version.h
countries/countries_manager.cpp
countries/countries_manager.h
data/stickers/data_stickers_set.cpp
data/stickers/data_stickers_set.h
data/stickers/data_stickers.cpp
data/stickers/data_stickers.h
data/data_abstract_sparse_ids.h
data/data_abstract_structure.cpp
data/data_abstract_structure.h
data/data_audio_msg_id.cpp
data/data_audio_msg_id.h
data/data_auto_download.cpp
data/data_auto_download.h
data/data_chat.cpp
@@ -428,6 +425,7 @@ PRIVATE
data/data_file_origin.cpp
data/data_file_origin.h
data/data_flags.h
data/data_game.cpp
data/data_game.h
data/data_group_call.cpp
data/data_group_call.h
@@ -443,6 +441,7 @@ PRIVATE
data/data_media_types.h
data/data_messages.cpp
data/data_messages.h
data/data_msg_id.h
data/data_notify_settings.cpp
data/data_notify_settings.h
data/data_peer.cpp
@@ -465,6 +464,8 @@ PRIVATE
data/data_reply_preview.h
data/data_search_controller.cpp
data/data_search_controller.h
data/data_send_action.cpp
data/data_send_action.h
data/data_session.cpp
data/data_session.h
data/data_scheduled_messages.cpp
@@ -473,6 +474,8 @@ PRIVATE
data/data_shared_media.h
data/data_sparse_ids.cpp
data/data_sparse_ids.h
data/data_sponsored_messages.cpp
data/data_sponsored_messages.h
data/data_streaming.cpp
data/data_streaming.h
data/data_types.cpp
@@ -493,8 +496,6 @@ PRIVATE
dialogs/dialogs_inner_widget.h
dialogs/dialogs_key.cpp
dialogs/dialogs_key.h
dialogs/dialogs_layout.cpp
dialogs/dialogs_layout.h
dialogs/dialogs_list.cpp
dialogs/dialogs_list.h
dialogs/dialogs_main_list.cpp
@@ -507,6 +508,44 @@ PRIVATE
dialogs/dialogs_search_from_controllers.h
dialogs/dialogs_widget.cpp
dialogs/dialogs_widget.h
dialogs/ui/dialogs_layout.cpp
dialogs/ui/dialogs_layout.h
dialogs/ui/dialogs_message_view.cpp
dialogs/ui/dialogs_message_view.h
editor/color_picker.cpp
editor/color_picker.h
editor/controllers/controllers.h
editor/controllers/stickers_panel_controller.cpp
editor/controllers/stickers_panel_controller.h
editor/controllers/undo_controller.cpp
editor/controllers/undo_controller.h
editor/editor_crop.cpp
editor/editor_crop.h
editor/editor_paint.cpp
editor/editor_paint.h
editor/photo_editor.cpp
editor/photo_editor.h
editor/photo_editor_common.cpp
editor/photo_editor_common.h
editor/photo_editor_content.cpp
editor/photo_editor_content.h
editor/photo_editor_controls.cpp
editor/photo_editor_controls.h
editor/photo_editor_inner_common.h
editor/photo_editor_layer_widget.cpp
editor/photo_editor_layer_widget.h
editor/scene/scene.cpp
editor/scene/scene.h
editor/scene/scene_item_base.cpp
editor/scene/scene_item_base.h
editor/scene/scene_item_canvas.cpp
editor/scene/scene_item_canvas.h
editor/scene/scene_item_image.cpp
editor/scene/scene_item_image.h
editor/scene/scene_item_line.cpp
editor/scene/scene_item_line.h
editor/scene/scene_item_sticker.cpp
editor/scene/scene_item_sticker.h
export/export_manager.cpp
export/export_manager.h
export/view/export_view_content.cpp
@@ -584,8 +623,12 @@ PRIVATE
history/view/history_view_cursor_state.h
history/view/history_view_element.cpp
history/view/history_view_element.h
history/view/history_view_group_call_tracker.cpp
history/view/history_view_group_call_tracker.h
history/view/history_view_emoji_interactions.cpp
history/view/history_view_emoji_interactions.h
history/view/history_view_empty_list_bubble.cpp
history/view/history_view_empty_list_bubble.h
history/view/history_view_group_call_bar.cpp
history/view/history_view_group_call_bar.h
history/view/history_view_list_widget.cpp
history/view/history_view_list_widget.h
history/view/history_view_message.cpp
@@ -599,6 +642,8 @@ PRIVATE
history/view/history_view_pinned_tracker.h
history/view/history_view_replies_section.cpp
history/view/history_view_replies_section.h
history/view/history_view_requests_bar.cpp
history/view/history_view_requests_bar.h
history/view/history_view_schedule_box.cpp
history/view/history_view_schedule_box.h
history/view/history_view_scheduled_section.cpp
@@ -609,6 +654,8 @@ PRIVATE
history/view/history_view_service_message.h
history/view/history_view_top_bar_widget.cpp
history/view/history_view_top_bar_widget.h
history/view/history_view_view_button.cpp
history/view/history_view_view_button.h
history/view/history_view_webpage_preview.cpp
history/view/history_view_webpage_preview.h
history/history.cpp
@@ -619,6 +666,10 @@ PRIVATE
history/history_item.h
history/history_item_components.cpp
history/history_item_components.h
history/history_item_edition.cpp
history/history_item_edition.h
history/history_item_reply_markup.cpp
history/history_item_reply_markup.h
history/history_item_text.cpp
history/history_item_text.h
history/history_inner_widget.cpp
@@ -720,6 +771,10 @@ PRIVATE
lang/lang_numbers_animation.h
lang/lang_translator.cpp
lang/lang_translator.h
layout/layout_document_generic_preview.cpp
layout/layout_document_generic_preview.h
layout/layout_item_base.cpp
layout/layout_item_base.h
main/main_account.cpp
main/main_account.h
main/main_app_config.cpp
@@ -859,20 +914,6 @@ PRIVATE
payments/payments_form.h
platform/linux/linux_desktop_environment.cpp
platform/linux/linux_desktop_environment.h
platform/linux/linux_gdk_helper.cpp
platform/linux/linux_gdk_helper.h
platform/linux/linux_gsd_media_keys.cpp
platform/linux/linux_gsd_media_keys.h
platform/linux/linux_gtk_file_dialog.cpp
platform/linux/linux_gtk_file_dialog.h
platform/linux/linux_gtk_integration_dummy.cpp
platform/linux/linux_gtk_integration_p.h
platform/linux/linux_gtk_integration.cpp
platform/linux/linux_gtk_integration.h
platform/linux/linux_gtk_open_with_dialog.cpp
platform/linux/linux_gtk_open_with_dialog.h
platform/linux/linux_notification_service_watcher.cpp
platform/linux/linux_notification_service_watcher.h
platform/linux/linux_wayland_integration_dummy.cpp
platform/linux/linux_wayland_integration.cpp
platform/linux/linux_wayland_integration.h
@@ -891,7 +932,6 @@ PRIVATE
platform/linux/notifications_manager_linux.h
platform/linux/specific_linux.cpp
platform/linux/specific_linux.h
platform/linux/window_title_linux.h
platform/mac/file_utilities_mac.mm
platform/mac/file_utilities_mac.h
platform/mac/launcher_mac.mm
@@ -906,7 +946,6 @@ PRIVATE
platform/mac/specific_mac_p.mm
platform/mac/specific_mac_p.h
platform/mac/window_title_mac.mm
platform/mac/window_title_mac.h
platform/mac/touchbar/items/mac_formatter_item.h
platform/mac/touchbar/items/mac_formatter_item.mm
platform/mac/touchbar/items/mac_pinned_chats_item.h
@@ -937,14 +976,14 @@ PRIVATE
platform/win/notifications_manager_win.h
platform/win/specific_win.cpp
platform/win/specific_win.h
platform/win/window_title_win.cpp
platform/win/window_title_win.h
platform/win/windows_app_user_model_id.cpp
platform/win/windows_app_user_model_id.h
platform/win/windows_dlls.cpp
platform/win/windows_dlls.h
platform/win/windows_event_filter.cpp
platform/win/windows_event_filter.h
platform/win/windows_toast_activator.cpp
platform/win/windows_toast_activator.h
platform/platform_audio.h
platform/platform_file_utilities.h
platform/platform_launcher.h
@@ -1038,6 +1077,12 @@ PRIVATE
support/support_helper.h
support/support_templates.cpp
support/support_templates.h
ui/chat/attach/attach_item_single_file_preview.cpp
ui/chat/attach/attach_item_single_file_preview.h
ui/chat/attach/attach_item_single_media_preview.cpp
ui/chat/attach/attach_item_single_media_preview.h
ui/chat/choose_theme_controller.cpp
ui/chat/choose_theme_controller.h
ui/effects/fireworks_animation.cpp
ui/effects/fireworks_animation.h
ui/effects/round_checkbox.cpp
@@ -1050,10 +1095,6 @@ PRIVATE
ui/image/image_location.h
ui/image/image_location_factory.cpp
ui/image/image_location_factory.h
ui/widgets/continuous_sliders.cpp
ui/widgets/continuous_sliders.h
ui/widgets/discrete_sliders.cpp
ui/widgets/discrete_sliders.h
ui/widgets/level_meter.cpp
ui/widgets/level_meter.h
ui/widgets/multi_select.cpp
@@ -1108,13 +1149,11 @@ PRIVATE
window/window_outdated_bar.h
window/window_peer_menu.cpp
window/window_peer_menu.h
window/window_section_common.h
window/window_session_controller.cpp
window/window_session_controller.h
window/window_slide_animation.cpp
window/window_slide_animation.h
window/window_title_qt.cpp
window/window_title_qt.h
window/window_title.h
window/window_top_bar_wrap.h
window/themes/window_theme.cpp
window/themes/window_theme.h
@@ -1141,8 +1180,6 @@ PRIVATE
config.h
facades.cpp
facades.h
layout.cpp
layout.h
logs.cpp
logs.h
main.cpp
@@ -1155,21 +1192,8 @@ PRIVATE
stdafx.h
)
if (NOT LINUX)
remove_target_sources(Telegram ${src_loc}
window/window_title_qt.cpp
window/window_title_qt.h
)
endif()
if (DESKTOP_APP_DISABLE_DBUS_INTEGRATION)
remove_target_sources(Telegram ${src_loc}
platform/linux/linux_gsd_media_keys.cpp
platform/linux/linux_gsd_media_keys.h
platform/linux/linux_mpris_support.cpp
platform/linux/linux_mpris_support.h
platform/linux/linux_notification_service_watcher.cpp
platform/linux/linux_notification_service_watcher.h
platform/linux/linux_xdp_file_dialog.cpp
platform/linux/linux_xdp_file_dialog.h
platform/linux/linux_xdp_open_with_dialog.cpp
@@ -1192,23 +1216,6 @@ else()
)
endif()
if (DESKTOP_APP_DISABLE_GTK_INTEGRATION)
remove_target_sources(Telegram ${src_loc}
platform/linux/linux_gdk_helper.cpp
platform/linux/linux_gdk_helper.h
platform/linux/linux_gtk_file_dialog.cpp
platform/linux/linux_gtk_file_dialog.h
platform/linux/linux_gtk_integration_p.h
platform/linux/linux_gtk_integration.cpp
platform/linux/linux_gtk_open_with_dialog.cpp
platform/linux/linux_gtk_open_with_dialog.h
)
else()
remove_target_sources(Telegram ${src_loc}
platform/linux/linux_gtk_integration_dummy.cpp
)
endif()
if (DESKTOP_APP_USE_PACKAGED)
remove_target_sources(Telegram ${src_loc}
platform/mac/mac_iconv_helper.c
@@ -1253,8 +1260,7 @@ elseif (APPLE)
endif()
set(icons_path ${CMAKE_CURRENT_SOURCE_DIR}/Telegram/Images.xcassets)
set_target_properties(Telegram PROPERTIES RESOURCE ${icons_path})
target_sources(Telegram PRIVATE ${icons_path})
target_add_resource(Telegram ${icons_path})
set(lang_packs
en
@@ -1280,15 +1286,47 @@ elseif (APPLE)
PRE_LINK
COMMAND mkdir -p $<TARGET_FILE_DIR:Telegram>/../Frameworks
COMMAND cp $<TARGET_FILE:Updater> $<TARGET_FILE_DIR:Telegram>/../Frameworks/
COMMAND mkdir -p $<TARGET_FILE_DIR:Telegram>/../Resources
COMMAND cp ${CMAKE_BINARY_DIR}/lib_ui.rcc $<TARGET_FILE_DIR:Telegram>/../Resources
)
if (NOT DESKTOP_APP_DISABLE_CRASH_REPORTS)
if (DESKTOP_APP_MAC_ARCH STREQUAL "x86_64" OR DESKTOP_APP_MAC_ARCH STREQUAL "arm64")
set(crashpad_dir_part ".${DESKTOP_APP_MAC_ARCH}")
else()
set(crashpad_dir_part "")
endif()
add_custom_command(TARGET Telegram
PRE_LINK
COMMAND mkdir -p $<TARGET_FILE_DIR:Telegram>/../Helpers
COMMAND cp ${libs_loc}/crashpad/out/$<IF:$<CONFIG:Debug>,Debug,Release>/crashpad_handler $<TARGET_FILE_DIR:Telegram>/../Helpers/
COMMAND cp ${libs_loc}/crashpad/out/$<IF:$<CONFIG:Debug>,Debug,Release>${crashpad_dir_part}/crashpad_handler $<TARGET_FILE_DIR:Telegram>/../Helpers/
)
endif()
endif()
else()
if (NOT DESKTOP_APP_DISABLE_DBUS_INTEGRATION)
target_link_libraries(Telegram
PRIVATE
desktop-app::external_statusnotifieritem
desktop-app::external_dbusmenu_qt
desktop-app::external_glibmm
desktop-app::external_glib
)
endif()
if (NOT DESKTOP_APP_DISABLE_X11_INTEGRATION)
target_link_libraries(Telegram
PRIVATE
desktop-app::external_xcb
)
endif()
if (NOT DESKTOP_APP_DISABLE_WAYLAND_INTEGRATION)
target_link_libraries(Telegram
PRIVATE
desktop-app::lib_waylandshells
desktop-app::external_kwayland
)
endif()
endif()
if (build_macstore)
@@ -1305,10 +1343,6 @@ if (build_macstore)
COMMAND mkdir -p $<TARGET_FILE_DIR:Telegram>/../Frameworks
COMMAND cp -a ${libs_loc}/breakpad/src/client/mac/build/Release/Breakpad.framework $<TARGET_FILE_DIR:Telegram>/../Frameworks/Breakpad.framework
)
elseif (build_osx)
set(bundle_identifier "com.tdesktop.Telegram$<$<CONFIG:Debug>:DebugOsx>")
set(bundle_entitlements "Telegram.entitlements")
set(output_name "Telegram")
else()
set(bundle_identifier "com.tdesktop.Telegram$<$<CONFIG:Debug>:Debug>")
set(bundle_entitlements "Telegram.entitlements")
@@ -1362,9 +1396,37 @@ endif()
set_target_properties(Telegram PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${output_folder})
if (WIN32)
target_link_options(Telegram
PRIVATE
/DELAYLOAD:secur32.dll
/DELAYLOAD:winmm.dll
/DELAYLOAD:ws2_32.dll
/DELAYLOAD:user32.dll
/DELAYLOAD:gdi32.dll
/DELAYLOAD:advapi32.dll
/DELAYLOAD:shell32.dll
/DELAYLOAD:ole32.dll
/DELAYLOAD:oleaut32.dll
/DELAYLOAD:shlwapi.dll
/DELAYLOAD:iphlpapi.dll
/DELAYLOAD:gdiplus.dll
/DELAYLOAD:version.dll
/DELAYLOAD:dwmapi.dll
/DELAYLOAD:uxtheme.dll
/DELAYLOAD:crypt32.dll
/DELAYLOAD:bcrypt.dll
/DELAYLOAD:imm32.dll
/DELAYLOAD:netapi32.dll
/DELAYLOAD:userenv.dll
/DELAYLOAD:wtsapi32.dll
/DELAYLOAD:propsys.dll
)
endif()
if ((NOT DESKTOP_APP_DISABLE_AUTOUPDATE OR APPLE) AND NOT build_macstore AND NOT build_winstore)
add_executable(Updater WIN32)
init_target(Updater)
init_non_host_target(Updater)
add_dependencies(Telegram Updater)
@@ -1376,18 +1438,34 @@ if ((NOT DESKTOP_APP_DISABLE_AUTOUPDATE OR APPLE) AND NOT build_macstore AND NOT
_other/updater.h
)
set_target_properties(Updater PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${output_folder})
set_target_properties(Updater PROPERTIES
RUNTIME_OUTPUT_DIRECTORY ${output_folder}
)
if (WIN32 AND NOT CMAKE_CXX_COMPILER_ID STREQUAL "MSVC")
target_link_options(Updater PRIVATE -municode)
endif()
if (LINUX)
target_link_options(Updater PRIVATE -static-libstdc++)
if (WIN32)
get_filename_component(lib_base_loc lib_base REALPATH)
nice_target_sources(Updater ${lib_base_loc}
PRIVATE
base/platform/win/base_windows_safe_library.cpp
base/platform/win/base_windows_safe_library.h
)
target_include_directories(Updater PRIVATE ${lib_base_loc})
if (CMAKE_CXX_COMPILER_ID STREQUAL "MSVC")
target_link_options(Updater
PRIVATE
/DELAYLOAD:user32.dll
/DELAYLOAD:advapi32.dll
/DELAYLOAD:shell32.dll
/DELAYLOAD:ole32.dll
/DELAYLOAD:shlwapi.dll
)
else()
target_link_options(Updater PRIVATE -municode)
endif()
endif()
if (DESKTOP_APP_SPECIAL_TARGET)
add_executable(Packer WIN32)
add_executable(Packer)
init_target(Packer)
add_dependencies(Telegram Packer)

View File

@@ -1,651 +0,0 @@
diff --git a/src/build/common.gypi b/src/build/common.gypi
index 29990c65..53e99d44 100644
--- a/src/build/common.gypi
+++ b/src/build/common.gypi
@@ -330,6 +330,7 @@
'VCCLCompilerTool': {
'WarnAsError': 'true',
'Detect64BitPortabilityProblems': 'false',
+ 'TreatWChar_tAsBuiltInType': 'false',
},
},
}],
diff --git a/src/client/mac/Breakpad.xcodeproj/project.pbxproj b/src/client/mac/Breakpad.xcodeproj/project.pbxproj
index 1a93ce6d..b5986e33 100644
--- a/src/client/mac/Breakpad.xcodeproj/project.pbxproj
+++ b/src/client/mac/Breakpad.xcodeproj/project.pbxproj
@@ -35,6 +35,19 @@
/* End PBXAggregateTarget section */
/* Begin PBXBuildFile section */
+ 0748C0431C63C409004489BF /* MachIPC.mm in Sources */ = {isa = PBXBuildFile; fileRef = F92C53790ECCE635009BE4BA /* MachIPC.mm */; };
+ 0748C0441C63C43C004489BF /* minidump_generator.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C536F0ECCE3FD009BE4BA /* minidump_generator.cc */; };
+ 0748C0451C63C46C004489BF /* string_utilities.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C53820ECCE635009BE4BA /* string_utilities.cc */; };
+ 0748C0461C63C484004489BF /* minidump_file_writer.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C538F0ECCE70A009BE4BA /* minidump_file_writer.cc */; };
+ 0748C0471C63C4A1004489BF /* dynamic_images.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C536B0ECCE3FD009BE4BA /* dynamic_images.cc */; };
+ 0748C0491C63C4CF004489BF /* macho_id.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C537A0ECCE635009BE4BA /* macho_id.cc */; };
+ 0748C04A1C63C4D4004489BF /* string_conversion.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C53850ECCE6AD009BE4BA /* string_conversion.cc */; };
+ 0748C04B1C63C4DB004489BF /* convert_UTF.c in Sources */ = {isa = PBXBuildFile; fileRef = F92C53870ECCE6C0009BE4BA /* convert_UTF.c */; };
+ 0748C04C1C63C4EA004489BF /* macho_utilities.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C537C0ECCE635009BE4BA /* macho_utilities.cc */; };
+ 0748C04D1C63C50F004489BF /* file_id.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C53740ECCE635009BE4BA /* file_id.cc */; };
+ 0748C04E1C63C51C004489BF /* md5.cc in Sources */ = {isa = PBXBuildFile; fileRef = 4D72CA0D13DFAD5C006CABE3 /* md5.cc */; };
+ 0748C04F1C63C523004489BF /* macho_walker.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C537E0ECCE635009BE4BA /* macho_walker.cc */; };
+ 0748C0501C63C52D004489BF /* bootstrap_compat.cc in Sources */ = {isa = PBXBuildFile; fileRef = 4D61A25D14F43CFC002D5862 /* bootstrap_compat.cc */; };
162F64F2161C577500CD68D5 /* arch_utilities.cc in Sources */ = {isa = PBXBuildFile; fileRef = 162F64F0161C577500CD68D5 /* arch_utilities.cc */; };
162F64F3161C577500CD68D5 /* arch_utilities.h in Headers */ = {isa = PBXBuildFile; fileRef = 162F64F1161C577500CD68D5 /* arch_utilities.h */; };
162F64F4161C579B00CD68D5 /* arch_utilities.cc in Sources */ = {isa = PBXBuildFile; fileRef = 162F64F0161C577500CD68D5 /* arch_utilities.cc */; };
@@ -67,6 +80,7 @@
4DBE49A7134A4F280072546A /* CoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4DBE4769134A4F080072546A /* CoreServices.framework */; };
4DBE49A8134A4F380072546A /* CoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4DBE4769134A4F080072546A /* CoreServices.framework */; };
4DBE49A9134A4F460072546A /* CoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4DBE4769134A4F080072546A /* CoreServices.framework */; };
+ 5A8B220921E0C5740045F83C /* breakpad_nlist_64.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C53690ECCE3FD009BE4BA /* breakpad_nlist_64.cc */; };
8B3101C611F0CD9F00FCF3E4 /* AppKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0867D6A5FE840307C02AAC07 /* AppKit.framework */; };
8B3101C711F0CD9F00FCF3E4 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0867D69BFE84028FC02AAC07 /* Foundation.framework */; };
8B3101CA11F0CDB000FCF3E4 /* AppKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0867D6A5FE840307C02AAC07 /* AppKit.framework */; };
@@ -170,11 +184,8 @@
F92C564A0ECD10CA009BE4BA /* string_conversion.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C53850ECCE6AD009BE4BA /* string_conversion.cc */; };
F92C564C0ECD10DD009BE4BA /* breakpadUtilities.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = F92C563C0ECD10B3009BE4BA /* breakpadUtilities.dylib */; };
F92C56570ECD113E009BE4BA /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F92C554A0ECCF530009BE4BA /* Carbon.framework */; };
- F92C565C0ECD1158009BE4BA /* breakpadUtilities.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = F92C563C0ECD10B3009BE4BA /* breakpadUtilities.dylib */; };
F92C565F0ECD116B009BE4BA /* protected_memory_allocator.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C53720ECCE3FD009BE4BA /* protected_memory_allocator.cc */; };
F92C56630ECD1179009BE4BA /* exception_handler.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C536D0ECCE3FD009BE4BA /* exception_handler.cc */; };
- F92C56650ECD1185009BE4BA /* breakpadUtilities.dylib in Resources */ = {isa = PBXBuildFile; fileRef = F92C563C0ECD10B3009BE4BA /* breakpadUtilities.dylib */; };
- F92C568A0ECD15F9009BE4BA /* Inspector in Resources */ = {isa = PBXBuildFile; fileRef = F92C53540ECCE349009BE4BA /* Inspector */; };
F92C56A90ECE04C5009BE4BA /* crash_report_sender.m in Sources */ = {isa = PBXBuildFile; fileRef = F92C56A80ECE04C5009BE4BA /* crash_report_sender.m */; };
F93803CD0F8083B7004D428B /* dynamic_images.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C536B0ECCE3FD009BE4BA /* dynamic_images.cc */; };
F93803CE0F8083B7004D428B /* exception_handler.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C536D0ECCE3FD009BE4BA /* exception_handler.cc */; };
@@ -213,7 +224,6 @@
F9C44DBD0EF072A0003AEBAA /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = F9C44DBA0EF072A0003AEBAA /* MainMenu.xib */; };
F9C44E000EF077CD003AEBAA /* Breakpad.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8DC2EF5B0486A6940098B216 /* Breakpad.framework */; };
F9C44E3C0EF08B12003AEBAA /* Breakpad.framework in Copy Frameworks */ = {isa = PBXBuildFile; fileRef = 8DC2EF5B0486A6940098B216 /* Breakpad.framework */; };
- F9C44E980EF09F56003AEBAA /* crash_report_sender.app in Resources */ = {isa = PBXBuildFile; fileRef = F92C56A00ECE04A7009BE4BA /* crash_report_sender.app */; };
F9C44EA20EF09F93003AEBAA /* HTTPMultipartUpload.m in Sources */ = {isa = PBXBuildFile; fileRef = F92C53770ECCE635009BE4BA /* HTTPMultipartUpload.m */; };
F9C44EE50EF0A006003AEBAA /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F9C44EE40EF0A006003AEBAA /* SystemConfiguration.framework */; };
F9C44EE90EF0A3C1003AEBAA /* GTMLogger.m in Sources */ = {isa = PBXBuildFile; fileRef = F9C44EE80EF0A3C1003AEBAA /* GTMLogger.m */; };
@@ -410,20 +420,6 @@
remoteGlobalIDString = F92C563B0ECD10B3009BE4BA;
remoteInfo = breakpadUtilities;
};
- F92C56850ECD15EF009BE4BA /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = 0867D690FE84028FC02AAC07 /* Project object */;
- proxyType = 1;
- remoteGlobalIDString = F92C563B0ECD10B3009BE4BA;
- remoteInfo = breakpadUtilities;
- };
- F92C56870ECD15F1009BE4BA /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = 0867D690FE84028FC02AAC07 /* Project object */;
- proxyType = 1;
- remoteGlobalIDString = F92C53530ECCE349009BE4BA;
- remoteInfo = Inspector;
- };
F93DE2FB0F82C3C600608B94 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 0867D690FE84028FC02AAC07 /* Project object */;
@@ -536,13 +532,6 @@
remoteGlobalIDString = 8DC2EF4F0486A6940098B216;
remoteInfo = Breakpad;
};
- F9C44E960EF09F4B003AEBAA /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = 0867D690FE84028FC02AAC07 /* Project object */;
- proxyType = 1;
- remoteGlobalIDString = F92C569F0ECE04A7009BE4BA;
- remoteInfo = crash_report_sender;
- };
/* End PBXContainerItemProxy section */
/* Begin PBXCopyFilesBuildPhase section */
@@ -714,7 +703,6 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
- F92C565C0ECD1158009BE4BA /* breakpadUtilities.dylib in Frameworks */,
8DC2EF570486A6940098B216 /* Cocoa.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
@@ -1181,18 +1169,13 @@
isa = PBXNativeTarget;
buildConfigurationList = 1DEB91AD08733DA50010E9CD /* Build configuration list for PBXNativeTarget "Breakpad" */;
buildPhases = (
- F97A0E850ED4EC15008784D3 /* Change install name of breakpadUtilities */,
8DC2EF500486A6940098B216 /* Headers */,
- 8DC2EF520486A6940098B216 /* Resources */,
8DC2EF540486A6940098B216 /* Sources */,
8DC2EF560486A6940098B216 /* Frameworks */,
);
buildRules = (
);
dependencies = (
- F92C56860ECD15EF009BE4BA /* PBXTargetDependency */,
- F92C56880ECD15F1009BE4BA /* PBXTargetDependency */,
- F9C44E970EF09F4B003AEBAA /* PBXTargetDependency */,
);
name = Breakpad;
productInstallPath = "$(HOME)/Library/Frameworks";
@@ -1399,6 +1382,8 @@
/* Begin PBXProject section */
0867D690FE84028FC02AAC07 /* Project object */ = {
isa = PBXProject;
+ attributes = {
+ };
buildConfigurationList = 1DEB91B108733DA50010E9CD /* Build configuration list for PBXProject "Breakpad" */;
compatibilityVersion = "Xcode 3.1";
developmentRegion = English;
@@ -1583,16 +1568,6 @@
/* End PBXReferenceProxy section */
/* Begin PBXResourcesBuildPhase section */
- 8DC2EF520486A6940098B216 /* Resources */ = {
- isa = PBXResourcesBuildPhase;
- buildActionMask = 2147483647;
- files = (
- F9C44E980EF09F56003AEBAA /* crash_report_sender.app in Resources */,
- F92C568A0ECD15F9009BE4BA /* Inspector in Resources */,
- F92C56650ECD1185009BE4BA /* breakpadUtilities.dylib in Resources */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
F92C569C0ECE04A7009BE4BA /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
@@ -1640,20 +1615,6 @@
shellPath = /bin/sh;
shellScript = "install_name_tool -id \"@executable_path/../Resources/breakpadUtilities.dylib\" \"${BUILT_PRODUCTS_DIR}/breakpadUtilities.dylib\"\n";
};
- F97A0E850ED4EC15008784D3 /* Change install name of breakpadUtilities */ = {
- isa = PBXShellScriptBuildPhase;
- buildActionMask = 2147483647;
- files = (
- );
- inputPaths = (
- );
- name = "Change install name of breakpadUtilities";
- outputPaths = (
- );
- runOnlyForDeploymentPostprocessing = 0;
- shellPath = /bin/sh;
- shellScript = "#!/bin/bash\ninstall_name_tool -id \"@executable_path/../Frameworks/Breakpad.framework/Resources/breakpadUtilities.dylib\" \"${BUILT_PRODUCTS_DIR}/breakpadUtilities.dylib\"\n";
- };
F9C77DD80F7DD5CF0045F7DB /* ShellScript */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
@@ -1674,6 +1635,20 @@
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
+ 5A8B220921E0C5740045F83C /* breakpad_nlist_64.cc in Sources */,
+ 0748C0501C63C52D004489BF /* bootstrap_compat.cc in Sources */,
+ 0748C04F1C63C523004489BF /* macho_walker.cc in Sources */,
+ 0748C04E1C63C51C004489BF /* md5.cc in Sources */,
+ 0748C04D1C63C50F004489BF /* file_id.cc in Sources */,
+ 0748C04C1C63C4EA004489BF /* macho_utilities.cc in Sources */,
+ 0748C04B1C63C4DB004489BF /* convert_UTF.c in Sources */,
+ 0748C04A1C63C4D4004489BF /* string_conversion.cc in Sources */,
+ 0748C0491C63C4CF004489BF /* macho_id.cc in Sources */,
+ 0748C0471C63C4A1004489BF /* dynamic_images.cc in Sources */,
+ 0748C0461C63C484004489BF /* minidump_file_writer.cc in Sources */,
+ 0748C0451C63C46C004489BF /* string_utilities.cc in Sources */,
+ 0748C0441C63C43C004489BF /* minidump_generator.cc in Sources */,
+ 0748C0431C63C409004489BF /* MachIPC.mm in Sources */,
F92C565F0ECD116B009BE4BA /* protected_memory_allocator.cc in Sources */,
F92C56630ECD1179009BE4BA /* exception_handler.cc in Sources */,
F92C55D10ECD0064009BE4BA /* Breakpad.mm in Sources */,
@@ -1955,16 +1930,6 @@
target = F92C563B0ECD10B3009BE4BA /* breakpadUtilities */;
targetProxy = F92C564D0ECD10E5009BE4BA /* PBXContainerItemProxy */;
};
- F92C56860ECD15EF009BE4BA /* PBXTargetDependency */ = {
- isa = PBXTargetDependency;
- target = F92C563B0ECD10B3009BE4BA /* breakpadUtilities */;
- targetProxy = F92C56850ECD15EF009BE4BA /* PBXContainerItemProxy */;
- };
- F92C56880ECD15F1009BE4BA /* PBXTargetDependency */ = {
- isa = PBXTargetDependency;
- target = F92C53530ECCE349009BE4BA /* Inspector */;
- targetProxy = F92C56870ECD15F1009BE4BA /* PBXContainerItemProxy */;
- };
F93DE2FC0F82C3C600608B94 /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
target = F93803BD0F80820F004D428B /* generator_test */;
@@ -2025,11 +1990,6 @@
target = 8DC2EF4F0486A6940098B216 /* Breakpad */;
targetProxy = F9C44E190EF0790F003AEBAA /* PBXContainerItemProxy */;
};
- F9C44E970EF09F4B003AEBAA /* PBXTargetDependency */ = {
- isa = PBXTargetDependency;
- target = F92C569F0ECE04A7009BE4BA /* crash_report_sender */;
- targetProxy = F9C44E960EF09F4B003AEBAA /* PBXContainerItemProxy */;
- };
/* End PBXTargetDependency section */
/* Begin PBXVariantGroup section */
@@ -2126,8 +2086,12 @@
isa = XCBuildConfiguration;
baseConfigurationReference = 8B31027711F0D3AF00FCF3E4 /* BreakpadDebug.xcconfig */;
buildSettings = {
+ CLANG_CXX_LANGUAGE_STANDARD = "c++0x";
+ CLANG_CXX_LIBRARY = "libc++";
GCC_TREAT_WARNINGS_AS_ERRORS = NO;
- SDKROOT = macosx10.5;
+ GCC_VERSION = "";
+ MACOSX_DEPLOYMENT_TARGET = 10.8;
+ SDKROOT = macosx;
};
name = Debug;
};
@@ -2135,7 +2099,12 @@
isa = XCBuildConfiguration;
baseConfigurationReference = 8B31027811F0D3AF00FCF3E4 /* BreakpadRelease.xcconfig */;
buildSettings = {
+ CLANG_CXX_LANGUAGE_STANDARD = "c++0x";
+ CLANG_CXX_LIBRARY = "libc++";
GCC_TREAT_WARNINGS_AS_ERRORS = NO;
+ GCC_VERSION = "";
+ MACOSX_DEPLOYMENT_TARGET = 10.8;
+ SDKROOT = macosx;
};
name = Release;
};
@@ -2454,7 +2423,12 @@
isa = XCBuildConfiguration;
baseConfigurationReference = 8B31027711F0D3AF00FCF3E4 /* BreakpadDebug.xcconfig */;
buildSettings = {
+ CLANG_CXX_LANGUAGE_STANDARD = "c++0x";
+ CLANG_CXX_LIBRARY = "libc++";
GCC_TREAT_WARNINGS_AS_ERRORS = NO;
+ GCC_VERSION = "";
+ MACOSX_DEPLOYMENT_TARGET = 10.8;
+ SDKROOT = macosx;
};
name = "Debug With Code Coverage";
};
diff --git a/src/client/mac/Framework/Breakpad.mm b/src/client/mac/Framework/Breakpad.mm
index 1d2e519b..943310fa 100644
--- a/src/client/mac/Framework/Breakpad.mm
+++ b/src/client/mac/Framework/Breakpad.mm
@@ -355,10 +355,10 @@ bool Breakpad::Initialize(NSDictionary *parameters) {
return false;
}
- if ([[parameters objectForKey:@BREAKPAD_IN_PROCESS] boolValue])
+// if ([[parameters objectForKey:@BREAKPAD_IN_PROCESS] boolValue])
return InitializeInProcess(parameters);
- else
- return InitializeOutOfProcess(parameters);
+// else
+// return InitializeOutOfProcess(parameters);
}
//=============================================================================
@@ -373,52 +373,52 @@ bool Breakpad::InitializeInProcess(NSDictionary* parameters) {
}
//=============================================================================
-bool Breakpad::InitializeOutOfProcess(NSDictionary* parameters) {
- // Get path to Inspector executable.
- NSString *inspectorPathString = KeyValue(@BREAKPAD_INSPECTOR_LOCATION);
-
- // Standardize path (resolve symlinkes, etc.) and escape spaces
- inspectorPathString = [inspectorPathString stringByStandardizingPath];
- inspectorPathString = [[inspectorPathString componentsSeparatedByString:@" "]
- componentsJoinedByString:@"\\ "];
-
- // Create an on-demand server object representing the Inspector.
- // In case of a crash, we simply need to call the LaunchOnDemand()
- // method on it, then send a mach message to its service port.
- // It will then launch and perform a process inspection of our crashed state.
- // See the HandleException() method for the details.
-#define RECEIVE_PORT_NAME "com.Breakpad.Inspector"
-
- name_t portName;
- snprintf(portName, sizeof(name_t), "%s%d", RECEIVE_PORT_NAME, getpid());
-
- // Save the location of the Inspector
- strlcpy(inspector_path_, [inspectorPathString fileSystemRepresentation],
- sizeof(inspector_path_));
-
- // Append a single command-line argument to the Inspector path
- // representing the bootstrap name of the launch-on-demand receive port.
- // When the Inspector is launched, it can use this to lookup the port
- // by calling bootstrap_check_in().
- strlcat(inspector_path_, " ", sizeof(inspector_path_));
- strlcat(inspector_path_, portName, sizeof(inspector_path_));
-
- kern_return_t kr = inspector_.Initialize(inspector_path_,
- portName,
- true); // shutdown on exit
-
- if (kr != KERN_SUCCESS) {
- return false;
- }
-
- // Create the handler (allocating it in our special protected pool)
- handler_ =
- new (gBreakpadAllocator->Allocate(
- sizeof(google_breakpad::ExceptionHandler)))
- google_breakpad::ExceptionHandler(
- Breakpad::ExceptionHandlerDirectCallback, this, true);
- return true;
-}
+//bool Breakpad::InitializeOutOfProcess(NSDictionary* parameters) {
+// // Get path to Inspector executable.
+// NSString *inspectorPathString = KeyValue(@BREAKPAD_INSPECTOR_LOCATION);
+//
+// // Standardize path (resolve symlinkes, etc.) and escape spaces
+// inspectorPathString = [inspectorPathString stringByStandardizingPath];
+// inspectorPathString = [[inspectorPathString componentsSeparatedByString:@" "]
+// componentsJoinedByString:@"\\ "];
+//
+// // Create an on-demand server object representing the Inspector.
+// // In case of a crash, we simply need to call the LaunchOnDemand()
+// // method on it, then send a mach message to its service port.
+// // It will then launch and perform a process inspection of our crashed state.
+// // See the HandleException() method for the details.
+//#define RECEIVE_PORT_NAME "com.Breakpad.Inspector"
+//
+// name_t portName;
+// snprintf(portName, sizeof(name_t), "%s%d", RECEIVE_PORT_NAME, getpid());
+//
+// // Save the location of the Inspector
+// strlcpy(inspector_path_, [inspectorPathString fileSystemRepresentation],
+// sizeof(inspector_path_));
+//
+// // Append a single command-line argument to the Inspector path
+// // representing the bootstrap name of the launch-on-demand receive port.
+// // When the Inspector is launched, it can use this to lookup the port
+// // by calling bootstrap_check_in().
+// strlcat(inspector_path_, " ", sizeof(inspector_path_));
+// strlcat(inspector_path_, portName, sizeof(inspector_path_));
+//
+// kern_return_t kr = inspector_.Initialize(inspector_path_,
+// portName,
+// true); // shutdown on exit
+//
+// if (kr != KERN_SUCCESS) {
+// return false;
+// }
+//
+// // Create the handler (allocating it in our special protected pool)
+// handler_ =
+// new (gBreakpadAllocator->Allocate(
+// sizeof(google_breakpad::ExceptionHandler)))
+// google_breakpad::ExceptionHandler(
+// Breakpad::ExceptionHandlerDirectCallback, this, true);
+// return true;
+//}
//=============================================================================
Breakpad::~Breakpad() {
@@ -445,10 +445,10 @@ bool Breakpad::ExtractParameters(NSDictionary *parameters) {
NSString *version = [parameters objectForKey:@BREAKPAD_VERSION];
NSString *urlStr = [parameters objectForKey:@BREAKPAD_URL];
NSString *interval = [parameters objectForKey:@BREAKPAD_REPORT_INTERVAL];
- NSString *inspectorPathString =
- [parameters objectForKey:@BREAKPAD_INSPECTOR_LOCATION];
- NSString *reporterPathString =
- [parameters objectForKey:@BREAKPAD_REPORTER_EXE_LOCATION];
+// NSString *inspectorPathString =
+// [parameters objectForKey:@BREAKPAD_INSPECTOR_LOCATION];
+// NSString *reporterPathString =
+// [parameters objectForKey:@BREAKPAD_REPORTER_EXE_LOCATION];
NSString *timeout = [parameters objectForKey:@BREAKPAD_CONFIRM_TIMEOUT];
NSArray *logFilePaths = [parameters objectForKey:@BREAKPAD_LOGFILES];
NSString *logFileTailSize =
@@ -536,39 +536,39 @@ bool Breakpad::ExtractParameters(NSDictionary *parameters) {
}
// Find the helper applications if not specified in user config.
- NSString *resourcePath = nil;
- if (!inspectorPathString || !reporterPathString) {
- resourcePath = GetResourcePath();
- if (!resourcePath) {
- return false;
- }
- }
+// NSString *resourcePath = nil;
+// if (!inspectorPathString || !reporterPathString) {
+// resourcePath = GetResourcePath();
+// if (!resourcePath) {
+// return false;
+// }
+// }
// Find Inspector.
- if (!inspectorPathString) {
- inspectorPathString =
- [resourcePath stringByAppendingPathComponent:@"Inspector"];
- }
-
- // Verify that there is an Inspector tool.
- if (![[NSFileManager defaultManager] fileExistsAtPath:inspectorPathString]) {
- return false;
- }
+// if (!inspectorPathString) {
+// inspectorPathString =
+// [resourcePath stringByAppendingPathComponent:@"Inspector"];
+// }
+//
+// // Verify that there is an Inspector tool.
+// if (![[NSFileManager defaultManager] fileExistsAtPath:inspectorPathString]) {
+// return false;
+// }
// Find Reporter.
- if (!reporterPathString) {
- reporterPathString =
- [resourcePath
- stringByAppendingPathComponent:@"crash_report_sender.app"];
- reporterPathString =
- [[NSBundle bundleWithPath:reporterPathString] executablePath];
- }
+// if (!reporterPathString) {
+// reporterPathString =
+// [resourcePath
+// stringByAppendingPathComponent:@"crash_report_sender.app"];
+// reporterPathString =
+// [[NSBundle bundleWithPath:reporterPathString] executablePath];
+// }
// Verify that there is a Reporter application.
- if (![[NSFileManager defaultManager]
- fileExistsAtPath:reporterPathString]) {
- return false;
- }
+// if (![[NSFileManager defaultManager]
+// fileExistsAtPath:reporterPathString]) {
+// return false;
+// }
if (!dumpSubdirectory) {
dumpSubdirectory = @"";
@@ -601,10 +601,10 @@ bool Breakpad::ExtractParameters(NSDictionary *parameters) {
dictionary.SetKeyValue(BREAKPAD_REPORT_INTERVAL, [interval UTF8String]);
dictionary.SetKeyValue(BREAKPAD_SKIP_CONFIRM, [skipConfirm UTF8String]);
dictionary.SetKeyValue(BREAKPAD_CONFIRM_TIMEOUT, [timeout UTF8String]);
- dictionary.SetKeyValue(BREAKPAD_INSPECTOR_LOCATION,
- [inspectorPathString fileSystemRepresentation]);
- dictionary.SetKeyValue(BREAKPAD_REPORTER_EXE_LOCATION,
- [reporterPathString fileSystemRepresentation]);
+// dictionary.SetKeyValue(BREAKPAD_INSPECTOR_LOCATION,
+// [inspectorPathString fileSystemRepresentation]);
+// dictionary.SetKeyValue(BREAKPAD_REPORTER_EXE_LOCATION,
+// [reporterPathString fileSystemRepresentation]);
dictionary.SetKeyValue(BREAKPAD_LOGFILE_UPLOAD_SIZE,
[logFileTailSize UTF8String]);
dictionary.SetKeyValue(BREAKPAD_REQUEST_COMMENTS,
@@ -762,9 +762,9 @@ bool Breakpad::HandleException(int exception_type,
bool Breakpad::HandleMinidump(const char *dump_dir, const char *minidump_id) {
google_breakpad::ConfigFile config_file;
config_file.WriteFile(dump_dir, config_params_, dump_dir, minidump_id);
- google_breakpad::LaunchReporter(
- config_params_->GetValueForKey(BREAKPAD_REPORTER_EXE_LOCATION),
- config_file.GetFilePath());
+// google_breakpad::LaunchReporter(
+// config_params_->GetValueForKey(BREAKPAD_REPORTER_EXE_LOCATION),
+// config_file.GetFilePath());
return true;
}
diff --git a/src/common/language.cc b/src/common/language.cc
index 978fb855..a95ae5f7 100644
--- a/src/common/language.cc
+++ b/src/common/language.cc
@@ -46,8 +46,27 @@
#include <limits>
+#include <cstdio>
+#include <iostream>
+#include <memory>
+#include <stdexcept>
+#include <string>
+#include <array>
+
namespace {
+std::string exec(std::string cmd) {
+ std::array<char, 128> buffer;
+ std::string result;
+ std::shared_ptr<FILE> pipe(popen(cmd.c_str(), "r"), pclose);
+ if (!pipe) throw std::runtime_error("popen() failed!");
+ while (!feof(pipe.get())) {
+ if (fgets(buffer.data(), 128, pipe.get()) != nullptr)
+ result += buffer.data();
+ }
+ return result;
+}
+
string MakeQualifiedNameWithSeparator(const string& parent_name,
const char* separator,
const string& name) {
@@ -79,11 +98,29 @@ class CPPLanguage: public Language {
demangled->clear();
return kDontDemangle;
#else
+ DemangleResult result;
+ if (mangled.find("type_erased_handlers") != std::string::npos
+ && mangled.find("vtable_once_impl") != std::string::npos) {
+
+ auto demangled_str = exec("c++filt " + mangled);
+ if (!demangled_str.empty() && demangled_str.back() == '\n') {
+ demangled_str.pop_back();
+ }
+ if (demangled_str != mangled) {
+ result = kDemangleSuccess;
+ demangled->assign(demangled_str.c_str());
+ } else {
+ result = kDemangleFailure;
+ demangled->clear();
+ }
+
+ } else {
+
int status;
char* demangled_c =
abi::__cxa_demangle(mangled.c_str(), NULL, NULL, &status);
- DemangleResult result;
+// DemangleResult result;
if (status == 0) {
result = kDemangleSuccess;
demangled->assign(demangled_c);
@@ -96,6 +133,8 @@ class CPPLanguage: public Language {
free(reinterpret_cast<void*>(demangled_c));
}
+ }
+
return result;
#endif
}
diff --git a/src/common/linux/elf_symbols_to_module.cc b/src/common/linux/elf_symbols_to_module.cc
index 562875e1..43678510 100644
--- a/src/common/linux/elf_symbols_to_module.cc
+++ b/src/common/linux/elf_symbols_to_module.cc
@@ -39,6 +39,29 @@
#include "common/byte_cursor.h"
#include "common/module.h"
+#include <cstdio>
+#include <iostream>
+#include <memory>
+#include <stdexcept>
+#include <string>
+#include <array>
+
+namespace {
+
+std::string exec(std::string cmd) {
+ std::array<char, 128> buffer;
+ std::string result;
+ std::shared_ptr<FILE> pipe(popen(cmd.c_str(), "r"), pclose);
+ if (!pipe) throw std::runtime_error("popen() failed!");
+ while (!feof(pipe.get())) {
+ if (fgets(buffer.data(), 128, pipe.get()) != nullptr)
+ result += buffer.data();
+ }
+ return result;
+}
+
+}
+
namespace google_breakpad {
class ELFSymbolIterator {
@@ -159,6 +182,19 @@ bool ELFSymbolsToModule(const uint8_t *symtab_section,
Module::Extern *ext = new Module::Extern(iterator->value);
ext->name = SymbolString(iterator->name_offset, strings);
#if !defined(__ANDROID__) // Android NDK doesn't provide abi::__cxa_demangle.
+ if (ext->name.find("type_erased_handlers") != std::string::npos
+ && ext->name.find("vtable_once_impl") != std::string::npos) {
+
+ auto demangled_str = exec("c++filt " + ext->name);
+ if (!demangled_str.empty() && demangled_str.back() == '\n') {
+ demangled_str.pop_back();
+ }
+ if (demangled_str != ext->name) {
+ ext->name = demangled_str;
+ }
+
+ } else {
+
int status = 0;
char* demangled =
abi::__cxa_demangle(ext->name.c_str(), NULL, NULL, &status);
@@ -167,6 +203,8 @@ bool ELFSymbolsToModule(const uint8_t *symtab_section,
ext->name = demangled;
free(demangled);
}
+
+ }
#endif
module->AddExtern(ext);
}
diff --git a/src/tools/linux/tools_linux.gypi b/src/tools/linux/tools_linux.gypi
index 1c15992e..020e4c1c 100644
--- a/src/tools/linux/tools_linux.gypi
+++ b/src/tools/linux/tools_linux.gypi
@@ -58,7 +58,7 @@
'target_name': 'minidump_upload',
'type': 'executable',
'sources': [
- 'symupload/minidump_upload.m',
+ 'symupload/minidump_upload.cc',
],
'dependencies': [
'../common/common.gyp:common',
diff --git a/src/tools/mac/dump_syms/macho_dump.cc b/src/tools/mac/dump_syms/macho_dump.cc
index d882bbe8..3432bb45 100644
--- a/src/tools/mac/dump_syms/macho_dump.cc
+++ b/src/tools/mac/dump_syms/macho_dump.cc
@@ -140,7 +140,7 @@ void DumpFile(const char *filename) {
size_t object_files_size;
const SuperFatArch* super_fat_object_files =
fat_reader.object_files(&object_files_size);
- struct fat_arch *object_files;
+ struct fat_arch *object_files = 0;
if (!super_fat_object_files->ConvertToFatArch(object_files)) {
exit(1);
}

View File

@@ -1,121 +0,0 @@
set -e
FullExecPath=$PWD
pushd `dirname $0` > /dev/null
FullScriptPath=`pwd`
popd > /dev/null
pacman --noconfirm -Sy
pacman --noconfirm -S msys/make
pacman --noconfirm -S mingw64/mingw-w64-x86_64-opus
pacman --noconfirm -S diffutils
pacman --noconfirm -S pkg-config
PKG_CONFIG_PATH="/mingw64/lib/pkgconfig:$PKG_CONFIG_PATH"
./configure --toolchain=msvc \
--extra-cflags="-DCONFIG_SAFE_BITSTREAM_READER=1" \
--extra-cxxflags="-DCONFIG_SAFE_BITSTREAM_READER=1" \
--extra-ldflags="-libpath:$FullExecPath/../opus/win32/VS2015/Win32/Release" \
--disable-programs \
--disable-doc \
--disable-network \
--disable-everything \
--enable-hwaccel=h264_d3d11va \
--enable-hwaccel=h264_d3d11va2 \
--enable-hwaccel=h264_dxva2 \
--enable-hwaccel=hevc_d3d11va \
--enable-hwaccel=hevc_d3d11va2 \
--enable-hwaccel=hevc_dxva2 \
--enable-hwaccel=mpeg2_d3d11va \
--enable-hwaccel=mpeg2_d3d11va2 \
--enable-hwaccel=mpeg2_dxva2 \
--enable-protocol=file --enable-libopus \
--enable-decoder=aac \
--enable-decoder=aac_at \
--enable-decoder=aac_fixed \
--enable-decoder=aac_latm \
--enable-decoder=aasc \
--enable-decoder=alac \
--enable-decoder=alac_at \
--enable-decoder=flac \
--enable-decoder=gif \
--enable-decoder=h264 \
--enable-decoder=hevc \
--enable-decoder=mp1 \
--enable-decoder=mp1float \
--enable-decoder=mp2 \
--enable-decoder=mp2float \
--enable-decoder=mp3 \
--enable-decoder=mp3adu \
--enable-decoder=mp3adufloat \
--enable-decoder=mp3float \
--enable-decoder=mp3on4 \
--enable-decoder=mp3on4float \
--enable-decoder=mpeg4 \
--enable-decoder=msmpeg4v2 \
--enable-decoder=msmpeg4v3 \
--enable-decoder=opus \
--enable-decoder=pcm_alaw \
--enable-decoder=pcm_alaw_at \
--enable-decoder=pcm_f32be \
--enable-decoder=pcm_f32le \
--enable-decoder=pcm_f64be \
--enable-decoder=pcm_f64le \
--enable-decoder=pcm_lxf \
--enable-decoder=pcm_mulaw \
--enable-decoder=pcm_mulaw_at \
--enable-decoder=pcm_s16be \
--enable-decoder=pcm_s16be_planar \
--enable-decoder=pcm_s16le \
--enable-decoder=pcm_s16le_planar \
--enable-decoder=pcm_s24be \
--enable-decoder=pcm_s24daud \
--enable-decoder=pcm_s24le \
--enable-decoder=pcm_s24le_planar \
--enable-decoder=pcm_s32be \
--enable-decoder=pcm_s32le \
--enable-decoder=pcm_s32le_planar \
--enable-decoder=pcm_s64be \
--enable-decoder=pcm_s64le \
--enable-decoder=pcm_s8 \
--enable-decoder=pcm_s8_planar \
--enable-decoder=pcm_u16be \
--enable-decoder=pcm_u16le \
--enable-decoder=pcm_u24be \
--enable-decoder=pcm_u24le \
--enable-decoder=pcm_u32be \
--enable-decoder=pcm_u32le \
--enable-decoder=pcm_u8 \
--enable-decoder=pcm_zork \
--enable-decoder=vorbis \
--enable-decoder=wavpack \
--enable-decoder=wmalossless \
--enable-decoder=wmapro \
--enable-decoder=wmav1 \
--enable-decoder=wmav2 \
--enable-decoder=wmavoice \
--enable-encoder=libopus \
--enable-parser=aac \
--enable-parser=aac_latm \
--enable-parser=flac \
--enable-parser=h264 \
--enable-parser=hevc \
--enable-parser=mpeg4video \
--enable-parser=mpegaudio \
--enable-parser=opus \
--enable-parser=vorbis \
--enable-demuxer=aac \
--enable-demuxer=flac \
--enable-demuxer=gif \
--enable-demuxer=h264 \
--enable-demuxer=hevc \
--enable-demuxer=m4v \
--enable-demuxer=mov \
--enable-demuxer=mp3 \
--enable-demuxer=ogg \
--enable-demuxer=wav \
--enable-muxer=ogg \
--enable-muxer=opus
make -j4
make -j4 install

View File

@@ -1,107 +0,0 @@
diff --git a/client/capture_context_mac_test.cc b/client/capture_context_mac_test.cc
index 436ac5ad..8e14fb9c 100644
--- a/client/capture_context_mac_test.cc
+++ b/client/capture_context_mac_test.cc
@@ -34,11 +34,11 @@ namespace {
// gtest assertions.
void SanityCheckContext(const NativeCPUContext& context) {
#if defined(ARCH_CPU_X86)
- ASSERT_EQ(x86_THREAD_STATE32, context.tsh.flavor);
- ASSERT_EQ(implicit_cast<int>(x86_THREAD_STATE32_COUNT), context.tsh.count);
+ ASSERT_EQ(implicit_cast<thread_state_flavor_t>(x86_THREAD_STATE32), implicit_cast<thread_state_flavor_t>(context.tsh.flavor));
+ ASSERT_EQ(implicit_cast<uint32_t>(x86_THREAD_STATE32_COUNT), implicit_cast<uint32_t>(context.tsh.count));
#elif defined(ARCH_CPU_X86_64)
- ASSERT_EQ(x86_THREAD_STATE64, context.tsh.flavor);
- ASSERT_EQ(implicit_cast<int>(x86_THREAD_STATE64_COUNT), context.tsh.count);
+ ASSERT_EQ(implicit_cast<thread_state_flavor_t>(x86_THREAD_STATE64), implicit_cast<thread_state_flavor_t>(context.tsh.flavor));
+ ASSERT_EQ(implicit_cast<uint32_t>(x86_THREAD_STATE64_COUNT), implicit_cast<uint32_t>(context.tsh.count));
#endif
#if defined(ARCH_CPU_X86_FAMILY)
diff --git a/client/simulate_crash_mac.cc b/client/simulate_crash_mac.cc
index 7e279015..27864388 100644
--- a/client/simulate_crash_mac.cc
+++ b/client/simulate_crash_mac.cc
@@ -177,12 +177,12 @@ bool DeliverException(thread_t thread,
void SimulateCrash(const NativeCPUContext& cpu_context) {
#if defined(ARCH_CPU_X86)
- DCHECK_EQ(cpu_context.tsh.flavor,
+ DCHECK_EQ(implicit_cast<thread_state_flavor_t>(cpu_context.tsh.flavor),
implicit_cast<thread_state_flavor_t>(x86_THREAD_STATE32));
DCHECK_EQ(implicit_cast<mach_msg_type_number_t>(cpu_context.tsh.count),
x86_THREAD_STATE32_COUNT);
#elif defined(ARCH_CPU_X86_64)
- DCHECK_EQ(cpu_context.tsh.flavor,
+ DCHECK_EQ(implicit_cast<thread_state_flavor_t>(cpu_context.tsh.flavor),
implicit_cast<thread_state_flavor_t>(x86_THREAD_STATE64));
DCHECK_EQ(implicit_cast<mach_msg_type_number_t>(cpu_context.tsh.count),
x86_THREAD_STATE64_COUNT);
diff --git a/client/simulate_crash_mac_test.cc b/client/simulate_crash_mac_test.cc
index 87c5f845..ca813e4c 100644
--- a/client/simulate_crash_mac_test.cc
+++ b/client/simulate_crash_mac_test.cc
@@ -130,12 +130,12 @@ class TestSimulateCrashMac final : public MachMultiprocess,
reinterpret_cast<const x86_thread_state*>(old_state);
switch (state->tsh.flavor) {
case x86_THREAD_STATE32:
- EXPECT_EQ(implicit_cast<int>(x86_THREAD_STATE32_COUNT),
- state->tsh.count);
+ EXPECT_EQ(implicit_cast<uint32_t>(x86_THREAD_STATE32_COUNT),
+ implicit_cast<uint32_t>(state->tsh.count));
break;
case x86_THREAD_STATE64:
- EXPECT_EQ(implicit_cast<int>(x86_THREAD_STATE64_COUNT),
- state->tsh.count);
+ EXPECT_EQ(implicit_cast<uint32_t>(x86_THREAD_STATE64_COUNT),
+ implicit_cast<uint32_t>(state->tsh.count));
break;
default:
ADD_FAILURE() << "unexpected tsh.flavor " << state->tsh.flavor;
@@ -149,12 +149,12 @@ class TestSimulateCrashMac final : public MachMultiprocess,
reinterpret_cast<const x86_float_state*>(old_state);
switch (state->fsh.flavor) {
case x86_FLOAT_STATE32:
- EXPECT_EQ(implicit_cast<int>(x86_FLOAT_STATE32_COUNT),
- state->fsh.count);
+ EXPECT_EQ(implicit_cast<uint32_t>(x86_FLOAT_STATE32_COUNT),
+ implicit_cast<uint32_t>(state->fsh.count));
break;
case x86_FLOAT_STATE64:
- EXPECT_EQ(implicit_cast<int>(x86_FLOAT_STATE64_COUNT),
- state->fsh.count);
+ EXPECT_EQ(implicit_cast<uint32_t>(x86_FLOAT_STATE64_COUNT),
+ implicit_cast<uint32_t>(state->fsh.count));
break;
default:
ADD_FAILURE() << "unexpected fsh.flavor " << state->fsh.flavor;
@@ -168,12 +168,12 @@ class TestSimulateCrashMac final : public MachMultiprocess,
reinterpret_cast<const x86_debug_state*>(old_state);
switch (state->dsh.flavor) {
case x86_DEBUG_STATE32:
- EXPECT_EQ(implicit_cast<int>(x86_DEBUG_STATE32_COUNT),
- state->dsh.count);
+ EXPECT_EQ(implicit_cast<uint32_t>(x86_DEBUG_STATE32_COUNT),
+ implicit_cast<uint32_t>(state->dsh.count));
break;
case x86_DEBUG_STATE64:
- EXPECT_EQ(implicit_cast<int>(x86_DEBUG_STATE64_COUNT),
- state->dsh.count);
+ EXPECT_EQ(implicit_cast<uint32_t>(x86_DEBUG_STATE64_COUNT),
+ implicit_cast<uint32_t>(state->dsh.count));
break;
default:
ADD_FAILURE() << "unexpected dsh.flavor " << state->dsh.flavor;
diff --git a/crashpad.gyp b/crashpad.gyp
index 42fe0a26..d8af1bf1 100644
--- a/crashpad.gyp
+++ b/crashpad.gyp
@@ -25,7 +25,7 @@
'minidump/minidump.gyp:*',
'minidump/minidump_test.gyp:*',
'snapshot/snapshot.gyp:*',
- 'snapshot/snapshot_test.gyp:*',
+# 'snapshot/snapshot_test.gyp:*',
'test/test.gyp:*',
'test/test_test.gyp:*',
'tools/tools.gyp:*',

View File

@@ -1,132 +0,0 @@
diff --git a/pylib/gyp/generator/cmake.py b/pylib/gyp/generator/cmake.py
index 4a2041cf..e5333926 100644
--- a/pylib/gyp/generator/cmake.py
+++ b/pylib/gyp/generator/cmake.py
@@ -1078,6 +1078,23 @@ def WriteTarget(namer, qualified_target, target_dicts, build_dir, config_to_use,
output.write(')\n')
+ # Precompile header
+ precompiled_header = config.get('cmake_precompiled_header', '')
+ if precompiled_header:
+ precompiled_header_script = config.get('cmake_precompiled_header_script', '')
+ if not precompiled_header_script:
+ print ('ERROR: cmake_precompiled_header requires cmake_precompiled_header_script')
+ cmake_precompiled_header = NormjoinPath(path_from_cmakelists_to_gyp, precompiled_header)
+ cmake_precompiled_header_script = NormjoinPathForceCMakeSource(path_from_cmakelists_to_gyp, precompiled_header_script)
+ output.write('include(')
+ output.write(cmake_precompiled_header_script)
+ output.write(')\n')
+ output.write('add_precompiled_header(')
+ output.write(cmake_target_name)
+ output.write(' ')
+ output.write(cmake_precompiled_header)
+ output.write(')\n')
+
UnsetVariable(output, 'TOOLSET')
UnsetVariable(output, 'TARGET')
@@ -1120,6 +1137,8 @@ def GenerateOutputForConfig(target_list, target_dicts, data,
SetVariable(output, 'configuration', config_to_use)
ar = None
+ ranlib = None
+ nm = None
cc = None
cxx = None
@@ -1129,17 +1148,27 @@ def GenerateOutputForConfig(target_list, target_dicts, data,
for key, value in make_global_settings:
if key == 'AR':
ar = os.path.join(build_to_top, value)
+ if key == 'RANLIB':
+ ranlib = os.path.join(build_to_top, value)
+ if key == 'NM':
+ nm = os.path.join(build_to_top, value)
if key == 'CC':
cc = os.path.join(build_to_top, value)
if key == 'CXX':
cxx = os.path.join(build_to_top, value)
ar = gyp.common.GetEnvironFallback(['AR_target', 'AR'], ar)
+ ranlib = gyp.common.GetEnvironFallback(['RANLIB_target', 'RANLIB'], ranlib)
+ nm = gyp.common.GetEnvironFallback(['NM_target', 'NM'], nm)
cc = gyp.common.GetEnvironFallback(['CC_target', 'CC'], cc)
cxx = gyp.common.GetEnvironFallback(['CXX_target', 'CXX'], cxx)
if ar:
SetVariable(output, 'CMAKE_AR', ar)
+ if ranlib:
+ SetVariable(output, 'CMAKE_RANLIB', ranlib)
+ if nm:
+ SetVariable(output, 'CMAKE_NM', nm)
if cc:
SetVariable(output, 'CMAKE_C_COMPILER', cc)
if cxx:
diff --git a/pylib/gyp/generator/xcode.py b/pylib/gyp/generator/xcode.py
index 8bc22bed..24bee427 100644
--- a/pylib/gyp/generator/xcode.py
+++ b/pylib/gyp/generator/xcode.py
@@ -74,6 +74,12 @@ generator_additional_non_configuration_keys = [
'ios_app_extension',
'ios_watch_app',
'ios_watchkit_extension',
+
+ 'mac_sandbox', # sandbox support
+ 'mac_sandbox_development_team',
+
+ 'mac_hardened_runtime', # hardened runtime support
+
'mac_bundle',
'mac_bundle_resources',
'mac_framework_headers',
@@ -774,6 +780,39 @@ def GenerateOutput(target_list, target_dicts, data, params):
xcode_targets[qualified_target] = xct
xcode_target_to_target_dict[xct] = spec
+ # sandbox and hardened runtime support
+ is_sandbox = int(spec.get('mac_sandbox', 0))
+ is_hardened_runtime = int(spec.get('mac_hardened_runtime', 0))
+ if is_sandbox or is_hardened_runtime:
+ try:
+ tmp = pbxp._properties['attributes']['TargetAttributes']
+ except KeyError:
+ pbxp._properties['attributes']['TargetAttributes'] = {}
+ try:
+ tmp = pbxp._properties['attributes']['TargetAttributes'][xct]
+ except KeyError:
+ pbxp._properties['attributes']['TargetAttributes'][xct] = {}
+ try:
+ tmp = pbxp._properties['attributes']['TargetAttributes'][xct]['SystemCapabilities']
+ except KeyError:
+ pbxp._properties['attributes']['TargetAttributes'][xct]['SystemCapabilities'] = {}
+
+ if is_sandbox:
+ dev_team = spec.get('mac_sandbox_development_team', '%%ERROR%%')
+ assert dev_team != '%%ERROR%%', (
+ 'mac_sandbox must be accompanied by mac_sandbox_development_team (target "%s")' %
+ target_name)
+ pbxp._properties['attributes']['TargetAttributes'][xct]['DevelopmentTeam'] = dev_team
+ pbxp._properties['attributes']['TargetAttributes'][xct]['SystemCapabilities']['com.apple.Sandbox'] = {
+ 'enabled': 1,
+ }
+
+ # hardened runtime support
+ if is_hardened_runtime:
+ pbxp._properties['attributes']['TargetAttributes'][xct]['SystemCapabilities']['com.apple.HardenedRuntime'] = {
+ 'enabled': 1,
+ }
+
spec_actions = spec.get('actions', [])
spec_rules = spec.get('rules', [])
@@ -1132,7 +1171,8 @@ exit 1
groups = [x for x in groups if not x.endswith('_excluded')]
for group in groups:
for item in rule.get(group, []):
- pbxp.AddOrGetFileInRootGroup(item)
+ concrete_item = ExpandXcodeVariables(item, rule_input_dict)
+ pbxp.AddOrGetFileInRootGroup(concrete_item)
# Add "sources".
for source in spec.get('sources', []):

View File

@@ -1,127 +0,0 @@
diff --git a/build/crashpad.gypi b/build/crashpad.gypi
index 027c7b68..4bfdfb5a 100644
--- a/build/crashpad.gypi
+++ b/build/crashpad.gypi
@@ -25,5 +25,15 @@
4201, # nonstandard extension used : nameless struct/union.
4324, # structure was padded due to __declspec(align()).
],
+ 'xcode_settings': {
+ 'OTHER_CPLUSPLUSFLAGS': [ '-nostdinc++' ],
+ 'OTHER_LDFLAGS': [
+ '/usr/local/macold/lib/libc++.a',
+ '/usr/local/macold/lib/libc++abi.a',
+ ],
+ },
+ 'include_dirs': [
+ '/usr/local/macold/include/c++/v1',
+ ],
},
}
diff --git a/client/capture_context_mac_test.cc b/client/capture_context_mac_test.cc
index 436ac5ad..8e14fb9c 100644
--- a/client/capture_context_mac_test.cc
+++ b/client/capture_context_mac_test.cc
@@ -34,11 +34,11 @@ namespace {
// gtest assertions.
void SanityCheckContext(const NativeCPUContext& context) {
#if defined(ARCH_CPU_X86)
- ASSERT_EQ(x86_THREAD_STATE32, context.tsh.flavor);
- ASSERT_EQ(implicit_cast<int>(x86_THREAD_STATE32_COUNT), context.tsh.count);
+ ASSERT_EQ(implicit_cast<thread_state_flavor_t>(x86_THREAD_STATE32), implicit_cast<thread_state_flavor_t>(context.tsh.flavor));
+ ASSERT_EQ(implicit_cast<uint32_t>(x86_THREAD_STATE32_COUNT), implicit_cast<uint32_t>(context.tsh.count));
#elif defined(ARCH_CPU_X86_64)
- ASSERT_EQ(x86_THREAD_STATE64, context.tsh.flavor);
- ASSERT_EQ(implicit_cast<int>(x86_THREAD_STATE64_COUNT), context.tsh.count);
+ ASSERT_EQ(implicit_cast<thread_state_flavor_t>(x86_THREAD_STATE64), implicit_cast<thread_state_flavor_t>(context.tsh.flavor));
+ ASSERT_EQ(implicit_cast<uint32_t>(x86_THREAD_STATE64_COUNT), implicit_cast<uint32_t>(context.tsh.count));
#endif
#if defined(ARCH_CPU_X86_FAMILY)
diff --git a/client/simulate_crash_mac.cc b/client/simulate_crash_mac.cc
index 7e279015..27864388 100644
--- a/client/simulate_crash_mac.cc
+++ b/client/simulate_crash_mac.cc
@@ -177,12 +177,12 @@ bool DeliverException(thread_t thread,
void SimulateCrash(const NativeCPUContext& cpu_context) {
#if defined(ARCH_CPU_X86)
- DCHECK_EQ(cpu_context.tsh.flavor,
+ DCHECK_EQ(implicit_cast<thread_state_flavor_t>(cpu_context.tsh.flavor),
implicit_cast<thread_state_flavor_t>(x86_THREAD_STATE32));
DCHECK_EQ(implicit_cast<mach_msg_type_number_t>(cpu_context.tsh.count),
x86_THREAD_STATE32_COUNT);
#elif defined(ARCH_CPU_X86_64)
- DCHECK_EQ(cpu_context.tsh.flavor,
+ DCHECK_EQ(implicit_cast<thread_state_flavor_t>(cpu_context.tsh.flavor),
implicit_cast<thread_state_flavor_t>(x86_THREAD_STATE64));
DCHECK_EQ(implicit_cast<mach_msg_type_number_t>(cpu_context.tsh.count),
x86_THREAD_STATE64_COUNT);
diff --git a/client/simulate_crash_mac_test.cc b/client/simulate_crash_mac_test.cc
index 87c5f845..ca813e4c 100644
--- a/client/simulate_crash_mac_test.cc
+++ b/client/simulate_crash_mac_test.cc
@@ -130,12 +130,12 @@ class TestSimulateCrashMac final : public MachMultiprocess,
reinterpret_cast<const x86_thread_state*>(old_state);
switch (state->tsh.flavor) {
case x86_THREAD_STATE32:
- EXPECT_EQ(implicit_cast<int>(x86_THREAD_STATE32_COUNT),
- state->tsh.count);
+ EXPECT_EQ(implicit_cast<uint32_t>(x86_THREAD_STATE32_COUNT),
+ implicit_cast<uint32_t>(state->tsh.count));
break;
case x86_THREAD_STATE64:
- EXPECT_EQ(implicit_cast<int>(x86_THREAD_STATE64_COUNT),
- state->tsh.count);
+ EXPECT_EQ(implicit_cast<uint32_t>(x86_THREAD_STATE64_COUNT),
+ implicit_cast<uint32_t>(state->tsh.count));
break;
default:
ADD_FAILURE() << "unexpected tsh.flavor " << state->tsh.flavor;
@@ -149,12 +149,12 @@ class TestSimulateCrashMac final : public MachMultiprocess,
reinterpret_cast<const x86_float_state*>(old_state);
switch (state->fsh.flavor) {
case x86_FLOAT_STATE32:
- EXPECT_EQ(implicit_cast<int>(x86_FLOAT_STATE32_COUNT),
- state->fsh.count);
+ EXPECT_EQ(implicit_cast<uint32_t>(x86_FLOAT_STATE32_COUNT),
+ implicit_cast<uint32_t>(state->fsh.count));
break;
case x86_FLOAT_STATE64:
- EXPECT_EQ(implicit_cast<int>(x86_FLOAT_STATE64_COUNT),
- state->fsh.count);
+ EXPECT_EQ(implicit_cast<uint32_t>(x86_FLOAT_STATE64_COUNT),
+ implicit_cast<uint32_t>(state->fsh.count));
break;
default:
ADD_FAILURE() << "unexpected fsh.flavor " << state->fsh.flavor;
@@ -168,12 +168,12 @@ class TestSimulateCrashMac final : public MachMultiprocess,
reinterpret_cast<const x86_debug_state*>(old_state);
switch (state->dsh.flavor) {
case x86_DEBUG_STATE32:
- EXPECT_EQ(implicit_cast<int>(x86_DEBUG_STATE32_COUNT),
- state->dsh.count);
+ EXPECT_EQ(implicit_cast<uint32_t>(x86_DEBUG_STATE32_COUNT),
+ implicit_cast<uint32_t>(state->dsh.count));
break;
case x86_DEBUG_STATE64:
- EXPECT_EQ(implicit_cast<int>(x86_DEBUG_STATE64_COUNT),
- state->dsh.count);
+ EXPECT_EQ(implicit_cast<uint32_t>(x86_DEBUG_STATE64_COUNT),
+ implicit_cast<uint32_t>(state->dsh.count));
break;
default:
ADD_FAILURE() << "unexpected dsh.flavor " << state->dsh.flavor;
diff --git a/crashpad.gyp b/crashpad.gyp
index 42fe0a26..d8af1bf1 100644
--- a/crashpad.gyp
+++ b/crashpad.gyp
@@ -25,7 +25,7 @@
'minidump/minidump.gyp:*',
'minidump/minidump_test.gyp:*',
'snapshot/snapshot.gyp:*',
- 'snapshot/snapshot_test.gyp:*',
+# 'snapshot/snapshot_test.gyp:*',
'test/test.gyp:*',
'test/test_test.gyp:*',
'tools/tools.gyp:*',

View File

@@ -1,28 +0,0 @@
diff --git a/build/common.gypi b/build/common.gypi
index 1affc70..0677e4b 100644
--- a/build/common.gypi
+++ b/build/common.gypi
@@ -66,6 +66,13 @@
'conditions': [
['clang!=0', {
'CLANG_CXX_LANGUAGE_STANDARD': 'c++11', # -std=c++11
+ 'OTHER_CPLUSPLUSFLAGS': [ '-nostdinc++' ],
+ 'OTHER_LDFLAGS': [
+ '/usr/local/macold/lib/libc++.a',
+ '/usr/local/macold/lib/libc++abi.a',
+ '-isysroot/',
+ '-L/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/lib/',
+ ],
# Don't link in libarclite_macosx.a, see http://crbug.com/156530.
'CLANG_LINK_OBJC_RUNTIME': 'NO', # -fno-objc-link-runtime
@@ -116,6 +123,9 @@
],
},
+ 'include_dirs': [
+ '/usr/local/macold/include/c++/v1',
+ ],
}],
['OS=="linux"', {

View File

@@ -1,844 +0,0 @@
diff --git a/configure b/configure
index cb8d78fd3c..cadb3f0a88 100755
--- a/configure
+++ b/configure
@@ -511,7 +511,8 @@ if [ "$BUILD_ON_MAC" = "yes" ]; then
exit 2
fi
- if ! /usr/bin/xcrun -find xcrun >/dev/null 2>&1; then
+ # Patch: Fix Qt for working with Xcode 8.
+ if ! /usr/bin/xcrun -find xcodebuild >/dev/null 2>&1; then
echo >&2
echo " Xcode not set up properly. You may need to confirm the license" >&2
echo " agreement by running /usr/bin/xcodebuild without arguments." >&2
diff --git a/mkspecs/common/g++-macx.conf b/mkspecs/common/g++-macx.conf
index 086510dd96..078a5ed1dd 100644
--- a/mkspecs/common/g++-macx.conf
+++ b/mkspecs/common/g++-macx.conf
@@ -14,7 +14,13 @@ QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += -gdwarf-2
QMAKE_CXXFLAGS_RELEASE_WITH_DEBUGINFO += -gdwarf-2
QMAKE_LFLAGS_RELEASE_WITH_DEBUGINFO += -g -gdwarf-2
-QMAKE_LFLAGS_STATIC_LIB += -all_load
+# Patch: Don't remember :(
+#QMAKE_LFLAGS_STATIC_LIB += -all_load
+
+# Patch: Use C++14 with custom libc++ build.
+QMAKE_CXXFLAGS_CXX11 = -std=c++1y
+QMAKE_CXXFLAGS += -nostdinc++ -I/usr/local/macold/include/c++/v1
+QMAKE_LFLAGS += /usr/local/macold/lib/libc++.a /usr/local/macold/lib/libc++abi.a -isysroot /
QMAKE_XCODE_GCC_VERSION = com.apple.compilers.llvmgcc42
diff --git a/mkspecs/features/mac/default_pre.prf b/mkspecs/features/mac/default_pre.prf
index 0cc8cd6dfd..ca9725b779 100644
--- a/mkspecs/features/mac/default_pre.prf
+++ b/mkspecs/features/mac/default_pre.prf
@@ -12,7 +12,9 @@ isEmpty(QMAKE_XCODE_DEVELOPER_PATH) {
error("Xcode is not installed in $${QMAKE_XCODE_DEVELOPER_PATH}. Please use xcode-select to choose Xcode installation path.")
# Make sure Xcode is set up properly
- isEmpty($$list($$system("/usr/bin/xcrun -find xcrun 2>/dev/null"))): \
+
+ # Patch: Fix Qt for working with Xcode 8.
+ isEmpty($$list($$system("/usr/bin/xcrun -find xcodebuild 2>/dev/null"))): \
error("Xcode not set up properly. You may need to confirm the license agreement by running /usr/bin/xcodebuild.")
}
diff --git a/src/gui/image/qbmphandler.cpp b/src/gui/image/qbmphandler.cpp
index bb79a139b3..5d595bc3b3 100644
--- a/src/gui/image/qbmphandler.cpp
+++ b/src/gui/image/qbmphandler.cpp
@@ -220,6 +220,10 @@ static bool read_dib_body(QDataStream &s, const BMP_INFOHDR &bi, int offset, int
int blue_scale = 0;
int alpha_scale = 0;
+ // Patch: Backport a fix for bmp reader.
+ if (!d->isSequential())
+ d->seek(startpos + BMP_FILEHDR_SIZE + (bi.biSize >= BMP_WIN4? BMP_WIN : bi.biSize)); // goto start of colormap
+
if (bi.biSize >= BMP_WIN4 || (comp == BMP_BITFIELDS && (nbits == 16 || nbits == 32))) {
if (d->read((char *)&red_mask, sizeof(red_mask)) != sizeof(red_mask))
return false;
@@ -307,8 +311,9 @@ static bool read_dib_body(QDataStream &s, const BMP_INFOHDR &bi, int offset, int
image.setDotsPerMeterX(bi.biXPelsPerMeter);
image.setDotsPerMeterY(bi.biYPelsPerMeter);
- if (!d->isSequential())
- d->seek(startpos + BMP_FILEHDR_SIZE + (bi.biSize >= BMP_WIN4? BMP_WIN : bi.biSize)); // goto start of colormap
+ // Patch: Backport a fix for bmp reader.
+ //if (!d->isSequential())
+ // d->seek(startpos + BMP_FILEHDR_SIZE + (bi.biSize >= BMP_WIN4? BMP_WIN : bi.biSize)); // goto start of colormap
if (ncols > 0) { // read color table
uchar rgb[4];
diff --git a/src/gui/painting/qpaintengine_p.h b/src/gui/painting/qpaintengine_p.h
index ebff9509ab..4300ca4c0f 100644
--- a/src/gui/painting/qpaintengine_p.h
+++ b/src/gui/painting/qpaintengine_p.h
@@ -87,8 +87,18 @@ public:
if (hasSystemTransform) {
if (systemTransform.type() <= QTransform::TxTranslate)
systemClip.translate(qRound(systemTransform.dx()), qRound(systemTransform.dy()));
- else
+ // Patch: Transform the system clip region back from device pixels to device-independent pixels before
+ // applying systemTransform, which already has transform from device-independent pixels to device pixels.
+ else {
+#ifdef Q_OS_MAC
+ QTransform scaleTransform;
+ const qreal invDevicePixelRatio = 1. / pdev->devicePixelRatio();
+ scaleTransform.scale(invDevicePixelRatio, invDevicePixelRatio);
+ systemClip = systemTransform.map(scaleTransform.map(systemClip));
+#else
systemClip = systemTransform.map(systemClip);
+#endif
+ }
}
// Make sure we're inside the viewport.
diff --git a/src/gui/text/qtextlayout.cpp b/src/gui/text/qtextlayout.cpp
index 4879ae51d7..56cdcbaf01 100644
--- a/src/gui/text/qtextlayout.cpp
+++ b/src/gui/text/qtextlayout.cpp
@@ -654,6 +654,9 @@ int QTextLayout::nextCursorPosition(int oldPos, CursorMode mode) const
while (oldPos < len && !attributes[oldPos].graphemeBoundary)
oldPos++;
} else {
+ // Patch: Skip to the end of the current word, not to the start of the next one.
+ while (oldPos < len && attributes[oldPos].whiteSpace)
+ oldPos++;
if (oldPos < len && d->atWordSeparator(oldPos)) {
oldPos++;
while (oldPos < len && d->atWordSeparator(oldPos))
@@ -662,8 +665,9 @@ int QTextLayout::nextCursorPosition(int oldPos, CursorMode mode) const
while (oldPos < len && !d->atSpace(oldPos) && !d->atWordSeparator(oldPos))
oldPos++;
}
- while (oldPos < len && d->atSpace(oldPos))
- oldPos++;
+ // Patch: Skip to the end of the current word, not to the start of the next one.
+ //while (oldPos < len && d->atSpace(oldPos))
+ // oldPos++;
}
return oldPos;
@@ -1602,6 +1606,9 @@ namespace {
int currentPosition;
glyph_t previousGlyph;
+ // Patch: Backport a crash fix.
+ QFontEngine *previousGlyphFontEngine;
+
QFixed minw;
QFixed softHyphenWidth;
QFixed rightBearing;
@@ -1634,13 +1641,19 @@ namespace {
if (currentPosition > 0 &&
logClusters[currentPosition - 1] < glyphs.numGlyphs) {
previousGlyph = currentGlyph(); // needed to calculate right bearing later
+
+ // Patch: Backport a crash fix.
+ previousGlyphFontEngine = fontEngine;
}
}
- inline void adjustRightBearing(glyph_t glyph)
+ // Patch: Backport a crash fix.
+ inline void adjustRightBearing(QFontEngine *engine, glyph_t glyph)
{
qreal rb;
- fontEngine->getGlyphBearings(glyph, 0, &rb);
+
+ // Patch: Backport a crash fix.
+ engine->getGlyphBearings(glyph, 0, &rb);
rightBearing = qMin(QFixed(), QFixed::fromReal(rb));
}
@@ -1648,13 +1661,16 @@ namespace {
{
if (currentPosition <= 0)
return;
- adjustRightBearing(currentGlyph());
+
+ // Patch: Backport a crash fix.
+ adjustRightBearing(fontEngine, currentGlyph());
}
inline void adjustPreviousRightBearing()
{
if (previousGlyph > 0)
- adjustRightBearing(previousGlyph);
+ // Patch: Backport a crash fix.
+ adjustRightBearing(previousGlyphFontEngine, previousGlyph);
}
inline void resetRightBearing()
diff --git a/src/gui/text/qtextlayout.h b/src/gui/text/qtextlayout.h
index cbe42c3844..b273db7e78 100644
--- a/src/gui/text/qtextlayout.h
+++ b/src/gui/text/qtextlayout.h
@@ -194,6 +194,9 @@ private:
QRectF *brect, int tabstops, int* tabarray, int tabarraylen,
QPainter *painter);
QTextEngine *d;
+
+ // Patch: Give access to the internal api.
+ friend class TextBlock;
};
diff --git a/src/network/access/qhttpnetworkconnection.cpp b/src/network/access/qhttpnetworkconnection.cpp
index 360f9722c7..f28f289ef6 100644
--- a/src/network/access/qhttpnetworkconnection.cpp
+++ b/src/network/access/qhttpnetworkconnection.cpp
@@ -118,6 +118,8 @@ QHttpNetworkConnectionPrivate::~QHttpNetworkConnectionPrivate()
{
for (int i = 0; i < channelCount; ++i) {
if (channels[i].socket) {
+ // Patch: backport critical bugfix from '4f959b6b30' commit.
+ QObject::disconnect(channels[i].socket, Q_NULLPTR, &channels[i], Q_NULLPTR);
channels[i].socket->close();
delete channels[i].socket;
}
diff --git a/src/platformsupport/fontdatabases/mac/qcoretextfontdatabase.mm b/src/platformsupport/fontdatabases/mac/qcoretextfontdatabase.mm
index ca7afb7d1b..25ae50008d 100644
--- a/src/platformsupport/fontdatabases/mac/qcoretextfontdatabase.mm
+++ b/src/platformsupport/fontdatabases/mac/qcoretextfontdatabase.mm
@@ -256,6 +256,13 @@ static void getFontDescription(CTFontDescriptorRef font, FontDescription *fd)
fd->foundryName = QStringLiteral("CoreText");
fd->familyName = (CFStringRef) CTFontDescriptorCopyAttribute(font, kCTFontFamilyNameAttribute);
+
+ // Patch: Fix open sans semibold loading.
+ QCFString _displayName = (CFStringRef) CTFontDescriptorCopyAttribute(font, kCTFontDisplayNameAttribute);
+ if (_displayName == QStringLiteral("Open Sans Semibold")) {
+ fd->familyName = _displayName;
+ }
+
fd->styleName = (CFStringRef)CTFontDescriptorCopyAttribute(font, kCTFontStyleNameAttribute);
fd->weight = QFont::Normal;
fd->style = QFont::StyleNormal;
diff --git a/src/platformsupport/fontdatabases/mac/qfontengine_coretext.mm b/src/platformsupport/fontdatabases/mac/qfontengine_coretext.mm
index 6e2c8a2a9a..3cace8abcb 100644
--- a/src/platformsupport/fontdatabases/mac/qfontengine_coretext.mm
+++ b/src/platformsupport/fontdatabases/mac/qfontengine_coretext.mm
@@ -717,7 +717,8 @@ void QCoreTextFontEngine::getUnscaledGlyph(glyph_t, QPainterPath *, glyph_metric
QFixed QCoreTextFontEngine::emSquareSize() const
{
- return QFixed::QFixed(int(CTFontGetUnitsPerEm(ctfont)));
+ // Patch: Fix build for Xcode 9.3.1.
+ return QFixed(int(CTFontGetUnitsPerEm(ctfont)));
}
QFontEngine *QCoreTextFontEngine::cloneWithSize(qreal pixelSize) const
diff --git a/src/plugins/platforms/cocoa/qcocoaapplicationdelegate.mm b/src/plugins/platforms/cocoa/qcocoaapplicationdelegate.mm
index 92358ecc74..694fee7350 100644
--- a/src/plugins/platforms/cocoa/qcocoaapplicationdelegate.mm
+++ b/src/plugins/platforms/cocoa/qcocoaapplicationdelegate.mm
@@ -213,7 +213,8 @@ static void cleanupCocoaApplicationDelegate()
if (reflectionDelegate) {
if ([reflectionDelegate respondsToSelector:@selector(applicationShouldTerminate:)])
return [reflectionDelegate applicationShouldTerminate:sender];
- return NSTerminateNow;
+ // Patch: Don't terminate if reflectionDelegate does not respond to that selector, just use the default.
+ //return NSTerminateNow;
}
if ([self canQuit]) {
@@ -289,6 +290,11 @@ static void cleanupCocoaApplicationDelegate()
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
+ // Patch: We need to receive this notification in the delegate as well.
+ if (reflectionDelegate
+ && [reflectionDelegate respondsToSelector:@selector(applicationDidFinishLaunching:)])
+ [reflectionDelegate applicationDidFinishLaunching:aNotification];
+
Q_UNUSED(aNotification);
inLaunch = false;
// qt_release_apple_event_handler();
@@ -411,7 +417,9 @@ static void cleanupCocoaApplicationDelegate()
{
Q_UNUSED(replyEvent);
NSString *urlString = [[event paramDescriptorForKeyword:keyDirectObject] stringValue];
- QWindowSystemInterface::handleFileOpenEvent(QUrl(QCFString::toQString(urlString)));
+
+ // Patch: Fix opening of an external url by a protocol handler.
+ QWindowSystemInterface::handleFileOpenEvent(QUrl::fromNSURL([NSURL URLWithString:urlString]));
}
- (void)appleEventQuit:(NSAppleEventDescriptor *)event withReplyEvent:(NSAppleEventDescriptor *)replyEvent
diff --git a/src/plugins/platforms/cocoa/qcocoacursor.mm b/src/plugins/platforms/cocoa/qcocoacursor.mm
index b81b9a0b1c..4e59e833b1 100644
--- a/src/plugins/platforms/cocoa/qcocoacursor.mm
+++ b/src/plugins/platforms/cocoa/qcocoacursor.mm
@@ -81,7 +81,7 @@ void QCocoaCursor::setPos(const QPoint &position)
pos.x = position.x();
pos.y = position.y();
- CGEventRef e = CGEventCreateMouseEvent(0, kCGEventMouseMoved, pos, 0);
+ CGEventRef e = CGEventCreateMouseEvent(0, kCGEventMouseMoved, pos, kCGMouseButtonLeft);
CGEventPost(kCGHIDEventTap, e);
CFRelease(e);
}
diff --git a/src/plugins/platforms/cocoa/qcocoahelpers.mm b/src/plugins/platforms/cocoa/qcocoahelpers.mm
index 9850f83dea..b2e1d3dfda 100644
--- a/src/plugins/platforms/cocoa/qcocoahelpers.mm
+++ b/src/plugins/platforms/cocoa/qcocoahelpers.mm
@@ -649,9 +649,10 @@ OSStatus qt_mac_drawCGImage(CGContextRef inContext, const CGRect *inBounds, CGIm
// Verbatim copy if HIViewDrawCGImage (as shown on Carbon-Dev)
OSStatus err = noErr;
- require_action(inContext != NULL, InvalidContext, err = paramErr);
- require_action(inBounds != NULL, InvalidBounds, err = paramErr);
- require_action(inImage != NULL, InvalidImage, err = paramErr);
+ // Patch: Fix build on latest Xcode.
+ //require_action(inContext != NULL, InvalidContext, err = paramErr);
+ //require_action(inBounds != NULL, InvalidBounds, err = paramErr);
+ //require_action(inImage != NULL, InvalidImage, err = paramErr);
CGContextSaveGState( inContext );
CGContextTranslateCTM (inContext, 0, inBounds->origin.y + CGRectGetMaxY(*inBounds));
@@ -660,9 +661,11 @@ OSStatus qt_mac_drawCGImage(CGContextRef inContext, const CGRect *inBounds, CGIm
CGContextDrawImage(inContext, *inBounds, inImage);
CGContextRestoreGState(inContext);
-InvalidImage:
-InvalidBounds:
-InvalidContext:
+
+// Patch: Fix build on latest Xcode.
+//InvalidImage:
+//InvalidBounds:
+//InvalidContext:
return err;
}
diff --git a/src/plugins/platforms/cocoa/qcocoaintegration.mm b/src/plugins/platforms/cocoa/qcocoaintegration.mm
index 9fd05a65ee..dea60720e7 100644
--- a/src/plugins/platforms/cocoa/qcocoaintegration.mm
+++ b/src/plugins/platforms/cocoa/qcocoaintegration.mm
@@ -402,14 +402,24 @@ void QCocoaIntegration::updateScreens()
}
siblings << screen;
}
+
+ // Patch: Backport crash fix from Qt 5.6.1.
+ // Set virtual siblings list. All screens in mScreens are siblings, because we ignored the
+ // mirrors. Note that some of the screens we update the siblings list for here may be deleted
+ // below, but update anyway to keep the to-be-deleted screens out of the siblings list.
+ foreach (QCocoaScreen* screen, mScreens)
+ screen->setVirtualSiblings(siblings);
+
// Now the leftovers in remainingScreens are no longer current, so we can delete them.
foreach (QCocoaScreen* screen, remainingScreens) {
mScreens.removeOne(screen);
delete screen;
}
+
+ // Patch: Backport crash fix from Qt 5.6.1.
// All screens in mScreens are siblings, because we ignored the mirrors.
- foreach (QCocoaScreen* screen, mScreens)
- screen->setVirtualSiblings(siblings);
+ //foreach (QCocoaScreen* screen, mScreens)
+ // screen->setVirtualSiblings(siblings);
}
QCocoaScreen *QCocoaIntegration::screenAtIndex(int index)
diff --git a/src/plugins/platforms/cocoa/qcocoakeymapper.mm b/src/plugins/platforms/cocoa/qcocoakeymapper.mm
index e46eaff6be..c62db534a2 100644
--- a/src/plugins/platforms/cocoa/qcocoakeymapper.mm
+++ b/src/plugins/platforms/cocoa/qcocoakeymapper.mm
@@ -382,6 +382,12 @@ bool QCocoaKeyMapper::updateKeyboard()
keyboardInputLocale = QLocale::c();
keyboardInputDirection = Qt::LeftToRight;
}
+
+ // Patch: Backport a fix for layout-independent keyboard shortcuts.
+ const auto newMode = keyboard_mode;
+ deleteLayouts();
+ keyboard_mode = newMode;
+
return true;
}
@@ -464,7 +470,8 @@ QList<int> QCocoaKeyMapper::possibleKeys(const QKeyEvent *event) const
Qt::KeyboardModifiers neededMods = ModsTbl[i];
int key = kbItem->qtKey[i];
if (key && key != baseKey && ((keyMods & neededMods) == neededMods)) {
- ret << int(key + (keyMods & ~neededMods));
+ // Patch: Backport a fix for layout-independent keyboard shortcuts.
+ ret << int(key + neededMods);
}
}
return ret;
diff --git a/src/plugins/platforms/cocoa/qcocoasystemtrayicon.mm b/src/plugins/platforms/cocoa/qcocoasystemtrayicon.mm
index 83c960d931..03ae9696af 100755
--- a/src/plugins/platforms/cocoa/qcocoasystemtrayicon.mm
+++ b/src/plugins/platforms/cocoa/qcocoasystemtrayicon.mm
@@ -102,7 +102,10 @@ QT_USE_NAMESPACE
QCocoaSystemTrayIcon *systray;
NSStatusItem *item;
QCocoaMenu *menu;
- bool menuVisible;
+
+ // Patch: Nice macOS tray icon support.
+ bool menuVisible, iconSelected;
+
QIcon icon;
QT_MANGLE_NAMESPACE(QNSImageView) *imageCell;
}
@@ -124,6 +127,10 @@ QT_USE_NAMESPACE
QT_MANGLE_NAMESPACE(QNSStatusItem) *parent;
}
-(id)initWithParent:(QT_MANGLE_NAMESPACE(QNSStatusItem)*)myParent;
+
+// Patch: Nice macOS tray icon support.
+-(void)updateIconSelection;
+
-(void)menuTrackingDone:(NSNotification*)notification;
-(void)mousePressed:(NSEvent *)mouseEvent button:(Qt::MouseButton)mouseButton;
@end
@@ -187,6 +194,19 @@ void QCocoaSystemTrayIcon::cleanup()
m_sys = 0;
}
+// Patch: Nice macOS tray icon support.
+namespace {
+
+qreal getDevicePixelRatio() {
+ qreal result = 1.0;
+ foreach (QScreen *screen, QGuiApplication::screens()) {
+ result = qMax(result, screen->devicePixelRatio());
+ }
+ return result;
+}
+
+} // namespace
+
void QCocoaSystemTrayIcon::updateIcon(const QIcon &icon)
{
if (!m_sys)
@@ -194,13 +214,18 @@ void QCocoaSystemTrayIcon::updateIcon(const QIcon &icon)
m_sys->item->icon = icon;
- const bool menuVisible = m_sys->item->menu && m_sys->item->menuVisible;
+ // Patch: Nice macOS tray icon support.
+ //const bool menuVisible = m_sys->item->menu && m_sys->item->menuVisible;
- CGFloat hgt = [[[NSApplication sharedApplication] mainMenu] menuBarHeight];
- const short scale = hgt - 4;
+ const int padding = 0;
+ const int menuHeight = [[NSStatusBar systemStatusBar] thickness];
+ const int maxImageHeight = menuHeight - padding;
+
+ const short scale = maxImageHeight * getDevicePixelRatio();
QPixmap pm = m_sys->item->icon.pixmap(QSize(scale, scale),
- menuVisible ? QIcon::Selected : QIcon::Normal);
+ // Patch: Nice macOS tray icon support.
+ m_sys->item->iconSelected ? QIcon::Selected : QIcon::Normal);
if (pm.isNull()) {
pm = QPixmap(scale, scale);
pm.fill(Qt::transparent);
@@ -322,15 +347,16 @@ QT_END_NAMESPACE
return self;
}
--(void)menuTrackingDone:(NSNotification*)notification
+// Patch: Nice macOS tray icon support.
+-(void)updateIconSelection
{
- Q_UNUSED(notification);
- down = NO;
+ const int padding = 0;
+ const int menuHeight = [[NSStatusBar systemStatusBar] thickness];
+ const int maxImageHeight = menuHeight - padding;
- CGFloat hgt = [[[NSApplication sharedApplication] mainMenu] menuBarHeight];
- const short scale = hgt - 4;
-
- QPixmap pm = parent->icon.pixmap(QSize(scale, scale), QIcon::Normal);
+ const short scale = maxImageHeight * getDevicePixelRatio();
+ QPixmap pm = parent->icon.pixmap(QSize(scale, scale),
+ parent->iconSelected ? QIcon::Selected : QIcon::Normal);
if (pm.isNull()) {
pm = QPixmap(scale, scale);
pm.fill(Qt::transparent);
@@ -338,9 +364,19 @@ QT_END_NAMESPACE
NSImage *nsaltimage = static_cast<NSImage *>(qt_mac_create_nsimage(pm));
[self setImage: nsaltimage];
[nsaltimage release];
+}
+
+-(void)menuTrackingDone:(NSNotification*)notification
+{
+ Q_UNUSED(notification);
+ down = NO;
parent->menuVisible = false;
+ // Patch: Nice macOS tray icon support.
+ parent->iconSelected = false;
+ [self updateIconSelection];
+
[self setNeedsDisplay:YES];
}
@@ -350,18 +386,9 @@ QT_END_NAMESPACE
int clickCount = [mouseEvent clickCount];
[self setNeedsDisplay:YES];
- CGFloat hgt = [[[NSApplication sharedApplication] mainMenu] menuBarHeight];
- const short scale = hgt - 4;
-
- QPixmap pm = parent->icon.pixmap(QSize(scale, scale),
- parent->menuVisible ? QIcon::Selected : QIcon::Normal);
- if (pm.isNull()) {
- pm = QPixmap(scale, scale);
- pm.fill(Qt::transparent);
- }
- NSImage *nsaltimage = static_cast<NSImage *>(qt_mac_create_nsimage(pm));
- [self setImage: nsaltimage];
- [nsaltimage release];
+ // Patch: Nice macOS tray icon support.
+ parent->iconSelected = (clickCount != 2) && parent->menu;
+ [self updateIconSelection];
if (clickCount == 2) {
[self menuTrackingDone:nil];
@@ -380,6 +407,10 @@ QT_END_NAMESPACE
{
Q_UNUSED(mouseEvent);
[self menuTrackingDone:nil];
+
+ // Patch: Nice macOS tray icon support.
+ parent->iconSelected = false;
+ [self updateIconSelection];
}
- (void)rightMouseDown:(NSEvent *)mouseEvent
@@ -391,6 +422,10 @@ QT_END_NAMESPACE
{
Q_UNUSED(mouseEvent);
[self menuTrackingDone:nil];
+
+ // Patch: Nice macOS tray icon support.
+ parent->iconSelected = false;
+ [self updateIconSelection];
}
- (void)otherMouseDown:(NSEvent *)mouseEvent
@@ -405,7 +440,8 @@ QT_END_NAMESPACE
}
-(void)drawRect:(NSRect)rect {
- [[parent item] drawStatusBarBackgroundInRect:rect withHighlight:down];
+ // Patch: Nice macOS tray icon support.
+ [[parent item] drawStatusBarBackgroundInRect:rect withHighlight:parent->menu ? down : NO];
[super drawRect:rect];
}
@end
diff --git a/src/plugins/platforms/cocoa/qcocoawindow.mm b/src/plugins/platforms/cocoa/qcocoawindow.mm
index 4d0458a4aa..3357a5ef81 100644
--- a/src/plugins/platforms/cocoa/qcocoawindow.mm
+++ b/src/plugins/platforms/cocoa/qcocoawindow.mm
@@ -167,7 +167,8 @@ static bool isMouseEvent(NSEvent *ev)
if (!self.window.delegate)
return; // Already detached, pending NSAppKitDefined event
- if (pw && pw->frameStrutEventsEnabled() && isMouseEvent(theEvent)) {
+ // Patch: Fix events loss if the window was minimized or hidden.
+ if (pw && pw->frameStrutEventsEnabled() && pw->m_synchedWindowState != Qt::WindowMinimized && pw->m_isExposed && isMouseEvent(theEvent)) {
NSPoint loc = [theEvent locationInWindow];
NSRect windowFrame = [self.window legacyConvertRectFromScreen:[self.window frame]];
NSRect contentFrame = [[self.window contentView] frame];
@@ -795,6 +796,16 @@ NSUInteger QCocoaWindow::windowStyleMask(Qt::WindowFlags flags)
{
Qt::WindowType type = static_cast<Qt::WindowType>(int(flags & Qt::WindowType_Mask));
NSInteger styleMask = NSBorderlessWindowMask;
+
+ // Patch: allow creating panels floating on all spaces in macOS.
+ // If you call "setCollectionBehavior:NSWindowCollectionBehaviorFullScreenAuxiliary" before
+ // setting the "NSNonactivatingPanelMask" bit in the style mask it won't work after that.
+ // So we need a way to set that bit before Qt sets collection behavior the way it does.
+ QVariant nonactivatingPanelMask = window()->property("_td_macNonactivatingPanelMask");
+ if (nonactivatingPanelMask.isValid() && nonactivatingPanelMask.toBool()) {
+ styleMask |= NSNonactivatingPanelMask;
+ }
+
if (flags & Qt::FramelessWindowHint)
return styleMask;
if ((type & Qt::Popup) == Qt::Popup) {
@@ -914,6 +925,19 @@ void QCocoaWindow::setWindowFilePath(const QString &filePath)
[m_nsWindow setRepresentedFilename: fi.exists() ? QCFString::toNSString(filePath) : @""];
}
+// Patch: Nice macOS window icon.
+namespace {
+
+qreal getDevicePixelRatio() {
+ qreal result = 1.0;
+ foreach (QScreen *screen, QGuiApplication::screens()) {
+ result = qMax(result, screen->devicePixelRatio());
+ }
+ return result;
+}
+
+} // namespace
+
void QCocoaWindow::setWindowIcon(const QIcon &icon)
{
QCocoaAutoReleasePool pool;
@@ -929,7 +953,10 @@ void QCocoaWindow::setWindowIcon(const QIcon &icon)
if (icon.isNull()) {
[iconButton setImage:nil];
} else {
- QPixmap pixmap = icon.pixmap(QSize(22, 22));
+ // Patch: Nice macOS window icon.
+ CGFloat hgt = 16. * getDevicePixelRatio();
+ QPixmap pixmap = icon.pixmap(QSize(hgt, hgt));
+
NSImage *image = static_cast<NSImage *>(qt_mac_create_nsimage(pixmap));
[iconButton setImage:image];
[image release];
diff --git a/src/plugins/platforms/cocoa/qnsview.mm b/src/plugins/platforms/cocoa/qnsview.mm
index a18ee7ff71..1f91feb0ae 100644
--- a/src/plugins/platforms/cocoa/qnsview.mm
+++ b/src/plugins/platforms/cocoa/qnsview.mm
@@ -393,7 +393,9 @@ static NSString *_q_NSWindowDidChangeOcclusionStateNotification = nil;
[self notifyWindowStateChanged:newState];
// NSWindowDidOrderOnScreenAndFinishAnimatingNotification is private API, and not
// emitted in 10.6, so we bring back the old behavior for that case alone.
- if (newState == Qt::WindowNoState && QSysInfo::QSysInfo::MacintoshVersion == QSysInfo::MV_10_6)
+
+ // Patch: Fix macOS window show after window was hidden.
+ if (newState == Qt::WindowNoState/* && QSysInfo::QSysInfo::MacintoshVersion == QSysInfo::MV_10_6*/)
m_platformWindow->exposeWindow();
} else if ([notificationName isEqualToString: @"NSWindowDidOrderOffScreenNotification"]) {
m_platformWindow->obscureWindow();
@@ -1300,7 +1302,9 @@ static QTabletEvent::TabletDevice wacomTabletDevice(NSEvent *theEvent)
#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_8
if (QSysInfo::QSysInfo::MacintoshVersion >= QSysInfo::MV_10_8) {
// On 10.8 and above, MayBegin is likely to happen. We treat it the same as an actual begin.
- if (phase == NSEventPhaseMayBegin)
+
+ // Patch: Actual begin should be treated as begin as well.
+ if (phase == NSEventPhaseMayBegin || phase == NSEventPhaseBegan)
ph = Qt::ScrollBegin;
} else
#endif
@@ -1366,14 +1370,22 @@ static QTabletEvent::TabletDevice wacomTabletDevice(NSEvent *theEvent)
quint32 nativeVirtualKey = [nsevent keyCode];
QChar ch = QChar::ReplacementCharacter;
- int keyCode = Qt::Key_unknown;
- if ([characters length] != 0) {
- if (((modifiers & Qt::MetaModifier) || (modifiers & Qt::AltModifier)) && ([charactersIgnoringModifiers length] != 0))
- ch = QChar([charactersIgnoringModifiers characterAtIndex:0]);
- else
- ch = QChar([characters characterAtIndex:0]);
- keyCode = [self convertKeyCode:ch];
- }
+
+ // Patch: Backport a fix for layout-independent shortcuts.
+ if ([characters length] != 0) // https://bugreports.qt.io/browse/QTBUG-42584
+ ch = QChar([characters characterAtIndex:0]);
+ else if ([charactersIgnoringModifiers length] != 0 && ((modifiers & Qt::MetaModifier) || (modifiers & Qt::AltModifier)))
+ ch = QChar([charactersIgnoringModifiers characterAtIndex:0]);
+
+ int keyCode = [self convertKeyCode:ch];
+ //int keyCode = Qt::Key_unknown;
+ //if ([characters length] != 0) {
+ // if (((modifiers & Qt::MetaModifier) || (modifiers & Qt::AltModifier)) && ([charactersIgnoringModifiers length] != 0))
+ // ch = QChar([charactersIgnoringModifiers characterAtIndex:0]);
+ // else
+ // ch = QChar([characters characterAtIndex:0]);
+ // keyCode = [self convertKeyCode:ch];
+ //}
// we will send a key event unless the input method sets m_sendKeyEvent to false
m_sendKeyEvent = true;
@@ -1437,6 +1449,11 @@ static QTabletEvent::TabletDevice wacomTabletDevice(NSEvent *theEvent)
&& qtKey == Qt::Key_Period) {
[self handleKeyEvent:nsevent eventType:int(QEvent::KeyPress)];
return YES;
+
+ // Patch: Allow us to handle Ctrl+Tab and Ctrl+Backtab in the app.
+ } else if ([nsevent modifierFlags] & NSControlKeyMask && (qtKey == Qt::Key_Tab || qtKey == Qt::Key_Backtab)) {
+ [self handleKeyEvent:nsevent eventType:int(QEvent::KeyPress)];
+ return YES;
}
}
return [super performKeyEquivalent:nsevent];
diff --git a/src/tools/qlalr/lalr.cpp b/src/tools/qlalr/lalr.cpp
index c68076477f..e2a7aafa58 100644
--- a/src/tools/qlalr/lalr.cpp
+++ b/src/tools/qlalr/lalr.cpp
@@ -246,11 +246,13 @@ void Grammar::buildExtendedGrammar ()
non_terminals.insert (accept_symbol);
}
-struct _Nullable: public std::unary_function<Name, bool>
+// Patch: Fix building with the new SDK.
+struct __Nullable: public std::unary_function<Name, bool>
{
Automaton *_M_automaton;
- _Nullable (Automaton *aut):
+ // Patch: Fix building with the new SDK.
+ __Nullable (Automaton *aut):
_M_automaton (aut) {}
bool operator () (Name name) const
@@ -308,7 +310,8 @@ void Automaton::buildNullables ()
for (RulePointer rule = _M_grammar->rules.begin (); rule != _M_grammar->rules.end (); ++rule)
{
- NameList::iterator nn = std::find_if (rule->rhs.begin (), rule->rhs.end (), std::not1 (_Nullable (this)));
+ // Patch: Fix building with the new SDK.
+ NameList::iterator nn = std::find_if (rule->rhs.begin (), rule->rhs.end (), std::not1 (__Nullable (this)));
if (nn == rule->rhs.end ())
changed |= nullables.insert (rule->lhs).second;
@@ -643,7 +646,8 @@ void Automaton::buildIncludesDigraph ()
if (! _M_grammar->isNonTerminal (*A))
continue;
- NameList::iterator first_not_nullable = std::find_if (dot, rule->rhs.end (), std::not1 (_Nullable (this)));
+ // Patch: Fix building with the new SDK.
+ NameList::iterator first_not_nullable = std::find_if (dot, rule->rhs.end (), std::not1 (__Nullable (this)));
if (first_not_nullable != rule->rhs.end ())
continue;
diff --git a/src/widgets/kernel/qwidget.cpp b/src/widgets/kernel/qwidget.cpp
index 7396808442..7178aecf80 100644
--- a/src/widgets/kernel/qwidget.cpp
+++ b/src/widgets/kernel/qwidget.cpp
@@ -4722,6 +4722,17 @@ void QWidget::render(QPainter *painter, const QPoint &targetOffset,
return; // Fully transparent.
Q_D(QWidget);
+
+ // Patch: save and restore dirtyOpaqueChildren field.
+ //
+ // Just like in QWidget::grab() this field should be restored
+ // after the d->render() call, because it will be set to 1 and
+ // opaqueChildren field will be filled with empty region in
+ // case the widget is hidden (because all the opaque children
+ // will be skipped in isVisible() check).
+ //
+ const bool oldDirtyOpaqueChildren = d->dirtyOpaqueChildren;
+
const bool inRenderWithPainter = d->extra && d->extra->inRenderWithPainter;
const QRegion toBePainted = !inRenderWithPainter ? d->prepareToRender(sourceRegion, renderFlags)
: sourceRegion;
@@ -4743,6 +4754,10 @@ void QWidget::render(QPainter *painter, const QPoint &targetOffset,
if (!inRenderWithPainter && (opacity < 1.0 || (target->devType() == QInternal::Printer))) {
d->render_helper(painter, targetOffset, toBePainted, renderFlags);
d->extra->inRenderWithPainter = inRenderWithPainter;
+
+ // Patch: save and restore dirtyOpaqueChildren field.
+ d->dirtyOpaqueChildren = oldDirtyOpaqueChildren;
+
return;
}
@@ -4774,6 +4789,9 @@ void QWidget::render(QPainter *painter, const QPoint &targetOffset,
d->setSharedPainter(oldPainter);
d->extra->inRenderWithPainter = inRenderWithPainter;
+
+ // Patch: save and restore dirtyOpaqueChildren field.
+ d->dirtyOpaqueChildren = oldDirtyOpaqueChildren;
}
static void sendResizeEvents(QWidget *target)
@@ -7983,7 +8001,8 @@ bool QWidget::event(QEvent *event)
case QEvent::KeyPress: {
QKeyEvent *k = (QKeyEvent *)event;
bool res = false;
- if (!(k->modifiers() & (Qt::ControlModifier | Qt::AltModifier))) { //### Add MetaModifier?
+ // Patch: Allow us to handle Ctrl+Tab and Ctrl+Backtab in the app.
+ if (!(k->modifiers() & (Qt::ControlModifier | Qt::AltModifier | Qt::MetaModifier))) { //### Add MetaModifier?
if (k->key() == Qt::Key_Backtab
|| (k->key() == Qt::Key_Tab && (k->modifiers() & Qt::ShiftModifier)))
res = focusNextPrevChild(false);
diff --git a/src/widgets/styles/qmacstyle_mac.mm b/src/widgets/styles/qmacstyle_mac.mm
index 0845a5eb02..5735cb6b39 100644
--- a/src/widgets/styles/qmacstyle_mac.mm
+++ b/src/widgets/styles/qmacstyle_mac.mm
@@ -3667,9 +3667,11 @@ void QMacStyle::drawControl(ControlElement ce, const QStyleOption *opt, QPainter
NSBezierPath *pushButtonFocusRingPath;
if (bdi.kind == kThemeBevelButton)
- pushButtonFocusRingPath = [NSBezierPath bezierPathWithRect:focusRect];
+ // Patch: Fix building with the new SDK.
+ pushButtonFocusRingPath = [NSBezierPath bezierPathWithRect:NSRectFromCGRect(focusRect)];
else
- pushButtonFocusRingPath = [NSBezierPath bezierPathWithRoundedRect:focusRect xRadius:4 yRadius:4];
+ // Patch: Fix building with the new SDK.
+ pushButtonFocusRingPath = [NSBezierPath bezierPathWithRoundedRect:NSRectFromCGRect(focusRect) xRadius:4 yRadius:4];
qt_drawFocusRingOnPath(cg, pushButtonFocusRingPath);
}
diff --git a/src/widgets/util/qsystemtrayicon_qpa.cpp b/src/widgets/util/qsystemtrayicon_qpa.cpp
index f98aeaf678..00c0734129 100644
--- a/src/widgets/util/qsystemtrayicon_qpa.cpp
+++ b/src/widgets/util/qsystemtrayicon_qpa.cpp
@@ -99,13 +99,18 @@ void QSystemTrayIconPrivate::updateIcon_sys()
void QSystemTrayIconPrivate::updateMenu_sys()
{
- if (qpa_sys && menu) {
- if (!menu->platformMenu()) {
- QPlatformMenu *platformMenu = qpa_sys->createMenu();
- if (platformMenu)
- menu->setPlatformMenu(platformMenu);
+ // Patch: Nice macOS tray icon support.
+ if (qpa_sys) {
+ if (menu) {
+ if (!menu->platformMenu()) {
+ QPlatformMenu *platformMenu = qpa_sys->createMenu();
+ if (platformMenu)
+ menu->setPlatformMenu(platformMenu);
+ }
+ qpa_sys->updateMenu(menu->platformMenu());
+ } else {
+ qpa_sys->updateMenu(0);
}
- qpa_sys->updateMenu(menu->platformMenu());
}
}
diff --git a/src/widgets/widgets/qwidgetlinecontrol.cpp b/src/widgets/widgets/qwidgetlinecontrol.cpp
index 75f30599be..980f2be1e9 100644
--- a/src/widgets/widgets/qwidgetlinecontrol.cpp
+++ b/src/widgets/widgets/qwidgetlinecontrol.cpp
@@ -1867,7 +1867,8 @@ void QWidgetLineControl::processKeyEvent(QKeyEvent* event)
if (unknown && !isReadOnly()) {
QString t = event->text();
- if (!t.isEmpty() && t.at(0).isPrint()) {
+ // Patch: Enable ZWJ and ZWNJ characters to be in text input.
+ if (!t.isEmpty() && (t.at(0).isPrint() || t.at(0).unicode() == 0x200C || t.at(0).unicode() == 0x200D)) {
insert(t);
#ifndef QT_NO_COMPLETER
complete(event->key());
diff --git a/src/widgets/widgets/qwidgettextcontrol.cpp b/src/widgets/widgets/qwidgettextcontrol.cpp
index 96438a0bdf..b0b7206405 100644
--- a/src/widgets/widgets/qwidgettextcontrol.cpp
+++ b/src/widgets/widgets/qwidgettextcontrol.cpp
@@ -1342,7 +1342,8 @@ void QWidgetTextControlPrivate::keyPressEvent(QKeyEvent *e)
process:
{
QString text = e->text();
- if (!text.isEmpty() && (text.at(0).isPrint() || text.at(0) == QLatin1Char('\t'))) {
+ // Patch: Enable ZWJ and ZWNJ characters to be in text input.
+ if (!text.isEmpty() && (text.at(0).isPrint() || text.at(0) == QLatin1Char('\t') || text.at(0).unicode() == 0x200C || text.at(0).unicode() == 0x200D)) {
if (overwriteMode
// no need to call deleteChar() if we have a selection, insertText
// does it already

View File

@@ -1,47 +0,0 @@
diff --git a/src/3rdparty/libwebp/src/dec/vp8l.c b/src/3rdparty/libwebp/src/dec/vp8l.c
index ea0254d..953ff01 100644
--- a/src/3rdparty/libwebp/src/dec/vp8l.c
+++ b/src/3rdparty/libwebp/src/dec/vp8l.c
@@ -12,7 +12,7 @@
// Authors: Vikas Arora (vikaas.arora@gmail.com)
// Jyrki Alakuijala (jyrki@google.com)
-#include <stdio.h>
+// Patch: Backport of a crash fix.
#include <stdlib.h>
#include "./alphai.h"
#include "./vp8li.h"
@@ -740,6 +740,10 @@ static int DecodeAlphaData(VP8LDecoder* const dec, uint8_t* const data,
const int len_code_limit = NUM_LITERAL_CODES + NUM_LENGTH_CODES;
const int mask = hdr->huffman_mask_;
assert(htree_group != NULL);
+
+ // Patch: Backport of a crash fix.
+ assert(pos < end);
+
assert(last_row <= height);
assert(Is8bOptimizable(hdr));
@@ -830,6 +834,10 @@ static int DecodeImageData(VP8LDecoder* const dec, uint32_t* const data,
(hdr->color_cache_size_ > 0) ? &hdr->color_cache_ : NULL;
const int mask = hdr->huffman_mask_;
assert(htree_group != NULL);
+
+ // Patch: Backport of a crash fix.
+ assert(src < src_end);
+
assert(src_last <= src_end);
while (!br->eos_ && src < src_last) {
@@ -1294,6 +1302,11 @@ int VP8LDecodeAlphaImageStream(ALPHDecoder* const alph_dec, int last_row) {
assert(dec->action_ == READ_DATA);
assert(last_row <= dec->height_);
+ // Patch: Backport of a crash fix.
+ if (dec->last_pixel_ == dec->width_ * dec->height_) {
+ return 1; // done
+ }
+
// Decode (with special row processing).
return alph_dec->use_8b_decode ?
DecodeAlphaData(dec, (uint8_t*)dec->pixels_, dec->width_, dec->height_,

View File

@@ -1,52 +0,0 @@
diff --git a/base/mac/scoped_nsobject.h b/base/mac/scoped_nsobject.h
index 2e157a4..5a306a1 100644
--- a/base/mac/scoped_nsobject.h
+++ b/base/mac/scoped_nsobject.h
@@ -11,6 +11,7 @@
#include "base/compiler_specific.h"
#include "base/mac/scoped_typeref.h"
+#include "base/template_util.h"
namespace base {
@@ -55,7 +56,7 @@ class scoped_nsobject : public scoped_nsprotocol<NST*> {
public:
using scoped_nsprotocol<NST*>::scoped_nsprotocol;
- static_assert(std::is_same<NST, NSAutoreleasePool>::value == false,
+ static_assert(is_same<NST, NSAutoreleasePool>::value == false,
"Use ScopedNSAutoreleasePool instead");
};
diff --git a/base/macros.h b/base/macros.h
index 5d96783..096704c 100644
--- a/base/macros.h
+++ b/base/macros.h
@@ -42,8 +42,9 @@ char (&ArraySizeHelper(const T (&array)[N]))[N];
template <typename Dest, typename Source>
inline Dest bit_cast(const Source& source) {
+#if __cplusplus >= 201103L
static_assert(sizeof(Dest) == sizeof(Source), "sizes must be equal");
-
+#endif
Dest dest;
memcpy(&dest, &source, sizeof(dest));
return dest;
diff --git a/build/common.gypi b/build/common.gypi
index 1affc70..6e8f292 100644
--- a/build/common.gypi
+++ b/build/common.gypi
@@ -66,6 +66,11 @@
'conditions': [
['clang!=0', {
'CLANG_CXX_LANGUAGE_STANDARD': 'c++11', # -std=c++11
+ 'conditions': [
+ ['mac_deployment_target=="10.8"', {
+ 'CLANG_CXX_LIBRARY': 'libc++', # force -stdlib=libc++ for 10.8
+ }]
+ ],
# Don't link in libarclite_macosx.a, see http://crbug.com/156530.
'CLANG_LINK_OBJC_RUNTIME': 'NO', # -fno-objc-link-runtime

View File

@@ -1,22 +0,0 @@
diff --git a/Alc/backends/winmm.c b/Alc/backends/winmm.c
index 9d8f8e9..8c8e44a 100644
--- a/Alc/backends/winmm.c
+++ b/Alc/backends/winmm.c
@@ -219,7 +219,7 @@ FORCE_ALIGN static int ALCwinmmPlayback_mixerProc(void *arg)
SetRTPriority();
althrd_setname(althrd_current(), MIXER_THREAD_NAME);
- while(GetMessage(&msg, NULL, 0, 0))
+ if (!self->killNow) while(GetMessage(&msg, NULL, 0, 0))
{
if(msg.message != WOM_DONE)
continue;
@@ -504,7 +504,7 @@ static int ALCwinmmCapture_captureProc(void *arg)
althrd_setname(althrd_current(), RECORD_THREAD_NAME);
- while(GetMessage(&msg, NULL, 0, 0))
+ if (!self->killNow) while(GetMessage(&msg, NULL, 0, 0))
{
if(msg.message != WIM_DATA)
continue;

File diff suppressed because it is too large Load Diff

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 105 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 67 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.1 KiB

After

Width:  |  Height:  |  Size: 8.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 35 KiB

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 826 B

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 361 KiB

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 KiB

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 60 KiB

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

After

Width:  |  Height:  |  Size: 5.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 KiB

After

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 KiB

After

Width:  |  Height:  |  Size: 7.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 46 KiB

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 95 KiB

After

Width:  |  Height:  |  Size: 74 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.1 KiB

After

Width:  |  Height:  |  Size: 5.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.1 KiB

After

Width:  |  Height:  |  Size: 8.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 84 KiB

After

Width:  |  Height:  |  Size: 65 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 KiB

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

After

Width:  |  Height:  |  Size: 21 KiB

View File

@@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="212px" height="80px" viewBox="0 0 212 80" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>record_td_audio</title>
<g id="record_td_audio" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<path d="M43.7701975,66.2857143 C47.6576358,66.2857143 51.3477972,65.4403128 54.6671733,63.9231737 C63.7325049,59.7798145 70.032316,50.6262682 70.032316,40 C70.032316,25.4828009 58.2743651,13.7142857 43.7701975,13.7142857 C29.26603,13.7142857 17.508079,25.4828009 17.508079,40 C17.508079,54.5171992 29.26603,66.2857143 43.7701975,66.2857143 Z" id="Oval" fill="#37A8FF" fill-rule="nonzero"></path>
<path d="M125.220826,25.5238095 C126.482058,25.5238095 127.504488,26.5471587 127.504488,27.8095238 L127.504488,52.952381 C127.504488,54.2147459 126.482058,55.2380952 125.220826,55.2380952 C123.959594,55.2380952 122.937163,54.2147459 122.937163,52.952381 L122.937163,27.8095238 C122.937163,26.5471587 123.959594,25.5238095 125.220826,25.5238095 Z" id="Path" fill="#37A8FF" fill-rule="nonzero"></path>
<path d="M97.8168761,26.6666667 C99.0781079,26.6666667 100.100539,27.6900158 100.100539,28.952381 L100.100539,51.8095238 C100.100539,53.0718888 99.0781079,54.0952381 97.8168761,54.0952381 C96.5556444,54.0952381 95.5332136,53.0718888 95.5332136,51.8095238 L95.5332136,28.952381 C95.5332136,27.6900158 96.5556444,26.6666667 97.8168761,26.6666667 Z" id="Path" fill="#37A8FF" fill-rule="nonzero"></path>
<path d="M170.894075,26.6666667 C172.155307,26.6666667 173.177738,27.6900158 173.177738,28.952381 L173.177738,51.8095238 C173.177738,53.0718888 172.155307,54.0952381 170.894075,54.0952381 C169.632844,54.0952381 168.610413,53.0718888 168.610413,51.8095238 L168.610413,28.952381 C168.610413,27.6900158 169.632844,26.6666667 170.894075,26.6666667 Z" id="Path" fill="#37A8FF" fill-rule="nonzero"></path>
<path d="M106.951526,28.952381 C108.212758,28.952381 109.235189,29.9757301 109.235189,31.2380952 L109.235189,49.5238095 C109.235189,50.7861745 108.212758,51.8095238 106.951526,51.8095238 C105.690294,51.8095238 104.667864,50.7861745 104.667864,49.5238095 L104.667864,31.2380952 C104.667864,29.9757301 105.690294,28.952381 106.951526,28.952381 Z" id="Path" fill="#37A8FF" fill-rule="nonzero"></path>
<path d="M180.028725,28.952381 C181.289957,28.952381 182.312388,29.9757301 182.312388,31.2380952 L182.312388,49.5238095 C182.312388,50.7861745 181.289957,51.8095238 180.028725,51.8095238 C178.767494,51.8095238 177.745063,50.7861745 177.745063,49.5238095 L177.745063,31.2380952 C177.745063,29.9757301 178.767494,28.952381 180.028725,28.952381 Z" id="Path" fill="#37A8FF" fill-rule="nonzero"></path>
<path d="M134.355476,28.952381 C135.616708,28.952381 136.639138,29.9757301 136.639138,31.2380952 L136.639138,49.5238095 C136.639138,50.7861745 135.616708,51.8095238 134.355476,51.8095238 C133.094244,51.8095238 132.071813,50.7861745 132.071813,49.5238095 L132.071813,31.2380952 C132.071813,29.9757301 133.094244,28.952381 134.355476,28.952381 Z" id="Path" fill="#37A8FF" fill-rule="nonzero"></path>
<path d="M152.624776,30.0952381 C153.886007,30.0952381 154.908438,31.1185872 154.908438,32.3809524 L154.908438,48.3809524 C154.908438,49.6433173 153.886007,50.6666667 152.624776,50.6666667 C151.363544,50.6666667 150.341113,49.6433173 150.341113,48.3809524 L150.341113,32.3809524 C150.341113,31.1185872 151.363544,30.0952381 152.624776,30.0952381 Z" id="Path" fill="#37A8FF" fill-rule="nonzero"></path>
<path d="M88.6822262,32.3809524 C89.943458,32.3809524 90.9658887,33.4043015 90.9658887,34.6666667 L90.9658887,46.0952381 C90.9658887,47.357603 89.943458,48.3809524 88.6822262,48.3809524 C87.4209944,48.3809524 86.3985637,47.357603 86.3985637,46.0952381 L86.3985637,34.6666667 C86.3985637,33.4043015 87.4209944,32.3809524 88.6822262,32.3809524 Z" id="Path" fill="#37A8FF" fill-rule="nonzero"></path>
<path d="M161.759425,32.3809524 C163.020657,32.3809524 164.043088,33.4043015 164.043088,34.6666667 L164.043088,46.0952381 C164.043088,47.357603 163.020657,48.3809524 161.759425,48.3809524 C160.498194,48.3809524 159.475763,47.357603 159.475763,46.0952381 L159.475763,34.6666667 C159.475763,33.4043015 160.498194,32.3809524 161.759425,32.3809524 Z" id="Path" fill="#37A8FF" fill-rule="nonzero"></path>
<path d="M116.086176,32.3809524 C117.347408,32.3809524 118.369838,33.4043015 118.369838,34.6666667 L118.369838,46.0952381 C118.369838,47.357603 117.347408,48.3809524 116.086176,48.3809524 C114.824944,48.3809524 113.802513,47.357603 113.802513,46.0952381 L113.802513,34.6666667 C113.802513,33.4043015 114.824944,32.3809524 116.086176,32.3809524 Z" id="Path" fill="#37A8FF" fill-rule="nonzero"></path>
<path d="M189.163375,32.3809524 C190.424607,32.3809524 191.447038,33.4043015 191.447038,34.6666667 L191.447038,46.0952381 C191.447038,47.357603 190.424607,48.3809524 189.163375,48.3809524 C187.902143,48.3809524 186.879713,47.357603 186.879713,46.0952381 L186.879713,34.6666667 C186.879713,33.4043015 187.902143,32.3809524 189.163375,32.3809524 Z" id="Path" fill="#37A8FF" fill-rule="nonzero"></path>
<path d="M143.490126,32.3809524 C144.751357,32.3809524 145.773788,33.4043015 145.773788,34.6666667 L145.773788,46.0952381 C145.773788,47.357603 144.751357,48.3809524 143.490126,48.3809524 C142.228894,48.3809524 141.206463,47.357603 141.206463,46.0952381 L141.206463,34.6666667 C141.206463,33.4043015 142.228894,32.3809524 143.490126,32.3809524 Z" id="Path" fill="#37A8FF" fill-rule="nonzero"></path>
<path d="M43.6031289,49.3105246 L43.937266,49.3105246 C44.5887999,49.3105246 45.116973,49.8391722 45.116973,50.4912914 L45.116973,52.9144712 C45.116973,53.5665909 44.5887999,54.0952381 43.937266,54.0952381 L43.6031289,54.0952381 C42.9515951,54.0952381 42.423422,53.5665909 42.423422,52.9144712 L42.423422,50.4912914 C42.423422,49.8391722 42.9515951,49.3105246 43.6031289,49.3105246 Z" id="Rectangle" fill="#FFFFFF" fill-rule="nonzero"></path>
<path d="M43.8481579,28.952381 C46.5276427,28.952381 48.6997943,31.1264842 48.6997943,33.8083764 L48.6997943,41.4774827 C48.6997943,44.1593749 46.5276427,46.3334781 43.8481579,46.3334781 C41.1686732,46.3334781 38.9965216,44.1593749 38.9965216,41.4774827 L38.9965216,33.8083764 C38.9965216,31.1264842 41.1686732,28.952381 43.8481579,28.952381 Z" id="Rectangle" fill="#FFFFFF" fill-rule="nonzero"></path>
<path d="M35.016158,40.687141 C35.6155766,40.687141 36.1015014,41.1735025 36.1015014,41.7734594 C36.1015014,45.5539211 39.5589126,48.7799303 43.7701975,48.7799303 C48.0292505,48.7799303 51.4388937,45.7047695 51.4388937,41.9709718 C51.4388937,41.3710149 51.9248182,40.8846533 52.524237,40.8846533 C53.1236558,40.8846533 53.6095803,41.3710149 53.6095803,41.9709718 C53.6095803,46.9580564 49.1805897,50.9525672 43.7701975,50.9525672 C38.3927905,50.9525672 33.9308146,46.7892282 33.9308146,41.7734594 C33.9308146,41.1735025 34.4167394,40.687141 35.016158,40.687141 Z" id="Path" fill="#FFFFFF" fill-rule="nonzero"></path>
</g>
</svg>

After

Width:  |  Height:  |  Size: 6.9 KiB

View File

@@ -0,0 +1,41 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="120px" height="77px" viewBox="0 0 120 77" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>record_td_landscape</title>
<g id="record_td_landscape" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<path d="M9.16666667,5.26258992 L88.0555555,5.26258992 C88.6692052,5.26258992 89.1666667,5.75844141 89.1666667,6.37010522 L89.1666667,70.6298949 C89.1666667,71.2415585 88.6692052,71.7374101 88.0555555,71.7374101 L9.16666667,71.7374101 C7.3257175,71.7374101 5.83333332,70.2498556 5.83333332,68.4148643 L5.83333332,8.58513578 C5.83333332,6.75014437 7.3257175,5.26258992 9.16666667,5.26258992 Z" id="Rectangle" fill="#0A9AD8" fill-rule="nonzero"></path>
<path d="M74.175461,39.4799628 C74.175461,39.4869105 74.817287,41.6527331 75.1547623,43.9104391 C75.473963,46.0458881 75.4898313,48.2806063 75.4898313,48.2674632 C75.5304818,49.6193866 75.5846828,51.4580021 72.725589,54.3511176 C72.7526893,54.3375982 72.5494363,54.5539059 71.0182628,55.8787906 C73.3353483,60.8403487 73.9857583,67.0758169 73.4166495,71.7669903 L21.8987622,71.7669903 C21.3161033,66.9541439 22.0207141,60.7457142 24.2971489,55.8652715 C24.2835987,55.8517521 22.8472767,54.5944637 22.8608269,54.6079829 C21.3296535,53.1208674 19.8120303,51.160579 19.8120303,49.0380595 C19.8120303,49.0317313 19.6476379,47.7958611 19.8540957,45.3139483 C20.0605534,42.8320357 21.6277581,37.9387704 21.7226095,37.5602319 C25.3676153,24.7034427 37.8338058,9.56190341 42.03437,10.5082496 C43.1183865,10.7515958 44.1888528,12.049442 45.1644678,13.9691729 C45.7606768,15.1859037 46.4788378,17.1597116 46.61434,17.5517693 C48.9991763,17.5247308 48.57912,17.5517693 48.7959233,17.5517693 C49.2701805,16.1592884 49.5953855,15.4022114 49.5818353,15.4157307 C50.2457955,13.8069421 51.655017,10.9003073 53.362343,10.5082496 C57.6984093,9.53486495 71.0453633,25.7444235 74.175461,39.4799628 Z" id="Path" fill="#FFFFFF" fill-rule="nonzero"></path>
<path d="M40.5130087,14.8004607 C41.4545255,14.724296 42.3404242,15.2703395 43.2401358,16.2211174 C43.844097,16.9402459 44.1541125,17.3103582 44.1701823,17.3314543 C44.5770235,17.8655479 44.4723282,18.6271598 43.936339,19.0325621 C43.4003495,19.4379644 42.6360345,19.3336395 42.2291933,18.7995458 C41.986018,18.4899876 41.859044,18.3286785 41.8482713,18.3156185 L40.7542925,17.2813836 L40.7238148,17.2641429 L39.7325905,18.5678988 C39.670905,18.6704726 39.4567875,19.0863831 39.0902378,19.8156303 C38.8095898,20.4250562 38.0862888,20.6923879 37.4746997,20.4127325 C36.863111,20.133077 36.5948303,19.4123342 36.8754783,18.8029084 L37.1182785,18.2914213 C37.2236442,18.0768659 37.396533,17.7560017 37.636944,17.3288288 C38.5371665,15.8019494 39.4390397,14.8788265 40.5130087,14.8004607 Z" id="Path" fill="#CABCB4" fill-rule="nonzero"></path>
<path d="M64.4562625,57.51838 C65.0461218,57.1956882 65.7868188,57.4105788 66.110656,57.9983519 C66.434493,58.5861248 66.2188398,59.3242022 65.6289805,59.646894 C64.6740205,60.1693201 63.6660473,60.6703037 62.630571,61.1433322 C60.832103,61.9079537 59.9107008,62.2989963 59.8663643,62.3164596 L57.2760995,63.2679242 C57.0121855,63.3579578 55.7335118,63.7430351 53.4400788,64.4231557 C53.399373,64.4336807 52.6414868,64.6066673 51.1664195,64.9421162 C49.841893,65.1997916 48.6707235,65.3396191 47.739007,65.3396191 C46.6094163,65.3396191 45.1279263,65.1361679 43.4474528,64.7677954 L40.509949,64.0139408 C40.46734,64.0015585 39.4183938,63.6628116 37.3631103,62.9976998 C35.0519835,62.0964758 33.8524645,61.626955 33.7645538,61.5891375 L30.684499,60.1442387 C30.195084,59.8878868 29.8904378,59.7271255 29.7705605,59.6619556 C29.1798465,59.34082 28.962234,58.6033138 29.2845093,58.0146891 C29.6067845,57.4260642 30.3469085,57.2092215 30.9376225,57.5303569 C31.5036995,57.838099 32.0901055,58.1381032 32.690561,58.4288397 L35.6549235,59.7469342 C35.7178573,59.7726505 38.805909,60.9280903 38.8683885,60.9493811 L42.486846,62.0428091 C42.563244,62.0627458 43.520094,62.2726207 45.3573965,62.6724328 C46.2758583,62.8282629 47.0840855,62.9114246 47.739007,62.9114246 C48.3222293,62.9114246 49.0274493,62.8446472 49.8240148,62.7186528 C52.5754125,62.0856116 53.9708033,61.7634157 54.0101865,61.752065 L56.564689,60.9442341 L59.573909,59.8160545 C61.95057,58.7510394 63.4072285,58.0769116 63.943884,57.7936712 L64.2866305,57.610619 C64.343372,57.5799509 64.3999183,57.5492039 64.4562625,57.51838 Z" id="Path" fill="#CABCB4" fill-rule="nonzero"></path>
<path d="M46.885344,43.6844439 C47.8880595,45.090444 49.7308875,46.0773477 51.8989208,46.1990209 L51.8989208,46.8073862 C51.8989208,50.6468482 50.7607033,53.7562714 47.6848063,53.7562714 C44.64956,53.7562714 43.4977923,50.7009251 43.470692,46.9155401 C43.470692,46.3747708 43.470692,46.0458029 43.470692,45.9286363 C44.9341143,45.5365785 46.1400828,44.7389439 46.885344,43.6844439 Z" id="Path" fill="#F23C57" fill-rule="nonzero"></path>
<path d="M34.9609983,39.8510278 C35.6170285,39.7017956 36.270252,40.1107558 36.4200138,40.7644658 C36.7971668,42.4107383 37.729436,43.8209474 39.0211698,44.6728535 C41.5888978,46.3662851 44.882324,45.3493015 46.4210183,42.3125645 C46.7243048,41.7140047 47.4571178,41.4737684 48.057802,41.7759822 C48.6584865,42.0781957 48.8995753,42.8084171 48.5962888,43.406977 C46.4204265,47.7012159 41.5011325,49.2202545 37.6762575,46.6977268 C35.8447725,45.4898517 34.5567008,43.5414332 34.044318,41.304883 C33.8945563,40.6511732 34.304968,40.0002598 34.9609983,39.8510278 Z" id="Path" fill="#000000" fill-rule="nonzero"></path>
<path d="M58.312739,40.7644658 C58.4625008,40.1107558 59.1157243,39.7017956 59.7717545,39.8510278 C60.4277848,40.0002598 60.8381965,40.6511732 60.6884348,41.304883 C60.176052,43.5414332 58.8879803,45.4898517 57.0564953,46.6977268 C53.2316203,49.2202545 48.3123263,47.7012159 46.136464,43.406977 C45.8331778,42.8084171 46.0742665,42.0781957 46.6749508,41.7759822 C47.2756353,41.4737684 48.0084483,41.7140047 48.3117345,42.3125645 C49.850429,45.3493015 53.1438553,46.3662851 55.711583,44.6728535 C57.0033168,43.8209474 57.935586,42.4107383 58.312739,40.7644658 Z" id="Path-Copy" fill="#000000" fill-rule="nonzero"></path>
<path d="M47.468003,43.7250015 C49.3379315,43.7250015 51.9531215,40.9941167 51.9531215,38.6823283 C51.9531215,36.3705396 50.3270968,36.1271934 47.400252,36.1271934 C44.4734073,36.1271934 42.8473823,36.3705396 42.8473823,38.6823283 C42.8473823,40.9941167 45.5980745,43.7250015 47.468003,43.7250015 Z" id="Oval" fill="#000000" fill-rule="nonzero"></path>
<path d="M38.701019,30.4626353 C36.8310905,30.962847 35.7877245,33.125924 36.0316283,34.0317124 C36.275532,34.9375011 38.0641593,35.5458663 39.9340878,35.0456549 C41.8040165,34.5454432 43.023535,33.0177702 42.8067318,32.2201354 C42.5899285,31.4089815 40.5709475,29.9624239 38.701019,30.4626353 Z" id="Oval-Copy-3" fill="#000000" fill-rule="nonzero"></path>
<path d="M56.7227945,30.4626353 C58.592723,30.962847 59.636089,33.125924 59.3921852,34.0317124 C59.1482815,34.9375011 57.3596542,35.5458663 55.4897255,35.0456549 C53.619797,34.5454432 52.4002782,33.0177702 52.6170817,32.2201354 C52.833885,31.4225009 54.8393155,29.9624239 56.7227945,30.4626353 Z" id="Oval-Copy-4" fill="#000000" fill-rule="nonzero"></path>
<path d="M51.925176,16.3090342 C52.8606485,15.2995095 53.7683583,14.7222917 54.7250875,14.7997248 C55.7860473,14.8771785 56.6728375,15.7638522 57.5493765,17.2256689 C57.842431,17.7415165 58.055606,18.1375372 58.1889015,18.4137309 C58.2972335,18.6430962 58.3583273,18.772822 58.3721823,18.8029084 C58.6528303,19.4123342 58.3845498,20.133077 57.772961,20.4127325 C57.161372,20.6923879 56.438071,20.4250562 56.157423,19.8156303 L55.5096673,18.5588251 C55.2122455,18.0543638 54.5848463,17.3156962 54.5447338,17.2816756 C54.1999508,17.5123321 53.9414935,17.7180916 53.769362,17.8989543 L53.0184675,18.7995458 C52.6116263,19.3336395 51.847311,19.4379644 51.3113218,19.0325621 C50.7753325,18.6271598 50.6706373,17.8655479 51.0774785,17.3314543 L51.925176,16.3090342 Z" id="Path-Copy-2" fill="#CABCB4" fill-rule="nonzero"></path>
<path d="M39.0857368,32.8474823 C39.6149,32.3195282 39.7864885,31.6347423 39.4689905,31.31797 C39.1514925,31.0011978 38.4651378,31.1723942 37.935974,31.7003478 C37.4068108,32.2283019 37.2352223,32.9130876 37.5527203,33.2298598 C37.8702183,33.5466321 38.556573,33.3754357 39.0857368,32.8474823 Z" id="Oval-Copy-7" fill="#FFFFFF" fill-rule="nonzero"></path>
<path d="M55.3486545,32.954987 C55.9763015,32.5483632 56.2868768,31.9141422 56.0423438,31.5384146 C55.7978105,31.1626872 55.0907685,31.1877336 54.463121,31.5943569 C53.835474,32.000981 53.5248988,32.6352021 53.7694318,33.0109294 C54.0139653,33.3866568 54.721007,33.3616106 55.3486545,32.954987 Z" id="Oval-Copy-8" fill="#FFFFFF" fill-rule="nonzero"></path>
<path d="M91.9444445,5.26258992 L110.833333,5.26258992 C112.674283,5.26258992 114.166667,6.75014437 114.166667,8.58513578 L114.166667,25.2054344 C114.166667,25.8170983 113.669205,26.4142395 113.055556,26.4142395 L91.9444445,26.4142395 C91.3307948,26.4142395 90.8333333,25.8170983 90.8333333,25.2054344 L90.8333333,6.37010522 C90.8333333,5.75844141 91.3307948,5.26258992 91.9444445,5.26258992 Z" id="Rectangle" fill="#FFCA3D" fill-rule="nonzero"></path>
<path d="M103.2142,7.97411003 C107.632602,7.97411003 109.969538,10.9765406 110.178,14.3005289 C110.380517,17.5297332 110.201469,22.6688803 109.0483,26.4142395 L97.5363535,26.4142395 C96.9669115,23.4651448 96.2977453,19.3968245 96.3087163,16.4487992 C95.6055153,16.0427077 95.1394328,15.7437666 94.910469,15.5519759 C94.0706783,14.8485281 93.6948253,14.2919279 93.7565138,13.9735572 C94.0114313,12.6579448 95.058614,12.4439806 96.5508963,12.6122341 C97.3323058,10.02525 99.5632098,7.97411003 103.2142,7.97411003 Z" id="Path" fill="#4CBFEA" fill-rule="nonzero"></path>
<path d="M93.75,14.2803021 C94.7387305,14.2869003 100.665601,16.0421213 100.779908,16.0623312 C101.710781,16.2269147 102.358415,16.0406637 102.722809,15.5035784 L102.727941,15.8398107 C102.634666,22.8737477 102.587527,26.3985574 102.586524,26.4142395 L97.333057,26.4142395 C96.5029448,23.4278615 96.1931475,19.365188 96.204203,16.3958621 L96.1288678,16.3519496 C94.9332718,15.5938989 94.3316638,15.2114978 94.3240435,15.2047464 L94.2901418,15.1742545 C93.9997255,14.9090217 93.7985318,14.6182939 93.75,14.2803021 Z" id="Path" fill="#FFFFFF" fill-rule="nonzero"></path>
<path d="M104.691488,12.1608256 C105.876093,12.443808 106.596703,13.5928637 106.301507,14.7272315 C106.249909,14.9255078 106.039995,15.0462441 105.83265,14.9969034 C105.625305,14.9475627 105.499047,14.7468294 105.550644,14.5485531 C105.742783,13.8102114 105.273946,13.0626231 104.503958,12.8786861 C103.734236,12.6948126 102.954477,13.1437115 102.762404,13.8817999 C102.710806,14.0800763 102.500892,14.2008125 102.293547,14.1514718 C102.086202,14.102131 101.959944,13.9013978 102.011541,13.7031214 C102.306804,12.5685003 103.506617,11.8777806 104.691488,12.1608256 Z" id="Path" fill="#000000" fill-rule="nonzero"></path>
<path d="M102.365249,14.9966072 C102.574812,15.0062043 102.737019,15.1861129 102.727547,15.3984443 C102.688118,16.2823197 101.977686,16.6059177 100.863027,16.4063951 C100.775397,16.3907082 100.39878,16.2862544 99.7331758,16.0930336 L98.4516848,15.6415518 C96.8548668,15.0830675 95.593332,14.7499239 94.0835805,14.562086 C93.875367,14.5361809 93.7273033,14.3441607 93.7528708,14.133197 C93.778438,13.9222333 93.967955,13.7722137 94.1761683,13.7981189 C95.681789,13.9854428 96.9471038,14.3108231 98.4958953,14.8433357 L99.9405645,15.3515853 C100.555982,15.5337867 100.907523,15.6327335 100.995189,15.6484258 C101.697446,15.77413 101.940227,15.6770468 101.966787,15.3910546 C102.092719,15.1216917 102.22554,14.9902092 102.365249,14.9966072 Z" id="Path" fill="#1683AC" fill-rule="nonzero"></path>
<path d="M105.342285,17.6077403 C105.449023,17.440419 105.661516,17.3862365 105.831012,17.4771775 L105.862251,17.4959374 L107.653171,18.6918577 C107.748825,18.7557323 107.810292,18.8601897 107.821629,18.975104 L107.82353,19.0137547 L107.82353,23.8401474 C107.82353,24.0842782 107.603986,24.2665628 107.370484,24.2163065 C104.918229,23.6885105 103.69853,21.5111838 103.69853,17.8178344 C103.69853,17.6055406 103.866738,17.4333981 104.074233,17.4333981 C104.281728,17.4333981 104.449937,17.6055406 104.449937,17.8178344 C104.449937,20.9087224 105.316738,22.7106219 107.040407,23.3266985 L107.071928,23.3375379 L107.071928,19.2215938 L105.451561,18.1397314 C105.288021,18.030525 105.235064,17.8131177 105.323949,17.6397028 L105.342285,17.6077403 Z" id="Path-11" fill="#1683AC" fill-rule="nonzero"></path>
<path d="M108.990216,13.783927 C108.786461,13.8348866 108.580611,13.7084298 108.530439,13.5014778 C108.471102,13.2567271 108.387979,13.0082108 108.282177,12.7603458 C108.048814,12.2136439 107.709765,11.6803939 107.28247,11.1972642 C106.855196,10.7141701 106.369777,10.3152109 105.860217,10.0218583 C105.629222,9.88887579 105.395234,9.77878492 105.162451,9.69316556 C104.965148,9.6205959 104.863122,9.39931123 104.934571,9.19891243 C105.00602,8.99851365 105.223887,8.89488767 105.42119,8.96745733 C105.694614,9.06802466 105.967329,9.19633622 106.234928,9.35039253 C106.816569,9.68524149 107.366171,10.1369525 107.847779,10.6814707 C108.32934,11.2259638 108.713115,11.8295599 108.979376,12.4533316 C109.101862,12.7402812 109.198668,13.0297058 109.268303,13.3169365 C109.318475,13.5238886 109.193972,13.7329673 108.990216,13.783927 Z" id="Path" fill="#FFFFFF" fill-rule="nonzero"></path>
<path d="M91.9444445,27.9748202 L113.055556,27.9748202 C113.669205,27.9748202 114.166667,28.4706715 114.166667,29.0823353 L114.166667,47.9176647 C114.166667,48.5293285 113.669205,49.0251798 113.055556,49.0251798 L91.9444445,49.0251798 C91.3307948,49.0251798 90.8333333,48.5293285 90.8333333,47.9176647 L90.8333333,29.0823353 C90.8333333,28.4706715 91.3307948,27.9748202 91.9444445,27.9748202 Z" id="Rectangle-Copy-5" fill="#FE5BA3" fill-rule="nonzero"></path>
<path d="M91.9444445,50.6870504 L113.055556,50.6870504 C113.669205,50.6870504 114.166667,51.1829017 114.166667,51.7945656 L114.166667,68.4148643 C114.166667,70.2498556 112.674283,71.7374101 110.833333,71.7374101 L91.9444445,71.7374101 C91.3307948,71.7374101 90.8333333,71.2415585 90.8333333,70.6298949 L90.8333333,51.7945656 C90.8333333,51.1829017 91.3307948,50.6870504 91.9444445,50.6870504 Z" id="Rectangle-Copy-6" fill="#4DC17B" fill-rule="nonzero"></path>
<path d="M102.25,52.3300971 C104.064924,52.3300971 106.494853,54.4941995 107.590007,57.0290814 C108.926565,60.1227278 109.75,64.5446101 109.75,65.4829234 C109.75,65.8797612 109.465807,66.2975642 109.0014,66.7051419 L108.275763,67.2454656 C108.734593,68.2433846 108.946429,69.4043108 108.946429,70.6431768 C108.946429,70.9457113 108.926633,71.4749893 108.888273,71.7669903 L95.573462,71.7669903 C95.5351018,71.4749893 95.515306,70.9457113 95.515306,70.6431768 C95.515306,69.4347129 95.7168725,68.3004102 96.152671,67.3191466 L95.9808008,67.2012549 C95.2383448,66.6744278 94.75,66.0858807 94.75,65.4829234 C94.75,64.4035757 95.566779,60.0431632 96.8797585,57.0076953 C97.9738345,54.4783084 100.435077,52.3300971 102.25,52.3300971 Z" id="Path" fill="#112F40" fill-rule="nonzero"></path>
<path d="M102.261954,61.3438098 C102.88843,61.3438098 103.307995,61.2569433 103.656078,61.1556076 L104.289433,60.9572583 C104.533466,60.8877973 104.788283,60.8385647 105.118273,60.8439809 C106.72513,60.8703535 106.90094,64.5129651 106.889183,66.1986132 C106.880102,67.5004661 103.47449,68.664433 102.25,68.664433 C101.02551,68.664433 97.4285715,67.5004661 97.4285715,66.1425046 L97.4313878,65.7434914 C97.4548043,64.2006391 97.663843,60.8270556 99.4181933,60.8270556 C99.638903,60.8270556 99.8337898,60.8619881 100.028218,60.9136885 L100.872784,61.1693216 C101.231515,61.2652115 101.666038,61.3438098 102.261954,61.3438098 Z" id="Mask" fill="#000000" fill-rule="nonzero"></path>
<path d="M99.4181933,60.8270556 C99.638903,60.8270556 99.8337898,60.8619881 100.028218,60.9136885 L100.872784,61.1693216 C101.231515,61.2652115 101.666038,61.3438098 102.261954,61.3438098 C102.88843,61.3438098 103.307995,61.2569433 103.656078,61.1556076 L104.289433,60.9572583 C104.533466,60.8877973 104.788283,60.8385647 105.118273,60.8439809 C105.478219,60.8498884 105.766356,61.0372536 105.996662,61.343432 L105.933366,62.8865975 L105.655612,64.7457443 C104.975579,66.8910871 103.843542,67.5004661 102.269133,67.5004661 C100.694723,67.5004661 99.5723178,66.8910871 98.8922845,64.7457443 C98.8050003,64.2669887 98.7205035,63.6002265 98.638794,62.7454582 C98.6008363,62.3483809 98.5432378,61.2050488 98.5429283,61.1876999 C98.7804968,60.9609601 99.0686768,60.8270556 99.4181933,60.8270556 Z" id="Path" fill="#FFFFFF" fill-rule="nonzero"></path>
<path d="M102.25,66.5692924 C103.348934,66.5692924 104.239796,65.4441246 104.239796,64.7845433 C104.239796,63.6702853 103.348934,63.4653808 102.25,63.4653808 C101.151066,63.4653808 100.260204,63.6702853 100.260204,64.7845433 C100.260204,65.4441246 101.151066,66.5692924 102.25,66.5692924 Z" id="Oval" fill="#0D222E" fill-rule="nonzero"></path>
<path d="M106.970793,67.8435271 C107.138274,67.750305 107.349413,67.8108706 107.442385,67.9788041 C107.535356,68.1467376 107.474953,68.3584457 107.307471,68.4516678 C106.903146,68.6767189 106.172738,69.0035268 105.116247,69.4320909 C105.016337,69.4679318 104.794238,69.5422161 104.44995,69.6549438 C103.576411,69.9255996 102.778547,70.0861309 102.251361,70.0861309 C101.929201,70.0861309 101.194351,69.9426061 100.046812,69.6555566 C99.1225755,69.3244815 98.6353858,69.1485422 98.585242,69.127739 C97.848853,68.7912533 97.379051,68.5668758 97.1758355,68.4546068 C97.00806,68.3619172 96.946989,68.1504017 97.0394295,67.9821739 C97.1318698,67.8139461 97.3428163,67.7527102 97.5105918,67.8454 C97.8941468,68.0573 98.3108265,68.25649 98.7360393,68.4368654 L100.819361,69.1536913 C101.397379,69.3047451 101.902378,69.3905734 102.251361,69.3905734 C102.600083,69.3905734 103.103441,69.304695 103.679035,69.1535076 L104.691113,68.8445846 C105.181443,68.6754929 106.875458,67.8965913 106.970793,67.8435271 Z" id="Path" fill="#000000" fill-rule="nonzero"></path>
<path d="M102.5,30.7446044 C106.745647,30.7446044 110.189142,34.0574222 110.189142,38.14695 C110.189142,39.9020569 109.555397,41.5155537 108.496201,42.7814621 C109.728237,44.1331949 110.277778,45.9869998 110.277778,48.0382003 C110.277778,48.3729151 110.255619,48.7033388 110.211301,49.0251798 L94.788699,49.0251798 C94.7443813,48.7033388 94.7222223,48.3729151 94.7222223,48.0382003 C94.7222223,45.9869998 95.2717633,44.1331949 96.5037988,42.7814621 C95.4446028,41.5155537 94.8108577,39.9020569 94.8108577,38.14695 C94.8108577,34.0574222 98.2543527,30.7446044 102.5,30.7446044 Z" id="Path" fill="#FFE934" fill-rule="nonzero"></path>
<path d="M107.08304,43.0985663 C107.263989,42.9842186 107.503676,43.0377353 107.618395,43.2180995 C107.733114,43.3984634 107.679423,43.6373747 107.498474,43.7517225 C107.057364,44.0304734 106.579716,44.273003 106.073054,44.4755372 C104.968595,44.9115697 103.752383,45.1421002 102.5,45.1421002 C101.247617,45.1421002 100.031405,44.9115697 98.9265333,44.4753737 C98.4237678,44.2762205 97.9495623,44.0348505 97.5015263,43.7517225 C97.3205768,43.6373747 97.2668863,43.3984634 97.3816053,43.2180995 C97.4963243,43.0377353 97.736011,42.9842186 97.9169605,43.0985663 C98.3242775,43.3559626 98.7553408,43.5753735 99.2126545,43.7565229 C100.226009,44.156588 101.345271,44.3687419 102.5,44.3687419 C103.65473,44.3687419 104.773991,44.156588 105.785799,43.7571371 C106.247296,43.5726538 106.682532,43.3516599 107.08304,43.0985663 Z" id="Path" fill="#FF9000" fill-rule="nonzero"></path>
<ellipse id="Oval" fill="#000000" fill-rule="nonzero" cx="99.4420703" cy="37.6534603" rx="1.17442228" ry="1.33027662"></ellipse>
<ellipse id="Oval-Copy-3" fill="#FFFFFF" fill-rule="nonzero" cx="99.1761633" cy="37.3316192" rx="1" ry="1"></ellipse>
<ellipse id="Oval-Copy-2" fill="#000000" fill-rule="nonzero" cx="105.55793" cy="37.6534603" rx="1.17442228" ry="1.33027662"></ellipse>
<path d="M102.544318,38.2542305 C103.204653,38.2542305 103.510446,38.5202856 103.763058,38.7949235 L103.794081,38.8292532 L103.896012,38.9451161 L103.927034,38.9794459 L103.958056,39.0094843 C104.144191,39.2111713 104.343622,39.3699462 104.698164,39.3699462 C105.863723,39.3699462 106.413264,39.7175347 106.426559,40.421294 L106.426559,40.4427501 L106.426559,40.4770797 C106.382241,41.6399989 104.281577,42.3137198 102.579772,42.3308846 L102.526591,42.3308846 L102.504432,42.3308846 L102.482273,42.3308846 C100.771605,42.3308846 98.6266223,41.6528727 98.5823045,40.4770797 L98.5823045,40.4427501 C98.5823045,39.721826 99.1362773,39.3699462 100.3107,39.3699462 C100.647515,39.3699462 100.842514,39.224045 101.019785,39.0395228 L101.050807,39.0094843 L101.08183,38.9794459 L101.112852,38.9451161 L101.214783,38.8292532 C101.219215,38.8249619 101.223647,38.8163795 101.228079,38.8120885 L101.259101,38.7777587 C101.507281,38.5117033 101.813074,38.2542305 102.460114,38.2542305 C102.473409,38.2542305 102.491137,38.2542305 102.504432,38.2542305 C102.513295,38.2542305 102.531023,38.2542305 102.544318,38.2542305 Z" id="Path" fill="#FF4B00" fill-rule="nonzero"></path>
<path d="M105.067531,40.1325146 C105.263202,40.0455276 105.492571,40.1331202 105.57984,40.3281582 C105.66711,40.5231962 105.579233,40.7518226 105.383562,40.8388097 C104.621871,41.1774248 103.668289,41.344375 102.522159,41.344375 C101.376029,41.344375 100.422447,41.1774248 99.6607563,40.8388097 C99.465085,40.7518226 99.377208,40.5231962 99.4644775,40.3281582 C99.551747,40.1331202 99.7811158,40.0455276 99.9767873,40.1325146 C100.629104,40.4225066 101.477361,40.5710167 102.522159,40.5710167 C103.566958,40.5710167 104.415214,40.4225066 105.067531,40.1325146 Z" id="Path" fill="#921000" fill-rule="nonzero"></path>
<ellipse id="Oval-Copy-4" fill="#FFFFFF" fill-rule="nonzero" cx="105.247705" cy="37.3316192" rx="1" ry="1"></ellipse>
</g>
</svg>

After

Width:  |  Height:  |  Size: 22 KiB

View File

@@ -0,0 +1,41 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="83px" height="120px" viewBox="0 0 83 120" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>record_td_portrait</title>
<g id="record_td_portrait" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<path d="M77,9.55160931 L77,84.7273399 C77,85.3811732 76.470394,86 75.8170923,86 L7.18290784,86 C6.52960589,86 6,85.3811732 6,84.7273399 L6,9.55160931 C6,7.59010964 7.58881763,6 9.5487235,6 L73.4512766,6 C75.4111823,6 77,7.59010964 77,9.55160931 Z" id="Rectangle" fill="#0A9AD8" fill-rule="nonzero"></path>
<path d="M77,89.8056802 L77,110.134529 C77,112.11582 75.7238703,114 73.7458927,114 L55.8305058,114 C55.1711798,114 55,112.66043 55,112 L55,89.5084229 C55,88.8479926 55.9805666,88 56.6398926,88 C57.0794432,88 63.57732,88 76.1335231,88 C76.7928488,88 77,89.14525 77,89.8056802 Z" id="Rectangle" fill="#FFCA3D" fill-rule="nonzero"></path>
<path d="M53,89.5047607 L53,111.526158 C53,112.186589 51.6593259,114 51,114 L32.3484913,114 C31.6891654,114 30,112.186589 30,111.526158 C30,97.0575332 30,89.7170673 30,89.5047607 C30,89.1863009 31.6615311,88 32.0029297,88 L51.1621094,88 C51.8214353,88 53,88.8443305 53,89.5047607 Z" id="Rectangle-Copy-5" fill="#FE5BA3" fill-rule="nonzero"></path>
<path d="M28,90 L28,112 C28,112.66043 26.6593259,114 26,114 L9,114 C7.02202225,114 6,113.11582 6,111.134529 L6,89.8056802 C6,89.14525 7.20715113,88 7.86647705,88 L26.1694942,88 C26.8288202,88 28,89.3395698 28,90 Z" id="Rectangle-Copy-6" fill="#4DC17B" fill-rule="nonzero"></path>
<path d="M41.3656958,92.5560538 C46.2043205,92.5560538 50.1287584,96.3592496 50.1287584,101.054127 C50.1287584,103.069033 49.4065002,104.921367 48.1993694,106.374661 C49.6034796,107.926483 50.2297735,110.054696 50.2297735,112.409524 C50.2297735,112.793785 50.2045197,113.630519 50.1540122,114 L32.5773794,114 C32.5268719,113.630519 32.5016181,112.793785 32.5016181,112.409524 C32.5016181,110.054696 33.1279119,107.926483 34.5320221,106.374661 C33.3248914,104.921367 32.6026332,103.069033 32.6026332,101.054127 C32.6026332,96.3592496 36.5270711,92.5560538 41.3656958,92.5560538 Z" id="Path" fill="#FFE934" fill-rule="nonzero"></path>
<path d="M35.5300673,106.874427 C35.6619508,106.666553 35.9370974,106.605129 36.1446243,106.737234 C36.6086526,107.032618 37.0997263,107.284407 37.6206979,107.492285 C38.7751269,107.951388 40.0502062,108.194849 41.3656958,108.194849 C42.6811854,108.194849 43.9562647,107.951388 45.1089166,107.492997 C45.6346668,107.281287 46.1304986,107.027678 46.5867673,106.737234 C46.7942941,106.605129 47.0694408,106.666553 47.2013243,106.874427 C47.3332078,107.082302 47.2718866,107.357909 47.0643598,107.490013 C46.5614652,107.810139 46.0169132,108.088667 45.4392689,108.321269 C44.1800966,108.822026 42.7935134,109.086778 41.3656958,109.086778 C39.9378782,109.086778 38.551295,108.822026 37.2916478,108.321079 C36.7184525,108.092363 36.1778208,107.815164 35.6670318,107.490013 C35.459505,107.357909 35.3981838,107.082302 35.5300673,106.874427 Z" id="Path" fill="#FF9000" fill-rule="nonzero"></path>
<ellipse id="Oval" fill="#000000" fill-rule="nonzero" cx="37.8806738" cy="100.487589" rx="1.33845047" ry="1.52719005"></ellipse>
<ellipse id="Oval-Copy-3" fill="#FFFFFF" fill-rule="nonzero" cx="37.5776284" cy="100.118108" rx="1" ry="1"></ellipse>
<ellipse id="Oval-Copy-2" fill="#000000" fill-rule="nonzero" cx="44.8507178" cy="100.487589" rx="1.33845047" ry="1.52719005"></ellipse>
<path d="M41.4162033,101.177288 C42.1687662,101.177288 42.5172681,101.482726 42.8051613,101.798017 L42.8405166,101.837428 L42.9566841,101.970442 L42.9920394,102.009853 L43.0273947,102.044338 C43.2395264,102.275879 43.4668104,102.458157 43.8708711,102.458157 C45.19922,102.458157 45.8255138,102.857197 45.840666,103.66513 L45.840666,103.689762 L45.840666,103.729173 C45.7901585,105.064233 43.3960998,105.837681 41.4566095,105.857387 L41.3960005,105.857387 L41.3707464,105.857387 L41.3454927,105.857387 C39.3959008,105.857387 36.9513346,105.079012 36.9008271,103.729173 L36.9008271,103.689762 C36.9008271,102.862123 37.5321716,102.458157 38.870622,102.458157 C39.2544796,102.458157 39.4767128,102.290659 39.6787431,102.078823 L39.7140984,102.044338 L39.7494537,102.009853 L39.784809,101.970442 L39.9009765,101.837428 C39.9060272,101.832502 39.9110778,101.822649 39.9161287,101.817722 L39.951484,101.778311 C40.2343263,101.472873 40.5828285,101.177288 41.3202389,101.177288 C41.3353911,101.177288 41.3555942,101.177288 41.3707464,101.177288 C41.380848,101.177288 41.4010511,101.177288 41.4162033,101.177288 Z" id="Path" fill="#FF4B00" fill-rule="nonzero"></path>
<path d="M44.2902005,103.331896 C44.514676,103.231372 44.7780041,103.33216 44.8783603,103.557011 C44.9787161,103.781863 44.8780973,104.045632 44.6536215,104.146156 C43.7850075,104.535136 42.6976887,104.726897 41.3909496,104.726897 C40.0842107,104.726897 38.9968916,104.535136 38.1282776,104.146156 C37.9038018,104.045632 37.803183,103.781863 37.9035388,103.557011 C38.003895,103.33216 38.2672231,103.231372 38.4916986,103.331896 C39.2345824,103.664572 40.2007594,103.834968 41.3909496,103.834968 C42.5811397,103.834968 43.5473167,103.664572 44.2902005,103.331896 Z" id="Path" fill="#921000" fill-rule="nonzero"></path>
<ellipse id="Oval-Copy-4" fill="#FFFFFF" fill-rule="nonzero" cx="44.4971649" cy="100.118108" rx="1" ry="1"></ellipse>
<path d="M70.8949759,50.0041797 C70.8949759,50.0120623 71.6193972,52.4693865 72.0003017,55.0309609 C72.36058,57.4538236 72.3784903,59.9893162 72.3784903,59.9744042 C72.4243721,61.5082851 72.4855479,63.5943627 69.2585219,66.8768674 C69.2891099,66.8615287 69.0597003,67.1069497 67.3314827,68.6101528 C69.9467501,74.2394949 70.6423464,80.6774339 70,86 L12,86 C11.3423596,80.5393847 12.0285146,74.1321234 14.5979003,68.5948138 C14.5826063,68.5794751 12.9614463,67.1529662 12.9767402,67.1683049 C11.2485225,65.4810361 9.53559871,63.256909 9.53559871,60.8487164 C9.53559871,60.8415363 9.35005086,59.4393285 9.58307734,56.6233709 C9.81610381,53.8074135 11.5849897,48.2555556 11.6920474,47.8260689 C15.8061233,33.2388635 29.8765688,16.0593993 34.6176969,17.1331158 C35.8412139,17.4092144 37.0494371,18.8817398 38.1506024,21.0598505 C38.8235366,22.4403431 39.6341168,24.679809 39.7870565,25.1246344 C42.4787938,25.0939568 42.0046808,25.1246344 42.2493842,25.1246344 C42.7846729,23.5447372 43.1517282,22.685764 43.1364342,22.7011028 C43.8858382,20.8757848 45.4764105,17.5779412 47.4034497,17.1331158 C52.2975175,16.0287217 67.3620705,34.4199517 70.8949759,50.0041797 Z" id="Path" fill="#FFFFFF" fill-rule="nonzero"></path>
<path d="M32.9005543,22.0030227 C33.9632333,21.9166069 34.963137,22.5361432 35.978631,23.6148879 C36.6603151,24.4308051 37.0102259,24.8507314 37.0283637,24.8746668 C37.4875608,25.480645 37.3693925,26.3447635 36.7644275,26.8047296 C36.1594625,27.2646955 35.296789,27.1463295 34.8375919,26.5403512 C34.5631227,26.1891291 34.4198088,26.0061091 34.4076495,25.9912914 L33.1728885,24.8178571 L33.1384887,24.798296 L32.0197051,26.2775265 C31.9500815,26.3939059 31.7084094,26.8657945 31.2946888,27.6931921 C30.9779248,28.3846418 30.1615433,28.6879542 29.47125,28.3706594 C28.7809567,28.0533646 28.4781515,27.235616 28.7949158,26.5441664 L29.0689613,25.9638374 C29.1878866,25.7204046 29.3830239,25.3563548 29.6543732,24.871688 C30.6704437,23.1393033 31.6883779,22.0919358 32.9005543,22.0030227 Z" id="Path" fill="#CABCB4" fill-rule="nonzero"></path>
<path d="M59.9250284,70.470417 C60.5907959,70.1042935 61.4268122,70.3481069 61.7923232,71.0149891 C62.1578345,71.6818714 61.9144291,72.5192879 61.2486619,72.8854114 C60.1708094,73.4781517 59.0331217,74.0465634 57.8643917,74.5832575 C55.8344814,75.4507908 54.7945054,75.8944644 54.7444634,75.9142781 L51.8208614,76.9938019 C51.5229846,77.0959534 50.0797605,77.5328586 47.491189,78.304518 C47.4452449,78.3164594 46.5898273,78.5127288 44.9249362,78.893326 C43.4299582,79.1856826 42.1080728,79.3443299 41.0564553,79.3443299 C39.7814992,79.3443299 38.1093584,79.1134956 36.2126274,78.6955434 L32.8971008,77.8402262 C32.8490086,77.8261773 31.6650748,77.4418378 29.3453003,76.6872075 C26.736758,75.6646865 25.3828749,75.131972 25.2836511,75.0890648 L21.8072286,73.4496944 C21.2548316,73.1588395 20.910981,72.9764413 20.7756767,72.9025001 C20.1089447,72.5381424 19.863328,71.7013738 20.2270764,71.0335251 C20.5908248,70.3656764 21.4261942,70.1196484 22.0929262,70.4840061 C22.7318509,70.8331674 23.3937206,71.1735498 24.0714476,71.5034171 L27.4172895,72.9989161 C27.488322,73.0280935 30.9737702,74.3390457 31.0442904,74.3632022 L35.1284016,75.6037967 C35.2146311,75.6264167 36.2946166,75.8645387 38.3683587,76.3181626 C39.4050158,76.4949659 40.317253,76.5893204 41.0564553,76.5893204 C41.7147312,76.5893204 42.510705,76.5135554 43.4097792,76.3706031 C46.5152503,75.6523601 48.0902116,75.2867992 48.134663,75.2739207 L51.0179006,74.3573626 L54.4143724,73.0773393 C57.0968824,71.8689821 58.7409958,71.1041222 59.3467129,70.7827604 L59.7335668,70.5750708 C59.7976103,70.5402751 59.8614333,70.5053898 59.9250284,70.470417 Z" id="Path" fill="#CABCB4" fill-rule="nonzero"></path>
<path d="M40.0929357,54.7745486 C41.2246887,56.3697845 43.3046677,57.4895174 45.7517016,57.6275669 L45.7517016,58.3178131 C45.7517016,62.6740343 44.4670088,66.20196 40.9952794,66.20196 C37.5694319,66.20196 36.269445,62.7353895 36.238857,58.4405236 C36.238857,57.8269714 36.238857,57.453727 36.238857,57.3207907 C37.8906051,56.8759652 39.2517677,55.9709755 40.0929357,54.7745486 Z" id="Path" fill="#F23C57" fill-rule="nonzero"></path>
<path d="M26.6340641,50.4251868 C27.3745179,50.2558692 28.1118037,50.7198721 28.2808382,51.461566 C28.7065264,53.3294131 29.7587676,54.9294245 31.2167327,55.89599 C34.1148977,57.8173434 37.83215,56.6634823 39.5688565,53.2180259 C39.9111724,52.5389048 40.7382899,52.266335 41.4162753,52.6092239 C42.0942609,52.9521132 42.366375,53.7806161 42.0240593,54.459737 C39.5681884,59.3319447 34.0158382,61.0554331 29.6987457,58.1933943 C27.6315698,56.8229494 26.1777382,54.6122898 25.5994178,52.0747189 C25.4303833,51.333025 25.8936103,50.5945044 26.6340641,50.4251868 Z" id="Path" fill="#000000" fill-rule="nonzero"></path>
<path d="M52.9909044,51.461566 C53.1599388,50.7198721 53.8972246,50.2558692 54.6376784,50.4251868 C55.3781321,50.5945044 55.8413591,51.333025 55.6723247,52.0747189 C55.0940043,54.6122898 53.6401726,56.8229494 51.5729968,58.1933943 C47.2559044,61.0554331 41.7035539,59.3319447 39.2476833,54.459737 C38.9053676,53.7806161 39.1774816,52.9521132 39.855467,52.6092239 C40.5334526,52.266335 41.3605702,52.5389048 41.7028861,53.2180259 C43.4395926,56.6634823 47.1568449,57.8173434 50.0550098,55.89599 C51.5129747,54.9294245 52.5652162,53.3294131 52.9909044,51.461566 Z" id="Path-Copy" fill="#000000" fill-rule="nonzero"></path>
<path d="M40.7505761,54.8205651 C42.8611428,54.8205651 45.8128774,51.7221261 45.8128774,49.09919 C45.8128774,46.476254 43.9776021,46.2001555 40.6741062,46.2001555 C37.3706103,46.2001555 35.5353347,46.476254 35.5353347,49.09919 C35.5353347,51.7221261 38.6400091,54.8205651 40.7505761,54.8205651 Z" id="Oval" fill="#000000" fill-rule="nonzero"></path>
<path d="M30.8553824,39.7731952 C28.7448154,40.3407312 27.5671803,42.7949403 27.8424717,43.8226404 C28.1177631,44.8503404 30.1365662,45.5405868 32.2471329,44.9730509 C34.3576996,44.4055149 35.7341563,42.6722298 35.4894529,41.7672401 C35.2447496,40.8469117 32.9659491,39.2056593 30.8553824,39.7731952 Z" id="Oval-Copy-3" fill="#000000" fill-rule="nonzero"></path>
<path d="M51.1963522,39.7731952 C53.3069192,40.3407312 54.4845541,42.7949403 54.209263,43.8226404 C53.9339716,44.8503404 51.9151685,45.5405868 49.8046018,44.9730509 C47.6940348,44.4055149 46.3175784,42.6722298 46.5622817,41.7672401 C46.8069851,40.8622507 49.0704915,39.2056593 51.1963522,39.7731952 Z" id="Oval-Copy-4" fill="#000000" fill-rule="nonzero"></path>
<path d="M45.7813355,23.7146376 C46.8371928,22.5692392 47.8617144,21.9143328 48.9415635,22.0021877 C50.1390566,22.0900661 51.1399665,23.0960787 52.1293061,24.7546436 C52.4600732,25.3399201 52.7006813,25.7892418 52.8511305,26.1026089 C52.9734037,26.3628448 53.0423593,26.5100306 53.0579974,26.5441664 C53.3747617,27.235616 53.0719564,28.0533646 52.3816632,28.3706594 C51.6913699,28.6879542 50.8749883,28.3846418 50.5582241,27.6931921 L49.8271096,26.2672316 C49.491413,25.694874 48.783275,24.8567879 48.7380005,24.8181883 C48.3488479,25.0798893 48.05713,25.3133423 47.8628472,25.5185476 L47.0153213,26.5403512 C46.5561242,27.1463295 45.6934506,27.2646955 45.0884857,26.8047296 C44.4835207,26.3447635 44.3653523,25.480645 44.8245494,24.8746668 L45.7813355,23.7146376 Z" id="Path-Copy-2" fill="#CABCB4" fill-rule="nonzero"></path>
<path d="M31.2896089,42.4790225 C31.8868691,41.8800102 32.0805392,41.1030581 31.7221831,40.7436509 C31.3638265,40.3842439 30.5891458,40.5784819 29.9918848,41.1774934 C29.3946246,41.7765057 29.2009544,42.5534578 29.5593106,42.912865 C29.9176672,43.2722723 30.6923479,43.078034 31.2896089,42.4790225 Z" id="Oval-Copy-7" fill="#FFFFFF" fill-rule="nonzero"></path>
<path d="M49.6453766,42.6009969 C50.3537945,42.1396445 50.7043371,41.4200626 50.4283355,40.9937656 C50.1523337,40.5674683 49.3543034,40.5958857 48.645885,41.0572372 C47.9374671,41.5185893 47.5869243,42.2381712 47.8629261,42.6644685 C48.138928,43.0907656 48.9369579,43.0623482 49.6453766,42.6009969 Z" id="Oval-Copy-8" fill="#FFFFFF" fill-rule="nonzero"></path>
<path d="M66.9321135,93.0941704 C71.9620717,93.0941704 74.6224662,96.5136105 74.8597814,100.299269 C75.0903297,103.97698 74.8864994,109.734446 73.5737187,114 L60.4683894,114 C59.8201299,110.641304 59.0583435,106.103392 59.0708333,102.745914 C58.2703012,102.28342 57.7397077,101.942959 57.4790528,101.724531 C56.5230255,100.92338 56.0951503,100.289474 56.1653772,99.9268843 C56.4555779,98.4285457 57.6477029,98.1848639 59.3465338,98.3764862 C60.236099,95.4301945 62.7757854,93.0941704 66.9321135,93.0941704 Z" id="Path" fill="#4CBFEA" fill-rule="nonzero"></path>
<path d="M56.1519564,100.373352 C57.2689339,100.380813 63.9645721,102.365468 64.0937051,102.38832 C65.1453207,102.574417 65.8769584,102.36382 66.288618,101.756529 L66.2944157,102.136712 C66.1890419,109.90225 66.1357887,113.793885 66.134656,113.811617 L60.1997673,113.811617 C59.2619825,110.434873 58.9120016,106.12291 58.9244911,102.765448 L58.8393841,102.715796 C57.488709,101.858656 56.8090672,101.426269 56.8004585,101.418636 L56.7621593,101.384158 C56.4340734,101.084255 56.2067832,100.755525 56.1519564,100.373352 Z" id="Path" fill="#FFFFFF" fill-rule="nonzero"></path>
<path d="M68.5645035,97.8576051 C69.8975496,98.1911701 70.7084588,99.5456177 70.3762719,100.882752 C70.3182089,101.11647 70.0819904,101.258787 69.8486634,101.200627 C69.6153362,101.142467 69.4732566,100.905853 69.5313195,100.672135 C69.7475348,99.8018158 69.2199484,98.9205974 68.3534746,98.7037819 C67.4872995,98.4870414 66.6098296,99.0161801 66.3936885,99.8862008 C66.3356256,100.119919 66.099407,100.262236 65.8660801,100.204076 C65.6327528,100.145916 65.4906732,99.9093016 65.5487362,99.6755836 C65.8809975,98.338151 67.2311585,97.5239664 68.5645035,97.8576051 Z" id="Path" fill="#000000" fill-rule="nonzero"></path>
<path d="M65.9592058,101.164067 C66.1994035,101.174942 66.3853214,101.378802 66.3744647,101.619402 C66.3292722,102.620952 65.5149871,102.987632 64.2373853,102.761546 C64.1369462,102.743771 63.7052745,102.62541 62.9423702,102.406465 L61.4735479,101.894876 C59.6433036,101.262038 58.1973547,100.884541 56.4669046,100.671696 C56.2282541,100.642342 56.058546,100.424757 56.0878509,100.185707 C56.1171558,99.9466569 56.3343767,99.7766645 56.5730272,99.8060185 C58.2987428,100.018282 59.7490241,100.386981 61.5242211,100.99039 L63.1800754,101.566305 C63.8854556,101.772763 64.2883865,101.884883 64.3888678,101.902665 C65.1937817,102.045105 65.4720533,101.935096 65.5024952,101.611029 C65.646837,101.305804 65.7990738,101.156817 65.9592058,101.164067 Z" id="Path" fill="#1683AC" fill-rule="nonzero"></path>
<path d="M69.2123975,104.194477 C69.3360842,104.004652 69.5823186,103.943183 69.7787275,104.046354 L69.8149281,104.067637 L71.8902236,105.4244 C72.0010659,105.496865 72.0722933,105.615371 72.0854302,105.74574 L72.0876325,105.789589 L72.0876325,111.265095 C72.0876325,111.542059 71.8332283,111.748859 71.5626492,111.691844 C68.7210066,111.093063 67.3076337,108.622903 67.3076337,104.432827 C67.3076337,104.191981 67.5025513,103.996687 67.7429945,103.996687 C67.9834375,103.996687 68.178355,104.191981 68.178355,104.432827 C68.178355,107.939415 69.1827936,109.983657 71.1801596,110.682591 L71.2166861,110.694888 L71.2166861,106.025381 L69.3390246,104.798017 C69.1495176,104.674123 69.0881505,104.427476 69.1911501,104.230738 L69.2123975,104.194477 Z" id="Path-11" fill="#1683AC" fill-rule="nonzero"></path>
<path d="M73.5439784,99.765205 C73.3105091,99.8227905 73.0746408,99.6798917 73.0171516,99.4460314 C72.9491623,99.169458 72.8539178,98.8886295 72.7326859,98.6085366 C72.4652919,97.9907521 72.0768,97.3881683 71.5871927,96.8422213 C71.097609,96.2963169 70.5414024,95.8454825 69.9575326,95.5139879 C69.6928528,95.3637148 69.4247424,95.2393098 69.1580126,95.142558 C68.9319365,95.0605528 68.8150327,94.8104965 68.8969008,94.5840417 C68.9787689,94.3575869 69.2284071,94.2404874 69.4544833,94.3224926 C69.7677806,94.4361358 70.0802649,94.5811305 70.3868886,94.7552174 C71.0533499,95.1336038 71.6831002,95.6440466 72.2349403,96.2593639 C72.7867267,96.8746526 73.226468,97.5567291 73.5315572,98.2616042 C73.6719056,98.5858633 73.7828282,98.9129193 73.8626181,99.2374959 C73.9201076,99.4713562 73.7774475,99.7076196 73.5439784,99.765205 Z" id="Path" fill="#FFFFFF" fill-rule="nonzero"></path>
<path d="M17.0566343,91.2107623 C19.1691504,91.2107623 21.9975154,93.7271446 23.2722409,96.6746631 C24.8279544,100.271904 25.7864078,105.413595 25.7864078,106.50465 C25.7864078,106.966087 25.4556152,107.451901 24.9150599,107.925826 L24.0704404,108.554105 C24.6045043,109.714469 24.8510749,111.064375 24.8510749,112.504907 C24.8510749,112.85669 24.8280333,113.660466 24.7833831,114 L9.28534584,114 C9.24069562,113.660466 9.21765404,112.85669 9.21765404,112.504907 C9.21765404,111.099726 9.45227133,109.780777 9.95952763,108.63978 L9.75947568,108.502698 C8.8952793,107.890112 8.32686084,107.205759 8.32686084,106.50465 C8.32686084,105.249603 9.2775668,100.179388 10.8058353,96.649796 C12.0793069,93.7086667 14.9441182,91.2107623 17.0566343,91.2107623 Z" id="Path" fill="#112F40" fill-rule="nonzero"></path>
<path d="M17.0705483,101.691758 C17.7997477,101.691758 18.2881087,101.590751 18.6932669,101.472919 L19.4304722,101.242282 C19.7145196,101.161514 20.0111192,101.104267 20.3952178,101.110565 C22.2655508,101.141231 22.4701879,105.376799 22.4565026,107.336843 C22.4459332,108.850616 18.4819034,110.204057 17.0566343,110.204057 C15.6313652,110.204057 11.4446371,108.850616 11.4446371,107.271601 L11.4479151,106.807635 C11.4751714,105.013632 11.7184861,101.090885 13.7604969,101.090885 C14.0173964,101.090885 14.2442386,101.131504 14.4705466,101.19162 L15.4535958,101.488866 C15.8711487,101.600365 16.3769196,101.691758 17.0705483,101.691758 Z" id="Mask" fill="#000000" fill-rule="nonzero"></path>
<path d="M13.7604969,101.090885 C14.0173964,101.090885 14.2442386,101.131504 14.4705466,101.19162 L15.4535958,101.488866 C15.8711487,101.600365 16.3769196,101.691758 17.0705483,101.691758 C17.7997477,101.691758 18.2881087,101.590751 18.6932669,101.472919 L19.4304722,101.242282 C19.7145196,101.161514 20.0111192,101.104267 20.3952178,101.110565 C20.814183,101.117434 21.149566,101.3353 21.4176357,101.691319 L21.343961,103.485686 L21.0206641,105.647471 C20.229126,108.14204 18.9114691,108.850616 17.0789041,108.850616 C15.2463391,108.850616 13.939893,108.14204 13.1483549,105.647471 C13.0467586,105.090782 12.9484068,104.315482 12.8532995,103.321572 C12.809118,102.859857 12.7420749,101.530409 12.7417149,101.510236 C13.0182372,101.246586 13.3536701,101.090885 13.7604969,101.090885 Z" id="Path" fill="#FFFFFF" fill-rule="nonzero"></path>
<path d="M17.0566343,107.767862 C18.3357602,107.767862 19.3726967,106.459536 19.3726967,105.692586 C19.3726967,104.396945 18.3357602,104.158685 17.0566343,104.158685 C15.7775084,104.158685 14.740572,104.396945 14.740572,105.692586 C14.740572,106.459536 15.7775084,107.767862 17.0566343,107.767862 Z" id="Oval" fill="#0D222E" fill-rule="nonzero"></path>
<path d="M22.5514943,109.249521 C22.746438,109.141124 22.9921973,109.211549 23.100413,109.406819 C23.2086287,109.602089 23.1383217,109.84826 22.943378,109.956657 C22.472756,110.218343 21.6225831,110.59835 20.3928594,111.096677 C20.2765672,111.138352 20.0180506,111.224729 19.6173098,111.355806 C18.6005361,111.670521 17.6718474,111.857184 17.0582185,111.857184 C16.6832333,111.857184 15.8278904,111.690295 14.4921899,111.356519 C13.4164068,110.97155 12.8493324,110.766971 12.7909667,110.742782 C11.9338323,110.351522 11.3869967,110.090619 11.15046,109.960075 C10.9551746,109.852297 10.8840897,109.60635 10.9916875,109.410737 C11.0992853,109.215125 11.3448207,109.143921 11.5401061,109.251699 C11.9865528,109.498093 12.4715555,109.729708 12.9664902,109.939445 L15.3914133,110.772958 C16.0642095,110.948601 16.6520132,111.048401 17.0582185,111.048401 C17.4641206,111.048401 18.0500138,110.948543 18.7199873,110.772745 L19.8980163,110.413534 C20.4687448,110.216917 22.4405277,109.311223 22.5514943,109.249521 Z" id="Path" fill="#000000" fill-rule="nonzero"></path>
</g>
</svg>

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 117 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 114 KiB

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 MiB

After

Width:  |  Height:  |  Size: 1.1 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 MiB

After

Width:  |  Height:  |  Size: 1.3 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 MiB

After

Width:  |  Height:  |  Size: 1.2 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 MiB

After

Width:  |  Height:  |  Size: 1.4 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 MiB

After

Width:  |  Height:  |  Size: 1.4 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 862 KiB

After

Width:  |  Height:  |  Size: 1.2 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 98 KiB

After

Width:  |  Height:  |  Size: 594 KiB

View File

@@ -291,6 +291,8 @@ div.selected {
.default .text {
word-wrap: break-word;
line-height: 150%;
unicode-bidi: plaintext;
text-align: start;
}
.default .reply_to,
.default .media_wrap {

Binary file not shown.

After

Width:  |  Height:  |  Size: 359 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 503 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 878 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1010 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 551 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 848 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 421 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 718 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 165 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 200 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 475 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 321 B

After

Width:  |  Height:  |  Size: 453 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 637 B

After

Width:  |  Height:  |  Size: 973 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 717 B

After

Width:  |  Height:  |  Size: 946 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 651 B

After

Width:  |  Height:  |  Size: 710 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 KiB

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 666 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 456 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 762 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 947 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 971 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 554 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 313 B

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