71 lines
2.3 KiB
Python
71 lines
2.3 KiB
Python
# Python imports
|
|
|
|
# Lib imports
|
|
|
|
# Application imports
|
|
|
|
|
|
|
|
|
|
class CRUDMixin:
|
|
"""docstring for CRUDMixin"""
|
|
|
|
def move_files(self, files, target):
|
|
self.handle_files(files, "move", target)
|
|
|
|
def paste_files(self):
|
|
state = event_system.emit_and_await("get_current_state")
|
|
target = f"{state.tab.get_current_directory()}"
|
|
|
|
if self._to_copy_files:
|
|
self.handle_files(self._to_copy_files, "copy", target)
|
|
elif self._to_cut_files:
|
|
self.handle_files(self._to_cut_files, "move", target)
|
|
|
|
def create_files(self):
|
|
fname_field = self._builder.get_object("new_fname_field")
|
|
cancel_creation = event_system.emit_and_await("show_new_file_menu", fname_field)
|
|
|
|
if cancel_creation:
|
|
event_system.emit("hide_new_file_menu")
|
|
return
|
|
|
|
file_name = fname_field.get_text().strip()
|
|
type = self._builder.get_object("new_file_toggle_type").get_state()
|
|
state = event_system.emit_and_await("get_current_state")
|
|
target = f"{state.tab.get_current_directory()}"
|
|
|
|
if file_name:
|
|
path = f"{target}/{file_name}"
|
|
|
|
if type == True: # Create File
|
|
self.handle_files([path], "create_file")
|
|
else: # Create Folder
|
|
self.handle_files([path], "create_dir")
|
|
|
|
event_system.emit("hide_new_file_menu")
|
|
|
|
def rename_files(self):
|
|
rename_label = self._builder.get_object("file_to_rename_label")
|
|
rename_input = self._builder.get_object("rename_fname")
|
|
state = event_system.emit_and_await("get_current_state")
|
|
|
|
for uri in state.uris:
|
|
entry = uri.split("/")[-1]
|
|
rename_label.set_label(entry)
|
|
rename_input.set_text(entry)
|
|
|
|
response = event_system.emit_and_await("show_rename_file_menu", rename_input)
|
|
if response == "skip_edit":
|
|
continue
|
|
if response == "cancel_edit":
|
|
break
|
|
|
|
rname_to = rename_input.get_text().strip()
|
|
if rname_to:
|
|
target = f"{state.tab.get_current_directory()}/{rname_to}"
|
|
self.handle_files([uri], "rename", target)
|
|
|
|
event_system.emit("hide_rename_file_menu")
|
|
event_system.emit_and_await("get_selected_files").clear()
|