Merge pull request #1387 from davvid/remote-dialog
[git-cola.git] / cola / widgets / filetree.py
blob67ff8c7050d5f088c1111cc2a7688b2f56f7c045
1 from qtpy import QtCore
2 from qtpy import QtWidgets
4 from .. import icons
5 from . import standard
8 class FileTree(standard.TreeWidget):
9 def __init__(self, parent=None):
10 standard.TreeWidget.__init__(self, parent=parent)
11 self.setSelectionMode(self.ExtendedSelection)
12 self.setHeaderHidden(True)
14 def set_filenames(self, filenames, select=False):
15 self.clear()
16 if not filenames:
17 return
18 items = []
19 from_filename = icons.from_filename
20 for filename in filenames:
21 icon = from_filename(filename)
22 item = QtWidgets.QTreeWidgetItem()
23 item.setIcon(0, icon)
24 item.setText(0, filename)
25 item.setData(0, QtCore.Qt.UserRole, filename)
26 items.append(item)
27 self.addTopLevelItems(items)
28 if select and items:
29 items[0].setSelected(True)
31 def has_selection(self):
32 return bool(self.selectedItems())
34 def selected_filenames(self):
35 items = self.selectedItems()
36 if not items:
37 return []
38 return [filename_from_item(i) for i in items]
41 def filename_from_item(item):
42 return item.data(0, QtCore.Qt.UserRole)