Пример #1
0
 def setDocuments(self, documents):
     """Display the specified documents in the list."""
     # clear the treewidget
     for d in self.tree.invisibleRootItem().takeChildren():
         for i in d.takeChildren():
             i.doc = None
     # group the documents by directory
     dirs = {}
     for d in documents:
         path = d.url().toLocalFile()
         if path:
             dirname, filename = os.path.split(path)
             dirs.setdefault(dirname, []).append((filename, d))
     for dirname in sorted(dirs, key=util.naturalsort):
         diritem = QTreeWidgetItem()
         diritem.setText(0, util.homify(dirname))
         self.tree.addTopLevelItem(diritem)
         diritem.setExpanded(True)
         diritem.setFlags(Qt.ItemIsEnabled)
         diritem.setIcon(0, icons.get('folder-open'))
         for filename, document in sorted(
                 dirs[dirname], key=lambda item: util.naturalsort(item[0])):
             fileitem = QTreeWidgetItem()
             diritem.addChild(fileitem)
             if documentwatcher.DocumentWatcher.instance(
                     document).isdeleted():
                 itemtext = _("[deleted]")
                 icon = "dialog-error"
             else:
                 itemtext = _("[modified]")
                 icon = "document-edit"
             fileitem.setIcon(0, icons.get(icon))
             fileitem.setText(0, filename)
             fileitem.setText(1, itemtext)
             fileitem.doc = document
     # select the item if there is only one
     if len(dirs) == 1 and len(list(dirs.values())[0]) == 1:
         fileitem.setSelected(True)
     self.tree.resizeColumnToContents(0)
     self.tree.resizeColumnToContents(1)
     self.updateButtons()
Пример #2
0
 def setDocuments(self, documents):
     """Display the specified documents in the list."""
     # clear the treewidget
     for d in self.tree.invisibleRootItem().takeChildren():
         for i in d.takeChildren():
             i.doc = None
     # group the documents by directory
     dirs = {}
     for d in documents:
         path = d.url().toLocalFile()
         if path:
             dirname, filename = os.path.split(path)
             dirs.setdefault(dirname, []).append((filename, d))
     for dirname in sorted(dirs, key=util.naturalsort):
         diritem = QTreeWidgetItem()
         diritem.setText(0, util.homify(dirname))
         self.tree.addTopLevelItem(diritem)
         diritem.setExpanded(True)
         diritem.setFlags(Qt.ItemIsEnabled)
         diritem.setIcon(0, icons.get('folder-open'))
         for filename, document in sorted(dirs[dirname],
                                           key=lambda item: util.naturalsort(item[0])):
             fileitem = QTreeWidgetItem()
             diritem.addChild(fileitem)
             if documentwatcher.DocumentWatcher.instance(document).isdeleted():
                 itemtext = _("[deleted]") 
                 icon = "dialog-error"
             else:
                 itemtext = _("[modified]")
                 icon = "document-edit"
             fileitem.setIcon(0, icons.get(icon))
             fileitem.setText(0, filename)
             fileitem.setText(1, itemtext)
             fileitem.doc = document
     # select the item if there is only one
     if len(dirs) == 1 and len(list(dirs.values())[0]) == 1:
         fileitem.setSelected(True)
     self.tree.resizeColumnToContents(0)
     self.tree.resizeColumnToContents(1)
     self.updateButtons()