Commit Graph

3540 Commits

Author SHA1 Message Date
Debao Zhang
7694599ef9 Fix Memory leak related to Content Menu
From Qt4.7 on, the contextmenu of
QTextEdit/QPlainTextEdit/QLineEdit/QLabel/QMainWindow etc using
QMenu::popup() instead of QMenu::exec(), but the
setAttribute(Qt::WA_DeleteOnClose) does not work, as QMenu::close()
isn't called when the menus disapper. And this causes a memory leak.

This is a side effect of b7af368e86874d71ffc9071c9ef009814d6a3467

Task-number: QTBUG-22817
Task-number: QTBUG-19592
Change-Id: I4c2c3edb3f63ce914b7b57cd0fbcec20488c8315
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com>
2011-12-13 16:36:33 +01:00
Bradley T. Hughes
d308797d00 Finish removing virtual child integers
Finish the work started by commit
beb72b2fbf. This silences warnings found
by -Woverloaded-virtual.

Change-Id: Ic6f5e77e324463ade8349f23f272b41b509d87e4
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com>
2011-12-13 14:54:09 +01:00
Johannes Zellner
8757aaaf2f Fix debug output in eglfs with QEGL_EXTRA_DEBUG enabled
Change-Id: I615a953b52184d01c5b1b78d1cff283f94c458d9
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2011-12-13 13:58:56 +01:00
Kim Motoyoshi Kalland
d52fd497f6 Improved performance of large text when parts are outside view.
Avoid generating paths for the parts of the text that are outside
the viewport in the raster paint engine.

Task-number: QTBUG-22687
Change-Id: I06159bc4c1aa82a07606f4b2f0336cb25dfd56d2
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
2011-12-13 11:11:58 +01:00
Bradley Smith
0553ab9127 Fix QPA xlib plugin handling of setParent(0).
Dereference of the parent argument did not check for nullptr. For
example, the hellogl example would crash. Now if the parent
argument is null, the screen's root window is used.

Change-Id: Ib06181c9ab9794d577722f1c1dd5ee92e4edaee5
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2011-12-13 11:11:58 +01:00
Friedemann Kleint
abb1c066e5 QImageReader-test: Make more verbose, use QTemporaryDir.
- Add some QVERIFY to check for isNull().
- Use QTemporaryDir to avoid spurious failures in the format
  extension-ignore test (cannot copy to '/tmp/black.jpg').

Change-Id: Ia57ea4daa6b8686d1111c9c27a47666265fa9781
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
2011-12-13 09:33:49 +01:00
Sarah Smith
0786716ce5 Fix failing unit tests.
The test that was failing was the readFromDevice one - where the
extension is not known.

Looks as though image detection is required in a positive way, that is
it is not enough to say I think I can read this file, and then fail if
the format is "corrupt", you must be certain that the file was intended
to be that format.

In the case of TGA the original format has no magic byte header, and no
consistent way to check if it really is a TGA file.  With 2.0 the footer
was added at the end, so that can be checked for confirming the file is
TGA.  However rejecting files which do not have this means that old TGA
files will not be read.

On a quick survey TGA files that have been used in applications so far
all seem to be 2.0 TrueVision, so for now, lets just reject earlier
files and see how it goes.

Also add reading the tga test file to the readFromDevice test.

(cherry picked from commit 665bc3951709f0d726cb82501a5bca684f3347a5)
Change-Id: I665bc3951709f0d726cb82501a5bca684f3347a5
Reviewed-by: Sarah Jane Smith <sarah.j.smith@nokia.com>
2011-12-13 09:33:49 +01:00
Friedemann Kleint
1a5f5d0056 QClipboard-test: Fix test
- Use QFINDTESTDATA to locate sub-executables
- Remove dependency on QtWidgets, use QGuiApplication everywhere.
- Improve error handling when running sub-executables, prevent
  hangs (Windows)

Change-Id: If8e3be82f855c8be6bdbfc9f9728e8490ed181f3
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
2011-12-13 09:33:49 +01:00
Kurt Korbatits
3c189d9b74 Fix qfile unit test failing on shadow build.
Updated three instances were not using QFINDTESTDATA.

Change-Id: Ibd0f6734791fc5d98ebeb65ac3bd80aa1c076414
Reviewed-by: Jason McDonald <jason.mcdonald@nokia.com>
2011-12-13 07:41:27 +01:00
Jason McDonald
d702da7482 Add missing assertion to QAbstractTestLogger.
If passed an empty string, QAbstractTestLogger::outputString() would
crash, so add a QTEST_ASSERT to make the cause of any crashes more
obvious.

Change-Id: I00afe2e73120b87e211f858402d441f345dddd08
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
2011-12-13 07:41:27 +01:00
Rohan McGovern
9f592dbd60 testlib: fixed actual, expected order in QTest::compare_helper
These two parameters were written in the opposite order in the
function's declaration and definition.  Harmless to the compiler,
but confusing to developers and reviewers.

Change-Id: I1d4cb0a41b465b5f918daa76756677fe0cfe0a59
Reviewed-by: Jason McDonald
Reviewed-by: Jason McDonald <jason.mcdonald@nokia.com>
2011-12-13 05:19:08 +01:00
Michael Brasser
5d00ae3b69 Stop animation driver in the appropriate place.
Calling stop from restartAnimationTimer was incorrect (it was initially
added as a fix after the introduction of QAnimationDriver, but this is
a better location for the fix).

Change-Id: I2507096b846ada061e36a9ece6aa814d801ddd53
Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com>
2011-12-13 02:24:03 +01:00
Michael Brasser
30a4d9bc99 Only call profiler callback once per animation tick.
Change-Id: I369afdf34ded2c6327ce36cdb80fab51bf89a1b5
Reviewed-by: Christiaan Janssen <christiaan.janssen@nokia.com>
2011-12-13 02:23:55 +01:00
Michael Brasser
08d378d933 Cleanup pause timer handling in QUnifiedTimer.
The animationTimer is now only used for pauses, so can be renamed to
pauseTimer, and directly queried for whether it is active.

Change-Id: I3d9319b6ee76158e875ab43657126a0aa0a1cf2e
Reviewed-by: Leonardo Sobral Cunha <leo.cunha@nokia.com>
Reviewed-by: Martin Jones <martin.jones@nokia.com>
2011-12-13 02:23:47 +01:00
Michael Brasser
3bd3b82a2f Fix possible jump in animation timer.
If both a stop and start happen within an event loop, ensure they are
processed in order.

Based on a patch from Charles Yin.

Task-number: QTBUG-22865
Change-Id: I6131bd43a6ba5ad4fa37c863a9f4598bf2ac0e01
Reviewed-by: Leonardo Sobral Cunha <leo.cunha@nokia.com>
Reviewed-by: Martin Jones <martin.jones@nokia.com>
2011-12-13 02:23:42 +01:00
Stephen Kelly
309cdc358e Move QAbstractItemModel into a separate directory.
Change-Id: Ib505520dd5b52743634befbf3f148d7f8c21ec44
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2011-12-13 02:23:42 +01:00
Thorbjørn Lund Martsum
4465fdd166 Compile fix - qxcbconnection.cpp (‘Display’ was not declared)
To avoid getting
qxcbconnection.cpp:89:29: error: ‘Display’ was not declared in this scope

Platform linux - configured with
./configure -nokia-developer -nomake examples -nomake demos -nomake tests -no-gtkstyle -no-v8

Change-Id: Ief7315bb8aa67c6454cdeddb1c02e60ea79801b5
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2011-12-13 00:44:09 +01:00
Robin Burchell
a3b3cfe3b8 Use QVarLengthArray in QXcbConnection.
There's no need in using a QList here, since it's never passed around anywhere;
the reference counting is just unnecessary overhead.

Change-Id: I92107c69f7338acc396e2ac4a69123c6a2becaed
Reviewed-by: John Brooks <john.brooks@dereferenced.net>
Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2011-12-13 00:44:00 +01:00
Stephen Kelly
23ab6a726a Add the .exe suffix to executables on Windows.
Change-Id: I257bb7d62ae18ea529df6b10694fcf25eedc83f4
Reviewed-by: Clinton Stimpson <clinton@elemtech.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2011-12-12 19:10:34 +01:00
Frederik Gladhorn
2e02aaf24c Make QApplication::type() set by QGuiApplication.
QApplication::type used to be static and set by the
QApplicationPrivate constructors.

In QCoreApplication we have the new application_type that should take its place.
QApplication::GuiServer is deprecated (since it doesn't have any functionallity
any more with QWS being removed).

This change prepares QStyle to be called from a QQuickCanvase based application
that does not inherit the QWidget version of QApplication.

Change-Id: Ifbe992e25f1e5821fa047b6eb915f75fa675ab97
Reviewed-by: Paul Olav Tvete <paul.tvete@nokia.com>
2011-12-12 17:28:24 +01:00
Rohan McGovern
1b6b1358bf v8: give sensible error message if v8 sources are not checked out
A common error for developers attempting to build qtbase for the first
time is to miss cloning the v8 submodule.

Let qmake check for existence of the sources so we get a sensible error
at qmake time, rather than a relatively inscrutable error at make time.

Change-Id: I70b478e63c962263dac4f2ddccb377b4c9777ceb
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2011-12-12 17:27:19 +01:00
Jørgen Lind
cdacf0918e Add a wayland-scanner rule to qmake
Change-Id: I142ca2ba2a817745b818d2740d9ae8e0eaf3b797
Reviewed-by: Marius Storm-Olsen <marius.storm-olsen@nokia.com>
2011-12-12 17:27:19 +01:00
Laszlo Agocs
91b48208f5 Add touchEvent() virtual to QWindow.
Unlike keyPressEvent(), mousePressEvent(), etc. the touch events had
no equivalent so one had to fall back to reimplementing event() or
using an event filter. This is now corrected by introducing
touchEvent(). Touch events are finally becoming a first-class citizen
in Qt 5.

Change-Id: Ia2044030154fd5b1b5384f08a3cb1749b798435f
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2011-12-12 17:27:19 +01:00
Stephen Kelly
0319f13f1a Remove symbian cases from library and plugin loading code.
Change-Id: I381873449b1520152cd2a7aede9c7253e110ef7a
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
Reviewed-by: João Abecasis <joao.abecasis@nokia.com>
2011-12-12 17:27:19 +01:00
Morten Johan Sørvig
82b73ab03a Cocoa: Add autorelease pools.
A couple of cases where we call Cococa APIs without
having an autorelease pool in place surfaced after
removing the global autorelease pool in 1a218a7. 
(This happens when when Qt API is called before 
app.exec() has started the Cocoa event loop.)

Add local autorelease pools to prevent memory leaks.

Change-Id: I0c4be3ff102aaff4539235857f95ab29fdbc9d70
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@nokia.com>
2011-12-12 17:27:19 +01:00
Robin Burchell
6802e3165e Add QVarLengthArray::length().
This also adds a unit test for length()/count()/size(), since there wasn't one
testing it explicitly.

Change-Id: Ifb7f113aa97beef5f76e5fb246eb38495344b0ad
Reviewed-by: João Abecasis <joao.abecasis@nokia.com>
Reviewed-by: Marco Schmidt <Marco.Schmidt@Taugamma.de>
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
2011-12-12 17:27:19 +01:00
Richard Moore
3ac957690c Remove unused member variables from private class.
These aren't used, and so they shouldn't be there.

Change-Id: Id4a08d90836c45c140d811b8eca07756e14c56e5
Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
2011-12-12 17:27:19 +01:00
João Abecasis
e7a6906da6 Remove template <class T> class QRingBuffer
.. as it is declared and defined in .cpp file but never used.

Change-Id: I7b72daf62712b4ec25717afbe2b7f0792ffa2a85
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2011-12-12 17:27:19 +01:00
Friedemann Kleint
c9d6def002 Windows-DnD: Fix cursors.
Re-add pixmaps that were removed from QGuiApplication.

Change-Id: I9936da115e494cf816116159419d40840176afd5
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2011-12-12 15:38:47 +01:00
Friedemann Kleint
5b7a1ca85b Windows: Fix clipboard test.
Return the QMimeData set on the Ole object if we own it.

Change-Id: I08de0968e04a7356fed1255feb495f7b85e7a6f8
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2011-12-12 15:38:40 +01:00
Bradley T. Hughes
7ac4bf8a40 Silence -Woverloaded-virtual warnings in QRasterPaintEngine
The QRasterPaintEngine::updateState() is not a reimplementation of
QPaintEngineEx::updateState(const QPaintEngineState &state). Rename the
updateState() function to updateRasterState(), and ensureState() to
ensureRasterState(). These names were chosen to match the class name
QRasterPaintEngineState on which these functions operate.

../../include/QtGui/5.0.0/QtGui/private/../../../../../src/gui/painting/qpaintengine_raster_p.h:271:10:
warning: 'QRasterPaintEngine::updateState' hides overloaded virtual
function [-Woverloaded-virtual]
    void updateState();
         ^
../../include/QtGui/5.0.0/QtGui/private/../../../../../src/gui/painting/qpaintengineex_p.h:202:18:
note: hidden overloaded virtual function 'QPaintEngineEx::updateState'
declared here
    virtual void updateState(const QPaintEngineState &state);
                 ^

Change-Id: Ie9ff0230019b383d53757029c6b2194dfc6a2664
Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com>
2011-12-12 15:35:54 +01:00
Bradley T. Hughes
c560836263 Silence -Woverloaded-virtual warnings in QBlitterPaintEngine
QPaintEngineEx declares several virtual clip() overloads, but clip()
with no argument does not reimplement any of these. Rename it to
clipData() (to make the name of the return value more closely).

../../include/QtGui/5.0.0/QtGui/private/../../../../../src/gui/painting/qpaintengine_blitter_p.h:104:29:
warning: 'QBlitterPaintEngine::clip' hides overloaded virtual function
[-Woverloaded-virtual]
    inline const QClipData *clip(){return raster()->d_func()->clip();}
                            ^
../../include/QtGui/5.0.0/QtGui/private/../../../../../src/gui/painting/qpaintengineex_p.h:157:18:
note: hidden overloaded virtual function 'QPaintEngineEx::clip' declared
here
    virtual void clip(const QPainterPath &path, Qt::ClipOperation op);
                 ^

Change-Id: Ifd7c494e2c999d743216cfb4c27a9c3ccf66f2a9
Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com>
2011-12-12 15:34:14 +01:00
Shane Kearns
f74ff46c7a Fix NTLM authentication with email address
When using "user@dns-domain" for NTLM authentication, the whole string
should be sent as the username, and the domain should be set to an
empty string.
The domain sent by the server is still reflected if the username
does not contain an '@' character.

Manually tested using MS IIS on a domain-joined PC.

Task-number: QTBUG-19894
Task-number: ou1cimx1#949951
Change-Id: Ie1f81172e71cb7cce7b8c909062be990c24aea47
Reviewed-by: Martin Petersson <Martin.Petersson@nokia.com>
2011-12-12 13:34:25 +01:00
Shane Kearns
b830c9cede Fix null pointer dereference in NTLM authentication
If NTLM authentication is required for the URL with an empty path,
then QNetworkAuthenticationCache::findClosestMatch(url.path()) returns 0.
e.g. "http://10.1.2.3".
Return a default constructed credential in this case.

Change-Id: I84ad3b308ee3f74fbbac9ad0f11dbdc66047b50b
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
Reviewed-by: Martin Petersson <Martin.Petersson@nokia.com>
2011-12-12 13:34:11 +01:00
Andrew den Exter
d6fb4463b8 Delay masking the last character in Password echo mode.
If QT_GUI_PASSWORD_ECHO_DELAY is defined in qplatformdefs.h with an
integer value in milliseconds, QLineEdit and TextInput will display
the last character entered unmasked for that delay period and then
mask the character as normal.  If QT_GUI_PASSWORD_ECHO_DELAY is
not defined then the behaviour is unchanged.

Task-number: QTBUG-17003
Task-number: QTBUG-20719
Reviewed-by: Martin Jones
(cherry picked from commit f9e7aee2019d321edd655bfde7de43f20a106971)

Change-Id: If69b384636e3775ad7898b8ffc441011c21abe98
Reviewed-by: Joona Petrell <joona.t.petrell@nokia.com>
2011-12-12 13:19:40 +01:00
Andrew den Exter
6e0e834e03 Fix TextInput test failures.
emitCursorPositionChanged won't emit cursorPositionChanged if the
cursor position hasn't changed but that doesn't mean the micro focus
hasn't changed, so emit updateMicroFocus changed when
cursorPositionChanged isn't.

Task-number: QTBUG-21017
Task-number: QTBUG-21011
Task-number: QTBUG-20719
Change-Id: I86344621151dbeba0eebc67fbc786a8da76b7021
Reviewed-by: Joona Petrell <joona.t.petrell@nokia.com>
2011-12-12 13:19:34 +01:00
Andrew den Exter
28165d5446 Move cursorDelegate with the mouse selection of read only text input.
Task-number: QTBUG-20719
Task-number: QTBUG-19109
Reviewed-by: Martin Jones

Change-Id: I2cec51eb5b01dc5750614edf5b39d6a3da661fc6
Reviewed-by: Joona Petrell <joona.t.petrell@nokia.com>
2011-12-12 13:19:28 +01:00
Andrew den Exter
734033e71d Make it easier to select words at the start of a line.
QTextControl's word selection will only include a word if the cursor
position is past the mid point of the word. This can make it
difficult to select words near the edges of the screen on touch
devices.  For the TextEdit word selection mode select a word ignore
the relative position within a word.

Task-number: QT-5206
Task-number: QTBUG-20719
Change-Id: I77e71e01d8021d66ada785cf894ba876faccefdf
Reviewed-by: Joona Petrell <joona.t.petrell@nokia.com>
2011-12-12 13:19:13 +01:00
Bradley T. Hughes
55b432b24c Update .gitignore for tests/auto/corelib/io/qresourceengine
The test generates the runtime_resource.rcc data file at build time. Add
this to .gitignore.

Change-Id: Ief4057072b28499049147b86f166523b71afe269
Reviewed-by: João Abecasis <joao.abecasis@nokia.com>
2011-12-12 12:51:02 +01:00
Laszlo Agocs
6f1c4fb342 Store the primary status in the touch point flags.
For some reason the primary bit has previously been encoded in the
touch point state, even though it has nothing to do with the regular
states like Pressed, Released, etc.

The value is now stored in the recently introduced flags member of the
touch points. This also reduces the need for error-prone internal
masking of the state value.

The structure used by QWindowSystemInterface::handleTouchEvent also
becomes cleaner because the primary status can now be set in the flags
member and the isPrimary bool can be dropped.

Change-Id: I1da2cb99154afd97e1e3a5943ab115cae3a8232f
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2011-12-12 12:28:29 +01:00
Honglei Zhang
67be01ae50 Check driver validity before using it
Even though it is stated in the documentation that the SQL driver must
remain valid during the life time of QSqlQuery, there are users who don't
follow the rule. It's common that the destructor of QSqlQuery is called
after the driver is already deleted. This fix checks the validity of
the SQLite driver before QSqliteResult uses it in destructor.

Task-number: QTBUG-16967
Change-Id: If0f52113f12e14102da1671cd6e12bdaa267114f
Reviewed-by: Yunqiao Yin <charles.yin@nokia.com>
2011-12-12 10:43:44 +01:00
Friedemann Kleint
b9ebb65c77 Revert "Remove unused overload of QTest::qExec."
The overload is used in Qt Creator
(see src/libs/extensionsystem/pluginmanager.cpp).
The use case here is an application whose internal
QObjects can be tested by passing a command line parameter.

For this use case, it is inconvenient to have to allocate
memory and create a char argv[]- array.

This reverts commit ad80d42f8e.

Change-Id: I2a2f91e2840100fd62743f6d03b33005d67b18f8
Reviewed-by: Daniel Teske <daniel.teske@nokia.com>
Reviewed-by: Jason McDonald <jason.mcdonald@nokia.com>
2011-12-12 10:43:44 +01:00
Bradley T. Hughes
77f41a68b3 Silence -Woverloaded-virtual warnings in QFileDialog
The QPaintDevice::init() virtual, reimplemented in QWidget, is hidden by
these declarations, and clang (and gcc with -Woverloaded-virtual) warns
about this. There is no need to overload the init() name, use more
descriptive names instead.

dialogs/qsidebar_p.h:124:10: warning: 'QSidebar::init' hides overloaded
virtual
      function [-Woverloaded-virtual]
    void init(QFileSystemModel *model, const QList<QUrl> &newUrls);
         ^
dialogs/qfiledialog_p.h:303:10: warning: 'QFileDialogLineEdit::init'
hides
      overloaded virtual function [-Woverloaded-virtual]
    void init(QFileDialogPrivate *d_pointer) {d_ptr = d_pointer; }
         ^
dialogs/qfiledialog_p.h:314:10: warning: 'QFileDialogComboBox::init'
hides
      overloaded virtual function [-Woverloaded-virtual]
    void init(QFileDialogPrivate *d_pointer);
         ^
dialogs/qfiledialog_p.h:330:10: warning: 'QFileDialogListView::init'
hides
      overloaded virtual function [-Woverloaded-virtual]
    void init(QFileDialogPrivate *d_pointer);
         ^
dialogs/qfiledialog_p.h:342:10: warning: 'QFileDialogTreeView::init'
hides
      overloaded virtual function [-Woverloaded-virtual]
    void init(QFileDialogPrivate *d_pointer);
         ^
kernel/qwidget.h:682:10: note:
      hidden overloaded virtual function 'QWidget::init' declared here
    void init(QPainter *painter) const;
         ^

Change-Id: I7a317a551b92fde966e61958dcaf25dea94d69b4
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2011-12-12 08:56:53 +01:00
Jason McDonald
c07b840739 Remove -keyevent-verbose option for autotests.
This option does nothing -- the only function that checks if the option
has been set is never called.  This appears to have been the case ever
since testlib was imported into the Qt repository in October 2005.

Change-Id: I837aa957e2d8bd47c3d1c551f1b94d4374daa25e
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
2011-12-12 08:50:55 +01:00
Jason McDonald
949aaf9a2a Stop using QTest::qt_snprintf() in testlib.
After the previous commit, QTest::qt_snprintf() is equivalent to
qsnprintf(), so just use that instead.

Change-Id: I89ad6e3749ba5efb1926b0b618a904e8baca9f52
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
2011-12-12 06:43:44 +01:00
Jason McDonald
e179afdbb6 Improve definition of QTEST_NO_SPECIALIZATIONS
Remove the part of the definition that applies to gcc versions <= 2.x
as these versions are not supported by Qt5.

Change-Id: Icee6b51ffe78fa30fd7193ef96b6ce0484b8fcae
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
2011-12-12 06:43:39 +01:00
Jason McDonald
c5ee721795 Filter unprintable chars out of all test output.
Previously, unprintable characters were filtered out of test output
while the output strings were being formatted by either qt_snprintf() or
qt_asprintf().  Any strings not formatted by one of those functions
weren't filtered at all, and any strings passed more than once would be
filtered more than once.

This commit separates the filtering of output strings from their
formatting, leaving the filtering until just before the strings are
written to the output stream.  For now, the filtering is done by a
protected method of QAbstractTestLogger, but this could easily be
changed to a virtual method in future to allow different filtering
for loggers with different output character sets.

Change-Id: Ia4bb49cd10d37c84af75d2cf58325d27f0e16d99
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
2011-12-12 05:01:00 +01:00
Stephen Kelly
4c1f5edda6 Clean up includes in QStringListModel.
Change-Id: Idb7167d1206925179fa812b6e3643ed9172f8479
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2011-12-12 01:34:15 +01:00
Bradley T. Hughes
6f0f9f6928 Remove QMetaObject guards and deprecate QPointer.
QWeakPointer is superior and preferred.

Remove QMetaObject::addGuard(), QMetaObject::changeGuard(),
QMetaObject::removeGuard(), and QObjectPrivate::clearGuards().

Implement QPointer using QWeakPointer<T> instead. This changes the
behavior of QPointer in 2 ways:

- During destruction of a QWidget. Previously, the destructor of QWidget
would reset all QPointers so that they would return zero when destroying
children. Update tst_QPointer to account for this change.

- When constructing a QSharedPointer to take ownership of an object
after a QPointer is already tracking the object. Previously, the shared
pointer construction would not be affected by the QPointer, but now
that QPointer is implemented using QWeakPoiner, constructing the
QSharedPointer will cause an abort(). Fix tst_QSharedPointer by
removing the use of QPointer in the objectCast() test.

These behavior changes are documented in the QPointer class
documentation and in the changes file.

Change-Id: I92d0276219c076ece7bcb60f6e1b9120ce4f5747
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2011-12-10 16:11:48 +01:00
Bradley T. Hughes
a6ae75f92a Don't overload the meaning of QObjectData::wasDeleted
The union in QObjectPrivate of declarativeData and
currentChildBeingDeleted shouldn't use wasDeleted to determining the
meaning of the unioned pointer. Instead, add
QObjectData::isDeletingChildren, set that in
QObjectPrivate::deleteChildren(), and only use the
currentChildBeingDeleted member when the parent's isDeletingChildren is
set.

This solves aborts seen in autotests when widgets are deleting window
children. The abort comes from QWeakPointer on the parent in the child's
close event handler (the abort checks that wasDeleted is not set).

Change-Id: I1a58449159d4a5312aad8ba12e559d05d6c43d93
Reviewed-by: Aaron Kennedy <aaron.kennedy@nokia.com>
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2011-12-10 16:11:42 +01:00