[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: KDE/kdelibs/khtml
From: Dawit Alemayehu <adawit () kde ! org>
Date: 2010-10-29 1:45:42
Message-ID: 20101029014542.C505DAC899 () svn ! kde ! org
[Download RAW message or body]
SVN commit 1190826 by adawit:
Updated the implementation of the KParts::HtmlExtension
M +36 -13 khtml_ext.cpp
M +5 -2 khtml_ext.h
--- trunk/KDE/kdelibs/khtml/khtml_ext.cpp #1190825:1190826
@@ -1099,11 +1099,22 @@
{
}
-KHTMLPart* KHTMLHtmlExtension::part() const
+KUrl KHTMLHtmlExtension::baseUrl() const
{
- return static_cast<KHTMLPart*>(parent());
+ return part()->baseURL();
}
+bool KHTMLHtmlExtension::hasSelection() const
+{
+ return KParts::HtmlExtension::hasSelection();
+}
+
+KParts::SelectorInterface::QueryMethods KHTMLHtmlExtension::supportedQueryMethods() \
const +{
+ // TODO: Add support for selected content (SelectedContent)
+ return KParts::SelectorInterface::EntireContent;
+}
+
static KParts::SelectorInterface::Element convertDomElement(const DOM::ElementImpl* \
domElem) {
KParts::SelectorInterface::Element elem;
@@ -1121,48 +1132,60 @@
KParts::SelectorInterface::Element KHTMLHtmlExtension::querySelector(const QString& \
query, KParts::SelectorInterface::QueryMethod method) const {
+ KParts::SelectorInterface::Element element;
+
+ if (!(supportedQueryMethods() & method))
+ return element;
+
switch (method) {
case KParts::SelectorInterface::EntireContent: {
int ec = 0; // exceptions are ignored
- WTF::RefPtr<DOM::ElementImpl> element = \
part()->document().handle()->querySelector(query, ec);
- return convertDomElement(element.get());
+ WTF::RefPtr<DOM::ElementImpl> domElem = \
part()->document().handle()->querySelector(query, ec); + element = \
convertDomElement(domElem.get()); + break;
}
case KParts::SelectorInterface::SelectedContent:
- // TODO: Implement support for querying only the selected portion of the \
content... + // TODO: Implement support for selected content...
default:
break;
}
- return KParts::SelectorInterface::Element();
+
+ return element;
}
QList<KParts::SelectorInterface::Element> KHTMLHtmlExtension::querySelectorAll(const \
QString& query, KParts::SelectorInterface::QueryMethod method) const {
- QList<KParts::SelectorInterface::Element> result;
+ QList<KParts::SelectorInterface::Element> elements;
+
+ if (!(supportedQueryMethods() & method))
+ return elements;
+
switch (method) {
case KParts::SelectorInterface::EntireContent: {
int ec = 0; // exceptions are ignored
WTF::RefPtr<DOM::NodeListImpl> nodes = \
part()->document().handle()->querySelectorAll(query, ec); const unsigned long \
len = nodes->length();
- result.reserve(len);
+ elements.reserve(len);
for (unsigned long i = 0; i < len; ++i) {
DOM::NodeImpl* node = nodes->item(i);
if (node->isElementNode()) { // should be always true
- result.append(convertDomElement(static_cast<DOM::ElementImpl*>(node)));
+ elements.append(convertDomElement(static_cast<DOM::ElementImpl*>(node)));
}
}
break;
}
case KParts::SelectorInterface::SelectedContent:
- // TODO: Implement support for querying only the selected portion of the \
content... + // TODO: Implement support for selected content...
default:
break;
}
- return result;
+
+ return elements;
}
-KUrl KHTMLHtmlExtension::baseUrl() const
+KHTMLPart* KHTMLHtmlExtension::part() const
{
- return part()->baseURL();
+ return static_cast<KHTMLPart*>(parent());
}
#include "khtml_ext.moc"
--- trunk/KDE/kdelibs/khtml/khtml_ext.h #1190825:1190826
@@ -204,11 +204,14 @@
public:
KHTMLHtmlExtension(KHTMLPart* part);
+ // HtmlExtension
virtual KUrl baseUrl() const;
+ virtual bool hasSelection() const;
// SelectorInterface
- virtual Element querySelector(const QString& query, \
KParts::SelectorInterface::QueryMethod method) const;
- virtual QList<Element> querySelectorAll(const QString& query, \
KParts::SelectorInterface::QueryMethod method) const; + virtual QueryMethods \
supportedQueryMethods() const; + virtual Element querySelector(const QString& \
query, QueryMethod method) const; + virtual QList<Element> querySelectorAll(const \
QString& query, QueryMethod method) const;
KHTMLPart* part() const;
};
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic