⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 xbelreader.cpp

📁 奇趣公司比较新的qt/emd版本
💻 CPP
字号:
/******************************************************************************** Copyright (C) 2005-2007 Trolltech ASA. All rights reserved.**** This file is part of the example classes of the Qt Toolkit.**** This file may be used under the terms of the GNU General Public** License version 2.0 as published by the Free Software Foundation** and appearing in the file LICENSE.GPL included in the packaging of** this file.  Please review the following information to ensure GNU** General Public Licensing requirements will be met:** http://trolltech.com/products/qt/licenses/licensing/opensource/**** If you are unsure which license is appropriate for your use, please** review the following information:** http://trolltech.com/products/qt/licenses/licensing/licensingoverview** or contact the sales department at sales@trolltech.com.**** In addition, as a special exception, Trolltech gives you certain** additional rights. These rights are described in the Trolltech GPL** Exception version 1.0, which can be found at** http://www.trolltech.com/products/qt/gplexception/ and in the file** GPL_EXCEPTION.txt in this package.**** In addition, as a special exception, Trolltech, as the sole copyright** holder for Qt Designer, grants users of the Qt/Eclipse Integration** plug-in the right for the Qt/Eclipse Integration to link to** functionality provided by Qt Designer and its related libraries.**** Trolltech reserves all rights not expressly granted herein.**** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.******************************************************************************/#include <QtGui>#include "xbelreader.h"XbelReader::XbelReader(QTreeWidget *treeWidget)    : treeWidget(treeWidget){    QStyle *style = treeWidget->style();    folderIcon.addPixmap(style->standardPixmap(QStyle::SP_DirClosedIcon),                         QIcon::Normal, QIcon::Off);    folderIcon.addPixmap(style->standardPixmap(QStyle::SP_DirOpenIcon),                         QIcon::Normal, QIcon::On);    bookmarkIcon.addPixmap(style->standardPixmap(QStyle::SP_FileIcon));}bool XbelReader::read(QIODevice *device){    setDevice(device);    while (!atEnd()) {        readNext();        if (isStartElement()) {            if (name() == "xbel" && attributes().value("version") == "1.0")                readXBEL();            else                raiseError(QObject::tr("The file is not an XBEL version 1.0 file."));        }    }    return !error();}void XbelReader::readUnknownElement(){    Q_ASSERT(isStartElement());    while (!atEnd()) {        readNext();        if (isEndElement())            break;        if (isStartElement())            readUnknownElement();    }}void XbelReader::readXBEL(){    Q_ASSERT(isStartElement() && name() == "xbel");    while (!atEnd()) {        readNext();        if (isEndElement())            break;        if (isStartElement()) {            if (name() == "folder")                readFolder(0);            else if (name() == "bookmark")                readBookmark(0);            else if (name() == "separator")                readSeparator(0);            else                readUnknownElement();        }    }}void XbelReader::readTitle(QTreeWidgetItem *item){    Q_ASSERT(isStartElement() && name() == "title");    QString title = readElementText();    item->setText(0, title);}void XbelReader::readSeparator(QTreeWidgetItem *item){    QTreeWidgetItem *separator = createChildItem(item);    separator->setFlags(item->flags() & ~Qt::ItemIsSelectable);    separator->setText(0, QString(30, 0xB7));    readElementText();}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();        }    }}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();        }    }}QTreeWidgetItem *XbelReader::createChildItem(QTreeWidgetItem *item){    QTreeWidgetItem *childItem;    if (item) {        childItem = new QTreeWidgetItem(item);    } else {        childItem = new QTreeWidgetItem(treeWidget);    }    childItem->setData(0, Qt::UserRole, name().toString());    return childItem;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -