class XbelHandler

Public Class Methods

new(treeWidget) click to toggle source
Calls superclass method
# File examples/xml/saxbookmarks/xbelhandler.rb, line 30
def initialize(treeWidget)
    super()
        @treeWidget = treeWidget
    @item = nil
    @metXbelTag = false
        @currentText = ""

    style = @treeWidget.style()

        @folderIcon = Qt::Icon.new
    @folderIcon.addPixmap(style.standardPixmap(Qt::Style::SP_DirClosedIcon),
                         Qt::Icon::Normal, Qt::Icon::Off)
    @folderIcon.addPixmap(style.standardPixmap(Qt::Style::SP_DirOpenIcon),
                         Qt::Icon::Normal, Qt::Icon::On)
        @bookmarkIcon = Qt::Icon.new
    @bookmarkIcon.addPixmap(style.standardPixmap(Qt::Style::SP_FileIcon))
end

Public Instance Methods

characters(str) click to toggle source
# File examples/xml/saxbookmarks/xbelhandler.rb, line 97
def characters(str)
    @currentText += str
    return true
end
createChildItem(tagName) click to toggle source
# File examples/xml/saxbookmarks/xbelhandler.rb, line 113
def createChildItem(tagName)
    if !@item.nil?
        childItem = Qt::TreeWidgetItem.new(@item, Qt::TreeWidgetItem::Type)
    else
        childItem = Qt::TreeWidgetItem.new(@treeWidget)
    end
    childItem.setData(0, Qt::UserRole, Qt::Variant.new(tagName))
    return childItem
end
endElement(namespaceURI, localName, qName) click to toggle source
# File examples/xml/saxbookmarks/xbelhandler.rb, line 85
def endElement(namespaceURI, localName, qName)
    if qName == "title"
        if !@item.nil?
            @item.setText(0, @currentText)
                end
    elsif qName == "folder" || qName == "bookmark" ||
               qName == "separator"
        @item = @item.parent()
    end
    return true
end
errorString() click to toggle source
# File examples/xml/saxbookmarks/xbelhandler.rb, line 109
def errorString()
    return @errorStr
end
fatalError(exception) click to toggle source
# File examples/xml/saxbookmarks/xbelhandler.rb, line 102
def fatalError(exception)
    Qt::MessageBox.information(@treeWidget.window(), Qt::Object.tr("SAX Bookmarks"),
                             Qt::Object::tr("Parse error at line %s, column %s:\n%s" %
                             [exception.lineNumber, exception.columnNumber,exception.message]))
    return false
end
startElement(namespaceURI, localName, qName, attributes) click to toggle source
# File examples/xml/saxbookmarks/xbelhandler.rb, line 48
        def startElement(namespaceURI, localName, qName, attributes)
            if !@metXbelTag && qName != "xbel"
                @errorStr = Qt::Object.tr("The file is not an XBEL file.")
                return false
            end
        
            if qName == "xbel"
                version = attributes.value("version")
                if !version.empty? && version != "1.0"
                    @errorStr = Qt::Object.tr("The file is not an XBEL version 1.0 file.")
                    return false
                end
                @metXbelTag = true
            elsif qName == "folder"
                @item = createChildItem(qName)
                @item.flags = @item.flags | Qt::ItemIsEditable.to_i
                @item.setIcon(0, @folderIcon)
                @item.setText(0, Qt::Object.tr("Folder"))
                folded = (attributes.value("folded") != "no")
                @treeWidget.setItemExpanded(@item, !folded)
            elsif qName == "bookmark"
                @item = createChildItem(qName)
                @item.flags = @item.flags | Qt::ItemIsEditable.to_i
                @item.setIcon(0, @bookmarkIcon)
                @item.setText(0, Qt::Object.tr("Unknown title"))
                @item.setText(1, attributes.value("href"))
            elsif qName == "separator"
                @item = createChildItem(qName)
                @item.flags = @item.flags & ~Qt::ItemIsSelectable.to_i
#               @item.setText(0, Qt::String(30, 0xB7))
                @item.setText(0, "..............................")
            end
        
                @currentText = ""
            return true
        end