Make sure we actually link against the static version of the ICU libs for
static builds.
Task-number: QTBUG-29478
Change-Id: Ida7b439f11c5393bee43bfe804f9ec84bf272b34
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
First of all, we were missing an implementation of SLJIT_CACHE_FLUSH,
as ___clear_cache was not available and we would get missing symbols.
This was fixed in upstream PCRE 8.31, but even then the JIT would
only work on jailbroken devices, so we disable it.
http://bugs.exim.org/show_bug.cgi?id=1243
Change-Id: I678f9a31eb76d7d08882465befb9d799e46e7cf8
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
qdoc already ignores QML signal handler comments
and does not report errors for missing QML signal
handler documentation. but the test case for this
bug revealed a separate bug. The test case contains
no import statements, which, technically is legal
but probably won't happen. Still, qdoc failed to
generate output for the test case QML file because
it didn't contain an import statement before the
first qdoc comment. This was caused by an
uninitialized variable, which has now been fixed.
Task-number: QTBUG-30043
Change-Id: Iafa2087b85a6c9e354b2be86c779bbd191181218
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
The documentation was written for 4.8 when the C++11 standard did not have the
name yet.
Change-Id: I08640a5ae62385b09e181eefafd4cc831e4de456
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Introduced Q_OS_ANDROID_NO_SDK which makes more sense than
Q_OS_LINUX_ANDROID when Q_OS_ANDROID also defines Q_OS_LINUX.
Change-Id: Id2aa228b66daffba82776a12c91a264a360afd86
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
QMetaObject::connectSlotsByName(QObject* o) creates a list of all
children to look for signals that match slots of o. This changeset
simply adds the object o itself to that list.
The motivation is to finally fix the long standing QtCreator bug
QTCREATORBUG-6494. Where executing 'Go to slot...' and choosing
'accepted()' for a simple QDialog named 'MyDialog' will add a
on_MyDialog_accepted() slot to MyDialog. That slot never gets
connected. More details may be found in the linked QTBUG-7595.
Task-number: QTBUG-7595
Task-number: QTCREATORBUG-6494
Change-Id: I35f52761791af697eabb569adb5faee6fae50638
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
In case somebody uses QVector as a stack, it is not fair to have
takeLast, removeLast and pop_back to do way too much work.
This is still very slow compared to std::vector::pop_back
(mostly due implicit sharing), however it is more than a
factor faster than before.
Change-Id: I636872675e80c8ca0c8ebc94b04f587a2dcd6d8d
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
This patch adds takeFirst and takeLast which are functions
that QList also has.
Change-Id: I761f90b529774edc8fa96e07c6fcf76226123b20
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
This patch adds the functions removeFirst() and removeLast().
Functions that QList has.
Beside making these functions, pop_back and pop_front are
redirected to these rather than calling erase.
Change-Id: Ifc5f8a78e33f436f06f21095a920ec5d4311fd6f
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
We need to clip lines to the unclipped device rect in the case of
dashing, since otherwise the dashes will be shifted and rendered
differently when partial repaints are done.
Task-number: QTBUG-24762
Change-Id: I3599b54baa552acc20bf8cc2e12f846b45f6019e
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
Five attributes are supported, matching what the perf(1) tool
supports. The 'p' attribute (precise IP reporting) wasn't added
because we don't do assembly-level debugging with benchlib.
Change-Id: I726f735a5bcc0c97e62cde0fbe0843597068ad7c
Reviewed-by: Jason McDonald <macadder1@gmail.com>
This will allow us to modify more attributes from the command-line
Change-Id: I84d4933cbfa2b69c4e1009eaf3e005cfc3e7e01c
Reviewed-by: Jason McDonald <macadder1@gmail.com>
This adds support for checking cache accesses and misses, per
operation (read, write and prefetch) as well as per cache level (L1
for data, L1 for instructions, last level).
The branch prediction unit (BPU) is also accessed via the cache
monitor subsystem.
Change-Id: I8fa96b141cc777c9d231bd57fa36bca33ae7bdfd
Reviewed-by: Jason McDonald <macadder1@gmail.com>
Added support for most hardware and software counters available on
Linux 3.3. The cache-based counters are missing because they need
special handling.
Also added an option that lists available counters. Note that the list
is of counters the library knows about, not the counters that the
hardware can measure.
Change-Id: I9f6fb09b5460bf4ac6082081611c1d6ff806a3fa
Reviewed-by: Jason McDonald <macadder1@gmail.com>
Currently, we only support one event type: counting CPU cycles with
hardware counters. There are no fallbacks if this hardware counter is
not available, and there is currently no way to specify other
counters.
Benchlib only supports reporting one event per benchmark, even though
the event counter interface allows specifying more than one. Still,
the hardware usually has limitations on how many events it can monitor
at a time, and we'd prefer to have the counter running at 100% of the
time, so this will not change.
Change-Id: I79858a3ad1e696dc4b7b72c420e5a04b67cd55de
Reviewed-by: Jason McDonald <macadder1@gmail.com>
Currently, it only prints "perf available" if you use the -perf option
and perf is available. The implementation comes in the next commits.
Change-Id: Ic6cdee70e21df25780799a4bc31ca2c2d923b9f8
Reviewed-by: Jason McDonald <macadder1@gmail.com>
Imported from linux's own git, at v3.7:include/uapi/linux/perf_event.h
(blob SHA-1 is 4f63c05d27).
We cannot rely on the file being shipped by distributions. Older
versions did not have all fields in the perf_event_attr structure. If
those bits are enabled at runtime, the kernel will simply reject the
perf_open call (-EINVAL). Currently, this can only happen with the
non-default options exclude_guest and exclude_host.
Change-Id: Ib329e52c21d6969406da0cf33de823d721d94206
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
QKeySequence provides conversion to and from strings. But a similar
convenience was missing for QList<QKeySequence>. It would come in handy
when you want for instance to save/restore the shortcuts of a QAction.
Change-Id: I9e4f2001c58a595392a5019a57c564992c39bf88
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: David Faure (KDE) <faure@kde.org>
Introduce function to retrieve HDC with transformation.
Paint Vista-style items at correct location when used
as a child widget (for example, in Qt Designer).
Disable special drawing that works only for top-levels.
Task-number: QTBUG-29904
Change-Id: Ic902fd30e8050317b24ab7f7e2757ef1e16407f9
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
If no window exists at the time QWizard::setWizardStyle() is
set, further delay initialization of the Aero style until show().
If the wizard is a child window, just adapt the geometry.
Task-number: QTBUG-29904
Change-Id: I3805331ae726a0aa2020815d5bff571ca407efbc
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
Ususally, the object setting the mask knows better than the window,
since the latter may not have had its size set by then.
Task-number: QTBUG-29856
Change-Id: Ib24d452a98a76b57f5d9236d5fa1ba4755cf0840
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
The window shadow was never invalidated after setting the transparency
mask. We now do it right after the first draw after setting the mask.
Change-Id: Icc5c6002d25abeb25d58ee4d1f868e928121ae9b
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
We cannot access children directly, since that won't ensure that
the pending sort is executed. However, the functions we need are
there already and actually makes the code nicer.
Task-number: QTBUG-29903
Change-Id: I6899284275dd79b991896a5f08486b58d95f819d
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
There is some code duplication between QMacStyle anf the Cocoa QPA
plugin regarding painting and bridging with Cocoa.
Task-number: QTBUG-29725
Change-Id: I347407a9bca47b6fccd77fb924688bd35135d96b
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
d28073d9 enables the Mac style on all "mac" platforms,
including iOS where it does not compile.
Disable the mac style on all platforms except
"macx" (Mac OS X).
Change-Id: I67685f745b1a0910b05794cddeaf27cdaa31cbfd
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
Add a static QWindow::fromWinId(WId id) constructor which can be used to
create a QWindow object representing windows created by other processes.
Then, QWindow::setParent() can be used to embed a window into a foreign
window socket and QWindow::setTransientParent() to stick the current
window on top of a foreign window.
The changes in the QtWidgets module ensure that the focus chain (TAB
navigation) correctly works when a QtWidgets-based window is embedded
into another application.
As far as the platform implementation is concerned, this commit only
implements the embedding functionality in the XCB plugin. So, this is
roughly equivalent to the Qt4 QX11EmbedWidget functionality.
Change-Id: Iff8f7b9ee974d33fb30f36056f7838b433a413c7
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
This provides a fast multiInsert in QMap (and a fast insert in
QMultiMap) when providing a correct hint.
Change-Id: I3c864c3a7842765fe63f8ecb4b54d0e8c9fd22d7
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
This adds a fast insert on QMap when providing a correct hint.
Change-Id: I256bba342932c1d4f24c6e65074e1bf47b519537
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Make sure that QIconLoader is initialized when QIcon::themeName()
is called. Otherwise, themeName() may return the wrong value.
Change-Id: I54621e31da24bdbe745e7d6ae6a1d58cb4190cd7
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
The inactive palette values were set to be the same as the disabled
palettte whereas, on Mac, they are the same as the active palette.
Also, some of the logic to draw inactive looking widgets was a bit
dubious. Add to that the fact that HITheme is not responding to
kThemeStateInactive as expected, or so it looks.
Task-number: QTBUG-29860
Change-Id: I5d67765a9411a40449a8a4440276b2fad167f7c4
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
QImage is supposed to maintain the invariant that each scan-line begins
on a 4-byte boundary, so we need to verify that this is the case before
using the optimized path of short-cutting QImage::copy() by referencing
the source image's bits directly.
Task-number: QTBUG-14766
Change-Id: I0a178aeb2f34cc64f98deae9470b55b5c53fcb06
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
qdoc now ignores QML signal handler comments
and does not report errors for missing QML
signal handler documentation.
Task-number: QTBUG-29993
Change-Id: If2daae80944c8b85312d38d4ee8c07ebe1f79001
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
Send expose events on window and view show/hide
notifications. Implement QCocoaWindow::isExposed.
Close all windows on quit. This allows sending (de-)expose
events for those windows while the event loop is running.
Remove the flushWindowSystemEvents call in setVisible.
This function is called from application code. Flushing
window system events here is wrong since it can lead
to events being processed in the middle of the user
code call stack. flushWindowSystemEvents should only
be called as a result of (native) window system activity.
Skip one of the tst_qtooltip tests which becomes unstable/
fails in the CI system as a result of this change.
Task-number: QTBUG-29583
Change-Id: I3fb8b3f77e2b2e19dfeafba5d7dfcef602891d37
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
When attempting to connect a tcp-based QLocalSocket while it was
already connected, the open() (and connectToServer()) method
failed silently. That behavior was not helpful and inconsistent
with the windows and unix implementations.
So an error is now set and error() is emitted
Change-Id: I544e81f0a303dd6d5b1869287df860878a8a06c6
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
This QObject-style convention will allow the usual private class
macros to be used.
Change-Id: I992ee2a2d2e7984d57feb4cbe785a267f2fd83ce
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
The new constructor accepts reference to the private
class provided by a subclass.
Change-Id: I568e31727bb90de12ee8bb7bf0ed442737056470
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
This QObject-style convention will allow the usual private class
macros to be used.
Change-Id: Ib1cee0b3aca949b75511868ad4914e5b8530929b
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
Allow the private class to be instantiated before the public class.
Public subclasses will need to first instantiate the private subclass
and pass the reference to QSqlResult.
Add virtual constructor so QSqlResult can delete private class
polymorphically.
Change-Id: Ide7115dbb4150d6604677b542dbec16e6956a142
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
Under certain circumstances, mktime failes to convert the tm struct into secs since epoch.
This is a workaround and fixes the qdatetime and qqmllocale autotests.
Change-Id: If99385142a049c5315429dca177df7fc8e947d55
Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com>
Reviewed-by: Wolfgang Bremer <wbremer@rim.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Change-Id: Ic3e5deaeabe282ff44400aba80f8746067473030
Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
The former applies both on Mac OS X and iOS, but 'macx' is specific to
Mac OS X.
ios.conf and macx.conf now share most of their settings in the common
mac.conf. We set the default QMAKE_MAC_SDK before loading mac.conf, so
that any overrides in the device config will apply afterwards. This
means configure's mkspec parsing will be able to read the QMAKE_MAC_SDK.
Change-Id: I0c7e26a6a0103e19b23ef152aa9e4ab461cee632
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
This avoids crashes accessing deleted memory when creating a QObject
after the last QObject had been deleted, like a qDebug() in global
destructors.
==41000== Invalid read of size 4
==41000== at 0x5F01ED5: bool QBasicAtomicOps<4>::ref<int>(int&) (qatomic_x86.h:208)
==41000== by 0x5F01309: QBasicAtomicInteger<int>::ref() (qbasicatomic.h:147)
==41000== by 0x5F24051: QThreadData::ref() (qthread.cpp:100)
==41000== by 0x614A984: QObject::QObject(QObject*) (qobject.cpp:681)
==41000== Address 0x6ee73f0 is 0 bytes inside a block of size 152 free'd
==41000== at 0x4A0736C: operator delete(void*) (vg_replace_malloc.c:480)
==41000== by 0x5F240BF: QThreadData::deref() (qthread.cpp:109)
==41000== by 0x6113F6B: QCoreApplicationData::~QCoreApplicationData() (qcoreapplication.cpp:268)
The comment right above the change in qthread.cpp looks eerily similar
to the problem I'm trying to fix. However, the actual change that
introduced the change is not in the Qt public history, so we can't
know for sure what the problem was then.
Change-Id: I0dba895b041fe6cf81e6f8939ca85035cd00aad1
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
This is used for Android.
Change-Id: I049138c140a472b1721390cf4ec2bd88bbe9c471
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
Add getter and setter for handling the server QLocalSocket connects to.
Move the connectServer() implementation to QLocalSocket::open
so the local socket can be handled transparently as a QIODevice
Add a convenient connectToServer(OpenMode) method
Change-Id: Ibc8dc33f79903f92daf2d1ca2e64ead2ce39f33e
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Add setProgram() and setArguments() methods to the QProcess api.
Add a convenient start(QIODevice::OpenMode) method.
Move the implementation of QProcess::start() to QProcess::open()
unifying the QProcess api with other QIODevice subclasses.
Change-Id: Id1af57da05f750fe8d526d391589c05ee8037bca
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
qdoc was not incrementing the nesting level when parsing
a UiObjectBinding, which can contain a component definition.
qdoc now increments the nesting level when starting to vidit
a UiObjectBinding and decrements it when ending the visit.
Note this fix does not stop qdoc from reporting that public
signal handlers have not been documented. If that is to be
changed, it will be done separately.
Task-number: QTBUG-29993
Change-Id: Ibd5ef81082e989652b3a15dcc95080a2757e0077
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
Check for existence of QGuiApplication, discard events if it is 0.
Change-Id: I04b27679033fb13ef2fa38e39757d89465cba94b
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
Fix a warning unearthed by the task's code example. The minimum
size of the window would be too big since it did not take the
negative custom top margin into account.
Task-number: QTBUG-29904
Change-Id: I8b71a39f0724bdd1b9359676ce1d86ef5384d685
Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Based on the Necessitas project by Bogdan Vatra.
Contributors to the Qt5 project:
BogDan Vatra <bogdan@kde.org>
Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
hjk <hjk121@nokiamail.com>
Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Paul Olav Tvete <paul.tvete@digia.com>
Robin Burchell <robin+qt@viroteck.net>
Samuel Rødal <samuel.rodal@digia.com>
Yoann Lopes <yoann.lopes@digia.com>
The full history of the Qt5 port can be found in refs/old-heads/android,
SHA-1 249ca9ca2c7d876b91b31df9434dde47f9065d0d
Change-Id: Iff1a7b2dbb707c986f2639e65e39ed8f22430120
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Locking between processes, implemented with open(O_EXCL) on Unix
and CreateFile(CREATE_NEW) on Windows.
Supports detecting stale lock files and deleting them.
Advisory locking is used to prevent deletion of files that are still in use.
Change-Id: Id00ee2a4e77a29483d869037c7047c59cb909339
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
You can't use #ifndef QT_NO_OPENGL before including whatever is supposed
to define that. That's qconfig.h, included by qglobal.h.
Also, make sure that the desktop OpenGL code isn't activated when
compiling in OpenGL ES 2 mode -- QOpenGLFunctions_1_0_CoreBackend and
other classes aren't defined.
Change-Id: I127edf56d42257580579789d0566b7e11c21133b
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
This change allows links of the form:
\l{qml-module-name::qml-type}{name}
i.e. no version number provided.
This change does not handle collisions.
There aren't any in Qt5 at the moment.
If a collision occurs, qdoc will link to
the name in one of the colliding QML
modules, but not necessarily the most
recent one. Hence, the link may go to
the wrong page. A further update might
be forthcoming that will handle this
better.
Task-number: QTBUG-29778
Change-Id: Ie2c2b117446ed02852593dd0273c390d39fed927
Reviewed-by: Venugopal Shivashankar <venugopal.shivashankar@digia.com>
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
On mobile platforms, Qt::ApplicationActive and Qt::ApplicationInactive
are not sufficient to describe the different states an application can
be in. This patch introduces Qt::ApplicationHidden and
Qt::ApplicationSuspended that should fill in the gaps, at least
on Android and iOS.
Change-Id: I3f5a584cf6f4832e7c81dea095dcf711a8866c38
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
Since 5.0, script is QChar::Script which isn't of 1:1 mapping to HB_Script
Change-Id: I2d88f929d7d3c3c994076a4e92ea22370962c41c
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
HB_Face's supported_scripts[] expects HB_Script, so QChar::Script should
be remapped via script_to_hbscript().
Change-Id: Ib068c35ab76567fe9a61da7d8ab01133a6f58bc0
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
The QStyle implementations are becoming private, so the following
slightly verbose pattern seems to be now repeated a lot:
new QProxyStyle(QStyleFactory::create("windows"))
This change adds an alternative, more convenient constructor for
this particular use case:
new QProxyStyle("windows")
Change-Id: I97ded597a0fd3225a6354ebea0abb367237430af
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
QtCore has a few headers that, though public, aren't meant to be
included directly. Those are the atomic headers, the three _impl.h
headers and qt_windows.h.
QtGui includes two OpenGL headers that don't compile on their own.
Other libraries should not have headers like that (but they do,
something we need to fix eventually).
Change-Id: I55e4eb057748f47df927ee618f9409acbc189cc1
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Both gcc and clang allow the use of '$' in their identifiers as an
extension. moc should not throw a parse error if there is one in the
file. Instead, consider '$' as valid in identifiers.
Task-number: QTBUG-22720
Change-Id: I8be3a52429c0db5b7e8308b8f4fe475d3d3994bf
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
If the object has only MEMBER properties, without any other property
specifying READ, the generated will fail to compile with this error:
tst_moc.moc: In member function ‘virtual int ClassWithOneMember::qt_metacall(QMetaObject::Call, int, void**)’:
tst_moc.moc:3810:42: error: ‘_v’ was not declared in this scope
That's because the '_v' is only declared if 'needTempVarForGet' is set,
and it should be set when we have a MEMBER property.
Change-Id: I829fad3faf69654b5a3fd540857df19f4a9449d4
Reviewed-by: Gerhard Gappmeier <gerhard.gappmeier@ascolab.com>
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
If the window or widget is a popup, ignore the hint. The
intention of the flag should be to show main windows etc in
fullscreen, and not all kinds of popups and tooltips. The user can always
call showFullscreen explicit when necessary.
This is a backport of 48c73540ad.
We need it in stable to fix menus on BlackBerry platform, they're
appearing fullscreen.
Task-number: QTBUG-29969
Change-Id: Id0d6cfc194916aa7f993cde54b5a0002f60399e1
Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com>
Most notably, .com and .net now may contain non-ASCII characters.
list has been generated from
http://www.mozilla.org/projects/security/tld-idn-policy-list.html
Change-Id: Idc3191dc782bc4173ccb19b4bc81f4f061ca7999
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Given that we can create OpenGL/ES contexts even under a Desktop OpenGL
implementation, we must check the type of the surface we're renderering
on at runtime.
Change-Id: I55004ce918889b3fc094702976500fcfc675bd1a
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
doc.cpp(3292): error #68: integer conversion resulted in a change of sign
generator.cpp(363): error #68: integer conversion resulted in a change of sign
Change-Id: Ie714ffcb4098debc701ce3fb6fa444154ac02ae5
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
We now use tracking regions to generate move events,
setAcceptsMouseMoveEvents will generate duplicates.
See also commit b077e67f.
Change-Id: I750e33766e66693ce899380c5cd9715baa9aa241
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
This adds support for OpenGL 4 tessellation shader stages to
QOpenGLShaderProgram and QOpenGLShader.
Change-Id: Iefb2f411e00767990d54670c5d39413be694dd66
Reviewed-by: James Turner <james.turner@kdab.com>
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
The various string properties are good candidates for exposure to QML.
While QCoreApplication itself is unlikely to be exposed to QML directly,
a wrapper exposure also needs these signals in order to react to changes
from QCoreApplication.
Change-Id: I266da6010f1c9300de4bb5e7775a0bdacab7f26c
Reviewed-by: Richard J. Moore <rich@kde.org>
The problem was that the HolderBase destructor was getting called after
the contained type's constructor threw an exception, as is required by
RAII semantics (the base was fully initialized, so it had to be
destroyed). That was required because we want to return a non-null
pointer from operator() during destruction and return null after
destruction, to keep compatibility with Qt 4.
The solution is to only set the guard to Destroyed only if it is already
at value Initialized. This way, if the HolderBase destructor is run as
part of the stack unwinding, it knows that the construction did not
complete.
Change-Id: I9849b43ed7112bf9e70861b48a56a924c286617e
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Since Windows doesn't have pkg-config, it doesn't get -ldbus-1
added to the command line automatically like Linux does. Code
was present to deal with this case, however it was only configured
to work when native-compiling Qt. The flag was not added when
cross-compiling, meaning that -dbus-linked did not work correctly
in that case. This patch changes the code to add the flag properly
in both cases.
Change-Id: I67881643bd658161f4929f3932859ccf636ca7a9
Task-number: QTBUG-29984
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Change-Id: I925b1c53c5e251111469501056ee162a23e36faf
Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Implementation of QQnxCursor, a QPlatformCursor subclass. Due to the lack of a
proper cursor API from the underlying OS, this class only caches the current
cursor position to make sure that the QCursor class works properly.
This is a backport of 290ed7f8fa.
At the time there weren't any known bugs regarding this, so it was committed
to "dev" branch as a feature.
Now we needed it in "stable", otherwise menus don't work correctly, due to
QCursor::pos() being bogus.
Change-Id: I5a4217c92a0aaed0b22b45ca3c4e0fad882e810f
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
This class makes it much simpler to manage OpenGL state relating to
vertex data (i.e. vertex buffer objects, vertex attribute divisors,
index buffer objects, vertex buffer formats).
Change-Id: I9fb932cc3f0691ec9ba065bf871e43cd2e369bad
Reviewed-by: James Turner <james.turner@kdab.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
Unlike QGLShader, this requires the OpenGL 3.2 core implementation
of geometry shaders to keep the API simple.
Change-Id: Icb07f430c4c5b5d950bcf6f7119becec4cfaad8a
Reviewed-by: James Turner <james.turner@kdab.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
For platform plugins such as the Android plugin, we need to
make sure an event is delivered and handled before continuing
execution (e.g. when doing an expose event to report that the
EGL surface has been destroyed when the app goes into the
background.)
Change-Id: Ibd381baafa93f111dbc887d4cf9d9ca37429b186
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
These are some changes that are needed to make the Android
plugin as a subclass of the EGLFS plugin.
Change-Id: I7c77931f311d8a07f9292715d2abc256c5d552d8
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
Respect QStyleOption::rect, do not expect Y to be 0.
Task-number: QTBUG-29926
Change-Id: I6304d20f629f89774c897d2c81c2c7816dff4718
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
Make lastInsertID work for tables without OIDs.
The use of OID in tables is now deprecated in PostgeSQL and
lastval() is now provided.
http://www.postgresql.org/docs/8.1/interactive/runtime-config-compatible.html#GUC-DEFAULT-WITH-OIDS
Change-Id: I01dfdd7a2aab8826487657f691fea3c9268c16b2
Reviewed-by: Israel Lins Albuquerque <israelins85@yahoo.com.br>
Reviewed-by: Mark Brand <mabrand@mabrand.nl>
CreateFileMapping() returns NULL in case of an error.
The patch corrects the wrong testing on INVALID_HANDLE_VALUE, and sets
NULL for invalid handles.
Change-Id: Iaab4945ed88ee92bbf9a0871e95a5820dd1a56ed
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
First of all, the ifdef section was meant for osx, and not ios.
Second, a platform theme does not necessarily need to override the
palette function, which will return 0 by default.
Change-Id: I5a28f4ee1020c9253d0803c9d962c6a058e5358c
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
This debug information is not needed anymore, and only causes noise
when trying to debug other stuff.
Change-Id: I076826e251b84a3883e63aa7669f6e1bb55a0d1f
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
Add the missing override, and report that we support
OpenGL (and multiple windows).
Change-Id: If95138cab9099b547d12d3dfed008bd63b6d2acf
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
Create the QCFSocketNotifier class in platform support
which contains shared socket notifier support for
the Cocoa and iOS plugins. Remove the old code from
the Cocoa plugin.
The Cocoa code had one QCocoaEventDispatcher-specific
call: maybeCancelWaitForMoreEvents. Create a forwarding
function that is passed to QCFSocketNotifier.
Change-Id: Ibf9bd4745ba4f577a55f13d0cc00f5ae04447405
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
Unless we're building on the 6.1 SDK some of the version defines will
not be defined in Availability.h, so we define them ourselves so that
Qt can still use them.
Change-Id: Ibb45e9f8f4e888fc57e35286bf15d2fee2c1a217
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
The qobject_cast to QGuiAppplication will always
fail at startup since QGuiApplication is not ready
yet.
Return YES in that case. Allowed orientations can then
be controlled by setting "Supported Interface Orientations"
in Xcode or the Info.plist file.
Change-Id: Ifd86bbcedabc716e63563bbb7cb0c1c6833fd6c7
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
fromPortraitToPrimary is called from the QIOSScreen
constructor. This is probably to early to call QGuiApplication
functions.
Change-Id: I882304fd641df13dc530491990245ba9ad495377
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
Previously the position was set in window coordinates,
which would break for non-fullscreen windows.
Change-Id: Iefa2f590c6d62b09fc3e7fe60a882c1acd33e029
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
We skip flushing raster-based child windows, to avoid the extra cost
of copying from the parent FBO into the child FBO. Since the child
is already drawn inside the parent FBO, it will become visible when
flushing the parent. The only case we end up not supporting is if the
child window overlaps a sibling window that's draws using a separate
QOpenGLContext.
Change-Id: Ib10414f4494747e5fe67f84b06575fe16ffddf96
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
The QStyle code uses the global qApp->devicePixelRatio(),
which queries the screen, not the window.
Implement QIOSScreen::devicePixelRatio().
Change-Id: I0091e5793f8d07ab7a46b6de443edd9457dcff85
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
Make sure that the user cannot activate a window
that is modally shaddowed.
Change-Id: Ib92be319d017460bbc1ef63ad7556cb4758dfa6c
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
When adding modal windows into the mix, raiseOrLower became
even more messy to write. So do it the usual way instead, and
add a windowLevel variable to each QIOSWindow that we
can sort on. The code becomes more readable, and we can handle
more window types correctly.
Change-Id: I348352473a7d8cf9909c17c1b074b2fe3fab9819
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
Track touch events during the standard [Began -> Moved
-> Ended] event sequence based on the UITouch pointer
which stays constant.
Enable multiTouch on Qt's UIView.
Mouse events should now be automatically created
from (unhanded) touch events by QGuiApplication.
Reviewed by: Ada Sørvig (fingerpaint app approved)
Change-Id: I2aeb48c962c697d8b8337f8ceab062070c2a4240
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
This to ensure that the keyboard does not close prematurly.
This can happen if the user opens up the keyboard while typing
inside one window, then switch window, continue typing while
the other window gets deleted.
Change-Id: I5cfb1673ccbe4d5aaa14167b7aa53451031089a1
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
Dispite the name, 'requestActivateWindow' means raise and transfer
focus to the window.
Change-Id: Ib97321ed7ec8da90e924ff8155a95896c12160c9
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
When a QWindow becomes visible, it should move to front and
be active.
Change-Id: Icab12c6031c0cc8d791e4f8cc49b9c2d5c73100d
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
Probably not going to be the most used functions on iOS, but
implemented to support old widget apps out of the box. The
implementation stacks both staysOnTop and popup windows on
the same level for simplicity, since iOS does not have a
concept of z-ordering UIViews (UILayer has z-order, but layers
belong in a different hierarchy, and cannot be used in this
respect).
Change-Id: Idd68e5ceea7d4eaeb3066486c47400930cebb1b0
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
Since our QWindows are UIViews rather than UIWindows, we need to
implement window activation manually. This patch will ensure that
the window touched by the user also gets keyboard focus.
Change-Id: I9390c5c8e50a4b066cd1320a2a044e02f2a9f75d
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
The lifetime of an FBO is tied to its context, so letting each window
manage its own FBO failed when the window tried to delete the FBO
at destruction time without the proper context being current, or
even available anymore.
We solve this by moving all handling of FBOs to the context itself,
which is fine as we're exposing the necessary bits from the window
to allocate storage based on its layer.
Change-Id: I8c7c96cf63d6b667527c816f10ac2f4ff6a05e0c
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
It's already built as part of the iOS platform plugin.
Change-Id: I5a97e8723b566b9ef15aafce374be35f01e6cf08
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
This is handled automatically by the default implementation.
Change-Id: Ia9bd0143490e6f2507ede03f3654a2b0b00e3e3d
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
The delegate is only used when we control the application, so we know
that there isn't any window yet.
Change-Id: Ibd774cb4fd8ceaab6a181769d2792b569f490495
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
Qt will tell us when the window should be visible. Showing all
windows by default makes e.g the desktop widget visible as
well, which causes problems with activation of windows.
Change-Id: Ibf2283bc5f009df7ff23126f4dd04ec898141720
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
Try to keep qiosglobal.h free from unnecessary includes, since its
typically included from many different locations.
Change-Id: I6638bcaef1189b3eee3dbd5f744c15f8f7858d71
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
Since the OS does not handle window management for us, we need
to handle this ourselves. So when a QWindow is closed or hidden, we
transfer activation to the top-most visible window. This will fix
application unresponsive after closing a dialog.
Change-Id: I83f836ebafa71edca5ab5ae3a2bdba7cd1decbc1
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
Adding a simple way to get the QWindow pointer from any UIView
makes writing code where you only have UIView pointers a bit easier.
Perhaps we should also investigate if it is worthwhile to make
this category public to the application, to further enhance
working in a mixed environment.
Change-Id: Ic263003dc7683a8d976024cbbbc2558e8472a790
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
Not the biggest gain, but since all the members of EAGLView are
declared private, we might as well move the whole interface into
the source file. We can then make the members public without
caring about interface readability. We will make use of this in
a following patch.
Change-Id: I144fb5748573ca6faf257d72597907b5c17b1e05
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
It seems that we need to access our view controller from many
places, and the syntax to do so is tricky to remember. So lets
just add it to our global functions, with the added bonus of a
using a little cache.
Note: many of these functions could be made inline, but since one
concern of the plugin will be the end size of the app, I prefer
to trade size for speed at this point. We can always change this
later.
Change-Id: I578ea9ae8218d23d635b7728a930763ca53c4eaa
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
QScreen geometry and orientation is updated a bit after we
change geometry in QPlatformScreen, which this time was enough to
break availableGeometry. Since this function is for internal use, we
let it be based on internal data.
Change-Id: I7701b0a6043839c89c01e87242decb8a739d00f1
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
We need to update primary orientation when the rotation starts, and
not when it ends, so that we are in sync with the resize that happens
to the backingstore upon layoutSubviews.
Change-Id: I466a2d135e6c15550c6207c9659871629d748b73
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
QInputContext expects us to report whenever the
input panel changes geometry. This patch implements
this.
Change-Id: I9162f0d48da6925274a7489c9bcb6adab9afae82
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
Several places in the code we need to check if the plugin is
running as a cross-platform Qt application or inside a
native app. So we refactor this function to qiosglobal so
we can access it from everywhere.
Change-Id: I78db0dcde71b7d281868ce304867c8f876caef2a
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
Some functions are needed across several files and classes. Lets
place them in a common file for all to use.
Change-Id: I5f9b578f948d66d10e57a835b80b5c493e07fb4c
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
From the documentation for QAbstractEventDispatcher::flush(), this
function does only make sense for X11.
Change-Id: I7f445b67b283f60c9a30ac00837beb44e8205d8b
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
Scale the OpenGL paint device size and physical dpi
by the device pixel ratio.
Change-Id: I8b576f23129aafc47371795151c548663e94ad52
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
When QScreen is created, we need to check if the application
is already in landscape.
Change-Id: I653c622154a5c23ec93e89ec3e80fefb6b1f1bdd
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
Clean up a bit. The orientation conversion functions belongs to
QIOSScreen more than QIOSOrientationListener. And rename them in
the same go to follow toQRect/fromQRect standard.
The orientation listener itself is tightly coupled to QIOSScreen, and
does not make much sense on its own, so move it into QIOSScreen to
follow the same patteren already implemented for QIOSInputContext.
Change-Id: I8b6b4d08a42349b4232749d59d46748297083536
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
Qt expects the screen to change geometry when the "desktop" rotates.
On iOS, we interpret this as when the root view controller changes
orientation, since after all, this is the surface we place QWindows
on top of.
Change-Id: Ia00e68c8f9f0a65aefcc60518ee544fb260d4595
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
Without a platform theme implementatin we were relying on
QCoreTextFontDatabase::defaultFont() to return the system font.
This didn't work because it reported the system font that iOS reports,
'.Helvetica Neue UI', which is a private font that does not get added
to our font database. The result was that we picked the first font in
the list of known fonts -- in this case 'Academy Engraved LET'.
We now implement QIOSTheme::font(), which takes precedence over the
font database's default font, and hard-code the system font to
'Helvetica', since Qt does not yet have the concept of private
system fonts.
Change-Id: I901cf9c2b662ea2795212376b84b8391be2efbbe
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
This change will add an initial implementation of the
QPlatformInputContext for dealing with the keyboard.
Change-Id: I29c1cfbbebb8456977b8a1db0e966973cd2c24a5
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
When QWindow is told to show/hide, we need to show/hide the
backing UIView as well, otherwise the window will still be
visible on screen.
Change-Id: I806fdd8bb4afacbbc1c9c7381ba0a31195ee04ac
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
We need to remove the view that backs QWindow when the window
is destroyed. Otherwise the view will still be visible on screen,
but now with a dangling QWindow pointer. This fixes a crash that
happens when closing dialogs.
Change-Id: I9053c83c6db80a39f4f71a63993cc7ae73fc4196
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
This is an intermediate heuristic until we have a proper API in Qt to
deal with auto-rotation and orientation locking.
Change-Id: I433992fa1c18d1670987f79e405a4501b6e5d365
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
We keep track of the with and height of the FBO's buffers, and update
their storage if the window size has changed since last time.
Change-Id: I97788b69e7067a5b5b9f28e8498cf1bc5d2cf6ea
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
Treating the paint-device as a thing wrapper around the OpenGL paint engine
failed when the window was resized, as the paint engine would clip the
drawing to the old size. We need to update the size in beginPaint.
QBackingStore resize still behaves like before, and we emit a warning if
the user tries to resize the backing-store to some other size than the
window size, as that's not a supported use-case for our iOS backing store.
Change-Id: I1a0eeb65fa9db8b5538dc69963d6fc84be6e63f1
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
It turns out that QWindow::geometry needs to be updated manually
by the platform plugin, and not indirectly trough
QWindowSystemInterface::handleGeometryChange as first assumed.
We now always report the _actual_ geometry of the UIView (which
also takes the status bar into account) to QWindow, and remember
the _requested_ geometry of the window to use whenever the state
of the window changes.
Change-Id: Iea940173d26fb6af701234379cae914215dae984
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
Since UIScreen is orientation agnostic, we need to look at the
view of the top level view controller instead to determine
available geometry.
Change-Id: I3789ab7972a9970e46fbc8af81f2b7199e5ca5d1
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
Tell the view that backs QWindow to autoresize itself when
the superview (view of the root view controller) changes size.
This will typically happen when the device changes orientation.
Change-Id: Ib7c4dff9112d57f60012d3f0837677e09088bcaf
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
The layoutSubviews function will be called when the geometry
changes, and we will catch the transform issue there for
both UC1 and UC2
Change-Id: I29578bbc5b3091c86fbe69c7095ff280a64be458
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
When QWindow is told to be in fullscreen, we should not
respond to geometry changes. Instead we should bookkeep
the requested geometry and set it when/if the window
enters Qt::WindowNoState later.
Change-Id: Ieaf4756b2a966212c8e1738af9df175a58786a75
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
We may need to qualify this setting for UC2, so that the user may still
create windows as sub-controls of a regular iOS user interface, but for
UC1 it makes sense.
Change-Id: I1a7019f901fabed8b5b9cbb18a929913780e6595
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
When showing a QWindow the window state is set first, and then the window
is made visible. The latter is the step that creates the platform window,
so we need to pick up the already set window state in our constructor
and respect that.
Change-Id: I54fe6c4ebcd3c9504614d2d48bd21f0d76adf3b7
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
The API is scheduled to be removed in qtbase in time for Qt 5.0.
Change-Id: Ie34d6cb79fcd81b0ce02892529e3e7184ddfa096
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
This causes painting errors. Use one lazily-created
device that is used for the lifetime of the backing
store.
Change-Id: Ib36b6f1d6c9f958304dc8403cf17e5d71136469a
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
If we use super, our own initWithFrame override will never be
called.
Change-Id: I606beb653239cdfc46f41db4ec0791dfa5d4edea
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
The application is normally supposed to rotate the content on its
own, but can call requestWindowOrientation to ask the window
manager to do it instead. This way of integrating orientation with
the OS is fragile, because:
1. In some cases, you cannot stop the OS from rotating at all
(tablets).
2. It would be more safe to inform the window manager up-front
which orientations it could rotate into, rather that relying
on a function you call call to force this later on.
3. When the QML application starts, its a bit late to inform
the platform plugin that it supports e.g landscape. If the
OS is in landscape already, the plugin must still assume that
the app operates in portrait (doing rotating on its own) until
requestWindowOrientation is called. This might cause the app
to first start up in portrait, just to rotate into landscape.
On iOS, it seems like we can handle the first two cases. The third
need some more investigation. We should anyway investigate if we
need some adjustment to the Qt API.
Change-Id: I50638b78d469ab70820a787de86a2f1981470786
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
We need our own viewcontroller to better control which
orientations iOS can enter, and also ito be able to
stop auto-rotation.
We stop auto-rotation to happend by default, since this is
how Qt wants it (it is seen as the responsibility of the
application).
Change-Id: Id07a96e355396752fffd28984af528aeb0b7c3e3
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
From the qpa docs, we only need to listen for device orientation
if orientationUpdateMask is non-zero
Change-Id: Id5e828cdff9a08794c8a029e11763cc037e1b959
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
QIOSScreen will use this to listen for orientation
changes from UIDevice.
Change-Id: I5a30f3808f8b9b885303608ce2fc1316c962898b
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
This takes care of setting INSTALLS for us, so we can skip that.
Change-Id: I351cb9ec08b632fd9867d85e2c5fa59d8e5acc9d
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
For the typical Qt app the developer will have an existing main() that
looks something like:
int main(int argc, char *argv[])
{
QGuiApplication app(argc, argv);
return app.exec();
}
To support this, we provide our own 'main' function in the
qtmain static library that we link into the application, which calls
UIApplicationMain and redirects to the 'main' function of the application
after the event loop has started spinning. For this to work, the applications
'main' function needs to manually be renamed 'qt_main' for now. In a later
patch, this renaming will happen automatically by redefining main from either a
header file, or more likely, from the Makefile created by qmake.
For the case of an iOS developer wanting to use Qt in their existing app
the main will look something like:
int main(int argc, char *argv[])
{
@autoreleasepool {
return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
}
}
This is supported right now by just linking in libqios.a without libqiosmain.a.
QGuiApplication should then be created e.g inside the native apps application
delegate (but QGuiApplication::exec should not be called).
In the future, we plan to but use a wrapper library that
brings in all the Qt dependencies into one single static library. This library will
not link against qtmain, so there won't be a symbol clash if the -ObjC linker option
is used. We should then add the required magic to the future Objective-C convenience
wrapper for QML to bring up a QGuiApplication, which would allow using Qt from
storyboards and NIBs. This would also be the place to inject our own
application delegate into the mix, while proxying the delegate callbacks
to the user's application delegate.
Change-Id: Iba5ade114b27216be8285f36100fd735a08b9d59
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
In both maximized and fullscreen modes we assume that we can use the
availableGeometry() of the QScreen, but of course this depends on us
showing or hiding the statusbar first, as well as QScreen actually
returning the right availableGeometry when the statusbar is shown.
The latter is not the case right now, as we initialize QScreen before
UIApplication has been set up and UIScreen has had a chance to init
itself based on the precense of a statusbar or not.
Change-Id: Id44dee3550f7135ffe2852b377bb6c7b6d522d68
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
The best way to pick up geometry changes of the UIView seems to be to override
layoutSubviews(), but that will only be called if the size of the UIView
changes, not when the position (center) changes. This means that the position
reflected by the QWindow will not always be in sync with the position of the
native UIView. Fortunately the position of a QWindow is not used for anything
critical in Qt itself.
Another issue is that the frame property of a UIView is only valid if the
transform of the UIView is set to the identity transform. We try to catch
cases where this is not the case, and warn the user about this. We could
in theory react to changes in the UIView geometry by only updating the
size, since this is also reflected through the bounds property of the
UIView. This is left for when we know more about how these things
interact in practice.
Change-Id: I079162c059d377a77569fe3974e261d2e0671fd5
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
This will sadly not work as expected until we've found a way to kick
off the iOS event loop before QApplication is initialized, as UIScreen
does not seem to report the correct applicationFrame (taking the status
bar into account) until after the UIApplication has been set up by
UIApplicationMain().
Change-Id: I0eaa3b8bca4129d1c4183a202ad2ecd0d8bc52d0
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
No need to implement this one, the standard implementation
creates a raster pixmap.
Change-Id: I9bb25188bd95159d76e760b2be6870e0bede7b56
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
Since the plugin will always be linked in statically, we add this
necessary registration code into the plugin itself rather than
putting this burden onto the client application.
Change-Id: I8691d8080e41bdf0644bb960b5c7102e79a0f0d5
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
Allows the optimal pattern of setting the geometry of the QWindow
before showing (and hence creating) it.
Change-Id: I29206b5d9a70df0b01e8df8f7df8f35cced51121
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
Convenient to aid debugging during development of the platform plugin.
Change-Id: Id429ca95e0452385ee8def1fe4a1bb7de175ba3e
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
Rough implementation to support stand-alone processEvent calls. We
probably need to revisit this code to fix corner-cases later on.
Change-Id: I72d5639dab599b4d0017aaa52b922f4185a50337
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
With this patch you can now expect the following code to work:
QEventLoop l;
QTimer::singleShot(1000, &l, SLOT(quit()));
l.exec();
Change-Id: Ic73e37affaadf8a859787d84ac02c15621ac7a29
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
Create a UIWIndow with a view controller and a view
where we can reparent our QIOSWindow views inside.
Change-Id: Ic90707d3ebe1af970a3aa2aa0f8c0f4be192456a
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
We build on top of the QPlatformOpenGLContext implementation to get
automatic support for QBackingStore-based painting. Since the OpenGL
renderer does not clear the backingstore between frames, we actually
also get support for partial updates, and we get the benefit of an
accelerated paint engine for Qt Quick 1 without setting a GLWidget
as the viewport, which would cause issues such as an extra QWindow.
This patch also removes the dependency to QtOpenGL and QtWidgets, which
were leftovers from the Qt4 platform plugin. In Qt5 the needed GL bits
are in QtGui.
Change-Id: Id9b736bfb2e4aec56c0fa9f5b7b4d8bff8e3d1dc
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
The iOS platform GL context is an EAGLContext, which is wrapped by
the new class QIOSContext. The class takes care of makeCurrent()
and swapBuffers(), but defers framebuffer management to the
corresponding QIOSWindow.
At the moment only a single framebuffer is created, and changing the
geometry of the QWindow does not trigger any sort of invalidation of
the buffers.
The implementation assumes OpenGL ES2.x support. Though strictly
speaking we could support ES1 for QtGui, it serves little purpose
as Qt Quick 2 requires ES2.
This patch also disabled touch event synthesization until we have
figured out where we will maintain the connection to UIWindow.
QPlatformOpenGLContext::getProcAddress() for getting extensions is
implemented by using dlsym() to look up the symbol. This should not
present any issues for App Store deployment, like dlopen() would.
Change-Id: I166f800f3ecc0d180133c590465371ac1642b0ec
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
Implement the remaining timer functions in the event dispatcher
Change-Id: Ie323962c898a2ee95ea60a8ca63b93cbd4544fd1
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
This change will let you call QApplication::exec() instead of UiApplicationMain
from main. Also added an application delegate that we will need sooner
or later for catching application activation events.
Change-Id: I4edba5ce2059a804782d67c160755fc0e2e5267d
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
We check the device's model identifier to tweak the screen values based
on the precense of older iPhone/iPod touch models, or the iPad Mini.
This does not work when running under the simulator, which reports its
model identifier as the architecture of the host platform. There doesn't
appear to be any APIs to get the simulated device of the simulator, but
if this becomes an issue we can always look at the UIDevice model and
screen resolution and apply a few heuristics.
We do not update the screen geometry on orientation-changes. This matches
what UIScreen reports for bounds, but may not be the most intuitive solution
from a Qt perspective compared to the way other platform-plugins work.
Change-Id: I74783e053601de9ce805f8b52b944c116f9a1e3e
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
We may add support for external displays at a later point, but for now
we follow the same pattern as the other platform plugins. Either way we
should call screenAdded() to let the platform integration know about the
screen.
Change-Id: Id01785a5262df0180caf957c7de8ecbbf169f233
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
None of the other platform plugins have one, and it's not used anywhere.
Change-Id: Id46ab5f75c9819511c3e9d123d0338c3c8799869
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
We should add to HEADERS, so that moc will realize it needs to run on
the headers.
Change-Id: I582e989e4faf0835c4bf9a677cbd8ac075559319
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
It pulls in a dependency on Cocoa.
Change-Id: I293063adfdef8b92f80ffda0c66ac6e6d12958ff
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
CoreText and CoreGraphics are available on iOS as stand-alone
frameworks, but on Mac OS X they are part of the ApplicationServices
umbrella framework.
Mac OS 10.8 actually introduced both as stand-alone frameworks,
but for simplicity we link to ApplicationServices, as there's
still symlinks from ApplicationServices to the real frameworks.
Change-Id: I7f7ef795629cc37da85857d5c42283754acc4474
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
The motivation is to enable coloration the way KDE currently does.
It can now be achieved with a QT_MESSAGE_OUTPUT set to
"%{appname}(%{category}) \033[31m%{if-debug}\033[34m%{endif}%{function}\033[0m: %{message}"
I was thinking about supporting directly color using something like
%{begin-category-color} that would be smart and detect if we are running
on a terminal, but it would be less flexible in the way the colors van
be configured.
Changelog: QT_MESSAGE_OUTPUT can contain conditionals based on the type
of the message
Change-Id: Icd8de04734a94a3afcbf542a5b78b290a1914960
Reviewed-by: David Faure (KDE) <faure@kde.org>
Implemented lastInsertId() for some ODBC compatible databases.
Change-Id: I0b75a8e68369af39e258e4761b384767ab8a371e
Reviewed-by: Mark Brand <mabrand@mabrand.nl>
We still need them for Android assets implementation.
Change-Id: I12bb809c05ac88f3c4a7d6796692b4dc3987027c
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
This is a workaround for a broken compiler
Change-Id: I10c8c750caf56036419807ec4a2439bf14cf64d6
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
We got these because we were flushing the backing store with a
null QImage.
Change-Id: I372cb3fc7c82d3bdcfe735fcadfa72806d0ef39b
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
(qsimplecodec.cpp says so, but is unused when ICU is used)
ISO 8859-16 is still missing though...
Change-Id: Idbccedd7bad63f9788cec2f7fc1bbfcb7a891acc
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Defining QT_QPA_DEFAULT_PLATFORM_NAME in qplatformdefs.h is not
neccecary, as qconfig.h will already have this define written by
configure.
Change-Id: I89d9191533f6b4e6bfd5eade6cc0dced02b50f81
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
qgtkstyle.cpp:3177:103: error: suggest parentheses around ‘&&’ within ‘||’ [-Werror=parentheses]
qcups.cpp:517:66: error: ‘QString::QString(const char*)’ is deprecated
itemviews.cpp:795:13: error: unused parameter ‘actionName’ [-Werror=unused-parameter]
qeglconvenience.cpp:268:9: error: ‘cfg’ may be used uninitialized in this function [-Werror=maybe-uninitialized]
Change-Id: I9b8a175ff1c2ddc443363e08b92e09cf7c2f91cf
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
Reviewed-by: John Layt <jlayt@kde.org>
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
For systems where the Unix signature checker isn't enabled (read: Mac
and Windows), QPluginLoader must actually load the plugin to query for
the metadata. On Mac it even tried to keep the library loaded to avoid
unloading and reloading again when the user calls load().
However, that plus the fact that it was calling load_sys() (on Mac)
meant that it would bypass the reference count checking. And on all
Unix, if a library-that-wasnt-a-plugin was already loaded by way of a
QLibrary, it would have an effect of unloading said library.
So remove the "caching" of the library. We should instead invest time to
write a proper Mach-O binary decoder.
Task-number: QTBUG-29776
Change-Id: Iebbddabe60047aafedeced21f26a170f59656757
Reviewed-by: Liang Qi <liang.qi@digia.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
Both QPluginLoader::unload() and QLibrary::unload() protect against
that (they have a "did_load" member), but QFactoryLoaderPrivate's
destructor doesn't. In the past (Qt4) all plugins had to be loaded
anyway, so there was no mistake in the reference counting. With Qt 5,
we don't load plugins unless they're actually used (in
QFactoryLoader::instance).
Task-number: QTBUG-29773
Change-Id: I3278fa14bac7e26a9faaf999b4e42e950654ac9a
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
The dbus_watch_get_fd function was deprecated in D-Bus 1.2 (technically,
in 1.1.1, but that was a development release) because it had a bad name.
Sockets on Windows have file descriptors, but they are not shared from
the same pool as the CRT library's file descriptors.
This commit raises the minimum required version of D-Bus to 1.2. This is
the first requirement raise since this code was introduced in 2006. For
some reason, the D-Bus 1.2.0 release seems to be missing, but 1.2.1 was
released on 04-Apr-2008. That's ancient enough for all distributions
Qt 5 is supposed to run on.
Change-Id: Ia6bbc137fffbb27c77290ed3e32d3380f0ae3c54
Reviewed-by: Lorn Potter <lorn.potter@jollamobile.com>
Don't use wcscpy_s() which is not available on MinGW but determine the utf-16
string length and pass that value to QString::fromWCharArray() instead.
Change-Id: I45d1b1969fe03255fdb6353fa9f52417af530e40
Reviewed-by: Laszlo Papp <lpapp@kde.org>
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
Having a global static variable in a header is a poor choice to start
with. All .cpp including that header must use that variable or the
compiler will warn of an unused static.
Second, for the case of platform hooks, it's possible that it is reading
the value of a variable that isn't initialised yet.
Change-Id: Id823c2be9cfededb9c31fb76a9080d4122577ca4
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
This avoids confusion now with the actual driver and avoids a
name collision in later refactoring.
Change-Id: I83055213f3a7b7998640662d49ba33749fdadd18
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
The complete set of OpenGL extensions is large meaning that any attempt
to incorporate them into a shared library such as QtGui would bloat the
size of that library.
The typical usage pattern for OpenGL extensions is to use only a very
small number of extensions from the total available set. A static
library suits this situation very well as an application will only
compile in the executable code for the extensions actually used. Thus
makign all of the functionality available to those that need it but with
zero cost to those that do not.
Change-Id: I49fdac7e9d2e0b190b7ea04b776018dd63c3065f
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
This commit adds part of the output of utils/glgen and some simple
modifications to QOpenGLContext to allow easy access to classes
containing functions specific to a given OpenGL context and version.
This allows compile-time detection of mis-use of OpenGL features.
For example, trying to use glBegin(GL_TRIANGLES) with an OpenGL 3.2
Core Profile context will be detected by the compiler rather than at
runtime.
These capabilities make it much easier to add functionality to Qt and
applications that relies upon core features of OpenGL from specific
versions e.g. geometry shaders.
Change-Id: Ieb584a489792595f831bc77dee84935c03bb5a64
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
The rubberBandRect function is nice to have, but this patch
makes it easier to track the rubber band by emiting a signal
on change.
That makes it easier (and less clumsy/hacky) to show information
related to the rubber band.
Change-Id: If65eb85d743a1804be3fdb823a821423411e9745
Reviewed-by: Andreas Aardal Hanssen <andreas@hanssen.name>
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
In many situations it is handy to know the rubberband rect.
There are many situations where we want to show something
related to the rubberband.
Regardless how that is done the rubberband area is needed.
(Not having this is a flaw that can force people to do make
a customized rubberband just to get this information)
Change-Id: Ia854db4c0022b6a97b150af2b4bb78fd5e974991
Reviewed-by: Andreas Aardal Hanssen <andreas@hanssen.name>
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
We treat iOS as a variant of Mac OS, so for iOS both Q_OS_MAC and
Q_OS_IOS will be defined. This matches what Apple assumes in the
header file TargetConditionals.h
Change-Id: I55cc851401b748297478e4c32e84e0f6e1fdfc28
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
QMacStyle is not buildt as a part of iOS. So make sure we dont
reference it from QStyleOption
Change-Id: I98e779c576d0607402e45a19b457144a6bdfc73b
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
Make sure the libraries dont depend on Cocoa. This will be
picked up by libtool, and make all apps and examples link
against cocoa too (which will ofcourse fail)
Change-Id: I5654bb08c4ed376fc7ee74da422d903270a8af38
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
The plugin has been renamed from uikit to ios.
Other than that, the plugin will now build, but do nothing. Most of
the Qt4 code is preserved, with a rough translation
into the Qt5 qpa API. A lot of code has simply been commented
out so far, and most lacking at the moment is the event dispatcher
which will need to be rewritten, and the opengl paint device
implementation. But it should suffice as a starting ground.
Also: The plugin will currently not automatically build when
building Qt, this needs to be enabled from configure first.
Change-Id: I0d229a453a8477618e06554655bffc5505203b44
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
Add the "We mean it" text and remove the now-unnecessary syncqt macros
that used to prevent those headers from being added to the master
includes.
Change-Id: I03ac2a452bc6ac43ebba502bc0ecbf5ee1adf314
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Mark Brand <mabrand@mabrand.nl>
The drivers were never public API. They were exposed by mistake in
public headers. What's more, they have #include'd a private header
(qsqlcachedresult_p.h) since at least Qt 4.5.1. That means no one used
those headers in Qt 4 (private headers weren't installed then) and
it's unlikely anyone did in 5.0.
Change-Id: Ie0a47bcf0260ee6bdd3d8494b78fd1eec28a2d6b
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Mark Brand <mabrand@mabrand.nl>
Qt Designer warns:
"The property "document" of type 1053 (user type) is not supported yet!"
when loading forms containing a QTextEdit.
Introduced by 468c22f673 .
Change-Id: Ia1b7bdc9f7188e0b092c010056fcd12c9e891fd7
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
The snippet files referred were outside the scope exampledirs for
QtCore. I made of a copy of those files in the snippets folder to
fix this issue.
Task-number: QTBUG-29755
Change-Id: I2f765104394071d035e9cee610945ae290033deb
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
Reviewed-by: Martin Smith <martin.smith@digia.com>
Reviewed-by: Nico Vertriest <nico.vertriest@digia.com>
QStandardItemModel doesn't really benefit from a reimplementation of
sibling, and the current implementation is buggy.
Task-number: 29540
Change-Id: Icf8dca29b6e1394a378db5bf6abd884f2d7fd9b9
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
On dark background scroll bars will be rendered light. Since
the scroller object is shared across intances, this flag also
has to be reset. Otherwise all scrollbars are drawn light.
Change-Id: I3800cc783d7fd7ebff296d9db7454efb5b33e7a3
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
Not taking the devicePixelRatio into account causes
us to either grab a quarter of the screen or do a
low-resolution grab.
Change-Id: Ie6b681e3a089f17b63554c8158bb471a14963d7a
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
When the window is hidden, an expose event has to be be posted. This is e.g. needed by the qquickwindow. A exposeEvent calles the exposureChanged
function of the window manager there.
Change-Id: I9d891e07f81192dcd6674743620319c44da19c48
Reviewed-by: Wolfgang Bremer <wbremer@rim.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
U+202F is not of a Default_Ignorable property for a loooong time
(perhaps was treated like a control code by mistake)
Task-number: QTBUG-13280
Change-Id: I3c5ec5fa514039b7bca9ffa28ad6f5355e627855
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
When selecting the primary screen, the m_primaryScreen value obtained
from the xcb_connect() call should be respected. This ensures that the
proper primary screen is selected when specifying the DISPLAY
environment variable.
Task-number: QTBUG-27220
Change-Id: I60aa207f13d919087d4d2913141c804928684731
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
Introduce QT_OPENGL_ES_2_ANGLE_STATIC define for static builds
and modify export accordingly. Provided static instances
of gl::Current and egl::Current for Qt's single threaded
use.
Task-number: QTBUG-28196
Change-Id: Ia75699d6da103fb8dd9d5fe97c1ee51e48a74406
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
Currently static builds ignore the accessibility plugins.
The debug output would also potentially crash for
other events when they could not create interfaces.
Task-number: QTBUG-28707
Change-Id: I5ae20cac89bd7f4a74add2b80834f4e9d4fa438c
Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
Just removing the event from QList will not delete it...
Change-Id: I3c4bb69a2afaada7ad4d5695eba0b3f29e9463ec
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Default-constructed geometry does not mean put the window at 0,0,
and it does not mean center the window on the screen: it means
let the window manager position the window. If the window is
explicitly positioned at 0,0 though, that is a higher priority
than the transient hint; without this change, the transientFor property
had no effect. On X11, transient means use center "gravity" to
make the transient window exactly centered. But the user can still
override the geometry of a transient window, as with any window.
On OSX and Windows, neither transient window functionality nor smart
initial positioning are provided, so a window with no position set
will be centered on the screen, and a transient window will be put
at the center of its transientParent.
Change-Id: I4f5e37480eef5d105e45ffd60362a57f13ec55f5
Task-number: QTBUG-26903
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
The constructor is sufficient, since it has a parameter for each member variable.
Even the drivers, which were mentioned in the class description don't use them.
Change-Id: Ie8ba0467c7dc1928c539b4b19db8cc2ea0f44ea0
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
Reviewed-by: Mark Brand <mabrand@mabrand.nl>
QCryptographicHash will do the full Init/Update/Final calls, so we
don't need the Hash function. Disable it from the compilation to avoid
a warning about a function defined but not used.
Change-Id: Ib48ae4a7be91089fdcffa00851b786816b798cd9
Reviewed-by: Richard J. Moore <rich@kde.org>
This decouples it from qAbs which is declared as a constexpr under
certain compilation flags and enables for qtbase to be compiled with
GCC 4.8
Change-Id: I78e02256ffc8b460ca74ae5241e77dfac4e09ba9
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
There's no need to compile the other codecs if they never get
used. It's possible that a whole-program optimisation would remove the
dead code away, but it's not very likely.
Change-Id: I75d7618c174566beec2fab44f60a9f7120133775
Reviewed-by: Richard J. Moore <rich@kde.org>
This patch includes a few different fixes to make transparent toplevels
work on cocoa.
- When setting alpha on the toplevel, it also needs setOpaque:NO
- The OpenGL context needs a separate flag for this to work.
- Make sure setOpaque fighting between setMask, setFormat and
setOpacity ends up correctly
Task-number: QTBUG-28214
Change-Id: Ic3a2d71193bb653e181c98787b4ebda002424092
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
Instead of creating a default-constructed format and filling its field
in, pass a pointer to an instance. This way we won't lose the renderable
type set on the surface, but just fill in the other parameters.
Change-Id: I1fd403671f9c677cc74aaf3c116a05f213d5d556
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
Add and export QCCoocaView::setContentView(NSView *),
making it possible to host a foreign NSView in a QWindow.
Change QCoocaWindow::m_contentView to be a generic
NSView, instead of a QNSView. Add a separate m_qtView
for code paths that expect a QNSView.
Change-Id: I47935b69705c70ea7efbb03d6d4bf489947c3487
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
We don't support other context types, so fail in those cases.
Also, return OpenGL as the rendereable type of our surface.
Change-Id: I22792a913b78b837da3d27cef69145076579b949
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
We don't support other context types, so fail in those cases.
Also, return OpenGL as the rendereable type of our surface.
Change-Id: Ic7b5ed0ec5eaf5c0f88f50f5bceb697ea414c696
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
We don't support other context types, so fail in those cases.
Also, return OpenGL as the rendereable type of our surface.
Change-Id: I3d5632eb8555d73ed14837b662c7450589a8681f
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
Make it possible to create a core context with OpenGL implementations
that don't implement the compatibility profile or the
GL_ARB_compatibility extension.
Qt was effectively clamping the OpenGL version to 3.0 by assuming that
the highest supported backwards compatible version is also the
highest supported core version.
Since there is no way to check if the implementation supports a
context with a given set of attributes without trying to create the
context, we have to try every known OpenGL version until we find one
that's supported.
Note that this commit does not fix similar breakage on other platforms.
Change-Id: I9616762b059db9e6182f853ab7f24ff44dc7d529
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
We might need more robust code in the future. But at least for this case
it looks like a CFStringRef is also a possibility.
Task-number: QTBUG-29776
Change-Id: Iaf50835122fcbb7e6e9c7fbf65e31e6143b2bc54
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
Reviewed-by: Denis Dzyubenko <denis@ddenis.info>
Move the Carbon dependency to the Cocoa platform plugin instead, where
it's actually used.
CoreFoundation was not used by any plugins and could be removed
completely.
Change-Id: I1c825cdf94e2cc348ea13519b894fd868be0d14a
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
This allows embedding a QWindow in a foreign NSView
hierarchy.
Don't create a NSWindow. Add code paths for handling
the embedded window case. Avoid changing the other
window cases. There is potential for merging some of
these cases but that can be done at a later point in
time.
Change-Id: I54c7b4eb82fad268f90ea6b716fc650ae31bd3af
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
Added the following functions to QStringRef: toShort, toUShort, toInt,
toUInt, toLong, toULong, toLongLong, toULongLong, toFloat, and toDouble.
These functions use the corresponding functions found in QLocale.
Updated tst_qstringref.cpp to exercise the new functionality.
Change-Id: I38668a0cc7da0c101a62613fd16cb5a98286617f
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
qdoc did not resolve QML Inheritance correctly and the result was that
QML inheritance was not shown correctly in the documentation. Part of
the problem was that information was missing for QML types in the .index
files produced by qdoc. qdoc also did not show inheritance properly
when one of its base types was marked internal. These problems have
now been fixed.
This update also fixes the problem that caused qdoc to slow down to a
snail's pace over time. The group members list for certain group pages
was getting longer and longer, because qdoc added the same member to
the member list an additional time every time qdoc was run in -prepare
mode if you didn't clear the index files first. Now, qdoc only adds a
member to the member list if it isn't already in the member list.
Task-number: QTBUG-29778
Change-Id: Ie4f0458a2ea4ceb1a64cdcd7f60f16b124a20790
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
Change-Id: I09286388e9af7ec472b394be87204746f8ae22b1
Reviewed-by: James Turner <james.turner@kdab.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
This now includes support for OpenGL 4.3
Change-Id: I964284843dffe806280e7f67cde67f17e84dc6df
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Before a buffer swap the new QEglFSHooks::waitForVSync method is
called which looks at QT_QPA_EGLFS_FORCEVSYNC and - if that is set
and non-null - calls ioctl with the FBIO_WAITFORVSYNC request on
the framebuffer device.
This is required on some embedded platforms where the driver does not
support VSYNC yet the Kernel provides a generic implementation.
I tested this using QML_RENDER_TIMING=1 which proofs that the frame
rate for an example of mine drops from >125fps to a straight ~60fps
with a few frames that take ~33ms (i.e. 30fps) as expected for VSYNC.
To prevent excessive open/close calls on the frame buffer device
per frame, the file descriptor is now cached. To keep the QEglFSHooks
interface as clean as possible this is done via a global static in
qeglfshooks_stub.cpp and initialized and freed in platformInit and
platformDestroy.
Change-Id: I4d31b227c65ff22aa089db0fbc62c89a59cbb6c7
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
These will be needed by the upcoming OpenGL enablers so move them
out of qopenglfunctions.h to somewhere that any opengl related file can
access them.
Change-Id: I0c788559397d446ec7210e2ad940da862179710d
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
On Mac OS X 10.7 (if System Preferences -> General -> Show scroll bar is
"When scrolling") scroll bar was shown even if policy was set to
ScrollBarAlwaysOff.
This is a regression from 5.0.0.
Change-Id: I161b350874c085a1397df7b398af8f3fb0fbeacf
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
When performing macro argument substitution, one should keep the set of
macro to exclude, else we can enter an infinite recursion.
Testcase:
#define M1(A) A
#define M2 M1(M2)
Task-number: QTBUG-29759
Change-Id: I564bbfed65e1c8599592eaf12c6d67285d2fd9ce
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
The motivation for this patch is twofold:
1: we need a way (for iOS/Android) to tell the current window to remove
focus from the focus object when the user hides the input panel.
Otherwise, if the focus object is e.g a line edit, the cursor will
continue to blink inside it, which is wrong. As it stands, telling
the active window to deactivate
(by calling QWindowSystemInterface::handleWindowActivated(0)), will cause
the whole application to deactivate if no windows are active, which
is not what we want.
2: Qt currently understands just two application states, Activated and
Deactivated. On mobile platforms we can have other states
as well, like "suspended" on iOS. So controlling the application
state should not depend on window activation, but instead be controlled
through a separate API by the platform plugin.
This patch will add the following function:
QWindowSystemInterface::handleApplicationStateChanged(Qt::ApplicationState newState)
that lets us control the application state from the plugin. This also
means that we factor out application state handling from window
activation, which also gives us a way to remove focus from a window while
keeping the application active.
To not break existing desktop platforms that relies on application
activation being tied to window activation, we need to make this API
opt-in by using a platform integration capability hint. This is not optimal, but
found necessary after investigating several other solutions.
Which states (other that active/inactive) it makes sense
to add to Qt::ApplicationState will be a topic for later patches.
Change-Id: Ic6fdd3b66867abb67da43eba04ec86f06d82ff94
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
This fixes QMetaType detection of const reference arguments in signals
while connecting using the new syntax and Qt::QueuedConnection
const references should have the same QMetaType as non references.
That means we need to remove the const reference while getting the
QMetaType.
Change-Id: I9b2688da7fb9ae985aec0d8fa62a1165357ffe71
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
Now that we always build against an SDK, we can be sure that the
function declaration for CTFontCopyDefaultCascadeListForLanguages
is available in the CoreText CTFont.h header.
Change-Id: I304a701548833e5c7774b4fd2e72eb8c541dd103
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
This change lets you call QHostInfo::lookupHost() with a null receiver
in order to warm up the DNS cache. This allows you to try to get the
DNS request in flight early.
Change-Id: Icfdd28146479aa534ae9ceb472f75e08aaa39cd2
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
The code snippet demonstrating the use of drawText() was already
updated to use the text 'Qt Project' - update the image accordingly.
Task-number: QTBUG-29784
Change-Id: Iea5e729bd26df2d8ab6a02bb7ea804494e554a28
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
This change adds some QML property, signal, and method
data to the .index file. It also provides more robust
resolving of QML inheritance for qml types.
Task-number: QTBUG-29778
Change-Id: Iaefd64227913a19f427b21e904ca5e32c82d7b29
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
It was not possible to extract data from the archive on OSX
which was created on Windows platform because of wrong
separators. Archive was created on Windows via QZipWriter and
opened on OSX with QZipReader. It consisted of a lots directories
and subdirectories with files. The solution is to use '/' separator
for internal representation.
Change-Id: Ic0837ca184bb6188129d53b587a5df2ec61e4e05
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Activate the window of the widget under mouse pointer before replay mouse
press event.
Change-Id: I9e699374accf108aa49b2a3c73d5e76631100dfd
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
The patch adds handling for a case when a QVector is shared between two
threads. In such scenario detaching in one thread could collide with
destruction in the other one, causing a memory leak or assert in debug
mode.
Task-number: QTBUG-29134
Change-Id: Idbff250d9cfc6cf83174954ea91dbf41f8ea4aa4
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Adds documentation for example manifest files and the related qdoc
configuration command \manifestmeta into QDoc manual.
Change-Id: I6a627698ab14f57c9a117b6d4b794f352959f5ac
Reviewed-by: Martin Smith <martin.smith@digia.com>
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
Do not spin off progress bar animations if QStyleOption::styleObject is not set.
Task-number: QTBUG-29748
Change-Id: I4e17a4892e82cae48250afa7a270b15ca5730f46
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
This is not always reproducible, but it probably crashed because
QStyleSheetStyle::polish() can do some nasty things such as creating
and deleting objects, which can leave the list with dangling QObject
pointers.
However, it should not delete QWidgets, so we make sure we only have
a list of QWidgets before we perform the polish iteration.
Change-Id: I84c1ca6a7316e72348248ff056b65dcbae3d20a3
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
There were race conditions when accessing the plugin factory and
the image reader plugins from different threads; ref QTBUG-29281.
Added a mutex lock to avoid.
Change-Id: Ic1a3b6cbaf5603f1bcf7025b58247a9a3f6d08a9
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
URLs containing spaces (encoded) couldnt be opened using QDesktopServices::openUrl() -method.
This is a regression as it works for 4.8,
Using url.toEncoded() instead of url.toString() which removed percent encoding.
The NSUrl uses RFC 2396 for parsing, and according to the documentation,
of 2.4. Escape Sequences - Data must be escaped if it does not have a
representation using an unreserved character;
And as a space does not have a representation using unreserved character it needs to be
escaped.
Example: Using this url, http://www.google.com/search?q=testme%20withspace
url.toString() returns "http://www.google.com/search?q=testme withspace"
and url.toEncoded() returns, http://www.google.com/search?q=testme%20withspace" which is
also the expected result.
Task-number: QTBUG-29124
Change-Id: Ieed3d4cfb689b9311f6cf21e5098a1e70256ab03
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
This reverts commit 15fc255c7c.
The change was not compatible with the oxygen-gtk theme engine.
Furthermore, GTK3 compatibility in QGtkStyle is not important,
since it won't be feasible to support both GTK2 and GTK3 in
the same style implementation.
Conflicts:
src/widgets/styles/qgtkstyle_p.cpp
src/widgets/styles/qgtkstyle_p.h
Task-number: QTCREATORBUG-8524
Change-Id: I8ea6dcfd1f432d51b306a5d9f6c4106137979c5a
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
When the cursor specified is a bitmap one we cannot cache it based on
the shape as the pixmap set on the cursor may be different. Therefore
we should always create a new cursor in this instance.
Change-Id: I2c201590ff632490d76c1b423908ae32aa584eb6
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
When setFloating(true) is called before show, frame strut events
are not enabled for the native window (since there is none yet)
in QDockWidgetPrivate::setWindowState(). In that case, do
it in the show event handling.
Task-number: QTBUG-29012
Change-Id: I93b679f20200c149d608a1bcc65b4936a035c6a0
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
When QProcess->start() is called, Qt creates a pipe to the process to
get its exit value and output.
It does this with qt_create_pipe, which calls qt_safe_pipe.
qt_safe_pipe, on failure, returns 1. qt_create_pipe then
sets errno and returns void.
The calling function, QProcessPrivate::startProcess, does not check
errno, and thus continues to fork the process, assuming the pipe has been
created successfully.
The child process then has no way to pass its exit value to the calling
process, since the communication pipes it would normally use do not
exist, and thus when it exits it becomes a zombie.
As a bonus, if waitForFinished is called on a broken process, a crash
results because it is trying to wait on a pipe which does not exist.
The fix makes qt_create_pipe return an integer, and QProcess::startProcess
check the return value, set processError and not create the child
process.
Task-Number: QTBUG-18934
Change-Id: I2e1effdd0617be5b8c5492bcbcf5f2b1584b2241
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
The QAbstractSocket API has been already using this as a return type. Hence,
this has already been exposed to the public API users, anyhow.
http://qt-project.org/doc/qt-5.0/qtnetwork/qabstractsocket.html#socketDescriptor
A minor mistake has also been fixed in this commit at the quintptr section.
Change-Id: I8143b3050428548ff6baee2e3a0bce4058ea8701
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Add an encrypted signal to QNAM and QNetworkReply to allow applications
to perform additional checks on the certificate chain beyond those done
as part of the standard SSL validation. This allows things like
certificate change notification to be implemented for QNAM as they can
be for QSSLSocket currently.
Change-Id: I693e3e6fec8b7040379b7e7f1f819550e6b2617f
Reviewed-by: Peter Hartmann <phartmann@rim.com>
Add intermediate certificates to our server sockets, and to our client
certs.
Change-Id: Ib5aa575473f9e84f337bebe35099506dd7d7e2ba
Task-Number: QTBUG-19825
Task-Number: QTBUG-13281
Reviewed-by: Peter Hartmann <phartmann@rim.com>
Instead of storing a single QSslCertificate for a the local cert, store
a list of them. This will allow us to handle server sockets that use a
certificate that is not issued directly from the CA root in future.
Change-Id: I9a36b9a99daa9c0bdd17f61b4ce1a7da746f2e96
Reviewed-by: Peter Hartmann <phartmann@rim.com>
When rendering to PDF using the PDF paint engine on Mac it would
consider it to be rendering as HIDPI when ScreenResolution was used.
This would mean nothing was being rendered at all in the PDF as a
result.
Task-number: QTBUG-28709
Change-Id: Ieb97ca9d0b47f6b96debbcf5e05e96c39292e412
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
We also have to make sure that when moving back to a page
that has a focusWidget(), the focus should go to the focusWidget()
Task-number: QTBUG-18242
Change-Id: Ibfa7d6361c1a456480b2f1584a88ef4c4f405709
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Exhausting the symbol list while looking for the
final right parenthesis means it is missing.
Task-number: QTBUG-29308
Change-Id: Iccf5897b0f5eb719699fd12d6c8e4a16ff189d9b
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
In the rare event of an invalid sized window, the application crashes
because libscreen doesn't like creating empty buffers.
Not creating the buffers at all would also be a solution, if we didn't
have QPainter crashes due do null paint devices.
Change-Id: I561d0082576b6226dd52129f9640952ba46273c8
Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
This is the same fix that was already done in qprinter.h
/usr/include/bits/termios.h:122:#define B0 0000000 /* hang up */
so the compiler sees B0 as a numeric constant
Task-number: QTBUG-29704
Change-Id: I2df5e1783f3142558cbc1606e0c61fcf636f2de8
Reviewed-by: David Faure (KDE) <faure@kde.org>
QEglFSWindow does not request highestPixelFormat, and can obtain a 16-bit
config when requested. QEGLPlatformContext does request highestPixelFormat,
and can obtain a 32-bit config when a 16-bit config is requested, leading
to this error.
Change-Id: I418c09a35ec19b2e9ca372b32599034e02384e44
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
-QDoc doesn't differentiate between \badcode and \code. They both
look the same in the output.
Change-Id: Ifabd51b7e433a1c30cf30c267d3ce63dded1bd43
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@digia.com>
By default we still use QIconLoaderEngine but now platform theme plugins
have the opportunity to override that. It is in particular planned to be
used in a WIP platform theme plugin for KDE sessions.
Change-Id: I07a82dc91daea44709b3a790f3f6e2a7a090d108
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: David Faure (KDE) <faure@kde.org>
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
If FBIOGET_VSCREENINFO doesn't give us sensible values we need to
default to something instead. Refactor the code that queries the
resolution and depth to behave the same way.
Change-Id: Id2b3fc41349a74610856273b10281f744612890b
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
Exhausting the symbol list while looking for the
final right parenthesis means it is missing.
Task-number: QTBUG-29308
Change-Id: Iccf5897b0f5eb719699fd12d6c8e4a16ff189d9b
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Call setOptions() such that the option takes effect.
Task-number: QTBUG-28817
Change-Id: Ibef834efc988d3ba49e88ea88ef475b1fd7fd98f
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
We no longer support OS X < 10.6, so there's no need to check for it.
Change-Id: I2628984846de0c0c19ea86b3ba6d00fc370ddae7
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
The function we use to get the actual vsync on cocoa is documented
to return 0 if the monitor is not a CRT monitor. A refreshrate
of 0 means we have vsync deltas of 1000/0 which cause problems
elsewhere. It is better to use the "default" value in this case
as it will be closer to correct than 0.
Change-Id: Id08007e40a9af5e42f13a07628fcad5fd3a7d0dc
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
Inherits QSurface and allows to use OpenGL from an arbitrary thread.
Platform plugins can implement QPlatformOffscreenSurface, otherwise an
invisible QWindow is used by QOffscreenSurface.
This patch includes an implementation of QOffscreenSurface for XCB
and EglFS platform plugins using pbuffers.
Change-Id: I57b4fc1db417331f34826dcfa754b7698782fde4
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
This should select the best mode (likely the currently running mode)
for the display instead of the first one found.
The built-in mode was left as a fallback.
Change-Id: I4e1bc798df6f310b001566ab76cb9def3224a7ed
Reviewed-by: Andy Nichols <andy.nichols@digia.com>
GBM provides a way to write directly to a buffer object that gets set
as the drmMode cursor. This eliminates the need to create a GL texture
and opens this class up to platforms that support GBM but not OpenGL.
Change-Id: I7297827387ef9a717a5287b5484f14c9987b4158
Reviewed-by: Andy Nichols <andy.nichols@digia.com>
- Use qtHaveModule to check for OpenGL
- Add __GBM__ to pick up the correct native types in the Mesa EGL headers
Change-Id: Idfc0e81e95672b08ba8f259b9d7edf2b25fd1bad
Reviewed-by: Andy Nichols <andy.nichols@digia.com>
A QGraphicsProxyWidget embeds a focusable widget (e.g., QComboBox). When
deleting QGraphicsProxyWidget, the QWidget will be deleted. The QWidget
clears focus, and QWidget::hasFocus() is nice enough to check if its
embedder QGraphicsProxyWidget has focus - because if it does, it wants
to clear focus from that item too. QGraphicsItem's destructor already
calls clearFocus() however, so this call is unnecessary; we can simply
stop clearing the QWidget's focus in its destructor if the widget is
embedded.
QWidget::hasFocus checks QGraphicsItem::hasFocus (on the proxy widget
that is being deleted), which checks its d_ptr, which is gone. It's
generally unfavorable for an object deleting a child to have the child
go back and poke at the parent object, which is in many ways what's
happening here.
Task-number: QTBUG-29684
Change-Id: I1e52bf28f47b2824752de28dff2d0de13733ee48
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
The crash is deep inside QGraphicsSceneIndex, which calls boundingRect()
on the item that is being destroyed. The vtable is busted, resulting in
a pure virtual function call. There's a more proper fix for this lying
around somewhere but in this particular case we can get the test to
not crash by guarding based on whether the item has a cursor set. This
also happens to speed up QGraphicsItem destruction a bit so I figured
it's a win-win situation to fix it. This case will still crash if the
item actually had a cursor set but that makes the case even more narrow.
Generally speaking, creating objects partially on the stack and
partially on the heap, mixing parent/child relationships and then
deleting one of the heap objects is quite sketchy and I doubt it happens
much outside of this unit test.
Change-Id: I25393d2cafb1256269ab6681519bd554cc380bfd
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
The former was introduced with Mac OS 10.6 and can also be used
for checking iOS versions, so it's preferable. We still include
the old availability header, and use it in various places in Qt,
and so does the Mac OS frameworks, so there's no need to phase
it out, but for new platform checks we want to use the updated
macros of the form:
#if __MAC_OS_X_VERSION_MAX_ALLOWED > __MAC_10_7
Ideally you should not use the named version macro, and use 1070
instead, in case you build against an SDK that does not define
the named version yet, but we take care of defining these
in qsystemdetection.h for convenience.
Change-Id: I9cfa72e37816583f28ff9643793f111e155b7789
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
AvailabilityMacros.h will pick up the MACOSX_DEPLOYMENT_TARGET environment
variable, as well as the -mmacosx-min-version= command line flag, and
set the MAC_OS_X_VERSION_MIN_REQUIRED based on that. By setting the
define before including AvailabilityMacros.h we essentially skipped
that whole logic and always set it to 10.6.
Only in the case where there's no deployment target specified on the
command line do we want to ensure that it's at least 10.6
Change-Id: Ic558ff4deb77937ea805b048d83949815b273bcc
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Qt5 requires Mac OS 10.6, so we can remove checks such as
if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_6
Change-Id: Iea21727a277291148704ecf9677ed0b68c24920f
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
We now re-use QOpenGLExtensions/Functions from QtGui in the same way
as QtGui uses these classes. There is still some duplicated logic
in qglfunctions.cpp, but this code now at least uses the shared
QOpenGLExtensionMatcher class.
Change-Id: Ie04008c43d430ae805e6ec1c45e7e363deeb3b8f
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
Create an array of arguments in the same way
QMetaObject::write does
Task-number: QTBUG-29082
Change-Id: I4ea5ab5dcd6b55cf0a127b855b5aac27a9d4a305
Reviewed-by: Davide Pesavento <davidepesa@gmail.com>
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
This patch enables usage of the new NSUserNotificationCenter as part of
Mountain Lion. On earlier versions, or if compiled on earlier versions,
Growl will be used, if installed.
Change-Id: I676f9c63aa3c1ada19d36b6310ae90915be63011
Reviewed-by: Jake Petroules <jake.petroules@petroules.com>
Reviewed-by: Richard J. Moore <rich@kde.org>
Modified QLocalPrivate::numberToCLocale to take a const QChar * and an
integer instead of a QString. This allows for passing QStrings and
QStringRefs into the same function. Updated the
QLocalePrivate::stringToDouble, QLocalePrivate::stringToLongLong, and
QLocalePrivate::stringToUnsLongLong to use this new function signature.
Change-Id: Ifee5dfcd9b743e1d3b9123a65007c89e8ed93e83
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
... because almost everybody gets it wrong almost every time.
Change-Id: I54938ef094323ba8de02186b585b11b9579f3ca4
Reviewed-by: Richard J. Moore <rich@kde.org>
This reverts commit d0804ff2dd.
The commit breaks JSC which is used by QtWebKit, QtScript and
indirectly by QtQuick1, which blocks integration stable->dev.
JSC should be fixed upstream, but until then we need to revert
the change.
Change-Id: I3f7b8be08b68181e08422d2cb00d7cd70a7fc07f
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Reviewed-by: Thorbjørn Lund Martsum <tmartsum@gmail.com>
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
It's not part of the fallback list we read from the plist file.
Change-Id: Ieaf306d4cd51a6bb6e6f41048876d3e674a4b99b
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
Change-Id: Ic6b39825cf349f8ad8a56b1fb5dd3855f8675519
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
Use the correct enum. GL_CONTEXT_FLAG_DEBUG_BIT does not have the same
value as GLX/WGL_CONTEXT_DEBUG_BIT_ARB.
Change-Id: I7d90da54ca1ff526c8b00669b486a68424fc8dfb
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
This change makes qdoc support additional attributes and tags written
to example/demo manifest files. The goal is to enable highlighting of
selected items, as well as having additional content to make searching
for specific categories work better in Qt Creator welcome screen.
This meta-content is stored in manifest-meta.qdocconf, which is loaded
globally for all modules.
Tag handling is also changed to use a QSet to eliminate possible
duplicate tags.
Task-number: QTBUG-29354
Change-Id: I2c4b2dff6229172efbecc2bfc1c269017edc4d56
Reviewed-by: Martin Smith <martin.smith@digia.com>
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
Parsing for bound SQL parameters now handles identifier quoting using
double quotes (") and square brackets ([]).
The following has only 1 bound value but previously 2 were detected:
SELECT 1 AS "A?b[?']]]de?ghi", ?
Task-number: QTBUG-27159
Change-Id: Icfd02187e1126ff3b5ed11df8d4e599f574e61bf
Reviewed-by: Mark Brand <mabrand@mabrand.nl>
On X64 Linux DB2 driver build give an error on BIGINT conversion to
QVariant, casting it to qint64 solved the problem.
Task-number: QTBUG-20172
Change-Id: I7ef31cbe643c90b40b86cf3d7c4d3b711eabf2f5
Reviewed-by: Mark Brand <mabrand@mabrand.nl>
The Mac specific classes in QtWidgets are currently excluded and aren't
available for use in Qt 5.0.x. In Qt 5.1 they will be available via
QtMacExtras, when the widgets.pri is changed then this can be removed.
Change-Id: I04fbb5204cbd5658efaf24171c5f8dac10fbfd35
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
reuse QSqlResultPrivate::positionalToNamedBinding for psql
Change-Id: I48713c3f94eb880cafff5fddbeadaa0746a405a9
Reviewed-by: Israel Lins Albuquerque <israelins85@yahoo.com.br>
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: Mark Brand <mabrand@mabrand.nl>
Change-Id: Ibaffadec9bf9e6e0d5609b7327b369d560e8e2ce
Reviewed-by: Israel Lins Albuquerque <israelins85@yahoo.com.br>
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: Mark Brand <mabrand@mabrand.nl>
Change-Id: If57f4fcea2e00a1910df5a5bd2b556289f4ffb21
Reviewed-by: Israel Lins Albuquerque <israelins85@yahoo.com.br>
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: Mark Brand <mabrand@mabrand.nl>
Change-Id: Ic2db719437a11019262cf299929115ffa11d3d34
Reviewed-by: Israel Lins Albuquerque <israelins85@yahoo.com.br>
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: Mark Brand <mabrand@mabrand.nl>
It's the format class that lets you control the number of samples.
Change-Id: Id01f107a15787f33b65429d3c882854f2dc8784e
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
The window position was getting passed as both the window
and global positions.
QTBUG-29543
Change-Id: I24746675e5ba45adbd054742877bd2fe783d6608
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
As long as fonts weren't used we supported using QImage in combination
with QCoreApplication in 4.x, and there's no reason we can't continue
doing so.
Task-number: QTBUG-29643
Change-Id: I2cf351d3c93f1c175bbf624e45024d39ab913111
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
The bug was caused by changes b371f3f943
and 3bb9024952, which removed the event
forwarding that QWidget::mouseDoubleClickEvent() used to do without
making sure to call ignore() on the event like
QWidget::mousePressEvent() does.
Task-number: QTBUG-29680
Change-Id: I98af8052ad3dd1dea15d07a710aa9212ef5e4a68
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
It's listed in the 10.8 SDK as CT_AVAILABLE_STARTING( __MAC_10_8, __IPHONE_6_0),
but not in the release notes for 10.8:
http://developer.apple.com/library/mac/#releasenotes/General/APIDiffsMacOSX10_8/CoreText.html
The iPhoneOS 6.0 SDK lists it as CT_AVAILABLE_STARTING( __MAC_NA, __IPHONE_6_0),
which matches the release notes, and some 10.8 systems in the wild apparently
do not have this function declaration in the system headers, so for now we'll
be conservative and not assume it's available.
Change-Id: Idbadda58ea95bfca75458d77cb2799c49fba013a
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
A bit mask can have more than one bit set, so we can't use a switch
statement here. Also use the correct enums, and make sure that the
profile is set to QSurfaceFormat::NoProfile when the OpenGL version
is less than 3.2.
Change-Id: I6d2c4e35d4fb3d87fd47c9724cb415f8619a7b95
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
there is no reason why testlib in particular should have them, while
every other module uses the standard strings.
Change-Id: I9b9e45957dfccbf02939c326dcebf06133098ede
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
$$quote() doesn't do what you think, unless you did RTFM.
and it's usually just as unnecessary as double quotes,
depending on context.
Change-Id: Iaeadaa75b0650aad383a6e6031b822c04b537fb1
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
It does not have any effect in a SUBDIRS-type .pro-file.
Fixes 42a6d405e4 .
Change-Id: If2eafacecfd69b916861bf4b0afddb62628d720f
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
This is possible with QWeakPointer, so allow it for migrating
code too.
In the process, replace the QPointerBase with a member variable for
simplicity. The functionality of the QPointerBase is replaced
by a TypeSelector template.
Change-Id: I3b4c77bdeda2b863cc33e84a3da8a25bae928c8c
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Transient scroll bars should never be used outside of scroll areas,
since they would be unusable.
Task-Number: QTBUG-29389
Change-Id: Ie52d2093a4ab66085300a19ca9a1b32f13a29e79
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
it's pointless to test the target platform - it's always windows. but it
may make sense to test the host platform (not sure whether it's possible
to x-build angle).
Change-Id: I57847c930d6108a24a1005aa44f94ba0b4f9dfec
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
use library function which deals with shell specifics to set up PATH
Task-number: QTBUG-29427
Change-Id: Ic2bed4d7f0eb072bcce6a9f99be02d3cd08a7c98
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
there is mightily little point in unsetting variables right before
unconditionally assigning to them.
Change-Id: I24c1814ce38bf9aab4496679b1a670f3cd55c536
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
This was a regression bug owing to a big qdoc cleanup
for Qt5. But the way QML inheritance had been handled
was not a good design, so it has been changed here.
When a .qml file is parsed by qdoc, the base type of
the QML component is detected, and its name is stored
in qdoc's tree node for the component. After qdoc has
parsed all the QML files, it traverses the tree, and
for each QML component that has a base type name but
no base type node pointer yet, it searches the tree
for the base type node and stores the pointer to
the node in the node for the components. Then when
the output generator generates the doc page for the
component, it has access to all the inherited members
in the base type.
Task-number: QTBUG-29569
Change-Id: Ib4958d05f55fa48a572f8ca51ffd57712f29bbc7
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
Reviewed-by: Martin Smith <martin.smith@digia.com>
A new glyph type is added to the glyph caches for ARGB bitmap glyphs,
and the raster and OpenGL paint engines have been modified to support
this glyph type for drawCachedGlyphs().
The CoreText font engine implements support for these glyphs through
the CTFontDrawGlyphs API, since CGContextShowGlyphsWithAdvances does
not handle color glyphs.
Change-Id: Idad9ce75a911cae130d65aebe59142772a16fc12
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
The parent file has already set a variable for it.
Change-Id: I90ddda355a580f44ea7e1e44cc7df717fa0a8b7b
Reviewed-by: Alexander Neundorf <neundorf@kde.org>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
If a popup widget(e.g. a popup menu) has been closed due to a mouse press
event, the mouse press event will be consumed by the popup widget and the
widget under the mouse pointer can't receive the event. This will lead to
confusing behavior such as a push button under the mouse pointer is not
been push down.
This patch replay the mouse press event if a popup widget has been closed.
Change-Id: Id493583dfea9e64ab2964e28d559122c43bbc2a6
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
The XCB plugin requested a forward-compatible context regardless
of whether QSurfaceFormat::DeprecatedFunctions was set, and also
ignored the QSurfaceFormat::DebugContext option.
Change-Id: I81c737447b554b3b6f61c2725bce7583e0e887ab
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
This avoids warnings in compilers that check for unused variables. They
can't tell that the the variable came from a header.
Change-Id: I1ea5e5bbc76d676fbb561bdc8ae6543e758de90e
Reviewed-by: Andreas Aardal Hanssen <andreas@hanssen.name>
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Change-Id: I18697037db742d38874c8a95df12c189ccc51068
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
Reviewed-by: Lorn Potter <lorn.potter@jollamobile.com>
It's similar to Q_UNUSED, but this is to be added in the declaration
Change-Id: I2f664129fb1f34f7913ef371d45c2c0fec958174
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
We need to clarify what's the status of the implicit capturing
group #0 in both of this methods. The former doesn't include it,
while the latter does for convenience/consistency in the way
we count the capturing groups.
(Note that this last behavior is actually autotested.)
Change-Id: I2170842c2a6dffa34fa56389ceead61a92c07cd1
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
(?J) inside a pattern string can be used to allow or disallow duplicated
capturing group names in the pattern string itself.
Although PCRE supports duplicated names, in Qt we don't yet.
Change-Id: I21cd0c41273cd7ef42870ced3a0fad6ba7035cbc
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Information about the pattern (number of capturing groups, newline
settings, etc.) are grabbed when the pattern is compiled the first time.
Studying (=> optimizing) is always done later, after a certain amount
of usages. In case this ever changes, add an assert.
Besides, we're not grabbing any info that require studying the pattern
first.
Change-Id: Ica15fa21f7bf13213288d7090d3396a89900078e
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
The current size hint is not correct and the text is truncated
when using prefix/suffix.
Update QCommonStyle::sizeFromContents() to get the button
and frame widths into account for the QSpinBox width.
Update sizeFromContents() in the different styles to be
consistent with the change in QCommonStyle.
Update minimumSizeHint(), calculate it using the prefix and
data range. The SpinBox can shrunk over the suffix if any.
Task-number: QTBUG-28863
Change-Id: Ia742232edf8b11d0283e8136c2818928f8755103
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
QStringRef could have been trivial. The destructor is empty, the copy
constructor copies exactly the members and has an empty body and all the
members are POD. Both functions should be removed or defaulted in Qt 6.
When the destructor is defaulted, we can make the constructor constexpr.
We can't do that now because QStringRef is exported and some nasty
compilers (MSVC) like to export all functions, even inline ones, and
then call them without emitting a local copy.
Change-Id: Ie7509fd1a3f737a6c9156ea078d13bb347fc6be0
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
GL_ARB_debug_output only requires OpenGL 1.1 and above.
Change-Id: Ib79d370fac36fa737817ea678f0dee25283dfa31
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
On Mac OS 10.8 and iOS 6.0 we can use CTFontCopyDefaultCascadeListForLanguages
to get the list of fallback fonts, which is preferable to reading the plist
file from the filesystem. The latter doesn't work (is not allowed) on iOS
in any case, so for iOS < 6.0 we use a static list of fallback fonts.
Change-Id: Ibb5e1b4dedd6bfb936f66b53a20f7ced83536ed7
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
In some situation (such as iOS currently) we may end up with an empty
fallback list, and we don't want to re-populate the font database
on every call to fallbacksForFamily().
We do not guard populateFontDatabase(), since it's called both initially
and every time the font database has been invalidated.
Change-Id: Ief1342c40f75e5d393e054e9a20bc94bc357d482
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
QPixmap::load() would not detach, so multiple paths could get associated
with the same QPixmap, causing the wrong pixmap to be shown.
Task-number: QTBUG-29639
Change-Id: I064dd6a9611b5996853bec9fb20b6224a0adcf62
Reviewed-by: aavit <eirik.aavitsland@digia.com>
This finally makes it possible to make windows fullscreen etc from
QML by doing "visibility: Window.FullScreen". I don't see any reason
from not having the API at the QWindow-level instead of at the
QQuickWindow-level since this way it can benefit other use cases too.
Change-Id: If27344306eb563bc2ccd83296a46b1f2862e2db1
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
The missing "/" in front of "../Plugins" prevents
this from working - platformPluginPath is never
set.
Deployed platform plugin loading works in spite of
this via qt.conf which adds the plugin path to
QCoreApplication::libraryPaths().
Change-Id: I7ae4d13c65a380ddad72bffd29b776c39ea91c8a
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
Additions to make the convenience classes work for the
Qt for Android port.
Change-Id: I25ba0faf93c7e09ab04a3fa0784e04631e5ab036
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
This patch changes QGraphicsViewPrivate::updateRubberBand to return
at once in case some of the first conditions (which were needed to
do something with the rubberband) are not true.
The indentation after these ifs is fixed, and there are a few style
fixes, but beside the first 2 ifs, there are only white-space
and new-line changes.
Change-Id: I7e2edb7bfd334b35ee8ab246f733d854bff7e0f7
Reviewed-by: Andreas Aardal Hanssen <andreas@hanssen.name>
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
VxWorks has defined variables with same name as in Qt's headers.
Remove these undefines because that has already done in file
src/corelib/kernel/qfunctions_vxworks.h. See related change
f7bd8652ca.
Change-Id: I994ac9d00ca223b9fa955dfcba8ad6c8dcbd0549
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
Vxworks DKM mode does not have rand_r function, use function
implementation from qfunctions_vxworks.h/cpp instead.
Change-Id: I8f23c3453ab9f31280eb90f66dd83d7a64ee98c9
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
It was only used in the now removed OpenGL 1.x paint engine.
Change-Id: I2237172de700bfd31ca25279fbed21d601785962
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
For implementing to/fromMacCGImageRef in QtMacExtras.
These do not depend on internal Qt state. The main
reason for exporting them is to keep the implementation
in one place to ease maintenance.
Refactor qt_mac_cg_context to support QImage.
Add qt_mac_toQImage.
Change-Id: Ia9c226ed52d087b2c6b47aa8210ed8f2645b9cf2
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
Currently, using QDate::maxJd() in tests will fail. This patch changes
some ints to qint64s to prevent overflows where necessary.
Change-Id: I61ebf8f233411a7544689fd5bfa9c3abee54e933
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
QTextCodec::codecForHtml currently fails to detect the charset for this
HTML:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=9,chrome=1">
<title>Test</title>
</head>
This patch makes the detection of charsets more flexible, allowing for
the use of the HTML 5 charset attribute as well more terminator characters
("'", and ">").
I also added a *_data function for the unit tests.
Task-number: QTBUG-5451
Change-Id: I69fe4a04582f0d845cbbe9140a86a950fb7dc861
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: Denis Dzyubenko <denis@ddenis.info>
ICC thinks that the return statement is missing:
src/plugins/accessible/widgets/itemviews.cpp(867): error #1011: missing return statement at end of non-void function "QAccessibleTableHeaderCell::parent"
Clearly it's wrong, but the function is overly complex for no good
reason. So just simplify it instead.
Change-Id: Ic63029df18b4712d9864a4dc66b6751b2d4574b7
Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
That's what the macro did anyway, except it had an extra "static"
keyword. This allows us now to use Q_ALWAYS_INLINE in non-static
contexts, if we wanted to (e.g., certain template cases).
Change-Id: I899d359f46234e93d1912ef9125080dc84e15c93
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
... like e.g. in QAbstractSocket::connectToHost().
We can set the scheme on the query URL based on well-known ports; even
if the port is not well-known, we can just query the URL anyhow and let
the netstatus API resolve the right proxy for us.
In addition, return early for local schemes like "file" and "qrc".
Task-number: QTBUG-29425
Change-Id: I900f1ecbac6dd380bb8a77470b39de2c07aa7f6e
Reviewed-by: Andrey Leonov <aleonov@rim.com>
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
Calling popUpMenuPositioningItem:atLocation:inView: will swallow any
mouse up/released event, if we popup on mouse down/pressed. Since we
cache the button state in QNSView, the safest way seems to be to clear
this button state. Another option would be to send Cocoa mouse up
events for each mouse button, but we prefer to keep things simple.
Change-Id: I7f3f369c45e9f5ed9d2ab693bffd8be4a4596ae6
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
Change-Id: I491edcae84c149775cf3640626ccff8cbf0d69fe
Reviewed-by: Jon Severinsson <jon@severinsson.net>
Reviewed-by: Andreas Aardal Hanssen <andreas@hanssen.name>
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Jason McDonald <macadder1@gmail.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
The compilers checked here are not supported in Qt 5. Additionally,
the QSharedPointer implementation has similar operators without such
guards, so in reality these compilers may not have worked
with Qt 4.6+ either.
Change-Id: I208f3cde7c689770ae15245a555e3a58b749a8a3
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Rename qt_gl_read_framebuffer function to qt_gl_read_frame_buffer in
Qt5OpenGL. This fixes an error when linking statically against both Qt5Gui
and Qt5OpenGL:
Qt5Guid.lib(qopenglframebufferobject.obj) : error LNK2005: "class QImage
__cdecl qt_gl_read_framebuffer(class QSize const &,bool,bool)"
(?qt_gl_read_framebuffer@@YA?AVQImage@@ABVQSize@@_N1@Z) already defined in
Qt5OpenGLd.lib(qgl.obj)
Creating library debug\composition.lib and object debug\composition.exp
The function was duplicated in 6e28e844 .
Change-Id: I9e3b78e0ec5b25264575d563538587b45cd93e86
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
the translation infrastructure is disabled in the bootstrapped tools, so
the translations are wasted.
Change-Id: Ief5d13f09242e03aaf0d4a3d9b1645f9c7a1ab3a
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
m_nsWindow is not set for non-toplevel QWindows,
causing devicePixelRatio to always return 1.
Use [m_contentView window] instead.
Change-Id: I6689a70812c9484f103b5e706fe4c1b76406b750
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
The index set by setRootIndex is the root of the visible part of the
model. Expanding more than that is not needed.
Change-Id: I0015e313ef046ff63c67338c4f00c37e1aa71ca7
Reviewed-by: Thorbjørn Lund Martsum <tmartsum@gmail.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
This is the <prefix>/include directory which is independent of the
module and which only has to be used once. As everything uses QtCore,
it is enough to set it only there.
The CI system is a special case, in that it tests things before
installation. Handle that case too.
Change-Id: Idcdf9617e199b7d490cb3553cce07f1f464b3bec
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
updateRubberBand is only called from mouseMoveEvent.
The event is not changed. At the end of the event
we call d->mouseMoveEventHandler which calls
storeMouseEvent. There is no need to call it twice.
Beside that this patch also changes the argument
from QMouseEvent* to const QMouseEvent*. The only
reason it needed to be const was the call to
storeMouseEvent.
Change-Id: I01148a6a8d36e782c4d95a90e36435e20b1681e1
Reviewed-by: Andreas Aardal Hanssen <andreas@hanssen.name>
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
This commit adds SHA3 support to QCryptographicHash. Two implementations
are provided, one optimised for 32 bit and one for 64 bits. The code has
been written to make it easy to add further implementations, for example
ones using NEON instructions on ARM.
Change-Id: I3be9c45bbd4fcc2771d697e7f7ae74e48a831e8f
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
If the GL version is new enough the extension string won't contain
features that have been standardized. So far we only check for FBOs.
Change-Id: Ib29826f378b394894885717c062872581bd5c9f5
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
When OpenSSL is built using MSVC then the library names are
named ssleay32.dll and libeay32. However, when OpenSSL is built
with GCC then different library names are used like libssl-10.dll
and libcrypto-10.dll (depending on the version of OpenSSL used)
Change-Id: Icb79a5f82d2a511752bfc904f53a58423ce4b86b
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Peter Hartmann <phartmann@rim.com>
Reviewed-by: Richard J. Moore <rich@kde.org>
The table is there to know which domains are allowed to set cookies
and which are not. There are more than 2000 new entries since the
list has last been generated.
The split to 64K chunks was made because this is the hard limit for
strings in Visual Studio.
Change-Id: I511aec062af673555e9a69442c055f75bdcd1606
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
This fixes a compilation error with GCC 4.7
which was introduced in b5652df775
In function ‘SSL_SESSION* q_SSL_get1_session(const SSL*)’:
invalid conversion from ‘const SSL* {aka const ssl_st*}’ to ‘SSL* {aka ssl_st*}’ [-fpermissive]
Change-Id: I909f7fb4295b2019283a7af66a038d4711e5f7cb
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Peter Hartmann <phartmann@rim.com>
revert() should operate in OnFieldChange edit strategy just as
submit() does. The reason in Qt 4 for excluding OnFieldChange
was that there was no opportunity to revert. The model was
refreshed, causing all changes to be lost. In Qt 5 a failed
edit remains in the cache until user action, which could be
to revert.
Change-Id: Ide021c4f83a53834b7ed81f2abfa3aa49317704d
Reviewed-by: Mark Brand <mabrand@mabrand.nl>
In some cases, the call to handleFileOpen may receive a non local URL.
With previous API, there was no way to pass it to other layers. With
this change, any platform plugin creating this event can directly pass
a URL.
Change-Id: Ibd7299ad6c09527e1db979840bd67726882efb9b
Reviewed-by: Jose Dapena Paz <jdapena@igalia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
This lets you write code like format.version() >= qMakePair(3, 2), and
format.setVersion(4, 2) instead of format.setMajorVersion(4);
format.setMinorVersion(2);
Change-Id: Ib052091cc12865ea0d5db52e468ed6cd28f14840
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
A serious problem in the design of qdoc is its
C++ parser. It is an ad hoc recursive descent
parser, which has not kept pace with Qt's use
of the more esoteric aspects of C++. Part of
the problem is that qdoc does not send files
through the preprocessor before processing
them. The bottom line is qdoc needs the C++
parser used in Qt Creator.
But that is a long-term solution. In the short
term, we have to introduce minor hacks like
this one to keep qdoc going until the parser
can be replaced.
The problem in this case is that qdoc doesn't
handle the QT_PREPEND_NAMESPACE macro in
function declarations. The solution is to let
qdoc ignore the macro and just use the macro's
parameter, which is what qdoc wants anyway.
Task-number: QTBUG-28953
Change-Id: I5b9efcc10fa8fb500a44854ee995c2e50e9e16b5
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
DER certificates should not be opened as text files, so we
only pass the QIODevice::Text flag when the format is
QSsl::Pem.
Change-Id: I4bad98023c397b967d5beeec0aaa6c414e06fd9c
Reviewed-by: Richard J. Moore <rich@kde.org>
This introduces a property QMenu::toolTipsVisible with
default value set to 'false'.
Task-number: QTBUG-13663
Task-number: QTBUG-2362
Change-Id: I13079609e2a92adc71b2bbff3dd94494cde1f586
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
We need to check for the Cocoa window class because of the way
currently QDockWidget works.
Change-Id: If69c7327c168518614fe884defa79deb358e260d
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
The cmd shell inserts magic variables starting with a = into the
environment.
Task-number: QTCREATORBUG-8716
Change-Id: I2f140032aea4fb1d77633c6baf90d7b536e2812a
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Breakage introduced by b3820b12fb
Set layered in backing store for frameless windows as was before.
Task-number: QTBUG-29010
Task-number: QTBUG-28531
Change-Id: I13f8f0d58d71b6612430c7048056f672e23b8095
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
It was there because of MSVC6 compatibility.
It is not removed, because some code used to do
qMetaTypeId(&myVariable);
This was not a documented feature anyway, so it should not be user
visible.
Change-Id: I55327d7e73e67a6bb741817741d530d5a650291a
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
There is also one string fix: cursor was twice,
the second one should have been text caret.
These roles follow IAccessible/MSAA as reference.
Change-Id: I39b64fd01376fec9e8d9b743c43a24611a1d9fbd
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
This change refactors the code for inserting compatibility and
obsolete member pages into a qhp file, detaching it as a new
function and calling it when processing each node.
This ensures that members page, compatibility and obsolete
pages (html files) are added to .QCH files for all processed
nodes that have children or related nodes.
Also renames a variable ('node'->'nodeChildren') to prevent
shadowing.
Task-number: QTBUG-29314
Change-Id: Iccee70ba8768d48b24e68b08651043d0ce4a62a5
Reviewed-by: Martin Smith <martin.smith@digia.com>
Don't assume that all entries in the QLibrary global data refer to
libraries have have been loaded. There are three (not two) ways of
getting entries there:
1) creating a QLibrary
2) using the static QLibrary::resolve
3) via plugins
The unload code was meant to handle the first two cases only: libraries
are still loaded at the end of the execution if the static methods were
called or if QLibrary objects were leaked. It didn't handle the case of
plugins being found by the directory scanner in QFactoryLoader but never
loaded.
Note it's possible that this assertion also happened with leaked
QLibrary.
Change-Id: Idcd7a551f96d8fe500cbca682f8014f5122b7584
Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Instead of having separate logic in the OpenGL paint engine.
Change-Id: I9854328f784864e52ba1bbaafe5e1c5dda976231
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
-removed extra qdocconf and files
-"make docs" using QMAKE_DOCS
-installs the documentation in QT_INSTALL_DOCS
-updated title of the manual to "QDoc Manual"
-modified listing of contents in Assistant
Change-Id: I22f93c0903c5e672a0e7efa83bf3f592658be66d
Reviewed-by: Martin Smith <martin.smith@digia.com>
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
This part will be improved in Qt 5.1. Currently it just spits
out debug messages for unhandled events.
Change-Id: I22475317ab54a8223d42536e1cee3f93a969e497
Reviewed-by: hjk <hjk121@nokiamail.com>
Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
Put all translations into the namespace QDoc and fix warnings
about invalid tr()-usage by removing the free tr()-function
from tr.h. Provide QCoreApplication::translate() for bootstrap
builds.
Change-Id: I2b6931188346f290e80e14b84adff8892d8a860f
Reviewed-by: Martin Smith <martin.smith@digia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
readData() might be called with a maxSize of 0, regardless of the device
being buffered or not.
Task-number: QTBUG-28968
Change-Id: I666ed4d601341107722c86fe217f617ef748363d
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
i.e. make it obvious that they come from Qt.
This helps when debugging and trying to differ user created threads
from Qt threads.
Change-Id: Idd6804246d6676b17cf15de6b644a5be629aa023
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
The existing tst_qgetputenv shows that qputenv with an empty value
doesn't lead to the same result on Windows and on Unix, and there was
no way to fully delete an env var on Unix (which is needed for some
env vars where not-set and empty are different, such as TZ,
see `man tzset`).
This is also why qglobal has qEnvironmentVariableIsSet() vs
qEnvironmentVariableIsEmpty(), on the getter side.
Qt4's ifdefs around unsetenv in qapplication_x11.cpp show that this is
needed within Qt too (although this particular startup notification code
has to be re-imported into Qt5 still).
Change-Id: I631c8cddbcf933d4b9008f11aefc59f5a3c7c866
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
This improves performance since a network round trip can be avoided.
Change-Id: I1aaff7e48ef9638cb137de0f43942c3a4dd2884a
Initial-patch-by: Markus Goetz <markus@woboq.com>
Reviewed-by: Richard J. Moore <rich@kde.org>
The Intel C++ Composer XE 2013 Update 2 (a.k.a. ICC 13.1) has fixed the
bug of the undefined intrinsics.
Change-Id: If837a0800725d55fed7eff39b9d52c359dabb073
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Add the SHA3 reference implementation (public domain) which will be used
in a later commit to add support for SHA3 to QCryptographicHash.
Change-Id: Id0e9d47d628cc94f1d3d2a7696836bc43f6ddf61
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
This change increases the size of the DNS cache in QHostInfo from 64
entries to 128. Given the figures in the google chrome performance paper
http://www.igvita.com/posa/high-performance-networking-in-google-chrome/
this should mean we can cache enough entries to handle 4 tabs at once.
Change-Id: I34e32e9e0966473591c59ca5f222623a354650d2
Reviewed-by: Peter Hartmann <phartmann@rim.com>
That resulted in error such as:
qobject_impl.h(82) : error C2078: too many initializers
This should have been tested by tst_QObject::connectManyArguments, but
the test did not work because the detection of defined QMetaType was broken
for const references. That will be fixed in a latter commit.
Task-number: QTBUG-29130
Change-Id: I78514c251358c0e8adf33af724d87ab114230cd3
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
This macro usage has been removed from most of the Qt 5 code, so
adding a note to be completely removed in Qt 6.
Change-Id: I19a90db78745f3cacbcbf206e8642c7d7c36e04a
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
there is no point in duplicating the information in every module.
host_bins is exported only here as well.
Change-Id: I2f816e1cade9761a2c0d97c7ca1c90293095bfb1
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
The setting/clearing of WS_EX_LAYERED in the backing store
interfered with the setting/clearing in setWindowOpacity
when combining translucent and non-opaque windows.
Introduce QWindowsWindow::setWindowLayered to handle
it consistently.
Task-number: QTBUG-29010
Task-number: QTBUG-28531
Change-Id: Ib6e2740aae417bdf7b3db9ef7deb646be98df1d6
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
If the high bit in a mask is set, for instance if the mask is
0xff000000, and we shift it to the right by 24 positions, since the mask
was not declared as unsigned we ended up with a mask value of
0xffffffff. We then add 1 to this value and divide by the result,
causing a division by zero crash.
The masks need to be declared unsigned to prevent sign bit extension
when shifting right.
Task-number: QTBUG-29194
Change-Id: I79260344cebfbdd3ea86416a9c734dca76517999
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
Previously, selectRow() did not work after INSERTing a new row into a
table with an automatically populated column. It did not work because
the model did not know the primary values for the new row. Newly
inserted rows were therefore not refreshed in OnFieldChange and
OnRowChange edit strategies.
This change provides support for the typical simple case where a single
column is populated by the database and can be retrieved with
QSqlQuery::lastInsertId().
Task-Number: QTBUG-29102
Change-Id: Ibf0f0ac8661185bde57034ddf40c2178bece4778
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
Reviewed-by: Lukas Geyer <lgeyer@gmx.at>
Reviewed-by: Mark Brand <mabrand@mabrand.nl>
Commit 10ff9de91b introduced the
optimization of ignoring non-changes, but it overshot the mark.
It neglected to consider that QVariant's equality operator does not
compare the null flag. It also failed to consider that setData() has
a useful side effect of setting the generated flag in a column of a
pending INSERT. This is important when the application actually wants
a NULL to be inserted into the column.
Task-number: QTBUG-29217
Change-Id: I1368f7acc21eebfeb5a8d23746fc38f6f30fd395
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
Reviewed-by: Mark Brand <mabrand@mabrand.nl>
QSqlQueryModel::headerData() relied on virtual indexInQuery() to
detect whether the requested column at row 0 mapped to an index in
the query. This failed when row 0 was a pending insert managed by
QSqlTableModel, and therefore not in the query.
The only thing that matters here is the column.
Task-number: QTBUG-29108
Change-Id: I3e0ae85ba223e444781ec8033386d394bb44f0e8
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
Reviewed-by: Mark Brand <mabrand@mabrand.nl>
proxy() should be used instead of direct calls to QCommonStyle methods
to allow overriding behavior in QProxyStyle, while keeping fallback
to default behavior.
Change-Id: I338e6b65f4c0ee77c55f03c412f59877fad42b79
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
Generator::fullDocumentLocation() adds a parent class name twice into
the generated filename for nested classes, which not correct.
This change fixes the issue and makes documentation for nested classes
work in Qt Creator (qch files).
Task-number: QTBUG-29440
Change-Id: I489800ba09f49dda2befef73634cb2b344be0060
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
Reviewed-by: Martin Smith <martin.smith@digia.com>
This commit partially reverts 07e3bcdc10
The empty macro defition was not supposed to be removed yet.
Change-Id: Ie83b2adbe2328b83c70a70274a401e1e6c74498f
Reviewed-by: David Faure (KDE) <faure@kde.org>
We need a couple of functions here for the Android support.
Change-Id: I50e27277d7e838e277d616dbd3af9be817fb7197
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
The error appeared with latest clang as of Feb. 5, 2013.
Apple LLVM version 4.2 (clang-425.0.24) (based on LLVM 3.2svn)
Target: x86_64-apple-darwin12.2.0
Change-Id: I8df8cccc941ac03a7a997bdd5afe095b7b6f65d3
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
simplewidgets.cpp:429: Discarding unconsumed meta data
simplewidgets.cpp:535: Discarding unconsumed meta data
Change-Id: Icd9686392781eb1faa7868dc4c92d26fa44c4f94
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
linuxaccessibility/bridge.cpp:169: tr() cannot be called without
context
Change-Id: Ib6bd4db7c4759818ccba8adff73617af7331f318
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
It may be useful to know which named capturing groups are defined
in an regular expression, and for each of them, what's the
corresponding index. This commit adds the needed method
to QRegularExpression.
Note that extracting the information doesn't happen while holding
the mutex in the private -- pcre_fullinfo just reads information
from the compiled pattern, so that's thread-safe.
Task-number: QTBUG-29079
Change-Id: I50c00ee860f06427c2e6ea10417d5c0733cc8303
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
QPixmapCache size default value is always 10 Mb
since change I2ac33765
Change-Id: I28c99433948b07e9c84d0afda7aa5a8f49d2cd18
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
Qt dereferences QGuiApplication::primaryScreen() inside,
for example, QColormapPrivate::initialize().
libscreen always returns at least one display, even it it's
not connected, so lets not ignore it if it's primary.
Change-Id: I2f14a187c979ca0c7ad39149ceb0b2b7e61e9ba6
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
QMacStyle::subElementRect could crash if SE_LineEditContents was used
without providing a widget pointer.
Task-number: QTBUG-27033
Change-Id: I15ef07ae1310be4257a8480d392f98dbf02168d3
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
The presence of the sentence "If this is the last QSqlDatabase object
that uses a certain database connection, the database connection is
automatically closed" is misleading, whether or not the statement is
true. It is about an internal detail of QSqlDatabase's implementation.
As such it is not appropriate for user documentation. The user should be
focused on how to use addDatabase(), cloneDatabase() and removeDatabase()
correctly.
Task-number: QTBUG-29481
Change-Id: I0c39584be260e13340834c34098368fcce4a7419
Reviewed-by: Florian Paul Schmidt <mista.tapas@gmx.net>
Reviewed-by: Sune Vuorela <sune@vuorela.dk>
Reviewed-by: Mark Brand <mabrand@mabrand.nl>
In windows platform, Qt5 will not show the system default shortcut menu
when the user right click in the window's caption. This is a regression
from Qt4.
This patch will let DefWindowProc() to handle the message WM_CONTEXTMENU
if the mouse pointer is in the non-client area of the window. Thus the
default Windows shortcut menu will show up.
Change-Id: I88638ad1d4f0e73b088204b83c3f7ec0fe2033f0
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
The new QThread documentation now really discourage to reimplement
QThread. But in fact, there are many cases where it is perfectly fine.
And the example given is even a case where using worker object is wrong.
The examle even contains a leak since the thread will never stop and
will even leak.
This changes put back some sentences from before commit
d4ad9dbbf9.
The sample code has been re-writen. Notice how reimpementing run takes
less lines of code, less runtime overhead, no leaks, and also is more
complete than the previous example.
Change-Id: I6cb80826e917dd5ce442ccad2572ec692ccb25ab
Reviewed-by: Andre Somers <andre@familiesomers.nl>
Reviewed-by: Geir Vattekar <geir.vattekar@digia.com>
Reviewed-by: Debao Zhang <hello@debao.me>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
This is better than getting a regular compiler error without
knowing where min was previously defined.
Change-Id: I5a86599cdf76a9a8d87a51e119543206d9f835c1
Reviewed-by: Mitch Curtis <mitch.curtis@digia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
ICC is right: this function will never be called. But we didn't want it called anyway. Just make it be something non-void.
qdbuspendingreply.h(185): error #597: "QDBusPendingReply<T1, T2, T3, T4, T5, T6, T7, T8>::operator void() const [with T1=void, T2=void, T3=void, T4=void, T5=void, T6=void, T7=void, T8=void]" will not be called for implicit or explicit conversions
Change-Id: I5e067bd03aafc6d6772cc1e0f8f8ae8bfa1712d7
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
The variable is present only for completeness in qurl.cpp.
Change-Id: I68d7ca4cd52c14fbf8154e510737f7428d8e9679
Reviewed-by: David Faure (KDE) <faure@kde.org>
During exit, libraries are unloaded and global destructors are run. If
we call dlclose(3) from inside the global destructors, we might be
telling libdl to unload a module it has already unloaded.
I cannot reproduce the issue on my Fedora 17 machine with glibc 2.15,
but it could be reliably be reproduced on an Ubuntu 11.10. The assertion
is identical to the one reported upstream at
http://sourceware.org/bugzilla/show_bug.cgi?id=11941 (see better
explanation at https://bugzilla.novell.com/show_bug.cgi?id=622977). I
cannot find any evidence in glibc's source code that the bug has been
fixed.
Change-Id: I97745f89e8c5481196e645dada8762d607a9fb2c
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
The previous solution was a global static, which got deleted at the end
of the execution of the application or at QtCore unload, whichever came
first. Unfortunately, the end of the execution often came first, which
is inconvenient: it means the global was deleted before all atexit
functions were run, including some QLibrary destructors.
Consequently, some QLibrary destructors did not reach the global data
and were thus unable to unload their libraries or delete their data
properly. The previous solution leaked.
This solution instead uses a Q_DESTRUCTOR_FUNCTION, which makes a
requirement to destroy only at QtCore unload time. Thus, we're sure that
all references have been dropped.
Additionally, during the cleanup, do try to unload the libraries that
have a single reference count left. That means either a QLibrary that
was destroyed without unload(), or a use of the static QLibrary::resolve
functions.
Change-Id: I12e0943b0c6edc27390c103b368d1b04bfe7e302
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Since isSignalConnected is meant to be used in performance critical
code, and that QMetaMethod::fromSignal is relatively slow, it is better
to have it a a static variable in the code sample, as a good
recommendation on how to use it.
Since QMetaMethod::fromSignal should not change during the life of the
program, it should be safe. Also, if different threads run at the same
time, both should lead to the same result.
Change-Id: Ib6113d11ca93f216bc3a92aea4eaa4da6a4151ca
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
There is no need to do any kind of work with emitting signals if
signals are blocked.
Change-Id: Ic352ba157fd89bbd36c650edd809a2ea91bcdd5f
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
Just like other functions this function should emit expanded and
collapsed.
A part of fixing
Task-number: QTBUG-8176
Change-Id: I6d801f61e6f0cb8836634cc52f0be2b610f6c728
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
In mingw.org, basetyps.h contains
#define interface _COM_interface
which clashes with function parameter names in qdbusmessage.h.
Although there is no clash when building qtbase itself, the clash
makes building qttools 5.0.1 fail. Presumably this could also affect
other applications.
Taken from 2cc9a9a51d6742708b1ea41c7338755e2a0ee9e9 which solves the
same problem in another header.
Change-Id: I802d5c673b544fb3a17e9273030876928faa5c46
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Only on Windows do we use wchar_t messages.
Change-Id: I9672371aa001effc755b32f9d7c83ada8464394f
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
This is useful when the widget is focused by default, and also gives
another opportunity to the user to read the message before typing,
removing the need for workarounds like clicking in another text entry to
bring back the placeholder message.
Change-Id: I4a2981a6656a87934b5c8ed4a8a2dc13b748c94d
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
Move the QXXResult classes inheriting the private class
QSqlCachedResult from header into the source files for
SQLite, SQLite2, Interbase/Firebird and TDS/Sybase and
Oracle.
Task-number: QTBUG-28088
Change-Id: Ia16d30e442e313c8165282b8a3f012fd95d96759
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
Reviewed-by: Mark Brand <mabrand@mabrand.nl>
GCC 4.7 has new builtins in x86intrin.h that ICC 13 does not (yet)
understand, causing compilation errors.
/usr/lib/gcc/x86_64-redhat-linux/4.7.2/include/adxintrin.h(36): error: identifier "__builtin_ia32_addcarryx_u32" is undefined
Change-Id: I1845ccc3bf3ac15aef063bc3f998c5839fa51866
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
This macro is useless from Qt 5.1 on, so:
- Remove comment about using QT_BEGIN_NAMESPACE after QT_BEGIN_HEADER
- There is no need to blacklist these in qt-cpp-ignore.qdocconf
Change-Id: I2c3ceb3d77d294a606b87f7486071a2350b3d42f
Reviewed-by: Laszlo Papp <lpapp@kde.org>
Reviewed-by: hjk <hjk121@nokiamail.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
The QPA plugin assumes in several places that we have at least
one QScreen.
Even if patching the plugin to support 0 screens, Qt itself crashes
when dereferencing a null paint device while synching the backing
store.
Change-Id: I2ac504a447aff811d6c07ab857340a3433557cdc
Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
This is supposed to workaround a race condition in the underlying
netstatus API: Sometimes we get an event that the Wifi interface
changed, but it is not up, e.g. no gateway (yet). In that case we need
to check back (currently: 300 ms) whether the interface has come
up or not.
This commit can be reverted again once the race condition in the
netstatus API has been resolved.
Task-number: QTBUG-29421
Change-Id: I215ce8aae4848b6e942e77c6425adba90e9cc526
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
When we call call collapase we emit collapsed. Therefore it should
also be emitted on collapseAll()
This partly solves:
Task-number: QTBUG-8176
Change-Id: I20c1388fcbbb60d12debb4a0b3b0d9fed41e2563
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
When we call QTreeView::expand expanded is emitted.
For the same reason we should emit expanded on expandAll()
This partly solves:
Task-number: QTBUG-8176
Change-Id: Ie85e724eec50980c68f626ec47dec5c1e08cc085
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Revert to the pre highdpi-patch behaviour.
Before, both physical and logical DPI would be based
on the dpmx/dpmy variables, which could be changed
with setDotsPerMeter(). The highdpi patch introduced
separate ldpmx/ldpmy variables, which were not
changed by setDotsPerMeter().
This broke when loading images: setDotsPerMeter
would be called but the logical dpi would not change.
Remove ldpmx/ldpmy. Keep scaling the physical dpi
by the devicePixelRatio, which will be set to 1 by
default.
Task-number: QTBUG-29187
Change-Id: I0d6f5f3b8efae5fb1adc0a50b22a5da78324a282
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
Use a normal instead of a HWND_MESSAGE-window since the latter
do not receive the "TaskbarCreated" message. Provide an invokable
slot in the native interface to register a window class for that
purpose.
Task-number: QTBUG-29160
Change-Id: Ic25222d08d21867f7d882a9e19d8aaf50f3f47cf
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
QThread::idealThreadCount returns now the number of cores.
Change-Id: Idc23fc3c257165f6a63c6a7686a57a4fe76f6413
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
If a sourceModel resets, it's roleNames might have changed. This
is most likely the case if sourceModel itself is also a proxy model
of which the sourceModel was changed.
Task-number: QTBUG-28982
Change-Id: I102788f2c9bf97b4002b350673f9219e32e7a052
Reviewed-by: Nils Jeisecke <jeisecke@saltation.de>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
Check that the NSWindow pointer is valid before
calling backingScaleFactor.
Change-Id: Ia23cbb4058b7d0fece008bc437f8bfec6c0ddebe
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
This was part of Qt 4.8, but Qt 5.0 was branched before that, so
the commit was lost.
Change-Id: I2a2ab3c75a0943ac734d588ebd74bc158dd6aaaf
Reviewed-by: Nils Jeisecke <jeisecke@saltation.de>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
QtTestLib and QTestLib don't exist. The proper name is "QtTest" (code)
or "Qt Test" (English)
http://qt-project.org/wiki/Spelling_Module_Names_in_Qt_Documentationhttp://lists.qt-project.org/pipermail/interest/2012-December/005221.html
Files paths in qttestlib.qdocconf can't be changed easily however, as it
breaks things. So, they're left as they are.
Change-Id: Ifbc44ea858c453bedad8cd7723f847e67fc7a85a
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
Change-Id: Ie621f562401b703077a2b304ad6d8445efc76642
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
Change-Id: Iaa176fc6152162c91a3e3bd373a235883001975c
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
The name field string was not set in native dialog when one was present.
Task-number: QTBUG-28342
Change-Id: I243b491c8bc094d45f25be96b3bde8eccbb65acd
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
The default value for NSWindow::setRestorable: is true, it means
application will have some information for each window stored.
After a crash happened and application relaunched, the application
tries to restore those windows from the broken file. And then the
"Retore Windows" will pop up. There is no workaround for
application users or develoeprs. What they can do is to manually
remove the the saved application state file for the applicaiton.
To avoid that, better to switch it off.
Task-number: QTBUG-28281
Change-Id: I8ce3cd94f5ae81d7877a346743ca4e0e188baa02
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
It can be used to determine whether expand() should really expand.
Change-Id: If79d8c295a4ca1356e60051682b227524a065126
Reviewed-by: David Faure (KDE) <faure@kde.org>
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: Thorbjørn Lund Martsum <tmartsum@gmail.com>
Useful for running auto-tests without popping up a bunch of windows in
the windowing system. Thus they can be run in the background and even in
parallel without focus issues.
Change-Id: I8b14c6de258b41225480a0af5a2a9553663bc2b7
Reviewed-by: Jason McDonald <macadder1@gmail.com>
If Qt build without BMP support, we need exclude this format
from output of QImageWriter::supportedImageFormats() and
QImageReader::supportedImageFormats() methods.
Task-number: QTBUG-27028
Change-Id: I44e8956247066c0836b1ff7bf9a1f356fe568af1
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
When Qt build statically result of
QImageReader::supportedImageFormats() must contain 'jpeg' and
'jpg' if JPEG support enabled.
Task-number: QTBUG-29222
Change-Id: I94d731c2d1e2ede148e2e5261a310a840a1d5523
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
Qt::UniqueConnection is a flag, not a standalone connection type.
Change-Id: Ibafb7306f3d60753a4381897488131e6484d368f
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
QtWebProcess, for example, doesn't create any QWindow, so it doesn't
need any root window.
This fixes Webkit2 rendering on QNX.
Change-Id: I1d4c0dd20869798ba2bcd15f9d96e5fca4beb48e
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
The macro was made empty in ba3dc5f3b5
and is no longer necessary or used.
Discussed-on: http://lists.qt-project.org/pipermail/development/2013-January/009284.html
Change-Id: Id2bb2e2cabde059305d4af5f12593344ba30f001
Reviewed-by: Laszlo Papp <lpapp@kde.org>
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
Reviewed-by: hjk <hjk121@nokiamail.com>
Make them use the monotonic clock if that's available. On Mac, the
monotonic clock is not available -- Qt fakes monotonic support by using
the Mach timebase -- so we need to use gettimeofday.
Change-Id: Iaea0b0c0de1b4802780e2476dc3643b703db392c
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Add function to move back data to the stack.
Change-Id: Ic78a368459bce68629e29602e4eeae2e1afe398b
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
It's possible that different database libraries share dependencies.
We need to keep their link lists intact here so that QtSql's .prl and
.pc files will have them in the right order. Particularly important
when building the drivers into QtSql and using static linking.
Change-Id: Id371b127099f2790fe7cccd0c7059607600f447d
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
-copied snippet and input files from Qt Widgets.
-adapted new paths in the resource-system.qdoc file.
-removed the old path entry in qdocconf.
Task-number: QTBUG-29101
Change-Id: Ieeb118106756a1a39890ab219294de18f437c56c
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
Reviewed-by: Nico Vertriest <nico.vertriest@digia.com>
Reviewed-by: Geir Vattekar <geir.vattekar@digia.com>
Fix 19 counts of "Can't link to 'default-constructed value'"
warnings.
There was only one link to "default-constructed values", so the
cleanest solution was to change the keyword.
Also included a related typo fix.
Change-Id: I84b47743ecb72a1b2731ef65080fa1e630d478a4
Reviewed-by: Laszlo Papp <lpapp@kde.org>
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
Snippet not showing because qdoc read wrong snippet file.
Due to 2 files having the same name.
One was renamed: rsslisting.cpp --> listing.cpp
Task-number: QTBUG-29101
Change-Id: I62b7eee6f2860613ee90538d8dea006b89000317
Reviewed-by: Venugopal Shivashankar <venugopal.shivashankar@digia.com>
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
Make it possible to show a modal dialog by just calling show().
Start an idle timer, which will start the dialog thread.
This timer is stopped in exec().
Change-Id: I8f7352bf577b09a19be7df4484e0077bb1aa46ab
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
According to the documentation recently added mime
type converters should take precedence over previously
added converters. Make it so.
Task-number: QTBUG-25951
Change-Id: Ic23ca7cbb93a98711d762b1ef0e0dd2aa1ceaeda
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
This avoids an extra division by 1000 when getting the current time.
This can't overflow, under normal circumstances, even on 32-bit: when
adding two values less than 1 billion, the result is less than 2
billion, which is less than 2^31.
Change-Id: I6f8e1aadfe2fcf6ac8da584eab4c1e61aee51cbb
Reviewed-by: David Faure (KDE) <faure@kde.org>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
We now use the updated logic for #including the correct GL headers
already implemented in QtGui.
This is needed to fix compilation of QtOpenGL on CentOS 5.8 and
RHEL.
Change-Id: Ifdedd13885566016073538f33aa6daf5902c3497
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
This allows us to then use the up-to-date qopenglext.h header on Linux
too. Some distro's are not yet shipping OpenGL 4.x compatible headers.
This fixes compilation of Qt on CentOS 5.8 and RHEL
Change-Id: Ia8022e0aaf215dac7ea2a23dc82c3ac117d9fd53
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
Add a note in QDesktopServices class reference about storageLocation()
and displayName() functions being deprecated since Qt 5.
Task-number: QTBUG-27869
Change-Id: I739771fef15534823071beabd62aa7b4e7b34cc0
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
Reviewed-by: David Faure (KDE) <faure@kde.org>
A itemview item with its flags set to Qt::NoItemFlags is considered
disabled, and therefore should not cause the activated signal
to be emitted.
Task-number: QTBUG-20490
Change-Id: If824505c46f4fcadb9265ad6d1e9337f0cee32cf
Reviewed-by: David Faure (KDE) <faure@kde.org>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
The d->buffer array was 2x the required size and every other void*
actually stored a DBINT (int) indicating the binding status of the
null. The qIsNull function checked that value, but got the warning
printed.
Instead, let's just do the right thing and have a struct for each
column. Solves the problem more neatly.
Change-Id: I2daaf05c876da7e0e13fb983c58916d946518846
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
Reviewed-by: Mark Brand <mabrand@mabrand.nl>
The writer delegate used by QJsonDocument to produce a Json QByteArray
supports generating a human readable Json (with spaces and carriage
returns that reflect the Json structure) and a less human readable (no
spaces nor carriage returns) but more compact Json.
The method toJson() was extended with a format argument to support
the compact Json generation.
Task-number: QTBUG-28815
Change-Id: I8d13849ab9ab6ed7c645011260251dc14a8629d2
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Debao Zhang <hello@debao.me>
Within qcocoahelpers, make function cocoaButton2QtButton() handle
all button numbers. Within qnsview, call the function in several
places (eliminating duplicate, inefficient code).
Task-number: QTBUG-28567
Change-Id: Ibae2ae4e8a881b825a8862afb82aa80437751111
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
Reviewed-by: Rick Stockton <rickstockton@reno-computerhelp.com>
Change-Id: Ic2bee5b5c20505a866656575b5f5fb853cea4aae
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
Reviewed-by: Laszlo Papp <lpapp@kde.org>
A QWidget that can embed a QWindow. This can be used
to embed a QWindow/QOpenGLContext based window or a
full QQuickView.
Change-Id: I8415b5ae38562fc00b46150fa70b56fd9b19a80c
Reviewed-by: Jørgen Lind <jorgen.lind@gmail.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Corrected path for snippet command
Now refers to doc\snippets
Removed trailing space
Moved macmaindow.mm to src/widgets/doc/snippets
Task-number: QTBUG-29101
Change-Id: If60c31909b2f5efad10ac8b735164a80522dcf62
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
Reference to section 1, which does not exist.
Task-number: QTBUG-29101
Change-Id: Ifd5ac58080033ea1d3f0a587f48f9510f24e75b1
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
Add more testing.
This uncovers that currently the QDesktopScreenWidget
shows up as child of the app. Fixed by not creating
QAccessibleInterfaces for QDesktopScreenWidget.
Also don't crash in indexOfChild when called with 0.
Change-Id: I9fb1e47e8f1f33189e6125f56f274a7b94ecd0dd
Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
If the window or widget is a popup, ignore the hint. The
intention of the flag should be to show main windows etc in
fullscreen, and not all kinds of popups and tooltips. The user can always
call showFullscreen explicit when necessary.
Change-Id: Ie150b6c6d7ca6c9344a9097544a7edbc4bd10df2
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
Return value of the QFile::decodeName(qgetenv("HOME")); is never null
if HOME environment variable is not set. So need to check the return
value using isEmpty() instead.
Task-number: QTBUG-28912
Change-Id: Ic57b1978d63e99b056cde35ca8cb9d2a07ff8ce8
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
Improving performance when making texture from QImage, this commit
makes it possible to skip qgl_byteSwapImage. If gl_FragColor of fragment
shader is properly configured, qgl_byteSwapImage is not required.
Ex) gl_FragColor = texture2D(texture, textureCoord).bgra;
Change-Id: If1f2d7dc1fc1c4e583cc3f38dec95a9d29417cd2
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
Change-Id: I96b6e96539a84a5919992afbaee757fa080b7ae0
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Alexander Neundorf <neundorf@kde.org>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
The CoreText font-engine is not able to produce glyphs with a negative
scale (flipped). We need to report this fact back to the raster paint
engine, so that it can fall back to painter-path based text drawing.
For the GL engine this is not an issue, as the engine is able to handle
the flipping itself, while still using a non-flipped glyph-cache.
Task-number: QTBUG-29284
Change-Id: I3c24cee091786faae8a5c5dd756d208163330bfc
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
We can still assume it when pulling out the scale of the glyph cache,
since we limit it to scaling, but when computing the scale from the
current matrix we have to decompose it.
We always use a positive scale in the glyph-cache, and let the drawing
code take care of any flipping of the coordinates.
Change-Id: Ie3c4f2d91008a9be8f89bef29c15d80b23fb8a82
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
This is done by using locale-independent QByteArray::setNum() instead
of qvsnprintf() for printing doubles.
Task-number: QTBUG-24949
Change-Id: I68cb192417d9a94f72e039c40f647b4a6826a3b7
Reviewed-by: John Layt <jlayt@kde.org>
This happened in cases when QDrag choose not to use a
pixmap to represent data in a drag and drop operation.
The chain that leads to QPainter errors begins in
QBasicDrag::startDrag() where we call setPixmap() with
Null pixmap, which later calls updateGeometry() which
leads to calling render() before the backing store
has been resized.
Task-number: QTBUG-29283
Change-Id: I2145159d3f23dbde2cba2ca9aa1788e222aba02a
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
When a filename was specified as part of the start up directory then it
should ensure this is put in the filename lineedit in the native
filedialog.
Change-Id: I2b190933d46553908b5bcf17506cb2a95fb1f982
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Though no one is supposed to include them directly, it's a good idea
to ensure that they are tested too. They're only included from the
master header when QT_GUI_LIB and QT_WIDGETS_LIB are #defined.
Change-Id: Ie84bb6fd4c18b5b51ab35463f9082feaa0693c97
Reviewed-by: Harald Fernengel <harald.fernengel@nokia.com>
A glitch in QGraphicsItem's logic made it update the focusScopeItem
pointer, but fail to notify the change to QDeclarativeItem through the
d_ptr->focusScopeItemChange() virtual function, hindering
QDeclarativeItem from emitting focusChanged() correctly for focus
scopes that do not have focus.
Two lines were moved, and a comment updated to reflect the reason
why the "return" is needed at this point. It's clear that the
calls to focusScopeItemChange() are unrelated to the return.
Task-number: QTBUG-29260
Change-Id: I12ba9161b16d34c3689401a92c86d2047989f7bd
Reviewed-by: Andreas Aardal Hanssen <andreas@hanssen.name>
Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
Reviewed-by: Alan Alpert <aalpert@rim.com>
make sure we keep track of when we can load root certs and when we
cannot (we cannot when the developer set the certs explicitly). This is
implemented the same way for QSslSocket already, and needs to be
duplicated because we have 2 methods for setting CA certificates: one in
QSslSocket and one in QSslConfiguration.
In addition, adapt the auto test which checks whether setting a default
QSslConfiguration works: There is no way to set on demand loading
through the API, so it should be enabled by default.
Task-number: QTBUG-29103
Change-Id: I5146128aaa385dfcc0ad1e0ef81a92d9350ec5f2
Reviewed-by: Richard J. Moore <rich@kde.org>
Introduces the methods QImageReader::supportedMimeTypes and
QImageWriter::supportedMimeTypes which corresponds to the similar
supportedImageFormats methods, except they return lists of MIME types.
Task-number: QTBUG-28177
Change-Id: Ibb0e264a12eaf972a8bfd6bd891dcd9f89efd085
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
This allows easy unsetting of the variable in a shell like:
QT_FATAL_WARNINGS= progname
Change-Id: Ie9cfb6ebfd4931de1c90af68bfeeae1e9f3d4b9d
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
Required to prevent crashes and incorrect behavior in
https://codereview.qt-project.org/#change,44201
Change-Id: If6025429caabafd150cdd44fec152ff584232220
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
We don't need to stat(2) the file to check if it exists before
creating it. We're about to open(2) with O_CREAT|O_EXCL, which will
not recreate it if it existed.
Change-Id: I2d2176054e7776a32a4520832ee104b9c4ccf748
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
Reviewed-by: Richard J. Moore <rich@kde.org>
This allows shared texture uploads in a background thread.
Change-Id: Ib390243bc9dfabd6c579dff9b74e7f44211739d3
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
As Gatis found out the copy text bug is caused by the xcb plugin's
handleEnterNotifyEvent() receiving an event with a seemingly random
"time" member. That is however not due to a bug in the X server but
rather due to a missing break statement in the event dispatching in
qxcbconnection.cpp, causing an xcb_client_message_event_t to be treated
as an xcb_enter_notify_event_t, and thus an xcb_window_t to be treated
as an xcb_timestamp_t.
The other xcb_enter_notify_event_t values would of course also be
complete garbage.
Task-number: QTCREATORBUG-8476
Task-number: QTBUG-28398
Change-Id: Id8c09a6682f78b646a0d1d27b0650248bbfa1046
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
Reviewed-by: Gatis Paeglis <gatis.paeglis@digia.com>
Keeping accessibility and only disabling the bridge will
enable more builds to work.
Warning about disabling accessibility disabled is needed
because in QStyle it is used to discover semantics about widgets
(if a toolbutton is in a toolbar).
Change-Id: Iae4e6ab63479743bdd70cba4b1954ec7cf3f88e9
Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
VxWorks has defined variables with same name as in Qt's headers.
Undefine those variables to avoid naming conflict.
Change-Id: Ia8ca04a66acece683cd6c7f71df7e5a2800ec98d
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
In VxWorks qfunctions_vxworks.h file includes correct time
related headers and it is included already at file
qplatformdefs.h for all mkspecs targets.
Change-Id: I8677eef8c79cebb445d89203284f3af27abbdd7f
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
VxWorks compiler fails to compile *.c file with C99 style comments on it
Change-Id: Ib5c5ff14006c17f9392b77363232b8b7cc112d34
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
In VxWorks set default values for scheduling priority to use
SCHED_FIFO_HIGH_PRI and SCHED_FIFO_LOW_PRI defines for other scheduling
policies than SCHED_RR or SCHED_FIFO.
Change-Id: If78b84cd9ef94d7712206e9442e96cdba727610f
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
VxWorks does not support to globally lock and unlock the scheduler from
process. In kernel mode (DKM) above functions disable preemption from
requested task and such functionality does not exist for process.
Change-Id: Id41eab4c1973e4181e82539d08707659e0780f99
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
VxWorks does not have concept of users and therefore has no function
getpwnam. Use QDir::homePath() which returns actually QDir::rootPath()
if there is no HOME env variable set.
Change-Id: I15fe15862c4491b56cfa13bbdb218ef00dfd1f15
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
VxWorks has no concepts of users and groups, therefore no such functions
exists on VxWorks. Use stub functions from qfunctions_vxworks.h for
those, so we don't need to make major source code changes.
Change-Id: Iaad80ec18441e3d3e9c0f96e92ccc3766b27d976
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
Vxworks does not have gettimeofday function, use function
implementation from qfunctions_vxworks.h/cpp instead.
Change-Id: Iad2a71c8484ba00dd9406706b1c136297260de4b
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
Shared libraries cannot be used in kernel mode (DKM), only at process
mode (RTP).
Change-Id: I8cecc12461aa4417b16577db3bc9cd85a1aa7efa
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
VxWorks simulator (VxSim) maps SDK rootdir usable as normal directory.
Mapped directory name is either host: or <hostname>: and can be used
without prepending prefix containing colon. Strip prepending string and
colon to get valid native path to host SDK rootdir running VxSim.
Change-Id: I9d2829e32431c2d50fefe55c93780cd37165e565
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
The uniprocessor taskIdCurrent global variable (declared in taskLib.h)
does not exist in VxWorks SMP, because of concurrent execution on
multiple CPUs. Any uniprocessor code that reads taskIdCurrent should
make calls to taskIdSelf() instead.
Change-Id: I4e0efef32297f339d6121c7d4bca3820e0fc9294
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
Check if _WRS_KERNEL is defined so we are compiling for DKM mode.
Change-Id: I15801b0575d3fe6e543f81a177fd01d015d9085f
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
VxWorks don't have gettimeofday function so we always use the one
implemented in Qt. VxWorks DIAB compiler is not supported building Qt
for VxWorks 6.9.2. Anyone using older VxWorks should also not be
affected so use new defines VXWORKS_DKM and VXWORKS_RTP for VxWorks
version 6.9.2 onward.
Change-Id: I2e9546a101256ea0557b65163b40cd0f28be8519
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
Qt does not print debugging in released versions. We print warnings in
case of error in using the API, but that's not the case here.
Change-Id: I14d54be5d6a1d4e1f147afd091ba850670972cdf
Reviewed-by: David Faure (KDE) <faure@kde.org>
This replaces the implementation from ac9ab9703f.
If the number of active children drops to zero, we know we can simply
delete the vector of children. We know none that might be there are
active.
If the number is not zero, but is considerably smaller than the vector
size, we can shrink the vector by reordering the elements, skipping the
inactive ones.
We use qMove, which expands to std::move on C++11, but a regular copy on
C++98.
Change-Id: I2e74446081f91fbd698425b08910fbda4746d673
Reviewed-by: David Faure (KDE) <faure@kde.org>
The new member variable activeChildren shall contain the number of
direct children that are active. This number differs from
children.count() because the vector may contain empty entries that
haven't been garbage-collected yet (obj == NULL and activeChildren ==
0).
When this count drops to zero, we know we can simply erase the vector of
children.
Change-Id: Ia20604d3fac852ea4a6e8862d934fbb936fa5e18
Reviewed-by: David Faure (KDE) <faure@kde.org>
The current implementation is a loop. We need it to be recursive so that
we can execute more operations when unwinding. This will be necessary
in the next commit.
Change-Id: Ia3c98fed0719cede0a0d92d3e343cf016ec7baf2
Reviewed-by: David Faure (KDE) <faure@kde.org>
It helps in valgrinding applications. It's the difference between:
==17609== Address 0x38 is not stack'd, malloc'd or (recently) free'd
and
==19789== Address 0x598f478 is 56 bytes inside a block of size 112 free'd
==19789== at 0x4A0736C: operator delete(void*) (vg_replace_malloc.c:480)
==19789== by 0x53A77CD: QObjectPrivate::~QObjectPrivate() (qobject.cpp:239)
==19789== by 0x53B4EB5: QScopedPointerDeleter<QObjectData>::cleanup(QObjectData*) (qscopedpointer.h:63)
==19789== by 0x53B3980: QScopedPointer<QObjectData, QScopedPointerDeleter<QObjectData> >::~QScopedPointer() (qscopedpointer.h:99)
==19789== by 0x53A8EEC: QObject::~QObject() (qobject.cpp:750)
Change-Id: If42107c94401a96c05caa511442d6bd010fd4e29
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
Unlike the previous implementation, this implementation is locked:
only one initialisation is ever run at the same time. It is
exception-safe, meaning that a throwing constructor will restart the
process.
Also, start using the thread-safe behaviour that GCC has offered for a
long time and C++11 requires.
Change-Id: I20db44f57d258923df64c0051358fd0d9a5ccd51
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: David Faure (KDE) <faure@kde.org>
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
The aliases for the TIS-620 codec were not available before loading it.
This led to the following intermittent failure:
QWARN : tst_QTextCodec::threadSafety() WARNING "MS874" not found?
Change-Id: I8ed037d3238c04e1d35ed49e833ac01b7501d3e8
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Only QStringList was handled before, now any QList is handled.
A specialization for QStringList is still needed though, due to the way
template matching works.
Example with QList<int>. Before:
FAIL! : tst_QTextCodec::threadSafety() Compared values are not the same
Loc: [../tst_qtextcodec.cpp(2057)]
After:
FAIL! : tst_QTextCodec::threadSafety() Compared lists differ at index 0.
Actual (res2.toList()): '0'
Expected (mibList): '3'
Loc: [../tst_qtextcodec.cpp(2057)]
Change-Id: If0fdec3236ddb78a679ee549aba569ef5571c395
Reviewed-by: Jason McDonald <macadder1@gmail.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Currently, there is no concept of not having a cursor set on
a Window. Qt::ArrowCursor is always set instead. This causes
bugs when native child widgets are involved, for example setting
a cursor on the native widget's parent no longer works since
the child's Qt::ArrowCursor applies.
Introduce QWindowPrivate::hasCursor tracking whether a cursor
has been explicitly set and clear in QWindow::unsetCursor().
Handle 0 in QPlatformCursor::changeCursor() to mean
"unsetCursor()":
- Windows: Introduce default constructor for QWindowsWindowCursor
meaning "0". Search for applicable parent cursor in applyCursor.
- XCB: No big changes required, set XCB_CURSOR_NONE for no cursor.
- Other platforms: Assume Qt::ArrowCursor when cursor = 0 is
passed for now.
Task-number: QTBUG-28879
Change-Id: Id82722592f3cd5fe577a5b64dcc600c85cfea484
Reviewed-by: Jonathan Liu <net147@gmail.com>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
- Correct modality check.
- Allow for properties to be set if there is no native dialog.
- Make dialog thread for non-modal call back into dialog helper
for exec().
- Introduce QWindowsFileDialogSharedData to contain data to be
cached while no native dialog exists and to be updated by the
change notifications of the IFileDialogEvent interface to avoid
querying the dialog results after the dialog has closed. Reduce
virtual methods of QWindowsNativeFileDialogBase accordingly.
This also fixes a bug in the previous implementation causing
the directory not to reported back since the native API would
not return the directory after closing the dialog.
- Support nonmodal native dialogs when constructed on a QQuickWindow.
- Delete native dialogs after exec as QtQuick keeps the
dialog instances around.
Change-Id: Id1169d6657d9476afe12fb9909c36cbd03aa2a40
Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
There is an assumption that the interface returned from iface->parent()
would have iface as one of its children (thus,
parent->indexOfChild(iface)
should always return an integer != -1, indicating that it is a child.
This is a good assumption, otherwise an hierarchy would be presented
differently depending on how it is traversed.
However, a QMenu created like this:
QMenu *menu = new QMenu("weird parent", mainWindow);
mainWindow->menuBar()->addMenu(menu);
will have a different ancestor sequence than a menu created like this:
mainWindow->menuBar()->addMenu("ok parent");
This is because it will walk up the QObject hierarchy.
This patch tries to deal with that by looking at which widgets the
action of the menu is associated with before determining which should
be the accessible parent.
Change-Id: I00dad8a94463f772d7b1f5d66fdb36b2e8d3aea2
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
Instead of always using a non-transformed glyph-cache we now allow a scaled
glyph-cache so that retina-screens can take advantage of this. We take
the cache's scale into account when positioning and drawing the glyphs
so that the scale is not applied twice.
Change-Id: Ia927656f0070df61e78da76e97d2c49de4d856d9
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
The mingw headers lack the IPV6_V6ONLY define, depending where you get
them from. Currently the headers provided by mingw-builds are more
complete than those from mingw.org itself.
I have removed the compile time check, defined the macro if it is
undefined, and it should be just a runtime check for if you are running
on windows XP you get no dual stack binding.
Task-number: QTBUG-28787
Task-number: QTBUG-28971
Task-number: QTBUG-28972
Change-Id: Iafadbb55d367c44ba9f812a24115e65591701b54
Reviewed-by: Ilya Sidorov
Reviewed-by: Peter Hartmann <phartmann@rim.com>
(cherry picked from commit d3c4296198)
Depending on the implementation updating an input method can be
expensive and various widgets will at times call setInputMethodHints
with unchanged hints. QGraphicsView being a notable offender due to
the complexity of the circumstances in which the hints can change.
Skipping the update here ensures the input method isn't updated
unnecessarily for all widgets.
Task-number: QTBUG-19854
Change-Id: I36ae35585ee20a4e01ca0d62c71e896dbdb51a3f
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
For use with public API in QtMacExtras.
This goes into Qt stable: Fix for new functionality,
and close a feature regression against Qt 4.
Change-Id: I555fdff3ddb39336ccd72f9711d465f1c18c6b45
Reviewed-by: James Turner <james.turner@kdab.com>
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
The pcre(3) man page says that the 4th argument of pcre_fullinfo,
when requesting PCRE_INFO_OPTIONS, should point to an unsigned
long int variable.
Change-Id: I72cd5ab208687715329566556c5f279db57f7872
Reviewed-by: Richard J. Moore <rich@kde.org>
These classes moved as well, but were missed in commit c07408e2. This
fixes uic generating invalid code if any of these classes are used in
an .ui file.
Change-Id: I0359157f540a5f4979cca781169e5a9b2a0afad7
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
This associates properties with member variables and
avoids writing getter and setter methods manually.
The metaCall() method directly accesses the member variable,
so additional method calls can be avoided.
The metaCall() setter code also supports NOTIFY signals,
which means the according signal is emitted when the property
gets written.
Task-number: QTBUG-16852
Change-Id: I88a1f237ea53a1e9cf65fc9ef2e207718eb8b6c3
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Since we have to add the filters one by one to the Mac file dialog it
was finding the one that would match the filter by comparing the start
of the filter string. However it would continue to check the start of
other filters even if it had already found the one it should be using.
Now it uses either an exact match or the first one that it matches the
start of.
Change-Id: Ie6441acd48e45ec9c712afc12a2ea47755835bb3
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
If the sheet is not ended then subseqent calls to show a sheet will not
work correctly.
Change-Id: Ib8a43a1c96a3dadff196c433e822f7579ad87b8b
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
Some times a platform might want to exclude certain configs, for example
based on EGL_NATIVE_VISUAL_ID. This patch introduces a new
QEglConfigChooser class which has a virtual filterConfig() function
which can be re-implemented in a sub-class to give finer control of how
configs are chosen.
Change-Id: I8b684f01be95a47307b1e429857f01337a9a38d8
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
ls(1) with the -i option and stat(1) show inode numbers in decimal. If
anyone ever tries debugging this problem, we should present the
information that other tools would show too.
Change-Id: I54b24edba5b028cc86744ca302ab918f8baa2d2b
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Fixes performance issues in apps which register and deregister objects
very frequently (like nepomukstorage).
Change-Id: Ib4ce8d65868f0e26cd45f1053e4b2f4c13528cfa
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
This QIODevice uses a temporary file for writing, so that in case of
write errors, the writing operation is canceled, without losing any
existing file. It also avoids having a partially-written file visible
by other processes, at the final destination.
Change-Id: I9482df45751cb890b1b6f1382ec2eea3eb980627
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
They are not supported anymore.
Use the standard Qt dialogs instead.
Change-Id: I2b6c7688e24e4345a95d3a9a062f9670cb1a845f
Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com>
Reviewed-by: Bernd Weimer <bweimer@rim.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
Mesa has started defining glXCreateContextAttribsARB even when it is not
supported as a feature. To be sure it is safe to use, we need to also check
if it is supported extension.
Change-Id: Ie160dc2b2418a726957b59f47bd290b742562ae3
Reviewed-by: Zeno Albisser <zeno.albisser@digia.com>
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Triggered for example by Qt Designer's new form dialog.
Change-Id: I63a1f1e5425e8d5fc60c10418a715143e65443f1
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
Since Qt4, there is a bug which causes Qt to drop dead key modifiers
(like graves and acutes) if the user types enough fast on MS Windows.
This happens because of an extrange behavior of Windows, which drops
dead keys on ToUnicode() calls.
This patch tries to workaround that.
Task-number: QTBUG-8764
Task-number: QTBUG-10032
Change-Id: Ifdde25817743194fd5c0b7533c27f46a7a108ca4
Reviewed-by: Friedemann.Kleint@digia.com
Reviewed-by: oliver.wolff@digia.com
Reviewed-by: marc.mutz@kdab.com
Reviewed-by: bjoern.breitmeyer@kdab.com
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
Useful for not having to fall back to QPainterPath drawing when using
the raster engine with a retina screen (which has a 2x scale).
Change-Id: I0a9f754d31b0ecd8e8daf7a01331d19716bab680
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
This currently fails on case-insensitive file
systems since the check for existence then triggered
and indicated "file already exists".
Check on the file id (inode or file id) whether
the target file is really a different file for a
case-changing rename.
Task-number: QTBUG-3570
Change-Id: I1b2d40850692e02142ee23d2c753428de00aedc6
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
This is necessary for initializing things in a library, which require
a QCoreApplication instance (unlike Q_CONSTRUCTOR_FUNCTION, which runs
before that). Example use cases: KCrash (segv handler), and KCheckAccelerators
(debugging tool triggered by magic key combination).
Change-Id: I5f4c4699dd4d21aea72b007989ba57467e86ed10
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
This is a partial revert of 7abf623. The desktop components have been
fixed to call QStyle in the main GUI thread.
Change-Id: Ifd8364269b7d2e350f34647c128ff2fbde70afd6
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
When re-applying window flags in setParent, force top level on
or off according to state.
Task-number: QTBUG-28872
Change-Id: If931fcb38394f472a6cdf260aa935c1d03779611
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
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>
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>
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>
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>
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>
Only if minimized does QWidgetWindow need to remember the previous
state. Maybe it's OK to restore from fullscreen to maximized though.
Task-number: QTBUG-29030
Change-Id: I1e2724c8811366c9536a3e372ce281e8d473a4ac
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
\obsolete for one value was marking the whole enum obsolete.
Change-Id: If022b4af8365e3448556ca11a538203ab5c63c78
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
the KDGETMODE ioctl should use a pointer to int as param,
not a pointer to pointer to int, otherwise it may crash
Change-Id: Ie255d240f3b6ca1ff5398f972308116135374ae3
Reviewed-by: Sergio Ahumada <sergio.ahumada@digia.com>
The mingw headers lack the IPV6_V6ONLY define, depending where you get
them from. Currently the headers provided by mingw-builds are more
complete than those from mingw.org itself.
I have removed the compile time check, defined the macro if it is
undefined, and it should be just a runtime check for if you are running
on windows XP you get no dual stack binding.
Task-number: QTBUG-28787
Task-number: QTBUG-28971
Task-number: QTBUG-28972
Change-Id: Iafadbb55d367c44ba9f812a24115e65591701b54
Reviewed-by: Ilya Sidorov
Reviewed-by: Peter Hartmann <phartmann@rim.com>
Nobody should break ODR, but we were living with apps breaking it
for at least 8 years. Sure it is an undefined behavior but in many
cases it works. I do not think that Qt should enforce usage of
a proper C++, it is role of a tool chain. Qt can only indicate that
something is going terribly wrong.
Make message a bit more verbose. Sometimes the ODR violation is not
that easy to fix, therefore a hint is a nice addition.
Update documentation of qRegisterMetaType.
Change-Id: I61dcccc840eec80a4ed5b8a212a912807d239d8c
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Both Q_UNREACHABLE and Q_ASSUME with an invalid condition can produce
really weird side effects and crashes.
Change-Id: I4d808c705ae98388ef5853e6539b70bd5e5ad34b
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Some cruft had built up over time, and this is an attempt at cleaning up
the naming and use of these functions, and should not have any behavioral
effects.
The function supportsTransformations() has been renamed in QPaintEngineEx
to reflect its use, which is to decide if QPainter needs to pre-transform
the coordinates of the static text before asking the paint-engine to draw
it. The new name is requiresPretransformedGlyphPositions().
The OpenGL and CoreGraphics (Mac) paint engines keep their behavior of
not needing pre-transformed text, while the raster engine needs this
when using cached glyphs. The base-class implementation assumes that
all transforms that include a projection will need pre-transform,
which is also the case for the raster engine.
All decisions in the paint engines about whether or not to use the
glyph cache when drawing text are now deferred to the function
shouldDrawCachedGlyphs(), which has been refactored for the GL paint
engine(s) to share more logic. All implementations call the base
class implementation, which ensures that large font sizes will not
be cached. The raster engine will in addition ask the font engine
whether or not it can produce glyphs for the glyph-cache with the
given transform.
This is the only remaining instance of the supportsTransformations()
function, and will for all font engines except the CoreText engine
support affine transformations. The CoreText engine on the other hand
only supports translations (for now).
Change-Id: I8fb5e43e3de3ef62a526a79a6dfeda7f9546771d
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
The value -1 is used to indicate no stencil buffer, so we have to check
for sizes <= 0 when deciding whether or not to triangulate the path in
QOpenGL2PaintEngineExPrivate::fill().
This fixes an issue where filling a path would end up filling the whole
outline of the path, which was very visible with fonts over a certain
size (when we go from using the glyph cache to drawing filled paths
for each glyph).
Change-Id: Iafa96124481936db1e5109bba6166a6038c7ca83
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
If the widget is embedded in a native window then pos() should be used
instead of mapToGlobal() so that the right position is used. This was
reproduced with the qtwinmigrate solution as the dialogs were not
centered correctly.
Change-Id: I2ce7771f8c1a73aa74ab11faf4f9c57b922eefab
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Windows 8 no longer allows for negative values to WM_NCCALCSIZE
to shrink the title bar.
Task-number: QTBUG-28435
Change-Id: I2e2e5e6aea9cc6781be4e9b06c9547e1e5ec86cb
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Add custom frames which are added to the system frame to
the platform plugin. Make them settable when creating a platform
window using dynamic properties and per window properties
of the platform native interface.
Use this in favor of the native event handling changing the frame
in wizard_win.cpp since that caused the frame/backing store sizes
of the QWindow to be wrong.
Task-number: QTBUG-28099
Change-Id: Idd6416cf1b0eb629f56663088b0ce17162e1739d
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Fixes breakage introduced by cdc436ebe6 .
Top level widgets with translucent backgrounds were invisible since
opacity was set to 0.
Task-number: QTBUG-28531
Change-Id: I97058ac1b971422f3bda3a5ffed479ec55bfe5d4
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
CGRect == NSRect only in 64-bit mode.
Change-Id: I069b5b050ccf02654a65375c3ab0f58f7d5cc659
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
Don't autorelease in the elementWithInterface function,
rename it to createElementWithInterface. The element
can then be released immediately or autoreleased ("delete
later").
Change-Id: I155a85404c34d756c1752eb7c24a7fb0f3cf2e77
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
It mustn't be installed and it mustn't be available in the master
include. It's an assembler header anyway.
Also, take the opportunity to add the "We mean it".
Change-Id: Id4233e5bda458714a0d329549afe499d861acc56
Reviewed-by: Adrian Perez de Castro <aperez@igalia.com>
Reviewed-by: Sergio Ahumada <sergio.ahumada@digia.com>
This definition was missing. It's clear MSVC supports this feature
because it has been in use in qtconcurrentrun.h under an #ifdef
Q_COMPILER_DECLTYPE, which is defined for MSVC.
Change-Id: Id76198b2be8bba13fd00c65d6d4f73d3ef601449
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
QQnxCliboard::setMimeData was not cleaning the system clipboard aproppriately
when m_mimeData != 0 but m_mimeData->userMimeData == 0, as it would return
early before the empty_clipboard() statement.
Also, we need to emit the dataChanged() signal after the clipboard has been
cleared as well.
Change-Id: Ie06609e6e3a0a0135f1cdb6cf4c90b490ef2fc28
Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Both qdoc and Q_QDOC are used in source code, which looks not good.
Change-Id: I4f3a71670278b0758d92bfa5db086a07e1b1acfd
Reviewed-by: hjk <qthjk@ovi.com>
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
qApp->topLevelAt() returns the QShapedPixmapWindow that the DnD
operation created, but what we want is the QWidgetWindow.
QWidgetWindow has the code to handle QDragMove events.
In Qt4, QShapedPixmapWidget had a parent, so was never returned
by qApp->topLevelWidgets().
In Qt5 we must filter it out. Bug is visible in the QNX plugin,
which is the only user of QSimpleDrag.
Change-Id: I920da86f3a1a92ce8e087f5948292fa4c68d4d81
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
A regression caused by 79a389 - it should only draw a styled frame for
text input widgets.
Task-number: QTBUG-28876
Change-Id: I5cda920b7db55f35e0ab6cee460c0e27951d29b9
Reviewed-by: Jonathan Liu <net147@gmail.com>
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
This match type doesn't do any match at all; it's only necessary to
properly introduce default constructors for QRegularExpressionMatch
and QRegularExpressionMatchIterator (since they return the match type
that created them).
Change-Id: Ibfe92459c7fdd23129cf3afe073cd443c461ddeb
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Provide addition/subtraction for QMargins as well as
multiplication and division for int/qreal similar
to QPoint. Add unary minus.
Change-Id: If4eb831cfd610b34b5ca361619b1636031811d0a
Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
Reviewed-by: Mitch Curtis <mitch.curtis@digia.com>
- Addition of a QMargin to a QRect.
- Removal of a QMargin from a QRect.
- Remove implementation from Windows platform plugin.
Change-Id: Iae54bc13e94a7ece48853b1d3f3de2bfc154d2dd
Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
Reviewed-by: Mitch Curtis <mitch.curtis@digia.com>
QRegExp and QRegularExpression are totally independent, therefore
using two different defines is the right thing to do.
Also, document the new define in qfeatures.{txt,h}.
Change-Id: Ice4826ea543f4b22f1cc27bf31ed6e043d0c43b0
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
The operator<= and operator>= overloads for QPoint are used only with
Q_ASSERT. Clang was correct that they are not used.
Even though they are inline, Clang reports the functions as unused
because they were inside an anonymous namespace. So take the off the
namespace. They are correct for external use, should they be exported
by accident (which they aren't now).
painting/qpathsimplifier.cpp:76:13: error: unused function 'operator<='
[-Werror,-Wunused-function]
inline bool operator <= (const QPoint &a, const QPoint &b)
Change-Id: I67415621e777fd0d59cbdede26c34d8bb13f7346
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
It is not relevant that it has been part of the class since Qt 4.6. It has
always been internal until now. The release where it became public API (5.1)
is what is relevant.
Change-Id: Ib740f3ed6df190884a94fb2c11dd74cd7edb7b1a
Reviewed-by: Venugopal Shivashankar <venugopal.shivashankar@digia.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
QRegularExpression counterpart for QRegExpValidator.
Change-Id: Ib391e73dd49e32aeb9b48e6f2217b67a17a83a11
Reviewed-by: David Faure <david.faure@kdab.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
std::forward and std::move are not yet supported by the NDK.
Change-Id: I1df1b5e88717c0d27a280862b98eb68262927f2b
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
This is a refactoring leftover from commit
bb86e77cc437b92d49692bb7026c57626d77079f in qt/qt.git.
Change-Id: I04993faca44ad0ffca2ae163049770c29d232a47
Reviewed-by: Zeno Albisser <zeno.albisser@digia.com>
Reviewed-by: Denis Dzyubenko <denis@ddenis.info>
If the dynamic_cast failed in QSharedPointer::dynamicCast or
qSharedPointerDynamicCast, we should avoid creating the QSharedPointer
that shares the weak and strong reference counts. In Qt 5, this does
not imply a leak since the original pointer is stored internally for
deletion. In Qt 4 it implies a leak under certain circumstances, which
this change fixes.
Task-number: QTBUG-28924
Change-Id: Id2de140de4cf676461e14b201ad250c53666b79d
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Those certificates have erroneously set the CA attribute to true,
meaning everybody in possesion of their keys can issue certificates on
their own.
Task-number: QTBUG-28937
Change-Id: Iff351e590ad3e6ab802e6fa1d65a9a9a9f7683de
Reviewed-by: Richard J. Moore <rich@kde.org>
Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
This had the unfortunate side-effect that focus was reported to change
(but it didn't) just because the qtabbar was shown.
Found by clicking the different categories on the left-hand side of the
options dialog in Qt Creator.
So, what happened was that clicking "Text Editor" would move the
accessibility focus (that the AT client saw) to the "Font & Colors" tab)
Change-Id: I19a508f6a32a77696079d24c3c6408cb6c3d9fd5
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
We should only emit these when the corresponding property value changes.
Since these are changed asynchronously in the case of a platform window,
we should not emit them in the setter, as they are already properly
emitted in QGuiApplicationPrivate::processGeometryChangeEvent().
Change-Id: I5ac00601ddb4e7a8ff02376e5f5135d427913119
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
Previous commit b2363a935c fixed keyboardModifiers() after QPA event
processing, but broke QTestLib, which expects spontaneous input events
sent to qApp->notify() to update keyboardModifiers() and mouseButtons().
The commit also did not fix mouseButtons() after QPA event processing,
and missed keyboardModifiers() after QPA Tablet event processing.
This commit fixes all these shortcommings in b2363a935c.
Includes test case by David Faure <faure@kde.org>
Task-Number: QTBUG-26887
Change-Id: I8518b06c4ce86ea7b35120e3353a45ea2a81d356
Reviewed-by: David Faure (KDE) <faure@kde.org>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
While the Cocoa documentation says we should not cache [NSScreen screens],
it seems that we should not cache its referenced objects either. This
caused a crash in desktop components when using Dial because, given
the way it is being rendered, we need to know the screen pixel ratio.
Task-number: QTCOMPONENTS-1279
Change-Id: If5c3c6f14d04925215b9dca011143a2056a68846
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
The UpdateLayeredWindowIndirect function is only available on Windows
Vista and later. If UpdateLayeredWindowIndirect is not available
(e.g. on Windows XP), use UpdateLayeredWindow instead.
Change-Id: I8af23c051560f7e54eda390dae7553543c00a94b
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
This reverts commit b7f63c6bf7.
It made compilation fail in qstylehelper_p.h if QT_NO_ACCESSIBILITY
was defined - which it is by default on linux without dbus.
Change-Id: I313f5138460d28c44dad128d175df0e53a99287d
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
In the event dispatcher the timer list has to be reevaluated after
each call to filterEvent, because timers could be started in event
filters.
Change-Id: I1a275845fb74c63441f2301555f3459f8295af27
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Task-number: QTBUG-28769
Change-Id: I3f83b6011acf43e5136a762d0f8841b3a910cecb
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
It's currently not obvious that two digit years will always be in the
20th century (1900's).
Task-number: QTBUG-28797
Change-Id: I7dee9a46e0cb803a8f097debc5443d1789c2f16c
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Venugopal Shivashankar <venugopal.shivashankar@digia.com>
Don't call window->handle() inside the backingstore ctor, because
we might still have the window ctor in the call stack
( ex: a QWindow sub-class that creates a backingstore inside it's
ctor).
Crash can be reproduced by running examples/gui/analogclock.
Change-Id: I4622ceaeb05696c5ae0181a528f58e5d102dcb22
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
With trailing spaces in some cases, we would not get the
"no justification at end of paragraph" special case, and continue
in the code, getting the unexpected case where line_length becomes
< 0 which would lead to memory corruption because we were writing
outside our buffers. I added an assert to catch this type of bug
earlier, and I added the trailing spaces to the test for the end
of the paragraph.
The test case added is one example which would crash.
Task-number: QTBUG-27354
Change-Id: Id720a6fa55dbc709ce04dd5321e55687bf960d75
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
As they are built-in, they are effectively registered at compile-time
already.
Change-Id: I7ae6ba16088eab5d19213fa7b07c2a7760988a86
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
Omit its value in the documentation.
Change-Id: I474faefde23b0e2e0a77a9e6391fd556a6523128
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
The CompareEdges functor class is never used anywhere. Clang saw it
through to the static function that never got used:
qtriangulator.cpp:227:12: error: unused function 'comparePoints'
[-Werror,-Wunused-function]
static int comparePoints(const QPodPoint &u, const QPodPoint &v)
^
Change-Id: I67d821e454daf82bd8107bf20f787aff9496e878
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
qxcbnativeinterface.cpp:246:8: error: unused parameter 'context' [-Werror=unused-parameter]
qxcbcursor.cpp:550:85: error: 'root' may be used uninitialized in this function [-Werror=maybe-uninitialized]
Change-Id: I5fa4e717c86d0e8198e501e6c799e0ceb9264708
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
Otherwise it is possible to assert if
qRegisterMetaType<QList<QSslError> >("QList<QSslError>")
is called in a TU which does not include the Q_DECLARE_METATYPE
invocation.
Change-Id: Ice1ffbb0f8d0a745d2bffc8b4e13ca31621e8ca4
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
Reviewed-by: Richard J. Moore <rich@kde.org>
This patch allows single selection to be cleared with the normal
control modifier. This affects e.g QTreeView and QListView.
Task-number: QTBUG-8836
Change-Id: I7fd50b987acc3552b36657409568192763257536
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
There is no reason those function shouldn't be static. This produces
no change in code, except that the functions may be better optimised.
Change-Id: Ia60b81d4e29a36190a453e8c7c8102c8f547e1a9
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
...if writing system is already known to be supported
Change-Id: Id7ea11e92507a283b2fba2ad944dd0a9772e484d
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
qeglfshooks.h:77:21: error: 'hooks' defined but not used [-Werror=unused-variable]
Defining a static variable in a header file is a terrible idea. But if
I remove it, other code breaks and I don't have the time to fix them
all.
Change-Id: I4f94cbc7f0790df91853662749701e8fb11c2347
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
Task-number: QTBUG-28875
Change-Id: If72ce0669de8f344603d2da53eeb5644bd5c4f82
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
Reviewed-by: Jonathan Liu <net147@gmail.com>
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
Profiling shows that the cost of QAcccessible::
queryAccessibleInterface is dominated by plugin loading.
(json parsing etc.)
Cache QAccessiblePlugin per class. Also cache the fact
that no plugin is found for a certain class. This speeds
up the average queryAccessibleInterface call by a factor
of 10X
Change-Id: Iab6d052dec499a2203d1dcc4672a8a543b279239
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
For qwineventnotifier.h, just wrap the code around #ifdef Q_OS_WIN. This
has the added benefit of fixing the current qt_no_master_include problem
(that is, even if you #include <QtCore> on Windows, you wouldn't get
it).
For qtypetraits.h, it requires qglobal.h first.
Change-Id: If1ba09a0a29de429a5b87e9878c8ac6a62a443c4
Reviewed-by: Laszlo Papp <lpapp@kde.org>
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
kernel/qwidgetsfunctions_wince.h:61:34: error: no newline at end of file [-Werror,-Wnewline-eof]
Change-Id: Icbc35227946652db53fc8454d1d42043aa7c15b9
Reviewed-by: Andreas Holzammer <andreas.holzammer@kdab.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Going through QLocale and QString is not really needed.
This also makes the result of the conversion of negative numbers
in bases other than 10 independent of the architecture and
implements the documented behavior of treating them as
unsigned types.
Change-Id: Ibc231dc5241deb5cbadd9796484a8b5f79c29410
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Clang reports:
graphicsview/qgraphicsitem.cpp:1779:13: error: function '_q_qgraphicsItemSetFlag' is not needed and will not be emitted [-Werror,-Wunneeded-internal-declaration]
static void _q_qgraphicsItemSetFlag(QGraphicsItem *item, QGraphicsItem::GraphicsItemFlag flag,
^
According to the public Git history, in Qt 4.5.1 this function was
already unused. The only reason it wasn't caught so far is that it is
recursive: it calls itself. So it is used... by itself.
Change-Id: I6fc6b33cb314b845525dc9315d0ad742e113d5cd
Reviewed-by: Andreas Aardal Hanssen <andreas@hanssen.name>
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
qsql_psql.cpp:774:12: error: enumeration value 'CancelQuery' not handled in switch [-Werror=switch]
qsql_mysql.cpp:1163:12: error: enumeration value 'CancelQuery' not handled in switch [-Werror=switch]
qsql_sqlite.cpp:527:12: error: enumeration value 'CancelQuery' not handled in switch [-Werror=switch]
qsql_odbc.cpp:88:97: error: format '%d' expects argument of type 'int', but argument 3 has type 'long unsigned int' [-Werror=format]
qsql_odbc.cpp:706:76: error: cast to pointer from integer of different size [-Werror=int-to-pointer-cast]
Change-Id: I79965283057e92a44a0c8375530cfb30107c891c
Reviewed-by: Mark Brand <mabrand@mabrand.nl>
It's deprecated and it's not available on iOS anyway. The recommended
way of getting the number of processors online is via sysctl or
sysconf (both of which are just slightly below).
qthread_unix.cpp:397:13: error: 'MPProcessorsScheduled' is deprecated: first deprecated in Mac OS X 10.7 [-Werror,-Wdeprecated-declarations]
Change-Id: I4bf60985fbde155b78b840f3de3ff0a142b78b19
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
qbenchmarkvalgrind.cpp:229:5: error: variable '_qzz_res' set but not used [-Werror=unused-but-set-variable]
Change-Id: I3c5896659105650d6d824b10ff3beffbdf494e24
Reviewed-by: Jason McDonald <macadder1@gmail.com>
The Linux futex implementation had a Q_ASSERT for positive values, but
the documentation says that negative values should be interpreted as
infinite (equal to lock()).
Test that too.
Change-Id: I2f96a502d672732781e88e49797756ca9a809121
Reviewed-by: David Faure (KDE) <faure@kde.org>
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
qtconcurrentfunctionwrappers.h:277:22: error: 'QStringList' was not declared in this scope
Change-Id: I54c48386d90146c872679672a1d8cc3675d49c39
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Requires C++11 rvalue references and variadic templates so we can
implement perfect forwarding.
Change-Id: I62e47d1ffd0c61e8386f9f246aa79031b7430b46
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
QUrl::fromUserInput("http://") was invalid, which doesn't make sense
since QUrl("http://") is valid. Same for "smb:" which is actually
even more a valid URL from a user's point of view.
Change-Id: I371ac393d61b49499edf5adbbc2a90b426fe9e5d
Reviewed-by: Marco Martin <mart@kde.org>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
GCC was complaining:
qevdevtouch.cpp:475:13: error: 'maxId' may be used uninitialized in this function [-Werror=maybe-uninitialized]
Which got me scratching my head: maxId was unconditionally initialised. How
could GCC be complaining about it being uninitialised? Well, turns out that
bestId could be uninitialised and the code does:
if (bestId > maxId)
maxId = bestId;
Of course, if bestId was uninitialised, the warning should have been in the
"if" line first.
Change-Id: I5e174ab2957d76ad040c14fa6ef8535129b6dce3
Reviewed-by: Laszlo Agocs <lagocs83@gmail.com>
The code was copied from the main parser there, so remove the
duplication.
Change-Id: I85748f6f76b3097ff22958d9de67cfa27061a72b
Reviewed-by: David Faure (KDE) <faure@kde.org>
These cases weren't handled before.
The validateComponent function is copied from QUrlPrivate::parse, with
the added modification that it now needs to check the gen-delims for
the userinfo.
Change-Id: I055167b977199fa86b56a3a7259a7445585129c6
Reviewed-by: David Faure (KDE) <faure@kde.org>
this is much more elegant than the so far propagated !isEmpty(QT.foo.name).
also replace feature-specific tests (no-gui and no-widgets) and the
obsolete contains(QT_CONFIG, foo) syntax.
Change-Id: Ia4b3c8febcabf9eeca67b1f9173a523820b1038b
Reviewed-by: Sergio Ahumada <sergio.ahumada@digia.com>
Reviewed-by: Tasuku Suzuki <stasuku@gmail.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
...and remove the outdated QUnicodeTables::Script enum.
QFontEngineData now has one extra slot that never used
(engines[QChar::Script_Inherited]). engines[QChar::Script_Unknown],
if accessed, would be set with a Box engine instance, and could be used
as a minor optimization some time later.
In order to preserve the existing behavior, we map all scripts up to Latin to Common.
Change-Id: Ide4182a0f8447b4bf25713ecc3fe8097b8fed040
Reviewed-by: Pierre Rossi <pierre.rossi@gmail.com>
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
gcc is apparently tolerant against this abuse. icc is not.
Task-number: QTBUG-28775
Change-Id: I872d32177562f076ca8aecd263bc4bb3c7e8edc0
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
If the font has a CFF table, GDI will not label it as
TMPF_TRUETYPE, however, we can still use GetFontData to get
the SFNT tables. This is required to get the maxp table which
contains the glyph count, which is required to use the font
with the distance-field renderer.
Task-number: QTBUG-28746
Change-Id: I3ca1e3d96ea53c453e6fa422b33d1f1f5050a82c
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Especially so that subclasses remember to emit reset.
Change-Id: Iadcae3fc5fe72584465d4134f385ed0a1d77bfcd
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
QDoc supports \relates in the context of a function that
relates to an existing class or a namespace, but not in the context
of a class. We can use \sa to list the related classes or namespaces
for a class instead.
This change ensures that QDoc generates documentation for QMessageLogger
and QMessageLogContext classes.
Task-number: QTBUG-28468
Change-Id: I2242ab730fe5e3acf54b6fa65774e751d2daa7a4
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
Reviewed-by: Martin Smith <martin.smith@digia.com>
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
Explicitly delete animations, and remove the check for stopped state
as that is already done by QAbstractAnimation::stop() and we want to
delete the animation regardless of the current state.
Task-number: QTBUG-28506
Change-Id: I3e34316e5077a8627ff5e6d3babd1873bbbaa774
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
...where the values are not aliased to Common script.
The old QUnicodeTables::Script enum was retained for compatibility reasons
until Qt internals are updated to use QChar::script().
Using QChar::Script instead of QUnicodeTables::Script would improve both
the text analysis (itemization, boundary finding) and the text shaping quality.
This also a required step for switching to Hurfbuzz-NG.
/* This adds 6668 more .rodata bytes */
Change-Id: I5aa3d12c550528d0052542436990f8d0779ea8e5
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
The MinGW-w64 32-bit .def files shouldn't be used with MinGW-w64 64-bit.
Rename .def files from <library>_mingw.def to <library>_mingw32.def and
only use them if QT_ARCH is i386.
Change-Id: I5dc2a87f7d2ed59bf954faf2983d0787ed9e00e9
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
Reviewed-by: Patrick von Reth <vonreth@kde.org>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Generalize the check for gui by checking for needs_qpa_plugin
CONFIG value instead, which gui adds to MODULE_CONFIG.
Task-number: QTBUG-28215
Change-Id: I5834a3f81e5c3868ee1a3fa405ebc6410db1f900
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
When only PG_VERSION was available for getting the client driver version
for PostgreSQL it meant that it would not detect the client version and
subsequently would not set the connection up correctly as a result.
This fixes the blob test already in tst_qsqlquery.
Change-Id: Ie2176a43b6be9c0e835498fca5aea129f0cc8fc6
Reviewed-by: Mark Brand <mabrand@mabrand.nl>
The location of the mkspecs directory comes from the archdatadir, which
distros will all set.
Change-Id: I20dbdce76db13dbd37eec065009e215f98985907
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
If the pixmap passed in is null then we should not try to create a
NSImage for it, so we just return 0 instead.
Change-Id: Idae7ba304c97878e0aa8ae1eead5f4bb644a73de
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
Terms fixing. Changes apply to Qt5 as well as Qt4.
Change-Id: Ibb31ab0d68c62f3feb63722dd967932c2543fa37
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
This should also remain working for previous connman
Change-Id: I5f0a1947f11948b202391ba0c256067faa01ce6d
Reviewed-by: Lorn Potter <lorn.potter@jollamobile.com>
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
It needs the QTest namespace and QTest::qWait to be declared.
Change-Id: I1c72a13231603a61221cf1b7ad9234aa4cba6d60
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
qatomic.h includes qbasicatomic.h, so break the cyclic inclusion
problem.
Change-Id: If72bacbcfa36993336786f31e8980fbd43df8bdc
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Some implementations seem to not have the gtk_adjustment_configure
function implemented so we check for this so that there is no problem
when it tries to use it.
Task-number: QTBUG-23569
QTBUG-25760
Change-Id: I777ce09268f86907f3da3cede408c9a41be566cf
Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
Reviewed-by: Karim Pinter <karim.pinter@digia.com>
qt_mac_get_scaleFactor() uses a deprecated function, but as this
function is no longer needed internally anyway, just remove it.
Task-number: QTBUG-28574
Change-Id: I4e3cd2383ecc56aa6f9e3931a1806c62b1cedeb5
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
MinGW-w64 32-bit requires the functions exported in the .def file
to be decorated.
Change-Id: I174a92829706a9fb6b0007b2c057300bd69e6d9e
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
The updates for focus/selection in QTreeView
were still adding +1 as it was required in Qt 4.
Task-number: QTBUG-28174
Change-Id: Ib9fea7e20d431a0ef0db18494e7bdda06a0646b0
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
The long int type is incorrect for Windows 64-bit as LLP64 is used
there.
Change-Id: If4ccf49d6bb0cd7ba4ff2997cebfdbe5e7e9711c
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
On X11, the X resource system can override the physical DPI of
the screen for resolving font sizes etc. Correctly load the
setting and adjust the logicalDpi() accordingly.
Change-Id: Id60d03d1d214fb99e9de17a65976abd170bb7cca
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
According to the comments of selectRow and selectColumn, the expected
behaviour of this method was to select a row or a column and unselect
any cell that were previously selected. However the actual behavior
was to select only one cell and not deselect any cell.
Moreover, according to the specification there's no simple way of
selecting multiple rows or columns as when one of the methods is
called for selecting one row or column the others should be
unselected.
The specification was changed not to require the rest of the cells
to be deselected, although they might be deselected if the
selectionMode requires that in order for the new row/column to be
selected.
The implementation of these methods was changed in QAccessibleTable
and QAccessibleTree to select the whole row/column and take into
acount selectionMode and selectionBehavior.
tst_qaccessibility.cpp was modified to test the new behaviour of
the methods.
Change-Id: I29635d014792169302435e81704e02c16f951238
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
Especially with the newer QML accessibility we
can end up with events for objects that cannot
instantiate a QAccessibleInterface.
Let's not crash in that case.
Change-Id: Ie5d38315f32d30540eb4adcb74a7b3bfa667f03f
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
Symbols in dlldata.c conflict with symbols defined in ActiveQt
when linking Windows platform plugin statically into same binary.
Fixed by not building dlldata.c when building static library.
Task-number: QTBUG-28645
Change-Id: Ibc5928124ad6e1fde2a1fa761ada4f345eb65a20
Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
qtypeinfo.h is included by qglobal.h, so it needs to include that before
the #ifdef. Otherwise, we get a circular dependency problem with
qflags.h:
./QtCore/../../src/corelib/global/qflags.h:60:27: error: "Q_PRIMITIVE_TYPE" has not been declared
Also, take the opportunity to fix the other headers that are included
from qglobal.h to avoid similar problems in the future.
Change-Id: I99a56f42775c24bdcc796995b06509c1ca0cb849
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
(cherry picked from commit 797f3c0a01)
Reviewed-by: Sergio Ahumada <sergio.ahumada@digia.com>
When the print panel was closed then it would clean up the printinfo
and if it was requested for the same QPrinter then it would not be
recreated in time. Therefore we check if it is initalized and if not
we re-initalize it.
Task-number: QTBUG-28657
Change-Id: I7dc9011b80e03cfa3eae8fee2fcf6cc8021a8566
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
(cherry picked from commit dde9569d38)
Reviewed-by: Sergio Ahumada <sergio.ahumada@digia.com>
- The qdoc pages were related to qtcore and they were
referring to snippets inside the qtcore module boundary.
- Fixed the exampledirs for QtCore to include the examples
that are referred by the \snippet instances in the
moved qdoc pages work.
Change-Id: Ibb6dbb131920ea8692a203f6145863e5012e4602
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
(cherry picked from commit 69e6029411)
Reviewed-by: Sergio Ahumada <sergio.ahumada@digia.com>
qtypeinfo.h is included by qglobal.h, so it needs to include that before
the #ifdef. Otherwise, we get a circular dependency problem with
qflags.h:
./QtCore/../../src/corelib/global/qflags.h:60:27: error: "Q_PRIMITIVE_TYPE" has not been declared
Also, take the opportunity to fix the other headers that are included
from qglobal.h to avoid similar problems in the future.
Change-Id: I99a56f42775c24bdcc796995b06509c1ca0cb849
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
The keyboard mode is shared between applications.
You can reproduce this bug by clicking on a spin box,
it will open a number only keyboard, then close the application
and run an application that shows a text edit: a number only
keyboard will appear.
PPS keyboard already does this.
Change-Id: Ia22e96ce13ad0cec1fd3b43fcdf4d03abfc25134
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
When the print panel was closed then it would clean up the printinfo
and if it was requested for the same QPrinter then it would not be
recreated in time. Therefore we check if it is initalized and if not
we re-initalize it.
Task-number: QTBUG-28657
Change-Id: I7dc9011b80e03cfa3eae8fee2fcf6cc8021a8566
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
When disconnect()ing through a QMetaObject::Connection, if the
QObjectPrivate::Connection contains a slot object, deref it, so
that it will be destroyed before the next run of cleanConnectionList.
Previously, a copy of the functor passed to connect() was kept until
QObjectPrivate::cleanConnectionLists was called (by adding a new signal,
or the sender was destroyed), even after a successful call to
disconnect(). That is, we were keeping that copy allocated without
any good reason.
Change-Id: Ie6074ea797df1611cb995dec07c5b5a742360833
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
The QObjectPrivate::Connection refcount was not decreased
when disconnect()ing, therefore it was kept alive by the
owning QMetaObject::Connection object.
This removes a leak in case the QMetaObject::Connection
survives the sender object, after a successful disconnect().
Change-Id: Ie2ea59b269a0e589ae23c1457df7533be77c0797
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
QGraphicsItem::setActive() is by design not guarded against calls that
do not change the current activation state of the item (e.g., calling
setActive(true) on an active item or calling setActive(false) on an
inactive item). This is to ensure that it's possible to set explicit
activation state on items, either before they are added to a scene, or
while the scene itself is inactive.
Before this fix, calling setActive(false) on a panel item that is not
currently active would by accident clear activation from any other
panel that might have focus. After this fix, activation is only cleared
if the item setActive() was called on itself is the active panel, or
is the panel that will regain activation once the scene is reactivated.
Task-number: QTBUG-28544
Change-Id: Ic4752f1e4400f9a0660bc968834747610212bb52
Reviewed-by: Bjørn Erik Nilsen <post@bjoernen.com>
Reviewed-by: Andreas Aardal Hanssen <andreas@hanssen.name>
Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
This signal is emitted by QGraphicsScene whenever focus changes in the
scene (i.e., when an item gains or loses input focus, or when focus
passes from one item to another). You can connect to this signal if you
need to keep track of when other items gain input focus. It is
particularily useful for implementing virtual keyboards, input methods,
and cursor items.
Task-number: QTBUG-10570
Change-Id: I9cbbd9a2d15d6f568e1597c2c33ec049eb70f793
Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
qt is already added by spec_pre.prf, warn_on and depend_includepath by
default_pre.prf.
Change-Id: Ic00e0ba496d698ed9659c476f2ca99fc0f86a093
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
It appears this method has been copied from ActiveQt. When building
Qt statically, linking Windows platform plugin into any application
that also uses ActiveQt will cause error about duplicate symbol.
Renamed QVariantToVARIANT to QVariant2VARIANT to avoid conflicts.
Renaming is done here rather than ActiveQt, as that symbol is in
exported header in ActiveQt.
Task-number: QTBUG-28645
Change-Id: Id0d7fc51d4455b463515e7c6178798ad61217c35
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
Makes tst_qgraphicsitem::tst_focusProxyDeletion not crash.
valgrind reported the error when running tst_qgraphicsitem. The crash
was very real; when deleting an item that has another item as a focus
proxy, the proxy still had a reference to the deleted item's focusProxy
pointer. I'm not a huge fan of whitebox testing but thought this crash
justifies a modification of the test to make it fail, instead of just
passing silently with a warning only given by valgrind and friends.
FTR the reason the test doesn't crash hard is that the memory is freed
but not reused within the scope of the test. So the access to the
pointer d_ptr->focusProxy succeeds, it just accesses memory that might
as well have been reclaimed. But this is quite undefined...
Task-number: QTBUG-28321
Change-Id: I2624631f5e5c2a8aa8bd4efe1fc128eba6c61f56
Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
Building ANGLE with MinGW results in too many symbols being exported in
the DLLs. Always use DEF_FILE on Windows to limit the symbols exported
and eliminate symbol conflicts when libEGL/libGLESv2 is linked by other
libraries that include their own version of ANGLE (e.g. QtWebKit).
Change-Id: I7bb1f90d9996eabf30095323e9399efa1c23e3a1
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
This changes behavior, but I would argue it's a good change. If you
create a panel and activate it (e.g., by simply showing it or reparenting
it onto an already-visible item), you expect the panel to gain focus /
which is sort of the whole point of activating it. Prior to this change,
you had to have explicitly called setFocus() on one of the panel's
children, which would give that item subfocus, for that item to auto-
gain focus when the panel was activated. This change makes it more
automatic. If the panel itself or any of the widgets in its focus chain
can gain focus, they will gain focus when the panel is activated.
So the new logic is - if the panel already has a focus item, so if
someone explicitly set subfocus on an item before the panel is shown,
that item gets focus. Otherwise, if the panel itself can gain focus
(e.g., someone makes a line edit / text edit panel), it gains focus
when activated. Otherwise, we search the focus chain until we find
the first item that can gain focus. This last case is the file dialog
case, where the dialog itself can't gain focus but typically the
first item in the focus chain is the primary focus widget, such as
the search field or the directory list view.
The change also fixes this for the first Tab. If you clear focus on
a panel, the user expects to be able to press Tab to regain focus.
Prior to this change that didn't happen. Now, the panel or the first
in the focus chain that can get focus gets focus on first tab.
Task-number: QTBUG-28194
Change-Id: Id7ec1741d0d5eb4ea845469909c8d684e14017f1
Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
Check if the accessibility element is valid before
calling childAt.
Change-Id: Id63c11f18b262c3c3a839db8ee2d11c0d7adc822
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
This makes it possible to use accessibility with
QQuickWindow.
Change-Id: I5fccd5f25021c4953b03e146705f48a198dbaaa7
Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
Modified AtSpiAdaptor::notify to handle enabling and disabling widgets.
Change-Id: I9a23f74d891aaf123d7fc094bdf63e384e1d65fe
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
Adding a new private method to simplify notifying that the state has
changed as it is something that is frequently done in AtSpiAdaptor::notify
Change-Id: Idf21715b5d20212adb301ae9bca05f1edfc19946
Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
For moc, rcc and uic, then it's friendly for tools like ccache.
ccache is using md5 to check file modification, but the different
timestamp info will cause different md5 for same meaningful
contents, it will disabled ccache.
Updated the autotest for uic and rcc.
Task-number: QTBUG-26589
Change-Id: I9f1dcf6cd826ad9603af6e183757bcd748c32bd1
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
The first branch is required to MSVC. The bitfield isn't large enough to
represent all possible enum values of Virtualness for MSVC.
In addition, using bitfield is a premature optimisation in this case.
So remove them.
Change-Id: I4c5f85271d2bca1411426e6a321a795a7e783aff
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
QDate::toString() should explain QDate::shortDayName() and
QDate::shortMonthName() will be localized name using the
default locale from the system.
Task-number: QTBUG-28522
Change-Id: I027a72773b5772bf00344f14a4b522e41c9e63db
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
On Mac it was not starting the dialog with the specified directory when
one was present. If a filename was given as well then it would start up
fine.
Task-number: QTBUG-28161
Change-Id: I7cce0d065dd57e6433ce62380d4263d6e20b6e7c
Reviewed-by: Liang Qi <liang.qi@digia.com>
The enum was already deprecated but the documentation still listed it
so now it is correctly obsoleted.
Change-Id: I9d64fe58a5e70de7161928da2d09b4532d450274
Reviewed-by: Liang Qi <liang.qi@digia.com>
We need to do bounds comparison on the actual offset we're going to use
with _mm_load_si128 to read 16 bytes from memory (even though we won't
use the trailing bytes in the end).
Task-number: QTBUG-28324
Change-Id: Id0d6094da796ca67338d8ad225fa6b2f309bbe6e
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
This only effects compilation with DEBUG_QSHORTCUTMAP.
Change-Id: I184e644f2165049336cee8a6ac63a3301cf4c849
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
- The qdoc pages were related to qtcore and they were
referring to snippets inside the qtcore module boundary.
- Fixed the exampledirs for QtCore to include the examples
that are referred by the \snippet instances in the
moved qdoc pages work.
Change-Id: Ibb6dbb131920ea8692a203f6145863e5012e4602
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
Delete the interface if it's not returned.
Change-Id: Ia1e1f94d14584ab3af1b89a0baac5d343ffdd1f4
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
Autorelease ("delete later") the created attribute
name array.
Change-Id: I2d7af9eb1fd899f04c8acb90204600a2dd43fa20
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
Fix off-by-one error. QAccessibleInterface::child()
is 0-based, start the iteration at childCount() - 1.
Change-Id: I0c841b692adab0aae4e8ac44c7d308cd7a176ac8
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
The function is massively ineffective on deep hierarchies
and not strictly needed. (It's supposed to filter out
"Ignored" children - VoiceOver will do that anyway based
on accessibilityIsIgnored())
Change-Id: I9a74b5f5e9b7880e0d46d5330f7192472eac7a36
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
Corrected in qkeysequence.cpp
Link from external-sites not working
So, entered hardcoded url.
Task-number: QTBUG-27512
Change-Id: I5b8d25d2b1f4f4fb0d57d2306de7f1b7c3dc40e3
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
Font styleName support was disconnected since Qt switched to QPA
fontdatabase. Now add the code from Qt 4.8 back to enable this in
QPA.
Change-Id: Iab2cbfd5468f87542183348c2123ca4b2c270692
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
(cherry picked from commit fa7661d8b2)
Use localized family name and style name when selecting font with
non-English locale
Task-number: QTBUG-27415
Change-Id: Ie81507ed011fc096e0f5edad146e97c392e86494
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
(cherry picked from commit 3c09f6bc9a)
Due to preparation for GTK3 support, QGtkStyle::drawXxx() no longer
creates a local instance of QGtkPainter upon every call, but
QGtkStylePrivate::gtkPainter() will (in the future) dynamically choose
between QGtk[2|3]Painter. The same painter instance is now re-used
between the calls, but wasn't properly reseted between.
Task-number: QTBUG-28557
Change-Id: I29be318dbb54d97ed23dfb88d406a3a833db4369
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
(cherry picked from commit 0b0b74a563)
Reviewed-by: Sergio Ahumada <sergio.ahumada@digia.com>
Font styleName support was disconnected since Qt switched to QPA
fontdatabase. Now add the code from Qt 4.8 back to enable this in
QPA.
Change-Id: Iab2cbfd5468f87542183348c2123ca4b2c270692
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
Use localized family name and style name when selecting font with
non-English locale
Task-number: QTBUG-27415
Change-Id: Ie81507ed011fc096e0f5edad146e97c392e86494
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
QGLTextureCache::remove(qint64 key) locks the QGLContextGroupList mutex
before removing a texture. Removing the texture might cause the
QGLShareContextScope construct to be invoked, which calls
QGLContext::currentContext(), which will wrap a current QOpenGLContext
in a newly created QGLContext. That also triggers the creation of a
QGLContextGroup object, which will register itself with the
QGLContextGroupList, an operation that again will lock the
QGLContextGroupList mutex. To prevent this from deadlocking we make the
mutex recursive. The whole QGLShareContextScope approach is really
broken and should be replaced, but for now it's what we have in QtOpenGL
(QtGui has the replacement QOpenGLSharedResource).
Change-Id: Id1ff69035af3f31b690892c03f74748d052a278b
Reviewed-by: Zeno Albisser <zeno.albisser@digia.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
The QX11Info class needs this.
This required adding the missing nativeResourceFunctionForScreen
in QPlatformNativeInterface.
Change-Id: I2c6e91c7f122f3ecdf769a177deafd2aa3896e2f
Reviewed-by: Richard J. Moore <rich@kde.org>
Reviewed-by: Alberto Mardegan <mardy@users.sourceforge.net>
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
This increases consistency a lot: all windows and dialogs from a Qt
application will show the app display name in the caption, on Windows and X11.
This helps identifying which app a dialog belongs to, which is especially
useful when the dialog is very generic and shows up unexpectedly.
For compatibility reasons, the app name is added to the caption only
if setApplicationDisplayName() was called -- or if the caption would be
completely empty. The standard Qt4 case (setWindowTitle + no display name)
is unchanged.
Change-Id: Ib284c62c1f4c0bc923e5bc2d10247d95e9aa76c1
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
translateMouseButtons() was only able to correctly handle the left,
right, and mid mouse buttons. Thus, if any buttons outside of those were
pressed, the motion notify event would basically unset the mouse button
mask, leading to a release event being sent instead. Later on, when the
actual release event arrives, that button gets xor'ed into the empty
button mask generating another press, and later another motion event
will generate a release. In the end that means two press-release
sequences are sent for any extra mouse buttons.
Instead of getting the mask of the buttons currently being pressed from
the event, we need to keep track of the mask ourselves.
Task-number: QTBUG-28561
Change-Id: Iaa67e784a13d792deef8fc29dbd5456a5471a861
Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
Reviewed-by: Rick Stockton <rickstockton@reno-computerhelp.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
We also need to detach() the taken value in case the compaction triggers and
modifies the underlaying data.
Change-Id: Idcdeba4236b8e208d107d41be2decbdfc5721300
Reviewed-by: Bjørn Erik Nilsen <post@bjoernen.com>
Reviewed-by: Denis Dzyubenko <denis@ddenis.info>
Change-Id: I6565bda336c152dfdc0cb49f168d90bdceacb2b1
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
Due to preparation for GTK3 support, QGtkStyle::drawXxx() no longer
creates a local instance of QGtkPainter upon every call, but
QGtkStylePrivate::gtkPainter() will (in the future) dynamically choose
between QGtk[2|3]Painter. The same painter instance is now re-used
between the calls, but wasn't properly reseted between.
Task-number: QTBUG-28557
Change-Id: I29be318dbb54d97ed23dfb88d406a3a833db4369
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
It has been available in user32.dll since
Windows2000/Windows Server 2003
Change-Id: Icbfc63e944bc9e8098e3b01fd57dc7aa45bcd345
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
Implementation of QQnxCursor, a QPlatformCursor subclass. Due to the lack of a
proper cursor API from the underlying OS, this class only caches the current
cursor position to make sure that the QCursor class works properly.
Change-Id: I55031184a009f3b26ad4af36b1975204e8fa80dc
Reviewed-by: Sérgio Martins <sergio.martins.qnx@kdab.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Nicolas Arnaud-Cormos <nicolas@kdab.com>
Pass opacity from the QWidget to QWindow and to the platform
windows.
Task-number: QTBUG-28477
Change-Id: If5a85d9183bd1ca33dac2052936ecd1e6c0b5f6c
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
When clicking at the bottom-right corner of a menu in a menu
bar, it appears at the wrong position. Add test and stabilize
RTL-tests by making sure the layout direction is cleared should
they fail.
Task-number: QTBUG-28031
Task-number: QTBUG-2596
Change-Id: Ibc5ae916388753908e9f3ee98e8859faaa0c8723
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
The stepSize property was missing in Qt 4 and is
a sensible addition to the value interface.
Change-Id: I7571800d50ee7e4194c09c4db40300809a1ce45a
Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
The file qwindowsfontenginedirectwrite.cpp uses the Win32 API function
GetUserDefaultLocaleName which requires _WIN32_WINNT to be set to 0x0600
as it only became available in Windows Vista
Change-Id: I704705d3fc729bb0167121de991d01c957e1e7e4
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
This was introduced in patch 8534bb3d, then overwritten by c85ca8d1.
Change-Id: I6b7489e2b2f3311822c282f50c74bd68c787229d
Reviewed-by: hjk <qthjk@ovi.com>
If we don't do this, we can have binary compatibility issues later.
For example https://codereview.qt-project.org/#change,41700 will change
the behavior of setWidth and setHeight to call setSize instead of
setGeometry, because we don't want changing the height to also set
the position of a window; if x and y are left uninitialized it needs
to remember that fact. But if setWidth is left as an inline method,
calling setGeometry, then an application which was built with 5.0
would behave differently than an application built with 5.1, even if
Qt is upgraded after the application was built. To generalize,
setters should never be inlined.
Change-Id: I1ec42cb61a45fe541b3f3bb99d1b1ca24ad2a517
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
\target sets up a unique target that should be
accessible with \l across module boundaries.
This was not working across module boundaries.
Now it has been fixed, and it is one way of
handling the problem described in the referenced
bug report.
Task-number: QTBUG-28244
Change-Id: I541f409b998f84b2b8dcf66751762cf07f9f108b
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
Ported the rather trivial implementation from Qt 4.
Task-number: QTBUG-28477
Change-Id: I44e14a3c150af43c6b9b880242b655fe06084fd7
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
QSpanData did not properly check that whether the matrix is an affine
transformation or not. Therefore, qt paint engine chose the wrong
algorithm for drawing in case of a perpective matrix.
Change-Id: If0523bd45e86679a08874713da3fbe33a9852551
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
In src/3rdparty/xcb/xcb-util-image/xcb_image.c, the includes require all
this directories, or otherwise compiliation fails when -qt-xcb is used
in the configure step.
Change-Id: I8566bea662eced144cb9a2b1ce1dbfdb65654dea
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
We ask grayscale or mono bitmaps from FreeType but in some cases treat
the output as ARGB without conversion. This surfaces using QGLWidget as
a viewport to QDeclarative content. The offending glyphs are then
generated through QTextureGlyphCache::textureMapForGlyph. This adds a
fix for converting to the expected ARGB32 data.
Change-Id: Ia219582ebd76b7e4e9379111a42312b4d97718de
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
Loading both the debug and release version of the cocoa
plugins causes the objective-c runtime to print "duplicate
class definitions" warnings.
Fix this by directing the plugin loader to only load
one of the cocoa plugins if both are available. Implement
this as a special case directly in QFactoryLoader.
Define QT_NO_DEBUG_PLUGIN_CHECK to allow mixing
debug and release builds.
Task-number: QTBUG-28155
Change-Id: Ie1927b219cc501a821f91b7e4b56f0589e0acbf5
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
For two reasons: 1) those operators are gone and 2) the ones that remain
are atomic.
Task-number: QTBUG-28532
Task-number: QTBUG-24627
Change-Id: I1e9d1b076d923546c1ee3d45f312066590f97416
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Make tst_qquickview::resizemodeitem pass.
Returning on equal geometry breaks for non-top-level
windows.
Change-Id: I3b361655e25b6cf2d5e29410dc1f3567ab8f54d9
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
The crash could happen if a QWidget in the UI got deleted, and
the AT client later tried to access the widget through the cache
(qAccessibleRecentSentEvents()).
Solution: Use a QPointer as a guard.
Task-number: QTBUG-26187
Change-Id: I1aa716766626cf171757e76ba255a6d5ae4fd854
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
Task-number: QTBUG-28389
Task-number: QTBUG-28380
Change-Id: I91edd9c8aba60118d722bbf9ad5b85f994398823
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
QWindowsStyle considers QStyle::State_On as pressed, whereas
QMacStyle uses the same state for transient scrollbars. Thus,
to indicate transient scrollbars, QScrollBar::initStyleOption()
must set QStyle::State_On only when the current style actually
supports transient scrollbars.
Task-number: QTBUG-28523
Change-Id: I94d207b1e8c5c4bd6f4b99e8b4f1661197fbe9dd
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
Commit 320b16110f changed the arguments
of swprintf to be compliant with latest MinGW-w64 headers: The headers now
excludes the non-standard swprintf(wchar*t,wchar_t*,...) version for C++11.
However, the swprintf(wchar_t*,size_t,wchar_t*,...) version is actually
not supported by e.g. stock Mingw-32 from mingw.org.
Instead, use _snwprintf(wchar_t*,size_t,wchar_t*,...), which both
MSVC, and all MinGW versions should support.
Task-number: QTBUG-28520
Change-Id: Icadd11773a25143e46a72c898adfd1c324f9c468
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Since all gui applications already need some QPA plugin added,
we might as well add the default plugin and generate the code
to import the plugins automatically.
User can opt out from the automation by removing relevant
items from CONFIG variable: link_qpa_plugin or import_plugins.
Task-number: QTBUG-28131
Change-Id: Ic171c363464c099143374d3e39bcc28f6edf73d2
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
The code removed was in a if (d->control) block and therefore d->control
was always going to be true thus rendering the nested if invalid. The
case that this would account for is already handled in the else for the
parent if so this code is in effect not needed.
Change-Id: I799383e238560a8a8e3d7dc073d3b1ee74269f90
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
In SHA 51914375b6 the rubberband
selection was fixed, so it followed the scene-point on mousemove.
However wheelEvent could move the view - but avoid update of the
rubberband (that would not be updated until next mouse-move).
This patch fixes that (and generally improves rubberband behavior)
since QGraphicsViewPrivate::mouseMoveEventHandler is called by
replayLastMouseEvent, which is called from various places,
where we need to update the rubberband (e.g scrollContentsBy).
Change-Id: I1b78c27edaaecea797a2319086d7a11d437d2bd3
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
This means the xcb plugin library will be named libqxcb.so instead of
libxcb.so, which doesn't clash with the system's libxcb.so. We need to
consistently apply this on all platforms for static linking to work.
Change-Id: I1640a7cae7b9846bbe62b19ab1c2c5bad7d02b4c
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
This patch moves the rubberband-handling from QGraphicsView::mouseMoveEvent
to QGraphicsViewPrivate::updateRubberBand. This function is then
called from QGraphicsView::mouseMoveEvent.
I have removed some d-> and added some q-> but beside that
nothing is changed in the code.
Change-Id: Iab70c55635c43733e0e02bb70e2bb03b90bf62f0
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
The QPointF ep is not modified. There is no reason it shouldn't
be const.
Change-Id: I41fb8f9ae5296a7a40f7eb8be13fc14d56915e3f
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Even though the code before theoretic is ok, we really shouldn't
have a reference since mapFromScene returns a QPointF and not a
const QPointF&.
Change-Id: I5ea8fd238bdbdd21fb1e3b6b5f280d45e3bc43ef
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
There are two ways to register a type: using Q_DECLARE_METATYPE(T) and
using qRegisterMetaType<T>("T"). Doing one thing in one translation
unit and another thing in another TU constitutes an ODR violation,
because the value of QMetaTypeId<T>::Defined will differ in the two
TUs.
By adding the information whether a type was declared with
Q_DECLARE_METATYPE to the typeFlags(), such a use will trigger
the existing binary-incompatibility failure that checks for
equality of the incoming type flags with the stored ones (if any).
I had to encode the type as a defaulted function argument in order
to avoid the linker merging instantiations of the function templates
and therefore rendering the detection moot.
Change-Id: I82017caf300458b411cc8ac2f6653536fac64117
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Add a missing 's' for plural form for signals. This fixes the linking
to Signals topic in class references.
Task-number: QTBUG-28450
Change-Id: Ic666e608b4b5b40b1f886ea581e54227e1a94678
Reviewed-by: Martin Smith <martin.smith@digia.com>
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
Commit 0696071316 moved away from QDom but
also lost the ability to fill the introspection field of the created
QDBusIntrospection::Interface instances. This commit now generate the
string again as we proceed with the QXmlStreamReader based parsing.
Task-number: QTBUG-26668
Change-Id: I8f406e1f4e9d3e667a8557db69da36cac369ba4f
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
With the change cff46983a, prepared queries can now store a
named paramater to be used more than once.
When using ?, thus positional binding, there is no named
parameter, thus there is no need to store it.
When prepare is called from a query with ?, it currently
causes an error when the feature QSqlDriver::NamedPlaceholders
is true. Because holders values are called while holders is
actually empty.
QSqlDriver::NamedPlaceholders is true for QOCI plugin only
but the problem is independant of the plugin used.
Adding a test case with a test driver to make the test runnable
without Oracle installed.
Change-Id: I6d7491f7e09a7b62d2d4d216b40fedd67e927e27
Reviewed-by: Matt Newell <newellm@blur.com>
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
Reviewed-by: Mark Brand <mabrand@mabrand.nl>
OpenSSL changed the layout of X509_STORE_CTX between 0.9 and 1.0
So we have to consider this struct as private implementation, and use
the access functions instead.
This bug would cause certificate verification problems if a different
version of openssl is loaded at runtime to the headers Qt was compiled
against.
Task-number: QTBUG-28343
Change-Id: I47fc24336f7d9c80f08f9c8ba6debc51a5591258
Reviewed-by: Richard J. Moore <rich@kde.org>
Configure will now generate QT_DEFAULT_QPA_PLUGIN qmake variable
to specify the default QPA plugin.
"CONFIG += qpa_default_plugin" statement in application .pro file
will add the default QPA plugin into QTPLUGINS.
"CONFIG += qpa_minimal_plugin" statement in application .pro file
will add the minimal QPA plugin into QTPLUGINS.
Task-number: QTBUG-28131
Change-Id: I12a241005f30b37467d783b50f0369b47e605e68
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
If parent is null, we now use qqnxintegration->primaryScreen()
This simplifies ctors of QQnxTheme and QQnxFileDialogHelper which now
receive a QQnxIntegration pointer instead of receiving a font database
and a bps event filter.
Change-Id: I3b1ed4d99f738b980a4f19a98618341a14e0c222
Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com>
Port Qt 4 implementation. Shortcuts such as shift-5
should now work.
Change-Id: I1d8c4c6c4a903142361996b558ee31c8549fcef6
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Set the CGImage format based on QImage::format().
Handle8-bit per component (A)RGB.
Change-Id: I041b0ee53d3943a0aaf9e813eb0a235c4de619dd
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
The default is a "source over", but we want to
completely replace the destination pixels. (Which
is slightly faster).
Change-Id: I4916765258a2236f70f58a8e20b06f80739183c1
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
We want the Qt backing store to be in the device color
space by default. This will avoid colour space conversions
when blitting it to screen, at the cost of a potential
loss in color accuracy.
As it turns out, CGColorSpaceCreateDeviceRGB no longer
crates a device color space but rather a generic color
space. (Since 10.4). Create the color space with a system
profile instead.
Accurate color representation needs to be supported
at some point, but this fast path should be the
default.
Change-Id: I7ebb77b36f81f66119d8c2ef464723401ec1d1e8
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
Ideally this should not be required since NSWindow
should resize the content view automatically. However,
in the case of modal QDialogs this does not happen.
Add call to updateGeometry in windowDidResize as a
workaround, and remove code which called QNSView::setFrameSize
with the current size.
This will cause duplicate handleGeometryChange calls
in the non-qdialog case, add a test to see if the geometry
really has changed to prevent that.
Change-Id: I29bea23b2ab72f923aeadf8db8cb9131ae177a28
Reviewed-by: Liang Qi <liang.qi@digia.com>
Add handling of the focus chain to QGraphicsItem::setFlags(), so that
the focus chain is repaired (panels pop out of the chain and non-panels
merge back in) when the ItemIsPanel flag is toggled. Add handling focus
chain to QGraphicsWidgetPrivate::fixFocusChainBeforeReparenting for
panels.
Before this fix, you must enable the ItemIsPanel flag before adding
the item as a child to a parent panel, and you lose focus when using
the tab key to focus around a panel after it has been reparented into
another panel.
Task-number: QTBUG-28187
Change-Id: I1d0d81a90697eaf715a8a337c8bf6c2159329e68
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Mostly straightforward, the a11y changes might look a bit drastic, but the
base class QAccessibleTextWidget was already disabled in this case, so we
have to obviously take out its sub-classes as well.
Change-Id: I682ace20d6938688ddb1da23c3463f3c025fab8e
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Tasuku Suzuki <stasuku@gmail.com>
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Nicolas Arnaud-Cormos <nicolas@kdab.com>
These macros were removed by 158f39ec78
Change-Id: I2aabef1dd2c9cb3949040c167a4e5cf1a9390ba6
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
There are no proper implementations of this API, and as it stands it
only acts to confuse anyone who stumbles across it. It will be better to
revisit the full cross platform orientation API story for 5.1.
Change-Id: Iff7054a32c6e5e4ad0cc0493a5e4ecc35a6ec4f3
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
http://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html
says: "If $XDG_RUNTIME_DIR is not set applications should fall back to a
replacement directory with similar capabilities and print a warning message."
Better warn that not all the guarantees of XDG_RUNTIME_DIR are available,
and push unixes who haven't done so yet, to set things up correctly.
Change-Id: Ie3998e8c1d14e4fdf8d58dfb2932f0ad708fba50
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
newer mingw-w64 headers do not support swprintf(wchar_t*,wchar_t*, ..)
any more.
Change-Id: I2fc1fb51ba8d5237149697f77a91abd6469ebb09
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Change da54c5e7c9bf7647664a3529a6db487dee94d331 in the qdoc
repository was made to the wrong version of this documentation.
This change just adds them in qtbase and fixes some of the snippets
which were still broken.
Change-Id: Ie9ba57b5a2d20a629aa5f0a492daa207d35b2053
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
The link to widget examples in QtCore was added
in 4519d810d1, which made
widget examples pop up twice in generated lists
(once for qtcore and once for qtwidgets documentation).
I'm not sure why it was originally added to that module, but
the snippets in the fridgemagnets example (which was the
example fixed in the commit) has been verified to still work.
Change-Id: I1b349f08349b5499929315d426224ba8638adc8e
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
the "export location" of the linguist tools was just bogus, and lconvert
was missing anyway. the two dbus tools and qdoc were missing, too.
generally, it seems useless to report the paths of some random tools -
instead, just report the install location of the host binaries and let
users figure out the complete paths themselves - this should be ok, as
we decided that distributors are not supposed to do tool renaming any
more.
for the binary path just use the final location, as the files won't be
used before installation anyway. this allows us removing the scary
generic prefix replace from the pc file installs.
and as a side effect this also fixes debug_and_release builds of core
and widgets by not loading various prf files prematurely and thereby
messing up the dir replacement magic.
Task-number: QTBUG-28286
Change-Id: I99de419301fc07fb923959db4bd5cab9072d1c31
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
They are completely unused in Qt, and are a potential source of
compilation errors in application code.
Change-Id: I6dfe2891f3b2365a30048f99c31e8e3a2425e62b
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Andreas Holzammer <andreas.holzammer@kdab.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Make the same layout of the new graphics view example documentation
as we had before (except by using annotatedlist instead of hardcoding
the links). I've also moved four examples from qtdoc to qtbase so
that they can be included in this documentation.
Change-Id: Ic2202ade119cadd98d036f1bd77e91dae49b5677
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
qt_lib_gui.pri would add an unneeded -lGL, causing the build to fail
on systems with no GL libraries.
Change-Id: I3a49418e1393642e9d97999b79741cc2144a99af
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
This configuration variable now assumes its values,
if relative, are relative to the config file that
contains the extraimages variable.
Task-number: QTBUG-28307
Change-Id: I9b34d1f456b31e36ac77401b957b68cd10590376
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
The reason for this bug seems to be related to how we wait for
more events in the event dispatcher. We use the nextEventMatchingMask
function, which already in Qt4 showed to have problems when telling
it to not dequeue the event. The solution back then was to
tell it to dequeue the event, and instead repost in front again.
Why this was changed in Qt5 is uncertain (other than it being tempting)
but moving the same code back in will solve the bug.
Note that this bug might also stem from the fact that the run loop
sources we add in the event dispatcher fires before the application
is really ready to show modal dialogs. E.g refusing to execute a
modal dialog before NSAppDelegate applicationWillFinishLaunching
is called will also fix the problem. But this code change is to big
atm, and can easily introduce other unforeseen regressions.
Task-number: QTBUG-28283
Change-Id: I07cd109568c2b9c782cf5120a9eb2ac71128cada
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
Once upon a time, the inherited functions, signals,
slots, etc were not listed on the class reference
page, but they were counted and a link to the base
class was provided for them, eg:
2 public functions inherited from QAbstractListModel
39 public functions inherited from QAbstractItemModel
31 public functions inherited from QObject
Somehow, this got broken, so that all these inherited
things were listed on the class reference page as if
they were members of the class. But they liunked to
the documentation in the base class.
This now works correctly again. It simnplifies the
class reference pages a lot.
Task-number: QTBUG-27496
Change-Id: If493da8cbf81634f1344b12094d9a06f8528e8e5
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Because the linguist examples are moved to qttools module, a link
to the hellotr example broke.
Change-Id: I2aeefc143578618396f5be38ed1d52afdd1f7436
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@digia.com>
The tst_qguiapplication creates and destroys multiple instances of
QGuiApplication. Since the minimal platform plugin doesn't report any
theme names, the platform_theme never gets set to 0 in init_platform,
and we end up trying to use or at least delete an already deleted
QPlatformTheme.
Change-Id: I1a41d55b0705c5531c019e60a7a96dac144bacb7
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Borrowed some code from QWindowsFontDatabase::createEngine that will
help ensure our fallback options are thorough enough to display say
chinese glyphs when using the QRawFont + QTextLayout combination that
QtWebKit relies on.
Task-number: QTWEBKIT-383
Change-Id: Ie4c1d5ef7d58588afaa436c89a9575ffd646c314
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
This makes QT_PLUGIN_PATH / QCoreApplication::libraryPaths() actually work,
as a search path for plugins, when apps look for a specific plugin by name.
To make it possible to write portable code (unlike the current QPluginLoader
unittest), let QPluginLoader figure out the extension, too.
Change-Id: I895d597d7cb05ded268734bc5f313f32d8d12cb9
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Since Mac's typically just have one button for their mice then pressing
Control then clicking the button should end it as a right mouse button
event.
Task-number: QTBUG-28350
Change-Id: Iabcac5b315c36cb8cd062c27d7b1506bc066f5bb
Reviewed-by: Liang Qi <liang.qi@digia.com>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
Move the main example overview and use the \group tag convention
to make the list update automatically.
Change-Id: Ib2cc8cf7def9a7f3dce6b7ed6d4958771cbdf5cd
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
we were already installing them into QtCore/private, so turn them into
proper private headers to start with. this cleans up our project files.
Change-Id: I0795f79e03b60b5854de9e4dc339e9b5a5e6fd87
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
The examples have been put under examples/widgets which is probably
not correct, since they don't even have gui. The correct fix would
probably be to move them into threads/, but that would risk a lot of
breakage, so the conservative work-around is just to use the correct
relative paths instead.
Change-Id: I36c3aa45056c8825d1991f345ad7d7799e2fa5fc
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
Fix the plugin compilation after cd34da5426
renamed the QWindow API.
Change-Id: I3ec4ce9ae2df9a66f6bf24a18277bc59c05d2e8e
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com>
A focus scope has effective focus if one of its children is the focus item,
clearFocus() should remove effective focus from an item and its children
not just from the focus item.
Task-number: QTBUG-28328
Change-Id: I62a292eff000151e50b2f5221e22f326a380fc3a
Reviewed-by: Martin Jones <martin.jones@jollamobile.com>
cosf seems to be defined in the cmath header
for Windows CE, so include it to fix the
issue of not finding the symbol cosf.
Change-Id: I7317668838912325d45be0d4087ae3055940d3cd
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Also change Trolltech for QtProject in other places
Task-number: QTBUG-23269
Change-Id: Ie4e344f23cab77c575562d18b481b3369ce30491
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
QStackedLayout doesn't have support for QLayout, only QWidget, so
the issue doesn't arise there.
Reported-by: Johannes Schaub
Task-number: QTBUG-27420
Change-Id: I71f8d10a036918c16d8f8c9197a2ec61cd76cf01
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Don't pass the pointer errorMessages_string - 1 to strcmp().
-1 marks the end should not be used for the pointer arithmetic
in get(const char *name)
Change-Id: I5ec239c63f074d104d441511294554f21fd6eccd
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
NSPanels have builtin support to work with modal sessions.
Task-number: QTBUG-28111
Change-Id: Ifeb6de03129e77aad744b3989931964c375cdbc7
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
On the one hand this doc reads like an overview, but didn't mention
Qt Quick; on the other, the gestures framework is questionable,
and in any case is solidly in the widgets module, not reusable for
Qt Quick. So, just added some comments at the end to make it clear
that Qt Quick takes a different approach. Also changed the relevant
links because the title has changed.
Change-Id: I66a0c0c106f496de26fb8947e90826ef39ccfddd
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
Bring Qt 5 on par with Qt 4, prepare for more comprehensive
support later on.
Introduce device independent pixels (dips), device pixels,
and devicePixelRatio. Add high-dpi support to QPainter,
QGLWidget, the cocoa platform plugin, mac and fusion styles.
Dips are similar to CSS pixels, Apple points and
Android density-independent pixels. Device pixels
are pixels in the backing store/physical pixels on screen.
devicePixelRatio is the ratio between them, which is
1.0 on standard displays and 2.0 on "retina" displays.
New API:
QImage::devicePixelRatio() and setDevicePixelRatio()
QPixmap::devicePixelRatio() and setDevicePixelRatio()
QWindow::devicePixelRatio()
QScreen::devicePixelRatio()
QGuiApplicaiton::devicePixelRatio()
Change-Id: If98c3ca9bfdf0e1bdbcf7574cd5b912c9ff63856
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
It's again possible for QWindows and widget windows to go into
fullscreen mode on the Mac.
Change-Id: I7b304a135838394ef0392f89be4f225f2949fad3
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
The accessibility implementation is unstable and
causes application crashes. Disable until it has
been stabilized.
Change-Id: Ic34361a0ad599c6f92df722499d274fe0655646b
Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
Add a 'd' to debug builds to allow both release and debug builds
to be used.
- Add .def-files for Debug
- Build all libraries debug/release
- Add description to README.qt
- Differentiate debug/release in qmake.conf.
Task-number: QTBUG-28196
Change-Id: Ib3081004a6ed2ad71d353244154684d2e0ebbc86
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
It is also used in Qt, mixing both is not recommended.
Add to default variables instead of overwriting them.
Change-Id: I895d44d5ea17f98dde9979eea6ff10b98180cc08
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
Commit 26db7de13d introduced the
modal session cleanup for Cocoa print dialog before running the
modal event loop for the dialog. Add the same cleanup for Cocoa
file, font and color dialog helpers.
Task-number: QTBUG-28146
Change-Id: Ifeb7c82566db35f0c6654be7762e9aaffbafb900
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
The call to glGetBooleanv(GL_FRAMEBUFFER_SRGB_CAPABLE_EXT) in
QGLExtensions::currentContextExtensions() was resulting in an invalid
enum on ES 2 systems. This was not being cleared and subsequentally
being interpreted as a failed texture upload in the textures example.
This enum doesn't exist on ES 2 so don't query it.
Change-Id: I84f9c4b0aa8b11b6036eeed1f9378d110d9ea69d
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
The standard resource files where renamed,
so fix the include for qmenu in Windows CE.
Change-Id: Id29dd8e1028cf438f4d483126a74994fc1e310d7
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
We should consider the scene-position when we are expanding
moving a rubberband. If the user does some auto-scroll
(Qt should support that itself, but that is another matter)
then the rubberband should not keep the (old) local position
to calculate the rubberband extension, but instead use the
scene-position that was actually clicked.
Change-Id: I04a2df6a1edae8b3587e1ac2104c7fe4ccfb7762
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
Reviewed-by: Andreas Aardal Hanssen <andreas@hanssen.name>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
The buffer count check should take place right after buffers are created. For
some reason, the buffer count value inside libscreen may become incosistent during
the course of the program.
Change-Id: Icbbaf4734eac5b0c5c95bdd93771899f9fcdb7db
Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com>
Reviewed-by: Nicolas Arnaud-Cormos <nicolas@kdab.com>
This change only affects the ANGLE_surface_d3d_texture_2d_share_handle
extension. The patch is necessary to have WebGL running in Qt/WebKit2.
If the share handle is reset, we are loosing the reference to the
EGLSurface and cannot actually reuse it in a different context anymore.
Change-Id: I0138432dd8ff60ea57e7e591cfa2f8db1d324f53
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
-matches the index file and output directory name
Change-Id: I9205a41355fcb3818a93035208c8e25c1c13dcff
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@digia.com>
Change-Id: I101310f6bd9bddf0ee9d06a81b9fef805313a015
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@digia.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
IMO we need to have a list of all the environment variables somewhere,
but this one is especially useful and wasn't documented at all.
Change-Id: I2de09194c5904a9a27066604840ec4be66574fb7
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
When QtBase is compiled with Exeptions it was incompatible
with the other modules compiled with QT_NO_EXCEPTIONS.
This resulted in a linker error with
ExceptionStore::throwPossibleExceptions, one time returning a const value
and the other time without it
Change-Id: I0e0dff61aceeec3cfde119b00ed15f3aa9f12659
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
I remove the widgets examples from the gui docs as they will
introduce broken duplicates (under doc/qtgui/...).
Change-Id: I54255ceaf4187477da3e82f6809be41fb98378a2
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
Certain QStyle code paths expect the style object to be set. This will
avoid problems when QGraphicsItems/Widgets utilize QStyle for drawing.
Even if things will not necessarily animate properly, such legacy code
won't cause a crash at least.
Change-Id: Ic77cb4ee9820d6c4ec92c7278fd87cb866f5a780
Reviewed-by: Andreas Aardal Hanssen <andreas@hanssen.name>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
We will take this opportunity to remove various QStyle specializations
from the public API in Qt5. This gives us much more freedom, for
example changing the inheritance hierarchy, pluginizing etc. without
worrying about BC.
=> Use QStyleFactory and/or QProxyStyle instead of creating an instance
or inheriting QWindowsStyle directly.
Change-Id: Ic17c7e425535bc5bb3a08620e9059bb0aea5185e
Reviewed-by: Andras Becsi <andras.becsi@digia.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Thomas Hartmann <Thomas.Hartmann@digia.com>
Configuration file's exampledirs variable already contains the
xml sub directory, snippet paths are relative to that
Change-Id: I627aebade224afdb7bd38f2b1a089a747e49fabf
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
../../../examples/xml/src
doesn't exist, it is
../../../examples/xml/doc/src
Change-Id: I08f0d6d91b2cea7bf313cbcdd50632835e21ae24
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
When moving QMdiSubWindows that contains native widgets (e.g QGLWidget)
inside a QMdiArea, garbage is drawn to the screen. The reason is
that since we use native QWindow backed widgets, QPA will assume
that it does not need to update/scroll the backingstore. But since the
backingstore can be shared among several windows, we need to do this to
ensure that exposed areas behind the moved QWindow will be updated.
Change-Id: I35f4d4069a73ab6cd6d610e25c176c752789a927
Task-number: QTBUG-26162
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
QWindow::screenDestroyed triggers an move of the window to the primary
screen. This causes the screen to be destroyed and shown again on the
new QScreen.
The issue is that QWindow::destroy() hides the window but create()
doesn't set it visible, and this ultimately causes any QWindow to be
automatically hidden when their QScreen is destroyed.
As stated in the comment, it could be the intended behavior that
windows aren't shown automatically on a remaining screen like when
using two screens not logically part of the same desktop. Once the
platform plugins have access to an API allowing them to adjust the
screens of their QWindow, this patch shouldn't be needed anymore.
Change-Id: I7628377c969f79f9eebb3deabaf0470542d68a9c
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
Since QtOpenGL/QGLContext is implemented in terms of
QtGui/QOpenGLContext which has stricter requirements about how it's
supposed to be used, we need to apply these requirements to QGLContext
as well.
This change adds QGLContext::moveToThread(QThread *) and documents it as
a necessity for making a context current on another thread.
Also introduces QGLPixelbuffer::context() to access the QGLContext of a
pixelbuffer, and made QGLWidget::context() return a non-const
QGLContext, since there's no good reason why it shouldn't, and it leads
to less const_cast clutter.
We could have introduced a backdoor in QOpenGLContext instead, making it
loosen its requirements, but that would have made it harder / impossible
to fully support threaded OpenGL in all the platforms.
Task-number: QTBUG-22560
Change-Id: Ibb6f65f342e7c963e80cc42ab5664c5f1cab30b0
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
If QGuiApplication has not been instantiated, this function would
crash. Change it to return NULL pointer instead.
Change-Id: Ia3d27019daa436d5243c9cce757a132d96aae112
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
... with \li in documentation lLists.
Change-Id: I51f5f4f848ec1b5a379647b32772668c24ff5992
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@digia.com>
Since Qt Widgets was moved from Addons to Essensials, take the
old description for the Qt Widgets addon and put it in the module.
Change-Id: If955747999d48fe09fff00a9c78e38ccbcf9a493
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
Make sure qdoc generates a correct overview for the module.
Change-Id: I6ea95638459201a0bb09f2e645173ade3a36f0e0
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
qdoc now finds an overview and the concurrent namespace.
Change-Id: I2cd15bc19091f53bd2bb98919e685d49d473dbec
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
Now things that are marked internal oe whose parent
is marked internal won't appear in annotated lists.
Task-number: QTBUG-28274
Change-Id: I14ea96e223640cad45e7e4249a3e1fc0642bd9c3
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
Also make it read less as a porting guide from Qt 3.
Change-Id: I78f93c643d236e13ba4ef76eeea1a98be4573def
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
We generally expect styleObject to be set during style
draw calls but this isn't always done, especially
legacy code outside Qt (for example in Qt creator).
Create a temporary stand-in QObject. This will disable
scroll bar animations.
Change-Id: I781967fe28f68f5952b368cd56be980b9e270ecd
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
NSOpenGLContext expexts an -update call whenever the
physical position of the view it draws to changes
on screen. Since we don't get geometry callbacks for such
views when the parent view moves, we need to
register a special notification for that case, and
tell Qt that we need to repaint the QWindow that the
view is backing.
This case does not hit very often, but is evident in
MDI applications where the subwindows are OpenGL
backed QGraphicsView widgets. Dragging the subwindows
around produces garbage inside the windows.
Change-Id: I1b162470b03cca6ed722c6c54080459f2c5e91d9
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
Although SSE2 support is detected at runtime it still may not be
available at build time, so we have to ensure it only uses SSE2
when it is available at build time too.
Change-Id: I86c45a6466ab4cec79aa0f62b0d5230a78ad825a
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
The Plastique style no longer exists in QtBase. All the references have
been updated to Fusion, and the obsolete screenshots have been removed.
Change-Id: I771a9ecf23b82965c7b3c41a40945cf051cb5f3a
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
In blackberry, activation events come through the navigator,
but we might not have a navigator.
Change-Id: I0d9e1a08336aa403035fdf00be46d839a83f4b58
Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* (i.e. do not mention Kinetic)
* Add some relevant references to Qt Quick
* Refer to QMetaType::Type instead of the obsolete QVariant::Type
Change-Id: I82b69250c933c7e54dc0c268fa6ce4379726fb0d
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
(Currently, the Qt5 windows packages lack the tiff and mng plugins
from qtimageformats because of this issue.)
If Qt is configured to use its bundled zlib, it is compiled into
QtCore, and the public symbols are exported so that it can be used
by other Qt libraries. However, after modularization, this did not
work for libraries outside qtbase, since they did not have access
to the headers of the bundled zlib.
This commit fixes that.
Ref. also 1f461ac45b
Change-Id: Ie986f47e00fd0c16f2ba04d27f4258a20d61b260
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
This is a second update, which fixes the
"All QML APIs by Module" page, I think.
I expect there will be more insifious places
where this problem will pop up. qdoc must be
dragged, kicking and screaming into the
modular age.
Task-number: QTBUG-28036
Change-Id: I8dd4733a2b0aac9bab3cb2066b6dbf139a8e98a6
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
QSessionManager was already in QtGui, but not usable since the only API
to get to it was still in QtWidgets. Session management isn't related
to widgets, it also applies to QML apps on the desktop.
The virtual commitData and saveState methods have been removed,
given the two signals which exist since 4.2, and an additional
isSessionSaving() method was added instead.
Change-Id: I8099e70df133303e74456706827da21f013fcc6a
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>