diff --git a/README b/README index 30b1a12..2892eb1 100644 --- a/README +++ b/README @@ -1,5 +1,5 @@ SwissSurfer Light Weight Web Browser -A leight weight WebKit based Qt Webbroswer that supports PKCS#11 +A leight weight WebKit based Qt Webbrowser that supports PKCS#11 hardware smartcard token, i.e. it supports the SuisseID. Formerly delivered as SwissBrowser on SwissStick. diff --git a/ax_check_qt.m4 b/ax_check_qt.m4 index df6daa7..5422129 100644 --- a/ax_check_qt.m4 +++ b/ax_check_qt.m4 @@ -82,6 +82,7 @@ AC_DEFUN([AX_CHECK_VALID_FLAG], [ AC_DEFUN([AX_CHECK_QT], [ qt_modules="$2" + qt_modules_optional="$3" AX_CXX_QT_TOOLS HAVE_$1=0 PKG_PROG_PKG_CONFIG @@ -89,38 +90,59 @@ AC_DEFUN([AX_CHECK_QT], [ HAVE_$1=1 AC_DEFINE([HAVE_$1]) AM_CPPFLAGS+=" ${[$1]5_CFLAGS}" + MOC_FLAGS+=" -DHAVE_$1=1 ${[$1]5_CFLAGS}" AM_CXXFLAGS+=" ${[$1]5_CFLAGS}" LIBS+=" ${[$1]5_LIBS}" + if test -n "${qt_modules_optional}"; then + PKG_CHECK_MODULES([$1]5_OPTIONAL, [${qt_modules_optional//Qt/Qt5}], [ + AM_CPPFLAGS+=" ${[$1]5_OPTIONAL_CFLAGS}" + MOC_FLAGS+=" ${[$1]5_OPTIONAL_CFLAGS}" + AM_CXXFLAGS+=" ${[$1]5_OPTIONAL_CFLAGS}" + LIBS+=" ${[$1]5_OPTIONAL_LIBS}" + ], [ + AC_MSG_NOTICE([Not found: ${qt_modules_optional//Qt/Qt5}]) + ]) + fi ], [ PKG_CHECK_MODULES([$1], [${qt_modules}], [ HAVE_$1=1 AC_DEFINE([HAVE_$1]) AM_CPPFLAGS+=" ${$1_CFLAGS}" + MOC_FLAGS+=" -DHAVE_$1=1 ${$1_CFLAGS}" AM_CXXFLAGS+=" ${$1_CFLAGS}" LIBS+=" ${$1_LIBS}" + if test -n "$3"; then + PKG_CHECK_MODULES($1_OPTIONAL, [${qt_modules_optional}], [ + AM_CPPFLAGS+=" ${$1_OPTIONAL_CFLAGS}" + MOC_FLAGS+=" ${$1_OPTIONAL_CFLAGS}" + AM_CXXFLAGS+=" ${$1_OPTIONAL_CFLAGS}" + LIBS+=" ${$1_OPTIONAL_LIBS}" + ], [ + AC_MSG_NOTICE([Not found: ${qt_modules_optional}]) + ]) + fi ], [HAVE_$1=0]) ]) AM_CONDITIONAL(HAVE_$1, test $HAVE_$1 -eq 1) AX_CHECK_VALID_FLAG([-fPIC -fPIE], [position independent code flag]) AC_SUBST(AM_CPPFLAGS) + AC_SUBST(MOC_FLAGS) AC_SUBST(AM_CXXFLAGS) AX_ADDITIONAL_QT_RULES_HACK=' -#BUILT_SOURCES += $(patsubst %.ui, ui_%.hxx, $(filter %.ui, $(SOURCES)))) -#BUILT_SOURCES += $(patsubst %.hxx, moc_%.cxx, $(shell grep -l Q_OBJECT $(HEADERS)))1 ui_%.hxx: %.ui - ${UIC} -o [$][@] $< + $(UIC) -o [$][@] $< moc_%.cxx: %.hxx - ${MOC} -o [$][@] $< + $(MOC) $(MOC_FLAGS) -o [$][@] $< qrc_%.cxx: %.qrc - ${RCC} -o [$][@] $<' + $(RCC) -o [$][@] $<' AC_SUBST(AX_ADDITIONAL_QT_RULES_HACK) ]) AC_DEFUN([AX_REQUIRE_QT], [ - AX_CHECK_QT([$1], [$2]) + AX_CHECK_QT([$1], [$2], [$3]) if ! test "$HAVE_$1" -eq 1; then AC_MSG_ERROR([Required Qt modules not found: $2]) fi -]) \ No newline at end of file +]) diff --git a/ax_init_standard_project.m4 b/ax_init_standard_project.m4 index c1a4b06..ef39f2d 100644 --- a/ax_init_standard_project.m4 +++ b/ax_init_standard_project.m4 @@ -50,31 +50,40 @@ AC_DEFUN([AX_ADD_MAKEFILE_TARGET_DEP], [ fi ]) +AC_DEFUN([AX_SUBST], [ + AC_SUBST([$1]) + tmp_var="${$1//$'\n'/\n}" + AM_CPPFLAGS+=' -D$1='"'${tmp_var//#/\\#}'" + AC_SUBST(AM_CPPFLAGS) +]) + AC_DEFUN([AX_INIT_STANDARD_PROJECT], [ - AC_SUBST(HOME) + AM_CPPFLAGS+=" '-DMAKE_STRING(X)=\#X'" + AX_SUBST(NUMBERS) + AX_SUBST(HOME) README=$(tail -n +3 README) + AX_SUBST(README) + _AM_SUBST_NOTMAKE([README]) DESCRIPTION=$(head -1 README) + AX_SUBST(DESCRIPTION) + _AM_SUBST_NOTMAKE([DESCRIPTION]) AUTHOR=$(head -1 AUTHORS) - AC_SUBST(AUTHOR) + AX_SUBST(AUTHOR) _AM_SUBST_NOTMAKE([AUTHOR]) - AC_SUBST(DESCRIPTION) - _AM_SUBST_NOTMAKE([DESCRIPTION]) - AC_SUBST(README) - _AM_SUBST_NOTMAKE([README]) DISTRO=$(lsb_release -sc) - AC_SUBST(DISTRO) + AX_SUBST(DISTRO) BUILD_NUMBER=${BUILD_NUMBER:-1} - AC_SUBST(BUILD_NUMBER) + AX_SUBST(BUILD_NUMBER) BUILD_DATE=$(date -R) - AC_SUBST(BUILD_DATE) + AX_SUBST(BUILD_DATE) if test -f "${PROJECT_NAME}-logo.png"; then PROJECT_LOGO="${PROJECT_NAME}-logo.png" fi - AC_SUBST(PROJECT_LOGO) + AX_SUBST(PROJECT_LOGO) if test -f "${PROJECT_NAME}-icon.png"; then PROJECT_ICON="${PROJECT_NAME}-icon.png" fi - AC_SUBST(PROJECT_ICON) + AX_SUBST(PROJECT_ICON) AC_CONFIG_FILES([makefile]) AX_ADD_MAKEFILE_TARGET_DEP([clean-am], [clean-standard-project-targets], [makefile.in]) AX_ADD_MAKEFILE_TARGET_DEP([distclean-am], [distclean-standard-project-targets], [makefile.in]) @@ -104,8 +113,8 @@ AC_DEFUN([AX_USE_CXX], [ AC_CONFIG_FILES([src/makefile]) - AM_CPPFLAGS='-I ${top_srcdir}/src -I ${top_builddir}/src' - AM_LDFLAGS='-L ${top_srcdir}/src -I ${top_builddir}/src' + AM_CPPFLAGS+=' -I ${top_srcdir}/src -I ${top_builddir}/src -I ${srcdir} -I ${builddir}' + AM_LDFLAGS+=' -L ${top_srcdir}/src -L ${top_builddir}/src' # Get rid of that stupid -O2 -g opions! CXXFLAGS="${CXXFLAGS:-}" @@ -140,6 +149,13 @@ AC_DEFUN([AX_USE_CXX], [ AC_SUBST(AM_CXXFLAGS) AC_SUBST(AM_CPPFLAGS) AC_SUBST(AM_LDFLAGS) + AX_ADD_MAKEFILE_TARGET_DEP([maintainer-clean-am], [maintainer-clean-cxx-targets], [src/makefile.in]) + test -f src/makefile.in && cat >> src/makefile.in <> examples/makefile.in <> src/makefile.in < running: $* ..." + echo -en "\e[1m-> running:\e[0m $* ..." result=$($* 2>&1) res=$? if test $res -ne 0; then if test $check -eq 1; then - echo " error" - echo "*** Failed with return code: $res" + echo -e " \e[31merror\e[0m" + echo -e "\e[1m*** Failed with return code: $res\e[0m" if test -n "$result"; then echo "$result" fi exit 1 else - echo " ignored" + echo -e " \e[33mignored\e[0m" fi else - echo " success" + echo -e " \e[32msuccess\e[0m" fi } @@ -92,18 +92,18 @@ to() { return fi checkdir "$(dirname ${1})" - echo -n "-> generating $1 ..." + echo -en "\e[1m-> generating:\e[0m $1 ..." result=$(cat > "$1" 2>&1) res=$? if test $res -ne 0; then - echo " error" - echo "*** Failed with return code: $res" + echo -e " \e[31merror\e[0m" + echo -e "\e[1m*** Failed with return code: $res\e[0m" if test -n "$result"; then echo "$result" fi exit 1 else - echo " success" + echo -e " \e[32msuccess\e[0m" fi run svn add "$1" run svn propset svn:keywords "Id" "$1" @@ -118,12 +118,12 @@ copy() { } doxyreplace() { - echo -n "-> doxyfile: configure $1 ..." + echo -en "\e[1m-> doxyfile:\e[0m configure $1 ..." if sed -i 's|\(^'"$1"' *=\) *|\1'" $2"'|g' doc/doxyfile.in; then - echo " success" + echo -e " \e[32msuccess\e[0m" else - echo " error" - echo "**** command: sed -i 's|\(^'"$1"' *=\) *|\1'" $2"'|g' doc/doxyfile.in;" + echo -e " \e[31merror\e[0m" + echo -e "\e[1m**** command: sed -i 's|\(^'"$1"' *=\) *|\1'" $2"'|g' doc/doxyfile.in;\e[0m" exit 1 fi } @@ -133,6 +133,7 @@ copy ${MY_NAME} copy ax_init_standard_project.m4 copy ax_cxx_compile_stdcxx_11.m4 copy ax_check_qt.m4 +copy AUTHORS if ! test -f configure.ac; then to configure.ac < #include #include -#include -#include +#include +#include #include #include #include @@ -864,8 +864,8 @@ class Browser: public QMainWindow, protected Ui::Browser { "This product includes cryptographic" " software written by Eric Young" " (eay@cryptsoft.com)") - .arg(VERSION) - .arg(BUILDDATE) + .arg(PACKAGE_VERSION) + .arg(MAKE_STRING(BUILD_DATE)) .arg(QString::fromStdString(proxy::version())) .arg(QString::fromStdString(pcsc::version())) .arg(qVersion()) diff --git a/src/certificate.hxx b/src/certificate.hxx index 7273a9a..4bd9fd9 100644 --- a/src/certificate.hxx +++ b/src/certificate.hxx @@ -16,6 +16,12 @@ #include +#if QT_VERSION >= 0x050000 +namespace QSsl { + typedef AlternativeNameEntryType AlternateNameEntryType; +} +#endif + class Certificate: public QWidget, protected Ui::Certificate { Q_OBJECT; public: @@ -24,7 +30,9 @@ class Certificate: public QWidget, protected Ui::Certificate { } Certificate& certificate(const QSslCertificate& cert) { _cert->clear(); +#if QT_VERSION < 0x050000 if (!cert.isValid()) return *this; +#endif _cert->addTopLevelItem ((new QTreeWidgetItem (QStringList()< - asns(cert.alternateSubjectNames()); - for (QMultiMap::iterator +#if QT_VERSION <0x050000 + asns(cert.alternateSubjectNames()) +#else + asns(cert.subjectAlternativeNames()) +#endif + ; + for (QMultiMap::iterator asn(asns.begin()); asn!=asns.end(); ++asn) it2->addChild ((new QTreeWidgetItem diff --git a/src/designer/buttonlineeditwidgetifc.cxx b/src/designer/buttonlineeditwidgetifc.cxx index 209518b..3bc1d7e 100644 --- a/src/designer/buttonlineeditwidgetifc.cxx +++ b/src/designer/buttonlineeditwidgetifc.cxx @@ -10,6 +10,8 @@ //! @defgroup designer //! @{ +#if QT_VERSION < 0x050000 Q_EXPORT_PLUGIN2(buttonlineedit, ButtonLineEditWidgetIfc); +#endif //! @} diff --git a/src/designer/buttonlineeditwidgetifc.hxx b/src/designer/buttonlineeditwidgetifc.hxx index 9e74e85..83e8c69 100644 --- a/src/designer/buttonlineeditwidgetifc.hxx +++ b/src/designer/buttonlineeditwidgetifc.hxx @@ -20,6 +20,9 @@ class ButtonLineEditWidgetIfc: public QObject, public QDesignerCustomWidgetInterface { Q_OBJECT; Q_INTERFACES(QDesignerCustomWidgetInterface); +#if QT_VERSION >= 0x050000 + Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QDesignerCustomWidgetInterface" FILE "buttonlineeditwidgetifc.json"); +#endif public: bool isContainer() const { TRC; diff --git a/src/designer/makefile.am b/src/designer/makefile.am index 8a314cf..1dc45aa 100644 --- a/src/designer/makefile.am +++ b/src/designer/makefile.am @@ -5,95 +5,27 @@ ## 1 2 3 4 5 6 7 8 ## 45678901234567890123456789012345678901234567890123456789012345678901234567890 -include_HEADERS = -if !MINGW32 -if MAC -AM_CPPFLAGS += -I/opt/local/include -# -I/Library/OpenSC/include -AM_LDFLAGS = -L/opt/local/lib -# -F/System/Library/Frameworks/PCSC.framework -else -# AM_CPPFLAGS += -I/usr/include/PCSC -endif -endif -EXTRA_DIST = @srcdir@/*.[ch]xx @srcdir@/*.qrc.in @srcdir@/*.png -# @srcdir@/*.ui +lib_LTLIBRARIES = libqbrowserlib-swisswebview.la \ + libqbrowserlib-buttonlineedit.la \ + libqbrowserlib-swisswebwidget.la -#LANGS = en de fr it -ALL_SRC = @srcdir@/*.[ch]xx \ - *.qrc -# @srcdir@/*.ui +libqbrowserlib_swisswebview_la_MOCFILES = moc_webviewwidgetifc.cxx +libqbrowserlib_swisswebview_la_SOURCES = webviewwidgetifc.cxx \ + ${libqbrowserlib_swisswebview_la_MOCFILES} -QMAKE_PROJECT = qmake.pro +libqbrowserlib_buttonlineedit_la_MOCFILES = moc_buttonlineeditwidgetifc.cxx +libqbrowserlib_buttonlineedit_la_SOURCES = buttonlineeditwidgetifc.cxx \ + ${libqbrowserlib_buttonlineedit_la_MOCFILES} -QMAKE_TARGET = qbrowserlib-swisswebview qbrowserlib-buttonlineedit \ - qbrowserlib-swisswebwidget -TARGETS = ${QMAKE_TARGET} -QMAKE_MAKEFILE = ${QMAKE_TARGET:%=makefile.qmake.%} +libqbrowserlib_swisswebwidget_la_MOCFILES = moc_webwidgetifc.cxx +libqbrowserlib_swisswebwidget_la_SOURCES = webwidgetifc.cxx \ + ${libqbrowserlib_swisswebwidget_la_MOCFILES} -all: ${TARGETS} $ -#$(LANGS:%=@PACKAGE_NAME@_%.ts) +BUILT_SOURCES = ${libqbrowserlib_swisswebview_la_MOCFILES} \ + ${libqbrowserlib_buttonlineedit_la_MOCFILES} \ + ${libqbrowserlib_swisswebwidget_la_MOCFILES} -rebuild-ts: $(LANGS) - ${LUPDATE} @LUPDATE_ARGS@ ${QMAKE_PROJECT} - -# ${LANGS}: ${ALL_SRC} -# -rm @PACKAGE_NAME@_$@.qm -# svn revert @PACKAGE_NAME@_$@.ts -# mv @PACKAGE_NAME@_$@.ts translation.old -# ${LUPDATE} @LUPDATE_ARGS@ ${QMAKE_PROJECT} -# mv @PACKAGE_NAME@_$@.ts translation.new -# echo '' > @PACKAGE_NAME@_$@.ts -# echo '' >> @PACKAGE_NAME@_$@.ts -# echo '' >> @PACKAGE_NAME@_$@.ts -# xqilla merge-translation.xquery >> @PACKAGE_NAME@_$@.ts -# echo '' >> @PACKAGE_NAME@_$@.ts -# rm translation.old translation.new - -print: - @echo "LANGS=${LANGS}" - @echo "ALL_SRC=${ALL_SRC}" - @echo "QMAKE=${QMAKE}" - @echo "QMAKE_OPTIONS=${QMAKE_OPTIONS}" - @echo "QMAKE_MAKEFILE=${QMAKE_MAKEFILE}" - @echo "QMAKE_TARGET=${QMAKE_TARGET}" - @echo "TARGETS=${TARGETS}" - - -# @PACKAGE_NAME@_%.qm: @srcdir@/@PACKAGE_NAME@_%.ts -# ${LRELEASE} $< -qm $@ - -%.xpm: resources/%.png - convert $< $@ || cp $< $@ - -# %.ts: ${ALL_SRC} -# ${LUPDATE} @LUPDATE_ARGS@ ${QMAKE_PROJECT} - -${QMAKE_MAKEFILE}: ${QMAKE_PROJECT} ${ALL_SRC} - ${QMAKE} -o $@ $< CONFIG+=${@:makefile.qmake.%=%} - -# $(LANGS:%=@PACKAGE_NAME@_%.qm) -${QMAKE_TARGET}: ${QMAKE_MAKEFILE} ${ALL_SRC} - make -f makefile.qmake.$@ - -install-data-local: ${QMAKE_MAKEFILE} - ${mkinstalldirs} ${DESTDIR}${QT_INSTALL_PLUGINS} - for file in ${QMAKE_TARGET:%=lib%*}; do \ - if test -e $$file; then \ - ${INSTALL} $$file ${DESTDIR}${QT_INSTALL_PLUGINS}; \ - fi; \ - done - -uninstall-local: - -rm -r ${QMAKE_TARGET:%=${DESTDIR}${QT_INSTALL_PLUGINS}/lib%*} - -clean-local: - -rm -r ${QMAKE_TARGET:%=lib%*} - -# $(LANGS:%=@PACKAGE_NAME@_%.qm) -CLEANFILES = ${TARGETS} ${TARGETS:%=%.exe} \ - *.o *.obj qrc_*.cpp ui_*.h moc_*.cpp *.dll \ - ${QMAKE_TARGET:%=lib%*} -MAINTAINERCLEANFILES = makefile.in ${QMAKE_MAKEFILE} +EXTRA_DIST = buttonlineeditwidgetifc.hxx webviewwidgetifc.hxx \ + webwidgetifc.hxx diff --git a/src/designer/qmake.pro.in b/src/designer/qmake.pro.in deleted file mode 100644 index 682029a..0000000 --- a/src/designer/qmake.pro.in +++ /dev/null @@ -1,69 +0,0 @@ -QT += gui webkit network -CONFIG += no_keywords -CONFIG += designer plugin -QMAKE_LIBS += -lproxyface -lpcscxx -lssl -lcrypto -QMAKE_CXXFLAGS += -Wno-parentheses -Wno-unused-parameter -#-std=c++0x -QMAKE_INCDIR += @top_srcdir@/src -QMAKE_INCDIR += . -QMAKE_LIBDIR += @top_builddir@/src/qbrowserlib -QMAKE_LIBDIR += @top_builddir@/src/qbrowserlib/release -QMAKE_LIBS += -lqbrowserlib - -unix { - !macx { - CONFIG += debug - QMAKE_INCDIR += /usr/include/PCSC - QMAKE_INCDIR += /usr/local/include/PCSC - QMAKE_LIBS += -lpcsclite -lproxy - } -} -macx { - QMAKE_INCDIR += /opt/local/include - QMAKE_LIBDIR += /opt/local/lib - QMAKE_LFLAGS += -F/System/Library/Frameworks/PCSC.framework - LIBS += -framework PCSC - QMAKE_INCDIR += /System/Library/Frameworks/PCSC.framework/Headers - QMAKE_INFO_PLIST = Info.plist - CONFIG += x86 #x86_64 - QMAKE_CFLAGS_X86_64 += -mmacosx-version-min=10.6 - QMAKE_CXXFLAGS_X86_64 = $$QMAKE_CFLAGS_X86_64 -} -win32 { - QMAKE_LIBS += -lwinhttp -lgdi32 -lws2_32 - QMAKE_LIBS += /opt/local/i586-mingw32msvc/lib/winscard.a - CONFIG += dll -} - -FORMS = - -RESOURCES = resources.qrc - -TEMPLATE = lib - -qbrowserlib-swisswebview { - SOURCES = webviewwidgetifc.cxx - HEADERS = webviewwidgetifc.hxx - TARGET = qbrowserlib-swisswebview -} -qbrowserlib-buttonlineedit { - SOURCES = buttonlineeditwidgetifc.cxx - HEADERS = buttonlineeditwidgetifc.hxx - TARGET = qbrowserlib-buttonlineedit -} - -qbrowserlib-swisswebwidget { - SOURCES = webwidgetifc.cxx - HEADERS = webwidgetifc.hxx - TARGET = qbrowserlib-swisswebwidget -} - -CODECFORSRC = UTF-8 -CODECFORTR = UTF-8 - -DEFINES += VERSION=\'\"@VERSION@\"\' BUILDDATE=\'\"@BUILDDATE@\"\' - -## DEBUG -# QMAKE_CXXFLAGS += -include iostream -D\"CRYPTOKI_LOG(X)=std::clog<<\\\"CRYPTOKI_\\\"< +#if QT_VERSION < 0x050000 //! @defgroup designer //! @{ Q_EXPORT_PLUGIN2(swisswebviewwidgetplugin, SwissWebViewWidgetIfc); //! @} +#endif diff --git a/src/designer/webviewwidgetifc.hxx b/src/designer/webviewwidgetifc.hxx index f78a173..9f63669 100644 --- a/src/designer/webviewwidgetifc.hxx +++ b/src/designer/webviewwidgetifc.hxx @@ -10,6 +10,7 @@ #include #include +#include #include //! @defgroup designer @@ -20,6 +21,9 @@ class SwissWebViewWidgetIfc: public QObject, public QDesignerCustomWidgetInterface { Q_OBJECT; Q_INTERFACES(QDesignerCustomWidgetInterface); +#if QT_VERSION >= 0x050000 + Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QDesignerCustomWidgetInterface" FILE "webviewwidgetifc.json"); +#endif public: SwissWebViewWidgetIfc() {} bool isContainer() const { diff --git a/src/designer/webwidgetifc.cxx b/src/designer/webwidgetifc.cxx index 3444968..3200ea7 100644 --- a/src/designer/webwidgetifc.cxx +++ b/src/designer/webwidgetifc.cxx @@ -10,6 +10,8 @@ //! @defgroup designer //! @{ +#if QT_VERSION < 0x050000 Q_EXPORT_PLUGIN2(swisswebwidget, SwissWebWidgetIfc); +#endif //! @} diff --git a/src/designer/webwidgetifc.hxx b/src/designer/webwidgetifc.hxx index f127162..1780786 100644 --- a/src/designer/webwidgetifc.hxx +++ b/src/designer/webwidgetifc.hxx @@ -20,6 +20,9 @@ class SwissWebWidgetIfc: public QObject, public QDesignerCustomWidgetInterface { Q_OBJECT; Q_INTERFACES(QDesignerCustomWidgetInterface); +#if QT_VERSION >= 0x050000 + Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QDesignerCustomWidgetInterface" FILE "webwidgetifc.json"); +#endif public: bool isContainer() const { TRC; diff --git a/src/main.cxx b/src/main.cxx index 184ee6f..d04bab9 100644 --- a/src/main.cxx +++ b/src/main.cxx @@ -21,7 +21,7 @@ #include #include #include -#include +#include #include #include @@ -48,8 +48,6 @@ QString TMP; -extern QWEBKIT_EXPORT void qt_drt_overwritePluginDirectories(); - QMap& env() { static QStringList l(QProcess::systemEnvironment()); static QMap env; @@ -95,13 +93,10 @@ QString helptext() { "(actual: %2)\n" " PROXY_PORT proxy port number (actual: %3)\n" " PROXY_HOST proxy host name (actual: %4)\n" - " SWISS_USERAGENT fake user agent (actual: %6)\n" - " QT_PLUGIN_PATH path to plugins dir (actual: %7)\n" - " QTWEBKIT_PLUGIN_PATH path to netscape plugins (actual: %8)") + " SWISS_USERAGENT fake user agent (actual: %6)") .arg(QFileInfo(QCoreApplication::arguments().at(0)).fileName()) .arg(env()["PROXY_TYPE"]).arg(env()["PROXY_PORT"]).arg(env()["PROXY_HOST"]) - .arg(env()["LANGUAGE"]).arg(env()["SWISS_USERAGENT"]) - .arg(env()["QT_PLUGIN_PATH"]).arg(env()["QTWEBKIT_PLUGIN_PATH"]); + .arg(env()["LANGUAGE"]).arg(env()["SWISS_USERAGENT"]); } int main(int argv, char** argc) try { @@ -111,9 +106,7 @@ int main(int argv, char** argc) try { sslConfig.setPeerVerifyMode(QSslSocket::AutoVerifyPeer); //............................................................................ QTextCodec* utf8(QTextCodec::codecForName("UTF-8")); - QTextCodec::setCodecForCStrings(utf8); QTextCodec::setCodecForLocale(utf8); - QTextCodec::setCodecForTr(utf8); QApplication app(argv, argc); app.setWindowIcon(QIcon(":/icons/32x32/swisssurfer.png")); app.setApplicationName(QObject::trUtf8("SwissSurfer", "application name")); @@ -248,8 +241,6 @@ int main(int argv, char** argc) try { <<"Hostname"<certificate(cert); on__showDetails_toggled(false); - _name->setText(utfConv(cert.subjectInfo(QSslCertificate::CommonName)) - .remove(" (Authentication)")); + _name->setText(utfConv(cert.subjectInfo(QSslCertificate::CommonName) +#if QT_VERSION >= 0x050000 + .join('\n') +#endif + ).remove(" (Authentication)")); +#if QT_VERSION < 0x050000 _mail->setText(utfConv(cert.alternateSubjectNames() .value(QSsl::EmailEntry))); +#else + _mail->setText(utfConv(cert.subjectAlternativeNames() + .value(QSsl::EmailEntry))); +#endif if (!cert.subjectInfo(QByteArray("serialNumber")).isEmpty()) { _certSerialTitle->setText(tr("SuisseID Number:")); - _certSerial->setText(cert.subjectInfo(QByteArray("serialNumber"))); + _certSerial->setText(cert.subjectInfo(QByteArray("serialNumber")) +#if QT_VERSION >= 0x050000 + .join('\n') +#endif + ); } else { _certSerialTitle->setText (tr("Postzertifikat:", "title for postzertificate serial number")); @@ -94,7 +106,7 @@ class PinEntry: public QDialog, public Ui::PinEntry { } protected: QString utfConv(const QString& txt) { - QByteArray value(txt.toAscii()); + QByteArray value(txt.toUtf8()); for (int i(-1); (i=value.indexOf("\\x"))!=-1 && i+3url().toString()) .arg(err->errorString()) .arg(err->error()) - .arg(err->certificate().issuerInfo(QSslCertificate::Organization)) - .arg(err->certificate().issuerInfo(QSslCertificate::CommonName)) - .arg(err->certificate().issuerInfo(QSslCertificate::LocalityName)) + .arg(err->certificate().issuerInfo(QSslCertificate::Organization).join("
")) + .arg(err->certificate().issuerInfo(QSslCertificate::CommonName).join("
")) + .arg(err->certificate().issuerInfo(QSslCertificate::LocalityName).join("
")) .arg(err->certificate() - .issuerInfo(QSslCertificate::OrganizationalUnitName)) - .arg(err->certificate().issuerInfo(QSslCertificate::CountryName)) + .issuerInfo(QSslCertificate::OrganizationalUnitName).join("
")) + .arg(err->certificate().issuerInfo(QSslCertificate::CountryName).join("
")) .arg(err->certificate() - .issuerInfo(QSslCertificate::StateOrProvinceName)) - .arg(err->certificate().subjectInfo(QSslCertificate::Organization)) - .arg(err->certificate().subjectInfo(QSslCertificate::CommonName)) - .arg(err->certificate().subjectInfo(QSslCertificate::LocalityName)) + .issuerInfo(QSslCertificate::StateOrProvinceName).join("
")) + .arg(err->certificate().subjectInfo(QSslCertificate::Organization).join("
")) + .arg(err->certificate().subjectInfo(QSslCertificate::CommonName).join("
")) + .arg(err->certificate().subjectInfo(QSslCertificate::LocalityName).join("
")) .arg(err->certificate() - .subjectInfo(QSslCertificate::OrganizationalUnitName)) - .arg(err->certificate().subjectInfo(QSslCertificate::CountryName)) + .subjectInfo(QSslCertificate::OrganizationalUnitName).join("
")) + .arg(err->certificate().subjectInfo(QSslCertificate::CountryName).join("
")) .arg(err->certificate() - .subjectInfo(QSslCertificate::StateOrProvinceName)); + .subjectInfo(QSslCertificate::StateOrProvinceName).join("
")); } } diff --git a/src/qbrowserlib/makefile.am b/src/qbrowserlib/makefile.am index c7caf0a..4d1d346 100644 --- a/src/qbrowserlib/makefile.am +++ b/src/qbrowserlib/makefile.am @@ -4,19 +4,30 @@ ## 45678901234567890123456789012345678901234567890123456789012345678901234567890 qbrowserlibdir=${includedir}/qbrowserlib - -qbrowserlib_HEADERS = $(libqbrowserlib_la_HEADERS) +qbrowserlib_HEADERS = $(libqbrowserlib_la_UIFILES) buttonlineedit.hxx \ + downloadmanager.hxx executor.hxx log.hxx \ + saveorrun.hxx swisswebpage.hxx \ + swisswebwidget.hxx certs.hxx errorlog.hxx \ + filestorage.hxx pluginfactory.hxx settings.hxx \ + swisswebview.hxx temporaryfile.hxx lib_LTLIBRARIES = libqbrowserlib.la -libqbrowserlib_la_MOCFILES = buttonlineedit.hxx errorlog.hxx log.hxx \ - settings.hxx swisswebwidget.hxx \ - certs.hxx executor.hxx pluginfactory.hxx \ - swisswebpage.hxx temporaryfile.hxx \ - downloadmanager.hxx filestorage.hxx \ - saveorrun.hxx swisswebview.hxx -libqbrowserlib_la_UIFILES = errorlog.ui log.ui saveorrun.ui \ - settings.ui swisswebwidget.ui -libqbrowserlib_la_SOURCES = certs.cxx log.cxx \ - $(libqbrowserlib_la_MOCFILES:%.hxx=moc_%.hxx) \ - $(libqbrowserlib_la_UIFILES:%.ui=ui_%.hxx) +libqbrowserlib_la_MOCFILES = moc_buttonlineedit.cxx moc_errorlog.cxx \ + moc_log.cxx moc_settings.cxx \ + moc_swisswebwidget.cxx moc_certs.cxx \ + moc_executor.cxx moc_pluginfactory.cxx \ + moc_swisswebpage.cxx \ + moc_temporaryfile.cxx \ + moc_downloadmanager.cxx \ + moc_filestorage.cxx moc_saveorrun.cxx \ + moc_swisswebview.cxx +libqbrowserlib_la_UIFILES = ui_errorlog.hxx ui_log.hxx \ + ui_saveorrun.hxx ui_settings.hxx \ + ui_swisswebwidget.hxx +libqbrowserlib_la_SOURCES = certs.cxx log.cxx \ + ${libqbrowserlib_la_MOCFILES} \ + ${libqbrowserlib_la_UIFILES} + +BUILT_SOURCES = ${libqbrowserlib_la_MOCFILES} \ + ${libqbrowserlib_la_UIFILES} \ No newline at end of file diff --git a/src/qbrowserlib/pluginfactory.hxx b/src/qbrowserlib/pluginfactory.hxx index 4cfcd3b..52bcc2b 100644 --- a/src/qbrowserlib/pluginfactory.hxx +++ b/src/qbrowserlib/pluginfactory.hxx @@ -9,7 +9,7 @@ #define __PLUGINFACTORY_HXX__ #include -#include +#include #include //! @addtogroup qbrowserlib diff --git a/src/qbrowserlib/qmake.pro.in b/src/qbrowserlib/qmake.pro.in deleted file mode 100644 index c89f226..0000000 --- a/src/qbrowserlib/qmake.pro.in +++ /dev/null @@ -1,66 +0,0 @@ -QT += webkit network gui -CONFIG += no_keywords -QMAKE_LIBS += -lproxyface -lpcscxx -lssl -lcrypto -QMAKE_CXXFLAGS += -Wno-parentheses -Wno-unused-parameter -#-std=c++0x -QMAKE_INCDIR += @srcdir@/.. .. - -unix { - !macx { - CONFIG += debug - QMAKE_INCDIR += /usr/include/PCSC - QMAKE_INCDIR += /usr/local/include/PCSC - QMAKE_LIBS += -lpcsclite -lproxy - } -} -macx { - QMAKE_INCDIR += /opt/local/include - QMAKE_LIBDIR += /opt/local/lib - QMAKE_LFLAGS += -F/System/Library/Frameworks/PCSC.framework - LIBS += -framework PCSC - QMAKE_INCDIR += /System/Library/Frameworks/PCSC.framework/Headers - QMAKE_INFO_PLIST = Info.plist - CONFIG += x86 #x86_64 - QMAKE_CFLAGS_X86_64 += -mmacosx-version-min=10.6 - QMAKE_CXXFLAGS_X86_64 = $$QMAKE_CFLAGS_X86_64 -} -win32 { - QMAKE_LIBS += -lwinhttp -lgdi32 -lws2_32 - QMAKE_LIBS += /opt/local/i586-mingw32msvc/lib/winscard.a - CONFIG += release dll -} - -TRANSLATIONS = @srcdir@/qbrowserlib_en.ts \ - @srcdir@/qbrowserlib_de.ts \ - @srcdir@/qbrowserlib_fr.ts \ - @srcdir@/qbrowserlib_it.ts - -SOURCES = @srcdir@/log.cxx @srcdir@/certs.cxx - -HEADERS = @srcdir@/log.hxx @srcdir@/downloadmanager.hxx \ - @srcdir@/swisswebview.hxx @srcdir@/swisswebpage.hxx \ - @srcdir@/swisswebwidget.hxx \ - @srcdir@/pluginfactory.hxx @srcdir@/saveorrun.hxx \ - @srcdir@/settings.hxx @srcdir@/errorlog.hxx \ - @srcdir@/buttonlineedit.hxx \ - @srcdir@/filestorage.hxx @srcdir@/certs.hxx \ - @srcdir@/executor.hxx \ - @srcdir@/temporaryfile.hxx - -FORMS = @srcdir@/saveorrun.ui @srcdir@/settings.ui @srcdir@/log.ui \ - @srcdir@/swisswebwidget.ui @srcdir@/errorlog.ui - -RESOURCES = languages.qrc - -TEMPLATE=lib -TARGET = qbrowserlib - -CODECFORSRC = UTF-8 -CODECFORTR = UTF-8 - -DEFINES += VERSION=\'\"@VERSION@\"\' BUILDDATE=\'\"@BUILDDATE@\"\' - -## DEBUG -# QMAKE_CXXFLAGS += -include iostream -D\"CRYPTOKI_LOG(X)=std::clog<<\\\"CRYPTOKI_\\\"< #include -#include +#include #include #include #include diff --git a/src/qbrowserlib/swisswebpage.hxx b/src/qbrowserlib/swisswebpage.hxx index 98e520f..b416662 100644 --- a/src/qbrowserlib/swisswebpage.hxx +++ b/src/qbrowserlib/swisswebpage.hxx @@ -11,8 +11,8 @@ #include #include -#include -#include +#include +#include #include //! @addtogroup qbrowserlib diff --git a/src/qbrowserlib/swisswebview.hxx b/src/qbrowserlib/swisswebview.hxx index c50ba7d..96f3c37 100644 --- a/src/qbrowserlib/swisswebview.hxx +++ b/src/qbrowserlib/swisswebview.hxx @@ -11,7 +11,8 @@ #include #include -#include +#include +#include #include diff --git a/src/qmake.pro.in b/src/qmake.pro.in deleted file mode 100644 index e3327e0..0000000 --- a/src/qmake.pro.in +++ /dev/null @@ -1,67 +0,0 @@ -QT += webkit network gui -CONFIG += no_keywords -QMAKE_LIBS += -lproxyface -lpcscxx -lssl -lcrypto -QMAKE_CXXFLAGS += -Wno-parentheses -Wno-unused-parameter -#-std=c++0x -QMAKE_INCDIR += @top_srcdir@/src -QMAKE_LIBDIR += @top_builddir@/src/qbrowserlib -QMAKE_LIBDIR += @top_builddir@/src/qbrowserlib/release -QMAKE_LIBS += -lqbrowserlib - -unix { - !macx { - CONFIG += debug - QMAKE_INCDIR += /usr/include/PCSC - QMAKE_INCDIR += /usr/local/include/PCSC - QMAKE_LIBS += -lpcsclite -lproxy - } -} -macx { - QMAKE_INFO_PLIST = Info.plist - CONFIG += x86 #x86_64 - QMAKE_LFLAGS += -F/System/Library/Frameworks/PCSC.framework - LIBS += -framework PCSC - QMAKE_CFLAGS_X86_64 += -mmacosx-version-min=10.6 - QMAKE_CXXFLAGS_X86_64 = $$QMAKE_CFLAGS_X86_64 -} -win32 { - QMAKE_LIBS += -lwinhttp -lgdi32 -lws2_32 - QMAKE_LIBS += /opt/local/i586-mingw32msvc/lib/winscard.a - CONFIG += release -} -ICON = swisssurfer.icns - -TRANSLATIONS = @PACKAGE_NAME@_en.ts \ - @PACKAGE_NAME@_de.ts \ - @PACKAGE_NAME@_fr.ts \ - @PACKAGE_NAME@_it.ts - -SOURCES = @srcdir@/main.cxx - -HEADERS = @srcdir@/browser.hxx @srcdir@/smartcardauth.hxx \ - @srcdir@/pinentry.hxx \ - @srcdir@/sslclientnetworkmanager.hxx \ - @srcdir@/authentication.hxx \ - @srcdir@/certificate.hxx \ - @srcdir@/logincertificate.hxx \ - @srcdir@/editbookmarks.hxx @srcdir@/pdfdisplay.hpp - -FORMS = @srcdir@/browser.ui \ - @srcdir@/pinentry.ui @srcdir@/authentication.ui \ - @srcdir@/certificate.ui \ - @srcdir@/logincertificate.ui \ - @srcdir@/editbookmarks.ui - -RESOURCES = languages.qrc @srcdir@/resources.qrc - -TARGET = @PACKAGE_NAME@ - -CODECFORSRC = UTF-8 -CODECFORTR = UTF-8 - -DEFINES += VERSION=\'\"@VERSION@\"\' BUILDDATE=\'\"@BUILDDATE@\"\' - -## DEBUG -# QMAKE_CXXFLAGS += -include iostream -D\"CRYPTOKI_LOG(X)=std::clog<<\\\"CRYPTOKI_\\\"<