diff options
| author | 2011-03-16 21:58:18 +0000 | |
|---|---|---|
| committer | 2011-03-16 21:58:18 +0000 | |
| commit | b9d79d0d368cccd31e0c00062b3fb3a26da3b1b8 (patch) | |
| tree | 7ec35a1438f8441ec6076e475992a4fa79651701 /src/modules/objects/KvsObject_webView.cpp | |
| parent | upd8 spanish translation (diff) | |
| download | KVIrc-b9d79d0d368cccd31e0c00062b3fb3a26da3b1b8.tar.gz KVIrc-b9d79d0d368cccd31e0c00062b3fb3a26da3b1b8.tar.bz2 KVIrc-b9d79d0d368cccd31e0c00062b3fb3a26da3b1b8.zip | |
Code improvements in the theme manager(wip)
git-svn-id: https://svn.kvirc.de/svn/trunk/kvirc@5610 17fca916-40b9-46aa-a4ea-0a15b648b75c
Diffstat (limited to 'src/modules/objects/KvsObject_webView.cpp')
| -rw-r--r-- | src/modules/objects/KvsObject_webView.cpp | 43 |
1 files changed, 37 insertions, 6 deletions
diff --git a/src/modules/objects/KvsObject_webView.cpp b/src/modules/objects/KvsObject_webView.cpp index 0736b2c84..c8c850c6b 100644 --- a/src/modules/objects/KvsObject_webView.cpp +++ b/src/modules/objects/KvsObject_webView.cpp @@ -79,16 +79,16 @@ KviKvsDownloadHandler::~KviKvsDownloadHandler() } void KviKvsDownloadHandler::slotReadyRead() { - qDebug("Slot ready read"); QVariant vSize=m_pReply->header(QNetworkRequest::ContentLengthHeader); + int iSize=0; if(!vSize.isNull()){ bool ok; - int isize; - isize=vSize.toInt(&ok); - qDebug("contents %d",isize); + iSize=vSize.toInt(&ok); } + QByteArray bytes=m_pReply->readAll(); - KviKvsVariantList params(new KviKvsVariant((kvs_int_t)bytes.count()),new KviKvsVariant((kvs_int_t)m_Id)); + KviKvsVariantList params(new KviKvsVariant((kvs_int_t)bytes.count()),\ + new KviKvsVariant((kvs_int_t)m_Id),new KviKvsVariant((kvs_int_t)iSize)); m_pParentScript->callFunction(m_pParentScript,"downloadProgressEvent",¶ms); m_pFile->write(bytes); } @@ -116,6 +116,7 @@ const QWebSettings::WebAttribute webattributes_cod[] = { QWebSettings::ZoomTextOnly #if (QT_VERSION >= 0x040700) , +#if (QT_VERSION >= 0x040700) QWebSettings::LocalContentCanAccessFileUrls #endif }; @@ -166,10 +167,12 @@ KVSO_BEGIN_REGISTERCLASS(KvsObject_webView,"webview","widget") KVSO_REGISTER_HANDLER_BY_NAME(KvsObject_webView,removeFromDocument) KVSO_REGISTER_HANDLER_BY_NAME(KvsObject_webView,removeClass) KVSO_REGISTER_HANDLER_BY_NAME(KvsObject_webView,classes) + KVSO_REGISTER_HANDLER_BY_NAME(KvsObject_webView,setLinkDelegationPolicy) + + KVSO_REGISTER_HANDLER_BY_NAME(KvsObject_webView,linkClickedEvent) KVSO_REGISTER_HANDLER_BY_NAME(KvsObject_webView,loadFinishedEvent) KVSO_REGISTER_HANDLER_BY_NAME(KvsObject_webView,loadProgressEvent) KVSO_REGISTER_HANDLER_BY_NAME(KvsObject_webView,loadStartedEvent) - KVSO_REGISTER_HANDLER_BY_NAME(KvsObject_webView,downloadCompletedEvent) KVSO_REGISTER_HANDLER_BY_NAME(KvsObject_webView,downloadRequestEvent) KVSO_REGISTER_HANDLER_BY_NAME(KvsObject_webView,downloadProgressEvent) @@ -196,6 +199,7 @@ bool KvsObject_webView::init(KviKvsRunTimeContext *c ,KviKvsVariantList *) connect(((QWebView *)widget()),SIGNAL(loadStarted()),this,SLOT(slotLoadStarted())); connect(((QWebView *)widget()),SIGNAL(loadFinished(bool)),this,SLOT(slotLoadFinished(bool))); connect(((QWebView *)widget()),SIGNAL(loadProgress(int)),this,SLOT(slotLoadProgress(int))); + connect(pPage,SIGNAL(linkClicked(const QUrl &)),this,SLOT(slotLinkClicked(const QUrl &))); connect(pPage,SIGNAL(downloadRequested(const QNetworkRequest &)),this,SLOT(slotDownloadRequest(const QNetworkRequest &))); return true; } @@ -217,6 +221,22 @@ void KvsObject_webView::getFrames(QWebFrame *pFrame,KviKvsArray *pArray, kvs_uin } } +KVSO_CLASS_FUNCTION(webView,setLinkDelegationPolicy) +{ + CHECK_INTERNAL_POINTER(widget()) + QString szPolicy; + KVSO_PARAMETERS_BEGIN(c) + KVSO_PARAMETER("policy",KVS_PT_STRING,0,szPolicy) + KVSO_PARAMETERS_END(c) + QWebPage::LinkDelegationPolicy policy = QWebPage::DontDelegateLinks; + if(KviQString::equalCI(szPolicy,"DontDelegateLinks")) policy=QWebPage::DontDelegateLinks; + else if(KviQString::equalCI(szPolicy,"DelegateExternalLinks")) policy=QWebPage::DelegateExternalLinks; + else if(KviQString::equalCI(szPolicy,"DelegateAllLinks")) policy=QWebPage::DelegateAllLinks; + else c->warning(__tr2qs_ctx("Unknown delegation policy '%Q'- Switch do default dontDeleGateLinks","objects"),&szPolicy); + ((QWebView *)widget())->page()->setLinkDelegationPolicy(policy); + return true; +} + KVSO_CLASS_FUNCTION(webView,load) { CHECK_INTERNAL_POINTER(widget()) @@ -557,6 +577,11 @@ KVSO_CLASS_FUNCTION(webView,downloadProgressEvent) emitSignal("downloadProgress",c,c->params()); return true; } +KVSO_CLASS_FUNCTION(webView,linkClickedEvent) +{ + emitSignal("linkClicked",c,c->params()); + return true; +} KVSO_CLASS_FUNCTION(webView,downloadRequestEvent) { emitSignal("downloadRequest",c,c->params()); @@ -583,6 +608,12 @@ void KvsObject_webView::slotLoadProgress(int iProgress) KviKvsVariantList params(new KviKvsVariant((kvs_int_t) iProgress)); callFunction(this,"loadProgressEvent" ,¶ms); } +void KvsObject_webView::slotLinkClicked(const QUrl &url) +{ + QString szUrl=url.toString(); + qDebug("Link clicked %s",szUrl.toUtf8().data()); + +} void KvsObject_webView::slotDownloadRequest(const QNetworkRequest &r) { QNetworkReply *pReply=m_pNetworkManager->get(r); |
