diff --git a/configure.in b/configure.in index 3bc3628..d18b72b 100644 --- a/configure.in +++ b/configure.in @@ -39,38 +39,55 @@ AC_SUBST(MINOR) AC_SUBST(LEAST) # Qt Environment -CPPFLAGS+=" -DUNICODE -DQT_NO_DEBUG" -CPPFLAGS+=" -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_WEBKIT_LIB -DQT_CORE_LIB" -AC_CHECK_HEADER(QtCore/QString, [found="yes"], [found="no"]) -if test "$found" == "no"; then - AC_MSG_CHECKING([looking for qt headers]) - for file in /usr/include/qt4 /usr/local/include/qt4 /opt/include/qt4 \ - /opt/local/include/qt4 /opt/local/libexec/qt4-mac/include \ - /usr/include /usr/local/include \ - /opt/include /opt/local/include; do - if test -d ${file}/QtCore; then - CPPFLAGS+=" -I$file" - found=$file - break; +AC_MSG_CHECKING(QT4 directory) +QTDIR="no" +AC_ARG_WITH([qt-dir], + AC_HELP_STRING([--with-qt-dir=/path/to/Qt4], + [to specify the path to the Qt4 directory.]), + [QTPATHS="$withval"], + [QTPATHS="/usr/include/qt4 /usr/local/include/qt4 /opt/include/qt4 /opt/local/include/qt4 /opt/local/libexec/qt4-mac/include /usr/include /usr/local/include /opt/include /opt/local/include"]) +for x in $QTPATHS; do + if test -d $x/QtCore ; then + QTINCDIR=$x + QTDIR=${x%/include*} + if test -d $QTDIR/lib; then + QTLIBDIR=$QTDIR/lib + break + fi fi - done - AC_MSG_RESULT([$found]) -fi -if test "$found" == "no"; then +done +AC_MSG_RESULT($QTDIR) +AM_CONDITIONAL(USE_QT, test -n "$QTLIBDIR") +if test -z "$QTLIBDIR"; then + AC_MSG_WARN(Could not locate QT 4.1) case $host in *darwin*) - PROXYLIB="" + LDFLAGS+=" -lproxy" ;; *mingw*|*win*) - PROXYLIB="-lwinhttp" + LDFLAGS+=" -lwinhttp" ;; *) - PROXYLIB="-lproxy" + LDFLAGS+=" -lproxy" ;; esac - AC_SUBST(PROXYLIB) - AC_MSG_WARN([Qt Headers not found]) else + # by now, Linux/Unix always uses libproxy + case $host in + *darwin*) + LDFLAGS+=" -L$QTLIBDIR -lQtCore -lQtNetwork -lQtGui" + ;; + *mingw*|*win*) + LDFLAGS+=" -L$QTLIBDIR -lQtCore4 -lQtNetwork4 -lQtGui4" + ;; + *) + LDFLAGS+=" -L$QTLIBDIR -lQtCore -lQtNetwork -lQtGui" + LDFLAGS+=" -lproxy" + ;; + esac + CPPFLAGS+=" -DUNICODE -DQT_NO_DEBUG" + CPPFLAGS+=" -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_WEBKIT_LIB -DQT_CORE_LIB" + CPPFLAGS+=" -I$QTINCDIR" AC_CHECK_PROGS([MOC], [moc-qt4 moc-mac moc]) test -n "$MOC" || AC_MSG_ERROR([moc for Qt 4 not found!]) AC_SUBST(MOC) diff --git a/examples/makefile.am b/examples/makefile.am index ba095d8..2c0669d 100644 --- a/examples/makefile.am +++ b/examples/makefile.am @@ -3,13 +3,16 @@ ## 1 2 3 4 5 6 7 8 ## 45678901234567890123456789012345678901234567890123456789012345678901234567890 -noinst_PROGRAMS = getproxylist simplegui - AM_CPPFLAGS = -I${top_srcdir} -LDFLAGS = -L${top_builddir}/proxyface/.libs -LDADD = -lQtCore -lQtNetwork -lQtGui -lproxy -lproxyface +AM_LDFLAGS = -L${top_builddir}/proxyface/.libs +LDADD = -lproxyface -getproxylist_SOURCES = getproxylist.cxx +noinst_PROGRAMS = getproxylist +if USE_QT +noinst_PROGRAMS += simplegui simplegui_SOURCES = simplegui.cxx +endif + +getproxylist_SOURCES = getproxylist.cxx -MAINTAINERCLEANFILES = makefile.in \ No newline at end of file +MAINTAINERCLEANFILES = makefile.in diff --git a/proxyface/autoproxy.hxx b/proxyface/autoproxy.hxx index e3df2ee..5a078a5 100644 --- a/proxyface/autoproxy.hxx +++ b/proxyface/autoproxy.hxx @@ -130,7 +130,7 @@ namespace proxy { // networkmanager "Interface::setupProxyCheck" -> "QNetworkAccessManager" [label="new"]; - "QNetworkAccessManager" -> "«network loop»" [label="QNetworkReply* QNetworkAccessManager::head()"]; + "QNetworkAccessManager" -> "«network loop»" [label="QNetworkReply* QNetworkAccessManager::get()"]; // slot interactions "Interface::timeout" -> "Interface::run" [label="first time\n(own thread)"]; @@ -169,7 +169,7 @@ namespace proxy { |||; --- [label="for each proxy"]; Interface -> QNetworkAccessManager [label="new"]; - QNetworkAccessManager -> QNetworkReply [label="head(url)"]; + QNetworkAccessManager -> QNetworkReply [label="get(url)"]; Interface -> Interface [label="_timeout2.start()"]; --- [label=""]; |||; @@ -410,7 +410,7 @@ namespace proxy { qFatal("connect failed"); QNetworkReply* reply(0); _requests.insert - (std::make_pair(reply=manager->head + (std::make_pair(reply=manager->get (QNetworkRequest (QUrl(QString::fromStdString(url)))), std::make_pair(manager, prxy))); diff --git a/proxyface/makefile.am b/proxyface/makefile.am index 08c766c..f978f3c 100644 --- a/proxyface/makefile.am +++ b/proxyface/makefile.am @@ -1,16 +1,18 @@ +if USE_QT UISOURCES = proxy.ui proxyauth.ui RESOURCES = resources.cxx MOCHEADER = proxy.hxx autoproxy.hxx proxyauth.hxx LANGUAGES = proxy_de.qm proxy_en.qm proxy_fr.qm proxy_it.qm -LANG_TS = proxy_de.ts proxy_en.ts proxy_fr.ts proxy_it.ts +LANG_TS = proxy_de.ts proxy_en.ts proxy_fr.ts proxy_it.ts +UIHEADER = ui_proxy.hxx ui_proxyauth.hxx +MOCSOURCES = moc_proxy.cxx moc_autoproxy.cxx moc_proxyauth.cxx +endif pkgconfigdir = $(libdir)/pkgconfig pkgconfig_DATA = libproxyface.pc pkgconfig2dir = $(datarootdir)/pkgconfig pkgconfig2_DATA = libproxyface.pc -UIHEADER = ui_proxy.hxx ui_proxyauth.hxx -MOCSOURCES = moc_proxy.cxx moc_autoproxy.cxx moc_proxyauth.cxx EXTRA_DIST = ${UISOURCES} $(pkgconfig_DATA).in version.cxx.in @@ -23,7 +25,6 @@ proxyface_HEADERS = unix.hxx windoze.hxx qtproxy.hxx \ lib_LTLIBRARIES = libproxyface.la libproxyface_la_SOURCES = ${MOCSOURCES} ${LANGUAGES} ${RESOURCES} version.cxx -libproxyface_la_LIBADD = ${PROXYLIB} libproxyface_la_LDFLAGS = -version-info ${LIB_VERSION} AM_CPPFLAGS = -I${top_srcdir} -I${top_builddir} diff --git a/proxyface/proxy.hxx b/proxyface/proxy.hxx index 530a8e9..3d96fab 100644 --- a/proxyface/proxy.hxx +++ b/proxyface/proxy.hxx @@ -137,17 +137,14 @@ namespace gui { void proxyAuthenticationRequired(const QNetworkProxy& p, QAuthenticator* auth) { - static ProxyAuth proxyAuth(this); + qDebug()<<"proxyAuthenticationRequired"; + ProxyAuth proxyAuth(this); proxyAuth._realm->setText(auth->realm()); _auto.pause(); - qDebug()<<"---> proxyAuthenticationRequired"; if (proxyAuth.exec()==QDialog::Accepted) { auth->setUser(proxyAuth._username->text()); auth->setPassword(proxyAuth._password->text()); - qDebug()<<"Setting authentication to:" - <user()<password(); } - qDebug()<<"---> done: proxyAuthenticationRequired"; _auto.restart(); }