QWebReply: Header ändern und in ext. Browser öffnen
Verfasst: 17. Juli 2013 10:59
Hallo Leute,
das ist mein erster Post und ich hoffe, dass die Frage nicht all zu blöd ist
Ich hab die folgende Situation: in einem QWebview wird eine Website geladen, die Popups öffnet um eine PDF zu downloaden.
Das Popup-Handling habe ich nach ein wenig googlen so gelöst:
Wobei Webpanel von QWebView erbt.
In dem webpanel soll beim öffnen eines Popups mit dateiendung .pdf der header von attachment zu application/pdf geändert werden, sodass ich in dem lokalen system-standart-browser die PDF öffnen kann. Wenn ich nichts ändere, sondern den link nur mit dem system-browser öffnen lasse, dann führt das natürlich dazu, dass auch in diesem nur ein Download angeboten wird, anstatt die PDF mit z.B. dem acrobat plugin zu laden.
Deshalb wollte ich von dem QWebReply den Header ändern und das Reply dann in dem Systembrowser ändern:
Aber dabei bekomme ich den folgenden Fehler:
"C:\Qt\Qt5.0.2\5.0.2\mingw47_32\include\QtNetwork\qnetworkreply.h:169:
Fehler:'void QNetworkReply::setHeader(QNetworkRequest::KnownHeaders,
const QVariant&)' is protected"
Wo liegt das Problem und ist der Ansatz, den ich hier gewählt habe, überhaupt der richtige??
Danke für die Hilfe und die Geduld
Dominik
das ist mein erster Post und ich hoffe, dass die Frage nicht all zu blöd ist
Ich hab die folgende Situation: in einem QWebview wird eine Website geladen, die Popups öffnet um eine PDF zu downloaden.
Das Popup-Handling habe ich nach ein wenig googlen so gelöst:
Code: Alles auswählen
webpanel *createWindow(QWebPage::WebWindowType type)
{
webpanel *webview = new webpanel;
webview->show();
return webview;
}In dem webpanel soll beim öffnen eines Popups mit dateiendung .pdf der header von attachment zu application/pdf geändert werden, sodass ich in dem lokalen system-standart-browser die PDF öffnen kann. Wenn ich nichts ändere, sondern den link nur mit dem system-browser öffnen lasse, dann führt das natürlich dazu, dass auch in diesem nur ein Download angeboten wird, anstatt die PDF mit z.B. dem acrobat plugin zu laden.
Deshalb wollte ich von dem QWebReply den Header ändern und das Reply dann in dem Systembrowser ändern:
Code: Alles auswählen
void webpanel::unsupContent( QNetworkReply* reply )
{
if(reply->url().url().endsWith(".pdf",Qt::CaseInsensitive))
{
reply->setHeader(QNetworkRequest::ContentDispositionHeader,"application/pdf");
QDesktopServices::openUrl(reply->url());
}
}"C:\Qt\Qt5.0.2\5.0.2\mingw47_32\include\QtNetwork\qnetworkreply.h:169:
Fehler:'void QNetworkReply::setHeader(QNetworkRequest::KnownHeaders,
const QVariant&)' is protected"
Wo liegt das Problem und ist der Ansatz, den ich hier gewählt habe, überhaupt der richtige??
Danke für die Hilfe und die Geduld
Dominik