void DTD::printContents() { for ( QStringList::Iterator tagIt = tags.begin(); tagIt != tags.end(); ++tagIt ) { QString tag = *tagIt; kdDebug(24000) << tag << endl; AttributeList *attributes = getTagAttributes(tag); for ( uint i = 0; i < attributes->count(); i++) { Attribute *attribute = attributes->at(i); QString s = " " + attribute->name + ": "; for (uint j = 0; j < attribute->values.count(); j++) { s += attribute->values[j] + ", "; } kdDebug(24000) << s << endl; } } }
void TagAttributeTree::setCurrentNode(Node *node) { if (m_node == node) return; m_node = node; emit newNodeSelected(node); if (!rebuildEnabled) return; clear(); m_parentItem = 0L; //We don't want to be able to edit the text node but it's parent. if (node && node->tag->type == Tag::Text) m_node = node = node->parent; if (!node) return; #ifdef HEAVY_DEBUG kafkaCommon::coutTree(baseNode, 2); KafkaDocument::ref()->coutLinkTree(baseNode, 2); #endif AttributeItem *item = 0L; TopLevelItem *group = 0L; QString attrName; QTag *qTag = QuantaCommon::tagFromDTD(node); Node *n = node->parent; while (n) { if (n->tag->type == Tag::XmlTag) { if (!m_parentItem) { group = new TopLevelItem(this, 0L, i18n("Parent tags")); m_parentItem = new ParentItem(this, group); } m_parentItem->addNode(n); } n = n->parent; } if (m_parentItem) m_parentItem->showList(true); if (group) group->setOpen(true); // if (!node->tag->nameSpace.isEmpty()) if(node->tag->type == Tag::XmlTag || node->tag->type == Tag::XmlTagEnd) { QString nameSpace = node->tag->nameSpace; if (node->tag->type == Tag::XmlTagEnd) nameSpace.remove('/'); group = new TopLevelItem(this, group, i18n("Namespace")); item = new AttributeNameSpaceItem(this, group, i18n("prefix"), nameSpace); group->setOpen(true); } if (qTag) { group = new TopLevelItem(this, group, i18n("Attributes")); QStringList list; for (int i = 0; i < qTag->attributeCount(); i++) { list += qTag->attributeAt(i)->name; } list.sort(); QStringList::Iterator it = list.end(); --it; while (it != list.end()) { Attribute *attr = qTag->attribute(*it); if (attr->type == "check") { item = new AttributeBoolItem(this, group, attr->name, node->tag->attributeValue(attr->name)); } else if (attr->type == "url") { item = new AttributeUrlItem(this, group, attr->name, node->tag->attributeValue(attr->name)); } else if (attr->type == "list") { item = new AttributeListItem(this, group, attr->name, node->tag->attributeValue(attr->name)); } else if (attr->type == "color") { item = new AttributeColorItem(this, group, attr->name, node->tag->attributeValue(attr->name)); } else { item = new AttributeItem(this, group, attr->name, node->tag->attributeValue(attr->name)); } item->setRenameEnabled(1, true); if (it != list.begin()) --it; else break; } group->setOpen(true); for (uint i = 0; i < qTag->commonGroups.count(); i++) { group = new TopLevelItem(this, group, i18n(qTag->commonGroups[i].utf8())); AttributeList *groupAttrs = qTag->parentDTD->commonAttrs->find(qTag->commonGroups[i]); for (uint j = 0; j < groupAttrs->count(); j++) { Attribute *attr = groupAttrs->at(j); attrName = attr->name; if (attr->type == "check") { item = new AttributeBoolItem(this, group, attrName, node->tag->attributeValue(attrName)); } else if (attr->type == "url") { item = new AttributeUrlItem(this, group, attr->name, node->tag->attributeValue(attr->name)); } else if (attr->type == "list") { item = new AttributeListItem(this, group, attr->name, node->tag->attributeValue(attr->name), attr); } else if (attr->type == "color") { item = new AttributeColorItem(this, group, attr->name, node->tag->attributeValue(attr->name)); } else if (attr->type == "css-style") { item = new AttributeStyleItem(this, group, attr->name, node->tag->attributeValue(attr->name)); } else { item = new AttributeItem(this, group, attrName, node->tag->attributeValue(attrName)); } item->setRenameEnabled(1, true); } group->setOpen(true); } } connect(this, SIGNAL(collapsed(QListViewItem*)), SLOT(slotCollapsed(QListViewItem*))); connect(this, SIGNAL(expanded(QListViewItem*)), SLOT(slotExpanded(QListViewItem*))); }