Make sure that dpy->request == dpy->last_request_read after setting
up a new window. If we don't do this, last_request_read might never
be updated until the difference hits a limit that can lead to hangs
in the application (see e.g. QTCREATORBUG-8373).
Task-number: QTBUG-29106
Change-Id: I390493ca6f966dc105d3ea3a2c48abec01177bc2
Reviewed-by: Uli Schlachter <psychon@znc.in>
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
GCC 4.3 had support for decltype but not the new function syntax (which
we call "auto function" for short). That meant the code did not compile.
qtconcurrentrun.h:105: error: expected initializer before ‘->’ token
Task-number: QTBUG-28984
Change-Id: I792276ec59c4f6e73f6137c517636e70c71ed849
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Drop the read and write permissions for group and other users in the
system.
Change-Id: I8fc753f09126651af3fb82df3049050f0b14e876
Reviewed-by: Richard J. Moore <rich@kde.org>
eventfd(7) uses less resources than a pipe, as it only needs to store a
single 64-bit integer, as opposed to a full buffer.
It was introduced first on Linux version 2.6.22 and glibc 2.7. However,
both the configure-time test and the runtime usage require the use of
EFD_CLOEXEC for thread-safety, so this code will be enabled only for
Linux 2.6.27 and up as well as glibc 2.9 and up.
Change-Id: Ic7e10b28d7b1d4ca24be614ed84055c4429a68e4
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Some of it still referred to classes that were cleaned up in Qt 5.0
Change-Id: Ief4ed4b4fce074884f755b0d18a526ac40ad1b0b
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
This is a very common thing to do, e.g. in order to send urls via DBus.
Change-Id: I277902460ee1ad6780446e862e86b3c2eb8c5315
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Had to move QTextStreamPrivate to a private header, to be able to use
its new internal Params struct from qdebug.cpp
Change-Id: If28e25f27bbd04b1825a5eb3e2ef83ecad72e7b2
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
This is needed by QSaveFile.
Move QTemporaryFilePrivate to that header too, to avoid any confusion.
Change-Id: I8dce8a4fb853a9823c49ec565867432331e748cd
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
QFSFileEngine::rename() on Windows doesn't overwrite the existing destination.
Keep that unchanged (it's the desired behavior in QFile::rename), and
provide cross-platform rename-overwrite behavior in the new method.
This is needed by QSaveFile.
Change-Id: I5e753d289d8a53692530a48a1783d62e26169cdc
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
ShellExecute fails to open a share folder due to using '/' instead of '\'.
Windows API doesn't support forward slashes for extended-length path.
Extended-length path are path that start with a "\\?\" prefix. For example,
"\\?\c:\very_long_path\foo\bar.txt", or in the case of a UNC path that
would be "\\?\very_long_path\foo\bar.txt". [1]
[1] http://msdn.microsoft.com/en-us/library/aa365247%28VS.85%29.aspx#maxpath
Task-number: QTBUG-13359
Change-Id: Ibb113abeebd56f106f76520bc23dba797de548fa
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
QMessageAuthenticationCode is HMAC implementation based on
QCryptographicHash abilities. HMAC is often used in OAuth and similar
authentication protocols.
Change-Id: Ifc73947ad06c36a1b770315b7e89ba5c01c5e79e
Reviewed-by: Richard J. Moore <rich@kde.org>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Restrict disconnect() to the clicked() signal, leaving connections
to destroyed() (as used by QStyleSheetStyle) intact.
Task-number: QTBUG-20292
Change-Id: I7471b4d1262ec0684e4446b5c17513717c502749
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Avoid using realpath(X,0) on Mac OSX at all, since
even on versions of OSX where realpath(X,0) is supported,
we still get the legacy version due to our compiler flags.
If we were to change the -mmacosx-version-min to 10.5 or
higher then this patch would be safe but unnecessary.
Task-number: QTBUG-28282
Change-Id: Iee21003f3e9616482483a05ceee706b476091914
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
The platform specific CFLAGS, most notably -march=armv7-a, were only
added to QMake's _RELEASE flags but not to the _DEBUG flags.
This then resulted in strange compilation errors such as this one:
http://qt-project.org/forums/viewthread/22141
Change-Id: Ib47996c6946b043294437e8543827da270df836d
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
in qt5, gtkstyle use gtk_widget_send_focus_change, this had a side
effect that will trigger real gtk im module, if qt load the same qt and
gtk im module for same input method, it will cause conflicts for qt im
module. The only gtk widget have im-module property is GtkEntry and
GtkTextView, since only GtkEntry is used here, we only need to override
im-module for GtkEntry.
gtk-im-context-none exists in gtk+ since 2.19.5, and for older version,
it will also harmlessly fallback to gtk-im-context-simple.
Change-Id: I4ffb93453e77c8d5db3349b084342bdca8e4a571
Reviewed-by: Liang Qi <liang.qi@digia.com>
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
Because this method creates a QSocketNotifier, it needs
to be split into a part that is run on initialization, namely
QQNXLocaleData::initialize(), and one that is run delayed
through event loop invocation, namely QQNXLocaleData::installSocketNotifier().
Task-number: QTBUG-28701
Change-Id: Ib60000902692bbca4820d3d0bc7719212668dfa9
Reviewed-by: Laszlo Papp <lpapp@kde.org>
Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Change-Id: I3ea2556769703a8cd4c2931cc2332ab0733fbea6
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com>
The minimum GTK+ version was bumped from from 2.10 to 2.18 (sep 2009)
in commit 2cce297b58.
Change-Id: I77a48c8a3b0955b00e399f714949d08293abbebd
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
CoreText segfaults when creating paths for color-glyphs:
0 0x00007fff8fd41e69 in TFont::FindColourBitmapForGlyph ()
1 0x00007fff8fd417ac in TFont::CreatePathForGlyph ()
2 0x000000010567d1af in QCoreTextFontEngine::addGlyphsToPath (...)
So we shortcut the code-path, since we don't support Emoji yet anyways.
Task-number: QTBUG-28615
Change-Id: Ife16ae4959077d9eaaf6ea5cd1f27a4e2e01e7f5
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
A division by zero occurred since an empty model was used.
Task-number: QTBUG-28611
Change-Id: I1f9e869bda9f76a1c97840dff6ba48ab813bce9a
Reviewed-by: Janne Anttila <janne.anttila@digia.com>
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
QDBusReply allows one to extract a QVariant and the type reply from an
error reply and getting a default-constructed value. This is useful when
a valid reply can never contain the default-constructed value (0, false,
empty strings, empty arrays, etc.), so it simplifies error checking.
More importantly, qdbusxml2cpp was changed a while ago from generating
QDBusReply to generating QDBusPendingReply, so we need to have the same
behavior.
Task-number: QTBUG-29046
Change-Id: Ia873b9fd4311c0d4e94f0ef623ba405c20bc0e8c
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Currently /etc/openssl/certs is symlinked to
/var/certmgr/web/user_trusted, but this will be changed in the future.
/etc/openssl/certs is the folder to be used to read the root certs.
Change-Id: Ic037e5075ec7ee50c132fe08dc69abbe585e32e4
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
This test runs fine almost all of the time on systems with 1
processor, which were the norm when the test was written and are still
the way that the Qt Continuous Integration system works as of
today. But it falls flatly on multi-processor systems.
The root of the problem is that QSystemSemaphore recreates the
semaphore if it disappears underneath it. However, the recreation
process is not thread-safe at all: if two threads race to recreate it,
weird things might happen. strace on Linux shows that a thread got
stuck trying to acquire the semaphore:
<... nanosleep resumed> NULL) = 0
stat("/tmp/qipc_systemsem_market5c9f73af73334ffe350c60ec076e5744db0ecda3", {st_mode=S_IFREG|0640, st_size=0, ...}) = 0
stat("/tmp/qipc_systemsem_market5c9f73af73334ffe350c60ec076e5744db0ecda3", {st_mode=S_IFREG|0640, st_size=0, ...}) = 0
semget(0x51001388, 1, IPC_CREAT|IPC_EXCL|0600) = -1 EEXIST (File exists)
semget(0x51001388, 1, IPC_CREAT|0600) = 114786308
semop(114786308, {{0, -1, SEM_UNDO}}, 1 <unfinished ...>
This problem does not happen if the creation and destruction of the
QSharedMemory (which uses QSystemSemaphore) does not race with other
threads or processes attaching and detaching. For the threads test
it's easy. For the processes, we use stdin and stdout as a
communication channel.
Change-Id: Ie11b135431d4abfc59234654848b67f622eb03c9
Reviewed-by: Richard J. Moore <rich@kde.org>
On Mac, GCC and Clang print "(framework directory)" at the end of the
directory listing for includes if that's a framework dir. The directory
with "(framework directory)" at the end does not exist, so it doesn't
affect anything by being there.
But we don't have to keep the list longer just for that.
Change-Id: I3d031d3d15c75801ec0d6112b2c913bd63e5def3
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
These headers are technically private API, since they include private
headers. They should be _p.h actually, but that change I'll leave for
5.1.
Change-Id: I2dec222854e147da0fc166de311012472954012e
Reviewed-by: Mark Brand <mabrand@mabrand.nl>
Task-number: QTBUG-29056
QOpenGLContextGroup object is designed to be destroyed by deleteLater(),
but this method will not always work due to the fact that in many cases
event loop will exit before the deferred deletion of the
QOpenGLContextGroup object is queued. Think about the following case:
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QGLWidget w;
w.show();
return a.exec();
}
In the above program, the event loop will exit before QGLWidget object's
destruction. This will cause the QOpenGLContextGroup object hold by
QGLWidget object never been deleted.
This patch will delete QOpenGLContextGroup object directly with delete
operator if the current thread is the same as the thread which the
QOpenGLContextGroup lives in.
Change-Id: If835d7482474f4a668763fc7c21b293a27f075fd
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
This convenience overload allows one to write
QRegularExpression re1, re2, ...;
QRegularExpressionMatch match;
QString subject;
if (subject.contains(re1, &match)) {
// ...
} else if (subject.contains(re2, &match)) {
// ...
} // ..
One can then inspect the results of a successful match in each block
(as well as extracting the captured substrings, etc.).
Change-Id: I0fb8be8b577656e8db994198f8105c26c4fe67b0
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
This allows to put them in containers, and to enable subsequent
features for QString.
Change-Id: I3b3fe695ffe6930331ed9f670738376722e0fc36
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Explicitely pass the number of capturing groups for which the
offsets should be reserved in the capturedOffsets vector,
instead of relying on it adding 1 (for the implicit capturing
group #0).
In case 0 is passed, don't allocate any space for that vector.
This is being used in case of NoMatch match type or failing
match (invalid regexp, out of bounds offset, etc.).
Change-Id: I0ec7646d5bd53e7a7973177100b163a5e5030307
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
On Mac if AssertMacros.h has already been included then it defines
verify which conflicts with the verify static function. Therefore we
just undef this if is already defined.
Task-number: QTBUG-27316
Change-Id: I5960e504c4efa4fc4ff65ba66bbd7decb33ffc62
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
This ensures that unexpectedly stopped (for example, when minimizing
a window) style animations are removed from QCommonStyle.
Task-number: QTBUG-28978
Change-Id: I1403502d85e0614d8644892a2231938c29a8c9c2
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
Avoid runtime dependencies to e.g. libpwinthread-1.dll, libstc++-6.dll.
This prevents Qt Creator from spitting out error dialogs on each startup
for registered MinGW versions that aren't in the default PATH.
Change-Id: Id55518db8c8e0521b6a41add1eaf38f75a892c8b
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
qmake tries to replace all occurrences of the install prefix with a
literal ${prefix}. of course this would mess up build paths which happen
to live under the prefix (this is untypical, but still), which would
break the sed magic in the subsequent install step.
as qmake itself has no use for the .pc files, it's ok to target them
directly for the install dir. we do the same with the include and lib
dirs already.
Task-number: QTBUG-28807
Change-Id: I53d7f0f3b357f67f30bea07554794f60160376cd
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
... instead of a zero configuration. That is documented already for
QNetworkAccessManager::setConfiguration().
Task-number: QTBUG-28973
Change-Id: Idba5be990745069667a50c85286cf530580d4efe
Reviewed-by: Lorn Potter <lorn.potter@jollamobile.com>
Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
Implemented QAccessibleActionInterface in QAccessibleTableCell to allow
selecting and unselecting table cells, as there was no way of selecting
or deselecting a simple cell using accessible tools.
tst_qaccessibility.cpp was modified to test the new methods.
Change-Id: I7bdfe0b363a9813d4a7c62e96b6c924b163f2121
Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
This is done to support texture uploads in an image provider. It ensures
we can load the texture using QImage in the image provider, and when
it is later painted as a pixmap, the cacheKey will be identical
(assuming no format conversion was required).
Change-Id: I54229511ed91ce5430cc478af5aff0d96685a2da
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
Also, allow to set menu-wide font (instead of per menu item),
and minimum width.
Change-Id: I5f83f260602f55b9409ad69abf670afb59b2d33a
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
Introduce a function named deleteClonedAnimationStyleOption() in
qwindowsvistastyle.cpp to delete style option cloned by
clonedAnimationStyleOption() to prevent object leak which is hold by the
actual style option object.
Change-Id: I1afd95ddab237059ce3460ac0b52a65de102eaa5
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Change 8927084d0a made a mistake in
reversing the boolean logic of the type >= TxProject logic,
causing us to try to use the font engine for perspective
transformations instead of falling back to QPainterPath.
Change-Id: Ideb59751ace23ab83f8ebd4f02dbe6c1724644a5
Reviewed-by: aavit <eirik.aavitsland@digia.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
One of the IPv6 autotests was always disabled instead of being disabled
only when the system has no IPv6 support.
Change-Id: I34dffbeae6ba85a706bfeb0cc4750a4514b73a65
Reviewed-by: Peter Hartmann <phartmann@rim.com>
The test for a magic reason was not build by default.
Change-Id: I21c7fc959d76d6faac0091495f965f3da6d415b1
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
This was another bug resulting from modularization.
qdoc is now run twice for each module in Qt 5.
First, qdoc is run with the -prepare flag for each
module. The only thing qdoc generates is the .index
file for each module. Then qdoc is run with the
-generate flag for each module. Here, for each
module, qdoc first reads the .index files for the
modules on which the current module depends. Then
qdoc generates the docs for the module.
qdoc was not reading the index files for the
prerequisite modules, when it was run in the
-prepare phase. This has now been corrected.
qdoc now reads the prerequisite .index files
in both the -prepare phase and the -generate
phase.
Note that this requires that the order qdoc
runs in the -prepare phase must be the same
as the order of building modules when building
Qt 5.
This change also tells qdoc to ignore nodes,
when traversing its main data structure to
output docs, if the nodes came from reading
a .index file, because the docs for these
nodes are generated in the -generate phase
for their respective modules.
Task-number: QTBUG-28508
Change-Id: Id73652ae1c4022e4c9e4f199caab12a854e5f9b4
Reviewed-by: Lars Knoll <lars.knoll@digia.com>