summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--README.s60-mkspec99
-rwxr-xr-xbin/patch_capabilities.pl2
-rw-r--r--doc/src/declarative/qdeclarativeperformance.qdoc21
-rw-r--r--doc/src/snippets/code/doc_src_installation.qdoc2
-rw-r--r--src/s60installs/bwins/QtDeclarativeu.def1
-rw-r--r--src/s60installs/eabi/QtDeclarativeu.def1
-rw-r--r--tools/runonphone/trksignalhandler.cpp27
7 files changed, 45 insertions, 108 deletions
diff --git a/README.s60-mkspec b/README.s60-mkspec
deleted file mode 100644
index af500e1..0000000
--- a/README.s60-mkspec
+++ /dev/null
@@ -1,99 +0,0 @@
-How to build Qt for Symbian using the Linux makespec.
-
-Prerequisites:
-
- - Working RVCT 2.2 native Linux compiler. The new publicly
- available RVCT 4.0 compiler may work, but it hasn't been tested
- yet.
-
- - A working GnuPoc environment. See this page for details:
- http://www.martin.st/symbian/
- Download the latest version, unpack it and run the 'install_eka2_tools' script as
- described in the last part under the EKA2 part. The part about the your own gcc
- are not needed as we use the rvct compiler.
- Make sure you do the part about Wine setup as well.
-
- - Anderson Lizardo's patches for GnuPoc. Look for the
- qt_s60_gnupoc_v10.patch on this page:
- http://lizardo.wordpress.com/2009/09/24/installing-qt-for-s60-daily-snapshots-on-linux/
- and carry out the instructions under point 8: Installing Open C.
-
-Compiling:
-
- 1. First a few environment variables need to be set:
-
- export RVCT22LIB=<rvct-dir>/lib/armlib
- export EPOCROOT=<s60-root>
- export PATH=$PATH:<s60-root>/epoc32/tools:<rvctInstallDir>/bin
- export PATH=$PATH:<qt-root>/bin
-
- Replace the s60-root with the installation directory of your SDK,
- and the qt-root with the root of your Qt repository.
- These are good candidates for putting in a script somewhere.
-
- 2. Run configure. It needs a bit more switches than usual, so here's
- the full line:
-
- ./configure -developer-build -platform linux-g++ -xplatform \
- symbian/linux-armcc -little-endian -host-little-endian \
- -arch symbian
-
- 3. Compile Qt
-
- cd src
- make
-
- and then wait for a while.
-
- 4. Package and install Qt
-
- cd s60installs
-
- Edit Qt_template.pkg and change the first 0x2xxxxxxx to
- 0xExxxxxxx. Then execute:
-
- makesis Qt_template.pkg
- signsis Qt_template.sis Qt_template.sisx selfsigned.cer selfsigned.key
-
- Then put Qt_template.sisx on a memory card and install it from
- the phone file manager.
-
- Alternatively, you can use the runonphone tool found in the tools
- directory of Qt. To build, this requires a separately configured
- Qt installation for Linux, unfortunately. To use it, you also
- need have App TRK running on the phone. At the time of writing,
- only bleeding edge Linux kernels are able to autodetect the USB
- serial port on the phone, but you can force detection by running:
-
- modprobe usbserial vendor=0xXXXX product=0xXXXX
-
- The XXXXs should be replaced with the two values listed for your
- device when executing "lsusb". In most distributions, this will
- lead to the creation of two devices: /dev/ttyUSB0 and
- /dev/ttyUSB1. The latter is usually the one that App TRK responds
- to. Then execute:
-
- runonphone -p /dev/ttyUSB1 -s Qt_template.sisx dummy.exe
-
- The dummy.exe argument is irrelevant, since we are not executing
- anything yet.
-
- 5. Compile some helloworld application (I leave the details to you
- ;-)
-
- qmake
- make
-
- 6. Package, install and run application.
-
- makesis helloworld_template.pkg
- signsis helloworld_template.sis helloworld_template.sisx \
- <QTDIR>/src/s60installs/selfsigned.cer \
- <QTDIR>/src/s60installs/selfsigned.key
-
- Then either install by memory card, or install and run like this:
-
- runonphone -p /dev/ttyUSB1 -s helloworld_template.sisx \
- helloworld.exe
-
- 7. Enjoy "hello world" on the phone!
diff --git a/bin/patch_capabilities.pl b/bin/patch_capabilities.pl
index 501939a..7d6f5dc 100755
--- a/bin/patch_capabilities.pl
+++ b/bin/patch_capabilities.pl
@@ -186,7 +186,7 @@ if (@ARGV)
}
# If the line specifies a file, parse the source and destination locations.
- if ($line =~ m|\"([^\"]+)\"\s*\-\s*\"([^\"]+)\"|)
+ if ($line =~ m|^ *\"([^\"]+)\"\s*\-\s*\"([^\"]+)\"|)
{
my $sourcePath = $1;
diff --git a/doc/src/declarative/qdeclarativeperformance.qdoc b/doc/src/declarative/qdeclarativeperformance.qdoc
index 26c1e89..be8c029 100644
--- a/doc/src/declarative/qdeclarativeperformance.qdoc
+++ b/doc/src/declarative/qdeclarativeperformance.qdoc
@@ -115,4 +115,25 @@ provide an image that includes the frame and the shadow.
Avoid running JavaScript during animation. For example, running a complex
JavaScript expression for each frame of an x property animation.
+\section1 Rendering
+
+Often using a different graphics system will give superior performance to the native
+graphics system (this is especially the case on X11). This can be configured using
+QApplication::setGraphicsSystem() or via the command line using the \c -graphicssystem
+switch.
+
+You can enable OpenGL acceleration using the \c opengl graphics system, or by setting a
+QGLWidget as the viewport of your QDeclarativeView.
+
+You may need to try various options to find what works the best for your application.
+For embedded X11-based devices one recommended combination is to use the raster graphics
+system with a QGLWidget for the viewport. While this doesn't guarantee the \bold fastest
+performance for all use-cases, it typically has \bold{consistently good} performance for
+all use-cases. In contrast, only using the raster paint engine may result in very good
+performance for parts of your application and very poor performance elsewhere.
+
+The QML Viewer uses the raster graphics system by default for X11 and OS X. It also
+includes a \c -opengl command line option which sets a QGLWidget as the viewport of the
+view. On OS X, a QGLWidget is always used.
+
*/
diff --git a/doc/src/snippets/code/doc_src_installation.qdoc b/doc/src/snippets/code/doc_src_installation.qdoc
index 985f3da..c46159c 100644
--- a/doc/src/snippets/code/doc_src_installation.qdoc
+++ b/doc/src/snippets/code/doc_src_installation.qdoc
@@ -263,7 +263,7 @@ make
//! [40]
//! [41]
-cd src/s60installs
+cd src
make sis
//! [41]
diff --git a/src/s60installs/bwins/QtDeclarativeu.def b/src/s60installs/bwins/QtDeclarativeu.def
index e96f83f..8fdd72c 100644
--- a/src/s60installs/bwins/QtDeclarativeu.def
+++ b/src/s60installs/bwins/QtDeclarativeu.def
@@ -1675,4 +1675,5 @@ EXPORTS
?setBindingForObject@QDeclarativeEngineDebug@@QAE_NHABVQString@@ABVQVariant@@_N@Z @ 1674 NONAME ; bool QDeclarativeEngineDebug::setBindingForObject(int, class QString const &, class QVariant const &, bool)
??0QDeclarativeImageProvider@@QAE@W4ImageType@0@@Z @ 1675 NONAME ; QDeclarativeImageProvider::QDeclarativeImageProvider(enum QDeclarativeImageProvider::ImageType)
?setMethodBody@QDeclarativeEngineDebug@@QAE_NHABVQString@@0@Z @ 1676 NONAME ; bool QDeclarativeEngineDebug::setMethodBody(int, class QString const &, class QString const &)
+ ?resetBindingForObject@QDeclarativeEngineDebug@@QAE_NHABVQString@@@Z @ 1677 NONAME ; bool QDeclarativeEngineDebug::resetBindingForObject(int, class QString const &)
diff --git a/src/s60installs/eabi/QtDeclarativeu.def b/src/s60installs/eabi/QtDeclarativeu.def
index 083e07f..dd5103f 100644
--- a/src/s60installs/eabi/QtDeclarativeu.def
+++ b/src/s60installs/eabi/QtDeclarativeu.def
@@ -1706,4 +1706,5 @@ EXPORTS
_ZN25QDeclarativeImageProviderC1ENS_9ImageTypeE @ 1705 NONAME
_ZN25QDeclarativeImageProviderC2ENS_9ImageTypeE @ 1706 NONAME
_ZNK25QDeclarativeImageProvider9imageTypeEv @ 1707 NONAME
+ _ZN23QDeclarativeEngineDebug21resetBindingForObjectEiRK7QString @ 1708 NONAME
diff --git a/tools/runonphone/trksignalhandler.cpp b/tools/runonphone/trksignalhandler.cpp
index b6d446f..898692a 100644
--- a/tools/runonphone/trksignalhandler.cpp
+++ b/tools/runonphone/trksignalhandler.cpp
@@ -71,8 +71,10 @@ private:
QFile crashlogtextfile;
QFile crashstackfile;
QList<CrashState> queuedCrashes;
+ QList<int> dyingThreads;
QString crashlogPath;
bool crashlog;
+ bool terminateNeeded;
};
void TrkSignalHandler::copyingStarted()
@@ -201,15 +203,23 @@ void TrkSignalHandler::stopped(uint pc, uint pid, uint tid, const QString& reaso
cs.crashPC = pc;
cs.crashReason = reason;
- d->queuedCrashes.append(cs);
-
- if (d->queuedCrashes.count() == 1) {
- d->err << "Fetching registers and stack..." << endl;
- emit getRegistersAndCallStack(pid, tid);
+ if (d->dyingThreads.contains(tid)) {
+ if(d->queuedCrashes.isEmpty())
+ emit terminate();
+ else
+ d->terminateNeeded = true;
+ } else {
+ d->queuedCrashes.append(cs);
+ d->dyingThreads.append(tid);
+
+ if (d->queuedCrashes.count() == 1) {
+ d->err << "Fetching registers and stack..." << endl;
+ emit getRegistersAndCallStack(pid, tid);
+ }
}
}
else
- emit resume(pid, tid);
+ emit terminate();
}
void TrkSignalHandler::registersAndCallStackReadComplete(const QList<uint>& registers, const QByteArray& stack)
@@ -307,6 +317,8 @@ void TrkSignalHandler::registersAndCallStackReadComplete(const QList<uint>& regi
d->err << "Fetching registers and stack..." << endl;
emit getRegistersAndCallStack(cs.pid, cs.tid);
}
+ else if (d->terminateNeeded)
+ emit terminate();
}
@@ -333,7 +345,8 @@ TrkSignalHandlerPrivate::TrkSignalHandlerPrivate()
: out(stdout),
err(stderr),
loglevel(0),
- lastpercent(0)
+ lastpercent(0),
+ terminateNeeded(false)
{
}