FilesWorkspace
The Files tab of the Trove board: the checkout of the project read-only, and each lane worktree editable.
| Inherits | QWidget |
| Group | libtrove |
In the namespace octomy::trove::workspace. Declared in src/libs/libtrove/trove/workspace/FilesWorkspace.hpp.
Detailed description

trove-spec-workspace §SW-6 and §SW-10.3. The tab revives FileManager, the file browser of the hive, with its eight views. A switcher above it names the folders of the project, from FilesRootModel:
- The checkout, first. It is read-only, because Trove made it and can delete it when the project is discarded (§PR-6.4). The tree refuses every write, and a file opens in a preview.
- Each worktree that
worktree.listreturns. It is editable, because the changes of a session are there. A text or code file opens in the embedded editor, whose source pane is a WidgetCodeEditor. An image, a media file, a PDF, a font or an archive opens in its viewer.
Editability follows the folder, not a global switch: FileManager's setReadOnly() applies FilesRoot::isWritable() each time the switcher changes. A change of folder saves and closes the open files first.
The tab reads the worktrees with the worktree.list task object on a worker thread, because the task starts git. It reads them when the checkout changes, when the tab is shown, and when the operator presses the reload button. It does not poll git.
A tab that cannot work says so
§SW-8: without a sentient and a node identity Trove cannot run, and a project with no checkout has no files. The tab then shows unavailableReason(), which names the way out, in place of an empty browser.
See also FilesRootModel, FileManager, SpecWorkspace, TroveProjectActivity.