Commit Graph

50 Commits

Author SHA1 Message Date
Evgenii Zheltonozhskii 49982a33a5 Pre-reformat fixes 2018-06-06 11:25:23 +03:00
Alex 69661217d2
Remove PCH (#148)
This commit brings many changes:

1. Remove cotire;
2. Remove PCH files (stdafx.xxx) and mentions;
3. Rearrange and clean includes:
3.1. Remove core includes path, use full header path core/xxx;
3.2. Move object_ptr to separate file base/object_ptr.h;
3.3. Add missing includes;
5. Add forward decls;
6. Get rid of some Qt private parts;
7. Fix ALL compilation errors after removing cotire on Windows, Linux, MacOS.

Closes #133.
Related to #96.
2018-06-04 16:25:31 +03:00
leha-bot ed0e5b9958 Reorganize #include's in ui/text/text.cpp
Now it compiles faster

Related to #16
2018-04-17 22:06:33 +03:00
leha-bot 56cbcdcf94 Get rid of qharfbuzz_p private dependency
It's used for weird conversion from "QChar::Script" to internal
HB_Script and back.

Looks like it was in old Qt on this mirror link:
39b4955da3?view=parallel

Related to #96 #27 #16
2018-04-17 22:06:33 +03:00
Pavel Perekhozhikh 40f8f0939a [Refactoring] change qt math function to cmath analog 2018-02-28 22:12:25 +02:00
Berkus Decker e9184f9ab5 Replace non-standard types with Qt equivalents 2017-12-20 14:38:02 +02:00
Berkus Decker 941b306f7a Suppress warnings for unhandled enum values 2017-12-20 14:38:02 +02:00
Berkus Decker cf7ca3df15 Subject: [PATCH] Fixed build under Fedora using rpmbuild and mock.
From dba8b962c805af477ceee699aa1c05143aa19d43 Mon Sep 17 00:00:00 2001
From: Vitaly Zaitsev <vitaly@easycoding.org>
Date: Fri, 31 Mar 2017 14:29:58 +0200
2017-12-20 14:38:02 +02:00
visuve 8c92f42de3 Fix uninitialized values
- Use C++11 default member initializers

Signed-off-by: Veli-Matti Visuri <veli-matti.visuri@cerescon.fi> (github: visuve)
2017-09-28 18:23:42 +03:00
John Preston 65371ec1b8 Fix selected text render on Retina.
QPainter::viewport() can be a too large rect to be passed as a
clipping region to QPainter on Retina displays.

QPainter in case of Retina displays tries to transform QRegion using
scale matrix and fails with "QRegion: creating region from big
polygon failed" warning message and disables painting completely.
2017-07-26 15:51:24 +03:00
John Preston 8d43bdb084 Use std::unique_ptrs for ITextBlocks. 2017-07-06 18:59:47 +03:00
John Preston 148c04fb41 Fix multiline monospace pre blocks editing.
Now we pass current flags and lnkIndex to the NewlineBlock, so that
we don't get one multiline pre block split to separate line blocks.
2017-07-06 17:10:33 +03:00
John Preston eaf91bba58 Parse bold / italic markdown entities. 2017-07-06 16:44:11 +03:00
John Preston da0d78135d Some refactoring in working with text entities.
Also move this code to TextUtilities namespace.
2017-07-06 14:37:42 +03:00
John Preston e39b95175b Handle channel event log mouse events. 2017-06-30 09:21:42 +03:00
John Preston 110e7c8074 Finalize rename / move. 2017-06-29 11:39:38 +03:00
John Preston 297856db32 Load and use Segoe UI [Semibold] if no Open Sans.
Sometimes Open Sans Semibold fails to load properly on the latest
Windows Creators Update. In that case try to load Segoe UI instead.

An attempt to fix #3276.
2017-04-30 19:03:12 +03:00
John Preston 5444b8166c Finalize rename / move of files. 2017-04-07 18:13:18 +03:00
John Preston 83720d8789 Finalizing file renaming. 2017-03-04 13:23:56 +03:00
John Preston 08167a6a91 Removed #include "stdafx.h" from all files.
Currently the build without implicitly included precompiled header
is not supported anyway (because Qt MOC source files do not include
stdafx.h, they include plain headers).

So when we decide to support building without implicitly included
precompiled headers we'll have to fix all the headers anyway.
2017-03-04 12:27:52 +03:00
John Preston fb230a443e Fixed text with right bearings display.
Sometimes Text::_maxWidth was not accumulated correctly because
the intermediate text blocks had negative right bearing larger
than the whole width of the next text block, so the final computed
line width was less than some intermediate value. Now we accumulate
the _maxWidth value after each block making this value correct.
2017-02-28 19:38:23 +03:00
John Preston 5195b4d3ef RTL strings with trailing spaces render fix.
Commit 8d354382a4 introduced a regression in RTL phrases display.
When an RTL line had trailing spaces we started displaying them in
front of the text still assuming counted line width value that did
not include those trailing spaces.

Line width is not including trailing spaces width because it is
allowed to fit in the line any number of spaces.

Also text block "left padding" entity was eliminated. If we have
some spaces in the start of the text block (for example a text block
after a link) we just add an empty word and mark those spaces as its
right padding.
2017-02-26 21:02:45 +03:00
John Preston 7fa1986b27 Version 1.0.14: crash fix in text rendering.
Fix a regression introduced in 8d354382a4 which caused an overflow
in _parAnalysis access. We were resizing _parAnalysis array for a
line width without the pending newline character while we used it
for painting a line including the pending newline character. It was
not a problem before, when we were trimming them from the end of
the string, but it results in a buffer overflow and crashes in the
lastest versions. So now we just don't include the newline in the
painted string, so it has exactly the same size as _parAnalysis.
2017-02-20 23:58:54 +03:00
John Preston 8d354382a4 Text selection display fixes.
- Use QPainter current pen for selected text in cases we
didn't specify it explicitly in the TextPalette.
- Better rounding of QRectF from QFixed values to QRect selected
background filling areas.
- Using QPainter::viewport() instead of random huge QRect() in
clipping, because it fails to apply this huge QRect() clip region
in Retina paint devices: 2x scale QMatrix::map() is not defined for
QRegion-s having rects with sum of dimensions larger than 100000.
2017-02-16 17:07:16 +03:00
John Preston 9757489645 Moved to the latest emoji set.
Also the old MetaEmoji project was converted to codegen_emoji.
All emoji now use full string identifiers for local storage.
2017-02-15 21:27:31 +03:00
John Preston 8e3274cd8f Colors added in palette for selected messages.
User names in groups, text and links in messages and names
in files and shared contacts not can have different colors
in plain inbox / outbox messages and in selected messages.

Now we can use a separate color for selected parts in Text.
2017-02-09 16:46:14 +03:00
John Preston d1b9b8e3a3 Alpha 1.0.4: Click and drag to reorder pinned chats. 2017-01-30 18:27:13 +03:00
John Preston 7fb1463c43 Version 1.0 stable: bump copyright date to 2017. 2017-01-11 23:02:13 +04:00
John Preston ef927c8465 Theme preview ready.
Also style::color is now copyable, constructed only inside a palette.
Also macOS setup new background ready.
2016-12-30 17:53:05 +04:00
John Preston 7fa274a68e Improved ripple animation colors and styles for different buttons.
Also moved FlatLabel and LabelSimple to ui/widgets/labels module.
Also moved ScrollArea to ui/widgets/scroll_area module.
2016-12-30 17:52:10 +04:00
John Preston 2a3fd0066d Closed beta 10019001: style::color copy is denied, only const refs. 2016-12-30 17:51:33 +04:00
John Preston 538ffb9727 Moved History[Media] classes to history_media_types module. 2016-09-28 13:15:03 +03:00
John Preston 963000386f Fixed crash in BotKeyboard resize. Fixed elided single-line Text layout. 2016-06-17 16:27:21 +03:00
John Preston 0fa6b5bc90 Unread bar in a service message display fixed.
Elided text with a skip block in the end display fixed.
2016-06-13 13:42:55 +03:00
John Preston 19cacd0efb New layout of service messages (complex shape of a bubble). 2016-06-09 14:51:24 +03:00
John Preston 23a598ba3d Crash in Qt fixed for OS X. Edited badge removed for bot messages.
Sticker with reply layout fixed once more.
2016-06-08 21:46:37 +03:00
John Preston 8b2c351933 Phone numbers starting with '0' are not formatted with '+'.
Sticker with reply layout fixed. Report box title corrected.
Elided text display sometimes didn't restore last block, fixed.
Removed non-existent class diagram file from MSVC project.
2016-06-08 19:40:33 +03:00
John Preston 520260f207 Merge branch 'profile' into drafts
Conflicts:
	Telegram/SourceFiles/app.cpp
	Telegram/SourceFiles/codegen/style/processor.cpp
	Telegram/SourceFiles/history.cpp
	Telegram/SourceFiles/historywidget.cpp
	Telegram/SourceFiles/mainwidget.cpp
	Telegram/SourceFiles/mainwidget.h
	Telegram/SourceFiles/profilewidget.cpp
	Telegram/SourceFiles/profilewidget.h
	Telegram/Telegram.vcxproj
	Telegram/Telegram.vcxproj.filters
2016-06-06 18:16:52 +03:00
John Preston cd2615d8d0 Cloud stored message drafts support added. 2016-06-03 21:24:27 +03:00
John Preston ab59ef8498 FlatLabel now can allow to select text and copy to clipboard.
Used for peer name in the new profile cover widget.
2016-05-26 18:31:20 +03:00
John Preston 3e5f51f45a Everywhere TextWithTags and TextWithEntities are used.
Copy tags from messages to clipboard, to drag mime data.
Sorting entities while processing (links, monospace, mentions).
2016-05-06 20:33:48 +03:00
John Preston 45143c40c9 FlatTextarea handles tags on insertFromMime and tags editing.
Fixed dependent messages update when message was edited.
Fixed entities parsing in Text when they follow one after another.
2016-05-04 19:46:24 +03:00
John Preston 5f440a0cbe Merge branch 'dev' into mentions
Conflicts:
	Telegram/SourceFiles/core/version.h
	Telegram/Telegram.vcxproj.filters
2016-05-04 13:21:04 +03:00
John Preston dff5765f9f 0.9.47 alpha: fixed crash in text processing (Qt pach updated). 2016-05-02 16:42:09 +03:00
John Preston 21f462a77e Mention names support added to FlatTextarea, messages.
Copy of mention names to clipboard done, pasting started.
2016-04-30 20:04:14 +03:00
John Preston af248a6714 EntityInText made class instead of struct. Scheme updated.
No left trim of monospace text block when sending / displaying text.
New entity type (mention name) introduced, but not supported yet.
2016-04-29 15:00:48 +03:00
John Preston 390a1b0754 Some improvements for winrt. 2016-04-26 16:00:23 +03:00
John Preston 18d8666312 Moved to g++ 4.9, fixed some warnings, codegen used for Linux build. 2016-04-19 16:52:51 +03:00
John Preston b61c0941ef Some better source organization. Removed C++11 STL usage (old OS X). 2016-04-15 12:59:02 +03:00
John Preston 68a9a0a12e Text copy from HistoryItem/HistoryMedia/combined is done and tested.
Moved text module to ui/text/ and split it to several modules.
Xcode build currently broken.
2016-04-14 14:00:23 +03:00