# HG changeset patch # User Dremov Kirill (Nokia-D-MSW/Tampere) # Date 1268401597 -7200 # Node ID d3bac044e0f05777249b9d34823993929976531c # Parent 3b1da2848fc72f57d8d8d213ce2686c24ccfe497 Revision: 201007 Kit: 201008 diff -r 3b1da2848fc7 -r d3bac044e0f0 bin/patch_capabilities.bat --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/bin/patch_capabilities.bat Fri Mar 12 15:46:37 2010 +0200 @@ -0,0 +1,1 @@ +@perl.exe -S %~dp0patch_capabilities.pl %* diff -r 3b1da2848fc7 -r d3bac044e0f0 bin/patch_capabilities.pl --- a/bin/patch_capabilities.pl Fri Feb 19 23:40:16 2010 +0200 +++ b/bin/patch_capabilities.pl Fri Mar 12 15:46:37 2010 +0200 @@ -108,15 +108,57 @@ open (NEW_PKG, ">>".$tempPkgFileName); open (PKG, "<".$pkgFileName); + my $manufacturerElseBlock = 0; + # Parse each line. while () { + # Patch pkg UID my $line = $_; my $newLine = $line; - if ( $line =~ m/^\#.*\(0x[0-9|a-f|A-F]*\).*$/) + if ($line =~ m/^\#.*\(0x[0-9|a-f|A-F]*\).*$/) { $newLine =~ s/\(0x./\(0xE/; } + + # Patch embedded sis name and UID + if ($line =~ m/^@.*\.sis.*\(0x[0-9|a-f|A-F]*\).*$/) + { + $newLine =~ s/\(0x./\(0xE/; + if ($line !~ m/^.*_selfsigned.sis.*$/) + { + $newLine =~ s/\.sis/_selfsigned\.sis/i; + } + } + + # Remove all dependencies to other packages to reduce unnecessary error messages + # from depended packages that are also patched and therefore have different UID. + if ($line =~ m/^\(0x[0-9|a-f|A-F]*\).*\{.*\}$/) + { + $newLine = "\n" + } + + # Remove manufacturer ifdef + if ($line =~ m/^.*\(MANUFACTURER\)\=\(.*\).*$/) + { + $newLine = "\n"; + } + + if ($line =~ m/^ELSEIF.*MANUFACTURER$/) + { + $manufacturerElseBlock = 1; + } + + if ($manufacturerElseBlock eq 1) + { + $newLine = "\n"; + } + + if ($line =~ m/^ENDIF.*MANUFACTURER$/) + { + $manufacturerElseBlock = 0; + } + print NEW_PKG $newLine; chomp ($line); diff -r 3b1da2848fc7 -r d3bac044e0f0 configure --- a/configure Fri Feb 19 23:40:16 2010 +0200 +++ b/configure Fri Mar 12 15:46:37 2010 +0200 @@ -115,7 +115,7 @@ inc_file=`echo "$line" | sed -n -e "/^include.*(.*)/s/include.*(\(.*\)).*$/\1/p"` current_dir=`dirname "$1"` conf_file="$current_dir/$inc_file" - if [ ! -e "$conf_file" ]; then + if [ ! -f "$conf_file" ]; then echo "WARNING: Unable to find file $conf_file" >&2 continue fi @@ -2305,7 +2305,7 @@ fi # symlink fonts to be able to run application from build directory -if [ "$PLATFORM_QWS" = "yes" ] && [ ! -e "${outpath}/lib/fonts" ]; then +if [ "$PLATFORM_QWS" = "yes" ] && [ ! -d "${outpath}/lib/fonts" ]; then if [ "$PLATFORM" = "$XPLATFORM" ]; then mkdir -p "${outpath}/lib" ln -s "${relpath}/lib/fonts" "${outpath}/lib/fonts" @@ -7606,6 +7606,8 @@ OPENSSL_LINKAGE="(linked)" fi echo "OpenSSL support ..... $CFG_OPENSSL $OPENSSL_LINKAGE" +echo "Alsa support ........ $CFG_ALSA" +echo [ "$CFG_PTMALLOC" != "no" ] && echo "Use ptmalloc ........ $CFG_PTMALLOC" @@ -7630,8 +7632,6 @@ echo "NOTE: Mac OS X frameworks implicitly build debug and release Qt libraries." echo fi -echo "alsa support ........ $CFG_ALSA" -echo sepath=`echo "$relpath" | sed -e 's/\\./\\\\./g'` PROCS=1 diff -r 3b1da2848fc7 -r d3bac044e0f0 configure.exe Binary file configure.exe has changed diff -r 3b1da2848fc7 -r d3bac044e0f0 content/apps/qt.sisx Binary file content/apps/qt.sisx has changed diff -r 3b1da2848fc7 -r d3bac044e0f0 demos/embedded/anomaly/src/AddressBar.cpp --- a/demos/embedded/anomaly/src/AddressBar.cpp Fri Feb 19 23:40:16 2010 +0200 +++ b/demos/embedded/anomaly/src/AddressBar.cpp Fri Mar 12 15:46:37 2010 +0200 @@ -64,9 +64,9 @@ AddressBar::AddressBar(QWidget *parent) : QWidget(parent) { - m_lineEdit = new LineEdit(parent); + m_lineEdit = new LineEdit(this); connect(m_lineEdit, SIGNAL(returnPressed()), SLOT(processAddress())); - m_toolButton = new QToolButton(parent); + m_toolButton = new QToolButton(this); m_toolButton->setText("Go"); connect(m_toolButton, SIGNAL(clicked()), SLOT(processAddress())); } diff -r 3b1da2848fc7 -r d3bac044e0f0 demos/embedded/anomaly/src/BrowserView.cpp --- a/demos/embedded/anomaly/src/BrowserView.cpp Fri Feb 19 23:40:16 2010 +0200 +++ b/demos/embedded/anomaly/src/BrowserView.cpp Fri Mar 12 15:46:37 2010 +0200 @@ -71,7 +71,7 @@ m_zoomLevels << 100; m_zoomLevels << 110 << 120 << 133 << 150 << 170 << 200 << 240 << 300; - QTimer::singleShot(0, this, SLOT(initialize())); + initialize(); } void BrowserView::initialize() @@ -82,6 +82,7 @@ connect(m_controlStrip, SIGNAL(menuClicked()), SIGNAL(menuButtonClicked())); connect(m_controlStrip, SIGNAL(backClicked()), m_webView, SLOT(back())); connect(m_controlStrip, SIGNAL(forwardClicked()), m_webView, SLOT(forward())); + connect(m_controlStrip, SIGNAL(closeClicked()), qApp, SLOT(quit())); QPalette pal = m_webView->palette(); pal.setBrush(QPalette::Base, Qt::white); diff -r 3b1da2848fc7 -r d3bac044e0f0 demos/embedded/anomaly/src/BrowserWindow.cpp --- a/demos/embedded/anomaly/src/BrowserWindow.cpp Fri Feb 19 23:40:16 2010 +0200 +++ b/demos/embedded/anomaly/src/BrowserWindow.cpp Fri Mar 12 15:46:37 2010 +0200 @@ -93,12 +93,12 @@ { // we use a ratio to handle resize corectly const int pos = -qRound(slideRatio * width()); - m_slidingSurface->scroll(pos - m_homeView->x(), 0); + m_slidingSurface->scroll(pos - m_browserView->x(), 0); - if (qFuzzyCompare(slideRatio, static_cast(1.0f))) { + if (qFuzzyCompare(slideRatio, static_cast(0.0f))) { m_browserView->show(); m_homeView->hide(); - } else if (qFuzzyCompare(slideRatio, static_cast(0.0f))) { + } else if (qFuzzyCompare(slideRatio, static_cast(1.0f))) { m_homeView->show(); m_browserView->hide(); } else { @@ -110,13 +110,13 @@ qreal BrowserWindow::slideValue() const { Q_ASSERT(m_slidingSurface->x() < width()); - return static_cast(qAbs(m_homeView->x())) / width(); + return static_cast(qAbs(m_browserView->x())) / width(); } void BrowserWindow::showHomeView() { m_animation->setStartValue(slideValue()); - m_animation->setEndValue(0.0f); + m_animation->setEndValue(1.0f); m_animation->start(); m_homeView->setFocus(); } @@ -124,7 +124,7 @@ void BrowserWindow::showBrowserView() { m_animation->setStartValue(slideValue()); - m_animation->setEndValue(1.0f); + m_animation->setEndValue(0.0f); m_animation->start(); m_browserView->setFocus(); @@ -140,7 +140,7 @@ ? QAbstractAnimation::Forward : QAbstractAnimation::Backward; m_animation->setDirection(direction); - } else if (qFuzzyCompare(slideValue(), static_cast(1.0f))) + } else if (qFuzzyCompare(slideValue(), static_cast(0.0f))) showHomeView(); else showBrowserView(); @@ -151,16 +151,16 @@ void BrowserWindow::resizeEvent(QResizeEvent *event) { const QSize oldSize = event->oldSize(); - const qreal oldSlidingRatio = static_cast(qAbs(m_homeView->x())) / oldSize.width(); + const qreal oldSlidingRatio = static_cast(qAbs(m_browserView->x())) / oldSize.width(); const QSize newSize = event->size(); m_slidingSurface->resize(newSize.width() * 2, newSize.height()); m_homeView->resize(newSize); - m_homeView->move(0, 0); + m_homeView->move(newSize.width(), 0); m_browserView->resize(newSize); - m_browserView->move(newSize.width(), 0); + m_browserView->move(0, 0); setSlideValue(oldSlidingRatio); } diff -r 3b1da2848fc7 -r d3bac044e0f0 demos/embedded/anomaly/src/ControlStrip.cpp --- a/demos/embedded/anomaly/src/ControlStrip.cpp Fri Feb 19 23:40:16 2010 +0200 +++ b/demos/embedded/anomaly/src/ControlStrip.cpp Fri Mar 12 15:46:37 2010 +0200 @@ -50,6 +50,7 @@ menuPixmap.load(":/images/edit-find.png"); backPixmap.load(":/images/go-previous.png"); forwardPixmap.load(":/images/go-next.png"); + closePixmap.load(":/images/button-close.png"); } QSize ControlStrip::sizeHint() const @@ -74,16 +75,23 @@ } if (x > width() - h) { - emit forwardClicked(); - event->accept(); - return; - } + emit closeClicked(); + event->accept(); + return; + + } if ((x < width() - 2 * h) && (x > width() - 3 * h)) { - emit backClicked(); - event->accept(); - return; - } + emit forwardClicked(); + event->accept(); + return; + } + + if ((x < width() - 3 * h) && (x > width() - 5 * h)) { + emit backClicked(); + event->accept(); + return; + } } void ControlStrip::paintEvent(QPaintEvent *event) @@ -91,11 +99,14 @@ int h = height(); int s = (h - menuPixmap.height()) / 2; - QPainter p(this); - p.fillRect(event->rect(), QColor(32, 32, 32, 192)); - p.setCompositionMode(QPainter::CompositionMode_SourceOver); - p.drawPixmap(s, s, menuPixmap); - p.drawPixmap(width() - 3 * h + s, s, backPixmap); - p.drawPixmap(width() - h + s, s, forwardPixmap); - p.end(); + + QPainter p(this); + p.fillRect(event->rect(), QColor(32, 32, 32, 192)); + p.setCompositionMode(QPainter::CompositionMode_SourceOver); + p.drawPixmap(s, s, menuPixmap); + p.drawPixmap(width() - h + s, s, closePixmap); + p.drawPixmap(width() - 3 * h + s, s, forwardPixmap); + p.drawPixmap(width() - 5 * h + s, s, backPixmap); + + p.end(); } diff -r 3b1da2848fc7 -r d3bac044e0f0 demos/embedded/anomaly/src/ControlStrip.h --- a/demos/embedded/anomaly/src/ControlStrip.h Fri Feb 19 23:40:16 2010 +0200 +++ b/demos/embedded/anomaly/src/ControlStrip.h Fri Mar 12 15:46:37 2010 +0200 @@ -58,6 +58,7 @@ void menuClicked(); void backClicked(); void forwardClicked(); + void closeClicked (); protected: void paintEvent(QPaintEvent *event); @@ -67,6 +68,7 @@ QPixmap menuPixmap; QPixmap backPixmap; QPixmap forwardPixmap; + QPixmap closePixmap; }; #endif // CONTROLSTRIP_H diff -r 3b1da2848fc7 -r d3bac044e0f0 demos/embedded/anomaly/src/HomeView.cpp --- a/demos/embedded/anomaly/src/HomeView.cpp Fri Feb 19 23:40:16 2010 +0200 +++ b/demos/embedded/anomaly/src/HomeView.cpp Fri Mar 12 15:46:37 2010 +0200 @@ -51,12 +51,16 @@ : QWidget(parent) , m_addressBar(0) { - m_addressBar = new AddressBar(parent); + m_addressBar = new AddressBar(this); connect(m_addressBar, SIGNAL(addressEntered(QString)), SLOT(gotoAddress(QString))); - m_bookmarks = new BookmarksView(parent); + m_bookmarks = new BookmarksView(this); connect(m_bookmarks, SIGNAL(urlSelected(QUrl)), SIGNAL(urlActivated(QUrl))); + QPalette pal = m_bookmarks->palette(); + pal.setBrush(QPalette::Base, Qt::white); + m_bookmarks->setPalette(pal); + QVBoxLayout *layout = new QVBoxLayout(this); layout->setMargin(4); layout->setSpacing(4); diff -r 3b1da2848fc7 -r d3bac044e0f0 demos/embedded/anomaly/src/anomaly.qrc --- a/demos/embedded/anomaly/src/anomaly.qrc Fri Feb 19 23:40:16 2010 +0200 +++ b/demos/embedded/anomaly/src/anomaly.qrc Fri Mar 12 15:46:37 2010 +0200 @@ -5,5 +5,6 @@ images/edit-find.png images/list-add.png images/list-remove.png + images/button-close.png diff -r 3b1da2848fc7 -r d3bac044e0f0 demos/embedded/anomaly/src/images/button-close.png Binary file demos/embedded/anomaly/src/images/button-close.png has changed diff -r 3b1da2848fc7 -r d3bac044e0f0 demos/embedded/fluidlauncher/backup_registration.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/demos/embedded/fluidlauncher/backup_registration.xml Fri Mar 12 15:46:37 2010 +0200 @@ -0,0 +1,8 @@ + + + + + + + + diff -r 3b1da2848fc7 -r d3bac044e0f0 demos/embedded/fluidlauncher/fluidlauncher.pro --- a/demos/embedded/fluidlauncher/fluidlauncher.pro Fri Feb 19 23:40:16 2010 +0200 +++ b/demos/embedded/fluidlauncher/fluidlauncher.pro Fri Mar 12 15:46:37 2010 +0200 @@ -207,8 +207,11 @@ saxbookmarks.sources += $$PWD/../../../examples/xml/saxbookmarks/jennifer.xbel saxbookmarks.path = /data/qt/saxbookmarks + fluidbackup.sources = backup_registration.xml + fluidbackup.path = /private/$$replace(TARGET.UID3, 0x,) + DEPLOYMENT += config files executables viewerimages saxbookmarks reg_resource resource \ - mifs desktopservices_music desktopservices_images + mifs desktopservices_music desktopservices_images fluidbackup TARGET.EPOCHEAPSIZE = 100000 20000000 } diff -r 3b1da2848fc7 -r d3bac044e0f0 dist/changes-4.6.1 --- a/dist/changes-4.6.1 Fri Feb 19 23:40:16 2010 +0200 +++ b/dist/changes-4.6.1 Fri Mar 12 15:46:37 2010 +0200 @@ -247,6 +247,8 @@ * [QTBUG-6867] Fixed regression in the parsing of paths with relative offsets. * [QTBUG-6899] Fixed crash when parsing invalid coordinate list. + - QtXmlPatterns + * [QTBUG-6771] Fixed static builds. Qt Plugins ---------- diff -r 3b1da2848fc7 -r d3bac044e0f0 dist/changes-4.6.2 --- a/dist/changes-4.6.2 Fri Feb 19 23:40:16 2010 +0200 +++ b/dist/changes-4.6.2 Fri Mar 12 15:46:37 2010 +0200 @@ -40,8 +40,8 @@ QtCore ------ - - foo - * bar + - QXmlStreamWriter + * [QTBUG-6893] Fixed adding extra Byte Order Marks when writing to a xml file. QtGui ----- @@ -49,6 +49,9 @@ - foo * bar + * [QTBUG-7029] Fixed a crash when re-creating QApplication object due to a + dangling gesture manager pointer. + QtDBus ------ @@ -85,6 +88,12 @@ - foo * bar +QtMultimedia +------------ + + - QAudioInput + * [QTBUG-7044]: QAudioInput stopped working correctly after suspend()/resume() on linux. + Qt Plugins ---------- @@ -110,8 +119,11 @@ Qt for Linux/X11 ---------------- + * Fix a bug where QPixmap::serialNumber was not set on a transformed pixmap + in Qt/X11. - - + * Fixed a crash when an input method tries to create a widget after the + application is destroyed. Qt for Windows -------------- @@ -121,7 +133,10 @@ Qt for Mac OS X --------------- - - + - [QTBUG-7312]: Menubar and dock disappear after hiding a fullscreen widget on Cocoa. + - [QTBUG-7522]: Drawing fake buttons using QMacStyle+QStyleOptionViewItemV4 lead to crash. + - [QTBUG-7625]: Calling showFullScreen() then showNormal() on a widget results in top menu hiding. + Qt for Embedded Linux --------------------- @@ -130,7 +145,13 @@ DirectFB -------- - + * Fix a bug where QPixmap::serialNumber was not set on a transformed pixmap + in DirectFB. + * Reimplement QPixmapData::scroll for QDirectFBPixmapData which optimizes + QPixmap::scroll + * Fix a rendering issue for semi-transparent top level windows in DirectFB. + * Make it possible to fall back to the raster engine for stretch blits in + DirectFB using QT_NO_DIRECTFB_STRETCHBLIT - Qt for Windows CE @@ -143,7 +164,12 @@ **************************************************************************** - Designer - * foo + * [QTBUG-6965] Enabled editing seconds of QDateTime-type properties + * [QTBUG-6757] Fixed bug where selection handles would be affected by + a style sheet set on the main form. + + - uic3 + * [QTBUG-7404] Added option to preserve layout names set by Qt 3 Designer. - qdoc3 * bar diff -r 3b1da2848fc7 -r d3bac044e0f0 examples/assistant/simpletextviewer/findfiledialog.cpp --- a/examples/assistant/simpletextviewer/findfiledialog.cpp Fri Feb 19 23:40:16 2010 +0200 +++ b/examples/assistant/simpletextviewer/findfiledialog.cpp Fri Mar 12 15:46:37 2010 +0200 @@ -102,7 +102,7 @@ if (file.open(QIODevice::ReadOnly)) { QString data(file.readAll()); - if (fileName.endsWith(".html")) + if (fileName.endsWith(QLatin1String(".html"))) currentEditor->setHtml(data); else currentEditor->setPlainText(data); @@ -119,7 +119,7 @@ void FindFileDialog::findFiles() { - QRegExp filePattern(fileNameComboBox->currentText() + "*"); + QRegExp filePattern(fileNameComboBox->currentText() + '*'); filePattern.setPatternSyntax(QRegExp::Wildcard); QDir directory(directoryComboBox->currentText()); @@ -127,7 +127,7 @@ QStringList allFiles = directory.entryList(QDir::Files | QDir::NoSymLinks); QStringList matchingFiles; - foreach (QString file, allFiles) { + foreach (const QString &file, allFiles) { if (filePattern.exactMatch(file)) matchingFiles << file; } diff -r 3b1da2848fc7 -r d3bac044e0f0 examples/designer/taskmenuextension/tictactoedialog.h --- a/examples/designer/taskmenuextension/tictactoedialog.h Fri Feb 19 23:40:16 2010 +0200 +++ b/examples/designer/taskmenuextension/tictactoedialog.h Fri Mar 12 15:46:37 2010 +0200 @@ -55,7 +55,7 @@ Q_OBJECT public: - TicTacToeDialog(TicTacToe *plugin = 0, QWidget *parent = 0); + explicit TicTacToeDialog(TicTacToe *plugin = 0, QWidget *parent = 0); QSize sizeHint() const; diff -r 3b1da2848fc7 -r d3bac044e0f0 examples/network/googlesuggest/googlesuggest.cpp --- a/examples/network/googlesuggest/googlesuggest.cpp Fri Feb 19 23:40:16 2010 +0200 +++ b/examples/network/googlesuggest/googlesuggest.cpp Fri Mar 12 15:46:37 2010 +0200 @@ -231,4 +231,5 @@ networkReply->deleteLater(); } -//! [9] \ No newline at end of file +//! [9] + diff -r 3b1da2848fc7 -r d3bac044e0f0 examples/network/googlesuggest/searchbox.cpp --- a/examples/network/googlesuggest/searchbox.cpp Fri Feb 19 23:40:16 2010 +0200 +++ b/examples/network/googlesuggest/searchbox.cpp Fri Mar 12 15:46:37 2010 +0200 @@ -69,4 +69,5 @@ QString url = QString(GSEARCH_URL).arg(text()); QDesktopServices::openUrl(QUrl(url)); } -//! [2] \ No newline at end of file +//! [2] + diff -r 3b1da2848fc7 -r d3bac044e0f0 examples/network/network-chat/chatdialog.cpp --- a/examples/network/network-chat/chatdialog.cpp Fri Feb 19 23:40:16 2010 +0200 +++ b/examples/network/network-chat/chatdialog.cpp Fri Mar 12 15:46:37 2010 +0200 @@ -79,7 +79,7 @@ QTextCursor cursor(textEdit->textCursor()); cursor.movePosition(QTextCursor::End); QTextTable *table = cursor.insertTable(1, 2, tableFormat); - table->cellAt(0, 0).firstCursorPosition().insertText("<" + from + "> "); + table->cellAt(0, 0).firstCursorPosition().insertText('<' + from + "> "); table->cellAt(0, 1).firstCursorPosition().insertText(message); QScrollBar *bar = textEdit->verticalScrollBar(); bar->setValue(bar->maximum()); diff -r 3b1da2848fc7 -r d3bac044e0f0 examples/network/network-chat/client.cpp --- a/examples/network/network-chat/client.cpp Fri Feb 19 23:40:16 2010 +0200 +++ b/examples/network/network-chat/client.cpp Fri Mar 12 15:46:37 2010 +0200 @@ -69,8 +69,8 @@ QString Client::nickName() const { - return QString(peerManager->userName()) + "@" + QHostInfo::localHostName() - + ":" + QString::number(server.serverPort()); + return QString(peerManager->userName()) + '@' + QHostInfo::localHostName() + + ':' + QString::number(server.serverPort()); } bool Client::hasConnection(const QHostAddress &senderIp, int senderPort) const diff -r 3b1da2848fc7 -r d3bac044e0f0 examples/network/network-chat/connection.cpp --- a/examples/network/network-chat/connection.cpp Fri Feb 19 23:40:16 2010 +0200 +++ b/examples/network/network-chat/connection.cpp Fri Mar 12 15:46:37 2010 +0200 @@ -83,7 +83,7 @@ return false; QByteArray msg = message.toUtf8(); - QByteArray data = "MESSAGE " + QByteArray::number(msg.size()) + " " + msg; + QByteArray data = "MESSAGE " + QByteArray::number(msg.size()) + ' ' + msg; return write(data) == data.size(); } @@ -118,7 +118,7 @@ return; } - username = QString(buffer) + "@" + peerAddress().toString() + ":" + username = QString(buffer) + '@' + peerAddress().toString() + ':' + QString::number(peerPort()); currentDataType = Undefined; numBytesForCurrentDataType = 0; @@ -162,7 +162,7 @@ void Connection::sendGreetingMessage() { QByteArray greeting = greetingMessage.toUtf8(); - QByteArray data = "GREETING " + QByteArray::number(greeting.size()) + " " + greeting; + QByteArray data = "GREETING " + QByteArray::number(greeting.size()) + ' ' + greeting; if (write(data) == data.size()) isGreetingMessageSent = true; } diff -r 3b1da2848fc7 -r d3bac044e0f0 examples/network/network-chat/peermanager.cpp --- a/examples/network/network-chat/peermanager.cpp Fri Feb 19 23:40:16 2010 +0200 +++ b/examples/network/network-chat/peermanager.cpp Fri Mar 12 15:46:37 2010 +0200 @@ -61,7 +61,7 @@ foreach (QString string, envVariables) { int index = environment.indexOf(QRegExp(string)); if (index != -1) { - QStringList stringList = environment.at(index).split("="); + QStringList stringList = environment.at(index).split('='); if (stringList.size() == 2) { username = stringList.at(1).toUtf8(); break; diff -r 3b1da2848fc7 -r d3bac044e0f0 examples/network/qftp/ftpwindow.cpp --- a/examples/network/qftp/ftpwindow.cpp Fri Feb 19 23:40:16 2010 +0200 +++ b/examples/network/qftp/ftpwindow.cpp Fri Mar 12 15:46:37 2010 +0200 @@ -324,7 +324,8 @@ if (isDirectory.value(name)) { fileList->clear(); isDirectory.clear(); - currentPath += "/" + name; + currentPath += '/'; + currentPath += name; ftp->cd(name); ftp->list(); cdToParentButton->setEnabled(true); diff -r 3b1da2848fc7 -r d3bac044e0f0 examples/network/qftp/sym_iap_util.h --- a/examples/network/qftp/sym_iap_util.h Fri Feb 19 23:40:16 2010 +0200 +++ b/examples/network/qftp/sym_iap_util.h Fri Mar 12 15:46:37 2010 +0200 @@ -298,7 +298,7 @@ #ifdef QT_NO_UNICODE return QString::fromLocal8Bit(aDescriptor.Ptr(), aDescriptor.Length()); #else - return QString::fromUtf16(aDescriptor.Ptr(), aDescriptor.Length()); + return QString((const QChar *)aDescriptor.Ptr(), aDescriptor.Length()); #endif } diff -r 3b1da2848fc7 -r d3bac044e0f0 examples/network/securesocketclient/sslclient.cpp --- a/examples/network/securesocketclient/sslclient.cpp Fri Feb 19 23:40:16 2010 +0200 +++ b/examples/network/securesocketclient/sslclient.cpp Fri Mar 12 15:46:37 2010 +0200 @@ -177,7 +177,7 @@ void SslClient::sendData() { QString input = form->sessionInput->text(); - appendString(input + "\n"); + appendString(input + '\n'); socket->write(input.toUtf8() + "\r\n"); form->sessionInput->clear(); } diff -r 3b1da2848fc7 -r d3bac044e0f0 examples/network/torrent/trackerclient.cpp --- a/examples/network/torrent/trackerclient.cpp Fri Feb 19 23:40:16 2010 +0200 +++ b/examples/network/torrent/trackerclient.cpp Fri Mar 12 15:46:37 2010 +0200 @@ -105,7 +105,7 @@ QString passkey = "?"; if (fullUrl.contains("?passkey")) { passkey = metaInfo.announceUrl().mid(fullUrl.indexOf("?passkey"), -1); - passkey += "&"; + passkey += '&'; } // Percent encode the hash diff -r 3b1da2848fc7 -r d3bac044e0f0 examples/tools/customtype/message.cpp --- a/examples/tools/customtype/message.cpp Fri Feb 19 23:40:16 2010 +0200 +++ b/examples/tools/customtype/message.cpp Fri Mar 12 15:46:37 2010 +0200 @@ -64,7 +64,7 @@ } //! [custom type streaming operator] -QDebug &operator<<(QDebug &dbg, const Message &message) +QDebug operator<<(QDebug dbg, const Message &message) { QStringList pieces = message.body().split("\r\n", QString::SkipEmptyParts); if (pieces.isEmpty()) diff -r 3b1da2848fc7 -r d3bac044e0f0 examples/tools/customtype/message.h --- a/examples/tools/customtype/message.h Fri Feb 19 23:40:16 2010 +0200 +++ b/examples/tools/customtype/message.h Fri Mar 12 15:46:37 2010 +0200 @@ -70,7 +70,7 @@ //! [custom type meta-type declaration] //! [custom type streaming operator] -QDebug &operator<<(QDebug &dbg, const Message &message); +QDebug operator<<(QDebug dbg, const Message &message); //! [custom type streaming operator] #endif diff -r 3b1da2848fc7 -r d3bac044e0f0 examples/uitools/textfinder/textfinder.cpp --- a/examples/uitools/textfinder/textfinder.cpp Fri Feb 19 23:40:16 2010 +0200 +++ b/examples/uitools/textfinder/textfinder.cpp Fri Mar 12 15:46:37 2010 +0200 @@ -116,7 +116,7 @@ if (isFirstTime == false) document->undo(); - if (searchString == "") { + if (searchString.isEmpty()) { QMessageBox::information(this, tr("Empty Search Field"), "The search field is empty. Please enter a word and click Find."); } else { diff -r 3b1da2848fc7 -r d3bac044e0f0 examples/webkit/framecapture/framecapture.pro --- a/examples/webkit/framecapture/framecapture.pro Fri Feb 19 23:40:16 2010 +0200 +++ b/examples/webkit/framecapture/framecapture.pro Fri Mar 12 15:46:37 2010 +0200 @@ -1,4 +1,4 @@ -QT += webkit +QT += webkit network HEADERS = framecapture.h SOURCES = main.cpp \ diff -r 3b1da2848fc7 -r d3bac044e0f0 examples/webkit/simpleselector/simpleselector.pro --- a/examples/webkit/simpleselector/simpleselector.pro Fri Feb 19 23:40:16 2010 +0200 +++ b/examples/webkit/simpleselector/simpleselector.pro Fri Mar 12 15:46:37 2010 +0200 @@ -1,4 +1,4 @@ -QT += webkit +QT += webkit network FORMS = window.ui HEADERS = window.h SOURCES = main.cpp \ diff -r 3b1da2848fc7 -r d3bac044e0f0 layers.sysdef.xml --- a/layers.sysdef.xml Fri Feb 19 23:40:16 2010 +0200 +++ b/layers.sysdef.xml Fri Mar 12 15:46:37 2010 +0200 @@ -7,12 +7,12 @@ - + - + diff -r 3b1da2848fc7 -r d3bac044e0f0 mkspecs/common/symbian/symbian.conf --- a/mkspecs/common/symbian/symbian.conf Fri Feb 19 23:40:16 2010 +0200 +++ b/mkspecs/common/symbian/symbian.conf Fri Mar 12 15:46:37 2010 +0200 @@ -30,6 +30,7 @@ QMAKE_CXXFLAGS = $$QMAKE_CFLAGS QMAKE_CXXFLAGS.CW = QMAKE_CXXFLAGS.ARMCC = --visibility_inlines_hidden +QMAKE_CXXFLAGS.GCCE = -fvisibility-inlines-hidden QMAKE_CXXFLAGS_DEPS = $$QMAKE_CFLAGS_DEPS QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF @@ -64,12 +65,12 @@ QMAKE_LINK_OBJECT_SCRIPT= QMAKE_LIBS = -llibc -llibm -leuser -llibdl -lcone -leikcore -lmediaclientaudio -leikcoctl -leiksrv -lapparc -lavkon -lefsrv -lcharconv -lws32 -lhal -lgdi -lapgrfx -QMAKE_LIBS_CORE = $$QMAKE_LIBS -llibpthread -lefsrv -lcharconv -QMAKE_LIBS_GUI = $$QMAKE_LIBS_CORE -lfbscli -lbitgdi -lhal -lgdi -lws32 -lapgrfx -lcone -leikcore -lmediaclientaudio -leikcoctl -leiksrv -lapparc +QMAKE_LIBS_CORE = $$QMAKE_LIBS -llibpthread -lefsrv +QMAKE_LIBS_GUI = $$QMAKE_LIBS_CORE -lfbscli -lbitgdi -lhal -lgdi -lws32 -lapgrfx -lcone -leikcore -lmediaclientaudio -leikcoctl -leiksrv -lapparc -lcentralrepository QMAKE_LIBS_NETWORK = QMAKE_LIBS_EGL = -llibEGL QMAKE_LIBS_OPENGL = -QMAKE_LIBS_OPENVG = -llibOpenVG -lgraphicsresource +QMAKE_LIBS_OPENVG = -llibOpenVG -lgraphicsresource -lfbscli -lbitgdi -lgdi QMAKE_LIBS_COMPAT = QMAKE_LIBS_QT_ENTRY = -llibcrt0.lib QMAKE_LIBS_S60 = -lavkon @@ -92,9 +93,9 @@ QMAKE_CHK_DIR_EXISTS = if not exist } -QMAKE_MOC = /epoc32/tools/qt/moc.exe -QMAKE_UIC = /epoc32/tools/qt/uic.exe -QMAKE_IDC = /epoc32/tools/qt/idc.exe +QMAKE_MOC = /epoc32/tools/qt/moc$$(DOTEXE) +QMAKE_UIC = /epoc32/tools/qt/uic$$(DOTEXE) +QMAKE_IDC = /epoc32/tools/qt/idc$$(DOTEXE) QMAKE_IDL = midl QMAKE_LIB = /epoc32/gcc_mingw/bin/ar -ru diff -r 3b1da2848fc7 -r d3bac044e0f0 mkspecs/features/symbian/def_files.prf --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mkspecs/features/symbian/def_files.prf Fri Mar 12 15:46:37 2010 +0200 @@ -0,0 +1,34 @@ +# With DEF files enabled, removed exported symbols are treated as errors +# and there is binary compatibility between successive builds. + +CONFIG -= def_files_disabled + +# Firstly, if the MMP_RULES already contain a defBlock variable, don't generate another one +# (this bit is slightly magic, because it depends upon everyone creating their DEFFILE statements +# in a defBlock variable; but otherwise we have to expand MMP_RULES then scan for the DEFFILE keyword) +!contains(MMP_RULES, defBlock) { + # Apps are executables on Symbian, so don't have exports, and therefore don't have DEF files + # Plugins use standard DEF files, which qmake generates, so shouldn't be using these DEFFILE + # statements - they use the qmake generated statements instead + # Static libraries obviously don't have DEF files, as they don't take part in dynamic linkage + !contains(TEMPLATE, app):!contains(CONFIG, plugin):!contains(CONFIG, staticlib): { + !isEmpty(defFilePath) { + defBlock = \ + "$${LITERAL_HASH}ifdef WINSCW" \ + "DEFFILE $$defFilePath/bwins/$${TARGET}.def" \ + "$${LITERAL_HASH}elif defined EABI" \ + "DEFFILE $$defFilePath/eabi/$${TARGET}.def" \ + "$${LITERAL_HASH}endif" + } else { + # If defFilePath is not defined, then put the folders containing the DEF files at the + # same level as the .pro (and generated MMP) file(s) + defBlock = \ + "$${LITERAL_HASH}ifdef WINSCW" \ + "DEFFILE ./bwins/$${TARGET}.def" \ + "$${LITERAL_HASH}elif defined EABI" \ + "DEFFILE ./eabi/$${TARGET}.def" \ + "$${LITERAL_HASH}endif" + } + MMP_RULES += defBlock + } +} diff -r 3b1da2848fc7 -r d3bac044e0f0 mkspecs/features/symbian/def_files_disabled.prf --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mkspecs/features/symbian/def_files_disabled.prf Fri Mar 12 15:46:37 2010 +0200 @@ -0,0 +1,13 @@ +# With DEF files disabled, binary compatibility is broken every time you build + +CONFIG -= def_files + +# See def_files.prf for reasoning on the slight nastiness of this +!contains(MMP_RULES, defBlock) { + # See def_files.prf for reasoning for excluding target types and configs below + !contains(TEMPLATE, app):!contains(CONFIG, plugin):!contains(CONFIG, staticlib): { + # with EXPORTUNFROZEN enabled, new exports are included in the dll and dso/lib without + # needing to run abld/sbs freeze + MMP_RULES += EXPORTUNFROZEN + } +} diff -r 3b1da2848fc7 -r d3bac044e0f0 mkspecs/features/symbian/qt.prf --- a/mkspecs/features/symbian/qt.prf Fri Feb 19 23:40:16 2010 +0200 +++ b/mkspecs/features/symbian/qt.prf Fri Mar 12 15:46:37 2010 +0200 @@ -41,12 +41,14 @@ isEmpty(TARGET.EPOCHEAPSIZE):TARGET.EPOCHEAPSIZE = 0x020000 0x800000 INCLUDEPATH += $$APP_LAYER_SYSTEMINCLUDE -for(QTLIB, $$list($$lower($$unique(QT)))) { - unset(qlib) - isEqual(QTLIB, phonon):qlib = phonon - else:qlib = qt$$QTLIB - INCLUDEPATH += $$MW_LAYER_PUBLIC_EXPORT_PATH($$qlib) -} +#QTP: qtAddLibrary function adds the same includes. Following strins duplicate +#Qt includes in incorrect lower case in the generated mmp files. +#for(QTLIB, $$list($$lower($$unique(QT)))) { +# unset(qlib) +# isEqual(QTLIB, phonon):qlib = phonon +# else:qlib = qt$$QTLIB +# INCLUDEPATH += $$MW_LAYER_PUBLIC_EXPORT_PATH($$qlib) +#} #QTP: add userinclude MMP_RULES+="USERINCLUDE ." \ No newline at end of file diff -r 3b1da2848fc7 -r d3bac044e0f0 mkspecs/symbian-sbsv2/flm/qt/qmake_extra_pre_targetdep.flm --- a/mkspecs/symbian-sbsv2/flm/qt/qmake_extra_pre_targetdep.flm Fri Feb 19 23:40:16 2010 +0200 +++ b/mkspecs/symbian-sbsv2/flm/qt/qmake_extra_pre_targetdep.flm Fri Mar 12 15:46:37 2010 +0200 @@ -15,7 +15,12 @@ ifeq ($(findstring :,$(firstword $(COMMAND))), :) MY_CMD:=$(COMMAND) else +#Additional checking is necessary for the Linux compilation + ifeq ($(findstring $(EPOCROOT), $(firstword $(COMMAND))), $(EPOCROOT)) + MY_CMD:=$(COMMAND) + else MY_CMD:=$(EPOCROOT)$(COMMAND) + endif endif define qmake_extra_pre_targetdep diff -r 3b1da2848fc7 -r d3bac044e0f0 mkspecs/symbian-sbsv2/flm/qt/ts2qm.flm --- a/mkspecs/symbian-sbsv2/flm/qt/ts2qm.flm Fri Feb 19 23:40:16 2010 +0200 +++ b/mkspecs/symbian-sbsv2/flm/qt/ts2qm.flm Fri Mar 12 15:46:37 2010 +0200 @@ -10,8 +10,8 @@ # Make sure that EPOCROOT ends in / EPOCROOT:=$(patsubst %/,%,$(EPOCROOT))/ LRELEASE:=$(EPOCROOT)epoc32/tools/qt/lrelease$(DOTEXE) -TSFILE:=$(EPOCROOT)$(TSFILE) -QMFILE:=$(EPOCROOT)$(QMFILE) +#TSFILE:=$(EPOCROOT)$(TSFILE) +#QMFILE:=$(EPOCROOT)$(QMFILE) define ts2qm $(QMFILE): $(TSFILE) diff -r 3b1da2848fc7 -r d3bac044e0f0 qmake/generators/makefile.cpp --- a/qmake/generators/makefile.cpp Fri Feb 19 23:40:16 2010 +0200 +++ b/qmake/generators/makefile.cpp Fri Mar 12 15:46:37 2010 +0200 @@ -1830,11 +1830,12 @@ cleans.append(files); } } - if(!cleans.isEmpty()) + if(!cleans.isEmpty()) { if (isForSymbian()) t << valGlue(cleans, "\n\t" + del_statement, " 2> NUL\n\t" + del_statement, " 2> NUL"); else t << valGlue(cleans, "\n\t" + del_statement, "\n\t" + del_statement, ""); + } if(!wrote_clean_cmds) { for(QStringList::ConstIterator input = tmp_inputs.begin(); input != tmp_inputs.end(); ++input) { t << "\n\t" << replaceExtraCompilerVariables(tmp_clean_cmds, (*input), @@ -2541,6 +2542,7 @@ QString ofile = Option::fixPathToTargetOS(fileFixify(Option::output.fileName())); if(!ofile.isEmpty()) t << "\t-$(DEL_FILE) " << ofile << endl; + t << varGlue("QMAKE_DISTCLEAN","\t-$(DEL_FILE) "," ","\n"); } else if(project->isActiveConfig("no_empty_targets")) { t << "\t" << "@cd ." << endl; } diff -r 3b1da2848fc7 -r d3bac044e0f0 qmake/generators/makefiledeps.cpp --- a/qmake/generators/makefiledeps.cpp Fri Feb 19 23:40:16 2010 +0200 +++ b/qmake/generators/makefiledeps.cpp Fri Mar 12 15:46:37 2010 +0200 @@ -397,7 +397,7 @@ buffer = getBuffer(fst.st_size); for(int have_read = 0; (have_read = QT_READ(fd, buffer + buffer_len, fst.st_size - buffer_len)); - buffer_len += have_read); + buffer_len += have_read) ; QT_CLOSE(fd); } if(!buffer) @@ -418,22 +418,22 @@ ++x; if(buffer_len >= x + 12 && !strncmp(buffer + x, "includehint", 11) && (*(buffer + x + 11) == ' ' || *(buffer + x + 11) == '>')) { - for(x += 11; *(buffer + x) != '>'; ++x); + for(x += 11; *(buffer + x) != '>'; ++x) ; int inc_len = 0; - for(x += 1 ; *(buffer + x + inc_len) != '<'; ++inc_len); + for(x += 1 ; *(buffer + x + inc_len) != '<'; ++inc_len) ; *(buffer + x + inc_len) = '\0'; inc = buffer + x; } else if(buffer_len >= x + 13 && !strncmp(buffer + x, "customwidget", 12) && (*(buffer + x + 12) == ' ' || *(buffer + x + 12) == '>')) { - for(x += 13; *(buffer + x) != '>'; ++x); //skip up to > + for(x += 13; *(buffer + x) != '>'; ++x) ; //skip up to > while(x < buffer_len) { - for(x++; *(buffer + x) != '<'; ++x); //skip up to < + for(x++; *(buffer + x) != '<'; ++x) ; //skip up to < x++; if(buffer_len >= x + 7 && !strncmp(buffer+x, "header", 6) && (*(buffer + x + 6) == ' ' || *(buffer + x + 6) == '>')) { - for(x += 7; *(buffer + x) != '>'; ++x); //skip up to > + for(x += 7; *(buffer + x) != '>'; ++x) ; //skip up to > int inc_len = 0; - for(x += 1 ; *(buffer + x + inc_len) != '<'; ++inc_len); + for(x += 1 ; *(buffer + x + inc_len) != '<'; ++inc_len) ; *(buffer + x + inc_len) = '\0'; inc = buffer + x; break; @@ -448,10 +448,10 @@ for(x += 8; *(buffer + x) != '>'; ++x) { if(buffer_len >= x + 9 && *(buffer + x) == 'i' && !strncmp(buffer + x, "impldecl", 8)) { - for(x += 8; *(buffer + x) != '='; ++x); + for(x += 8; *(buffer + x) != '='; ++x) ; if(*(buffer + x) != '=') continue; - for(++x; *(buffer+x) == '\t' || *(buffer+x) == ' '; ++x); + for(++x; *(buffer+x) == '\t' || *(buffer+x) == ' '; ++x) ; char quote = 0; if(*(buffer+x) == '\'' || *(buffer+x) == '"') { quote = *(buffer + x); @@ -475,13 +475,13 @@ } } int inc_len = 0; - for(x += 1 ; *(buffer + x + inc_len) != '<'; ++inc_len); + for(x += 1 ; *(buffer + x + inc_len) != '<'; ++inc_len) ; *(buffer + x + inc_len) = '\0'; inc = buffer + x; } } //read past new line now.. - for(; x < buffer_len && !qmake_endOfLine(*(buffer + x)); ++x); + for(; x < buffer_len && !qmake_endOfLine(*(buffer + x)); ++x) ; ++line_count; } else if(file->type == QMakeSourceFileInfo::TYPE_QRC) { } else if(file->type == QMakeSourceFileInfo::TYPE_C) { @@ -494,7 +494,7 @@ ++x; if(buffer_len >= x) { if(*(buffer+x) == '/') { //c++ style comment - for(; x < buffer_len && !qmake_endOfLine(*(buffer + x)); ++x); + for(; x < buffer_len && !qmake_endOfLine(*(buffer + x)); ++x) ; beginning = 1; } else if(*(buffer+x) == '*') { //c style comment for(++x; x < buffer_len; ++x) { @@ -558,7 +558,7 @@ *(buffer+x+keyword_len) != '_') { for(x+=keyword_len; //skip spaces after keyword x < buffer_len && (*(buffer+x) == ' ' || *(buffer+x) == '\t'); - x++); + x++) ; break; } else if(qmake_endOfLine(*(buffer+x+keyword_len))) { x += keyword_len-1; @@ -579,7 +579,7 @@ x++; int inc_len; - for(inc_len = 0; *(buffer + x + inc_len) != term && !qmake_endOfLine(*(buffer + x + inc_len)); ++inc_len); + for(inc_len = 0; *(buffer + x + inc_len) != term && !qmake_endOfLine(*(buffer + x + inc_len)); ++inc_len) ; *(buffer + x + inc_len) = '\0'; inc = buffer + x; x += inc_len; @@ -594,7 +594,7 @@ int msg_len; for(msg_len = 0; (term && *(buffer + x + msg_len) != term) && - !qmake_endOfLine(*(buffer + x + msg_len)); ++msg_len); + !qmake_endOfLine(*(buffer + x + msg_len)); ++msg_len) ; *(buffer + x + msg_len) = '\0'; debug_msg(0, "%s:%d %s -- %s", file->file.local().toLatin1().constData(), line_count, keyword, buffer+x); x += msg_len; @@ -706,7 +706,7 @@ buffer = getBuffer(fst.st_size); for(int have_read = buffer_len = 0; (have_read = QT_READ(fd, buffer + buffer_len, fst.st_size - buffer_len)); - buffer_len += have_read); + buffer_len += have_read) ; QT_CLOSE(fd); } @@ -720,7 +720,7 @@ ++x; if(buffer_len >= x) { if(*(buffer + x) == '/') { //c++ style comment - for(;x < buffer_len && !qmake_endOfLine(*(buffer + x)); ++x); + for(;x < buffer_len && !qmake_endOfLine(*(buffer + x)); ++x) ; } else if(*(buffer + x) == '*') { //c style comment for(++x; x < buffer_len; ++x) { if(*(buffer + x) == 't' || *(buffer + x) == 'q') { //ignore diff -r 3b1da2848fc7 -r d3bac044e0f0 qmake/generators/symbian/symmake.cpp --- a/qmake/generators/symbian/symmake.cpp Fri Feb 19 23:40:16 2010 +0200 +++ b/qmake/generators/symbian/symmake.cpp Fri Mar 12 15:46:37 2010 +0200 @@ -56,7 +56,6 @@ #define REGISTRATION_RESOURCE_DIRECTORY_HW "/private/10003a3f/import/apps" #define PLUGIN_COMMON_DEF_FILE_FOR_MMP "./plugin_common.def" #define PLUGIN_COMMON_DEF_FILE_ACTUAL "plugin_commonU.def" -#define BLD_INF_FILENAME_LEN (sizeof(BLD_INF_FILENAME) - 1) #define BLD_INF_RULES_BASE "BLD_INF_RULES." #define BLD_INF_TAG_PLATFORMS "prj_platforms" @@ -96,6 +95,11 @@ #define PRINT_FILE_CREATE_ERROR(filename) fprintf(stderr, "Error: Could not create '%s'\n", qPrintable(filename)); +#define MANUFACTURER_NOTE_FILE "manufacturer_note.txt" +#define DEFAULT_MANUFACTURER_NOTE \ + "The package is not supported for devices from this manufacturer. Please try the selfsigned " \ + "version of the package instead." + QString SymbianMakefileGenerator::fixPathForMmp(const QString& origPath, const QDir& parentDir) { static QString epocRootStr; @@ -249,7 +253,9 @@ QString wrapperFileName("Makefile"); QString outputFileName = fileInfo(Option::output.fileName()).fileName(); if (outputFileName != BLD_INF_FILENAME) { - wrapperFileName.append(".").append((outputFileName.size() > BLD_INF_FILENAME_LEN && outputFileName.left(BLD_INF_FILENAME_LEN) == BLD_INF_FILENAME) ? outputFileName.mid(8) : outputFileName); + wrapperFileName.append(".").append(outputFileName.startsWith(BLD_INF_FILENAME) + ? outputFileName.mid(sizeof(BLD_INF_FILENAME)) + : outputFileName); isPrimaryMakefile = false; } @@ -287,7 +293,7 @@ writeMmpFile(mmpFilename, symbianLangCodes); if (targetType == TypeExe) { - if (!project->values("CONFIG").contains("no_icon", Qt::CaseInsensitive)) { + if (!project->isActiveConfig("no_icon")) { writeRegRssFile(userRssRules); writeRssFile(numberOfIcons, iconFile); writeLocFile(symbianLangCodes); @@ -384,6 +390,17 @@ t << endl; } + // Begin Manufacturer block + if (!project->values("DEPLOYMENT.manufacturers").isEmpty()) { + QString manufacturerStr("IF "); + foreach(QString manufacturer, project->values("DEPLOYMENT.manufacturers")) { + manufacturerStr.append(QString("(MANUFACTURER)=(%1) OR \n ").arg(manufacturer)); + } + // Remove the final OR + manufacturerStr.chop(8); + t << manufacturerStr << endl; + } + // Install paths on the phone *** should be dynamic at some point QString installPathBin = "!:\\sys\\bin"; QString installPathResource = "!:\\resource\\apps"; @@ -405,7 +422,7 @@ .arg(exeFile) << endl; // deploy rsc & reg_rsc file - if (!project->values("CONFIG").contains("no_icon", Qt::CaseInsensitive)) { + if (!project->isActiveConfig("no_icon")) { t << QString("\"%1epoc32/data/z/resource/apps/%2\" - \"%3\\%4\"") .arg(epocRoot()) .arg(fixedTarget + ".rsc") @@ -458,6 +475,30 @@ t << endl; } } + + // Close Manufacturer block + if (!project->values("DEPLOYMENT.manufacturers").isEmpty()) { + QString manufacturerFailNoteFile; + if (project->values("DEPLOYMENT.manufacturers.fail_note").isEmpty()) { + manufacturerFailNoteFile = QString("%1_" MANUFACTURER_NOTE_FILE).arg(uid3); + QFile ft(manufacturerFailNoteFile); + if (ft.open(QIODevice::WriteOnly)) { + generatedFiles << ft.fileName(); + QTextStream t2(&ft); + + t2 << QString(DEFAULT_MANUFACTURER_NOTE) << endl; + } else { + PRINT_FILE_CREATE_ERROR(manufacturerFailNoteFile) + } + } else { + manufacturerFailNoteFile = project->values("DEPLOYMENT.manufacturers.fail_note").join(""); + } + + t << "ELSEIF NOT(0) ; MANUFACTURER" << endl + << "\"" << fileInfo(manufacturerFailNoteFile).absoluteFilePath() << "\"" + << " - \"\", FILETEXT, TEXTEXIT" << endl + << "ENDIF ; MANUFACTURER" << endl; + } } bool SymbianMakefileGenerator::containsStartWithItem(const QChar &c, const QStringList& src) @@ -474,7 +515,7 @@ void SymbianMakefileGenerator::writeCustomDefFile() { - if (targetType == TypePlugin && !project->values("CONFIG").contains("stdbinary", Qt::CaseInsensitive)) { + if (targetType == TypePlugin && !project->isActiveConfig("stdbinary")) { // Create custom def file for plugin QFile ft(QLatin1String(PLUGIN_COMMON_DEF_FILE_ACTUAL)); @@ -515,6 +556,15 @@ fixedTarget = escapeFilePath(fileFixify(project->first("TARGET"))); fixedTarget = removePathSeparators(fixedTarget); removeSpecialCharacters(fixedTarget); + + translationFileName = escapeFilePath(fileFixify(project->first("TRANSLATIONS"))); + if (!translationFileName.isEmpty()){ + translationFileName.chop(3); + translationFileName = removePathSeparators(translationFileName); + removeSpecialCharacters(translationFileName); + } + else + translationFileName = fixedTarget; if (0 != project->values("QMAKE_PLATFORM").size()) platform = varGlue("QMAKE_PLATFORM", "", " ", ""); @@ -542,9 +592,9 @@ targetType = TypeExe; else if ((project->values("TEMPLATE")).contains("lib")) { // Check CONFIG to see if we are to build staticlib or dll - if (project->values("CONFIG").contains("staticlib") || project->values("CONFIG").contains("static")) + if (project->isActiveConfig("staticlib") || project->isActiveConfig("static")) targetType = TypeLib; - else if (project->values("CONFIG").contains("plugin")) + else if (project->isActiveConfig("plugin")) targetType = TypePlugin; else targetType = TypeDll; @@ -554,7 +604,7 @@ if (0 != project->values("TARGET.UID2").size()) { uid2 = project->first("TARGET.UID2"); - } else if (project->values("CONFIG").contains("stdbinary", Qt::CaseInsensitive)) { + } else if (project->isActiveConfig("stdbinary")) { uid2 = "0x20004C45"; } else { if (targetType == TypeExe) { @@ -825,7 +875,7 @@ } t << endl; - if (!project->values("CONFIG").contains("static") && !project->values("CONFIG").contains("staticlib")) { + if (!project->isActiveConfig("static") && !project->isActiveConfig("staticlib")) { writeMmpFileLibraryPart(t); } @@ -878,7 +928,7 @@ if (targetType == TypeExe) { t << MMP_TARGET "\t\t" << fixedTarget << ".exe" << endl; if (!skipTargetType) { - if (project->values("CONFIG").contains("stdbinary", Qt::CaseInsensitive)) + if (project->isActiveConfig("stdbinary")) t << MMP_TARGETTYPE "\t\tSTDEXE" << endl; else t << MMP_TARGETTYPE "\t\tEXE" << endl; @@ -886,7 +936,7 @@ } else if (targetType == TypeDll || targetType == TypePlugin) { t << MMP_TARGET "\t\t" << fixedTarget << ".dll" << endl; if (!skipTargetType) { - if (project->values("CONFIG").contains("stdbinary", Qt::CaseInsensitive)) + if (project->isActiveConfig("stdbinary")) t << MMP_TARGETTYPE "\t\tSTDDLL" << endl; else t << MMP_TARGETTYPE "\t\tDLL" << endl; @@ -894,7 +944,7 @@ } else if (targetType == TypeLib) { t << MMP_TARGET "\t\t" << fixedTarget << ".lib" << endl; if (!skipTargetType) { - if (project->values("CONFIG").contains("stdbinary", Qt::CaseInsensitive)) + if (project->isActiveConfig("stdbinary")) t << MMP_TARGETTYPE "\t\tSTDLIB" << endl; else t << MMP_TARGETTYPE "\t\tLIB" << endl; @@ -930,7 +980,7 @@ if (0 != project->values("TARGET.EPOCALLOWDLLDATA").size()) t << MMP_EPOCALLOWDLLDATA << endl; - if (targetType == TypePlugin && !project->values("CONFIG").contains("stdbinary", Qt::CaseInsensitive)) { + if (targetType == TypePlugin && !project->isActiveConfig("stdbinary")) { // Use custom def file for Qt plugins t << "DEFFILE " PLUGIN_COMMON_DEF_FILE_FOR_MMP << endl; } @@ -946,7 +996,7 @@ void SymbianMakefileGenerator::writeMmpFileResourcePart(QTextStream& t, QStringList &symbianLangCodes) { if ((targetType == TypeExe) && - !project->values("CONFIG").contains("no_icon", Qt::CaseInsensitive)) { + !project->isActiveConfig("no_icon")) { QString locTarget = fixedTarget; locTarget.append(".rss"); @@ -1313,7 +1363,7 @@ // Add project mmps and old style extension makefiles QString mmpTag; - if (project->values("CONFIG").contains("symbian_test", Qt::CaseInsensitive)) + if (project->isActiveConfig("symbian_test")) mmpTag = QLatin1String(BLD_INF_TAG_TESTMMPFILES); else mmpTag = QLatin1String(BLD_INF_TAG_MMPFILES); @@ -1484,10 +1534,7 @@ t << "// ============================================================================" << endl; t << endl; t << "#include " << endl; - if (!project->values("SYMBIANTRANSLATIONS").isEmpty()) - t << "#include <" << fixedTarget << ".loc>" << endl; - else - t << "#include \"" << fixedTarget << ".loc\"" << endl; + t << "#include <" << translationFileName << ".loc>" << endl; t << endl; t << "RESOURCE LOCALISABLE_APP_INFO r_localisable_app_info" << endl; t << "\t{" << endl; @@ -1519,14 +1566,14 @@ void SymbianMakefileGenerator::writeLocFile(QStringList &symbianLangCodes) { - QString filename(fixedTarget); + QString filename(translationFileName); if (project->values("SYMBIANTRANSLATIONS").isEmpty()) { filename.append(".loc"); } else { if (!project->first("SYMBIANLOCFILESDIR").isEmpty()) { filename.insert(0,project->first("SYMBIANLOCFILESDIR")); } else { - filename.insert(0,"/epoc32/include/platform/app/loc/"); + filename.insert(0,"/epoc32/include/platform/mw/loc/"); } filename.append(".loc"); } @@ -1560,11 +1607,11 @@ t << "#endif" << endl; } else { t << "#if LANGUAGE_01" << endl; - t << "#include <" << "01/" << fixedTarget << "_01.loc>" << endl; + t << "#include <" << "01/" << translationFileName << "_01.loc>" << endl; foreach(QString lang, symbianLangCodes) { if (lang.localeAwareCompare("01") != 0) { t << "#elif LANGUAGE_" << lang << endl; - t << "#include <" << lang << "/" << fixedTarget << "_" << lang << ".loc>" << ">" << endl; + t << "#include <" << lang << "/" << translationFileName << "_" << lang << ".loc" << ">" << endl; } } t << "#endif" << endl; @@ -1576,13 +1623,14 @@ void SymbianMakefileGenerator::writeSymbianLocFile(QStringList &symbianLangCodes) { - QString filename(fixedTarget); + QString filename(translationFileName); foreach(QString lang, symbianLangCodes) { QString tsFilename(filename); QString language = qt2S60LangMapTable.key(lang, QString("en")); tsFilename.append("_"+language+".ts"); - tsFilename.insert(0,project->first("SYMBIANTRANSLATIONDIR")); + + tsFilename.insert(0,project->first("SYMBIANTRANSLATIONSRCDIR")); QString locFilename(filename); locFilename.append("_"+lang+".loc"); @@ -1590,7 +1638,7 @@ locFilename.insert(0,lang+"/"); locFilename.insert(0,project->first("SYMBIANLOCFILESDIR")); } else { - locFilename.insert(0,"/epoc32/include/platform/app/loc/"+lang+"/"); + locFilename.insert(0,"/epoc32/include/platform/mw/loc/"+lang+"/"); } QString shortCaption; @@ -1633,17 +1681,22 @@ } } } - if (shortCaption.isEmpty()) + if (shortCaption.isEmpty()){ fprintf(stderr, "Warning: STRING_r_short_caption not generated from file '%s'.\n", qPrintable(tsFilename)); - if (longCaption.isEmpty()) + fprintf(stderr, " : short caption generated from target name '#%s'.\n", qPrintable(fixedTarget)); + } + if (longCaption.isEmpty()){ fprintf(stderr, "Warning: STRING_r_caption not generated from file '%s'.\n", qPrintable(tsFilename)); + fprintf(stderr, " : caption generated from target name '#%s'.\n", qPrintable(fixedTarget)); + } if (xml.hasError()) fprintf(stderr, "ERROR: \"%s\" when parsing ts file\n", qPrintable(xml.errorString())); } else { fprintf(stderr, "Could not open ts file (%s)\n", qPrintable(tsFilename)); } } else { - fprintf(stderr, "ts file does not exist: (%s)\n", qPrintable(tsFilename)); + fprintf(stderr, "Warning: ts file does not exist: (%s)\n", qPrintable(tsFilename)); + fprintf(stderr, " : short and long caption generated from target name '#%s'.\n", qPrintable(fixedTarget)); } // generate language specific caption loc file @@ -1661,12 +1714,12 @@ if (!shortCaption.isEmpty()) { t << "#define STRING_r_short_caption \"" << shortCaption << "\"" << endl; } else { - t << "#define STRING_r_short_caption \"" << fixedTarget << "\"" << endl; + t << "#define STRING_r_short_caption \"" "#"<< fixedTarget << "\"" << endl; } if (!longCaption.isEmpty()) { t << "#define STRING_r_caption \"" << longCaption << "\"" << endl; } else { - t << "#define STRING_r_caption \"" << fixedTarget << "\"" << endl; + t << "#define STRING_r_caption \"" "#"<< fixedTarget << "\"" << endl; } ft.close(); } else { @@ -1747,7 +1800,7 @@ if (!numberOfIcons.isEmpty()) { bool ok; numberOfIcons = numberOfIcons.simplified(); - int tmp = numberOfIcons.toInt(&ok); + numberOfIcons.toInt(&ok); if (!ok) { numberOfIcons.clear(); iconFile.clear(); diff -r 3b1da2848fc7 -r d3bac044e0f0 qmake/generators/symbian/symmake.h --- a/qmake/generators/symbian/symmake.h Fri Feb 19 23:40:16 2010 +0200 +++ b/qmake/generators/symbian/symmake.h Fri Mar 12 15:46:37 2010 +0200 @@ -81,7 +81,8 @@ QHash qt2S60LangMapTable; QString fixedTarget; - + QString translationFileName; + void removeSpecialCharacters(QString& str); QString fixPathForMmp(const QString& origPath, const QDir& parentDir); QString canonizePath(const QString& origPath); diff -r 3b1da2848fc7 -r d3bac044e0f0 qmake/generators/symbian/symmake_abld.cpp --- a/qmake/generators/symbian/symmake_abld.cpp Fri Feb 19 23:40:16 2010 +0200 +++ b/qmake/generators/symbian/symmake_abld.cpp Fri Mar 12 15:46:37 2010 +0200 @@ -155,39 +155,79 @@ t << "endif" << endl << endl; t << "CLEANLIB: " DO_NOTHING_TARGET << endl << endl; - QStringList qmFileNames; - QString translationFilename = project->first("TRANSLATIONS"); - if (!project->values("SYMBIANTRANSLATIONS").isEmpty() && !translationFilename.isEmpty()) { - QStringList symbianTranslations = project->values("SYMBIANTRANSLATIONS"); - QString symbianTrPath = project->first("SYMBIANTRANSLATIONDIR"); - t << "RESOURCE: create_qm" << endl << endl; - t << "create_qm : " << endl; - foreach (const QString &symbianTrans, symbianTranslations) { - QString translationTsFilename(translationFilename); - translationTsFilename.chop(3); - translationTsFilename.insert(0,symbianTrPath); - translationTsFilename.append(QString::fromLatin1("_")); - translationTsFilename.append(symbianTrans); - QString translationQmFilename(translationTsFilename); - translationTsFilename.append(QString::fromLatin1(".ts")); - translationQmFilename.append(QString::fromLatin1(".qm")); - t << "\t$(EPOCROOT)epoc32\\tools\\qt\\lrelease -silent -idbased " << translationTsFilename << " -qm " << translationQmFilename << endl; - // qmFileNames are needed in RELEASABLES: part - qmFileNames.append(translationQmFilename); + QStringList trFileNames; + if (!project->values("SYMBIANTRANSLATIONS").isEmpty()) { + QString translationFilename = project->first("TRANSLATIONS"); + if (!translationFilename.isEmpty()) { + QStringList symbianTranslations = project->values("SYMBIANTRANSLATIONS"); + QString symbianTrPath = project->first("SYMBIANTRANSLATIONDIR"); + QString symbianTrSrcPath = project->first("SYMBIANTRANSLATIONSRCDIR"); + QString symbianWinscwUdebQmPath = project->first("SYMBIANWINSCWUDEBTRANSLATIONDIR"); + QString symbianWinscwUrelQmPath = project->first("SYMBIANWINSCWURELTRANSLATIONDIR"); + t << "RESOURCE: create_qm" << endl << endl; + t << "create_qm : " << endl; + foreach (const QString &symbianTrans, symbianTranslations) { + QString translationTsFilename(translationFilename); + translationTsFilename.chop(3); + translationTsFilename.insert(0,symbianTrPath); + translationTsFilename.append(QString::fromLatin1("_")); + translationTsFilename.append(symbianTrans); + QString translationQmFilename(translationTsFilename); + + translationTsFilename.append(QString::fromLatin1(".ts")); + // output path for armv5 qm files./epoc32/data/z/resource/qt/translations/ + translationQmFilename.append(QString::fromLatin1(".qm")); + + // input path for ts files. /epoc32/include/platform/qt/translations/ + QString translationTsSrcFilename(translationFilename); + translationTsSrcFilename.chop(3); + translationTsSrcFilename.insert(0,symbianTrSrcPath); + translationTsSrcFilename.append(QString::fromLatin1("_")); + translationTsSrcFilename.append(symbianTrans); + translationTsSrcFilename.append(QString::fromLatin1(".ts")); + + // output path for winscw qm files. /epoc32/release/winscw/udeb/z/resource/qt/translations/ + QString translationQmWinscwUdebFilename(translationFilename); + translationQmWinscwUdebFilename.chop(3); + translationQmWinscwUdebFilename.insert(0,symbianWinscwUdebQmPath); + translationQmWinscwUdebFilename.append(QString::fromLatin1("_")); + translationQmWinscwUdebFilename.append(symbianTrans); + translationQmWinscwUdebFilename.append(QString::fromLatin1(".qm")); + + // output path for winscw qm files. /epoc32/release/winscw/urel/z/resource/qt/translations/ + QString translationQmWinscwUrelFilename(translationFilename); + translationQmWinscwUrelFilename.chop(3); + translationQmWinscwUrelFilename.insert(0,symbianWinscwUrelQmPath); + translationQmWinscwUrelFilename.append(QString::fromLatin1("_")); + translationQmWinscwUrelFilename.append(symbianTrans); + translationQmWinscwUrelFilename.append(QString::fromLatin1(".qm")); + + //these get generated to component mk file. + t << "\tlrelease -silent -idbased " << translationTsSrcFilename << " -qm " << translationQmFilename << endl; + t << "\tlrelease -silent -idbased " << translationTsSrcFilename << " -qm " << translationQmWinscwUdebFilename << endl; + t << "\tlrelease -silent -idbased " << translationTsSrcFilename << " -qm " << translationQmWinscwUrelFilename << endl; + + // trFileNames QStringList needed in RELEASABLES part + trFileNames.append(translationQmFilename); + trFileNames.append(translationQmWinscwUdebFilename); + trFileNames.append(translationQmWinscwUrelFilename); + } + t << endl; } - t << endl; + else + t << "RESOURCE: " DO_NOTHING_TARGET << endl << endl; } else { t << "RESOURCE: " DO_NOTHING_TARGET << endl << endl; } t << "FREEZE: " DO_NOTHING_TARGET << endl << endl; t << "SAVESPACE: " DO_NOTHING_TARGET << endl << endl; - if (!project->values("SYMBIANTRANSLATIONS").isEmpty() && !qmFileNames.isEmpty()) { + if (!project->values("SYMBIANTRANSLATIONS").isEmpty()) { t << "RELEASABLES: list_qm" << endl << endl; t << "list_qm : " << endl; - foreach (const QString &qmFilename, qmFileNames) { - t << "\t@echo " << qmFilename << endl; - } + foreach (const QString &trFilename, trFileNames) { + t << "\t@echo " << trFilename << endl; + } t << endl; } else { t << "RELEASABLES: " DO_NOTHING_TARGET << endl << endl; @@ -220,7 +260,7 @@ releasePlatforms.removeAll("winscw"); // No release for emulator QString testClause; - if (project->values("CONFIG").contains("symbian_test", Qt::CaseInsensitive)) + if (project->isActiveConfig("symbian_test")) testClause = QLatin1String(" test"); else testClause = QLatin1String(""); diff -r 3b1da2848fc7 -r d3bac044e0f0 qmake/generators/symbian/symmake_sbsv2.cpp --- a/qmake/generators/symbian/symmake_sbsv2.cpp Fri Feb 19 23:40:16 2010 +0200 +++ b/qmake/generators/symbian/symmake_sbsv2.cpp Fri Mar 12 15:46:37 2010 +0200 @@ -110,7 +110,7 @@ releasePlatforms.removeAll("winscw"); // No release for emulator QString testClause; - if (project->values("CONFIG").contains("symbian_test", Qt::CaseInsensitive)) + if (project->isActiveConfig("symbian_test")) testClause = QLatin1String(".test"); else testClause = QLatin1String(""); @@ -370,20 +370,63 @@ if (!project->values("SYMBIANTRANSLATIONS").isEmpty() && !translationFilename.isEmpty()) { QStringList symbianTranslations = project->values("SYMBIANTRANSLATIONS"); QString symbianTrPath = project->first("SYMBIANTRANSLATIONDIR"); + QString symbianTrSrcPath = project->first("SYMBIANTRANSLATIONSRCDIR"); + QString symbianWinscwUdebQmPath = project->first("SYMBIANWINSCWUDEBTRANSLATIONDIR"); + QString symbianWinscwUrelQmPath = project->first("SYMBIANWINSCWURELTRANSLATIONDIR"); foreach (const QString &symbianTrans, symbianTranslations) { - QString translationTsFilename(translationFilename); - translationTsFilename.chop(3); - translationTsFilename.insert(0,symbianTrPath); - translationTsFilename.append(QString::fromLatin1("_")); - translationTsFilename.append(symbianTrans); - QString translationQmFilename(translationTsFilename); - translationTsFilename.append(QString::fromLatin1(".ts")); - translationQmFilename.append(QString::fromLatin1(".qm")); + QString translationTsFilename(translationFilename); + translationTsFilename.chop(3); + translationTsFilename.insert(0,symbianTrPath); + translationTsFilename.append(QString::fromLatin1("_")); + translationTsFilename.append(symbianTrans); + QString translationQmFilename(translationTsFilename); + + translationTsFilename.append(QString::fromLatin1(".ts")); + // output path for armv5 qm files./epoc32/data/z/resource/qt/translations/ + translationQmFilename.append(QString::fromLatin1(".qm")); + + // input path for ts files. /epoc32/include/platform/qt/translations/ + QString translationTsSrcFilename(translationFilename); + translationTsSrcFilename.chop(3); + translationTsSrcFilename.insert(0,symbianTrSrcPath); + translationTsSrcFilename.append(QString::fromLatin1("_")); + translationTsSrcFilename.append(symbianTrans); + translationTsSrcFilename.append(QString::fromLatin1(".ts")); + + // output path for winscw qm files. /epoc32/release/winscw/udeb/z/resource/qt/translations/ + QString translationQmWinscwUdebFilename(translationFilename); + translationQmWinscwUdebFilename.chop(3); + translationQmWinscwUdebFilename.insert(0,symbianWinscwUdebQmPath); + translationQmWinscwUdebFilename.append(QString::fromLatin1("_")); + translationQmWinscwUdebFilename.append(symbianTrans); + translationQmWinscwUdebFilename.append(QString::fromLatin1(".qm")); + + // output path for winscw qm files. /epoc32/release/winscw/urel/z/resource/qt/translations/ + QString translationQmWinscwUrelFilename(translationFilename); + translationQmWinscwUrelFilename.chop(3); + translationQmWinscwUrelFilename.insert(0,symbianWinscwUrelQmPath); + translationQmWinscwUrelFilename.append(QString::fromLatin1("_")); + translationQmWinscwUrelFilename.append(symbianTrans); + translationQmWinscwUrelFilename.append(QString::fromLatin1(".qm")); + t << "START EXTENSION qt/ts2qm" << endl; - t << "OPTION TSFILE " << translationTsFilename << endl; + t << "OPTION TSFILE " << translationTsSrcFilename << endl; t << "OPTION QMFILE " << translationQmFilename << endl; t << "END" << endl; t << endl; + + //winscw udeb + t << "START EXTENSION qt/ts2qm" << endl; + t << "OPTION TSFILE " << translationTsSrcFilename << endl; + t << "OPTION QMFILE " << translationQmWinscwUdebFilename << endl; + t << "END" << endl; + t << endl; + //winscw urel + t << "START EXTENSION qt/ts2qm" << endl; + t << "OPTION TSFILE " << translationTsSrcFilename << endl; + t << "OPTION QMFILE " << translationQmWinscwUrelFilename << endl; + t << "END" << endl; + t << endl; } } diff -r 3b1da2848fc7 -r d3bac044e0f0 qmake/generators/win32/winmakefile.cpp --- a/qmake/generators/win32/winmakefile.cpp Fri Feb 19 23:40:16 2010 +0200 +++ b/qmake/generators/win32/winmakefile.cpp Fri Mar 12 15:46:37 2010 +0200 @@ -470,11 +470,12 @@ resFile.replace(".rc", Option::res_ext); project->values("RES_FILE").prepend(fileInfo(resFile).fileName()); - if (!project->values("OBJECTS_DIR").isEmpty()) + if (!project->values("OBJECTS_DIR").isEmpty()) { if(project->isActiveConfig("staticlib")) project->values("RES_FILE").first().prepend(fileInfo(project->values("DESTDIR").first()).absoluteFilePath() + Option::dir_sep); else project->values("RES_FILE").first().prepend(project->values("OBJECTS_DIR").first() + Option::dir_sep); + } project->values("RES_FILE").first() = Option::fixPathToTargetOS(project->values("RES_FILE").first(), false, false); project->values("POST_TARGETDEPS") += project->values("RES_FILE"); project->values("CLEAN_FILES") += project->values("RES_FILE"); diff -r 3b1da2848fc7 -r d3bac044e0f0 qmake/meta.cpp --- a/qmake/meta.cpp Fri Feb 19 23:40:16 2010 +0200 +++ b/qmake/meta.cpp Fri Mar 12 15:46:37 2010 +0200 @@ -119,10 +119,11 @@ } } } - if(ret.isNull()) + if(ret.isNull()) { debug_msg(2, "QMakeMetaInfo: Cannot find info file for %s", lib.toLatin1().constData()); - else + } else { debug_msg(2, "QMakeMetaInfo: Found info file %s for %s", ret.toLatin1().constData(), lib.toLatin1().constData()); + } return ret; } diff -r 3b1da2848fc7 -r d3bac044e0f0 qmake/option.cpp --- a/qmake/option.cpp Fri Feb 19 23:40:16 2010 +0200 +++ b/qmake/option.cpp Fri Mar 12 15:46:37 2010 +0200 @@ -634,8 +634,8 @@ string = string.replace('/', Option::dir_sep).replace('\\', Option::dir_sep); } - if (string.startsWith("\"") && string.endsWith("\"") || - string.startsWith("\'") && string.endsWith("\'")) + if ((string.startsWith("\"") && string.endsWith("\"")) || + (string.startsWith("\'") && string.endsWith("\'"))) string = string.mid(1, string.length()-2); //cache diff -r 3b1da2848fc7 -r d3bac044e0f0 qmake/project.cpp --- a/qmake/project.cpp Fri Feb 19 23:40:16 2010 +0200 +++ b/qmake/project.cpp Fri Mar 12 15:46:37 2010 +0200 @@ -3067,7 +3067,7 @@ place[var] = QStringList(pfile); } else if(var == QLatin1String("_PRO_FILE_PWD_")) { var = ".BUILTIN." + var; - place[var] = QStringList(QFileInfo(pfile).absolutePath()); + place[var] = QStringList(pfile.isEmpty() ? qmake_getpwd() : QFileInfo(pfile).absolutePath()); } else if(var == QLatin1String("_QMAKE_CACHE_")) { var = ".BUILTIN." + var; if(Option::mkfile::do_cache) diff -r 3b1da2848fc7 -r d3bac044e0f0 src/3rdparty/phonon/mmf/environmentalreverb.cpp --- a/src/3rdparty/phonon/mmf/environmentalreverb.cpp Fri Feb 19 23:40:16 2010 +0200 +++ b/src/3rdparty/phonon/mmf/environmentalreverb.cpp Fri Mar 12 15:46:37 2010 +0200 @@ -139,57 +139,68 @@ TInt32 min, max; TUint32 umin, umax; - // DecayHFRatio effect->DecayHFRatioRange(umin, umax); + //: DecayHFRatio: Ratio of high-frequency decay time to the value specified by + //: DecayTime. parameters.append(createParameter( DecayHFRatio, tr("Decay HF ratio (%)"), effect->DecayHFRatio(), umin, umax)); - // DecayTime effect->DecayTimeRange(umin, umax); + //: DecayTime: Time over which reverberation is diminished. parameters.append(createParameter( DecayTime, tr("Decay time (ms)"), effect->DecayTime(), umin, umax)); - // Density + //: Density Delay between first and subsequent reflections. + //: Note that the S60 platform documentation does not make clear + //: the distinction between this value and the Diffusion value. parameters.append(createParameter( Density, tr("Density (%)"), effect->Density(), 0, 100)); - // Diffusion + //: Diffusion: Delay between first and subsequent reflections. + //: Note that the S60 platform documentation does not make clear + //: the distinction between this value and the Density value. parameters.append(createParameter( Diffusion, tr("Diffusion (%)"), effect->Diffusion(), 0, 100)); - // ReflectionsDelay + //: ReflectionsDelay: Amount of delay between the arrival the direct + //: path from the source and the arrival of the first reflection. parameters.append(createParameter( ReflectionsDelay, tr("Reflections delay (ms)"), effect->ReflectionsDelay(), 0, effect->ReflectionsDelayMax())); - // ReflectionsLevel effect->ReflectionLevelRange(min, max); + //: ReflectionsLevel: Amplitude of reflections. This value is + //: corrected by the RoomLevel to give the final reflection amplitude. parameters.append(createParameter( ReflectionsLevel, tr("Reflections level (mB)"), effect->ReflectionsLevel(), min, max, EffectParameter::LogarithmicHint)); - // ReverbDelay + //: ReverbDelay: Amount of time between arrival of the first + //: reflection and start of the late reverberation. parameters.append(createParameter( ReverbDelay, tr("Reverb delay (ms)"), effect->ReverbDelay(), 0, effect->ReverbDelayMax())); - // ReverbLevel effect->ReverbLevelRange(min, max); + //: ReverbLevel Amplitude of reverberations. This value is + //: corrected by the RoomLevel to give the final reverberation + //: amplitude. parameters.append(createParameter( ReverbLevel, tr("Reverb level (mB)"), effect->ReverbLevel(), min, max, EffectParameter::LogarithmicHint)); - // RoomHFLevel effect->RoomHFLevelRange(min, max); + //: RoomHFLevel: Amplitude of low-pass filter used to attenuate the + //: high frequency component of reflected sound. parameters.append(createParameter( RoomHFLevel, tr("Room HF level"), effect->RoomHFLevel(), min, max)); - // RoomLevel effect->RoomLevelRange(min, max); + //: RoomLevel: Master volume control for all reflected sound. parameters.append(createParameter( RoomLevel, tr("Room level (mB)"), effect->RoomLevel(), min, max, EffectParameter::LogarithmicHint)); diff -r 3b1da2848fc7 -r d3bac044e0f0 src/3rdparty/phonon/mmf/utils.h --- a/src/3rdparty/phonon/mmf/utils.h Fri Feb 19 23:40:16 2010 +0200 +++ b/src/3rdparty/phonon/mmf/utils.h Fri Mar 12 15:46:37 2010 +0200 @@ -44,7 +44,7 @@ class Utils { - Q_DECLARE_TR_FUNCTIONS(Utils) + Q_DECLARE_TR_FUNCTIONS(Phonon::MMF) public: /** diff -r 3b1da2848fc7 -r d3bac044e0f0 src/3rdparty/webkit/VERSION --- a/src/3rdparty/webkit/VERSION Fri Feb 19 23:40:16 2010 +0200 +++ b/src/3rdparty/webkit/VERSION Fri Mar 12 15:46:37 2010 +0200 @@ -8,4 +8,4 @@ and has the sha1 checksum - e15bd5454732bab9ffff4e1e5a755f41fd4e2eff + 69dd29fbeb12d076741dce70ac6bc155101ccd6f diff -r 3b1da2848fc7 -r d3bac044e0f0 src/3rdparty/webkit/WebCore/ChangeLog --- a/src/3rdparty/webkit/WebCore/ChangeLog Fri Feb 19 23:40:16 2010 +0200 +++ b/src/3rdparty/webkit/WebCore/ChangeLog Fri Mar 12 15:46:37 2010 +0200 @@ -1,3 +1,97 @@ +2010-02-01 Andreas Kling + + Reviewed by Kenneth Rohde Christiansen. + + [Qt] Use the fallback style on Maemo 5 + + https://bugs.webkit.org/show_bug.cgi?id=34376 + + * platform/qt/RenderThemeQt.cpp: + (WebCore::RenderThemeQt::RenderThemeQt): + (WebCore::RenderThemeQt::fallbackStyle): + (WebCore::RenderThemeQt::qStyle): + (WebCore::RenderThemeQt::setPaletteFromPageClientIfExists): + * platform/qt/RenderThemeQt.h: + +2010-01-29 Oswald Buddenhagen + + Reviewed by Simon Hausmann. + + [Qt] Speed up the WebCore::String -> QString conversion + + Use QString(const QChar *, int len) constructor instead of QString::fromUtf16 to + avoid BOM checks and byteswapping. + + * bridge/qt/qt_class.cpp: + (JSC::Bindings::QtClass::fieldNamed): + * bridge/qt/qt_runtime.cpp: + (JSC::Bindings::convertValueToQVariant): + +2010-01-14 Andreas Kling + + Reviewed by Kenneth Rohde Christiansen. + + [Qt] Enable scrolling optimization for pages with embedded widgets + + https://bugs.webkit.org/show_bug.cgi?id=33373 + + Added a basic manual test for scrolling of embedded QWidgets. + + * manual-tests/qt/qtplugin-scrolling.html: Added. + * platform/ScrollView.cpp: + (WebCore::ScrollView::scrollContents): + (WebCore::ScrollView::setParent): + * platform/ScrollView.h: + * platform/qt/ScrollViewQt.cpp: + (WebCore::ScrollView::platformInit): + (WebCore::ScrollView::platformAddChild): + (WebCore::ScrollView::platformRemoveChild): + * plugins/qt/PluginViewQt.cpp: + (WebCore::PluginView::updatePluginWidget): + (WebCore::PluginView::invalidateRect): + +2010-01-29 Laszlo Gombos + + Reviewed by Simon Hausmann. + + [Qt] Turn off websocket support by default for Qt 4.6.x + https://bugs.webkit.org/show_bug.cgi?id=34284 + + * WebCore.pro: + +2010-01-26 Holger Hans Peter Freyther + + Reviewed by Simon Hausmann. + + [Qt] JavaScript prompt is currently broken. + https://bugs.webkit.org/show_bug.cgi?id=30914 + + Remove the manual test case in favor of an automated + test case in WebKit/qt/tests/qwebpage. + + * manual-tests/qt/java-script-prompt.html: Removed. + +2010-01-25 Janne Koskinen + + Reviewed by Simon Hausmann. + + [Qt] Phone backup support for QtWebkit for Symbian devices. + https://bugs.webkit.org/show_bug.cgi?id=34077 + + * WebCore.pro: + +2010-01-21 Thiago Macieira + + Reviewed by Simon Hausmann. + + [Qt] Fix incorrect dependency to QtXmlPatterns in generated include/QtWebKit/QtWebKit header + + The generated file includes QtXmlPatterns/QtXmlPatterns, which is neither used/required by + the public QtWebKit API nor will it be available if Qt is configured with -no-xmlpatterns. + + * WebCore.pro: Trick syncqt to believe that xmlpatterns is not a dependency, so that it's not + included in the generated file. It'll still be used and linked to with this trick. + 2010-01-17 Srinidhi Shreedhara Reviewed by Simon Hausmann. diff -r 3b1da2848fc7 -r d3bac044e0f0 src/3rdparty/webkit/WebCore/WebCore.pro --- a/src/3rdparty/webkit/WebCore/WebCore.pro Fri Feb 19 23:40:16 2010 +0200 +++ b/src/3rdparty/webkit/WebCore/WebCore.pro Fri Mar 12 15:46:37 2010 +0200 @@ -6,6 +6,7 @@ TARGET.EPOCALLOWDLLDATA=1 TARGET.EPOCHEAPSIZE = 0x20000 0x2000000 // Min 128kB, Max 32MB TARGET.CAPABILITY = All -Tcb + TARGET.UID3 = 0x200267C2 webkitlibs.sources = QtWebKit.dll webkitlibs.path = /sys/bin @@ -18,12 +19,15 @@ " " webkitlibs.pkg_prerules = vendorinfo - DEPLOYMENT += webkitlibs + webkitbackup.sources = ../WebKit/qt/symbian/backup_registration.xml + webkitbackup.path = /private/10202D56/import/packages/$$replace(TARGET.UID3, 0x,) - TARGET.UID3 = 0x200267C2 + DEPLOYMENT += webkitlibs webkitbackup + # RO text (code) section in qtwebkit.dll exceeds allocated space for gcce udeb target. # Move RW-section base address to start from 0xE00000 instead of the toolchain default 0x400000. MMP_RULES += "LINKEROPTION armcc --rw-base 0xE00000" + MMP_RULES += BYTEPAIRCOMPRESSTARGET # :QTP:QT-2698 MMP_RULES += ALWAYS_BUILD_AS_ARM QMAKE_CXXFLAGS.ARMCC += -OTime -O3 } @@ -183,7 +187,7 @@ } # Web Socket support. -!contains(DEFINES, ENABLE_WEB_SOCKETS=.): DEFINES += ENABLE_WEB_SOCKETS=1 +!contains(DEFINES, ENABLE_WEB_SOCKETS=.): DEFINES += ENABLE_WEB_SOCKETS=0 # XSLT support with QtXmlPatterns !contains(DEFINES, ENABLE_XSLT=.) { @@ -2780,7 +2784,7 @@ contains(DEFINES, ENABLE_XSLT=1) { FEATURE_DEFINES_JAVASCRIPT += ENABLE_XSLT=1 - QT += xmlpatterns + tobe|!tobe: QT += xmlpatterns SOURCES += \ bindings/js/JSXSLTProcessorConstructor.cpp \ @@ -3421,14 +3425,8 @@ symbian { shared { - contains(MMP_RULES, defBlock) { - MMP_RULES -= defBlock - - MMP_RULES += "$${LITERAL_HASH}ifdef WINSCW" \ - "DEFFILE ../WebKit/qt/symbian/bwins/$${TARGET}.def" \ - "$${LITERAL_HASH}elif defined EABI" \ - "DEFFILE ../WebKit/qt/symbian/eabi/$${TARGET}.def" \ - "$${LITERAL_HASH}endif" + contains(CONFIG, def_files) { + defFilePath=../WebKit/qt/symbian } } } diff -r 3b1da2848fc7 -r d3bac044e0f0 src/3rdparty/webkit/WebCore/bridge/qt/qt_class.cpp --- a/src/3rdparty/webkit/WebCore/bridge/qt/qt_class.cpp Fri Feb 19 23:40:16 2010 +0200 +++ b/src/3rdparty/webkit/WebCore/bridge/qt/qt_class.cpp Fri Mar 12 15:46:37 2010 +0200 @@ -127,7 +127,7 @@ QObject* obj = qtinst->getObject(); UString ustring = identifier.ustring(); - QString objName(QString::fromUtf16((const ushort*)ustring.rep()->data(),ustring.size())); + QString objName((const QChar*)ustring.rep()->data(), ustring.size()); QByteArray ba = objName.toAscii(); // First check for a cached field diff -r 3b1da2848fc7 -r d3bac044e0f0 src/3rdparty/webkit/WebCore/bridge/qt/qt_runtime.cpp --- a/src/3rdparty/webkit/WebCore/bridge/qt/qt_runtime.cpp Fri Feb 19 23:40:16 2010 +0200 +++ b/src/3rdparty/webkit/WebCore/bridge/qt/qt_runtime.cpp Fri Mar 12 15:46:37 2010 +0200 @@ -305,7 +305,7 @@ return QString(); } else { UString ustring = value.toString(exec); - ret = QVariant(QString::fromUtf16((const ushort*)ustring.rep()->data(),ustring.size())); + ret = QVariant(QString((const QChar*)ustring.rep()->data(), ustring.size())); if (type == String) dist = 0; else @@ -329,7 +329,7 @@ QVariant v = convertValueToQVariant(exec, val, QMetaType::Void, &objdist, visitedObjects); if (objdist >= 0) { UString ustring = (*it).ustring(); - QString id = QString::fromUtf16((const ushort*)ustring.rep()->data(),ustring.size()); + QString id = QString((const QChar*)ustring.rep()->data(), ustring.size()); result.insert(id, v); } } @@ -404,7 +404,7 @@ for (int i = 0; i < len; ++i) { JSValue val = rtarray->getConcreteArray()->valueAt(exec, i); UString ustring = val.toString(exec); - QString qstring = QString::fromUtf16((const ushort*)ustring.rep()->data(),ustring.size()); + QString qstring = QString((const QChar*)ustring.rep()->data(), ustring.size()); result.append(qstring); } @@ -418,7 +418,7 @@ for (int i = 0; i < len; ++i) { JSValue val = array->get(exec, i); UString ustring = val.toString(exec); - QString qstring = QString::fromUtf16((const ushort*)ustring.rep()->data(),ustring.size()); + QString qstring = QString((const QChar*)ustring.rep()->data(), ustring.size()); result.append(qstring); } @@ -427,7 +427,7 @@ } else { // Make a single length array UString ustring = value.toString(exec); - QString qstring = QString::fromUtf16((const ushort*)ustring.rep()->data(),ustring.size()); + QString qstring = QString((const QChar*)ustring.rep()->data(), ustring.size()); QStringList result; result.append(qstring); ret = QVariant(result); @@ -443,7 +443,7 @@ dist = 0; } else { UString ustring = value.toString(exec); - ret = QVariant(QString::fromUtf16((const ushort*)ustring.rep()->data(),ustring.size()).toLatin1()); + ret = QVariant(QString((const QChar*)ustring.rep()->data(), ustring.size()).toLatin1()); if (type == String) dist = 5; else @@ -485,7 +485,7 @@ } } else if (type == String) { UString ustring = value.toString(exec); - QString qstring = QString::fromUtf16((const ushort*)ustring.rep()->data(),ustring.size()); + QString qstring = QString((const QChar*)ustring.rep()->data(), ustring.size()); if (hint == QMetaType::QDateTime) { QDateTime dt = QDateTime::fromString(qstring, Qt::ISODate); @@ -534,7 +534,7 @@ */ // Attempt to convert.. a bit risky UString ustring = value.toString(exec); - QString qstring = QString::fromUtf16((const ushort*)ustring.rep()->data(),ustring.size()); + QString qstring = QString((const QChar*)ustring.rep()->data(), ustring.size()); // this is of the form '/xxxxxx/i' int firstSlash = qstring.indexOf(QLatin1Char('/')); @@ -554,7 +554,7 @@ } } else if (type == String) { UString ustring = value.toString(exec); - QString qstring = QString::fromUtf16((const ushort*)ustring.rep()->data(),ustring.size()); + QString qstring = QString((const QChar*)ustring.rep()->data(), ustring.size()); QRegExp re(qstring); if (re.isValid()) { diff -r 3b1da2848fc7 -r d3bac044e0f0 src/3rdparty/webkit/WebCore/generated/JSDOMWindow.cpp --- a/src/3rdparty/webkit/WebCore/generated/JSDOMWindow.cpp Fri Feb 19 23:40:16 2010 +0200 +++ b/src/3rdparty/webkit/WebCore/generated/JSDOMWindow.cpp Fri Mar 12 15:46:37 2010 +0200 @@ -216,7 +216,6 @@ #include "JSWebKitCSSTransformValue.h" #include "JSWebKitPoint.h" #include "JSWebKitTransitionEvent.h" -#include "JSWebSocket.h" #include "JSWheelEvent.h" #include "JSWorker.h" #include "JSXMLHttpRequest.h" @@ -247,7 +246,7 @@ /* Hash table */ -static const HashTableValue JSDOMWindowTableValues[297] = +static const HashTableValue JSDOMWindowTableValues[296] = { { "screen", DontDelete|ReadOnly, (intptr_t)jsDOMWindowScreen, (intptr_t)0 }, { "history", DontDelete|ReadOnly, (intptr_t)jsDOMWindowHistory, (intptr_t)0 }, @@ -540,7 +539,6 @@ { "MessageChannel", DontDelete, (intptr_t)jsDOMWindowMessageChannelConstructor, (intptr_t)setJSDOMWindowMessageChannelConstructor }, { "Worker", DontDelete, (intptr_t)jsDOMWindowWorkerConstructor, (intptr_t)setJSDOMWindowWorkerConstructor }, { "SharedWorker", DontDelete, (intptr_t)jsDOMWindowSharedWorkerConstructor, (intptr_t)setJSDOMWindowSharedWorkerConstructor }, - { "WebSocket", DontDelete, (intptr_t)jsDOMWindowWebSocketConstructor, (intptr_t)setJSDOMWindowWebSocketConstructor }, { "Plugin", DontDelete, (intptr_t)jsDOMWindowPluginConstructor, (intptr_t)setJSDOMWindowPluginConstructor }, { "PluginArray", DontDelete, (intptr_t)jsDOMWindowPluginArrayConstructor, (intptr_t)setJSDOMWindowPluginArrayConstructor }, { "MimeType", DontDelete, (intptr_t)jsDOMWindowMimeTypeConstructor, (intptr_t)setJSDOMWindowMimeTypeConstructor }, @@ -588,7 +586,7 @@ #if ENABLE(PERFECT_HASH_SIZE) { 65535, JSDOMWindowTableValues, 0 }; #else - { 1068, 1023, JSDOMWindowTableValues, 0 }; + { 1067, 1023, JSDOMWindowTableValues, 0 }; #endif /* Hash table for prototype */ @@ -3275,14 +3273,6 @@ return castedThis->sharedWorker(exec); } -JSValue jsDOMWindowWebSocketConstructor(ExecState* exec, const Identifier&, const PropertySlot& slot) -{ - JSDOMWindow* castedThis = static_cast(asObject(slot.slotBase())); - if (!castedThis->allowsAccessFrom(exec)) - return jsUndefined(); - return castedThis->webSocket(exec); -} - JSValue jsDOMWindowPluginConstructor(ExecState* exec, const Identifier&, const PropertySlot& slot) { JSDOMWindow* castedThis = static_cast(asObject(slot.slotBase())); @@ -5678,14 +5668,6 @@ static_cast(thisObject)->putDirect(Identifier(exec, "SharedWorker"), value); } -void setJSDOMWindowWebSocketConstructor(ExecState* exec, JSObject* thisObject, JSValue value) -{ - if (!static_cast(thisObject)->allowsAccessFrom(exec)) - return; - // Shadowing a built-in constructor - static_cast(thisObject)->putDirect(Identifier(exec, "WebSocket"), value); -} - void setJSDOMWindowPluginConstructor(ExecState* exec, JSObject* thisObject, JSValue value) { if (!static_cast(thisObject)->allowsAccessFrom(exec)) diff -r 3b1da2848fc7 -r d3bac044e0f0 src/3rdparty/webkit/WebCore/generated/JSDOMWindow.h --- a/src/3rdparty/webkit/WebCore/generated/JSDOMWindow.h Fri Feb 19 23:40:16 2010 +0200 +++ b/src/3rdparty/webkit/WebCore/generated/JSDOMWindow.h Fri Mar 12 15:46:37 2010 +0200 @@ -82,7 +82,6 @@ JSC::JSValue messageChannel(JSC::ExecState*) const; JSC::JSValue worker(JSC::ExecState*) const; JSC::JSValue sharedWorker(JSC::ExecState*) const; - JSC::JSValue webSocket(JSC::ExecState*) const; JSC::JSValue audio(JSC::ExecState*) const; // Custom functions @@ -679,8 +678,6 @@ void setJSDOMWindowWorkerConstructor(JSC::ExecState*, JSC::JSObject*, JSC::JSValue); JSC::JSValue jsDOMWindowSharedWorkerConstructor(JSC::ExecState*, const JSC::Identifier&, const JSC::PropertySlot&); void setJSDOMWindowSharedWorkerConstructor(JSC::ExecState*, JSC::JSObject*, JSC::JSValue); -JSC::JSValue jsDOMWindowWebSocketConstructor(JSC::ExecState*, const JSC::Identifier&, const JSC::PropertySlot&); -void setJSDOMWindowWebSocketConstructor(JSC::ExecState*, JSC::JSObject*, JSC::JSValue); JSC::JSValue jsDOMWindowPluginConstructor(JSC::ExecState*, const JSC::Identifier&, const JSC::PropertySlot&); void setJSDOMWindowPluginConstructor(JSC::ExecState*, JSC::JSObject*, JSC::JSValue); JSC::JSValue jsDOMWindowPluginArrayConstructor(JSC::ExecState*, const JSC::Identifier&, const JSC::PropertySlot&); diff -r 3b1da2848fc7 -r d3bac044e0f0 src/3rdparty/webkit/WebCore/platform/PopupMenu.h --- a/src/3rdparty/webkit/WebCore/platform/PopupMenu.h Fri Feb 19 23:40:16 2010 +0200 +++ b/src/3rdparty/webkit/WebCore/platform/PopupMenu.h Fri Mar 12 15:46:37 2010 +0200 @@ -44,6 +44,9 @@ namespace WebCore { class QWebPopup; } +QT_BEGIN_NAMESPACE +class QGraphicsProxyWidget; +QT_END_NAMESPACE #elif PLATFORM(GTK) typedef struct _GtkMenu GtkMenu; typedef struct _GtkMenuItem GtkMenuItem; @@ -147,6 +150,7 @@ void clear(); void populate(const IntRect&); QWebPopup* m_popup; + QGraphicsProxyWidget* m_proxy; #elif PLATFORM(WIN) // ScrollBarClient virtual void valueChanged(Scrollbar*); diff -r 3b1da2848fc7 -r d3bac044e0f0 src/3rdparty/webkit/WebCore/platform/ScrollView.cpp --- a/src/3rdparty/webkit/WebCore/platform/ScrollView.cpp Fri Feb 19 23:40:16 2010 +0200 +++ b/src/3rdparty/webkit/WebCore/platform/ScrollView.cpp Fri Mar 12 15:46:37 2010 +0200 @@ -507,7 +507,7 @@ hostWindow()->repaint(panScrollIconDirtyRect, true); } - if (canBlitOnScroll() && !rootPreventsBlitting()) { // The main frame can just blit the WebView window + if (canBlitOnScroll()) { // The main frame can just blit the WebView window // FIXME: Find a way to blit subframes without blitting overlapping content hostWindow()->scroll(-scrollDelta, scrollViewRect, clipRect); } else { @@ -597,14 +597,6 @@ if (m_scrollbarsAvoidingResizer && parent()) parent()->adjustScrollbarsAvoidingResizerCount(-m_scrollbarsAvoidingResizer); -#if PLATFORM(QT) - if (m_widgetsPreventingBlitting && parent()) - parent()->adjustWidgetsPreventingBlittingCount(-m_widgetsPreventingBlitting); - - if (m_widgetsPreventingBlitting && parentView) - parentView->adjustWidgetsPreventingBlittingCount(m_widgetsPreventingBlitting); -#endif - Widget::setParent(parentView); if (m_scrollbarsAvoidingResizer && parent()) diff -r 3b1da2848fc7 -r d3bac044e0f0 src/3rdparty/webkit/WebCore/platform/ScrollView.h --- a/src/3rdparty/webkit/WebCore/platform/ScrollView.h Fri Feb 19 23:40:16 2010 +0200 +++ b/src/3rdparty/webkit/WebCore/platform/ScrollView.h Fri Mar 12 15:46:37 2010 +0200 @@ -305,16 +305,6 @@ NSScrollView* scrollView() const; #endif -#if PLATFORM(QT) -public: - void adjustWidgetsPreventingBlittingCount(int delta); -private: - bool rootPreventsBlitting() const { return root()->m_widgetsPreventingBlitting > 0; } - unsigned m_widgetsPreventingBlitting; -#else - bool rootPreventsBlitting() const { return false; } -#endif - #if PLATFORM(GTK) public: void setGtkAdjustments(GtkAdjustment* hadj, GtkAdjustment* vadj); diff -r 3b1da2848fc7 -r d3bac044e0f0 src/3rdparty/webkit/WebCore/platform/qt/PopupMenuQt.cpp --- a/src/3rdparty/webkit/WebCore/platform/qt/PopupMenuQt.cpp Fri Feb 19 23:40:16 2010 +0200 +++ b/src/3rdparty/webkit/WebCore/platform/qt/PopupMenuQt.cpp Fri Mar 12 15:46:37 2010 +0200 @@ -1,6 +1,7 @@ /* * This file is part of the popup menu implementation for