tests: use pytest fixtures in browse_model_test
[git-cola.git] / cola / widgets / filetree.py
blob47d6d1c3723a03b52bf0f1f3243146f23600d7ed
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 # pylint: disable=too-many-ancestors
11 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)