Commit Graph

3881 Commits

Author SHA1 Message Date
Mark Brand
2ae91491b4 move plugin text codecs to QtCore
Having plugin text codecs adds considerable complexity to
configuring Qt. The plugin interface is designed for optional
features, but text codecs tend to be used for essential functions.
A dramatic example is loading a codec plugin from a file whose path
needs to be converted by the codec.

Codec plugins can also be a nuisance to builders of applications
linking to static Qt. This is because the application might need
to explicilty import the static codec plugins which are actually
dependencies of QtCore.

For these reasons, it has been decided not to have text codec plugins
any longer.

Change-Id: Ic6c80a9c949bd42e881e932d1edae23fe4fe4c88
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-01-20 18:48:22 +01:00
Mark Brand
7ee3d8c8ec build and load text codecs regardless of iconv and platform
Otherwise applications linking to static Qt may have to import
the static plugins to avoid linking failure even if they do not
use the codecs, which is a nuisance.

Also, this is preparation for moving these codecs into QtCore
proper.

Change-Id: I71f3bbb0bac6261983143d0578757b34997d1364
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-01-20 18:48:22 +01:00
Shane Kearns
85594bd972 QFileInfo autotest - don't fail on default configured windows systems
NTFS file access times are disabled by default since windows 6 for
performance reasons. The test now checks the registry setting and
reports XFAIL if access times are disabled.

Change-Id: Ia84ed0c8736e6c7d5817425006f6115d9f3e70a4
Reviewed-by: João Abecasis <joao.abecasis@nokia.com>
2012-01-20 18:48:22 +01:00
Friedemann Kleint
e752a98b5a QPA/windows example: Fix positioning for virtual desktops.
Position window within screen geometry.

Change-Id: Id931f386c9ef5564887a2f54b71921f062320f54
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-01-20 17:21:25 +01:00
Mark Brand
10f6c5981c fix whitespace
Change-Id: I0cfccae085c000d4368386a34f288c1e6f01a88f
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-01-20 15:51:03 +01:00
Morten Johan Sorvig
ab7b849c41 Add atomic implementation for Native Client.
Uses gcc compiler intrinsics, similar to avr32.

Change-Id: I10cc2bd3cad67ee002386bab1ea764a4ff5ce727
Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
2012-01-20 14:23:01 +01:00
Pasi Matilainen
2c8a0a90be Fix cursor disappearance in QLineEdit on Mac when deleting all text
On Mac OS X, if all text in the QLineEdit was selected and then deleted, cursor
visibility was not updated, and so the cursor remained hidden. Fixed
to update cursor visibility also when the text is empty.

Task-number: QTBUG-13169
Change-Id: Id52a20b07bb96609a78c42eb630ee2b20ed7cbcb
Reviewed-by: Jiang Jiang <jiang.jiang@nokia.com>
(cherry picked from commit 181456d0a31b7250da97eafba75e6bc657391777)
2012-01-20 14:22:03 +01:00
Joerg Bornemann
06abf7934b make tst_QProcess::softExitInSlots pass in under 120 seconds
Due to unconditional waits this test always needed 120 seconds to pass.
Now we're using QTRY_VERIFY and make sure that we write the data before
the process got killed even in the cases 3 and 4.
On my machine this test now takes 8 seconds.

Change-Id: I606a8b43ba4c97704be5202a6c5d8d1c75337f9c
Reviewed-by: Bill King <bill.king@nokia.com>
2012-01-20 14:20:51 +01:00
Jiang Jiang
91fa4b7043 Fix glyphsEnd range check
For a character generating more than one glyphs, glyphsRun() needs
to check the next glyph index after the requested range. If that
glyph index is more than one larger than the glyphsEnd we currently
get from logClusters, then glyphsEnd need to be set to the next
glyph index minus one.

Change-Id: I795c595d349418ba755b088d6fe6ff24a6e7dd15
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
2012-01-20 14:19:59 +01:00
Friedemann Kleint
fc366046b4 Windows: Work on QPlatformScreen implementation.
Implement virtual desktops (which is the default for
EnumDisplayMonitors) and change notifications.

Change-Id: Id24a1b6d9766903901ddf1ded8e9933aa03589d4
Reviewed-by: Oliver Wolff <oliver.wolff@nokia.com>
2012-01-20 14:17:41 +01:00
Friedemann Kleint
688d463f4a uic: Add translation-attributes to string list properties.
Task-number: QTBUG-8926
Task-number: QTBUG-20440

Change-Id: I57d92110bf532c717451336bd1943c9571020478
Reviewed-by: Jarek Kobus <jaroslaw.kobus@nokia.com>
2012-01-20 14:17:41 +01:00
Friedemann Kleint
0f8ad242fb Add a virtual sendPostedEvents() to QEventDispatcherWin32.
Reimplement this in QWindowGuiEventDispatcher to send both Qt posted events and
queued QPA window system events. We need to do this at a well defined place,
instead of sending events outside of the eventloop from the Windows proc.

This fixes various hangs for example in tst_qinputdialog, which used a 0-timer
to close a dialog.

Change-Id: I64e0b8f1209fb434059a7fa667ed585902c19db4
Initial-patch-by: bhughes <bradley.hughes@nokia.com>
Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
2012-01-20 14:17:41 +01:00
Eskil Abrahamsen Blomfeldt
c274ea7cf5 Introducing QPlatformSharedGraphicsCache
Interface to provide cross-process caching mechanisms in a platform
plugin. Can be used for shared glyph caches and icon caches etc.

Change-Id: If0d89a0a50bbd6eee05daf908448262ff270fc5b
Reviewed-by: Jiang Jiang <jiang.jiang@nokia.com>
2012-01-20 14:17:41 +01:00
David Faure
47d5d349d8 Remove QBool and use bool instead.
QBool was introduced with Qt-4.0, to detect Qt3-like code like
 if (c.contains(d) == 2) and break compilation on such constructs.
This isn't necessary anymore, given that such code couldn't possibly
compile in Qt4 times.
And QBool was confusing developers, and creating compile errors (e.g.
QVariant doesn't have support for it), so better remove it for Qt 5.

Change-Id: I6642f43f5e12b872f98abb56600186179f072b09
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-01-20 14:17:41 +01:00
Anselmo L. S. Melo
841b0c4fac Docs: Fix typo in the QWindow class documentation
It was 'windw' instead of 'window'

Change-Id: I3a7b361a22e4ea09ee1fb3d9b551c1a88d401ff1
Reviewed-by: Jonas Gastal <jgastal@profusion.mobi>
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
2012-01-20 12:48:19 +01:00
Simon Hausmann
ef2efafcc6 Allow generic plugins to set defaults for window system properties
In order for generic plugins to set defaults on "startup" time - such
as the meego integration plugin to set the correct screen orientation -
it is necessary to construct the plugins when the application startup is
done. Then the plugin can "inject" the values the usual way, using
QWindowSystemInterface::handle*Change. Afterwards we need to process those
events - take them from the window system event queue and let QGuiApplication
process them.

Change-Id: I84de022ad565a33ae3ef5dfc34f540d6bf488b03
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-01-20 12:43:55 +01:00
Simon Hausmann
1ca05bb0c1 Add support for platform plugin specific event filters.
The setEventFilter on the platform native interface allows subscribing to
events on the backend by event name.

Change-Id: Ib10077fbc69f0207edbae1177e7bbd18c8d0f9ae
Reviewed-by: Jørgen Lind <jorgen.lind@nokia.com>
Reviewed-by: Michalina Ziemba <michalina.ziemba@nokia.com>
2012-01-20 12:43:52 +01:00
Robin Burchell
8060dd3c42 Add a string hash implementation similar to the one in Java.
This uses a similar runtime to the approach of sampling part of the string, with
the benefit that it doesn't reduce the sampling to subsections of the string.

Ironically, Java used to only sample parts of the string as well, but found that
it produced too many collisions with certain string types, so they moved to use
this method.

RESULT : tst_QHash::qhash_qt4():
     0.0537 msecs per iteration (total: 110, iterations: 2048)
PASS   : tst_QHash::qhash_qt4()
RESULT : tst_QHash::qhash_faster():
     0.015 msecs per iteration (total: 62, iterations: 4096)
PASS   : tst_QHash::qhash_faster()
RESULT : tst_QHash::javaString():
     0.016 msecs per iteration (total: 66, iterations: 4096)

Change-Id: Icb5da341ab6445163f4217650a0bdb3903e50210
Reviewed-by: hjk <qthjk@ovi.com>
2012-01-20 12:42:27 +01:00
Robin Burchell
03700a293e Change visibility of eventFilter().
Change-Id: I2d47e3d1f5a8fac5a1fe4638dce87a9e036f8544
Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
2012-01-20 12:42:10 +01:00
Bradley T. Hughes
77fcba22c4 Add Contact: information in the license header
Contact point is the Qt Project, and needs to be included for
all new files added to the repository.

Change-Id: Id0e7219e1d11a169f1a91439728cbda55ab29eeb
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-01-20 12:27:11 +01:00
Bradley T. Hughes
085d3af48c Silence warning from clang
QBasicAtomicPointer is forward declared as a class, keep the actual
declaration of QBasicAtomicInteger and QBasicAtomicPointer as class with
all public members (qoldbasicatomic.h does the same).

src/corelib/thread/qbasicatomic.h:158:1: warning:
      'QBasicAtomicPointer' defined as a struct template here but
      previously declared as a class template [-Wmismatched-tags]
struct QBasicAtomicPointer
^
src/corelib/global/qglobal.h:1861:23: note: did you mean struct here?
template <typename T> class QBasicAtomicPointer;
                      ^~~~~
                      struct

Change-Id: I38c59c29d7f796dde772e7f403bbf98b04571a08
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-01-20 12:27:04 +01:00
Bradley T. Hughes
db10b7b40f Use Q_FOREVER instead of forever
Public headers should compile with QT_NO_KEYWORDS defined.

Change-Id: I5620b4b2600f5e39bb402b97d14fdb257dfe9942
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
Reviewed-by: Jonas Gastal <jgastal@profusion.mobi>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-01-20 12:26:37 +01:00
Thiago Macieira
1f843ca39e Add the new QBasicAtomicXXX implementation - no backends yet
The new implementation is API- and ABI-compatible with the old
implementation, provided that QBasicAtomicInt isn't used as an
argument in a function call or the return value: now, QBasicAtomicInt
is a typedef to QBasicAtomicInteger<int>.

The new design is based on CRTP: the QGenericAtomicOps template class
takes as a template parameter the derived class itself. This way, we
implement a "poor man's virtual" without a virtual table and
everything is inline.

QGenericAtomicOps implements most of the atomics code that is repeated
in many classes all over:

 * Acquire semantics are obtained by placing an acquire barrier after
   the Relaxed operation
 * Release semantics are obtained by placing a release barrier before
   the Relaxed operation
 * Ordered semantics are obtained by placing an ordered barrier before
   the Relaxed operation (either way would be fine)
 * fetchAndStoreRelaxed and fetchAndAddRelaxed are implemented on top
   of testAndSetRelaxed
 * ref and deref are implemented on top of fetchAndAddRelaxed

It also adds load, loadAcquire, store and storeRelease: the default
implementations of loadAcquire and storeRelease operate on a volatile
variable and add barriers. There are no direct operators for accessing
the value.

Each architecture-specific implementation can override any of the
functions or the memory barrier functions. It must implement at least
the testAndSetRelaxed function.

In addition, by specialising one template class, the implementations
can allow QBasicAtomicInteger for additional types (of different
sizes). At the very least, int, unsigned and pointers must be supported.

Change-Id: I6da647e225bb330d3cfc16f84d0e7849dff85ec7
Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
2012-01-20 12:26:26 +01:00
Bradley T. Hughes
f188d8a005 Expect tst_QTreeView::editTriggers() failure on Mac OS X
EditKeyPressed 4 test data fails, all other test data for the function
pass.

Task-number: QTBUG-23696
Change-Id: Ied56bd0b653ad4dcc2b6451b486aae7cad134211
Reviewed-by: Jason McDonald <jason.mcdonald@nokia.com>
2012-01-20 08:50:27 +01:00
Bradley T. Hughes
cdfb3f29c2 Expect tst_QColumnView::moveCursor() failure on Mac OS X
Both test data fail.

Task-number: QTBUG-23697
Change-Id: Iee4b08a88db33c72c584e326e928863af61c8dd4
Reviewed-by: Jason McDonald <jason.mcdonald@nokia.com>
2012-01-20 08:50:22 +01:00
Bradley T. Hughes
e6a538a3ed Expect tooltip related test failures on Mac OS X
Mark test failures related to tool tips with QEXPECT_FAIL(). See
QTBUG-23707 for description of the failures.

Change-Id: I753256d1db748cef41cf1898620647c4cbacc472
Reviewed-by: Jason McDonald <jason.mcdonald@nokia.com>
2012-01-20 08:50:09 +01:00
Bradley T. Hughes
0d12500240 Ignore failures from tst_QWidget_window on Mac OS X
The tst_windowFilePathAndwindowTitle test currently fails, so mark the
failures as expected failures for now.

Task-number: QTBUG-23682
Change-Id: If64a82c919b218b5c1c38ce5228081bb46fe70ac
Reviewed-by: Jason McDonald <jason.mcdonald@nokia.com>
2012-01-20 08:49:43 +01:00
Morten Johan Sorvig
06ff72e02d Compile.
Change-Id: I3c490eb2ce9bd655f4808b232663a530baec5990
Reviewed-by: Jan-Arve Sæther <jan-arve.saether@nokia.com>
2012-01-20 02:07:13 +01:00
Kent Hansen
f99c1b5f1c Remove warning and automagic for "missing QT += quick"
This reverts commit 613183ff8c
("Automatically add QtQuick module if only QtDeclarative is specified").

The QtQuick module has been around for a while now, and the need to
port to it has been duly announced.

After this commit, projects that use the QtQuick 2 API (QQuickItem
and friends) will explicitly have to add QT += quick.

Change-Id: Ie5e6d438431a0c736e214c28c0d1ba1189b4ee06
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
Reviewed-by: Denis Dzyubenko <denis.dzyubenko@nokia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-01-19 23:58:44 +01:00
Mark Brand
ce2428c608 fix case of included windows headers
Allows cross-building on unix.

Change-Id: If389138c2d3bf5e72c62c85d054785ac9232f158
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-01-19 23:58:34 +01:00
Mark Brand
14fe15add1 fix cross building mingw: doesn't need to pass qpa test
Change-Id: I4b40d122db81506bb2ad85db459f806ac93f8cbd
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-01-19 23:58:32 +01:00
Xizhi Zhu
3c0777936e Remove the useless connManager() function.
Change-Id: Ifac0796ec22d0656ccfcf31b8d45b2342c2ee646
Reviewed-by: Jonas Gastal <jgastal@profusion.mobi>
Reviewed-by: hjk <qthjk@ovi.com>
2012-01-19 22:26:43 +01:00
Robin Burchell
ce14c36475 Remove Q_CC_MWERKS.
This is no longer supported.

Change-Id: I3914f5007595fd699fa1e9a565a0a3f59a0e135e
Reviewed-by: Jonas Gastal <jgastal@profusion.mobi>
Reviewed-by: Marius Storm-Olsen <marius.storm-olsen@nokia.com>
2012-01-19 21:13:48 +01:00
Robin Burchell
9e940ec8fc Remove Q_CC_NOKIAX86.
This is no longer supported.

Change-Id: Ic393bc48c4c842514da69b6696cfb62b54360070
Reviewed-by: Jonas Gastal <jgastal@profusion.mobi>
Reviewed-by: Shane Kearns <ext-shane.2.kearns@nokia.com>
2012-01-19 18:40:45 +01:00
Lars Knoll
253c801c56 Remove QDir::convertSeparators()
This method has been deprecated since Qt 4.2.
QDir::toNativeSeparators() replaces it since then.

Change-Id: I49e6e1bfd50f26aa30134e599ee82067709549a7
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
Reviewed-by: João Abecasis <joao.abecasis@nokia.com>
2012-01-19 16:41:44 +01:00
Jonas M. Gastal
8bbf1a46a5 Removing QHttpHeader and QHttpResponseHeader.
QAuthenticator used it for the convinience of QHttpSocketEngine only.
QHttpSocketEngine has now been ported to use QHttpNetworkReply to parse
HTTP responses.

Change-Id: Idf6e70aa76613aad6e3d789d81ca1b4fd73575c2
Reviewed-by: Peter Hartmann <peter.hartmann@nokia.com>
2012-01-19 14:31:10 +01:00
Lars Knoll
658a239eb9 Rename all our interfaces from com.trolltech to org.qt-project
Change-Id: I6db7211fcf6b24bd75e360645bbb2fdf1ef8a8bc
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com>
Reviewed-by: João Abecasis <joao.abecasis@nokia.com>
2012-01-19 14:28:49 +01:00
Jan-Arve Saether
408a347d80 Cleanup: No need to have two code paths that both return Unrelated.
QAccessibleInterface::relatedTo() does the job for us already.

Change-Id: I816022041e38c5f9dd742df1c4b9ca61b8d6a186
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com>
2012-01-19 12:58:26 +01:00
Bradley T. Hughes
a84d893bae Add "nswindow" resource to the Cocoa native interface implementation
This will return the NSWindow* for the given QWindow*. Port the QWidget
autotest helper to use the native interface and the "nswindow" resource.

Change-Id: I754b7e9288690ac3c99c3ec65c5526d5fe121234
Reviewed-by: João Abecasis <joao.abecasis@nokia.com>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
2012-01-19 11:31:22 +01:00
Bradley T. Hughes
e87813bfa2 Remove the tst_QWidget::retainHIView() test
Qt is Cocoa only now, and does not use HIView anymore, making this test
is meaningless. The testAndRelease() and createAndRetain() helper
functions are also no longer needed.

Change-Id: I26180a4670c8e7445741d3aab510c4da7b65388c
Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
2012-01-19 11:31:22 +01:00
Bradley T. Hughes
1e29040c17 Prevent menubar related crashes
The native menubar interface does not communicate menubar destruction
down to the implementation, so we cannot keep naked pointers (otherwise
they become dangling). This happens often while running autotests as
windows, menus, widgets, etc. are quickly created, tested, and then
destroyed.

Work-around the crashes for now by using QWeakPointer. A proper fix will
need to be investigated to prevent the menubars hash from holding
dangling key pointers.

Change-Id: Ie8e50cbc52f9510e844fc3c0c5ae6a0865320282
Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
2012-01-19 11:31:22 +01:00
Joerg Bornemann
97a8dff3c0 remove NTFS junction and mount point detection
Qt now treats neither NTFS junctions nor mount points as symlinks.

Task-number: QTBUG-20431
Change-Id: I93f67d7438d441ceb53308d4a1f29335beedd547
Reviewed-by: João Abecasis <joao.abecasis@nokia.com>
2012-01-19 11:31:22 +01:00
Joerg Bornemann
49d1b06898 Revert "fix NTFS mount points"
We agreed on treating neither junctions nor mount points as symlinks.
This will be handled in another commit.

This reverts commit 1656c4780c.

Change-Id: I41a87b6df9f7fba333df4c967ee9f0c1f3940952
Reviewed-by: João Abecasis <joao.abecasis@nokia.com>
2012-01-19 11:31:22 +01:00
Friedemann Kleint
911fd94913 Fix compiler warnings in Qt Network.
- Missing return value
- Wrong format for qint64

Change-Id: Id0de58c85b7c8ed2a62f7237fd23e6c5a5ac92ec
Reviewed-by: Peter Hartmann <peter.hartmann@nokia.com>
2012-01-19 11:31:22 +01:00
Bradley T. Hughes
9d0a41b1ca Disable 'make check' for tst_QWidget on Mac OS X
This test crashes, which can destabilize the CI system, so don't run the
test for now. It is still compiled as part of the build process, though.

Task-number: QTBUG-23695
Change-Id: I841fab7c56b8dba33e8d1b074f118b65790f34ef
Reviewed-by: Jason McDonald <jason.mcdonald@nokia.com>
2012-01-19 11:31:22 +01:00
Bradley T. Hughes
3ad7cd3a60 Replace Q_WS_MAC with Q_OS_MAC in tests/auto/other
Change-Id: If805ea762047d07872a278956fc7637e5bafc6db
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
Reviewed-by: Jason McDonald <jason.mcdonald@nokia.com>
2012-01-19 11:31:22 +01:00
Friedemann Kleint
114079e224 Windows: Implement QPlatformScreen::name()
Change-Id: I04ec91b12936bdcc179b79558ac2285b70281dcd
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-01-19 10:09:09 +01:00
Lars Knoll
2a742eba7a core as a directory name is usually not a good idea
Let's follow the other places in qtbase where the
directory is named corelib.

Change-Id: Ib426f4ee7311f622a89b252b9915aca1d3dd688d
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-01-19 10:07:34 +01:00
Friedemann Kleint
57738689cd Fix hang in tst_qwidgetaction on Windows.
Increase timer interval.

Change-Id: I2cf40415d356c29ebd753a0e78f43aee474123ca
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-01-19 10:03:46 +01:00
Jan-Arve Saether
ec550e28d2 Remove all references to QAccessible::Self
navigate() to Self does not make any sense (its basically a clone).
It seems that its not that useful to return Self from relationTo(),
since it was only one place where relationTo() was called where it
checked for the Self flag. This was in the windows bridge, and we
could easily work around that.
If it really turns out that Self is useful, we can always add that
enum value back later.

Change-Id: I9ebb60da059a843de5e6fcab9e815b919afc6f2a
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com>
2012-01-19 08:05:05 +01:00