The BadMatch errors are generated if XSetInputFocus is called before the
window has been mapped, so we need to set a flag when we get the map
notify event.
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
Reviewed-on: http://codereview.qt.nokia.com/292
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Andrew den Exter <andrew.den-exter@nokia.com>
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
Reviewed-on: http://codereview.qt.nokia.com/291
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Andrew den Exter <andrew.den-exter@nokia.com>
Ensure the cursor position does not exceed the bounds of the
current text.
Change-Id: If38f7729372562324d11eadd1a976c0c6da91863
Task-number: QTBUG-19054
Reviewed-by: Martin Jones
(cherry picked from commit 6fbfb1ab3f26ad672eb24f9b4a0ce1a8eea08298)
Reviewed-on: http://codereview.qt.nokia.com/290
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Andrew den Exter <andrew.den-exter@nokia.com>
topData() is called from various functions for any kind of widgets,
not just for top-levels. Therefore createTLSysExtra cannot assume
that the widget is top-level. Previously QWindows were created
for desktop widget, toolbars, mdi subwindows, etc. which is
wrong. The patch will avoid this, and will also fix drawing
isses when dragging mdi windows.
Reviewed-by: Samuel Rødal
This enables other modules to use it without having access to the
QtBase sources.
Change-Id: I0a588b2e14ca88fa068c7c2bcc69ff669444f6c6
Task: QTBUG-19585
Reviewed-on: http://codereview.qt.nokia.com/237
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
The window member in extra should remain null for widgets
that do not have a native window. The change introduced
in an earlier commit is clearly wrong.
This also makes modal hints set properly for dialogs so the
additional checks during active window change are not needed
anymore.
Reviewed-by: Samuel Rødal
Strange behaviour means incorrect dialog sizes, inability to resize,
X crashes, etc. These were caused by not properly filling the size
hint structure, leaving possibly random garbage in it.
Reviewed-by: Samuel Rødal
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
(cherry picked from commit 5338d78aa9d80ddd2bcb21e6b22cd2cf1522a7d3)
Change-Id: Ic747e9458d561aca0848dcd1e8b94e0a23fd8189
Reviewed-on: http://codereview.qt.nokia.com/196
Reviewed-by: Jiang Jiang <jiang.jiang@nokia.com>
Remove support for COMPOUND_TEXT. All apps should
these days support UTF8_STRING. If not they'll have to live
with STRING or TEXT.
ICCCM states that TEXT is in the encoding of choice. Make this
latin1 instead of local8bit. XA_STRING is defined to be latin1,
so don't use local8bit here neither.
The previous patch tried to work around the fact that Qt::SubWindow
accidentally pulled in Qt::Window. This patch corrects the root
cause of the problem.
Add QPlatformPrinterSupport which provides functionality for
obtaining QPrinterInfo and creating native printer engines.
Rubber-stamped-by: Lars Knoll <lars.knoll@nokia.com>
Following the RFC4122, provide the interfaces between QUuid
and QByteArray, they are simpler then toByteArray() and
relevant.
Thanks for the suggestion and brief code from Robin Burchell.
Task-number: QTBUG-19420
Reviewed-by: joao
(cherry picked from commit 06873e467d98ad60d827afae29500bf2ff783c03)
Change-Id: I4623ae3363f1d5affa45de73fac616bb67a9eaa1
Reviewed-on: http://codereview.qt.nokia.com/168
Reviewed-by: Liang Qi <liang.qi@nokia.com>
By reading and writing as a whole block, because the size of QUuid
is fixed.
Reviewed-by: joao
(cherry picked from commit d56d7f107f9d18810d742ac4d3a2e36077722cb8)
Change-Id: I90554d68da7394c99c48acd0bc5a0eee3b3f7776
Reviewed-on: http://codereview.qt.nokia.com/169
Reviewed-by: Liang Qi <liang.qi@nokia.com>
for the fake tab-spacing property, which accesses the internal
layout and sets its spacing.
Task-number: QTBUG-19339
Reviewed-by: Jarek Kobus <jaroslaw.kobus@nokia.com>
Change-Id: I89f5c035bd3798a0998c3046de643bda0fa8da6b
(cherry picked from commit 89f5c035bd3798a0998c3046de643bda0fa8da6b)
Reviewed-on: http://codereview.qt.nokia.com/173
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
As otherwise the compilation of ui_-files fails when
using QT_NO_CAST_FROM_ASCII. Bug reported on mailing list.
Reviewed-by: Jarek Kobus <jaroslaw.kobus@nokia.com>
Change-Id: I00bf2e2605b97ff77efdcb68b7968375b3e9d195
(cherry picked from commit 00bf2e2605b97ff77efdcb68b7968375b3e9d195)
Reviewed-on: http://codereview.qt.nokia.com/174
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
It doesn't need to copy anything when pos is after size().
Task-number: QTBUG-19164
Reviewed-by: Oswald Buddenhagen
(cherry picked from commit 8befc4982a32752e48c82cacbed045e7336a3569)
Change-Id: Iccac75842616f0d41e457e844a15d1a3ccfeb642
Reviewed-on: http://codereview.qt.nokia.com/164
Reviewed-by: Liang Qi <liang.qi@nokia.com>
QUuid::toString() and QUuid(const QString &) are too slow now.
Task-number: QTBUG-19418
Reviewed-by: joao
Reviewed-by: Denis Dzyubenko
Reviewed-by: Ritt Konstantin
Reviewed-by: Robin Burchell
Reviewed-by: Richard J. Moore
(cherry picked from commit 7ce566ed82666ac08f137f4d8590ce589d42c82a)
Change-Id: I7e5bb4072f0941c20a7278a2d9766d4ef47be811
Reviewed-on: http://codereview.qt.nokia.com/166
Reviewed-by: Liang Qi <liang.qi@nokia.com>
Some complex widgets might get a negatively sized rectangle when
calling QWidgetPrivate:setGeometry_sys_helper(), triggering a infinite
recursion. Normalizing the rectangle size before checking for size
change is enough to break this infinite recursion.
Task-number: QTBUG-17333
Change-Id: I4682c3088ea53fb9f28f746c8264f573b5284825
Reviewed-on: http://codereview.qt.nokia.com/156
Reviewed-by: Olivier Goffart <olivier.goffart@nokia.com>
std::initializer_list exists, but it is not possible to do bracket
initialisation
Reviewed-by: Joao
(cherry picked from commit a09f5c425079405e72078813bdb7b103c29a5221)
Change-Id: I837f18f043b18410c1d93b9f1156acf729dad510
Reviewed-on: http://codereview.qt.nokia.com/143
Reviewed-by: Olivier Goffart <olivier.goffart@nokia.com>
Needed for QtConcurrent.
Like the new std::enable_if (in c++0x)
Reviewed-by: Joao
(cherry picked from commit 837f18f043b18410c1d93b9f1156acf729dad510)
Change-Id: I837f18f043b18410c1d93b9f1156acf729dad510
Reviewed-on: http://codereview.qt.nokia.com/141
Reviewed-by: Olivier Goffart <olivier.goffart@nokia.com>
Changes in 4.8 led to a timer being created in the wrong thread.
I have restored the invokeMethod used to call startPolling() to solve
this problem.
Reviewed-By: mread
(cherry picked from commit e9e95f75e7c1e8325c2acce0087ff8677d773779)
Change-Id: I8b89fa89766679beb2d469f9bbd1f5e2233f061b
Reviewed-on: http://codereview.qt.nokia.com/138
Reviewed-by: Markus Goetz
Several of the QPA headers include private headers in the Core, Gui and
OpenGL modules and with the new modularized Qt, we need to opt-in for
these.
Change-Id: Ib7a81f7843ef89e3c5c5218f790287bb6c00e4cb
Reviewed-on: http://codereview.qt.nokia.com/133
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
QTEST_ACCESSIBILITY was always defined and only used in one autotest.
Code that uses accessibility features should be excluded if Qt was built
without accessibility rather than based on a define in the test
framework.
Change-Id: I3a517a579a51f536a0983b43bd99e86292026552
Reviewed-by: pending
Reviewed-on: http://codereview.qt.nokia.com/129
Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
The QPixmap buffer is backed by QRasterPixmapData instead of
QMacPixmapData for the raster engine, thus we have to update
qt_mac_pixmap_get_base() and qt_mac_pixmap_get_bytes_per_line(),
so that QGLWidget can locate the offscreen buffer from a QPixmap.
Reviewed-by: Fabien Freling
(cherry picked from commit c5846314dfd80e7f7f32ba737f1884dcccbbd80d)
Change-Id: I2414222f8a59e02c778177d52ad9a6e0ff68668d
Reviewed-on: http://codereview.qt.nokia.com/123
Reviewed-by: Jiang Jiang <jiang.jiang@nokia.com>
Currently in Core Text there is not proper way to select fonts with
Light weight, for example:
QFont font("Helvetica"); font.setWeight(QFont::Light);
will give you Helvetica-Light, as with:
QFont font("Helvetica"); font.setWeight(QFont::Normal);
because of a bug in Core Text, applying 0 symbolic traits with
CTFontCreateCopyWithSymbolicTraits will always return the Light
variant of that font family. Thus, we should only do this unless
symbolicTraits is not 0 or font.weight is not Normal (Light is not
a symbolic trait, but CT doesn't support selecting Light weight
numerically).
Reviewed-by: Eskil
(cherry picked from commit 4d5b8f66d82e9087d9d58a4e76e6b46ce7bb53cc)
Change-Id: I37a970aba5019a13b9f3bc43b7fb594b74a1aa37
Reviewed-on: http://codereview.qt.nokia.com/124
Reviewed-by: Jiang Jiang <jiang.jiang@nokia.com>
For compositors that support it, the wayland clients can associate themselves
with an auth token, specified by WL_AUTHENTICATION_TOKEN env var, or by
directly specifying it in the wayland client plugin.
Change-Id: I74a50a27c7c61c2b2cf1e09868618f36edc94cb1
Reviewed-by: Samuel Rødal
Reviewed-on: http://codereview.qt.nokia.com/116
Reviewed-by: Paul Olav Tvete <paul.tvete@nokia.com>
xglyph_format is only available when XRender is present.
Reviewed-by: Fabien Freling
(cherry picked from commit a6642e4659b3d45ffa94f9a3c6413124d49f2b91)
Change-Id: Ibd767c5055c8fb4a7d28ace141f6713f4367d1ba
Reviewed-on: http://codereview.qt.nokia.com/113
Reviewed-by: Paul Olav Tvete <paul.tvete@nokia.com>
* 'master' of git://scm.dev.nokia.troll.no/qt/qtbase-staging: (21 commits)
Fixed line endings.
Update licenseheader text in source files for qtbase Qt module
New configure.exe binary
Add -qpa option on Windows
Use qglobal.h's VERSION number instead of hardcoded current version
More examples adjusted to Symbian and Maemo5. (cherry picked from commit a97b9620a584c9b1a2e006873183526b3d7e001e)
Doc: Added some details to the accessibility events API documentation.
Doc: Fixed qdoc warnings.
Doc: Fixed qdoc warnings.
Doc: Made an additional change for clarity.
Doc: Noted that the example will not work as expected with a mouse.
Doc: Fixed qdoc warnings.
Doc: Applying a pending change from previous merges.
Doc: Fixed qdoc warning.
Doc: Fixed qdoc warnings.
Doc: Applied pending fixes to API documentation.
Doc: Various fixes to documentation, some based on changes in master.
Doc: Added missing project and desktop files.
Doc: Documented the value returned when no field can be found.
Squashed commit of changes from the 4.8-temp branch.
...
* 'master' of git://scm.dev.nokia.troll.no/qt/qtbase-earth-staging:
QUrl auto test: include core-private headers
QUrl TLD: fix documentation file for "Add QUrl::topLevelDomain() ..."
Add QUrl::topLevelDomain() and move TLD table from QtNetwork to QtCore
Move Qt's copy of the Mozilla public suffix list from QtNetwork
to QtCore and use it to expose a new API function QUrl::topLevelDomain().
This function returns the section of the url that is a registrar-controlled
top level domain.
QtCore now exports a couple of functions to the other Qt modules: qTopLevelDomain,
a helper function for QUrl::topLevelDomain(); and qIsEffectiveTLD(), a helper
function for QNetworkCookeieJar.
The motivation for this new API is to allow QtWebKit implement a Third-Party
Cookie blocking policy. For this QtWebKit needs to know the element of the url
that is the registry-controlled TLD. Without this knowledge it would end up
blocking third-party cookies per host rather than per registry-controlled domain.
See also https://bugs.webkit.org/show_bug.cgi?id=45455
Merge-request: 1205
Task-number: QTBUG-13601
Reviewed-by: Peter Hartmann <peter.hartmann@nokia.com>
(cherry picked from commit 154402f56dcf8303a6ce601a52215226af8d31ba)
* 'master' of git://scm.dev.nokia.troll.no/qt/qtbase-earth-staging:
add auto test for SSL certificates containing utf8 characters
fix coding style for merge request re. utf8 characters in SSL certs
Use OpenSSL X509_NAME_ENTRY API to parse UTF8 subjectName/issuerName
fixes minor coding issues for
"Use OpenSSL X509_NAME_ENTRY API to parse UTF8 subjectName/issuerName"
Task-number: QTBUG-7912
Reviewed-by: Peter Hartmann <peter.hartmann@nokia.com>
(cherry picked from commit 2e8d206fd9f656cd88b797c059ef83ed3df32881)
... to be able to display non-ASCII names from subject and issuerInfo.
Task-number: QTBUG-7912
Merge-request: 922
Reviewed-by: Peter Hartmann <peter.hartmann@nokia.com>
(cherry picked from commit e5d94256be2525c24a8b61edd771662b7f2b8be3)
In order to use the scene graph text node in TextInput, we
need enablers. Most of this is to enable selections,
which in turn means we need to be able to extract a certain
set of glyphs from a QTextLine.
Add and remove windows to the list of top level windows.
Correctly set the visibility flag for windows and implement
a QGuiApplication::topLevelAt() method that uses the
QPlatformScreen.
Qt's Shift-JIS codec maps the characters 0x5c and 0x7e to unicode yen (0x5a)
and unicode overline (0x203e). ICU and (as it turns out) Symbian's native
Shift-JIS codec preserve 0x5c and 0x7e when converting to Unicode.
Qt's behaviour creates a problem when loading japanese web sites that are
encoded in Shift-JIS. When they reference external JavaScript files, those tend
to inherit the current page encoding (unless the character set is explicitly
specified). Consequently JavaScript tends to contain regular expressions (as a
built-in feature of the language), which in turn uses backslashes for escape
sequences. Therefore it is crucial that the encodings used to decode the script
preserve the ASCII range, i.e. do not convert 0x5c (ascii backslash) to
something else.
This patch corrects the behaviour of Qt's Shift-JIS codec to leave all
characters < 0x80 unaltered in the process of conversion to and from
Unicode.
Task: QTBUG-19335
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
(cherry picked from commit 8e321cd869da7ff1cf0168da41aa0246b44867cc)
Move the DnD related classes back into
QtGui. Parts of the implementation is currently
commented out and needs to be moved to
QWidgetWindow.
SC incompatible change:
APIs taking QWidget * now take QObject *
* 'master' of git://scm.dev.nokia.troll.no/qt/qtbase-staging:
tst_qhostinfo: Fix IPv6 lookup detection on Windows.
Fix incorrect hardware address on systems without getifaddrs()
Make QHostAddress.toString() follow RFC-5952 for IPv6 address format.
On unix systems for which QT_NO_GETIFADDRS is defined, the way that the
hardware address field is extracted from the result of a call to
qt_safe_ioctl() is incorrect. The address of the ifreq.ifr_addr struct
is taken rather than the appropriate member within that struct, sa_data,
resulting in a memory offset and subsequently the hardware address has
garbage in the first two of six fields. This commit modifies the code
to pass the sa_data member instead of the address of the struct as a
whole.
Task-number: QTBUG-19165
Merge-request: 2614
Reviewed-by: Martin Petersson
(cherry picked from commit 004ad12669ef696eeba70fd57d1eb0c67c806d1d)
* 'master' of git://scm.dev.nokia.troll.no/qt/qtbase-staging:
Full translucent background support in xcb and xlib backend.
Lighthouse xcb and xlib: Add support for transparency of GLX windows.
Lighthouse minimal: Add support for transparency
Compile fixes for Xlib plugin.
Make sure to pick an alpha visual also for non-GL surface types, and to
ask for alpha in the window format if the WA_TranslucentBackground
attribute is set.
Reviewed-by: Janusz Lewandowski
(cherry picked from commit 6241e39cff9311c943430ff2f31236b13618f2ac)
This enables doing window/process management since we can now
actually map the process we've launched to a window.
Reviewed-by: Samuel Rødal
(cherry picked from commit 457c33d9fd308542c9290fd60bf86960f9251255)
This warning is pointless as the user can anyway check if the color is
valid after making the call by calling isValid(). Using isValidColor()
could be used but it has a big performance overhead as validation then
needs to be done twice.
Task-number: QTBUG-19098
Reviewed-by: Erik Verbruggen
(cherry picked from commit a423ff5474b89028eeca95b254f5184311c8223b)
We need to use the quad-word intrinsic and reinterpret the cast to
a signed int vector.
Reviewed-by: Kim Motoyoshi Kalland <kim.kalland@nokia.com>
(cherry picked from commit d2d7aef223a3bad368c6b7c7f7f4617f4acf323c)
* 'master' of git://scm.dev.nokia.troll.no/qt/qtbase-staging:
Compile IPC tests.
Always call XInitThreads.
Remove redundant #ifdef's from benchmarks
Improve coding style of qdatastream test
Don't use Qt3Support in arthur test suite.
Remove Qt3Support code from QMenuBar autotest
Remove Qt3Support code from QSplitter autotest
Remove Qt3Support code from QSharedPointer autotest
Remove Qt3Support code from QComboBox autotest
Remove Qt3Support test code from accessibility autotest
tests: allow unstable tests to be marked with CONFIG+=insignificant_test
Any Qt application that embeds a QSGView needs to call this
because of the threaded renderer. Today applications that
use threaded GL silently fail. In a few weeks time, the
refactor branch will be merged, which will obsolete this
change, so it is a temporary measure to get tests and
examples running.
* 'master' of git://scm.dev.nokia.troll.no/qt/qtbase-staging:
tests: fixed compilation of tst_qtextstream
QUiLoader, QAbstractFormBuilder: Introduce errorString().
Enable configuration for Xcb
Fall back to using paths for large fonts in drawStaticText()
Add ability to work around non-standard GLES implementations
Fix broken drawing with large fonts using QStaticText and FreeType
Remove Q_ASSERT's from qdbustype autotest
Remove autotest code for Qt3Support library.
Introduce errorString() to be able to obtain load errors
in Qt Designer. Remove automatic Qt 3 form conversion
from Qt Designer (since uic3 no longer exists) and move
all form load error checking logic including language
check into QAbstractFormBuilder.
Make language accessible in FormBuilderExtra in case
Jambi is revived.
Reviewed-by: hjk
The xcb platform plugin can now be enabled using -xcb at configuration
time. A configuration time compilation check will be added at a later
point.
Reviewed-by: Samuel Rødal
QStaticText had an implicit risk which meant you had to make sure the
text size did not grow unreasonably large. This was intended to avoid
hiding the performance impact of using QStaticText for such a purpose,
but it's too inconvenient. Thus, the same fall back as in drawTextItem()
has been introduced. This will also fix a bug recently introduced when
we started using the FT cache to draw static text in the raster engine,
since this will fail for large fonts.
Task-number: QTBUG-19084, QTBUG-19370
Reviewed-by: Jiang Jiang
(cherry picked from commit 0aa9b30432cec3b7f366983f451fc9a7f8f83243)
In 4.8 we added support for using StringBuilder with QByteArray.
But this is breaking source compatibility for people that used
QT_USE_FAST_OPERATOR_PLUS in Qt 4.7. So we introduce a new macro
Notice that QT_USE_FAST_CONCATENATION was not working without
QT_USE_FAST_OPERATOR_PLUS, so we remove the checking of that macro.
Reviewed-by: joao
(cherry picked from commit 8447f5616be731d78081f326bb9cb3f5aa9087a4)
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
If a QWindow has a parent but is top-level the corresponding
QPlatformWindow should not be re-parented but instead be made transient
for the parent window if possible.
setMimeData() emits the changed signal always so to prevent duplicated
signals keyboardFocus() must only emit when the change came from
another wayland client. However direct connection may cause issues
when invoking the slot from a wayland callback, so use a metacall
to make sure we return from the callback. Unnecessary data transfer
and potential deadlock is now also avoided when a client is requesting
the mime data from itself.
Reviewed-by: Jørgen Lind
QSignalSpy's constructor failed gracefully for some problems with the
parameters, but not for null parameters, for which there was only a
Q_ASSERT. This commit makes the handling of null parameters consistent
with the handling of other errors -- output a meaningful error message
with qWarning() and return, so that isValid() will subsequently return
false.
Change-Id: I7f5677a4c10185e30403ce3e12a022de8c13bc1c
Task-number: QTBUG-14283
Reviewed-by: Rohan McGovern
To make it emit the signals for the right object, it needs its parent to
be the QGraphicsItem/SGItem/QLineEdit.
According to IA2 it should emit TextUpdated and CursorMoved signals.
TextChanged is deprecated.
More fine grained signals would be desireable but this makes changes work at all.
Reviewed-by: Morten Sorvig
(It did not really fix the issue.)
This reverts commit 33f525e636ef8fa64a15d3e66c56adaea0075bda.
Conflicts:
src/gui/graphicsview/qgraphicslinearlayout.cpp
tests/auto/qgraphicswidget/tst_qgraphicswidget.cpp
(cherry picked from commit fee052e3e37b3335fe563cb8a1881bf59f9e25d0)
See commit b00089261eafbdf5f92ed94d7fb20b402bfcaeb2
Reviewed-by: Gabriel de Dietrich
(cherry picked from commit bc16ebdb7aeff70fe8149297183636ea7fd14ed1)
* Do not call invalidate from activateRecursive().
This resulted in that a layout was invalidated as many times as there
were items in the layout.
* Several improvements. Do not call resize(size()) too often.
Calling resize() from the widgetEvent() is not very nice though...
* Remove commented out code
* make sure layout is activated even if the widget does not change size
* activate the layout if the resize is same as size()
* In order to not break existing apps, make this an opt-in feature
with QGraphicsLayout::setInstantInvalidatePropagation(true);
Reviewed-by: Frederik Gladhorn
Reviewed-by: John Tapsell
Added a new QCosmeticStroker class for drawing thin
lines. The class can handle both aliased and antialiased
lines.
The code replaces all the midpoint line drawing algorithms in
the raster paintengine and gives correct subpixel positioning
for lines.
It gives around 30% to 50% speedup against the midpoint algorithm. If
we missed that fast path, the speedup is around between a factor of
6 to 8 for lines and aliased paths and 100 and 400 for antialiased
paths.
Reviewed-by: Kim
(cherry picked from commit 37c329a3e35fabc88fbcad824a69f37c671d2132)
Make sure the resulting image / pixmap is valid if the source was valid.
Task-number: QTBUG-19157
Reviewed-by: Kim
Reviewed-by: Benjamin Poulain
(cherry picked from commit 1c5da7207a21cc44a4a08d291c290ffcd9b958fd)
Older commit history is in KDE svn:
http://websvn.kde.org/trunk/KDE/kdelibs/kdeui/itemviews/kidentityproxymodel.cpp?view=log
Ammended to update the license headers.
Merge-request: 900
Reviewed-by: Gabriel de Dietrich <gabriel.dietrich-de@nokia.com>
Conflicts:
doc/src/frameworks-technologies/model-view-programming.qdoc
tests/auto/headers/tst_headers.cpp
(cherry picked from b00089261eafbdf5f92ed94d7fb20b402bfcaeb2)
If we can not get online when the request is made then we are in the
WaitingForSession state. This will happen for example if the device
is in flight mode. This fix follows the same logic as in
_q_networkSessionFailed, but we should look into why we have the
WaitingForSession check in finished().
Task-number: QT-4747
Reviewed-by: Markus Goetz
(cherry picked from commit 0c9cb9a34d6b472cb53bf1af4616af55b593b616)
as a side effect, don't use QDir for path resolution - it doesn't buy us
anything.
Task-number: QTBUG-1371
Reviewed-by: joerg
(cherry picked from commit 9cd62e4f7b23894a672297f6eebda64cdbd53cb0)
QAbstractSocketEngine::createSocketEngine can return 0 as well as throw.
In two cases the pointer was being used before the null check, in a 3rd
case the null check was missing.
Reviewed-by: Markus Goetz
(cherry picked from commit 19edac88af53eea7f733cabbaee77f9b725b7ea9)
Do the easy checks first, will avoid a crash in the HTTP code
if request is serviced from the cache.
Task-number: QTBUG-18770
Reviewed-by: Peter Hartmann
(cherry picked from commit d03a28a289cf0665290e6ea0375b31cbb2d6649e)
The application main window defaults to fullscreen size when initially
constructed, even if softkeys are specified for it, as the screen
furniture is constructed later in show_sys. This resulted in the main
window being partially under softkeys.
Fixed by invoking handleClientAreaChange() explicitly in show_sys in
fullscreen with softkeys case.
Task-number: QTBUG-19043
Reviewed-by: Sami Merila
(cherry picked from commit e8fc93973a41f193665baa5fdc26cba951bd692f)
Widgets are left in a transitional (and incosistent) state while being
re-parented, which caused QWidget::effectiveWinId() to crash in certain
circumstances. See patch for more details.
Auto test included.
Reviewed-by: ogoffart
(cherry picked from commit 6db0153cd7e35e4a919a76ae2aadbf2d2510bfb7)
select code for open C file/socket descriptors was crashing in FD_SET
if a QSocketNotifier was created with an invalid descriptor.
Added two autotests to QSocketNotifier, one to check notifiers with
bogus socket descriptors don't crash, the other to check that notifiers
with posix socket descriptors do work. (symbian socket engine doesn't
use them so they are not implicitly tested)
Reviewed-by: mread
Task-Number: QTBUG-18138
(cherry picked from commit 8a9a6afcf02f089f932bc81431ab46a60af32134)
In Symbian, the OS function to get the size of a pending datagram also
includes the size of the packet header (which is different for IPv4 and
IPv6). We were reading the datagram with the "peek" flag set to
implement pendingDatagramSize, then reading again normally when the
client called read/readDatagram.
This change removes the "peek" flag, and buffers the datagram in the
socket engine, returning it and clearing the buffer when read or
readDatagram is called.
If there is no buffered data, the existing code path is followed - it
isn't mandatory to call pendingDatagramSize before reading from the
socket.
Reviewed-by: Markus Goetz
(cherry picked from commit dd8de4c2437397748daba49569cbc7f89a8bfbee)
The generic layer calls setReadNotificationEnabled(false) on sockets
after they are closed. This no longer causes a warning from the symbian
socket engine. A warning will only be emitted if trying to enable
notifications on a closed socket.
Task-number: QTBUG-18713
Reviewed-by: Markus Goetz
(cherry picked from commit 0aa780235c24ed724fcf6a9095a6467e34b9346e)
* 'master' of git://scm.dev.nokia.troll.no/qt/qtbase-staging:
Fix tst_QVariant::invalidColor
Move QTextCursor::MoveStyle to Qt namespace
Add some QRawFont related low level functions to avoid extra copying
We cannot use QTextCursor::MoveStyle enums in QTextLine because
QTextCursor is not a QObject, while referring to that enum in
Q_PROPERTY requires it to be. That's why we need to move the
enums in Qt namespace.
Reviewed-by: David Boddie
(cherry picked from commit 5eba82b752e85a5d6cb3a893214ed2646d75f362)
Commit 4b75ceea08 changed
qcoreapplication_p.h to include qsettings.h, which undefines Status.
This breaks the xlib platform plug-in (and its includes).
Now the texts used for undo actions and for items in QUndoView can
be set separately. This introduces an extended format of text that
can be passed to QUndoCommand::setText or QUndoCommand constructor.
The action text can now contain two strings separated by a "\n". The
first string (that goes before "\n") is then returned by
QUndoCommand::text() and used as name of item in QUndoView.
The second string (that goes after "\n") is returned by
QUndoCommand::actionText() and used when the text properties of the
undo and redo actions are updated.
If the text passed to QUndoCommand does not contain "\n", everything
works as before, and both QUndoCommand::text() and
QUndoCommand::actionText() return the same string.
Even though action text in English usually does not need different forms
for undo actions and QUndoView item, translators can employ this new
command text format, for example to adjust the grammatical case used in
command text to match the context of "Undo %1"/"Redo %1".
Merge-request: 2610
Reviewed-by: ossi
(cherry picked from commit 9b784789c75d59b27530bbf1d12676cc44f64f46)
Functions QUndo{Group,Stack}::create{Undo,Redo}Action() now use action
text templates "Undo %1" and "Redo %1" if no custom prefix was provided.
This makes more flexible translations possible. The surrounding text
(like "Undo" and "Redo") can now be suffixed to the command name as
German and Korean languages require ("%1 rueckgaengig machen" for German).
Also, now the default action text (when no command can be undone) can be
translated differently from the prefix. For example, it can be
translated as "Undo action", not just "Undo".
When a non-empty prefix is passed to QUndo*****::create****Action(),
those functions work as before, and the features described above become
unavailable.
Task-number: QTBUG-14442
Merge-request: 1212
Reviewed-by: ossi
(cherry picked from commit 213c25ad24e4f3b0a44f82f23d34746cd294f8d6)
... in the same way as done in the other code path.
This makes qmake/QtCore compile again on glibc systems without PATH_MAX (e.g. GNU/Hurd).
Merge-request: 1218
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
(cherry picked from commit c8812fe6e642520532d65744caefcea790d59de8)
After the mutex optimizations on Mac, we did not handle the case where
semaphore_wait() could return KERN_ABORTED. Under heavy contention, this
happens, and when running in release mode, the assert in qmutex.cpp is not
executed. The code silently allows multiple threads to continue as if it
had acquired the mutex exclusively.
Fix this by checking for KERN_ABORTED from semaphore_wait(), and retry the
wait. We do not handle KERN_ABORTED for timed waits, simply return false and
let the code doing the tryLock() handle it how it deems best.
Reviewed-by: joao
(cherry picked from commit b54af0a9d6406356616889826e31925d2fa05718)
This case may be triggered in the (admittedly slightly abnormal) case where a
user wishes to embed the calendar widget in a layout or, for whatever reason, do
something else that will change its ownership.
We work around this by detecting when it is deleted and recreating the widget.
This will also have a positive side effect if setCalendarWidget() is called with
a widget which is then subsequently deleted, returning the default widget
instead of a pointer to (now deleted) memory.
Reviewed-by: Denis Dzyubenko
Merge-request: 2568
Reviewed-by: Denis Dzyubenko <denis.dzyubenko@nokia.com>
(cherry picked from commit 124ec3200f8453142717fcfe7a4aa0a55164aaa6)
as the implementations moved to platform-specific files, the
QSharedDataPointer<QProcessEnvironmentPrivate>::detach() specialization
needs to go to the private header.
Reviewed-by: thiago
(cherry picked from commit c79246683a5033f605acd59d1c37d68381383a06)
The header field "Cache-Control: must-revalidate" is a strict
requirement for loading the resource from the server, and not reading it
from the cache without revalidating first. With this patch, PreferCache
will load such from the network instead of loading them from the cache,
and AlwaysCache will throw a ContentNotFound error.
Reviewed-by: Markus Goetz
Task-number: QTBUG-18983
(cherry picked from commit 0e449f38894b1bd2dbb2f14206a011424679f063)
The previous change added new ELangEnglish_India that doesn't
necesserally present in all SDKs.
Reviewed-by: trustme
(cherry picked from commit 154ab1cb4c4cdf34f21fc93b078f91cc79048bd4)
Extended the mapping table that matches symbian device languages to a
locale name and language code.
Task-number: QTBUG-7329
Reviewed-by: trustme
(cherry picked from commit 93233fc811920002d5b5b8272d9b5b8d5d3e2b98)
Put back code that was removed by mistake in e8019cf8feb402303e6d253f5ca58bebfda42679
Task-number: QTBUG-18998
(cherry picked from commit bbbd4b8f3949b58d4fd21854241cb46cbc024a80)
HB_GetCharAttributes used to require a zero-initialized array for
attributes, as it selectively sets relevant bits for each character. We
ease that requirement by always initializing the attributes buffer
explicitly with memset.
Task-number: QT-4911
Reviewed-by: Ritt Konstantin
(cherry picked from commit 4cb9db404224c55859713c282aa90409e375c372)
When QTextBoundaryFinder doesn't own the buffer, don't realloc it and
get a new one instead.
Reviewed-by: Ritt Konstantin
(cherry picked from commit 320f172c851a4720299297c8b3b757eb1202c568)
We forgot to send the ParentAboutToChange event, which meant QGLWidget
didn't destroy the old EGL surface. This could cause two EGL surfaces to
be created for the same QGLWidget, which leads to undefined behaviour on
some platforms.
(cherry picked from commit 5a834d7141cc7d29d022911ccec16e628d94acf1)
Conflicts between 61c6d66b7efd8de4a83b021e7c4ef2b1a803ece2 and 940f16babab76b328b7c9bfdb5435102c689b76b
(cherry picked from commit 7a20cf9d4419cf1a5a9a4ed450b03caa8716fd58)
Without this change a not yet created share widget is created
once qt_destroy_gl_share_widget() is called. As creating the
widget also triggers a call to qt_cleanup_gl_share_widget() once
QApplication is destroyed a QApplication created afterwards
cannot use a share widget anymore.
This functionality is needed for Harmattan.
Merge-request: 2609
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
(cherry picked from commit 8680d831fb7066feae07690a4a6bc8e908a84e5a)
msvc tries to instenties the return type of overloads that are not chosen by overload resolution
(cherry picked from commit 7307d712e10783b57c4c95c8390a9455b69f473a)
At least make RVCT 2.2 work.
Task-number: QTBUG-5182
Task-number: QTBUG-9070
Reviewed-by: Olivier Goffart
Reviewed-by: joao
(cherry picked from commit 0ba0c374fe055623381e3795daa6743c5c995bbc)
Regression from 4.5 causing performance and size degradation.
Task-number: QTBUG-18997
Reviewed-by: Samuel
(cherry picked from commit 18122b473ecbd85ba953f70743b1756358bf7c0c)
The plugin loader is used without QCoreApplication.
This fixes 31ef8fa6abc2ea23c6f0a996b36494d88aafb0b5
(cherry picked from commit 988871dabf3c949ffc71d126131281a3ae641ebf)
Flushing native child widgets in VG and GL window
surfaces caused performance downgrade because unnecessary
swapBuffers calls. On Symbian we must not support flushing
native child widgets in VG and GL window surfaces because
it causes GPU memory overhead and performance issues. Symbian
graphics architecture allows us to render native child widgets
to TLW EGL surface correctly in most of the cases.
Task-number: QTMOBILITY-1570
Reviewed-by: Samuel Rødal
(cherry picked from commit 6a92de7c89764848f7a85b1aa412a07bedc72b1a)
Error: #793: explicit specialization of class "QTypeInfo<QProcessEnvironmentPrivate::Key>" must precede its first use
just un-nest QProcessEnvironmentPrivate::{Key,Value}
Reviewed-by: thiago
(cherry picked from commit 167044693cc1d16684a5732b05e3926d0af61960)
values are converted between byte arrays and qstrings on demand.
this makes it feasible to use the class as a generic environment container
with fast reading and writing access.
Reviewed-by: thiago
Reviewed-by: dt
(cherry picked from commit 7aa4ecdedba60ac4cbc07a774ae9d834677002e9)
on unix, don't do the roundtrip over unicode.
on windows, use the WinAPI unicode environment instead of the 8-bit CRT
environment.
Reviewed-by: thiago
Reviewed-by: dt
(cherry picked from commit 60194ad0ea68d7c82b4729119d122dcfeb909842)
the converted keys also cache their hash, as they are used only for the
purpose of looking up in a qhash.
Reviewed-by: thiago
Reviewed-by: dt
(cherry picked from commit 18f1613aa8ece72d24ac10e28f06e3db1d8ce400)
this will enable them to access other members later
Reviewed-by: thiago
Reviewed-by: dt
(cherry picked from commit a2d70d71c8c7652ded41d5d603672c3927df44e6)
while windows itself does not care which case the variable names are in,
they may be passed to unix tools which *do* care.
note that this uses true case folding for string comparisons while
windows uses uppercasing. this means that "ess" and "eß" will be
considered the same by us, while not by windows. this is not expected to
have real-world impact, particularly because non-ascii variable names
are not used much.
Task-number: QTCREATORBUG-3110
Reviewed-by: thiago
Reviewed-by: dt
(cherry picked from commit f3db5603871928ebed43a085a496397e65952b39)
The patch moves the global static QSettings object
from QLibrary to QCoreApplication and reduces a
few stat and open calls.
Without the patch, a large Trolltech.conf was
pushed out of the unused settings cache during
startup, meaning Trolltech.conf was parsed
more than once.
Reviewed-by: Liang Qi
(cherry picked from commit 31ef8fa6abc2ea23c6f0a996b36494d88aafb0b5)
Clamp to GRADIENT_COLOR_TABLE-1, not GRADIENT_COLOR_TABLE-2. Fixes
visible error in gradients.qps
Reviewed-by: Kim Motoyoshi Kalland <kim.kalland@nokia.com>
(cherry picked from commit af9d20680c91f587f4791aa68f3a8b03d3a42be0)
This reverts commit feabda665de62a0f6a82d831b45926697f30b45b.
They were already added by Denis Dzyubenko in commit 2916b074.
(cherry picked from commit ffe0a2ec7c1f4412792a977401bdc4dbf6c76acd)
In QString, it would comlain that:
assuming signed overflow does not occur when assuming that (X - c) > X is always false
Changing to unsigned comparison fix the warning
Others are about unused variables
Reviewed-by: Thiago
(cherry picked from commit 5e5485809e8c6f8339bb9f19ad71ed623a8b23c7)
These helper functions make it convenient to avoid making an unnecessary
copy of the string before converting it to a QByteArray. The current
most obvious way to do this would be:
// QStringRef text
QByteArray latin1 = text.toString().toLatin1();
Though the copy can also be avoided by doing:
const QString textData =
QString::fromRawData(text.unicode(), text.size());
QByteArray latin1 = textData.toLatin1();
Now the faster method can be achieved using the new obvious way:
QByteArray latin1 = text.toLatin1();
Reviewed-by: Thiago Macieira
Reviewed-by: Robin Burchell
(cherry picked from commit feabda665de62a0f6a82d831b45926697f30b45b)
The OpenVG engine correctly uses vgClear() to fill the surface with
transparent pixels whenever the window has the WA_TranslucentBackground
attribute enabled. However both scissoring and masking affects
the operation of vgClear(). Drawing artifacts were previously
visible due this, simply because scissoring was left enabled by
the VG paint engine, and the filling with transparent pixels
happens in the window surface's beginPaint() that is called
between the paint engine's end() (for the previous paint) and
begin() (for the next paint).
Task-number: QT-4907
Reviewed-by: Jani Hautakangas
(cherry picked from commit 4a1ae3d1b4e8e032b1c978fcc7e1812e37e1f047)
There is no reason not to report the name or allow actions
when a widget is invisible.
Reviewed-by: Morten Sorvig
(cherry picked from commit b88b2cb05c56a4c936a073ccf53c9fb3ad50d5d8)
Fixes QTBUG-18290 and the "missing Z" from QTBUG-9698
Merge-request: 1149
Reviewed-by: Zeno Albisser <zeno.albisser@nokia.com>
(cherry picked from commit 8f95a19d330480bd86650c3d2e4e147d3bca5789)
Unlike OpenGL, the EGL_SWAP_BEHAVIOR_PRESERVED_BIT was not set for
the EGL configuration used with OpenVG. Yet the preserved swap was
enabled still, which, according to the EGL spec, should fail. To
make sure it still works with other EGL implementations, the bit
is now set in the configuration.
Reviewed-by: Jani Hautakangas
(cherry picked from commit 710aa7f8fbd72ee303c3348aa3aaf12d6984964d)
tables() returns tables in all databases on the server"
This bugfix has been rewritten to match contributors advise.
Change-Id: I3a9cf900ff7eae47c9ffdbcf34bcb1b4396d9837
Merge-request: 1010
Reviewed-by: Charles Yin <charles.yin@nokia.com>
(cherry picked from commit c0ca29efdeb442a6b88ccadff409e3f7ef828ce8)
With the new fromX11Pixmap function there are valid use-cases where
checking the handle() is useful also with the raster graphicssystem.
Reviewed-by: Thiago Macieira
(cherry picked from commit 1124f41253edd0e03704db72b0e1b6b4b518bd0f)
This reverts commits 0916a68056154ecb60e4ea2c79726ab2e49b1532 and
6f1384fcbeea993d5be47590c696de60215b7608.
This effectively reverts most of MR 694.
Reviewed-by: Olivier
(cherry picked from commit 06e104b9c305d3db0dd1848e6e633ee3888fd1de)
When using QtextCursor::insert() with a large text followed by setting
the vertical scrollbar to its maximum value (scroll to bottom),
QPlainTextEdit would not behave properly if a document size
change was triggered by the insertion due to line wrapping.
This was visible in Qt Creator.
Auto test included.
Reviewed-by: con
(cherry picked from commit 5d144faf3c524ab557b88f69c4b755e20237e846)
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)
This caused regressions in the QListView
This reverts commit 5b3872b2d7523d44ba454a76613e7a3fa45387f7.
(cherry picked from commit 0edbaca5e7b718bb9bbbeaccc9e322b525b4327e)
The thread callback doesn't align the stack on 16-bytes on WinXP.
That causes a crash when we call SSE code. So now we tell the
compiler to force that alignment of the stack.
Task: QTBUG-18631
Reviewed-By: Olivier
(cherry picked from commit 364ce5b7f5379499562b4f4f5a68da7ba068fe1e)
Symbian's QElapsedTimer::restart() had accidently been changed to
return a microsecond count rather than milliseconds, when the elapsed
timer resolution was increased. This fixes it back to milliseconds.
Reviewed-by: Shane Kearns
(cherry picked from commit 39202973e3fb7ff37033290b29efa1b9edc674fb)
The native thread implementation in Qt 4.8 did not call
CTrapCleanup::New() which resulted in E32USER-CBASE 69 panics
in applications when they tried to use the cleanup stack in
a thread's run() function. In 4.7 this was working because
OpenC's pthread implementation created a CTrapCleanup automatically.
Now we do it also in the native Symbian thread implementation.
Trask-number: QTBUG-18822
Reviewed-by: Murray Read
(cherry picked from commit 41aa023ef6019ac9745b780c953f48b8bbc42a42)
Minimum sizes of widgets can cause windows to expand beyond screen
limits in QWidgetPrivate::setGeometry_sys. Normally this is not
noticeable as the window size is forced in various places to the
clientRect, but there are certain sequences where the size set in
setGeometry_sys is the final one, resulting in too large windows.
Removed the modification of window size in setGeometry_sys
for fullscreen windows for which the correct size is already requested.
Task-number: QTBUG-18749
Reviewed-by: Sami Merila
(cherry picked from commit da8f333cfe17a53d475208efa36fa369a9ee4638)
Apparently direct casting is illegal there too, even though they don't
have the cast operators.
Reviewed-by: Kim
(cherry picked from commit 45c60ceac3d5a401543d7d56a44d1f9227464431)
Revert "Build fix on QMenuBar"
This reverts commit ea585d567bf0970c57e31846da044295d80774ba.
(cherry picked from commit 68542b72f53f52df43063677e24994463872e81b)
More specifically, it might very well call updateGeometry()
Reviewed-by: Frederik Gladhorn
(cherry picked from commit febdcef08f22310cbd70ec13b315f70ff8e41e83)
This way the class does not need to be exported
Merge-request: 916
Reviewed-by: Thierry Bastian <thierry.bastian@nokia.com>
(cherry picked from commit a624a4011adca00d7334462c4d33f574c465110a)
This makes it possible to alter the behavior of QMenuBar::setVisible().
It seems to be needed for the Mac menubar.
Merge-request: 916
Reviewed-by: Thierry Bastian <thierry.bastian@nokia.com>
(cherry picked from commit bafeffd7b8b2c40761369ba496ee655dff6cf2a5)
This will help abstracting the platform specific parts of QMenuBarPrivate in a
common interface.
Merge-request: 916
Reviewed-by: Thierry Bastian <thierry.bastian@nokia.com>
(cherry picked from commit c664954295c0605c73f7e69deb9f6130c5f5fb05)
The extended radial gradients conform to the radial gradient
specification in HTML 5 canvas.
Task-number: QTBUG-14075
Reviewed-by: Andreas Kling
(cherry picked from commit da55c1ea92474e989e5582b02815936bbf584405)
Two stops is a fairly common case so we gain quite a bit by special
casing it. Improves performance by 10 % in parcycle benchmark, and
by 90 % in a synthetic benchmark.
Reviewed-by: Andreas Kling
(cherry picked from commit 5b74a70ac630073582be56f8a0539624a1080185)
On an i7 this improves performance by 22 % in parcycle, 107 % in default
svgviewer example, and 283 % in a synthetic radial gradient benchmark.
Reviewed-by: Andreas Kling
(cherry picked from commit 26bd3dccdee8c6a8f1cf9d254a2a6be7d403aa8d)
Using GRADIENT_STOPTABLE_SIZE * 2 as the modulo gives more correct
behaviour, and also improves performance slightly.
Reviewed-by: Benjamin Poulain
(cherry picked from commit 44dd7ef86a3970694a4f8fd9516575c0533a336e)
Made the radial gradient fetch func into a template to be able to
optimize the inner loop using SIMD instructions.
Reviewed-by: Benjamin Poulain
(cherry picked from commit f16c261348193b4c03f796db4e1e3a5db09267a2)
Modify rendering of checked menu items when using Windows Classic
style to be more native looking.
Changes:
* Checked menu items with no icon are not drawn sunken
* Disabled checked menu items with an icon have a plain background
instead of a checkerboard pattern same as when enabled
* Check mark is drawn with highlighted text color when selected to
match text
* Fix check mark offset for disabled unselected checked menu item
as the entire check mark was drawn shifted (1, 1)
* Fix color of check mark shadow for disabled unselected checked
menu item as it was same color as the check mark when it should
be a light color
Task-number: QTBUG-15098
Merge-request: 2513
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@nokia.com>
(cherry picked from commit e89a2b72050dd782da16ff24bc2eb84dc36ed6a5)
The menu needs to take into account the screen geometry of the screen
it's about to be shown on (not the last screen it was shown on) when
updating its actions rects
Task-number: QTBUG-2748
Reviewed-by: Thierry
(cherry picked from commit b10265efba544b1e4820f45b86354d442f6abf26)
The rationale behind this is that if the submenu gets populated in a slot
connected to aboutToShow(), we'll have to do it again anyway.
Task-number: QTBUG-14739
Reviewed-by: Thierry
(cherry picked from commit 0848b860b9251e76b9319f65554f932ab68e33cc)
The problem was that QAbstractScrollArea calls layoutChildren on resize
but the QListView requires that updateGeometries is called before.
Task: QTBUG-18558
Reviewed-By: Pierre
(cherry picked from commit 5b3872b2d7523d44ba454a76613e7a3fa45387f7)
This fixes two issues.
- The indeterminate animation was sometimes incorrectly disabled
when value was 0
- The progress animation was incorrectly stopped when progress
bars were disabled
Task-number: QTBUG-10957
Reviewed-by: richard
(cherry picked from commit 05e46b93ccb2334ec3722cf1205058f778d11458)
QTabWidget has 2 pixel bottom and right content margin. This removes the
margin to maximize the area available for content and improve
consistency with other Qt styles when documentMode is enabled.
Task-number: QTBUG-15769
Merge-request: 957
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@nokia.com>
(cherry picked from commit 23dd5cb45547de167f5c2e78554e9c3013e59998)
The problem was introduced in cd2afafb where we removed some code that
was meant to adjust the header's offset upon row removal.
The problem with this is that visualIndexAt() is likely to return -1 in
QHeaderView::paintEvent, which in turn will lead to calling paintSection
for each and every section.
Task-number: QTBUG-18551
Reviewed-by: Thierry
(cherry picked from commit d814e378987348ce2123d083b01ea6fb6c3e6bbf)
Add support for QDir::NoDot and QDir::NoDotDot for setFilter in
QFileSystemModel.
Task-number: QTBUG-14760
Reviewed-by: Frederik
(cherry picked from commit b60d82fd56897b1a1d3cc730172f71c27a497ede)
Sometimes during initialization the QAccessibleItemRow will
still be in an invalid state.
Reviewed-by: Jan-Arve
(cherry picked from commit 90b4cf4b1aa0f70a62118e200e76dc1dc57985cc)
Buttons would not report their text when hidden, which is inconsistent.
Reviewed-by: Jan-Arve
(cherry picked from commit 1897ca20a343121422b354a7910814ddd37abd17)
This fixes a regression that was created by
75e478abdf336bbdc1b00e2ca4f5293d5455a0cb.
That broke accessibility on 64 bit windows, since lParam can both be
0x00000000fffffffc and 0xfffffffffffffffc.
However, MSDN explicitly says that lParam should be casted to a DWORD,
which would result in (an unsigned) 0xfffffffc in both cases. This can
then be compared to OBJID_CLIENT (defined to ((LONG)0xFFFFFFFC).
Reviewed-by: Prasanth Ullattil
(cherry picked from commit 504941bc50234c225f162192491815bc4d6c38cf)
This was probably caused by the fact that the only spinbox
visible in the main control panel has an inactive frame border.
In XCode 4, however the spin buttons are generally attached
to an active lineedit frame, so we change the default for 4.8.
Reviewed-by: gabriel
(cherry picked from commit 6c9d808c5726893e9aa673ca8b0cbebae67f641c)
If the macro is set, we should not use cocoa exceptions either, as
this causes compile failures
Rev-By: jbache
(cherry picked from commit cdb5729d8e1ffc4a00b52d6d4bbee34a9820a193)
navigate would not return the right index in the parent if the current
widget was not the visible one.
Reviewed-by: Jan-Arve
(cherry picked from commit fdeeaa9d61efea9cca783a1d4098ae505df24390)
Return Check/Uncheck for checkable buttons.
Partially revive the buttons unit test.
Reviewed-by: Jan-Arve
(cherry picked from commit 6040eeebfb1ab3be3906295c373033cd5b5d9dc3)
Return app name instead of window title for root accessibility object.
Return Window as accessible type for the main window.
Reviewed-by: Jan-Arve
(cherry picked from commit 9a5b0d7a579572cd7e7faf869ab1a6684800f592)
Reviewed-by: Gabriel de Dietrich <gabriel.dietrich-de@nokia.com>
Merge-request: 980
(cherry picked from commit e3cd651d92a9e550fe52360d1be6ae41d0f2ab85)
This had the following negative effect in qmlviewer:
- Every time the qmlviewer logged something to its QPlainTextEdit
(regardless of if it was visible or not) it would call
updateMicroFocus (because appending to QPlainTextEdit would move the
cursor). The result was that the AT client got overloaded with
accessibility state changes, and response time got really bad.
(cherry picked from commit ad50e45311cce712fbe35641cde973d616ff560d)
Reviewed-by: Frederik Gladhorn
(cherry picked from commit a825b3a9e6132842090e43fae85d2c6c61b2def6)
(cherry picked from commit 1b5cb7865eb8b48a2721f9b9c3ccd2fb25f8175d)
Reviewed-by: Frederik Gladhorn
(cherry picked from commit 9a02ad74693f1835745ec20798b353f7e62bcd5e)
Since QGraphicsObjects now can be in the a11y hierarchy, we should
treat them just like we treat widgets.
(cherry picked from commit 860745a4713b29857d14571572504da71a2ca077)
Reviewed-by: Frederik Gladhorn
(cherry picked from commit 4687938fd03ed65306039af6b4e5e192ec8bf491)
If updateAccessibility is called on a QGraphicsObject, walk up and find
the closest ancestor widget with a HWND.
(cherry picked from commit d4291591dfb6a7b1f5c7d00879e8162e84d9ab1b)
Reviewed-by: Frederik Gladhorn
(cherry picked from commit 96406a7dd609e75340f7b4a05726c60c197786b8)
This means that there will be no implicit conversion to windows handles
anymore!
Enabler for making QML accessible on windows.
(cherry picked from commit a3ac7deb5dfe48c5fdd0e170c20b6852c3bb41de)
Reviewed-by: Frederik Gladhorn
(cherry picked from commit d289e54f2d2aa066cb383d8c8249bd7594bdf7b0)
* 'master' of git://scm.dev.nokia.troll.no/qt/qtbase-staging:
Add internal documentation for QUnifiedToolbarSurface.
Fix the autotest condition.
Change the repaint() call to an update().
Fix the update() autotest for raster.
Change the repaint() to an update().
Set the default graphics system to raster.
Revert "Switch the default graphics system to raster on Mac."
Fix an race condition in the auto test.
Fix an race condition in the auto test.
Fix a race condition when the main window is being destructed.
Switch the default graphics system to raster on Mac.
This document is aimed for developers. This is why
it is directly written in the header file. This is
not part of the public API.
Reviewed-by: Richard Moe Gustavsen
(cherry picked from commit 891b6ac7236d21b69bdb54b00051422cee004059)
In show_sys(), if we directly call repaint() this
will triggers too many UpdateRequest events.
This fixes the qwidget autotest
"compatibilityChildInsertedEvents".
Reviewed-by: Richard Moe Gustavsen
(cherry picked from commit 747962e6ec20a59b7e2ed67c5cd685258f199a86)
Forcing to repaint might cause a recursive
repaint. Since there is no apparent reason to
directly repaint, we just call update().
Reviewed-by: Richard Moe Gustavsen
(cherry picked from commit 244fedd484b022881b906b1bc794d5af19d02843)
This reverts commit a5d40fd3814ab7c8e865912c03a918bfd5994998.
We have to fix the regressions due to the raster engine before putting
it by default.
(cherry picked from commit 3197fe2af911673c6291db0102e90a0d7f6ae926)
During the destructor of QWidget, we delete the
layout. If the layout is not set to 0 afterwards,
a check on the layout might turn true, but any access
will end with a segfault.
Reviewed-by: João Abecasis
(cherry picked from commit abc5a632942c23496d75c49b3b0b4a674cdafdf8)
Fix a bug in QVector::append(), it should use the capacity for new size,
when it is implicit shared and capacity is bigger than the new size.
Autotest included.
Task-number: QTBUG-11763
Reviewed-by: joao
Reviewed-by: Olivier Goffart
Animation drivers were changed to used signals instead of virtual
functions, but the default animation driver was left behind.
Reviewed-by: Michael Brasser
* 'master' of git://scm.dev.nokia.troll.no/qt/qtbase-earth-staging:
Skip test on MacOS due to problems with corewlan plugin
Fix QNetworkConfigurationManager usage outside main thread first
Update QTBUG-17223 for Qt 4.8
fix tst_qnetworkreply::httpProxyCommands autotest
Send User-Agent from the network request in http proxy CONNECT command
Add autotests for configuration dependent network proxies
Fix QNetworkReplyImpl error handling
Enable per network configuration proxy settings in QNetworkAccessManager
Allow a network configuration to be included in a proxy query
Fix error handling in write for socks socket engine
QNetworkConfigurationManager creates the engines loaded from plugins
as objects in the main thread.
If a QNetworkConfigurationManager instance is created in a worker thread
without any instance previously existing in the main thread, then it
is uninitialised until the main thread has run.
This causes allConfigurations() to return an empty list if called
immediately after instantiation, for example.
This fix initialises the plugins using blocking queued connections,
which causes the worker thread to block until the initialisation function
has been called in the context of the main thread.
Deadlock is possible if the main thread is for some reason waiting on the
worker thread, but it will not deadlock on QNetworkConfigurationManager's
mutex.
If this is a problem for an application, it should use
QNetworkConfigurationManager from the main thread first to preload the
plugins.
Task-number: QTBUG-18795
Task-number: QTBUG-18799
Reviewed-by: Cristiano Di Flora
In Qt 4.7, http network requests are assigned to http connection
channels before connecting the channel.
In Qt 4.8, channels are connected "blind" as this gives a performance
improvement in certain circumstances.
On the assumption that User-Agent should be the same for all the
requests being sent to the server in a given burst, we use the first
queued request to set the user agent for a http proxy.
Task-number: QTBUG-17223
Reviewed-by: Markus Goetz
Reviewed-by: Martin Petersson
Some proxies can discriminate based on the User-Agent when sent a
CONNECT command for establishing a HTTPS connection.
With this change, if the User-Agent header is set in the QNetworkRequest
then it will be passed to the http socket engine for use in the connect
command sent to the proxy.
As before, "Mozilla/5.0" will be used by default when no user agent
has been set.
Task-number: QTBUG-17223
Reviewed-by: Markus Goetz
The backend was never started when compiled without bearer management,
now it is.
Now emits the error signal in case of startup errors which would leave
the state machine hanging. Previously it just printed a warning.
Reviewed-by: Peter Hartmann
Delayed the resolving of the proxy until the backend is being started.
This is because the proxy settings are not known until after
QNetworkAccessManager has brought the network online using
QNetworkSession.
On Nokia's symbian3 phones, the default network configuration is a
service network containing a list of access points in priority order.
For a typical user, this will include one or more WLAN networks and a
cellular network - each of which can have different proxy settings.
Task-number: QTBUG-18618
Reviewed-by: Peter Hartmann
When Qt is compiled with bearer management support, the network
configuration can be included as a parameter in QNetworkProxyQuery.
This allows QNetworkProxyFactory::systemProxyForQuery to get the right
proxy setting for a specific network. For example a mobile phone could
have network configurations for home WLAN, work WLAN and 3G data
access points, each with different proxy configurations.
Task-number: QTBUG-18618
Reviewed-by: Peter Hartmann
When socks socket engine calls the write function of the native socket
engine, it now propagates errors to the abstract socket.
Task-number: QTBUG-18713
Reviewed-by: Markus Goetz
When refactoring the setPixelSize() code of QRawFont, it was broken
on Mac. To avoid making the same mistake again, I've added a simple
autotest to check that the pixel size is actually set.
Reviewed-by: Jiang Jiang
(cherry picked from commit 821b8b540af491ce60d35bd84d3c91399ecc0d16)
When the matrix has an non-affine transformation, the text will have to
be rendered using the default path-renderer. This means going through
the drawTextItem() path (since drawStaticText() has no support for those
transformations) and it also means not pre-transforming the coordinates,
since the default implementation of drawTextItem() supports
transformations.
Task-number: QTBUG-18214
Reviewed-by: Jiang Jiang
(cherry picked from commit 55446d104db77fc7994ab12352b1c08bb7b63346)
Create a special to_be_moved directory, that will contain files
that are to be moved from QtWidgets to QtGui. This will allow
us to do a first split of the libraries rather fast and we can
then start pulling in these classes one by one.
Since macFontID restricts to quint32, we have to return that in
QFont::handle.
Task-number: QTBUG-17890
Reviewed-by: Eskil
(cherry picked from commit c8f299b7e675c839b16d750cd2633a57cdd0526f)
The class is only used for QGraphicsEffect. When merging
QtOpenGL into Gui and Widgets, the GL nased pixmap
filters will also need to be moved into effects/ and
the pixmapFilter() method in QPaintEngineEx can get
removed.
Remove virtual functions obsoleted by new resource handling
in Qt Designer 4.4. Remove static hash of private objects
for formbuilder.
Requires fd61c9b24d27452df3eb478a81d7e7725fe6f5b4 in qttools.
Rubber-stamped-by: axis
Keep the files as reference to implement the
lighthouse plugins, but move them away from
the main directory hierachy as they won't be
part of Qt5 in any case.
The header field "Cache-Control: must-revalidate" is a strict
requirement for loading the resource from the server, and not reading it
from the cache without revalidating first. With this patch, PreferCache
will load such from the network instead of loading them from the cache,
and AlwaysCache will throw a ContentNotFound error.
Reviewed-by: Markus Goetz
Task-number: QTBUG-18983
The header field "Cache-Control: must-revalidate" is a strict
requirement for loading the resource from the server, and not reading it
from the cache without revalidating first. With this patch, PreferCache
will load such from the network instead of loading them from the cache,
and AlwaysCache will throw a ContentNotFound error.
Reviewed-by: Markus Goetz
Task-number: QTBUG-18983
We should follow
http://tools.ietf.org/html/draft-ietf-httpstate-cookie-23 , which says
parse the value until reaching the next ';' or the end of the line.
Other cookie implementations allow spaces in unquoted values as well.
Reviewed-by: Martin Petersson
Task-number: QTBUG-18876
Create a guikernel/ directory that contains the files that'll go
into libQtGui. What remains in kernel/ will go into QtWidgets.
In addition to that image/, painting/ and text will end up
int QtGui.
When you copy-pasted rich text in which the font size had been set
using setPixelSize() the font size would be mysteriously forgotten.
The pixel size property in QTextCharFormat was added ad hoc, and not
integrated in the HTML exporter.
Task-number: QT-4792
Reviewed-by: Gunnar
(cherry picked from commit 5aa5c2e2935c1829cc6965198968699f17c24ec0)
The SPI_FONTSMOOTHINGCONTRAST macro is not defined everywhere. When
the code was refactored, the workaround for this was lost. This
resubmits the work-around to make it compile.
Reviewed-by: Samuel
(cherry picked from commit 4c3630c1fcd2b3008f540a8906a19c533604f36a)
This is mostly for the xcomposite api, but also we needed to readEvents
after doing a connect
(cherry picked from commit 16c054125949b8f8ceec9626156d8790254a63a2)
Pass version number when creating proxies, use wl_ prefix when looking
up interfaces and drop wl_egl_display.
(cherry picked from commit c2adf9395214d711a3a40516c6c2afa64b3b4ca3)
For GL ES 2 teach the paint device about the fact that it
is doing rendering backed by a framebuffer object,
not a system framebuffer (which doesn't exist).
(cherry picked from commit 3b437a7706efbaaafdc4861393cbe21354cf4ee2)
If the SRGB framebuffer extension in GL is available, we can support
gamma correction of text with a gamma of 2.1. On Mac this is
sufficient for gamma correcting subpixel antialiased text. Gray
antialiasing should not be gamma corrected on Mac.
On Windows, the user can potentially set the gamma value to anything
between 1.0 and 2.2 (or something like that). We support anything
that resembles 1.0 closely enough by pushing the text out without
any correction (like before). We also support anything that resembles
2.1 (the gamma hardcoded in GL's SRGB extension) by turning on the
extension before blending the text. In between the two, we'll use
gray antialiasing to avoid differing too much from the raster engine
(which is our reference in this.)
For gray antialiasing on Windows, we use a constant gamma of 2.3 which
has been determined by experimentation. Since this is close enough to
2.1 we do gamma correction with SRGB extension.
The distance limit of 0.2 is determined by some experimentation.
Reviewed-by: Samuel
(cherry picked from commit 79ba7cceca5e4029876ace2121edd25b08ae14ce)
This will allow us to expose private headers in a controlled manner,
and ensure that they are not used by accident. This also means that
we internally will have to enable the private headers for the
modules we wish to use in the project.
startPolling() is called by each engine, so before it would start
multiple singleshot timers. So I moved the timer to the class
and check if it has already been started before it is activated
again. So that we just use one timer.
Task-number: QTBUG-17219
Reviewed-by: Iiro Kause
Reviewed-by: Kranthi Kuntala
(cherry picked from commit 2506b86828ca8140c2f22d85a4378df40899b132)
Make sure that waitForReadyRead times out if the read buffer is full.
Task-number: QTBUG-16123
Reviewed-by: Peter Hartmann
(cherry picked from commit 8d4cd52b6981a4e6deea7fdb77f56e40c4f3e6ba)
The pixel size in the font engines is already a floating point value.
For maximum flexibility, we should expose this in the public API.
Task-number: QTBUG-18817
Reviewed-by: Jiang Jiang
(cherry picked from commit ac9e63b58533a3215106ed9da82cff3a3e3dda3a)
* QTextCharFormat::AlignNormal - support text format descent, place text object bottom on (baseline - descent).
* QTextCharFormat::AlignBottom - place text object bottom on baseline.
* QTextCharFormat::AlignTop - Still not supported.
* Any other vertical alignment is mapped QTextCharFormat::AlignBottom.
Add new enum AlignBaseline for custom inline objects to take into account font baseline.
Merge-request: 2578
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
(cherry picked from commit ee9455ed2a83084692d969c398ecb91bcd4fc33a)
When shaping a QScriptItem with a multi font engine, currently we
only take the ascent/descent/leading from the primary (first) font
engine in that multi font engine, however, subsequent engines used
during shaping may have larger ascent/descent/leading, disregarding
them may cause clipping issues in some cases.
It's fixed by checking each font engine used in the shaping process
and take the maximum value instead of the first one. On ATSUI we
merely make it compile.
Task-number: QTBUG-16719
Reviewed-by: Eskil
(cherry picked from commit c501403cb5a0c9ec21b00e0c2f640ae85566e0cf)
If the text is wrapped with LRE/LRO/RLE/RLO override/embed marks,
Core Text in Mac OS X 10.5 doesn't produce an empty glyph at the
beginning of the glyphs (while it does in Mac OS X 10.6), thus
we need to prepend an empty glyph here, otherwise cursor position
calculation will consider the first two characters as a ligature
of the same glyph.
Reviewed-by: Eskil
(cherry picked from commit a36ac6c34bafa801c2c30d76f59e4a3594efc4d5)
Otherwise accessing that through QTextEngine::alignLine may cause crash.
Reviewed-by: Samuel Rødal
(cherry picked from commit dcdb62c3d1a76d951c4b65bc1b1bd930e2ad14ec)
When painting horizontally centered RTL text and selection with
trailing spaces, we need to take that space width into account
because line.textAdvance doesn't include it.
Task-number: QTBUG-18612
Reviewed-by: Eskil
(cherry picked from commit 224226727f07e8940e0d3131fe7587b11cc4a6ca)
Since it already transformed text positions based on transform matrix
on QPainter.
Reviewed-by: Eskil
(cherry picked from commit b86c9120710bf1481df5f6541618169a82fd65b8)
It's possible to enable HarfBuzz text layout on Mac by either:
- Set QT_ENABLE_HARFBUZZ environment variable when running a Qt
app.
- configure with -harfbuzz to build Qt, then HarfBuzz support
will be turned on by default.
HarfBuzz will only be used when the font explicitly requested
is supported by HarfBuzz (aka. TrueType/OpenType font), other
fonts (AAT fonts) will still be handled by Core Text.
Using HarfBuzz for text layout will hopefully solve most tricky
complex text shaping bugs on Mac.
Task-number: QTBUG-17728
Reviewed-by: Eskil
Bidi input can in some contexts be more intuitive if the cursor
works in visual way: pressing left arrow key always make cursor
move one character to the left regardless the language of text,
pressing right arrow key always make cursor move to the right.
It is also the behavior of Mac OS X. Based on the above reason
and requests from Symbian we implemented this support for visual
movement in BIDI text. 3 public properties are added to
QTextDocument, QTextLayout and QLineEdit respectively:
- QTextDocument::defaultCursorMoveStyle can be used to control
the cursor behavior in all widgets based on QTextDocument,
like QTextEdit, QPlainTextEdit, etc. When set to QTextCursor::
Visual, it will enable visual movement for all the cursors in
the corresponding text edit. Default is QTextCursor::Logical.
- QTextLayout::cursorMoveStyle is used for low-level cursor
manipulation. When set to Visual, it will enable visual movement
behavior for all the cursor related methods, including cursorToX,
xToCursor and drawCursor. Default is Logical.
- QLineEdit::cursorMoveStyle is used to control cursor movement
behavior in QLineEdit. Default is Logical.:
Task-number: QTBUG-13859
Reviewed-by: Eskil
(cherry picked from commit c480dd641f5d22d1ee72cb27bf39e24c6df65658)
The QFont consists of a d pointer and a resolve mask, and they should
both be copied in the assignment operator.
Task-number: QTBUG-18921
Done-by: Friedemann Kleint
(cherry picked from commit cb5e526c6023237c36aac3446a0a18288f39f3a9)
We would assume the font engine was a FT engine and do a static cast
here, which would cause a crash if the box engine was in use instead.
Task-number: QTBUG-17443
Reviewed-by: Samuel
(cherry picked from commit c9c54682bcd23598ac7a8db3b10e9f18c978e268)
Just a minor clean-up in the QGlyphs docs. Mainly to try to trigger
CI.
Reviewed-by: TrustMe
(cherry picked from commit 774b5b8c6a627fc90fb7382bc907db5d2e8193bf)
Moved the logic to set pixel size into the font engines to avoid
making the platform plugin interface too complex, and added a function
in QPA to make an isolated font engine based on font data. Currently
none of the QPA back-ends supports it, but it compiles and spits out
a warning if you try to create a QRawFont from data there. This isn't
used in QtQuick2 anyway.
Reviewed-by: Jiang Jiang
Since modules cannot rely on QtCore having a build directory, nor
can they build the applications directly into $$[QT_INSTALL_BINS]
each module needs their own bin/. Add this path to each module's
pri file, so others can use their applications
The module specific pris define the modules
name
version
dependencies
include paths
lib paths
additional CONFIGs and DEFINES
They are located in the modules source directory, with fwd
includes created in QtBase/mkspecs/modules build directory.
The pris use
QT_MODULE_INCLUDE_BASE
QT_MODULE_LIB_BASE
to specify the locations for includes and libs. These paths
are normally based on
QT_INSTALL_HEADERS
QT_INSTALL_LIBS
for installed modules, but overridden to the module's build
directory by syncqt for the fwd included pris.
The path of the pris must be specified in the sync.profile
for syncqt to create the fwding pris in QtBase.
This is the beginning of revision history for this module. If you
want to look at revision history older than this, please refer to the
Qt Git wiki for how to use Git history grafting. At the time of
writing, this wiki is located here:
http://qt.gitorious.org/qt/pages/GitIntroductionWithQt
If you have already performed the grafting and you don't see any
history beyond this commit, try running "git log" with the "--follow"
argument.
Branched from the monolithic repo, Qt master branch, at commit
896db169ea224deb96c59ce8af800d019de63f12