def _on_cmd_login(self, usr, psw, act): try: get_ftp().login(usr, psw, act) root_dir = get_ftp().print_current_dir() root_fn = FileNode(name=root_dir, type=FILE_TYPE_DIR) get_directory_tree().set_root(root_fn) except Exception: return "Login failed"
def _on_dt_add_node(self, widget, path): path = tree_dir_string_to_path(path) dir_tree = get_directory_tree() cur_node = dir_tree.get_cur_node() node = dir_tree.get_node(path) if dir_tree.is_under_current_dir(node): index = cur_node.index_child(node) self.get_model().insert(index, node.get_filenode().to_list())
def common_path_to_dir_path(cp): iter = get_directory_tree()._root dp = [] for ind in cp: ch = iter.get_nth_child(ind) d_ind = index_dir_child(ch) dp.append(d_ind) iter = ch return tuple(dp)
def dir_path_to_common_path(dp): iter = get_directory_tree()._root cp = [] for ind in dp: ch = get_nth_dir_child(iter, ind) c_ind = iter.index_child(ch) cp.append(c_ind) iter = ch return tuple(cp)
def _on_dt_remove_node(self, widget, path): path = tree_dir_string_to_path(path) dir_tree = get_directory_tree() cur_node = dir_tree.get_cur_node() node = dir_tree.get_node(path) if dir_tree.is_under_current_dir(node): index = cur_node.index_child(node) model = self.get_model() model.remove(model.get_iter((index,))) elif dir_tree.is_on_current_dir_path(node): self.get_model().clear()
def _on_dt_curnode_changed(self, widget, path): path = tree_dir_string_to_path(path) dir_tree = get_directory_tree() cur_node = dir_tree.get_node(path) file_type = cur_node.get_filenode().get_type() if file_type == FILE_TYPE_DIR: model = self.get_model() model.clear() for ind in range(0, cur_node.get_n_children()): fn = cur_node.get_nth_child(ind).get_filenode() model.append(fn.to_list()) elif file_type == FILE_TYPE_FILE: pass
def _on_dt_change_node(self, widget, path): path = tree_dir_string_to_path(path) dir_tree = get_directory_tree() cur_node = dir_tree.get_cur_node() node = dir_tree.get_node(path) if dir_tree.is_under_current_dir(node): index = cur_node.index_child(node) model = self.get_model() ch_iter = model.get_iter((index,)) val_list = node.get_filenode().to_list() for ind in range(0, len(val_list)): model.set_value(ch_iter, ind, val_list[ind]) elif dir_tree.is_on_current_dir_path(node): self.get_model().clear()
def __init__(self): gtk.TreeView.__init__(self) self._set_up_columns() self.set_size_request(env.FILE_VIEW_WIDTH, env.FILE_VIEW_HEIGHT) self.set_rules_hint(True) self.show_all() dir_tree = get_directory_tree() dir_tree.connect("rf-directory-tree-add-node", self._on_dt_add_node) dir_tree.connect("rf-directory-tree-remove-node", self._on_dt_remove_node) dir_tree.connect("rf-directory-tree-change-node", self._on_dt_change_node) dir_tree.connect("rf-directory-tree-current-node-changed", self._on_dt_curnode_changed) self.connect("row-activated", self._on_row_activate)
def __init__(self): gobject.GObject.__init__(self) self.ftp = get_ftp() self.win = get_window() self._load_up_menubar() self._load_up_file_view() self._load_up_directory_view() self._load_up_console_view() self._load_up_resp_bar() self._set_up_layout() self.dir_tree = get_directory_tree() # Connect signals self.win.connect("destroy", lambda w: self.exit()) self.ftp.connect("rf-ftp-response", self._on_ftp_response) self.ftp.connect("rf-ftp-send-cmd", self._on_ftp_send_cmd) self.win.show()
def _on_row_activate(self, widget, path, column): path = tuple(list(get_directory_tree().get_cur_node().get_path_tuple()) + list(path)) node = get_directory_tree().get_node(path) if node.get_filenode().get_type() == FILE_TYPE_DIR: get_directory_tree().set_cur_node(node)
def _on_cmd_cdup(self): try: get_directory_tree().change_into_parent() except exp.DirectoryTreeChangeIntoParentFailed as e: return str(e)
def _on_cmd_cd(self, dir): try: get_directory_tree().change_into_child(dir) except exp.DirectoryTreeChangeIntoChildFailed as e: return str(e)