void KHTMLReader::parseStyle(DOM::Element e) { // styles are broken broken broken broken broken broken. // FIXME: use getComputedStyle - note: it only returns 0, but works nevertheless kDebug(30503) << "entering parseStyle"; DOM::CSSStyleDeclaration s1 = e.style(); DOM::Document doc = _html->document(); DOM::CSSStyleDeclaration s2 = doc.defaultView().getComputedStyle(e, ""); kDebug(30503) << "font-weight=" << s1.getPropertyValue("font-weight").string(); if (s1.getPropertyValue("font-weight").string() == "bolder") { _writer->formatAttribute(state()->paragraph, "WEIGHT", "value", "75"); } if (s1.getPropertyValue("font-weight").string() == "bold") { _writer->formatAttribute(state()->paragraph, "WEIGHT", "value", "75"); } // process e.g. <style="color: #ffffff"> if (! s1.getPropertyValue("color").string().isEmpty()) { QColor c = parsecolor(s1.getPropertyValue("color").string()); _writer->formatAttribute(state()->paragraph, "COLOR", "red", QString::number(c.red())); _writer->formatAttribute(state()->paragraph, "COLOR", "green", QString::number(c.green())); _writer->formatAttribute(state()->paragraph, "COLOR", "blue", QString::number(c.blue())); } // done // process e.g. <style="font-size: 42"> if (! s1.getPropertyValue("font-size").string().isEmpty()) { QString size = s1.getPropertyValue("font-size").string(); if (size.endsWith("pt")) { size = size.left(size.length() - 2); } _writer->formatAttribute(state()->paragraph, "SIZE", "value", size); } // done // process e.g. <style="text-align: center">this is in the center</style> if (! s1.getPropertyValue("text-align").string().isEmpty()) { state()->layout = _writer->setLayout(state()->paragraph, state()->layout); _writer->layoutAttribute(state()->paragraph, "FLOW", "align", s1.getPropertyValue("text-align").string()); } // done /*if (DOM::PROPV("font-weight") == "bolder") _writer->formatAttribute(state()->paragraph,"WEIGHT","value","75"); */ /* // debugging code. kDebug(30503) <<"e.style()"; for (unsigned int i=0;i<s1.length();i++) { kDebug(30503) << QString("%1: %2").arg(s1.item(i).string()).arg(s1.getPropertyValue(s1.item(i)).string()); } kDebug(30503) <<"override style"; for (unsigned int i=0;i<s2.length();i++) { kDebug(30503) << QString("%1: %2").arg(s2.item(i).string()).arg(s2.getPropertyValue(s2.item(i)).string()); } */ }
void DOMTreeView::initializeCSSInfoFromElement(const DOM::Element &element) { DOM::Document doc = element.ownerDocument(); DOM::AbstractView view = doc.defaultView(); DOM::CSSStyleDeclaration styleDecl = view.getComputedStyle(element, DOM::DOMString()); unsigned long l = styleDecl.length(); cssProperties->clear(); cssProperties->setEnabled(true); QList<QTreeWidgetItem *> items; for (unsigned long i = 0; i < l; ++i) { DOM::DOMString name = styleDecl.item(i); DOM::DOMString value = styleDecl.getPropertyValue(name); QStringList values; values.append(name.string()); values.append(value.string()); items.append(new QTreeWidgetItem(static_cast<QTreeWidget*>(0), values)); } cssProperties->insertTopLevelItems(0, items); cssProperties->resizeColumnToContents(0); }