В общем, из положения вышел пока таким способом:
сабклассил QNetworkAccessManager:
class CNetworkAccessManager : public QNetworkAccessManager
{
public:
CNetworkAccessManager(QObject *parent = 0, QUrl url = QUrl())
: QNetworkAccessManager(parent)
{m_url = url;}
void setUrl(QUrl url = QUrl()) { m_url = url;}
private:
QUrl m_url;
protected:
QNetworkReply *createRequest()
{
QNetworkRequest req;
req.setRawHeader(QByteArray("User-Agent"), QByteArray("Mozilla"));
req.setRawHeader(QByteArray("Refer"), m_url.toString().toUtf8());
return QNetworkAccessManager::createRequest(QNetworkAccessManager::GetOperation, req);
}
};
отлавливаю QWebView::linkClicked, и в нем подменяю QWebView::QwebPage::QNetworkAccessManager
void MainWindow::onLinkClick(const QUrl &url)
{
m_accessManager->setUrl(m_browser->url());
m_browser->page()->setNetworkAccessManager(m_accessManager); // CNetworkAccessManager *m_accessManager
m_browser->load(url);
}
почему не работает изначально, а в примере работает — хз.