the problem is that there is no sed command on windows ... so build it
into qmake and invoke that from the generated makefiles. cmake does the
same, after all. ^^
Task-number: QTBUG-33794
Change-Id: Ib7077e18acbc5edd79f714c5779a5ed31ea6c093
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
The regular expression does not parse correctly when a device option value
contains the character '=' (e.g. QMAKE_CFLAGS="-D_FILE_OFFSET_BITS=64").
In order to break string at the first equal sign and to simplify code,
use "cut" command as in other places in configure script.
Task-number: QTBUG-33584
Change-Id: I05b474d2ba6bff84c1e40d00475963bab36d94b6
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Allows the macx-xcode mkspec to be a wrapper around other mkspecs.
Since QMAKESPEC can now be set in the spec, we have to ensure not
to append to QMAKESPEC.
Change-Id: Idf33ff38147f14c488f14b426c02d9a739fdaecf
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
When we build qml plugins, we now depend on embedding
the uri of the plugin into its meta-data using the new
-M switch to moc for static builds.
This patch will let this happen automatically whenever you
call load(qml_plugin) from your pro file.
With this patch, you only need to rebuild your plugin
to support static applications.
Task-number: QTBUG-28357
Change-Id: I99e2fc80688fa43cf734551553f4fa0cb5ed47ed
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
The pointer can be null. Going trough the reference invokes undefined
behavior here.
Change-Id: Ia84e4e732cdcbbaee0f5f0679765d18069ea8b2d
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
The Xcode generator does not support exclusive builds, but still
generates projects that contain both debug and release configurations,
each with hard-coded differences such as whether or not to strip or
to generate debug symbols.
As a stop-gap solution we allow projects and mkspecs to add extra
settings that are limited to a given build. Long term we want to
rewrite the Xcode generator to support exclusive builds, but that
is a much bigger task.
Change-Id: I85056164bb1b3c8c6e0cf66410348cca7138eca5
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
Trying to do as few operations as possible once the file got opened.
That includes generating the data which will go in the file. Indeed if
we crashed at that point the lock file is already emptied. Could happen
because of the qAppName call. It's then safer to prepare the data
upfront, and just open/write/close if possible.
Change-Id: Iad32fa822c6a5958ae89d84a2fe02ed5366ea278
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
Eases migration from QList to QVector.
Had to rename the 'length' parameter to mid() to suppress
-Wshadow warnings.
Task-number: QTBUG-3781
Change-Id: I755c6caefe4de81ea42a81b1c76aab728e639613
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Shared between UNIX and Win generators, and allows prfs after
default_post to rely on sane TARGET and DESTDIR values.
This allows us to clean up the DESTDIR logic in testcase.prf,
which was completely busted. Doing the two in separate commits
is unfortunately not possible as the old testcase.prf logic
was so broken it would barf if only looked at.
Change-Id: Ibf21216195c760ee46ae679c162b207b77a9d813
Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
The cursor needs to be within the view from start on Mac.
Task-number: QTBUG-33973
Change-Id: I313c9fd1c3a917e135a92497f1818d1b0d8b7698
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
This module doesn't make much sense for iOS.
Change-Id: Iadcf3006e1e2bdd97c460e836e91717856cb118c
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Iikka Eklund <iikka.eklund@digia.com>
Qt WebKit's HTML5 web notifications rely on QSystemTrayIcon::showMessage
to be invokable since the lower WebCore components can not link directly
to QWidgets.
Change-Id: I952de47ed8a90553a8f1ac30256d77ef6014da44
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Change check of QAtomicInt::load with the preferred ref() deref() pattern.
Change-Id: I12d2e24812259c16623c8a59cac30cafa4b05565
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Exclusive builds uses setExtraConfigs to apply the particular CONFIG
of each build pass. Unfortunately we were not applying these extra
configs early enough in QMakeEvaluator::visitProFile() for them to
be picked up/usable by default_pre, something that can be useful.
Change-Id: I423a4688250a15f0c1a2cc65a48f0bbc14ad4497
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
The extra variables only need to be applied once, when we
are loading the pro file (and hence are loding pre files),
not for every single pri/prf that's loaded as a result of that
(which do not load pre files themselves).
Change-Id: I3118694a8eeccf2dc32c4f62df754033fad13528
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Enabling vsync and double buffering improves the overall impression.
Enabling by default helps to get the best "out of the box"
If not desired, one can disable this behavior via:
export QT_EGLFS_IMX6_NO_FB_MULTI_BUFFER=1
Change-Id: I21ce5366ea5829140d8103cf2dbd8c487d079db6
Reviewed-by: Donald Carr <sirspudd@gmail.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
The IsInContact API is not reliable on phone, so use IsLeftButtonPressed
instead.
Change-Id: If17089f976586879355f127dadbe394b57afe3c3
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@digia.com>
Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
While some functionality is not available for winphone
(QFileSystemEngine::tempPath), some functionality can
be fully supported. Other cases like checking for stale
processes which is needed by QLockFile cannot be covered
that easily as obtaining information about other processes
is limited due to sandboxing.
Change-Id: I9ea80ae2b421eea1ddfd4c5bc2f4b6f8adaee85f
Done-with: Kamil Trzcinski
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@digia.com>
Make sure we deallocate the scaled rawfont, when it is not used due
to a cached engine being used instead.
This fixes a major memory leak in Qt WebKit when using Small Caps in the
complex font path. The complex font path is always used for small caps
since Qt 5.1.
Task-number: QTBUG-33576
Change-Id: I500db9ae6f6576734f1a972387a1a488218a9db6
Reviewed-by: pierre.rossi@digia.com
Reviewed-by: Pierre Rossi <pierre.rossi@gmail.com>
When CSS was set in the head tag then it was not being inherited by the
child tags. This ensures that the inhertiance happens and that the deeper
the CSS is set then it will ensure that it has precedence over the ones
set on the parent.
A test is added that shows the standard inheritance from the head tag and
the precedence from child tags in effect too.
Task-number: QTBUG-28770
Change-Id: I30be3ec141b2cd8d6e0db8a92669aed34da93b33
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Currently the mouse cursor is shown by default and it can be
turned off by setting QT_QPA_EGLFS_HIDECURSOR to a non-zero
value. This is now enhanced with an automatic detection step
via QDeviceDiscovery (the helper the input code use anyway).
From now on if QT_QPA_EGLFS_HIDECURSOR is not set, the cursor
is shown only if a mouse device is present in the system.
This could later be enhanced further by showing and hiding the cursor
dynamically during runtime although that will not be of much use for
embedded platforms without libudev.
Change-Id: I7e4b85ea8807200871c88fc42b11ab2adac90d32
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
This avoids crashes in case where qWarning() would be called from a
global static deleted after the one holding the default category. I
encountered this case with a QLockFile locked from a global static while
the application quits, it was calling qAppName which was triggering a
qWarning as the qapplication object was gone too.
Change-Id: I8910e8559d063e8f0a737bae3da5edc481ab84d3
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
The Qt Simulator is no longer supported with Qt 5.
Change-Id: I0f98351d482dd0554ea0754746d56f94ee6bf22f
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
The JNI classes in Qt Android Extras are changing name from QJNIXxx to
QAndroidJniXxx and they need to be friends of the private JNI classes
in core.
Change-Id: Ib5e1729f4bbba876b7d3eba5742fe750f95c48f7
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
The Android 4.3 keyboard will cause setComposingRegion() to be called when
backspacing over an existing word. If we don't implement that, the editor
will be out of sync with the input method.
Task-number: QTBUG-32955
Change-Id: I6c4ff786269a4e74c70a093c5f03c4c5a5727dd5
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
When outputting the deployment settings on Windows, the paths might
have backslashes. These need to be escaped, otherwise they will simply
be removed by the JSON parser (or converted into whatever they happen
to represent given the neighbouring character.)
Task-number: QTBUG-33926
Change-Id: I11f1bc7d1f8082c73329bdc02fb8d653a0b5c0ee
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Before we add the current cluster we need to check if there's
space for it. Calling checkFullOtherwiseExtend() also has
the side effect of resetting the space data. We would add
the cluster without checking for space when showing separators,
causing broken behavior like we would count the space in the
current item as trailing space, which would make us chop the
end of the string.
Task-number: QTBUG-28832
Change-Id: I8169662218ff6e645575d4e89a57f6b234f3c4cb
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
When targeting API level 13 or higher, you need to explicitly
subscribe to configuration changes for screen size, otherwise
surfaceChanged() will not be called when you change the
orientation of the screen.
Task-number: QTBUG-33140
Change-Id: I48fd1d298c408802d1743736f62128cd0eec8983
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
Separating the compositor into a separate source file improves the
chances of possible future reuse and paves the way to supporting
multiple GL windows. Tooltips are now working too. Implemented a few
window functions like raise() and lower(). Fixed the qFatal for
multiple GL windows to be raised in non-SDK based Android builds too.
Change-Id: Id94d2fb2a4382766f3d130eebe1e6f397a535852
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
This seems to cause issues with menus on certain Windows machines.
Task-number: QTBUG-33653
Change-Id: I8c31dd3ba5ccc6eb0551048401051d819f49a8c1
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
For MSVC 2008 make_tuple is in the tr1 namespace.
Change-Id: I4a51f6cabdf068993869b404b12ed1484a21a9d4
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
It has no effect when the compiler doesn't support it.
Task-number: QTBUG-33952
Change-Id: I23b1fcdf4ec31924b1b59987846f7e0fbf17c6c9
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
This makes it so that two QVariants created from the same
QIcon (or from QIcons that were assigned one from eachother)
compare to true.
Unfortunately creating two QIcons with the same path and
comparing them still gives false as they have different cacheKeys
Change-Id: Iafe2bc4082a830f9c6469f083c26a7abbe4b35c5
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
We already supported re-entering QApplication::exec(), so adding support
for handling a generalized QEventLoop::exec() was nothing more than
removing the qApplication->in_exec condition in processEvents() and
the QThreadData::current()->quitNow condition when interrupting the
event loop. Everything else is just renaming and rewording, now that
the feature is not specific to QApplication::exec().
This means dialogs such as QFileDialog opened in the main() function
will show something on screen, as we then fall back to the iOS root
run-loop handling, while at the same time supporting QApplication
exec once the dialog closes.
We still don't hadle recursive QEventLoop:exec() at the root level,
as that would require multiple stacks and detailed application
knowledge about when to create them.
Change-Id: I334a362d85796341a343ce82f3104ff5866bdc3f
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
If the user for some reason spins a new QApplication event loop after
an initial one has been exited as a result of the application being
terminated by iOS we need to prevent further event loops from starting.
Change-Id: Ief8a69cebacebd5be63a1aca87a2a1babc809879
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
These example projects are plugins that cannot be run
stand-alone. Remove them from the list of examples
in Qt Creator's Welcome mode.
Task-number: QTBUG-33889
Change-Id: I65b5b91a6c5b73616c10c91b7ab3f5bddbe6e6fe
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Qt creates various invisible windows for internal purposes.
Giving them all titles makes the output of tools like
xprop and xwininfo more readable, which makes solving certain bugs
(like transient-window bugs) easier.
Task-number: QTBUG-33644
Change-Id: I9d37b40d3339fb0f81ffeae64949b88ecb655474
Reviewed-by: Uli Schlachter <psychon@znc.in>
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>