summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndreas Aardal Hanssen <andreas.aardal.hanssen@nokia.com>2009-09-22 08:53:39 (GMT)
committerAndreas Aardal Hanssen <andreas.aardal.hanssen@nokia.com>2009-09-22 08:53:39 (GMT)
commitdef49cd0e2d256ff3c31aa80343ce52f4fd6e2e7 (patch)
tree09e3aa8d6e3f72f815b1beaf6d59261b5f45acdd
parente689e41ad1baad65d90866eefe88a96f5e16fa04 (diff)
parentd14fd301314bcceaf2594a5a18f6d20894c1d353 (diff)
downloadQt-def49cd0e2d256ff3c31aa80343ce52f4fd6e2e7.zip
Qt-def49cd0e2d256ff3c31aa80343ce52f4fd6e2e7.tar.gz
Qt-def49cd0e2d256ff3c31aa80343ce52f4fd6e2e7.tar.bz2
Merge commit 'origin/4.5' into 4.6
Conflicts: src/corelib/kernel/qcoreapplication.cpp tests/auto/windowsmobile/test/tst_windowsmobile.cpp
-rw-r--r--INSTALL150
-rw-r--r--src/corelib/kernel/qcoreapplication.cpp2
-rw-r--r--src/gui/graphicsview/qgraphicsitem.cpp6
-rw-r--r--tests/auto/qgraphicsitem/tst_qgraphicsitem.cpp32
-rw-r--r--tests/auto/qtextcodec/tst_qtextcodec.cpp9
-rw-r--r--tests/auto/windowsmobile/test/tst_windowsmobile.cpp2
6 files changed, 196 insertions, 5 deletions
diff --git a/INSTALL b/INSTALL
new file mode 100644
index 0000000..22e993a
--- /dev/null
+++ b/INSTALL
@@ -0,0 +1,150 @@
+ INSTALLING Qt Source Package Version %VERSION%.
+
+1. If you have the commercial edition of Qt, install your license
+ file as $HOME/.qt-license if you are on Unix. If you are on
+ Windows, copy the license file into your home directory
+ (this may be known as the userprofile environment variable) and
+ rename it to .qt-license. For example on Windows XP,
+ %USERPROFILE% should be something like C:\Documents and
+ Settings\username.
+
+ For the open source version you do not need a license file.
+
+2. Unpack the archive if you have not done so already:
+
+ On Unix (X11 and Mac):
+ cd /tmp
+ gunzip %DISTNAME%.tar.gz # uncompress the archive
+ tar xvf %DISTNAME%.tar # unpack it
+
+ This creates the directory /tmp/%DISTNAME% containing the files
+ from the archive. We only support the GNU version of the tar
+ archiving utility. Note that on some systems it is called gtar.
+
+ On Windows, uncompress the files into the directory you want Qt
+ installed, e.g. C:\Qt\%VERSION%.
+
+ NOTE: The install path must not contain any spaces.
+
+4. Environment variables
+
+ In order to build and use Qt, the PATH environment variable needs
+ to be extended to locate qmake, moc and other Qt tools
+
+ On Windows, this is done by adding C:\Qt\%VERSION%\bin
+ to the PATH variable. On Unix, this is done by adding
+ /tmp/%DISTNAME%.
+
+ For newer versions of Windows, PATH can be extended through
+ "Control Panel->System->Advanced->Environment variables" and for
+ older versions by editing C:\autoexec.bat.
+
+ In .profile (if your Unix shell is bash), add the following lines:
+
+ PATH=/usr/local/Trolltech/Qt-%VERSION%/bin:$PATH
+ export PATH
+
+ In .login (in case your Unix shell is csh or tcsh), add the following line:
+
+ setenv PATH /usr/local/Trolltech/Qt-%VERSION%/bin:$PATH
+
+ If you use a different Unix shell, please modify your environment
+ variables accordingly.
+
+ For some X11 compilers that do not support rpath you must also
+ extended the LD_LIBRARY_PATH environment variable to include
+ /usr/local/Trolltech/Qt-%VERSION%/lib. On Linux or Mac with GCC
+ this step is not needed.
+
+4. Building
+
+4.1 Building on Unix
+
+ To configure the Qt library for your machine type, run the
+ ./configure script in the package directory.
+
+ By default, Qt is configured for installation in the
+ /usr/local/Trolltech/Qt-%VERSION% directory, but this can be
+ changed by using the -prefix option. Alternatively, the
+ -prefix-install option can be used to specify a "local"
+ installation within the source directory.
+
+ cd /tmp/%DISTNAME%
+ ./configure
+
+ Type "./configure -help" to get a list of all available options.
+
+ To create the library and compile all the demos, examples, tools,
+ and tutorials, type:
+
+ make
+
+ If you did not configure Qt using the -prefix-install option,
+ you need to install the library, demos, examples, tools, and
+ tutorials in the appropriate place. To do this, type:
+
+ su -c "make install"
+
+ and enter the root password. On some systems, you have to use the
+ sudo command as follows:
+
+ sudo make install
+
+ and enter your password, this requires that you have administrator access
+ to your machine.
+
+ Note that on some systems the make utility is named differently,
+ e.g. gmake. The configure script tells you which make utility to
+ use.
+
+ If you need to reconfigure and rebuild Qt from the same location,
+ ensure that all traces of the previous configuration are removed
+ by entering the build directory and typing
+
+ make confclean
+
+ before running the configure script again.
+
+4.2 Building on Windows
+
+ To configure the Qt library for your machine type:
+
+ C:
+ cd \Qt\%VERSION%
+ configure
+
+ Type "configure -help" to get a list of all available options.
+
+ If you are using the "-direct3d" option, make sure that you have
+ the Direct3D SDK installed, and that you have run the
+ %DXSDK_DIR%\Utilities\Bin\dx_setenv.cmd command, before attempting
+ to run configure.
+
+ The actual commands needed to build Qt depends on your development
+ system. For Microsoft Visual Studio to create the library and
+ compile all the demos, examples, tools and tutorials type:
+
+ nmake
+
+ If you need to reconfigure and rebuild Qt from the same location,
+ ensure that all traces of the previous configuration are removed
+ by entering the build directory and typing
+
+ nmake confclean
+
+ before running the configure script again.
+
+5. That's all. Qt is now installed.
+
+ If you are new to Qt, we suggest that you take a look at the demos
+ and examples to see Qt in action. Run the Qt Examples and Demos
+ either by typing 'qtdemo' on the command line or through the
+ desktop's Start menu.
+
+ You might also want to try the following links:
+
+ http://qt.nokia.com/doc/%VERSION%/how-to-learn-qt.html
+ http://qt.nokia.com/doc/%VERSION%/tutorial.html
+ http://qt.nokia.com/developer
+
+ We hope you will enjoy using Qt. Good luck!
diff --git a/src/corelib/kernel/qcoreapplication.cpp b/src/corelib/kernel/qcoreapplication.cpp
index 51e8d00..9283730 100644
--- a/src/corelib/kernel/qcoreapplication.cpp
+++ b/src/corelib/kernel/qcoreapplication.cpp
@@ -364,7 +364,7 @@ void QCoreApplicationPrivate::appendApplicationPathToLibraryPaths()
QString app_location( QCoreApplication::applicationFilePath() );
app_location.truncate(app_location.lastIndexOf(QLatin1Char('/')));
app_location = QDir(app_location).canonicalPath();
- if (app_location != QLibraryInfo::location(QLibraryInfo::PluginsPath) && QFile::exists(app_location) && !app_libpaths->contains(app_location))
+ if (QFile::exists(app_location) && !app_libpaths->contains(app_location))
# endif
app_libpaths->append(app_location);
#endif
diff --git a/src/gui/graphicsview/qgraphicsitem.cpp b/src/gui/graphicsview/qgraphicsitem.cpp
index 31c106b..0145499 100644
--- a/src/gui/graphicsview/qgraphicsitem.cpp
+++ b/src/gui/graphicsview/qgraphicsitem.cpp
@@ -6953,10 +6953,12 @@ void QGraphicsItem::prepareGeometryChange()
if (d_ptr->inSetPosHelper)
return;
- if (d_ptr->flags & ItemClipsChildrenToShape)
+ if (d_ptr->flags & ItemClipsChildrenToShape
+ || d_ptr->ancestorFlags & QGraphicsItemPrivate::AncestorClipsChildren) {
d_ptr->invalidateCachedClipPathRecursively();
- else
+ } else {
d_ptr->invalidateCachedClipPath();
+ }
}
/*!
diff --git a/tests/auto/qgraphicsitem/tst_qgraphicsitem.cpp b/tests/auto/qgraphicsitem/tst_qgraphicsitem.cpp
index 218e9d2..9b8ce1f 100644
--- a/tests/auto/qgraphicsitem/tst_qgraphicsitem.cpp
+++ b/tests/auto/qgraphicsitem/tst_qgraphicsitem.cpp
@@ -246,6 +246,7 @@ private slots:
void itemClipsToShape();
void itemClipsChildrenToShape();
void itemClipsChildrenToShape2();
+ void itemClipsChildrenToShape3();
void itemClipsTextChildToShape();
void itemClippingDiscovery();
void ancestorFlags();
@@ -5048,6 +5049,37 @@ void tst_QGraphicsItem::itemClipsChildrenToShape2()
#endif
}
+void tst_QGraphicsItem::itemClipsChildrenToShape3()
+{
+ // Construct a scene with nested children, each 50 pixels offset from the elder.
+ // Set a top-level clipping flag
+ QGraphicsScene scene;
+ QGraphicsRectItem *parent = scene.addRect( 0, 0, 150, 150 );
+ QGraphicsRectItem *child = scene.addRect( 0, 0, 150, 150 );
+ QGraphicsRectItem *grandchild = scene.addRect( 0, 0, 150, 150 );
+ child->setParentItem(parent);
+ grandchild->setParentItem(child);
+ child->setPos( 50, 50 );
+ grandchild->setPos( 50, 50 );
+ parent->setFlag(QGraphicsItem::ItemClipsChildrenToShape);
+
+ QCOMPARE(scene.itemAt(25,25), (QGraphicsItem *)parent);
+ QCOMPARE(scene.itemAt(75,75), (QGraphicsItem *)child);
+ QCOMPARE(scene.itemAt(125,125), (QGraphicsItem *)grandchild);
+ QCOMPARE(scene.itemAt(175,175), (QGraphicsItem *)0);
+
+ // Move child to fully overlap the parent. The grandchild should
+ // now occupy two-thirds of the scene
+ child->prepareGeometryChange();
+ child->setPos( 0, 0 );
+
+ QCOMPARE(scene.itemAt(25,25), (QGraphicsItem *)child);
+ QCOMPARE(scene.itemAt(75,75), (QGraphicsItem *)grandchild);
+ QCOMPARE(scene.itemAt(125,125), (QGraphicsItem *)grandchild);
+ QCOMPARE(scene.itemAt(175,175), (QGraphicsItem *)0);
+}
+
+
void tst_QGraphicsItem::itemClipsTextChildToShape()
{
// Construct a scene with a rect that clips its children, with one text
diff --git a/tests/auto/qtextcodec/tst_qtextcodec.cpp b/tests/auto/qtextcodec/tst_qtextcodec.cpp
index 36f910a..3dafbee 100644
--- a/tests/auto/qtextcodec/tst_qtextcodec.cpp
+++ b/tests/auto/qtextcodec/tst_qtextcodec.cpp
@@ -1816,10 +1816,17 @@ void tst_QTextCodec::codecForHtml()
QCOMPARE(QTextCodec::codecForHtml(html)->mibEnum(), 4); // latin 1
- QCOMPARE(QTextCodec::codecForHtml(html, QTextCodec::codecForMib(106))->mibEnum(), 106); // utf-8
+ QCOMPARE(QTextCodec::codecForHtml(html, QTextCodec::codecForMib(106))->mibEnum(), 106); // UTF-8
html = "<html><head><meta http-equiv=\"content-type\" content=\"text/html; charset=ISO-8859-15\" /></head></html>";
QCOMPARE(QTextCodec::codecForHtml(html, QTextCodec::codecForMib(106))->mibEnum(), 111); // latin 15
+
+ html = "<html><head><meta content=\"text/html; charset=ISO-8859-15\" http-equiv=\"content-type\" /></head></html>";
+ QCOMPARE(QTextCodec::codecForHtml(html, QTextCodec::codecForMib(106))->mibEnum(), 111); // latin 15
+
+ html = "<html><head><meta http-equiv=\"content-type\" content=\"text/html; charset=invalid-foo\" /></head></html>";
+ QCOMPARE(QTextCodec::codecForHtml(html, QTextCodec::codecForMib(106))->mibEnum(), 106); // UTF-8
+ QCOMPARE(QTextCodec::codecForHtml(html)->mibEnum(), 4); // latin 1
}
void tst_QTextCodec::codecForUtfText_data()
diff --git a/tests/auto/windowsmobile/test/tst_windowsmobile.cpp b/tests/auto/windowsmobile/test/tst_windowsmobile.cpp
index 4fc870e..2d7c9ea 100644
--- a/tests/auto/windowsmobile/test/tst_windowsmobile.cpp
+++ b/tests/auto/windowsmobile/test/tst_windowsmobile.cpp
@@ -46,7 +46,7 @@
#include <QtGui>
#ifdef Q_OS_WINCE_WM
#include <windows.h>
-#include <ddhelper.h>
+#include "ddhelper.h"
#endif