from pathlib import PurePosixPath
from time import sleep
from fortrace.core.qemu_monitor import QEMUMonitorSession
from fortrace.utility.applications.application import (
ParentNotifier,
)
from fortrace.utility.applications.file_manager.posix_file_manager import (
PosixFileManager,
)
[docs]
class Files(PosixFileManager):
"""Representation of GNOME's default file manager Files."""
def __init__(self, qs: QEMUMonitorSession, parent_notifier: ParentNotifier):
super().__init__("Files", qs, parent_notifier)
[docs]
def focus_on_item(self, name: str):
"""Focus a specific item.
Files support pattern matching, thus multiple files matching name can be selected.
Args:
name: name of the file(s) to put selection on
"""
self._qs.send_key_combination("ctrl-s")
sleep(0.5) # window needs some time to come up
self._qs.send_text(name, True)
# TODO: return list of focused item(s), maybe through guestfish with active mount of filesystem?
[docs]
def bookmark_current_location(self):
self._qs.send_key_combination("ctrl-d")
[docs]
def create_folder(self, name: str):
self._qs.send_key_combination("shift-ctrl-n")
self._qs.send_text(name, True)
[docs]
def empty_trash(self):
current_location = self._current_location
self.browse_to_directory(PurePosixPath("trash:"))
self._qs.send_key_combination("ctrl-a")
self._qs.send_key_combination("del")
self._qs.send_key_combination("ret")
self.browse_to_directory(current_location)
[docs]
def search(self, query: str):
self._qs.send_key_combination("ctrl-f")
self._qs.send_text(query)
[docs]
def toggle_show_hidden(self):
self._qs.send_key_combination("ctrl-h")
self._show_hidden = ~self._show_hidden