Add file copy/move

This commit is contained in:
SuchMemeManySkill
2020-12-26 01:05:33 +01:00
parent a74a8814e1
commit ab5c5e799e
12 changed files with 138 additions and 43 deletions

View File

@@ -10,6 +10,10 @@
#include <string.h>
#include <mem/heap.h>
#include "../../tegraexplorer/tconf.h"
#include "../../err.h"
#include "../fscopy.h"
#include <libs/fatfs/ff.h>
#include "../../hid/hid.h"
MenuEntry_t topEntries[] = {
{.optionUnion = COLORTORGB(COLOR_GREEN) | SKIPBIT},
@@ -39,7 +43,7 @@ void FileExplorer(char *path){
int res = 0;
while (1){
topEntries[2].optionUnion = COLORTORGB(((TConf.explorerCopyMode != CMODE_None) ? COLOR_ORANGE : COLOR_GREY)) | SKIPBIT;
topEntries[2].optionUnion = (TConf.explorerCopyMode != CMODE_None) ? (COLORTORGB(COLOR_ORANGE)) : (COLORTORGB(COLOR_GREY) | SKIPBIT);
gfx_clearscreen();
gfx_printf("Loading...\r");
@@ -67,7 +71,32 @@ void FileExplorer(char *path){
char *oldPath = storedPath;
if (res < ARR_LEN(topEntries)) {
if (res == 2){
ErrCode_t res;
char *filename = CpyStr(strrchr(TConf.srcCopy, '/') + 1);
char *dst = CombinePaths(storedPath, filename);
if (!strcmp(TConf.srcCopy, dst))
res = newErrCode(TE_ERR_SAME_LOC);
else {
if (TConf.explorerCopyMode == CMODE_Move){
if ((res.err = f_rename(TConf.srcCopy, dst)))
res = newErrCode(res.err);
}
else {
gfx_clearscreen();
RESETCOLOR;
gfx_printf("Hold vol+/- to cancel\nCopying %s... ", filename);
res = FileCopy(TConf.srcCopy, dst, COPY_MODE_CANCEL | COPY_MODE_PRINT);
}
}
DrawError(res);
free(dst);
free(filename);
ResetCopyParams();
}
else if (res < ARR_LEN(topEntries)) {
if (!strcmp(storedPath, path)){
clearFileVector(&fileVec);
return;

View File

@@ -46,7 +46,7 @@ void CopyClipboard(char *path, FSEntry_t entry){
void MoveClipboard(char *path, FSEntry_t entry){
char *thing = CombinePaths(path, entry.name);
SetCopyParams(thing, CMODE_Copy);
SetCopyParams(thing, CMODE_Move);
free(thing);
}
@@ -56,33 +56,6 @@ MenuEntry_t DeleteEntries[] = {
};
void DeleteFile(char *path, FSEntry_t entry){
/*
u8 left = 0;
while (1){
gfx_con_setpos(384 + 16, 200 + 16 + 9 * 16);
SETCOLOR(COLOR_RED, COLOR_DARKGREY);
gfx_printf("Are you sure? ");
(left) ? SETCOLOR(COLOR_DARKGREY, COLOR_RED) : SETCOLOR(COLOR_RED, COLOR_DARKGREY);
gfx_printf("Yes");
RESETCOLOR;
gfx_printf(" ");
(!left) ? SETCOLOR(COLOR_DARKGREY, COLOR_YELLOW) : SETCOLOR(COLOR_YELLOW, COLOR_DARKGREY);
gfx_printf("No");
Input_t *input = hidWait();
if (input->a && left)
break;
else if (input->right)
left = 0;
else if (input->left)
left = 1;
else if (input->a || input->b)
return;
}
*/
gfx_con_setpos(384 + 16, 200 + 16 + 8 * 16);
SETCOLOR(COLOR_RED, COLOR_DARKGREY);
gfx_printf("Are you sure? ");