maint: prefer functions over methods
[git-cola.git] / cola / widgets / filetree.py
blobf91ee038e7ee3d9a70696c727ca9f5d1e7edbe68
1 from __future__ import absolute_import, division, unicode_literals
3 from qtpy import QtCore
4 from qtpy import QtWidgets
6 from .. import icons
7 from . import standard
10 class FileTree(standard.TreeWidget):
12 def __init__(self, parent=None):
13 standard.TreeWidget.__init__(self, parent=parent)
14 self.setSelectionMode(self.ExtendedSelection)
15 self.setHeaderHidden(True)
17 def set_filenames(self, filenames, select=False):
18 self.clear()
19 if not filenames:
20 return
21 items = []
22 from_filename = icons.from_filename
23 for filename in filenames:
24 icon = from_filename(filename)
25 item = QtWidgets.QTreeWidgetItem()
26 item.setIcon(0, icon)
27 item.setText(0, filename)
28 item.setData(0, QtCore.Qt.UserRole, filename)
29 items.append(item)
30 self.addTopLevelItems(items)
31 if select and items:
32 items[0].setSelected(True)
34 def has_selection(self):
35 return bool(self.selectedItems())
37 def selected_filenames(self):
38 items = self.selectedItems()
39 if not items:
40 return []
41 return [filename_from_item(i) for i in items]
44 def filename_from_item(item):
45 return item.data(0, QtCore.Qt.UserRole)