aboutsummaryrefslogtreecommitdiffstats
path: root/src/modules/objects
diff options
context:
space:
mode:
authorGravatar Noldor2011-03-16 21:58:18 +0000
committerGravatar Noldor2011-03-16 21:58:18 +0000
commitb9d79d0d368cccd31e0c00062b3fb3a26da3b1b8 (patch)
tree7ec35a1438f8441ec6076e475992a4fa79651701 /src/modules/objects
parentupd8 spanish translation (diff)
downloadKVIrc-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')
-rw-r--r--src/modules/objects/KvsObject_label.cpp2
-rw-r--r--src/modules/objects/KvsObject_webView.cpp43
-rw-r--r--src/modules/objects/KvsObject_webView.h4
-rw-r--r--src/modules/objects/KvsObject_widget.cpp1
4 files changed, 43 insertions, 7 deletions
diff --git a/src/modules/objects/KvsObject_label.cpp b/src/modules/objects/KvsObject_label.cpp
index 08cb4ffa1..c5fa7fdd7 100644
--- a/src/modules/objects/KvsObject_label.cpp
+++ b/src/modules/objects/KvsObject_label.cpp
@@ -6,7 +6,7 @@
// This file is part of the KVIrc irc client distribution
// Copyright (C) 2000 Krzysztof Godlewski
// Copyright (C) 2000-2010 Szymon Stefanek (pragma at kvirc dot net)
-//
+//LinkDelegationPolicy
// This program is FREE software. You can redistribute it and/or
// modify it under the terms of the GNU General Public License
// as published by the Free Software Foundation; either version 2
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",&params);
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" ,&params);
}
+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);
diff --git a/src/modules/objects/KvsObject_webView.h b/src/modules/objects/KvsObject_webView.h
index 7cb0dadec..221fb3aea 100644
--- a/src/modules/objects/KvsObject_webView.h
+++ b/src/modules/objects/KvsObject_webView.h
@@ -80,12 +80,14 @@ protected:
bool queryResultsCount(KviKvsObjectFunctionCall *c);
bool attributeNames(KviKvsObjectFunctionCall *c);
+ bool setLinkDelegationPolicy(KviKvsObjectFunctionCall *c);
bool setAttribute(KviKvsObjectFunctionCall *c);
bool setWebSetting(KviKvsObjectFunctionCall *c);
bool attribute(KviKvsObjectFunctionCall *c);
bool frames(KviKvsObjectFunctionCall *c);
bool loadStartedEvent(KviKvsObjectFunctionCall *c);
+ bool linkClickedEvent(KviKvsObjectFunctionCall *c);
bool loadFinishedEvent(KviKvsObjectFunctionCall *c);
bool loadProgressEvent(KviKvsObjectFunctionCall *c);
bool downloadCompletedEvent(KviKvsObjectFunctionCall *c);
@@ -96,6 +98,8 @@ protected slots:
void slotLoadProgress(int);
void slotLoadStarted();
void slotDownloadRequest(const QNetworkRequest &);
+ void slotLinkClicked(const QUrl &);
+
};
class KviKvsDownloadHandler : public QObject
{
diff --git a/src/modules/objects/KvsObject_widget.cpp b/src/modules/objects/KvsObject_widget.cpp
index 73babf97a..0d1550e9e 100644
--- a/src/modules/objects/KvsObject_widget.cpp
+++ b/src/modules/objects/KvsObject_widget.cpp
@@ -478,6 +478,7 @@ const char * const widgettypes_tbl[] = {
- . [br]
- ^ [br]
+
[/pre]
!fn: $mapFromGlobal(<x>,<y>)
Translates the global screen coordinate pos to widget coordinates.