Example #1
0
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();
        }
    }
}
Example #2
0
//! [5]
void XbelReader::readSeparator(QTreeWidgetItem *item)
{
    QTreeWidgetItem *separator = createChildItem(item);
    separator->setFlags(item->flags() & ~Qt::ItemIsSelectable);
    separator->setText(0, QString(30, 0xB7));
    readElementText();
}
Example #3
0
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);
}
Example #4
0
//! [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();
}
Example #5
0
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;
}
Example #6
0
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();
    }
}
Example #7
0
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();
    }
}
Example #8
0
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();
        }
    }
}
Example #9
0
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);
}