Changeset 2309891 in mainline for uspace/app
- Timestamp:
- 2025-12-14T17:15:57Z (3 months ago)
- Branches:
- master
- Children:
- 79b77ce
- Parents:
- 144fafd
- Location:
- uspace/app
- Files:
-
- 10 added
- 10 edited
-
copy/copy.c (added)
-
copy/doc/doxygroups.h (added)
-
copy/meson.build (added)
-
meson.build (modified) (1 diff)
-
nav/copy.c (added)
-
nav/copy.h (added)
-
nav/dlg/copydlg.c (added)
-
nav/dlg/copydlg.h (added)
-
nav/menu.c (modified) (3 diffs)
-
nav/menu.h (modified) (1 diff)
-
nav/meson.build (modified) (3 diffs)
-
nav/nav.c (modified) (6 diffs)
-
nav/nav.h (modified) (1 diff)
-
nav/panel.c (modified) (1 diff)
-
nav/panel.h (modified) (1 diff)
-
nav/test/dlg/copydlg.c (added)
-
nav/test/main.c (modified) (1 diff)
-
nav/types/copy.h (added)
-
nav/types/dlg/copydlg.h (added)
-
nav/types/menu.h (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
uspace/app/meson.build
r144fafd r2309891 35 35 'blkdump', 36 36 'calculator', 37 'copy', 37 38 'corecfg', 38 39 'cpptest', -
uspace/app/nav/menu.c
r144fafd r2309891 58 58 ui_menu_entry_t *medit; 59 59 ui_menu_entry_t *mverify; 60 ui_menu_entry_t *mcopy; 60 61 ui_menu_entry_t *mfsep; 61 62 ui_menu_entry_t *mexit; … … 104 105 ui_menu_entry_set_cb(mverify, nav_menu_file_verify, (void *) menu); 105 106 107 rc = ui_menu_entry_create(mfile, "~C~opy", "Ctrl-C", &mcopy); 108 if (rc != EOK) 109 goto error; 110 111 ui_menu_entry_set_cb(mcopy, nav_menu_file_copy, (void *) menu); 112 106 113 rc = ui_menu_entry_sep_create(mfile, &mfsep); 107 114 if (rc != EOK) … … 214 221 } 215 222 223 /** File / Copy menu entry selected. 224 * 225 * @param mentry Menu entry 226 * @param arg Argument (navigator_t *) 227 */ 228 void nav_menu_file_copy(ui_menu_entry_t *mentry, void *arg) 229 { 230 nav_menu_t *menu = (nav_menu_t *)arg; 231 232 if (menu->cb != NULL && menu->cb->file_copy != NULL) 233 menu->cb->file_copy(menu->cb_arg); 234 } 235 216 236 /** File / Exit menu entry selected. 217 237 * -
uspace/app/nav/menu.h
r144fafd r2309891 50 50 extern void nav_menu_file_edit(ui_menu_entry_t *, void *); 51 51 extern void nav_menu_file_verify(ui_menu_entry_t *, void *); 52 extern void nav_menu_file_copy(ui_menu_entry_t *, void *); 52 53 extern void nav_menu_file_exit(ui_menu_entry_t *, void *); 53 54 -
uspace/app/nav/meson.build
r144fafd r2309891 29 29 deps = [ 'fmgt', 'ui' ] 30 30 src = files( 31 'dlg/copydlg.c', 31 32 'dlg/ioerrdlg.c', 32 33 'dlg/newfiledlg.c', 33 34 'dlg/progress.c', 34 35 'dlg/verifydlg.c', 36 'copy.c', 35 37 'main.c', 36 38 'menu.c', … … 42 44 43 45 test_src = files( 46 'dlg/copydlg.c', 44 47 'dlg/ioerrdlg.c', 45 48 'dlg/newfiledlg.c', 46 49 'dlg/progress.c', 47 50 'dlg/verifydlg.c', 51 'copy.c', 48 52 'menu.c', 49 53 'nav.c', … … 51 55 'panel.c', 52 56 'verify.c', 57 'test/dlg/copydlg.c', 53 58 'test/dlg/ioerrdlg.c', 54 59 'test/dlg/newfiledlg.c', -
uspace/app/nav/nav.c
r144fafd r2309891 48 48 #include <ui/ui.h> 49 49 #include <ui/window.h> 50 #include "copy.h" 50 51 #include "dlg/ioerrdlg.h" 51 52 #include "menu.h" … … 69 70 static void navigator_file_edit(void *); 70 71 static void navigator_file_verify(void *); 72 static void navigator_file_copy(void *); 71 73 static void navigator_file_exit(void *); 72 74 … … 76 78 .file_edit = navigator_file_edit, 77 79 .file_verify = navigator_file_verify, 80 .file_copy = navigator_file_copy, 78 81 .file_exit = navigator_file_exit 79 82 }; … … 141 144 navigator_file_verify((void *)navigator); 142 145 break; 146 case KC_C: 147 navigator_file_copy((void *)navigator); 148 break; 143 149 case KC_Q: 144 150 ui_quit(navigator->ui); … … 325 331 for (i = 0; i < navigator_panels; i++) { 326 332 if (panel_is_active(navigator->panel[i])) 333 return navigator->panel[i]; 334 } 335 336 /* This should not happen */ 337 assert(false); 338 return NULL; 339 } 340 341 /** Get the currently inactive navigator panel. 342 * 343 * @param navigator Navigator 344 * @return Currently inactive panel 345 */ 346 panel_t *navigator_get_inactive_panel(navigator_t *navigator) 347 { 348 int i; 349 350 for (i = 0; i < navigator_panels; i++) { 351 if (!panel_is_active(navigator->panel[i])) 327 352 return navigator->panel[i]; 328 353 } … … 561 586 } 562 587 588 /** File / Copy menu entry selected */ 589 static void navigator_file_copy(void *arg) 590 { 591 navigator_t *navigator = (navigator_t *)arg; 592 593 ui_file_list_entry_t *entry; 594 ui_file_list_entry_attr_t attr; 595 fmgt_flist_t *flist; 596 panel_t *panel; 597 errno_t rc; 598 599 panel = navigator_get_active_panel(navigator); 600 entry = ui_file_list_get_cursor(panel->flist); 601 ui_file_list_entry_get_attr(entry, &attr); 602 603 rc = fmgt_flist_create(&flist); 604 if (rc != EOK) 605 return; 606 607 rc = fmgt_flist_append(flist, attr.name); 608 if (rc != EOK) { 609 fmgt_flist_destroy(flist); 610 return; 611 } 612 613 /* flist ownership transferred */ 614 navigator_copy_dlg(navigator, flist); 615 } 616 563 617 /** File / Exit menu entry selected */ 564 618 static void navigator_file_exit(void *arg) -
uspace/app/nav/nav.h
r144fafd r2309891 49 49 extern errno_t navigator_run(const char *); 50 50 extern panel_t *navigator_get_active_panel(navigator_t *); 51 extern panel_t *navigator_get_inactive_panel(navigator_t *); 51 52 extern void navigator_switch_panel(navigator_t *); 52 53 extern void navigator_refresh_panels(navigator_t *); -
uspace/app/nav/panel.c
r144fafd r2309891 365 365 } 366 366 367 /** Get current directory from panel. 368 * 369 * @param panel Panel 370 * @return Path to current directory or @c NULL if out of memory 371 */ 372 char *panel_get_dir(panel_t *panel) 373 { 374 return ui_file_list_get_dir(panel->flist); 375 } 376 367 377 /** Refresh panel contents. 368 378 * -
uspace/app/nav/panel.h
r144fafd r2309891 58 58 extern void panel_deactivate(panel_t *); 59 59 extern errno_t panel_read_dir(panel_t *, const char *); 60 extern char *panel_get_dir(panel_t *); 60 61 extern errno_t panel_refresh(panel_t *); 61 62 extern void panel_activate_req(panel_t *); -
uspace/app/nav/test/main.c
r144fafd r2309891 31 31 PCUT_INIT; 32 32 33 PCUT_IMPORT(copydlg); 33 34 PCUT_IMPORT(ioerrdlg); 34 35 PCUT_IMPORT(newfiledlg); -
uspace/app/nav/types/menu.h
r144fafd r2309891 51 51 /** File / Verify */ 52 52 void (*file_verify)(void *); 53 /** File / Copy */ 54 void (*file_copy)(void *); 53 55 /** File / Exit */ 54 56 void (*file_exit)(void *);
Note:
See TracChangeset
for help on using the changeset viewer.
