aboutsummaryrefslogtreecommitdiffstats
path: root/examples/xml/dombookmarks
diff options
context:
space:
mode:
authorRenato Filho <renato.filho@openbossa.org>2010-07-27 19:34:40 -0300
committerRenato Filho <renato.filho@openbossa.org>2010-07-27 19:34:40 -0300
commitce9b2dfe456f38a166314dc2807a6b27cd944127 (patch)
treedb0ec8d567bd881c61815f428231bffcf3b4bed8 /examples/xml/dombookmarks
parent9d7ea423b0c417c1e7ee5028940e7ec9e679dd9f (diff)
Updated tests to new api.
Diffstat (limited to 'examples/xml/dombookmarks')
-rwxr-xr-xexamples/xml/dombookmarks/dombookmarks.py215
1 files changed, 105 insertions, 110 deletions
diff --git a/examples/xml/dombookmarks/dombookmarks.py b/examples/xml/dombookmarks/dombookmarks.py
index d05e075..9e13b66 100755
--- a/examples/xml/dombookmarks/dombookmarks.py
+++ b/examples/xml/dombookmarks/dombookmarks.py
@@ -1,227 +1,222 @@
#!/usr/bin/env python
-"""PySide port of the xml/dombookmarks example from Qt v4.x"""
+"""PyQt4 port of the xml/dombookmarks example from Qt v4.x"""
-import sys
from PySide import QtCore, QtGui, QtXml
class MainWindow(QtGui.QMainWindow):
def __init__(self, parent=None):
- QtGui.QMainWindow.__init__(self, parent)
-
+ super(MainWindow, self).__init__(parent)
+
self.xbelTree = XbelTree()
self.setCentralWidget(self.xbelTree)
-
+
self.createActions()
self.createMenus()
-
- self.statusBar().showMessage(self.tr("Ready"))
-
- self.setWindowTitle(self.tr("DOM Bookmarks"))
+
+ self.statusBar().showMessage("Ready")
+
+ self.setWindowTitle("DOM Bookmarks")
self.resize(480, 320)
def open(self):
- fileName = QtGui.QFileDialog.getOpenFileName(self, self.tr("Open Bookmark File"),
- QtCore.QDir.currentPath(),
- self.tr("XBEL Files (*.xbel *.xml)"))
- if fileName.isEmpty():
+ fileName = QtGui.QFileDialog.getOpenFileName(self,
+ "Open Bookmark File", QtCore.QDir.currentPath(),
+ "XBEL Files (*.xbel *.xml)")[0]
+
+ if not fileName:
return
-
+
inFile = QtCore.QFile(fileName)
if not inFile.open(QtCore.QFile.ReadOnly | QtCore.QFile.Text):
- QtGui.QMessageBox.warning(self, self.tr("SAX Bookmarks"),
- self.tr("Cannot read file %1:\n%2.")
- .arg(fileName)
- .arg(inFile.errorString()))
+ QtGui.QMessageBox.warning(self, "DOM Bookmarks",
+ "Cannot read file %s:\n%s." % (fileName, inFile.errorString()))
return
if self.xbelTree.read(inFile):
- self.statusBar().showMessage(self.tr("File loaded"), 2000)
+ self.statusBar().showMessage("File loaded", 2000)
def saveAs(self):
- fileName = QtGui.QFileDialog.getSaveFileName(self, self.tr("Save Bookmark File"),
- QtCore.QDir.currentPath(),
- self.tr("XBEL Files (*.xbel *.xml)"))
- if fileName.isEmpty():
+ fileName = QtGui.QFileDialog.getSaveFileName(self,
+ "Save Bookmark File", QtCore.QDir.currentPath(),
+ "XBEL Files (*.xbel *.xml)")
+
+ if not fileName:
return
-
+
outFile = QtCore.QFile(fileName)
if not outFile.open(QtCore.QFile.WriteOnly | QtCore.QFile.Text):
- QtGui.QMessageBox.warning(self, self.tr("SAX Bookmarks"),
- self.tr("Cannot write file %1:\n%2.")
- .arg(fileName)
- .arg(outFile.errorString()))
+ QtGui.QMessageBox.warning(self, "DOM Bookmarks",
+ "Cannot write file %s:\n%s." % (fileName, outFile.errorString()))
return
if self.xbelTree.write(outFile):
- self.statusBar().showMessage(self.tr("File saved"), 2000)
+ self.statusBar().showMessage("File saved", 2000)
def about(self):
- QtGui.QMessageBox.about(self, self.tr("About DOM Bookmarks"), self.tr(
- "The <b>DOM Bookmarks</b> example demonstrates how to "
- "use Qt's DOM classes to read and write XML documents."))
+ QtGui.QMessageBox.about(self, "About DOM Bookmarks",
+ "The <b>DOM Bookmarks</b> example demonstrates how to use Qt's "
+ "DOM classes to read and write XML documents.")
def createActions(self):
- self.openAct = QtGui.QAction(self.tr("&Open..."), self)
- self.openAct.setShortcut(self.tr("Ctrl+O"))
- self.connect(self.openAct, QtCore.SIGNAL("triggered()"), self.open)
-
- self.saveAsAct = QtGui.QAction(self.tr("&Save As..."), self)
- self.saveAsAct.setShortcut(self.tr("Ctrl+S"))
- self.connect(self.saveAsAct, QtCore.SIGNAL("triggered()"), self.saveAs)
-
- self.exitAct = QtGui.QAction(self.tr("E&xit"), self)
- self.exitAct.setShortcut(self.tr("Ctrl+Q"))
- self.connect(self.exitAct, QtCore.SIGNAL("triggered()"), self, QtCore.SLOT("close()"))
-
- self.aboutAct = QtGui.QAction(self.tr("&About"), self)
- self.connect(self.aboutAct, QtCore.SIGNAL("triggered()"), self.about)
-
- self.aboutQtAct = QtGui.QAction(self.tr("About &Qt"), self)
- self.connect(self.aboutQtAct, QtCore.SIGNAL("triggered()"), QtGui.qApp, QtCore.SLOT("aboutQt()"))
+ self.openAct = QtGui.QAction("&Open...", self, shortcut="Ctrl+O",
+ triggered=self.open)
+
+ self.saveAsAct = QtGui.QAction("&Save As...", self, shortcut="Ctrl+S",
+ triggered=self.saveAs)
+
+ self.exitAct = QtGui.QAction("E&xit", self, shortcut="Ctrl+Q",
+ triggered=self.close)
+
+ self.aboutAct = QtGui.QAction("&About", self, triggered=self.about)
+
+ self.aboutQtAct = QtGui.QAction("About &Qt", self,
+ triggered=QtGui.qApp.aboutQt)
def createMenus(self):
- self.fileMenu = self.menuBar().addMenu(self.tr("&File"))
+ self.fileMenu = self.menuBar().addMenu("&File")
self.fileMenu.addAction(self.openAct)
self.fileMenu.addAction(self.saveAsAct)
self.fileMenu.addAction(self.exitAct)
-
+
self.menuBar().addSeparator()
-
- self.helpMenu = self.menuBar().addMenu(self.tr("&Help"))
+
+ self.helpMenu = self.menuBar().addMenu("&Help")
self.helpMenu.addAction(self.aboutAct)
self.helpMenu.addAction(self.aboutQtAct)
class XbelTree(QtGui.QTreeWidget):
def __init__(self, parent=None):
- QtGui.QTreeWidget.__init__(self, parent)
+ super(XbelTree, self).__init__(parent)
- labels = QtCore.QStringList()
- labels << self.tr("Title") << self.tr("Location")
-
self.header().setResizeMode(QtGui.QHeaderView.Stretch)
- self.setHeaderLabels(labels)
-
+ self.setHeaderLabels(("Title", "Location"))
+
self.domDocument = QtXml.QDomDocument()
-
+
self.domElementForItem = {}
-
+
self.folderIcon = QtGui.QIcon()
self.bookmarkIcon = QtGui.QIcon()
-
+
self.folderIcon.addPixmap(self.style().standardPixmap(QtGui.QStyle.SP_DirClosedIcon),
- QtGui.QIcon.Normal, QtGui.QIcon.Off)
+ QtGui.QIcon.Normal, QtGui.QIcon.Off)
self.folderIcon.addPixmap(self.style().standardPixmap(QtGui.QStyle.SP_DirOpenIcon),
- QtGui.QIcon.Normal, QtGui.QIcon.On)
+ QtGui.QIcon.Normal, QtGui.QIcon.On)
self.bookmarkIcon.addPixmap(self.style().standardPixmap(QtGui.QStyle.SP_FileIcon))
def read(self, device):
ok, errorStr, errorLine, errorColumn = self.domDocument.setContent(device, True)
if not ok:
- QtGui.QMessageBox.information(self.window(), self.tr("DOM Bookmarks"),
- self.tr("Parse error at line %1, column %2:\n%3")
- .arg(errorLine).arg(errorColumn).arg(errorStr))
+ QtGui.QMessageBox.information(self.window(), "DOM Bookmarks",
+ "Parse error at line %d, column %d:\n%s" % (errorLine, errorColumn, errorStr))
return False
root = self.domDocument.documentElement()
- if root.tagName() != "xbel":
- QtGui.QMessageBox.information(self.window(), self.tr("DOM Bookmarks"),
- self.tr("The file is not an XBEL file."))
+ if root.tagName() != 'xbel':
+ QtGui.QMessageBox.information(self.window(), "DOM Bookmarks",
+ "The file is not an XBEL file.")
return False
- elif root.hasAttribute("version") and root.attribute("version") != "1.0":
- QtGui.QMessageBox.information(self.window(), self.tr("DOM Bookmarks"),
- self.tr("The file is not an XBEL version 1.0 file."))
+ elif root.hasAttribute('version') and root.attribute('version') != '1.0':
+ QtGui.QMessageBox.information(self.window(), "DOM Bookmarks",
+ "The file is not an XBEL version 1.0 file.")
return False
self.clear()
- self.disconnect(self, QtCore.SIGNAL("itemChanged(QTreeWidgetItem *, int)"),
- self.updateDomElement)
+ # It might not be connected.
+ try:
+ self.itemChanged.disconnect(self.updateDomElement)
+ except:
+ pass
- child = root.firstChildElement("folder")
+ child = root.firstChildElement('folder')
while not child.isNull():
self.parseFolderElement(child)
- child = child.nextSiblingElement("folder")
+ child = child.nextSiblingElement('folder')
+
+ self.itemChanged.connect(self.updateDomElement)
- self.connect(self, QtCore.SIGNAL("itemChanged(QTreeWidgetItem *, int)"),
- self.updateDomElement)
-
return True
def write(self, device):
indentSize = 4
-
+
out = QtCore.QTextStream(device)
self.domDocument.save(out, indentSize)
return True
def updateDomElement(self, item, column):
- element = self.domElementForItem.get(item)
+ element = self.domElementForItem.get(id(item))
if not element.isNull():
if column == 0:
- oldTitleElement = element.firstChildElement("title")
- newTitleElement = self.domDocument.createElement("title")
-
+ oldTitleElement = element.firstChildElement('title')
+ newTitleElement = self.domDocument.createElement('title')
+
newTitleText = self.domDocument.createTextNode(item.text(0))
newTitleElement.appendChild(newTitleText)
-
+
element.replaceChild(newTitleElement, oldTitleElement)
else:
- if element.tagName() == "bookmark":
- element.setAttribute("href", item.text(1))
+ if element.tagName() == 'bookmark':
+ element.setAttribute('href', item.text(1))
def parseFolderElement(self, element, parentItem=None):
item = self.createItem(element, parentItem)
-
- title = element.firstChildElement("title").text()
- if title.isEmpty():
- title = QtCore.QObject.tr("Folder")
-
+
+ title = element.firstChildElement('title').text()
+ if not title:
+ title = "Folder"
+
item.setFlags(item.flags() | QtCore.Qt.ItemIsEditable)
item.setIcon(0, self.folderIcon)
item.setText(0, title)
-
- folded = (element.attribute("folded") != "no")
+
+ folded = (element.attribute('folded') != 'no')
self.setItemExpanded(item, not folded)
-
+
child = element.firstChildElement()
while not child.isNull():
- if child.tagName() == "folder":
+ if child.tagName() == 'folder':
self.parseFolderElement(child, item)
- elif child.tagName() == "bookmark":
+ elif child.tagName() == 'bookmark':
childItem = self.createItem(child, item)
-
- title = child.firstChildElement("title").text()
- if title.isEmpty():
- title = QtCore.QObject.tr("Folder")
-
+
+ title = child.firstChildElement('title').text()
+ if not title:
+ title = "Folder"
+
childItem.setFlags(item.flags() | QtCore.Qt.ItemIsEditable)
childItem.setIcon(0, self.bookmarkIcon)
childItem.setText(0, title)
- childItem.setText(1, child.attribute("href"))
- elif child.tagName() == "separator":
+ childItem.setText(1, child.attribute('href'))
+ elif child.tagName() == 'separator':
childItem = self.createItem(child, item)
childItem.setFlags(item.flags() & ~(QtCore.Qt.ItemIsSelectable | QtCore.Qt.ItemIsEditable))
- childItem.setText(0, QtCore.QString(30 * "\xB7"))
-
+ childItem.setText(0, 30 * "\xb7")
+
child = child.nextSiblingElement()
def createItem(self, element, parentItem=None):
item = QtGui.QTreeWidgetItem()
-
+
if parentItem is not None:
item = QtGui.QTreeWidgetItem(parentItem)
else:
item = QtGui.QTreeWidgetItem(self)
-
- self.domElementForItem[item] = element
+
+ self.domElementForItem[id(item)] = element
return item
if __name__ == '__main__':
+
+ import sys
+
app = QtGui.QApplication(sys.argv)
mainWin = MainWindow()
mainWin.show()
+ mainWin.open()
sys.exit(app.exec_())