MCPcopy Create free account
hub / github.com/AnonCatalyst/Odinova / TaggedFileSystemModel

Class TaggedFileSystemModel

src/windows/docs_window.py:23–52  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

21
22
23class TaggedFileSystemModel(QFileSystemModel):
24 def __init__(self, parent=None):
25 super().__init__(parent)
26 self.tagged_items = set()
27
28 def flags(self, index):
29 return super().flags(index) | Qt.ItemFlag.ItemIsUserCheckable
30
31 def data(self, index, role):
32 if role == Qt.ItemDataRole.CheckStateRole and self.filePath(index) in self.tagged_items:
33 return Qt.CheckState.Checked
34 return super().data(index, role)
35
36 def set_tagged(self, index, tagged):
37 file_path = self.filePath(index)
38 if tagged:
39 self.tagged_items.add(file_path)
40 else:
41 self.tagged_items.discard(file_path)
42 self.dataChanged.emit(index, index, [Qt.ItemDataRole.CheckStateRole])
43
44 def create_folder(self, path, name):
45 self.untag_all()
46 return super().mkdir(path, name)
47
48
49 def untag_all(self):
50 if self.tagged_items:
51 self.tagged_items.clear()
52 self.dataChanged.emit(self.index(0, 0), self.index(self.rowCount() - 1, 0), [Qt.ItemDataRole.CheckStateRole])
53
54
55class DocumentsWindow(QWidget):

Callers 1

setup_uiMethod · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected