class XbelGenerator
Constants
- IndentSize
Public Class Methods
new(treeWidget)
click to toggle source
# File examples/xml/saxbookmarks/xbelgenerator.rb, line 30 def initialize(treeWidget) @treeWidget = treeWidget @outf = Qt::TextStream.new end
Public Instance Methods
escapedAttribute(str)
click to toggle source
# File examples/xml/saxbookmarks/xbelgenerator.rb, line 62 def escapedAttribute(str) result = escapedText(str) result.gsub!("\"", """) return '"' + result + '"' end
escapedText(str)
click to toggle source
# File examples/xml/saxbookmarks/xbelgenerator.rb, line 54 def escapedText(str) result = str result.gsub!("&", "&") result.gsub!("<", "<") result.gsub!(">", ">") return result end
generateItem(item, depth)
click to toggle source
# File examples/xml/saxbookmarks/xbelgenerator.rb, line 68 def generateItem(item, depth) tagName = item.data(0, Qt::UserRole).toString() if tagName == "folder" folded = !@treeWidget.isItemExpanded(item) @outf << indent(depth) << "<folder folded=\"" << (folded ? "yes" : "no") << "\">\n" << indent(depth + 1) << "<title>" << escapedText(item.text(0)) << "</title>\n" for i in 0...item.childCount() generateItem(item.child(i), depth + 1) end @outf << indent(depth) << "</folder>\n" elsif tagName == "bookmark" @outf << indent(depth) << "<bookmark" if !item.text(1).empty? @outf << " href=" << escapedAttribute(item.text(1)) end @outf << ">\n" << indent(depth + 1) << "<title>" << escapedText(item.text(0)) << "</title>\n" << indent(depth) << "</bookmark>\n" elsif tagName == "separator" @outf << indent(depth) << "<separator/>\n" end end
indent(depth)
click to toggle source
# File examples/xml/saxbookmarks/xbelgenerator.rb, line 50 def indent(depth) return " " * (IndentSize * depth) end
write(device)
click to toggle source
# File examples/xml/saxbookmarks/xbelgenerator.rb, line 35 def write(device) @outf.device = device @outf.codec = "UTF-8" @outf << "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" << "<!DOCTYPE xbel>\n" << "<xbel version=\"1.0\">\n" for i in 0...@treeWidget.topLevelItemCount() generateItem(@treeWidget.topLevelItem(i), 1) end @outf << "</xbel>\n" return true end