implemented issue#917

This commit is contained in:
zxkmmOnHaseeWSL 2023-04-26 12:54:07 +08:00
parent a54b94fe53
commit 59dfe5b50b
2 changed files with 11 additions and 2 deletions

View File

@ -267,14 +267,15 @@ void FileManagerView::on_refactor(NavigationView& nav) {
std::string destination_path = current_path.string(); std::string destination_path = current_path.string();
if (destination_path.back() != '/') if (destination_path.back() != '/')
destination_path += '/'; destination_path += '/';
destination_path = destination_path + buffer;
destination_path = get_selected_path().string().back() != '/' ? destination_path + buffer + extension_buffer : destination_path + buffer;
rename_file(get_selected_path(), destination_path); //rename the selected file rename_file(get_selected_path(), destination_path); //rename the selected file
auto selected_path = get_selected_path(); auto selected_path = get_selected_path();
auto extension = selected_path.extension().string(); auto extension = selected_path.extension().string();
if (!extension.empty() && selected_path.string().back() != '/' && extension.substr(1) == "C16") { if (!extension.empty() && selected_path.string().back() != '/' && extension.substr(1) == "C16") { //substr(1) is for ignore the dot
// Rename its partner ( C16 <-> TXT ) file. // Rename its partner ( C16 <-> TXT ) file.
auto partner_file_path = selected_path.string().substr(0, selected_path.string().size() - 4) + ".TXT"; auto partner_file_path = selected_path.string().substr(0, selected_path.string().size() - 4) + ".TXT";
destination_path = destination_path.substr(0, destination_path.size() - 4) + ".TXT"; destination_path = destination_path.substr(0, destination_path.size() - 4) + ".TXT";
@ -359,6 +360,13 @@ FileManagerView::FileManagerView(
button_refactor.on_select = [this, &nav](Button&) { button_refactor.on_select = [this, &nav](Button&) {
name_buffer = entry_list[menu_view.highlighted_index()].entry_path.filename().string().substr(0, max_filename_length); name_buffer = entry_list[menu_view.highlighted_index()].entry_path.filename().string().substr(0, max_filename_length);
size_t pos = name_buffer.find_last_of(".");
if (pos != std::string::npos) {
extension_buffer = name_buffer.substr(pos);
name_buffer = name_buffer.substr(0, pos);
}
on_refactor(nav); on_refactor(nav);
}; };

View File

@ -143,6 +143,7 @@ public:
private: private:
std::string name_buffer { }; std::string name_buffer { };
std::string extension_buffer { };
void refresh_widgets(const bool v); void refresh_widgets(const bool v);
void on_rename(NavigationView& nav); void on_rename(NavigationView& nav);