Archive: fix delete from favorites tab (#752)

* archive_delete_file vargs, fix wrong path when deleting item from favorites tab
* use string_t for archive vargs funcs
* favorites manual sorting

Co-authored-by: あく <alleteam@gmail.com>
This commit is contained in:
its your bedtime
2021-10-12 16:09:34 +03:00
committed by GitHub
parent b85a50f912
commit 5cb5d15376
15 changed files with 483 additions and 351 deletions

View File

@@ -76,25 +76,32 @@ bool archive_scene_browser_on_event(void* context, SceneManagerEvent event) {
if(favorites) {
archive_favorites_delete(name);
archive_file_array_rm_selected(browser);
archive_show_file_menu(browser, false);
} else if(known_app) {
if(archive_is_favorite("%s/%s", path, name)) {
archive_favorites_delete("%s/%s", path, name);
} else {
archive_file_append(ARCHIVE_FAV_PATH, "%s/%s\r\n", path, name);
archive_file_append(ARCHIVE_FAV_PATH, "%s/%s\n", path, name);
}
archive_show_file_menu(browser, false);
}
archive_show_file_menu(browser, false);
consumed = true;
break;
case ArchiveBrowserEventFileMenuRename:
if(known_app && !favorites) {
case ArchiveBrowserEventFileMenuAction:
if(favorites) {
browser->callback(ArchiveBrowserEventEnterFavMove, browser->context);
} else if(known_app) {
scene_manager_next_scene(archive->scene_manager, ArchiveAppSceneRename);
}
consumed = true;
break;
case ArchiveBrowserEventFileMenuDelete:
archive_delete_file(browser, browser->path, selected->name);
if(favorites) {
archive_delete_file(browser, "%s", name);
} else {
archive_delete_file(browser, "%s/%s", path, name);
}
archive_show_file_menu(browser, false);
consumed = true;
break;
@@ -102,6 +109,30 @@ bool archive_scene_browser_on_event(void* context, SceneManagerEvent event) {
archive_enter_dir(browser, selected->name);
consumed = true;
break;
case ArchiveBrowserEventFavMoveUp:
archive_file_array_swap(browser, 1);
consumed = true;
break;
case ArchiveBrowserEventFavMoveDown:
archive_file_array_swap(browser, -1);
consumed = true;
break;
case ArchiveBrowserEventEnterFavMove:
strlcpy(archive->text_store, archive_get_name(browser), MAX_NAME_LEN);
archive_show_file_menu(browser, false);
archive_favorites_move_mode(archive->browser, true);
consumed = true;
break;
case ArchiveBrowserEventExitFavMove:
archive_update_focus(browser, archive->text_store);
archive_favorites_move_mode(archive->browser, false);
consumed = true;
break;
case ArchiveBrowserEventSaveFavMove:
archive_favorites_move_mode(archive->browser, false);
archive_favorites_save(archive->browser);
consumed = true;
break;
case ArchiveBrowserEventExit:
if(archive_get_depth(browser)) {