Changeset 00d26202 in mainline
- Timestamp:
- 2026-02-13T11:54:37Z (7 days ago)
- Branches:
- master
- Children:
- a4e4e29
- Parents:
- cd0dce3
- git-author:
- Jiri Svoboda <jiri@…> (2026-02-13 18:54:24)
- git-committer:
- Jiri Svoboda <jiri@…> (2026-02-13 11:54:37)
- Location:
- uspace
- Files:
-
- 12 added
- 14 edited
-
app/delete/delete.c (added)
-
app/delete/doc/doxygroups.h (added)
-
app/delete/meson.build (added)
-
app/meson.build (modified) (1 diff)
-
app/nav/delete.c (added)
-
app/nav/delete.h (added)
-
app/nav/dlg/copydlg.c (modified) (1 diff)
-
app/nav/dlg/deletedlg.c (added)
-
app/nav/dlg/deletedlg.h (added)
-
app/nav/dlg/progress.c (modified) (5 diffs)
-
app/nav/dlg/verifydlg.c (modified) (7 diffs)
-
app/nav/menu.c (modified) (3 diffs)
-
app/nav/menu.h (modified) (1 diff)
-
app/nav/meson.build (modified) (5 diffs)
-
app/nav/nav.c (modified) (5 diffs)
-
app/nav/test/dlg/deletedlg.c (added)
-
app/nav/test/main.c (modified) (1 diff)
-
app/nav/types/delete.h (added)
-
app/nav/types/dlg/deletedlg.h (added)
-
app/nav/types/menu.h (modified) (1 diff)
-
lib/fmgt/include/fmgt.h (modified) (1 diff)
-
lib/fmgt/include/fmgt/delete.h (added)
-
lib/fmgt/include/types/fmgt.h (modified) (2 diffs)
-
lib/fmgt/meson.build (modified) (1 diff)
-
lib/fmgt/src/delete.c (added)
-
lib/fmgt/src/fmgt.c (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
uspace/app/meson.build
rcd0dce3 r00d26202 39 39 'cpptest', 40 40 'date', 41 'delete', 41 42 'devctl', 42 43 'df', -
uspace/app/nav/dlg/copydlg.c
rcd0dce3 r00d26202 293 293 * 294 294 * @param dialog Copy dialog 295 * @param cb New filedialog callbacks295 * @param cb Copy dialog callbacks 296 296 * @param arg Callback argument 297 297 */ -
uspace/app/nav/dlg/progress.c
rcd0dce3 r00d26202 1 1 /* 2 * Copyright (c) 202 5Jiri Svoboda2 * Copyright (c) 2026 Jiri Svoboda 3 3 * All rights reserved. 4 4 * … … 128 128 goto error; 129 129 130 rc = ui_label_create(ui_res, " XXX of XXX (XXX%)", &label);130 rc = ui_label_create(ui_res, "", &label); 131 131 if (rc != EOK) 132 132 goto error; … … 155 155 label = NULL; 156 156 157 rc = ui_label_create(ui_res, " XXX of XXX (XXX%)", &label);157 rc = ui_label_create(ui_res, "", &label); 158 158 if (rc != EOK) 159 159 goto error; … … 277 277 errno_t rc; 278 278 279 snprintf(buf, sizeof(buf), "Total: %s files, %s.", 280 progress->total_procf, progress->total_procb); 279 if (progress->file_progress) { 280 snprintf(buf, sizeof(buf), "Total: %s files, %s.", 281 progress->total_procf, progress->total_procb); 282 } else { 283 snprintf(buf, sizeof(buf), "Total: %s files.", 284 progress->total_procf); 285 } 281 286 282 287 rc = ui_label_set_text(dialog->ltotal_prog, buf); … … 288 293 return rc; 289 294 290 snprintf(buf, sizeof(buf), "Current file: %s of %s (%s done).", 291 progress->curf_procb, progress->curf_totalb, 292 progress->curf_percent); 293 294 rc = ui_label_set_text(dialog->lcurf_prog, buf); 295 if (rc != EOK) 296 return rc; 297 298 rc = ui_label_paint(dialog->lcurf_prog); 299 if (rc != EOK) 300 return rc; 295 if (progress->file_progress) { 296 snprintf(buf, sizeof(buf), "Current file: %s of %s (%s done).", 297 progress->curf_procb, progress->curf_totalb, 298 progress->curf_percent); 299 300 rc = ui_label_set_text(dialog->lcurf_prog, buf); 301 if (rc != EOK) 302 return rc; 303 304 rc = ui_label_paint(dialog->lcurf_prog); 305 if (rc != EOK) 306 return rc; 307 } 301 308 302 309 return EOK; -
uspace/app/nav/dlg/verifydlg.c
rcd0dce3 r00d26202 1 1 /* 2 * Copyright (c) 202 5Jiri Svoboda2 * Copyright (c) 2026 Jiri Svoboda 3 3 * All rights reserved. 4 4 * … … 249 249 } 250 250 251 /** Destroy new filedialog.252 * 253 * @param dialog New filedialog or @c NULL251 /** Destroy verify dialog. 252 * 253 * @param dialog Verify dialog or @c NULL 254 254 */ 255 255 void verify_dlg_destroy(verify_dlg_t *dialog) … … 262 262 } 263 263 264 /** Set new filedialog callback.265 * 266 * @param dialog new filedialog267 * @param cb New filedialog callbacks264 /** Set verify dialog callback. 265 * 266 * @param dialog Verify dialog 267 * @param cb Verify dialog callbacks 268 268 * @param arg Callback argument 269 269 */ … … 275 275 } 276 276 277 /** New filedialog window close handler.277 /** Verify dialog window close handler. 278 278 * 279 279 * @param window Window … … 290 290 } 291 291 292 /** New filedialog window keyboard event handler.292 /** Verify dialog window keyboard event handler. 293 293 * 294 294 * @param window Window … … 321 321 } 322 322 323 /** New filedialog OK button click handler.323 /** Verify dialog OK button click handler. 324 324 * 325 325 * @param pbutton Push button … … 335 335 } 336 336 337 /** New filedialog cancel button click handler.337 /** Verify dialog cancel button click handler. 338 338 * 339 339 * @param pbutton Push button -
uspace/app/nav/menu.c
rcd0dce3 r00d26202 61 61 ui_menu_entry_t *mcopy; 62 62 ui_menu_entry_t *mmove; 63 ui_menu_entry_t *mdelete; 63 64 ui_menu_entry_t *mfsep; 64 65 ui_menu_entry_t *mexit; … … 125 126 ui_menu_entry_set_cb(mmove, nav_menu_file_move, (void *) menu); 126 127 128 rc = ui_menu_entry_create(mfile, "~D~elete", "Ctrl-D", &mdelete); 129 if (rc != EOK) 130 goto error; 131 132 ui_menu_entry_set_cb(mdelete, nav_menu_file_delete, (void *) menu); 133 127 134 rc = ui_menu_entry_sep_create(mfile, &mfsep); 128 135 if (rc != EOK) … … 274 281 } 275 282 283 /** File / Delete menu entry selected. 284 * 285 * @param mentry Menu entry 286 * @param arg Argument (navigator_t *) 287 */ 288 void nav_menu_file_delete(ui_menu_entry_t *mentry, void *arg) 289 { 290 nav_menu_t *menu = (nav_menu_t *)arg; 291 292 if (menu->cb != NULL && menu->cb->file_delete != NULL) 293 menu->cb->file_delete(menu->cb_arg); 294 } 295 276 296 /** File / Exit menu entry selected. 277 297 * -
uspace/app/nav/menu.h
rcd0dce3 r00d26202 53 53 extern void nav_menu_file_copy(ui_menu_entry_t *, void *); 54 54 extern void nav_menu_file_move(ui_menu_entry_t *, void *); 55 extern void nav_menu_file_delete(ui_menu_entry_t *, void *); 55 56 extern void nav_menu_file_exit(ui_menu_entry_t *, void *); 56 57 -
uspace/app/nav/meson.build
rcd0dce3 r00d26202 30 30 src = files( 31 31 'dlg/copydlg.c', 32 'dlg/deletedlg.c', 32 33 'dlg/existsdlg.c', 33 34 'dlg/ioerrdlg.c', … … 38 39 'dlg/verifydlg.c', 39 40 'copy.c', 41 'delete.c', 40 42 'main.c', 41 43 'menu.c', … … 50 52 test_src = files( 51 53 'dlg/copydlg.c', 54 'dlg/deletedlg.c', 52 55 'dlg/existsdlg.c', 53 56 'dlg/ioerrdlg.c', … … 58 61 'dlg/verifydlg.c', 59 62 'copy.c', 63 'delete.c', 60 64 'menu.c', 61 65 'move.c', … … 66 70 'verify.c', 67 71 'test/dlg/copydlg.c', 72 'test/dlg/deletedlg.c', 68 73 'test/dlg/existsdlg.c', 69 74 'test/dlg/ioerrdlg.c', -
uspace/app/nav/nav.c
rcd0dce3 r00d26202 48 48 #include <ui/ui.h> 49 49 #include <ui/window.h> 50 50 51 #include "copy.h" 52 #include "delete.h" 51 53 #include "dlg/existsdlg.h" 52 54 #include "dlg/ioerrdlg.h" … … 76 78 static void navigator_file_copy(void *); 77 79 static void navigator_file_move(void *); 80 static void navigator_file_delete(void *); 78 81 static void navigator_file_exit(void *); 79 82 … … 86 89 .file_copy = navigator_file_copy, 87 90 .file_move = navigator_file_move, 91 .file_delete = navigator_file_delete, 88 92 .file_exit = navigator_file_exit 89 93 }; … … 172 176 navigator_file_move((void *)navigator); 173 177 break; 178 case KC_D: 179 navigator_file_delete((void *)navigator); 180 break; 174 181 case KC_Q: 175 182 ui_quit(navigator->ui); … … 679 686 /* flist ownership transferred */ 680 687 navigator_move_dlg(navigator, flist); 688 } 689 690 /** File / Delete menu entry selected */ 691 static void navigator_file_delete(void *arg) 692 { 693 navigator_t *navigator = (navigator_t *)arg; 694 695 ui_file_list_entry_t *entry; 696 ui_file_list_entry_attr_t attr; 697 fmgt_flist_t *flist; 698 panel_t *panel; 699 errno_t rc; 700 701 panel = navigator_get_active_panel(navigator); 702 entry = ui_file_list_get_cursor(panel->flist); 703 ui_file_list_entry_get_attr(entry, &attr); 704 705 rc = fmgt_flist_create(&flist); 706 if (rc != EOK) 707 return; 708 709 rc = fmgt_flist_append(flist, attr.name); 710 if (rc != EOK) { 711 fmgt_flist_destroy(flist); 712 return; 713 } 714 715 /* flist ownership transferred */ 716 navigator_delete_dlg(navigator, flist); 681 717 } 682 718 -
uspace/app/nav/test/main.c
rcd0dce3 r00d26202 32 32 33 33 PCUT_IMPORT(copydlg); 34 PCUT_IMPORT(deletedlg); 34 35 PCUT_IMPORT(existsdlg); 35 36 PCUT_IMPORT(ioerrdlg); -
uspace/app/nav/types/menu.h
rcd0dce3 r00d26202 57 57 /** File / Move */ 58 58 void (*file_move)(void *); 59 /** File / Delete */ 60 void (*file_delete)(void *); 59 61 /** File / Exit */ 60 62 void (*file_exit)(void *); -
uspace/lib/fmgt/include/fmgt.h
rcd0dce3 r00d26202 43 43 #include <stdint.h> 44 44 #include "fmgt/copy.h" 45 #include "fmgt/delete.h" 45 46 #include "fmgt/flist.h" 46 47 #include "fmgt/move.h" -
uspace/lib/fmgt/include/types/fmgt.h
rcd0dce3 r00d26202 48 48 /** File management progress update */ 49 49 typedef struct { 50 /** Progress on individual files is valid. */ 51 bool file_progress; 50 52 /** Current file processed bytes */ 51 53 char curf_procb[CAPA_BLOCKS_BUFSIZE]; … … 139 141 /** Post an immediate initial progress update */ 140 142 bool do_init_update; 143 /** Report file progress. */ 144 bool file_progress; 141 145 } fmgt_t; 142 146 -
uspace/lib/fmgt/meson.build
rcd0dce3 r00d26202 29 29 src = files( 30 30 'src/copy.c', 31 'src/delete.c', 31 32 'src/flist.c', 32 33 'src/fmgt.c', -
uspace/lib/fmgt/src/fmgt.c
rcd0dce3 r00d26202 117 117 fmgt->curf_totalb = 0; 118 118 fmgt->curf_progr = false; 119 120 fmgt->file_progress = false; 119 121 } 120 122 … … 131 133 fmgt->curf_procb = 0; 132 134 fmgt->curf_totalb = 0; 135 136 /* 137 * This function is only called from operations that need to 138 * display byte progress within a file. Set a flag so that 139 * we will report file progress. 140 */ 141 fmgt->file_progress = true; 133 142 134 143 rc = vfs_stat_path(fname, &stat); … … 171 180 percent = 100; 172 181 173 capa_blocks_format_buf(fmgt->curf_procb, 1, progress->curf_procb, 174 sizeof(progress->curf_procb)); 175 capa_blocks_format_buf(fmgt->curf_totalb, 1, progress->curf_totalb, 176 sizeof(progress->curf_totalb)); 177 snprintf(progress->curf_percent, sizeof(progress->curf_percent), "%u%%", 178 percent); 179 snprintf(progress->total_procf, sizeof(progress->total_procf), "%u", 180 fmgt->total_procf); 181 capa_blocks_format_buf(fmgt->total_procb, 1, progress->total_procb, 182 sizeof(progress->total_procb)); 182 progress->file_progress = fmgt->file_progress; 183 184 if (fmgt->file_progress) { 185 capa_blocks_format_buf(fmgt->curf_procb, 1, 186 progress->curf_procb, sizeof(progress->curf_procb)); 187 capa_blocks_format_buf(fmgt->curf_totalb, 1, 188 progress->curf_totalb, sizeof(progress->curf_totalb)); 189 snprintf(progress->curf_percent, sizeof(progress->curf_percent), 190 "%u%%", percent); 191 capa_blocks_format_buf(fmgt->total_procb, 1, 192 progress->total_procb, sizeof(progress->total_procb)); 193 } else { 194 memset(progress->curf_procb, 0, sizeof(progress->curf_procb)); 195 memset(progress->curf_totalb, 0, sizeof(progress->curf_totalb)); 196 memset(progress->curf_percent, 0, 197 sizeof(progress->curf_percent)); 198 memset(progress->total_procb, 0, sizeof(progress->total_procb)); 199 } 200 201 snprintf(progress->total_procf, sizeof(progress->total_procf), 202 "%u", fmgt->total_procf); 183 203 } 184 204
Note:
See TracChangeset
for help on using the changeset viewer.
