summaryrefslogtreecommitdiffstats
path: root/Tools/QtTestBrowser/webpage.h
diff options
context:
space:
mode:
Diffstat (limited to 'Tools/QtTestBrowser/webpage.h')
-rw-r--r--Tools/QtTestBrowser/webpage.h31
1 files changed, 21 insertions, 10 deletions
diff --git a/Tools/QtTestBrowser/webpage.h b/Tools/QtTestBrowser/webpage.h
index e62402b..3b856c9 100644
--- a/Tools/QtTestBrowser/webpage.h
+++ b/Tools/QtTestBrowser/webpage.h
@@ -33,9 +33,10 @@
#ifndef webpage_h
#define webpage_h
-#include <QFuture>
+#include <QMutex>
#include <QScopedPointer>
#include <QThread>
+#include <QWaitCondition>
#include <qwebframe.h>
#include <qwebpage.h>
@@ -70,15 +71,16 @@ private:
void applyProxy();
QString m_userAgent;
bool m_interruptingJavaScriptEnabled;
- QScopedPointer<QtNAMThread> m_qnamThread;
+ QtNAMThread* m_qnamThread;
};
class QtNAMThread : public QThread {
public:
- QtNAMThread()
+ QtNAMThread(QObject *parent = 0)
+ : QThread(parent)
+ , m_qnam(0)
{
- m_qnamFuture.reportStarted();
}
~QtNAMThread()
{
@@ -86,20 +88,29 @@ public:
wait();
}
- QFuture<QNetworkAccessManager*> networkAccessManager()
+ QNetworkAccessManager* networkAccessManager()
{
- return m_qnamFuture.future();
+ QMutexLocker lock(&m_mutex);
+ while (!m_qnam)
+ m_waitCondition.wait(&m_mutex);
+ return m_qnam;
}
protected:
void run()
{
- QNetworkAccessManager qnam;
- m_qnamFuture.reportResult(&qnam);
- m_qnamFuture.reportFinished();
+ Q_ASSERT(!m_qnam);
+ {
+ QMutexLocker lock(&m_mutex);
+ m_qnam = new QNetworkAccessManager;
+ m_waitCondition.wakeAll();
+ }
exec();
+ delete m_qnam;
}
private:
- QFutureInterface<QNetworkAccessManager*> m_qnamFuture;
+ QNetworkAccessManager* m_qnam;
+ QMutex m_mutex;
+ QWaitCondition m_waitCondition;
};
#endif