[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-11-10 4:52:15
Message-ID: 20101110045215.9504DAC89E () svn ! kde ! org
[Download RAW message or body]
SVN commit 1194917 by adawit:
Implemented the missing support for querying only selected content
M +17 -5 khtml_ext.cpp
--- trunk/KDE/kdelibs/khtml/khtml_ext.cpp #1194916:1194917
@@ -1106,13 +1106,12 @@
bool KHTMLHtmlExtension::hasSelection() const
{
- return KParts::HtmlExtension::hasSelection();
+ return part()->hasSelection();
}
KParts::SelectorInterface::QueryMethods KHTMLHtmlExtension::supportedQueryMethods() const
{
- // TODO: Add support for selected content (SelectedContent)
- return KParts::SelectorInterface::EntireContent;
+ return (KParts::SelectorInterface::SelectedContent | KParts::SelectorInterface::EntireContent);
}
static KParts::SelectorInterface::Element convertDomElement(const DOM::ElementImpl* domElem)
@@ -1149,7 +1148,11 @@
break;
}
case KParts::SelectorInterface::SelectedContent:
- // TODO: Implement support for selected content...
+ if (part()->hasSelection()) {
+ DOM::Element domElem = part()->selection().cloneContents().querySelector(query);
+ element = convertDomElement(static_cast<DOM::ElementImpl*>(domElem.handle()));
+ }
+ break;
default:
break;
}
@@ -1184,7 +1187,16 @@
break;
}
case KParts::SelectorInterface::SelectedContent:
- // TODO: Implement support for selected content...
+ if (part()->hasSelection()) {
+ DOM::NodeList nodes = part()->selection().cloneContents().querySelectorAll(query);
+ const unsigned long len = nodes.length();
+ for (unsigned long i = 0; i < len; ++i) {
+ DOM::NodeImpl* node = nodes.item(i).handle();
+ if (node->isElementNode())
+ elements.append(convertDomElement(static_cast<DOM::ElementImpl*>(node)));
+ }
+ }
+ break;
default:
break;
}
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic