| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
It was previously not possible to render text (QPainter::drawText)
in a secondary thread on Symbian, it always resulted in some
kind of panic. This patch corrects it. For S60 5.0 and earlier
the behavior is not changed, threaded text rendering is only
supported on Symbian^3 and newer. This also means
QFontDatabase::supportsThreadedFontRendering() will return
true from now on, but only on Symbian^3 and higher.
Task-number: QTBUG-18516
Reviewed-by: mread
(cherry picked from commit 0c62e02b80570bf8b92eff7acceb9018df61c89e)
(cherry picked from commit 13e7d402c438fd2c527dbc302cf1103d5c835a2f)
Reapplied after bad v4.7.4 merge
|
|\
| |
| |
| |
| |
| | |
4.7-integration
* '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-1:
|
|\ \
| | |
| | |
| | |
| | | |
* '4.7' of scm.dev.nokia.troll.no:qt/qt-qml:
Make it easier to select words at the start of a line.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
QTextControl's word selection will only include a word if the cursor
position is past the mid point of the word. This can make it
difficult to select words near the edges of the screen on touch
devices. For the TextEdit word selection mode select a word ignore
the relative position within a word.
Change-Id: I2bc61376f663836fedd7e157448f0b565a64d485
Task-number: QT-5206
Reviewed-by: Martin Jones
|
|\ \ \
| |_|/
|/| |
| | |
| | |
| | |
| | |
| | |
| | | |
4.7-integration
* '4.7' of scm.dev.nokia.troll.no:qt/qt-s60-public:
Symbian: Not possible to catch RequestSoftwareInputPanel in eventFilter
Exact word bubble doesn't disappear when screen is tapped (fix part 2)
Make text rendering working outside the gui thread on Symbian.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
It was previously not possible to render text (QPainter::drawText)
in a secondary thread on Symbian, it always resulted in some
kind of panic. This patch corrects it. For S60 5.0 and earlier
the behavior is not changed, threaded text rendering is only
supported on Symbian^3 and newer. This also means
QFontDatabase::supportsThreadedFontRendering() will return
true from now on, but only on Symbian^3 and higher.
Task-number: QTBUG-18516
Reviewed-by: mread
(cherry picked from commit 0c62e02b80570bf8b92eff7acceb9018df61c89e)
|
| | |
| | |
| | |
| | | |
Done-with: mae
|
|\ \ \
| |/ /
| | |
| | |
| | |
| | |
| | |
| | | |
4.7-integration
* '4.7' of scm.dev.nokia.troll.no:qt/qt-s60-public:
Fix compile errors on S60 3.2
Fix to QGLWidget rendering with VG graphics system
|
| | |
| | |
| | |
| | |
| | | |
Task-number: QTBUG-20743
Reviewed-by: Liang Qi
|
|\ \ \
| | |/
| |/|
| | |
| | | |
* '4.7' of scm.dev.nokia.troll.no:qt/qt-qml:
Move cursorDelegate with the mouse selection of read only text input.
|
| | |
| | |
| | |
| | |
| | |
| | | |
Change-Id: Iae4b2f9f6c9a7da7ec0e194b2568fb3a6da8ea71
Task-number: QTBUG-19109
Reviewed-by: Martin Jones
|
|\ \ \
| | |/
| |/|
| | |
| | |
| | |
| | | |
4.7-integration
* '4.7' of scm.dev.nokia.troll.no:qt/qt-s60-public:
Detect linked fonts by name (insead of via CLinkedTypeface* Api)
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The detection of Linked Fonts via CLinkedTypeface* Api does not
work in all cases. It works in QML apps, but not in QWidgets based
apps. The reason is still unclear.
This commit replaces the CLinkedTypeface* Api based code of commit
fa344b355d311fce7954e2fd1a22a87a88194783 whith a simple type face
anme analysis. Assumption is that the names of Linked Fonts always
end with "LF" and are all upper case.
This patch has been tested by more people than just me, but it is
too dirty to mention the others as reviewer. I take the shame and
blame.
Task-Number: QTBUG-20007
|
|\ \ \
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
4.7-integration
* '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-2:
Revert binary search in QTextEngine::findItem
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
It's part of c9607f069f0fb98021daf0af9f1d1b2981018e0c which caused
crash in certain cases.
Task-number: QTBUG-17209
Reviewed-by: Gunnar Sletta
|
|\ \ \ \
| |/ / /
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
4.7-integration
* '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-2:
Save previous font engine for right bearing adjustment
Fix compilation under OSX 10.7 or using llvm-gcc.
Fix typo in QFontDialog docs
Reset previousGlyph once we reached a new text item
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
In last fix I forgot that fd818312 was for saving and restoring the
right bearing (of last visible glyph) when a LineSeparator was hit
(which can have a different font engine but usually not visble),
thus we can't reset previousGlyph in that case. To make sure we
still get correct right bearing from the font engine used to shape
previousGlyph, we need to save that font engine as well. It does
make the code more complicated than simply saving the right bearing
when a QScriptItem boundary is hit, so hopefully it's an optimization
worth to be made (following e1915815).
Task-number: QTBUG-20423
Reviewed-by: Eskil
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
The bug was introduced in fd818312. Before that, previousGlyph
is only saved in the same text item. After we moved it to
LineBreakHelper struct, it will cause crash if the font engine
in the new text item no longer contains the sub engine required
by previousGlyph.
Task-number: QTBUG-20243
Reviewed-by: Eskil
|
|\ \ \ \
| |/ / /
|/| / /
| |/ /
| | |
| | |
| | | |
4.7-integration
* '4.7' of scm.dev.nokia.troll.no:qt/qt-s60-public:
Symbian^3 workaround: Avoid usage of linked fonts.
|
| |/
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
"Linked Fonts" are a new feature in Symbian^3, first used in SR11.1.
This patch prevents Qt from using linked fonts in any way.
Avkon based applications benefit from Linked Fonts because they can now
transparently render multi-script text, e.g. Latin/Chinese/Japanese (Qt
does that by its own and calls the feature 'font merging'). From Qt's
poing of view, Linked Fonts are a severe regression in Symbian's API.
1 Font table Api for linked fonts is extremely slow
2 'cmap' tables do not seem to reflect the "linkage", causing garbled
text or crashes.
3 Linked fonts appear with cryptic type face names, and are redundant
since they are just compounds of the other, real fonts.
This patch adds a detection of Linked Fonts using
CLinkedTypefaceSpecification and prevents their inclusion into
QFontDataBase. Furthermore, it detects if the Symbian System font is a
Linked font and if needed tries to fall back to a classical Symbian
system font, e.g. "Nokia Sans S60" or "Series 60 Sans". Fallback to
"Pure" will need to be added, later on.
Task-Number: QTBUG-20007
Co-authored-by: Miklos Vlasa
Reviewed-by: mread <qt-info@nokia.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Since the attributes() call might resize the layout and therefore
delete the previous data, the logClusters pointer might be dangling
at this point. We need to reget it to make sure it's valid.
Task-number: QTBUG-20310
Reviewed-by: Jiang Jiang
|
| |
| |
| |
| |
| | |
Reviewed-by: TrustMe
(cherry picked from commit 244620438700464a862ceab7c881974a5b1d1fea)
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
So that if these font engines are deallocated elsewhere (by
QFontCache for instance), we can still access them in QTextEngine.
Task-number: QTBUG-17603
Reviewed-by: Eskil
(cherry picked from commit 6e23fb69e441871829765ff512e90fed17b6798d)
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
When laying out text, a significant amount of time was being spent
querying for the font engine. This patch:
* changes the layout to only query for the engine when a new script item
is encountered.
* adds an internal cache of the previous result to
QTextEngine::fontEngine(). This catches the important case of multiline
text with few font engine changes.
With these changes layout costs are now approximately 60% of what they
were previously, as measured by the text layout benchmarks.
Reviewed-by: Eskil Abrahamsen Blomfeldt
(cherry picked from commit 0c56bef89b6e3fe4c9fb32eb8b51a6ea316a89fa)
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Loading app fonts will clear the application font cache, but
QFontPrivate::engineWithScript will try to load the font again,
in Mac the font engine used here must be the one used for shaping,
because subsequent sub font engines may be added to it during the
shaping process (QCoreTextFontEngineMulti::stringToCMap). That is
why we need to fetch the font engine directly from QTextEngine's
fontEngine cache instead of QFontCache.
Task-number: QTBUG-20250
Reviewed-by: Eskil
(cherry picked from commit 1f90ae36cff8acf581d1624bf011fe3a55c623c0)
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Text drawn with horizontal center alignment (AlignHCenter) and
QTextOption::IncludeTrailingSpaces flag as off should consider
the trailing space width (leading space width for RTL lines),
because textAdvance here ignores the space. Disregard that space
width here in alignLine will make RTL lines aligned a bit to
the right.
In short, for something like this:
|w1|space|text|w2|
|<- totalWidth ->|
we want to have w1 + spaceWidth = w2 = (totalWidth - textWidth)/2,
so that the actual rendered text will appear at the center of the
bounding rect.
Task-number: QTBUG-18303
Reviewed-by: Eskil
|
|\
| |
| |
| |
| |
| |
| | |
4.7-integration
* '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-2:
Fix text color in some cases of QML and QStaticText
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This reverts 518c2a58ed6fdfd7449cb4476aa8ea0d32ad16e3 which caused a
regression.
When writing systems are mixed and an underline is set on the font,
QPainter will set a pen with the current color and a new width on
itself before drawing the decoration. This would cause the recorder
in QStaticText to mark the pen as dirty, saving the current pen
color in all subsequent text items. The effect was e.g. that in QML
the cached color would override the current one, making it impossible
to change the color on the text without forcing a relayout somehow.
The right fix is to only mark the pen as dirty when its color actually
changes.
Task-number: QTBUG-20159
Reviewed-by: Jiang Jiang
|
|\ \
| |/ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This is a back-port of part of cad70d64d0bbada. In the raster engine's
drawCachedGlyphs(), which is used by QStaticText, we would use the wrong
metrics to lay out the glyphs, because loadGlyphMetrics() would assume
full hinting. A visible effect of this was that the baseline of rotated
text became wavy.
Task-number: QTBUG-18185
Reviewed-by: Jiang Jiang
|
| |
| |
| |
| |
| |
| |
| | |
Clicking at the edge of a glyph means lookup for the left glyph.
Reviewed-by: TrustMe
(cherry picked from commit 31110bf84bb06d57983501fa65fe0db3f7c61927)
|
| |
| |
| |
| | |
Reviewed-by: TrustMe
|
| |
| |
| |
| |
| | |
Task-number: QTBUG-19260
Reviewed-by: TrustMe
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
We need to find out the closest element in the ligature to
the point we clicked (or tapped), currently we do this by
dividing the width of that ligature glyph evenly by the number
of characters it covered. We only support Common and Greek script
at this point, ligatures in other scripts are still handled as a
whole.
Task-number: QTBUG-19260
Reviewed-by: Eskil
|
| |
| |
| |
| | |
Reviewed-by: Eskil
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
For widgets like QPlainTextEdit, selection across ligatures (typically
'fi', 'ffi', 'fl', etc.) end up highlighting the entire ligature
glyphs, this patch fixed that by dividing width inside the ligature so
that selection will not expand past the actual selected characters.
Since cursor position already considered this, we merely adopted the
algorithm and made it a separated helper function for all necessary
cases. Dividing width directly looks like a temporary workaround but
works well enough so far for cursor positions.
Task-number: QTBUG-11969
Reviewed-by: Eskil
(cherry picked from commit 99fd5825dfb4d50cff93165995701a65b7a8e4ed)
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This reverts commit fcfc19878a0a1a48194a786bba64da11606077d2.
I am happy that this commit fixed three bugs at once. But
Actually, I am not sure if QTBUG-15513 should be fixed at
this point. Fact is that the patch as it is would have changed
the point->pixels calculation back to how it was in Qt 4.6.
This means that the fonts which are defined with pointSize
would now (in Qt 4.7.4) suddenly be bigger than they were
in Qt 4.7.3. Imho this is unacceptable, as it would break
all layouts which were developed for Qt 4.7 apps, when
point size (instead of pixle size) was used.
I will need to fix QTBUG-17844 without fixing QTBUG-13009
If QTBUG-13009 will be fixed for 4.8 will be discussed.
|
| |
| |
| |
| |
| |
| |
| |
| | |
As QTBUG-19880 highlighted, the old S60 naming is not suitable for
these classes anymore.
Task-number: QTBUG-19913
Reviewed-by: Jani Hautakangas
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Unlike QFont::pixelSize(), which may return -1 if the font size was
defined in points, QFontInfo::pixelSize() always needs to return a
valid value.
c4ef479906f073fa84999eb950f00e264ebd4e8e which was a fix for
QTBUG-13009 tried to fix a similar issue, but failed to do that
properly, which resulted in QTBUG-15513 and QTBUG-17844.
This commit is supposed to fix all three bugs.
Task-Number: QTBUG-13009
Task-Number: QTBUG-15513
Task-Number: QTBUG-17844
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In FreeType, there's a fall back to QFontEngine::alphaMapForGlyph()
when the fonts are very large. Since this uses a QPainterPath containing
an unhinted glyph, the use of hinted metrics would sometimes lead to
the glyphs being clipped because they would be positioned slightly
outside the image they were painted into. When outline drawing is on,
it makes sense to return unhinted metrics, since the glyphs we will
actually use are unhinted.
Task-number: QTBUG-19067
Reviewed-by: Jiang Jiang
|
|\
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
4.7-integration
* '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-1:
Updating file with CRLF line endings for the updated header
Fix a regression in QList::mid()
update gitignore
remove -fno-stack-protector
Fix make confclean
Update licenseheader text in source files
|
| |
| |
| |
| |
| |
| |
| | |
Updated version of LGPL and FDL licenseheaders.
Apply release phase licenseheaders for all source files.
Reviewed-by: Trust Me
|
|\ \
| | |
| | |
| | |
| | | |
* '4.7' of scm.dev.nokia.troll.no:qt/qt-qml:
Make TextEdit word selection more natural.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
QTextControl will only extend the selection to a word if the cursor is
directly over it which prevents the selection being extended if the
mouse is dragged up or down a to a shorter line of text making it
difficult to select multiple lines of text. Just disable that
limitation when the TextEdit word selection is enabled.
Change-Id: I3b9d1575c0141db8441197d740de94a90eacc077
Task-number: QTBUG-19230
Reviewed-by: Martin Jones
|
|\ \ \
| |/ /
| | |
| | |
| | | |
* '4.7' of scm.dev.nokia.troll.no:qt/qt-qml:
Ensure the TextEdit cursor delegate is repositioned on mouse events.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Update the micro focus when a mouse press changes the cursor position
of a read only TextEdit.
Change-Id: I11855037f7938b2cd23ac6ad165722b5289b4f46
Task-number: QTBUG-19109
Reviewed-by: Martin Jones
|
| |\ \ |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
If glyph is not found from glyphSet it is created dynamically and
in this case not deleted.
Task-number: https://projects.maemo.org/bugzilla/show_bug.cgi?id=244326
Merge-request: 1208
Reviewed-by: Jiang Jiang <jiang.jiang@nokia.com>
|
| |_|/
|/| |
| | |
| | |
| | |
| | |
| | |
| | | |
Because it breaks forward compatibility. We will use the original
fix in 4.8. In 4.7 we just make sure it doesn't crash in
QTextBlock::next().
Reviewed-by: Thiago Macieira
|
|\ \ \
| |/ /
| | /
| |/
|/|
| | |
* '4.7' of scm.dev.nokia.troll.no:qt/qt-qml:
Ignore changes to selectByMouse during a selection.
PathView offset out of sync with currentIndex when items are removed.
|