void XbelReader::readFolder(QTreeWidgetItem *item) { Q_ASSERT(isStartElement() && name() == "folder"); QTreeWidgetItem *folder = createChildItem(item); bool folded = (attributes().value("folded") != "no"); treeWidget->setItemExpanded(folder, !folded); while (!atEnd()) { readNext(); if (isEndElement()) break; if (isStartElement()) { if (name() == "title") readTitle(folder); else if (name() == "folder") readFolder(folder); else if (name() == "bookmark") readBookmark(folder); else if (name() == "separator") readSeparator(folder); else readUnknownElement(); } } }
//! [5] void XbelReader::readSeparator(QTreeWidgetItem *item) { QTreeWidgetItem *separator = createChildItem(item); separator->setFlags(item->flags() & ~Qt::ItemIsSelectable); separator->setText(0, QString(30, 0xB7)); readElementText(); }
void ContactsReader::readContact(QTreeWidgetItem* parent) { Q_ASSERT(isStartElement() && name() == "Contact"); QString login, portraitPath, fun; QTreeWidgetItem* contact = createChildItem(parent); const bool expanded = (attributes().value("expanded") == "yes"); this->_tree->setItemExpanded(contact, expanded); contact->setIcon(0, QIcon(":/images/contact.png")); contact->setData(0, ContactsTree::Type, ContactsTree::Contact); contact->setData(0, ContactsTree::IconPath, ":/images/contact.png"); contact->setData(0, ContactsTree::Fun, QNS_NORMAL); contact->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEditable | Qt::ItemIsEnabled | Qt::ItemIsDragEnabled); while (!atEnd()) { readNext(); if (isEndElement()) break; if (isStartElement()) { if (name() == "alias") contact->setText(0, readElementText()); else if (name() == "login") { login = readElementText(); contact->setData(0, ContactsTree::Login, login); } else if (name() == "promo") contact->setData(0, ContactsTree::Promo, readElementText()); else if (name() == "fun") { fun = readElementText(); contact->setData(0, ContactsTree::Fun, fun); } else readUnknownElement(); } } if (login.isEmpty()) { #ifndef QT_NO_DEBUG parent->removeChild(contact); delete contact; qDebug() << "[ContactsReader::readContact]" << "A contact does not have a login"; #endif return; } if (PortraitResolver::isAvailable(portraitPath, login, fun == "true")) { contact->setIcon(0, QIcon(portraitPath)); contact->setData(0, ContactsTree::IconPath, portraitPath); } Contact::buildToolTip(contact); }
//! [5] void XbelReader::readSeparator(QTreeWidgetItem *item) { Q_ASSERT(xml.isStartElement() && xml.name() == "separator"); QTreeWidgetItem *separator = createChildItem(item); separator->setFlags(item->flags() & ~Qt::ItemIsSelectable); separator->setText(0, QString(30, 0xB7)); xml.skipCurrentElement(); }
bool XbelHandler::startElement(const QString & /* namespaceURI */, const QString & /* localName */, const QString &qName, const QXmlAttributes &attributes) { if (!metXbelTag && qName != "xbel") { errorStr = QObject::tr("The file is not an XBEL file."); return false; } if (qName == "xbel") { QString version = attributes.value("version"); if (!version.isEmpty() && version != "1.0") { errorStr = QObject::tr("The file is not an XBEL version 1.0 file."); return false; } metXbelTag = true; } else if (qName == "folder") { item = createChildItem(qName); item->setFlags(item->flags() | Qt::ItemIsEditable); item->setIcon(0, folderIcon); item->setText(0, QObject::tr("Folder")); bool folded = (attributes.value("folded") != "no"); treeWidget->setItemExpanded(item, !folded); } else if (qName == "bookmark") { item = createChildItem(qName); item->setFlags(item->flags() | Qt::ItemIsEditable); item->setIcon(0, bookmarkIcon); item->setText(0, QObject::tr("Unknown title")); item->setText(1, attributes.value("href")); } else if (qName == "separator") { item = createChildItem(qName); item->setFlags(item->flags() & ~Qt::ItemIsSelectable); item->setText(0, QString(30, 0xB7)); } currentText.clear(); return true; }
void XbelReader::readBookmark(QTreeWidgetItem *item) { Q_ASSERT(xml.isStartElement() && xml.name() == "bookmark"); QTreeWidgetItem *bookmark = createChildItem(item); bookmark->setFlags(bookmark->flags() | Qt::ItemIsEditable); bookmark->setIcon(0, bookmarkIcon); bookmark->setText(0, QObject::tr("Unknown title")); bookmark->setText(1, xml.attributes().value("href").toString()); while (xml.readNextStartElement()) { if (xml.name() == "title") readTitle(bookmark); else xml.skipCurrentElement(); } }
void XbelReader::readFolder(QTreeWidgetItem *item) { Q_ASSERT(xml.isStartElement() && xml.name() == "folder"); QTreeWidgetItem *folder = createChildItem(item); bool folded = (xml.attributes().value("folded") != "no"); treeWidget->setItemExpanded(folder, !folded); while (xml.readNextStartElement()) { if (xml.name() == "title") readTitle(folder); else if (xml.name() == "folder") readFolder(folder); else if (xml.name() == "bookmark") readBookmark(folder); else if (xml.name() == "separator") readSeparator(folder); else xml.skipCurrentElement(); } }
void XbelReader::readBookmark(QTreeWidgetItem *item) { Q_ASSERT(isStartElement() && name() == "bookmark"); QTreeWidgetItem *bookmark = createChildItem(item); bookmark->setFlags(bookmark->flags() | Qt::ItemIsEditable); bookmark->setIcon(0, bookmarkIcon); bookmark->setText(0, QObject::tr("Unknown title")); bookmark->setText(1, attributes().value("href").toString()); while (!atEnd()) { readNext(); if (isEndElement()) break; if (isStartElement()) { if (name() == "title") readTitle(bookmark); else readUnknownElement(); } } }
void ContactsReader::readGroup(QTreeWidgetItem* parent) { Q_ASSERT(isStartElement() && name() == "Group"); QTreeWidgetItem* group = createChildItem(parent); const bool expanded = (attributes().value("expanded") == "yes"); this->_tree->setItemExpanded(group, expanded); group->setIcon(0, QIcon(":/images/group.png")); group->setData(0, ContactsTree::Type, ContactsTree::Group); group->setData(0, ContactsTree::IconPath, ":/images/group.png"); group->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEditable | Qt::ItemIsEnabled | Qt::ItemIsDragEnabled | Qt::ItemIsDropEnabled); while (!atEnd()) { readNext(); if (isEndElement()) break; if (name() == "name") group->setText(0, readElementText()); if (isStartElement()) { if (name() == "Contact") readContact(group); else readUnknownElement(); } } Group::buildToolTip(group); }