summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--bin/build_release_package.pl179
-rwxr-xr-xconfigure.exebin868352 -> 868352 bytes
-rw-r--r--confqt.bat2
-rw-r--r--confsbsv2.bat2
-rw-r--r--mkspecs/common/symbian/symbian.conf1
-rw-r--r--src/gui/kernel/qapplication.cpp6
-rw-r--r--src/gui/kernel/qapplication_s60.cpp1
-rw-r--r--src/gui/styles/qs60style.cpp91
-rw-r--r--src/gui/styles/qs60style.h1
-rw-r--r--src/gui/styles/qs60style_p.h2
-rw-r--r--src/gui/styles/qs60style_s60.cpp (renamed from src/gui/styles/qs60style_symbian.cpp)0
-rw-r--r--src/gui/styles/styles.pri2
-rw-r--r--src/network/ssl/qsslsocket_openssl_symbols.cpp145
-rw-r--r--src/testlib/qtest.h7
-rw-r--r--src/testlib/qtestcase.cpp7
-rw-r--r--tools/configure/configureapp.cpp2
16 files changed, 292 insertions, 156 deletions
diff --git a/bin/build_release_package.pl b/bin/build_release_package.pl
index 0df5995..44b0fb1 100644
--- a/bin/build_release_package.pl
+++ b/bin/build_release_package.pl
@@ -7,10 +7,11 @@
#
#######################################################################
-use Cwd;
+my $buildContentDemoValue = "libs+demo";
if (@ARGV)
{
+ my $buildContent = shift(@ARGV);
my $platform = shift(@ARGV);
my $build = shift(@ARGV);
my $cert = shift(@ARGV);
@@ -19,10 +20,22 @@ if (@ARGV)
my $qtRootDir = shift(@ARGV);
my $epocroot = shift(@ARGV);
+ if ($buildContent eq "")
+ {
+ print("Build content parameter required!\n");
+ exit 2;
+ }
+
+ if ($platform eq "")
+ {
+ print("HW platform parameter required!\n");
+ exit 2;
+ }
+
if ($build eq "")
{
print("HW build parameter required!\n");
- exit 1;
+ exit 2;
}
if ($cert eq "")
@@ -34,22 +47,28 @@ if (@ARGV)
if ($certKey eq "")
{
print("Signing certificate key parameter required!\n");
- exit 3;
+ exit 2;
}
if ($releaseDir eq "")
{
print("Release directory parameter required!\n");
- exit 4;
+ exit 2;
}
if ($qtRootDir eq "")
{
- $qtRootDir = cwd();
- $qtRootDir =~ s/\//\\/g;
+ print("Qt root directory parameter required!\n");
+ exit 2;
+ }
+
+ if ($epocroot eq "")
+ {
+ print("Epocroot directory parameter required!\n");
+ exit 2;
}
- # Lose the ending separator is any
+ # Lose the ending separator if any
$qtRootDir =~ s/\\$//;
$epocroot =~ s/\\$//;
@@ -66,12 +85,13 @@ if (@ARGV)
$qtRootDirForMatch =~ s/\\/\\\\/g;
my $pkgFileName = "src\\s60installs\\qt_libs_${platform}_${build}.pkg";
+ my $demoAppPkgFileName = "demos\\embedded\\fluidlauncher\\fluidlauncher_${platform}_${build}.pkg";
+ my $sisFileNameBase = "qt_libs";
+ my $demoAppSisFileNameBase = "fluidlauncher";
my $hwBuildDir = "${epocroot}\\epoc32\\release\\$platform\\$build";
my $armDbgDir = "epoc32\\release\\armv5\\udeb";
my $armRelDir = "epoc32\\release\\armv5\\urel";
- my $gcceDbgDir = "epoc32\\release\\gcce\\udeb";
- my $gcceRelDir = "epoc32\\release\\gcce\\urel";
my $armLibDir = "epoc32\\release\\armv5\\lib";
my $winscwDbgDir = "epoc32\\release\\winscw\\udeb";
@@ -96,13 +116,8 @@ if (@ARGV)
runSystemCmd("attrib -A ${epocroot}\\${winscwDbgDir}\\*");
# Build Qt
- runSystemCmd("configure -platform win32-mwc -xplatform symbian-abld -openssl-linked -qt-sql-sqlite -system-sqlite -nokia-developer");
- chdir("src");
- runSystemCmd("qmake");
- runSystemCmd("bldmake bldfiles");
- runSystemCmd("abld build ${platform} ${build}");
- runSystemCmd("abld build winscw udeb");
- chdir($qtRootDir);
+ runSystemCmd("configure -platform win32-mwc -xplatform symbian-abld -openssl-linked -qt-sql-sqlite -system-sqlite -confirm-license -opensource");
+ buildDir("src", $qtRootDir, $platform, $build);
# Copy misc stuff
runSystemCmd("xcopy ${qtRootDir}\\bin\\* ${releaseDirQt}\\bin /F /R /Y /I /D");
@@ -114,7 +129,60 @@ if (@ARGV)
runSystemCmd("copy .qmake.cache ${releaseDirQt}\\.qmake.cache");
# Copy stuff indicated by pkg file for emulator
- open (PKG, "<".$pkgFileName);
+ parsePkgFile($pkgFileName, $epocroot, $build, $platform, $releaseDirEpocroot, $qtRootDirForMatch, $releaseDirQt);
+
+ # Copy any other binaries and related files built not included in pkg
+ runSystemCmd("xcopy ${hwBuildDir}\\* ${releaseDirEpocroot}\\${armDbgDir} /A /F /R /Y /I /D ");
+ runSystemCmd("xcopy ${releaseDirEpocroot}\\${armDbgDir}\\* ${releaseDirEpocroot}\\${armRelDir} /F /R /Y /I /D");
+ system("del /F /Q ${releaseDirEpocroot}\\${armRelDir}\\*.sym 2> NUL");
+ runSystemCmd("xcopy ${epocroot}\\${armLibDir}\\* ${releaseDirEpocroot}\\${armLibDir} /A /F /R /Y /I /D");
+ runSystemCmd("xcopy ${epocroot}\\${winscwDbgDir}\\* ${releaseDirEpocroot}\\${winscwDbgDir} /A /F /R /Y /I /D");
+
+ if ($buildContent eq $buildContentDemoValue)
+ {
+ # Also build demos & examples and add fluidlauncher sis
+ buildDir("examples", $qtRootDir, $platform, $build);
+ buildDir("demos", $qtRootDir, $platform, $build);
+ parsePkgFile($demoAppPkgFileName, $epocroot, $build, $platform, $releaseDirEpocroot, $qtRootDirForMatch, $releaseDirQt);
+ createSis($demoAppPkgFileName, $releaseDirSis, "selfsigned.cer", "selfsigned.key", $demoAppSisFileNameBase);
+ }
+
+ # Create unsigned sis and Rnd signed sisx
+ createSis($pkgFileName, $releaseDirSis, $cert, $certKey, $sisFileNameBase);
+
+}
+else
+{
+ print("Usage:\n");
+ print("build_release_package.pl <build content (${buildContentDemoValue}|libs)> <hw platform> <hw build> <signing cert> <signing cert key> <release directory> <QTROOT> <EPOCROOT>\n");
+ print("1) Clean up the env. (abld reallyclean & delete \\my\\epoc\\root\\build folder)\n");
+ print("2) Run \"build_release_package.pl armv5 udeb \\rd.cer \\rd-key.pem \\my_release_dir [\\my\\qt\\root\\] [\\my\\epoc\\root\\]>\"\n");
+ print(" to build Qt and create the release package structure and sis file.\n");
+ print(" Note: Run in the Qt root directory.\n");
+ print("3) Optional: Get the sis signed with commercial certificate (can be found in qt directory under release directory)\n");
+ print("4) Zip up the release directory contents\n");
+}
+
+sub runSystemCmd
+{
+ my $error_code = system($_[0]);
+ if ($error_code != 0)
+ {
+ print("'$_[0]' call failed: error code == $error_code\n");
+ exit 9;
+ }
+}
+
+sub parsePkgFile
+{
+ my $epocroot = $_[1];
+ my $build = $_[2];
+ my $platform = $_[3];
+ my $releaseDirEpocroot = $_[4];
+ my $qtRootDirForMatch = $_[5];
+ my $releaseDirQt = $_[6];
+
+ open (PKG, "<".$_[0]);
while (<PKG>)
{
my $line = $_;
@@ -150,7 +218,15 @@ if (@ARGV)
if ($sourcePath !~ m/\\epoc32\\release\\([^\\]+)\\(udeb|urel)\\(\w+(\.dll|\.exe))/i)
{
# Copy non-binaries also over for emulator to use
- $pkgDestinationPath =~ s/!:/${releaseDirEpocroot}\\epoc32\\winscw\\c/g;
+ if ($pkgDestinationPath =~ m/(private\\10003a3f\\import\\apps|resource\\apps)/i)
+ {
+ $pkgDestinationPath =~ s/!:/${releaseDirEpocroot}\\epoc32\\release\\winscw\\udeb\\z/g;
+ }
+ else
+ {
+ $pkgDestinationPath =~ s/!:/${releaseDirEpocroot}\\epoc32\\winscw\\c/g;
+ }
+
runSystemCmd("echo f|xcopy ${sourcePath} ${pkgDestinationPath} /F /R /Y /I /D");
}
else
@@ -164,46 +240,41 @@ if (@ARGV)
}
}
close (PKG);
+}
- # Copy any other binaries and related files built not included in pkg
- runSystemCmd("xcopy ${hwBuildDir}\\* ${releaseDirEpocroot}\\${armDbgDir} /A /F /R /Y /I /D ");
- runSystemCmd("xcopy ${releaseDirEpocroot}\\${armDbgDir}\\* ${releaseDirEpocroot}\\${armRelDir} /F /R /Y /I /D");
- system("del /F /Q ${releaseDirEpocroot}\\${armRelDir}\\*.sym 2> NUL");
- runSystemCmd("xcopy ${releaseDirEpocroot}\\${armDbgDir}\\* ${releaseDirEpocroot}\\${gcceDbgDir} /F /R /Y /I /D");
- runSystemCmd("xcopy ${releaseDirEpocroot}\\${armRelDir}\\* ${releaseDirEpocroot}\\${gcceRelDir} /F /R /Y /I /D");
- runSystemCmd("xcopy ${epocroot}\\${armLibDir}\\* ${releaseDirEpocroot}\\${armLibDir} /A /F /R /Y /I /D");
- runSystemCmd("xcopy ${epocroot}\\${winscwDbgDir}\\* ${releaseDirEpocroot}\\${winscwDbgDir} /A /F /R /Y /I /D");
+sub createSis
+{
+ my $pkgFileName = $_[0];
+ my $releaseDirSis = $_[1];
+ my $cert = $_[2];
+ my $certKey = $_[3];
+ my $sisFileNameBase = $_[4];
+ my $signedSuffix = ".sis";
+ my $unsignedSuffix = "_unsigned.sis";
- # Create unsigned sis and Rnd signed sisx
- my @pkgPathElements = split(/\\/, $pkgFileName);
- my $pathlessPkgFile = pop(@pkgPathElements);
- my @pkgSuffixElements = split(/\./, $pathlessPkgFile);
- pop(@pkgSuffixElements);
- my $sisFileName = join("", @pkgSuffixElements).".sis";
- my $rndSisFileName = join("", @pkgSuffixElements)."_rnd.sisx";
- system("mkdir ${releaseDirSis}");
+ if ($cert =~ m/rd\.cer/i)
+ {
+ $signedSuffix = "_rnd.sis";
+ }
+
+ my $sisFileName = $sisFileNameBase.$unsignedSuffix;
+ my $signedSisFileName = $sisFileNameBase.$signedSuffix;
+ system("mkdir ${releaseDirSis} 2> NUL");
runSystemCmd("makesis ${pkgFileName} ${releaseDirSis}\\${sisFileName}");
- runSystemCmd("signsis ${releaseDirSis}\\${sisFileName} ${releaseDirSis}\\${rndSisFileName} ${cert} ${certKey}");
-}
-else
-{
- print("Usage:\n");
- print("build_release_package.pl <hw platform> <hw build> <signing cert> <signing cert key> <release directory> [QTROOT] [EPOCROOT]\n");
- print("QTROOT and EPOCROOT are optional; QTROOT defaults to current dir and EPOCROOT defaults to '\\'\n");
- print("1) Clean up the env. (abld reallyclean & delete \\my\\epoc\\root\\build folder)\n");
- print("2) Run \"build_release_package.pl armv5 udeb \\rd.cer \\rd-key.pem \\my_release_dir [\\my\\qt\\root\\] [\\my\\epoc\\root\\]>\"\n");
- print(" to build Qt and create the release package structure and sis file.\n");
- print(" Note: Run in the Qt root directory.\n");
- print("3) Optional: Get the sis signed with commercial certificate (can be found in qt directory under release directory)\n");
- print("4) Zip up the release directory contents\n");
+ runSystemCmd("signsis ${releaseDirSis}\\${sisFileName} ${releaseDirSis}\\${signedSisFileName} ${cert} ${certKey}");
}
-sub runSystemCmd
+sub buildDir
{
- my $error_code = system($_[0]);
- if ($error_code != 0)
- {
- print("'$_[0]' call failed: error code == $error_code\n");
- exit 5;
- }
+ my $buildDir = $_[0];
+ my $qtRootDir = $_[1];
+ my $platform = $_[2];
+ my $build = $_[3];
+
+ chdir($buildDir);
+ runSystemCmd("qmake");
+ runSystemCmd("bldmake bldfiles");
+ runSystemCmd("abld build ${platform} ${build}");
+ runSystemCmd("abld build winscw udeb");
+ chdir($qtRootDir);
}
diff --git a/configure.exe b/configure.exe
index 65db048..15a4d66 100755
--- a/configure.exe
+++ b/configure.exe
Binary files differ
diff --git a/confqt.bat b/confqt.bat
index 5da9592..b1474a7 100644
--- a/confqt.bat
+++ b/confqt.bat
@@ -1 +1 @@
-configure -platform win32-mwc -xplatform symbian-abld -openssl-linked -qt-sql-sqlite -system-sqlite -nokia-developer %*
+configure -platform win32-mwc -xplatform symbian-abld -qt-sql-sqlite -system-sqlite -nokia-developer %*
diff --git a/confsbsv2.bat b/confsbsv2.bat
index 6c9bc1a..f3a8424 100644
--- a/confsbsv2.bat
+++ b/confsbsv2.bat
@@ -1 +1 @@
-configure -platform win32-mwc -xplatform symbian-sbsv2 -openssl-linked -qt-sql-sqlite -system-sqlite -nokia-developer %*
+configure -platform win32-mwc -xplatform symbian-sbsv2 -qt-sql-sqlite -system-sqlite -nokia-developer %*
diff --git a/mkspecs/common/symbian/symbian.conf b/mkspecs/common/symbian/symbian.conf
index 968a6bc..5a61a23 100644
--- a/mkspecs/common/symbian/symbian.conf
+++ b/mkspecs/common/symbian/symbian.conf
@@ -137,5 +137,6 @@ exists($${EPOCROOT}epoc32/release/winscw/udeb/z/system/install/Series60v5.0.sis
S60_VERSION = 3.2
} else {
S60_VERSION = 3.1
+ MMP_RULES -= PAGED
}
}
diff --git a/src/gui/kernel/qapplication.cpp b/src/gui/kernel/qapplication.cpp
index fb002a3..eaaeb4b 100644
--- a/src/gui/kernel/qapplication.cpp
+++ b/src/gui/kernel/qapplication.cpp
@@ -4764,7 +4764,7 @@ void QApplicationPrivate::emitLastWindowClosed()
If \a enable is true, Qt::Key_Up and Qt::Key_Down are used to change focus.
- This feature is available in Qt for Embedded Linux only.
+ This feature is available in Qt for Embedded Linux and Symbian only.
\sa keypadNavigationEnabled()
*/
@@ -4775,9 +4775,9 @@ void QApplication::setKeypadNavigationEnabled(bool enable)
/*!
Returns true if Qt is set to use keypad navigation; otherwise returns
- false. The default is false.
+ false. The default value is true on Symbian, but false on other platforms.
- This feature is available in Qt for Embedded Linux only.
+ This feature is available in Qt for Embedded Linux and Symbian only.
\sa setKeypadNavigationEnabled()
*/
diff --git a/src/gui/kernel/qapplication_s60.cpp b/src/gui/kernel/qapplication_s60.cpp
index 138ba8c..8408047 100644
--- a/src/gui/kernel/qapplication_s60.cpp
+++ b/src/gui/kernel/qapplication_s60.cpp
@@ -1012,6 +1012,7 @@ int QApplication::s60ProcessEvent(TWsEvent *event)
} else if ((visChangedEvent->iFlags & TWsVisibilityChangedEvent::EPartiallyVisible)
&& !w->d_func()->maybeBackingStore()) {
w->d_func()->topData()->backingStore = new QWidgetBackingStore(w);
+ w->update();
}
return 1;
}
diff --git a/src/gui/styles/qs60style.cpp b/src/gui/styles/qs60style.cpp
index b0ba30b..930602b 100644
--- a/src/gui/styles/qs60style.cpp
+++ b/src/gui/styles/qs60style.cpp
@@ -1111,15 +1111,6 @@ void QS60Style::drawComplexControl(ComplexControl control, const QStyleOptionCom
}
break;
#endif //QT_NO_GROUPBOX
-#ifndef QT_NO_DIAL
- case CC_Dial:
- if (const QStyleOptionSlider *slider = qstyleoption_cast<const QStyleOptionSlider *>(option)) {
- QStyleOptionSlider optionSlider = *slider;
- QCommonStyle::drawComplexControl(control, &optionSlider, painter, widget);
- }
- break;
-#endif //QT_NO_DIAL
-
default:
QCommonStyle::drawComplexControl(control, option, painter, widget);
}
@@ -1177,24 +1168,6 @@ void QS60Style::drawControl(ControlElement element, const QStyleOption *option,
QS60StylePrivate::drawSkinElement(skinElement, painter, option->rect, flags);
}
break;
- case CE_PushButtonLabel:
- if (const QStyleOptionButton *button = qstyleoption_cast<const QStyleOptionButton *>(option)) {
- QStyleOptionButton optionButton = *button;
- QCommonStyle::drawControl(element, &optionButton, painter, widget);
- }
- break;
- case CE_CheckBoxLabel:
- if (const QStyleOptionButton *checkBox = qstyleoption_cast<const QStyleOptionButton *>(option)) {
- QStyleOptionButton optionCheckBox = *checkBox;
- QCommonStyle::drawControl(element, &optionCheckBox, painter, widget);
- }
- break;
- case CE_RadioButtonLabel:
- if (const QStyleOptionButton *radioButton = qstyleoption_cast<const QStyleOptionButton *>(option)) {
- QStyleOptionButton optionRadioButton = *radioButton;
- QCommonStyle::drawControl(element, &optionRadioButton, painter, widget);
- }
- break;
#ifndef QT_NO_TOOLBUTTON
case CE_ToolButtonLabel:
if (const QStyleOptionToolButton *toolBtn = qstyleoption_cast<const QStyleOptionToolButton *>(option)) {
@@ -1213,12 +1186,6 @@ void QS60Style::drawControl(ControlElement element, const QStyleOption *option,
}
break;
#endif //QT_NO_TOOLBUTTON
- case CE_HeaderLabel:
- if (const QStyleOptionHeader *headerLabel = qstyleoption_cast<const QStyleOptionHeader *>(option)) {
- QStyleOptionHeader optionHeaderLabel = *headerLabel;
- QCommonStyle::drawControl(element, &optionHeaderLabel, painter, widget);
- }
- break;
#ifndef QT_NO_COMBOBOX
case CE_ComboBoxLabel:
if (const QStyleOptionComboBox *comboBox = qstyleoption_cast<const QStyleOptionComboBox *>(option)) {
@@ -1580,12 +1547,6 @@ void QS60Style::drawControl(ControlElement element, const QStyleOption *option,
break;
#endif // QT_NO_PROGRESSBAR
#ifndef QT_NO_MENUBAR
- case CE_MenuBarItem:
- if (const QStyleOptionMenuItem *menuBarItem = qstyleoption_cast<const QStyleOptionMenuItem *>(option)) {
- QStyleOptionMenuItem optionMenuBarItem = *menuBarItem;
- QCommonStyle::drawControl(element, &optionMenuBarItem, painter, widget);
- }
- break;
#endif //QT_NO_MENUBAR
#ifndef QT_NO_MENU
case CE_MenuItem:
@@ -1798,49 +1759,6 @@ void QS60Style::drawControl(ControlElement element, const QStyleOption *option,
}
break;
#endif //QT_NO_TOOLBAR
-
- //todo: remove non-used widgets in final version
- case CE_ShapedFrame:
- case CE_MenuVMargin:
- case CE_MenuHMargin:
-#ifndef QT_NO_MENU
- case CE_MenuScroller:
- case CE_MenuTearoff:
-#endif //QT_NO_MENU
-
- case CE_CheckBox:
- case CE_RadioButton:
-#ifndef QT_NO_TABBAR
- case CE_TabBarTab:
-#endif //QT_NO_TABBAR
-#ifndef QT_NO_PROGRESSBAR
- case CE_ProgressBar:
-#endif // QT_NO_PROGRESSBAR
- case CE_Q3DockWindowEmptyArea:
-#ifndef QT_NO_SIZEGRIP
- case CE_SizeGrip:
-#endif //QT_NO_SIZEGRIP
- case CE_Splitter:
-#ifndef QT_NO_RUBBERBAND
- case CE_RubberBand:
-#endif //QT_NO_RUBBERBAND
-#ifndef QT_NO_DOCKWIDGET
- case CE_DockWidgetTitle:
-#endif //QT_NO_DOCKWIDGET
- case CE_ScrollBarAddLine:
- case CE_ScrollBarSubLine:
- case CE_ScrollBarAddPage:
- case CE_ScrollBarSubPage:
- case CE_ScrollBarSlider:
- case CE_ScrollBarFirst:
- case CE_ScrollBarLast:
- case CE_FocusFrame:
-#ifndef QT_NO_TOOLBOX
- case CE_ToolBoxTab:
- case CE_ToolBoxTabShape:
- case CE_ToolBoxTabLabel:
-#endif //QT_NO_TOOLBOX
- case CE_ColumnViewGrip:
default:
QCommonStyle::drawControl(element, option, painter, widget);
}
@@ -2169,15 +2087,6 @@ void QS60Style::drawPrimitive(PrimitiveElement element, const QStyleOption *opti
}
/*!
- \reimp - sets the default colors
-*/
-void QS60Style::drawItemText(QPainter *painter, const QRect &rectangle, int alignment, const QPalette & palette, bool enabled, const QString &text, QPalette::ColorRole textRole) const
-{
- QPalette override = palette;
- QCommonStyle::drawItemText(painter, rectangle, alignment, override, enabled, text, textRole);
-}
-
-/*!
\reimp
*/
int QS60Style::pixelMetric(PixelMetric metric, const QStyleOption *option, const QWidget *widget) const
diff --git a/src/gui/styles/qs60style.h b/src/gui/styles/qs60style.h
index 945e182..09c6b00 100644
--- a/src/gui/styles/qs60style.h
+++ b/src/gui/styles/qs60style.h
@@ -36,7 +36,6 @@ public:
void drawComplexControl(ComplexControl control, const QStyleOptionComplex *option, QPainter *painter, const QWidget *widget = 0) const;
void drawControl(ControlElement element, const QStyleOption *option, QPainter *painter, const QWidget *widget = 0) const;
void drawPrimitive(PrimitiveElement element, const QStyleOption *option, QPainter *painter, const QWidget *widget = 0) const;
- void drawItemText(QPainter *painter, const QRect &rectangle, int alignment, const QPalette &palette, bool enabled, const QString &text, QPalette::ColorRole textRole = QPalette::NoRole) const;
int pixelMetric(PixelMetric metric, const QStyleOption *option = 0, const QWidget *widget = 0) const;
QSize sizeFromContents(ContentsType ct, const QStyleOption *opt, const QSize &contentsSize, const QWidget *w = 0) const;
int styleHint(StyleHint sh, const QStyleOption *opt = 0, const QWidget *w = 0,
diff --git a/src/gui/styles/qs60style_p.h b/src/gui/styles/qs60style_p.h
index 22b01f6..c93d271 100644
--- a/src/gui/styles/qs60style_p.h
+++ b/src/gui/styles/qs60style_p.h
@@ -366,8 +366,6 @@ public:
static QColor lighterColor(const QColor &baseColor);
//deduces if the given widget should have separately themeable background
static bool drawsOwnThemeBackground(const QWidget *widget);
- // gets layout
- static const QHash<QStyle::PixelMetric, int> &s60StyleLayout();
QFont s60Font(QS60StyleEnums::FontCategories fontCategory,
int pointSize = -1) const;
diff --git a/src/gui/styles/qs60style_symbian.cpp b/src/gui/styles/qs60style_s60.cpp
index ddee4ba..ddee4ba 100644
--- a/src/gui/styles/qs60style_symbian.cpp
+++ b/src/gui/styles/qs60style_s60.cpp
diff --git a/src/gui/styles/styles.pri b/src/gui/styles/styles.pri
index b0e9f21..050d81d 100644
--- a/src/gui/styles/styles.pri
+++ b/src/gui/styles/styles.pri
@@ -161,7 +161,7 @@ contains( styles, s60 ) {
styles/qs60style_p.h
SOURCES += styles/qs60style.cpp
symbian {
- SOURCES += styles/qs60style_symbian.cpp
+ SOURCES += styles/qs60style_s60.cpp
# TODO: fix the following LIBS hack. Line 1 is for armv5, 2 for winscw
LIBS += aknicon aknskins aknskinsrv fontutils
LIBS += -laknicon -laknskins -laknskinsrv -lfontutils
diff --git a/src/network/ssl/qsslsocket_openssl_symbols.cpp b/src/network/ssl/qsslsocket_openssl_symbols.cpp
index 42c09f5..0723822 100644
--- a/src/network/ssl/qsslsocket_openssl_symbols.cpp
+++ b/src/network/ssl/qsslsocket_openssl_symbols.cpp
@@ -231,10 +231,16 @@ DEFINEFUNC3(DSA *, d2i_DSAPrivateKey, DSA **a, a, unsigned char **b, b, long c,
DEFINEFUNC(void, OPENSSL_add_all_algorithms_noconf, void, DUMMYARG, return, DUMMYARG)
DEFINEFUNC(void, OPENSSL_add_all_algorithms_conf, void, DUMMYARG, return, DUMMYARG)
+#ifdef Q_OS_SYMBIAN
+#define RESOLVEFUNC(func, ordinal, lib) \
+ if (!(_q_##func = _q_PTR_##func(lib->resolve(#ordinal)))) \
+ qWarning("QSslSocket: cannot resolve "#func);
+#else
#define RESOLVEFUNC(func) \
if (!(_q_##func = _q_PTR_##func(libs.first->resolve(#func))) \
&& !(_q_##func = _q_PTR_##func(libs.second->resolve(#func)))) \
qWarning("QSslSocket: cannot resolve "#func);
+#endif
#if !defined QT_LINKED_OPENSSL
@@ -335,7 +341,24 @@ static QPair<QLibrary*, QLibrary*> loadOpenSsl()
pair.first = ssleay32;
pair.second = libeay32;
return pair;
+# elif defined(Q_OS_SYMBIAN)
+ QLibrary *libssl = new QLibrary(QLatin1String("libssl"));
+ if (!libssl->load()) {
+ // Cannot find ssleay32.dll
+ delete libssl;
+ return pair;
+ }
+ QLibrary *libcrypto = new QLibrary(QLatin1String("libcrypto"));
+ if (!libcrypto->load()) {
+ delete libcrypto;
+ delete libssl;
+ return pair;
+ }
+
+ pair.first = libssl;
+ pair.second = libcrypto;
+ return pair;
# elif defined(Q_OS_UNIX)
QLibrary *&libssl = pair.first;
QLibrary *&libcrypto = pair.second;
@@ -437,6 +460,127 @@ bool q_resolveOpenSslSymbols()
// failed to load them
return false;
+#ifdef Q_OS_SYMBIAN
+#ifdef SSLEAY_MACROS
+ RESOLVEFUNC(ASN1_dup, 125, libs.second )
+#endif
+ RESOLVEFUNC(ASN1_STRING_data, 71, libs.second )
+ RESOLVEFUNC(ASN1_STRING_length, 76, libs.second )
+ RESOLVEFUNC(BIO_ctrl, 184, libs.second )
+ RESOLVEFUNC(BIO_free, 209, libs.second )
+ RESOLVEFUNC(BIO_new, 222, libs.second )
+ RESOLVEFUNC(BIO_new_mem_buf, 230, libs.second )
+ RESOLVEFUNC(BIO_read, 244, libs.second )
+ RESOLVEFUNC(BIO_s_mem, 251, libs.second )
+ RESOLVEFUNC(BIO_write, 269, libs.second )
+ RESOLVEFUNC(BN_num_bits, 387, libs.second )
+ RESOLVEFUNC(CRYPTO_free, 469, libs.second )
+ RESOLVEFUNC(CRYPTO_num_locks, 500, libs.second )
+ RESOLVEFUNC(CRYPTO_set_id_callback, 513, libs.second )
+ RESOLVEFUNC(CRYPTO_set_locking_callback, 516, libs.second )
+ RESOLVEFUNC(DSA_free, 594, libs.second )
+ RESOLVEFUNC(ERR_error_string, 744, libs.second )
+ RESOLVEFUNC(ERR_get_error, 749, libs.second )
+ RESOLVEFUNC(EVP_des_ede3_cbc, 919, libs.second )
+ RESOLVEFUNC(EVP_PKEY_assign, 859, libs.second )
+ RESOLVEFUNC(EVP_PKEY_free, 867, libs.second )
+ RESOLVEFUNC(EVP_PKEY_get1_DSA, 869, libs.second )
+ RESOLVEFUNC(EVP_PKEY_get1_RSA, 870, libs.second )
+ RESOLVEFUNC(EVP_PKEY_new, 876, libs.second )
+ RESOLVEFUNC(EVP_PKEY_type, 882, libs.second )
+ RESOLVEFUNC(OBJ_nid2sn, 1036, libs.second )
+ RESOLVEFUNC(OBJ_obj2nid, 1037, libs.second )
+#ifdef SSLEAY_MACROS // ### verify
+ RESOLVEFUNC(PEM_ASN1_read_bio, 1180, libs.second )
+#else
+ RESOLVEFUNC(PEM_read_bio_DSAPrivateKey, 1219, libs.second )
+ RESOLVEFUNC(PEM_read_bio_RSAPrivateKey, 1228, libs.second )
+ RESOLVEFUNC(PEM_write_bio_DSAPrivateKey, 1260, libs.second )
+ RESOLVEFUNC(PEM_write_bio_RSAPrivateKey, 1271, libs.second )
+#endif
+ RESOLVEFUNC(PEM_read_bio_DSA_PUBKEY, 1220, libs.second )
+ RESOLVEFUNC(PEM_read_bio_RSA_PUBKEY, 1230, libs.second )
+ RESOLVEFUNC(PEM_write_bio_DSA_PUBKEY, 1261, libs.second )
+ RESOLVEFUNC(PEM_write_bio_RSA_PUBKEY, 1273, libs.second )
+ RESOLVEFUNC(RAND_seed, 1426, libs.second )
+ RESOLVEFUNC(RAND_status, 1429, libs.second )
+ RESOLVEFUNC(RSA_free, 1450, libs.second )
+ RESOLVEFUNC(sk_free, 2571, libs.second )
+ RESOLVEFUNC(sk_num, 2576, libs.second )
+ RESOLVEFUNC(sk_value, 2585, libs.second )
+ RESOLVEFUNC(SSL_CIPHER_description, 11, libs.first )
+ RESOLVEFUNC(SSL_CTX_check_private_key, 21, libs.first )
+ RESOLVEFUNC(SSL_CTX_ctrl, 22, libs.first )
+ RESOLVEFUNC(SSL_CTX_free, 24, libs.first )
+ RESOLVEFUNC(SSL_CTX_new, 35, libs.first )
+ RESOLVEFUNC(SSL_CTX_set_cipher_list, 40, libs.first )
+ RESOLVEFUNC(SSL_CTX_set_default_verify_paths, 44, libs.first )
+ RESOLVEFUNC(SSL_CTX_set_verify, 56, libs.first )
+ RESOLVEFUNC(SSL_CTX_set_verify_depth, 57, libs.first )
+ RESOLVEFUNC(SSL_CTX_use_certificate, 64, libs.first )
+ RESOLVEFUNC(SSL_CTX_use_certificate_file, 67, libs.first )
+ RESOLVEFUNC(SSL_CTX_use_PrivateKey, 58, libs.first )
+ RESOLVEFUNC(SSL_CTX_use_RSAPrivateKey, 61, libs.first )
+ RESOLVEFUNC(SSL_CTX_use_PrivateKey_file, 60, libs.first )
+ RESOLVEFUNC(SSL_accept, 82, libs.first )
+ RESOLVEFUNC(SSL_clear, 92, libs.first )
+ RESOLVEFUNC(SSL_connect, 93, libs.first )
+ RESOLVEFUNC(SSL_free, 99, libs.first )
+ RESOLVEFUNC(SSL_get_ciphers, 104, libs.first )
+ RESOLVEFUNC(SSL_get_current_cipher, 106, libs.first )
+ RESOLVEFUNC(SSL_get_error, 110, libs.first )
+ RESOLVEFUNC(SSL_get_peer_cert_chain, 117, libs.first )
+ RESOLVEFUNC(SSL_get_peer_certificate, 118, libs.first )
+ RESOLVEFUNC(SSL_get_verify_result, 132, libs.first )
+ RESOLVEFUNC(SSL_library_init, 137, libs.first )
+ RESOLVEFUNC(SSL_load_error_strings, 139, libs.first )
+ RESOLVEFUNC(SSL_new, 140, libs.first )
+ RESOLVEFUNC(SSL_read, 143, libs.first )
+ RESOLVEFUNC(SSL_set_accept_state, 148, libs.first )
+ RESOLVEFUNC(SSL_set_bio, 149, libs.first )
+ RESOLVEFUNC(SSL_set_connect_state, 152, libs.first )
+ RESOLVEFUNC(SSL_shutdown, 173, libs.first )
+ RESOLVEFUNC(SSL_write, 188, libs.first )
+ RESOLVEFUNC(SSLv2_client_method, 192, libs.first )
+ RESOLVEFUNC(SSLv3_client_method, 195, libs.first )
+ RESOLVEFUNC(SSLv23_client_method, 189, libs.first )
+ RESOLVEFUNC(TLSv1_client_method, 198, libs.first )
+ RESOLVEFUNC(SSLv2_server_method, 194, libs.first )
+ RESOLVEFUNC(SSLv3_server_method, 197, libs.first )
+ RESOLVEFUNC(SSLv23_server_method, 191, libs.first )
+ RESOLVEFUNC(TLSv1_server_method, 200, libs.first )
+ RESOLVEFUNC(X509_NAME_oneline, 1830, libs.second )
+ RESOLVEFUNC(X509_PUBKEY_get, 1844, libs.second )
+ RESOLVEFUNC(X509_STORE_free, 1939, libs.second )
+ RESOLVEFUNC(X509_STORE_new, 1942, libs.second )
+ RESOLVEFUNC(X509_STORE_add_cert, 1936, libs.second )
+ RESOLVEFUNC(X509_STORE_CTX_free, 1907, libs.second )
+ RESOLVEFUNC(X509_STORE_CTX_init, 1919, libs.second )
+ RESOLVEFUNC(X509_STORE_CTX_new, 1920, libs.second )
+ RESOLVEFUNC(X509_STORE_CTX_set_purpose, 1931, libs.second )
+ RESOLVEFUNC(X509_cmp, 1992, libs.second )
+#ifndef SSLEAY_MACROS
+ RESOLVEFUNC(X509_dup, 1997, libs.second )
+#endif
+ RESOLVEFUNC(X509_EXTENSION_get_object, 1785, libs.second )
+ RESOLVEFUNC(X509_free, 2001, libs.second )
+ RESOLVEFUNC(X509_get_ext, 2012, libs.second )
+ RESOLVEFUNC(X509_get_ext_count, 2016, libs.second )
+ RESOLVEFUNC(X509_get_ext_d2i, 2017, libs.second )
+ RESOLVEFUNC(X509_get_issuer_name, 2018, libs.second )
+ RESOLVEFUNC(X509_get_subject_name, 2022, libs.second )
+ RESOLVEFUNC(X509_verify_cert, 2069, libs.second )
+ RESOLVEFUNC(d2i_X509, 2309, libs.second )
+ RESOLVEFUNC(i2d_X509, 2489, libs.second )
+#ifdef SSLEAY_MACROS
+ RESOLVEFUNC(i2d_DSAPrivateKey, 2395, libs.second )
+ RESOLVEFUNC(i2d_RSAPrivateKey, 2476, libs.second )
+ RESOLVEFUNC(d2i_DSAPrivateKey, 2220, libs.second )
+ RESOLVEFUNC(d2i_RSAPrivateKey, 2296, libs.second )
+#endif
+ RESOLVEFUNC(OPENSSL_add_all_algorithms_noconf, 1153, libs.second )
+ RESOLVEFUNC(OPENSSL_add_all_algorithms_conf, 1152, libs.second )
+#else // Q_OS_SYMBIAN
#ifdef SSLEAY_MACROS
RESOLVEFUNC(ASN1_dup)
#endif
@@ -556,6 +700,7 @@ bool q_resolveOpenSslSymbols()
#endif
RESOLVEFUNC(OPENSSL_add_all_algorithms_noconf)
RESOLVEFUNC(OPENSSL_add_all_algorithms_conf)
+#endif // Q_OS_SYMBIAN
symbolsResolved = true;
delete libs.first;
delete libs.second;
diff --git a/src/testlib/qtest.h b/src/testlib/qtest.h
index 6ea38f7..15319ce 100644
--- a/src/testlib/qtest.h
+++ b/src/testlib/qtest.h
@@ -226,10 +226,17 @@ int main(int argc, char *argv[]) \
#include <QtTest/qtest_gui.h>
+#ifdef QT_KEYPAD_NAVIGATION
+# define QTEST_DISABLE_KEYPAD_NAVIGATION QApplication::setKeypadNavigationEnabled(false);
+#else
+# define QTEST_DISABLE_KEYPAD_NAVIGATION
+#endif
+
#define QTEST_MAIN(TestObject) \
int main(int argc, char *argv[]) \
{ \
QApplication app(argc, argv); \
+ QTEST_DISABLE_KEYPAD_NAVIGATION \
TestObject tc; \
return QTest::qExec(&tc, argc, argv); \
}
diff --git a/src/testlib/qtestcase.cpp b/src/testlib/qtestcase.cpp
index 27ba6da..b676012 100644
--- a/src/testlib/qtestcase.cpp
+++ b/src/testlib/qtestcase.cpp
@@ -300,10 +300,15 @@ QT_BEGIN_NAMESPACE
the \a TestClass, and executes all tests in the order they were defined.
Use this macro to build stand-alone executables.
+ \bold {Note:} On platforms that have keypad navigation enabled by default (eg: Symbian),
+ this macro will forcfully disable it to simplify the usage of key events when writing
+ autotests. If you wish to write a test case that uses keypad navigation, you should
+ enable it either in the \c {initTestCase()} or \c {init()} functions of your test case.
+
Example:
\snippet doc/src/snippets/code/src_qtestlib_qtestcase.cpp 11
- \sa QTEST_APPLESS_MAIN(), QTest::qExec()
+ \sa QTEST_APPLESS_MAIN(), QTest::qExec(), QApplication::setKeypadNavigationEnabled()
*/
/*! \macro QTEST_APPLESS_MAIN(TestClass)
diff --git a/tools/configure/configureapp.cpp b/tools/configure/configureapp.cpp
index 40caff0..9b44fb5 100644
--- a/tools/configure/configureapp.cpp
+++ b/tools/configure/configureapp.cpp
@@ -1404,7 +1404,7 @@ void Configure::applySpecSpecifics()
dictionary[ "FREETYPE" ] = "no";
dictionary[ "QT3SUPPORT" ] = "no";
dictionary[ "OPENGL" ] = "no";
- dictionary[ "OPENSSL" ] = "no";
+ dictionary[ "OPENSSL" ] = "yes";
dictionary[ "STL" ] = "yes";
dictionary[ "EXCEPTIONS" ] = "no";
dictionary[ "RTTI" ] = "no";