Commit Graph

239 Commits (ec4d346f95de4933b660d5ce005751abdced4c7d)

Author SHA1 Message Date
Alexander Potashev ec4d346f95 Allow using not only prefixes for undo command text
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)
2011-05-10 12:54:56 +02:00
Pino Toscano e04ad81dc4 QFileSystemEngine::currentPath(): use QFileSystemEntry() also for the no-PATH_MAX case
... 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)
2011-05-10 12:54:56 +02:00
Bradley T. Hughes a6c8d0ba56 Do not allow multiple threads to acquire a QMutex
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)
2011-05-10 12:54:56 +02:00
Robin Burchell 0bb70c3164 Ensure that QDateTimeEdit::calendarWidget() will always return a valid widget.
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)
2011-05-10 12:54:56 +02:00
Oswald Buddenhagen 202df2ae89 don't crash in QProcessEnvironment::systemEnvironment()
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)
2011-05-10 12:54:56 +02:00
Peter Hartmann f38a639a41 HTTP backend: do not load resources from cache that must be revalidated
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)
2011-05-10 12:54:56 +02:00
Denis Dzyubenko bf89190cfb Compile fix for QLocale on Symbian.
The previous change added new ELangEnglish_India that doesn't
necesserally present in all SDKs.

Reviewed-by: trustme
(cherry picked from commit 154ab1cb4c4cdf34f21fc93b078f91cc79048bd4)
2011-05-10 12:54:56 +02:00
Denis Dzyubenko 563ab2e16c Added Kazakh language to the QLocale mapping table on Symbian.
Reviewed-by: trustme
(cherry picked from commit c6808af66d45541546b30c8e6de155b9812b4ef9)
2011-05-10 12:54:55 +02:00
Denis Dzyubenko fc7aaa5c48 Added support for QLocale::uiLanguages on Symbian.
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)
2011-05-10 12:54:55 +02:00
Olivier Goffart 74dda83074 Fix drawing text in item view:
Put back code that was removed by mistake in e8019cf8feb402303e6d253f5ca58bebfda42679

Task-number: QTBUG-18998
(cherry picked from commit bbbd4b8f3949b58d4fd21854241cb46cbc024a80)
2011-05-10 12:54:55 +02:00
João Abecasis 1787e557e8 Don't rely on uninitialized data
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)
2011-05-10 12:54:55 +02:00
João Abecasis e6e6e4c169 Don't realloc user-provided buffer
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)
2011-05-10 12:54:55 +02:00
Samuel Rødal 978fc98bff Fixed bug in X11 backend when creating translucent windows.
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)
2011-05-10 12:54:54 +02:00
Janne Anttila 2d07ca2cbd Clarified sendCustomRequest documentation to include HTTPS
Reviewed-By: mgoetz
(cherry picked from commit 16b8c940dac02ec77e6ff9fe4150c32db1811e74)
2011-05-10 12:54:54 +02:00
Olivier Goffart 94beee1c37 Fix compilation
Conflicts between 61c6d66b7efd8de4a83b021e7c4ef2b1a803ece2 and 940f16babab76b328b7c9bfdb5435102c689b76b
(cherry picked from commit 7a20cf9d4419cf1a5a9a4ed450b03caa8716fd58)
2011-05-10 12:54:54 +02:00
Oswald Buddenhagen 8b7bebd45d no environment on WinCE
(cherry picked from commit 62e73a463cb7035192acdce6538c5b0248e643d4)
2011-05-10 12:54:54 +02:00
Oswald Buddenhagen 8bc9f1ca62 fix Widestring vs. Ansi mixup
(cherry picked from commit 4dcb4a41022085aa82f25f7e0a2ce9e92510f4ae)
2011-05-10 12:54:54 +02:00
Oswald Buddenhagen 575410f466 fix potential crash in QProcessEnvironment::systemEnvironment() on windows
GetEnvironmentStrings() can theoretically return null
(cherry picked from commit 443608952d7df9a5146317be992320ba232d2cf9)
2011-05-10 12:54:54 +02:00
Armin Berres 0b2f70a5de Only cleanup share widget if it has been created.
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)
2011-05-10 12:54:54 +02:00
Liang Qi 046befd0c4 Get rid of "typename, typename" for TEMPLATE_TEMPLATE_PARAMETERS.
Because Qt doesn't support that feature before.
(cherry picked from commit c12ed14fb38ae77be194e19a27545190aded830b)
2011-05-10 12:54:54 +02:00
Olivier Goffart 91f5144f90 Compile with msvc
msvc tries to instenties the return type of overloads that are not chosen by overload resolution
(cherry picked from commit 7307d712e10783b57c4c95c8390a9455b69f473a)
2011-05-10 12:54:54 +02:00
Olivier Goffart 9c39117419 compile with windows
MSVC doesn't pick up the right template partial specialisation.
(cherry picked from commit 0188f5ee18d00ae18e65a03c712d3f701e84fa80)
2011-05-10 12:54:53 +02:00
Olivier Goffart 7efa2f6aab get rid of the DisableIfSame hack
By changing the order of the parametters, in a way it is unlikely to clash
(cherry picked from commit e9d198b5928e1adf678796c098113bc307ef53f5)
2011-05-10 12:54:53 +02:00
Liang Qi 5d85018720 Rewrite the interfaces of QtConcurrent.
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)
2011-05-10 12:54:53 +02:00
mae a9a850952b Fix namespace issue with the global static
(cherry picked from commit c99be6bf73dce10fc706764b72a8dacc1c6589a0)
2011-05-10 12:54:53 +02:00
Matthew Cattell c500291e42 Fixed bug in QPdfEngine::addImage causing mono images to be made 32 bit
Regression from 4.5 causing performance and size degradation.

Task-number: QTBUG-18997
Reviewed-by: Samuel
(cherry picked from commit 18122b473ecbd85ba953f70743b1756358bf7c0c)
2011-05-10 12:54:53 +02:00
mae 42452a32bf Fix regression with QSettings patch
The plugin loader is used without QCoreApplication.
This fixes 31ef8fa6abc2ea23c6f0a996b36494d88aafb0b5
(cherry picked from commit 988871dabf3c949ffc71d126131281a3ae641ebf)
2011-05-10 12:54:53 +02:00
Jani Hautakangas c0da3003df Fix trailing whitespaces
Reviewed-by: TRUSTME
(cherry picked from commit d4fd21f746b536eaddbdd7a07f1d717ef18278e7)
2011-05-10 12:54:53 +02:00
Jani Hautakangas 806873f9af Fix for native child widget performance issue.
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)
2011-05-10 12:54:53 +02:00
Oswald Buddenhagen 95e57339a9 fix build on symbian
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)
2011-05-10 12:54:53 +02:00
Oswald Buddenhagen 4d8cf47178 fix build on mac
environ needs to be declared properly
(cherry picked from commit aae6ef391d2ee2fa5b91c834ea65f14fd61e5af6)
2011-05-10 12:54:53 +02:00
Oswald Buddenhagen 61b85df09b make QProcessEnvironment on Unix cache converted values
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)
2011-05-10 12:54:52 +02:00
Oswald Buddenhagen 5a4df43c71 make QProcessEnvironment::systemEnvironment() encoding-safe
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)
2011-05-10 12:54:52 +02:00
Oswald Buddenhagen 9ff8d1c34a make QProcessEnvironment on Unix cache converted variable names
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)
2011-05-10 12:54:52 +02:00
Oswald Buddenhagen 299d10549f move key/value converters to the private class
this will enable them to access other members later

Reviewed-by: thiago
Reviewed-by: dt
(cherry picked from commit a2d70d71c8c7652ded41d5d603672c3927df44e6)
2011-05-10 12:54:52 +02:00
Oswald Buddenhagen 4212ee7ec7 make QProcessEnvironment on Windows preserve variable name case
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)
2011-05-10 12:54:52 +02:00
Oswald Buddenhagen 3ab236d77b split QProcessEnvironmentPrivate::Unit into Key and Value
Reviewed-by: thiago
Reviewed-by: dt
(cherry picked from commit 11a79c65ea992be0e2ede7dc8f60660c9190291f)
2011-05-10 12:54:52 +02:00
Oswald Buddenhagen 1e9a4bce9d remove unused functions
Reviewed-by: thiago
Reviewed-by: dt
(cherry picked from commit e989a4d375b279b3ea61139cb07596e0e4b79e28)
2011-05-10 12:54:52 +02:00
Oswald Buddenhagen e608887ee4 minor optimization: use QList::reserve()
Reviewed-by: thiago
Reviewed-by: dt
(cherry picked from commit 6a53f17c7039f1a5405912a4a645572e215410bb)
2011-05-10 12:54:52 +02:00
Oswald Buddenhagen 9590b7b662 use the Hash typedef
Reviewed-by: thiago
Reviewed-by: dt
(cherry picked from commit 10fd0d3e5c88c7b0265db3acdd75cb3d6f35ee63)
2011-05-10 12:54:52 +02:00
mae 4b75ceea08 Reduce open and stat system calls for QSettings
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)
2011-05-10 12:54:52 +02:00
Samuel Rødal 5c791cc0d5 Fixed off-by-one in radial gradient color table index computation.
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)
2011-05-10 12:54:51 +02:00
Thorbjørn Lindeijer cd650da45a Revert "Added QStringRef::toLatin1 and QStringRef::toUtf8"
This reverts commit feabda665de62a0f6a82d831b45926697f30b45b.

They were already added by Denis Dzyubenko in commit 2916b074.
(cherry picked from commit ffe0a2ec7c1f4412792a977401bdc4dbf6c76acd)
2011-05-10 12:54:51 +02:00
Olivier Goffart 9c8734dccb Fixes warnings about unused variables
Reviewed-by: Samuel
(cherry picked from commit 28061caa38d94de85db9aec743d1efba33c1e46f)
2011-05-10 12:54:51 +02:00
Olivier Goffart 138cf4373b Fixes warnings about unused variables
Reviewed-by: jbache
(cherry picked from commit e8019cf8feb402303e6d253f5ca58bebfda42679)
2011-05-10 12:54:51 +02:00
Olivier Goffart c6e1ee2b28 Fixes warnings about unused variables
Reviewed-by: Peter Hartmann
(cherry picked from commit 61c6d66b7efd8de4a83b021e7c4ef2b1a803ece2)
2011-05-10 12:54:51 +02:00
Olivier Goffart 12c96812f9 Fixes warnings
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)
2011-05-10 12:54:51 +02:00
Olivier Goffart bd64c94a26 Fixes warnings about unused variables
Reviewed-by: Samuel
(cherry picked from commit ddd253e14318af45e5c56df736028b88257068c4)
2011-05-10 12:54:51 +02:00
Thorbjørn Lindeijer e8ac3549c5 Added QStringRef::toLatin1 and QStringRef::toUtf8
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)
2011-05-10 12:54:50 +02:00
Laszlo Agocs b9f6b156c6 Make translucent windows working properly with OpenVG.
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)
2011-05-10 12:54:50 +02:00