mirror of
https://github.com/KolibriOS/kolibrios.git
synced 2024-11-28 11:43:09 +03:00
OpenDialog - restore the previous open directory if it fails to read data for a new directory
git-svn-id: svn://kolibrios.org@2144 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
parent
1edac8b45a
commit
1895796058
@ -68,6 +68,10 @@ load_libraries l_libs_start,end_l_libs
|
|||||||
mov eax,[unpack_DeflateUnpack2]
|
mov eax,[unpack_DeflateUnpack2]
|
||||||
mov [deflate_unpack],eax
|
mov [deflate_unpack],eax
|
||||||
|
|
||||||
|
mov esi,start_pach
|
||||||
|
mov edi,previous_dir_path
|
||||||
|
call copy_dir_name.1
|
||||||
|
|
||||||
call load_root_directory
|
call load_root_directory
|
||||||
call load_start_directory
|
call load_start_directory
|
||||||
call sort_directory
|
call sort_directory
|
||||||
@ -351,7 +355,7 @@ key_ASCII:
|
|||||||
; mcall 66,1,1
|
; mcall 66,1,1
|
||||||
|
|
||||||
; xor eax,eax
|
; xor eax,eax
|
||||||
; mov esi,dir_pach
|
; mov esi,dir_path
|
||||||
; cld
|
; cld
|
||||||
;@@:
|
;@@:
|
||||||
; lodsb
|
; lodsb
|
||||||
@ -375,8 +379,8 @@ user_selected_name_action:
|
|||||||
ret
|
ret
|
||||||
@@:
|
@@:
|
||||||
add eax,16 ;12
|
add eax,16 ;12
|
||||||
;copy_path user_selected_name,dir_pach,eax,0
|
;copy_path user_selected_name,dir_path,eax,0
|
||||||
mov esi,dir_pach
|
mov esi,dir_path
|
||||||
mov edi,eax
|
mov edi,eax
|
||||||
call copy_dir_name
|
call copy_dir_name
|
||||||
mov [edi-1],byte '/'
|
mov [edi-1],byte '/'
|
||||||
@ -630,7 +634,7 @@ thread_start:
|
|||||||
cmp al,5
|
cmp al,5
|
||||||
jne @f
|
jne @f
|
||||||
mov [N_error],load_directory_error_type
|
mov [N_error],load_directory_error_type
|
||||||
mov [error_path],dir_pach
|
mov [error_path],dir_path
|
||||||
jmp .error_type
|
jmp .error_type
|
||||||
@@:
|
@@:
|
||||||
cmp al,6
|
cmp al,6
|
||||||
@ -895,7 +899,7 @@ analyse_out_menu_1:
|
|||||||
dec eax
|
dec eax
|
||||||
imul esi,eax,10
|
imul esi,eax,10
|
||||||
add esi,retrieved_devices_table
|
add esi,retrieved_devices_table
|
||||||
mov edi,dir_pach
|
mov edi,dir_path
|
||||||
call copy_dir_name
|
call copy_dir_name
|
||||||
call load_next_dir.1
|
call load_next_dir.1
|
||||||
jmp still
|
jmp still
|
||||||
@ -984,7 +988,7 @@ load_start_directory:
|
|||||||
.1:
|
.1:
|
||||||
mov esi,start_pach
|
mov esi,start_pach
|
||||||
.2:
|
.2:
|
||||||
mov edi,dir_pach
|
mov edi,dir_path
|
||||||
call copy_dir_name
|
call copy_dir_name
|
||||||
|
|
||||||
; call load_directory
|
; call load_directory
|
||||||
@ -1011,7 +1015,7 @@ load_next_dir:
|
|||||||
cmp [ebx+2],byte 0
|
cmp [ebx+2],byte 0
|
||||||
je .exit_dir
|
je .exit_dir
|
||||||
@@:
|
@@:
|
||||||
mov esi,dir_pach
|
mov esi,dir_path
|
||||||
call copy_dir_path
|
call copy_dir_path
|
||||||
|
|
||||||
@@:
|
@@:
|
||||||
@ -1037,7 +1041,7 @@ load_next_dir:
|
|||||||
call draw_draw_file_browser1
|
call draw_draw_file_browser1
|
||||||
ret
|
ret
|
||||||
.exit_dir:
|
.exit_dir:
|
||||||
mov esi,dir_pach
|
mov esi,dir_path
|
||||||
call copy_exit_dir
|
call copy_exit_dir
|
||||||
jmp .1
|
jmp .1
|
||||||
;---------------------------------------------------------------------
|
;---------------------------------------------------------------------
|
||||||
@ -1094,13 +1098,16 @@ error_handler:
|
|||||||
jmp button.exit
|
jmp button.exit
|
||||||
;------------------------------------
|
;------------------------------------
|
||||||
.exit:
|
.exit:
|
||||||
|
mov esi,previous_dir_path
|
||||||
|
mov edi,dir_path
|
||||||
|
call copy_dir_name.1
|
||||||
mov esi,start_pach
|
mov esi,start_pach
|
||||||
mov edi,dir_pach
|
mov edi,previous_dir_path
|
||||||
call copy_dir_name
|
call copy_dir_name.1
|
||||||
ret
|
ret
|
||||||
;---------------------------------------------------------------------
|
;---------------------------------------------------------------------
|
||||||
file_no_folder:
|
file_no_folder:
|
||||||
mov esi,dir_pach
|
mov esi,dir_path
|
||||||
mov edi,file_name
|
mov edi,file_name
|
||||||
call copy_dir_name
|
call copy_dir_name
|
||||||
push ebx
|
push ebx
|
||||||
@ -1143,7 +1150,7 @@ file_no_folder:
|
|||||||
;---------------------------------------------------------------------
|
;---------------------------------------------------------------------
|
||||||
load_root_directory:
|
load_root_directory:
|
||||||
mov esi,root_pach
|
mov esi,root_pach
|
||||||
mov edi,dir_pach
|
mov edi,dir_path
|
||||||
call copy_dir_name
|
call copy_dir_name
|
||||||
call load_directory
|
call load_directory
|
||||||
mov eax,[N_error]
|
mov eax,[N_error]
|
||||||
@ -1165,7 +1172,7 @@ load_root_directory:
|
|||||||
imul esi,[temp_counter_1],304
|
imul esi,[temp_counter_1],304
|
||||||
add esi,[root_folder_area]
|
add esi,[root_folder_area]
|
||||||
add esi,32+40
|
add esi,32+40
|
||||||
mov edi,dir_pach+1
|
mov edi,dir_path+1
|
||||||
mov [edi-1],byte '/'
|
mov [edi-1],byte '/'
|
||||||
call copy_dir_name
|
call copy_dir_name
|
||||||
call load_directory
|
call load_directory
|
||||||
@ -1245,7 +1252,7 @@ type_title:
|
|||||||
mov ecx,[ecx]
|
mov ecx,[ecx]
|
||||||
test ecx,ecx
|
test ecx,ecx
|
||||||
jz @f
|
jz @f
|
||||||
mcall 71,1,; title ;;param ;file_name ;dir_pach
|
mcall 71,1,; title ;;param ;file_name ;dir_path
|
||||||
@@:
|
@@:
|
||||||
ret
|
ret
|
||||||
;---------------------------------------------------------------------
|
;---------------------------------------------------------------------
|
||||||
@ -1400,7 +1407,7 @@ draw_window:
|
|||||||
ret
|
ret
|
||||||
;---------------------------------------------------------------------
|
;---------------------------------------------------------------------
|
||||||
draw_for_fs_errors:
|
draw_for_fs_errors:
|
||||||
call draw_dir_pach
|
call draw_dir_path
|
||||||
|
|
||||||
mov ebx,[file_browser_data_1.x]
|
mov ebx,[file_browser_data_1.x]
|
||||||
mov ecx,[file_browser_data_1.y]
|
mov ecx,[file_browser_data_1.y]
|
||||||
@ -1419,7 +1426,7 @@ draw_for_fs_errors:
|
|||||||
mcall 4,,0x90ffffff,load_directory_error_type
|
mcall 4,,0x90ffffff,load_directory_error_type
|
||||||
|
|
||||||
add ebx,20
|
add ebx,20
|
||||||
mcall 4,,,dir_pach
|
mcall 4,,,dir_path
|
||||||
|
|
||||||
mov eax,[error_type]
|
mov eax,[error_type]
|
||||||
shl eax,2
|
shl eax,2
|
||||||
@ -1502,7 +1509,7 @@ draw_file_name:
|
|||||||
mcall 4,,0x80000000,message_file_name
|
mcall 4,,0x80000000,message_file_name
|
||||||
ret
|
ret
|
||||||
;---------------------------------------------------------------------
|
;---------------------------------------------------------------------
|
||||||
draw_dir_pach:
|
draw_dir_path:
|
||||||
mov eax,[file_browser_data_1.x]
|
mov eax,[file_browser_data_1.x]
|
||||||
mov ebx,eax
|
mov ebx,eax
|
||||||
shr ebx,16
|
shr ebx,16
|
||||||
@ -1550,16 +1557,16 @@ draw_dir_pach:
|
|||||||
|
|
||||||
ret
|
ret
|
||||||
|
|
||||||
;draw_dir_pach_1:
|
;draw_dir_path_1:
|
||||||
; mov ebx,[file_browser_data_1.x]
|
; mov ebx,[file_browser_data_1.x]
|
||||||
; mcall 13,,<7,15>,0xffffb0
|
; mcall 13,,<7,15>,0xffffb0
|
||||||
; mov bx,10
|
; mov bx,10
|
||||||
; add ebx,4 shl 16
|
; add ebx,4 shl 16
|
||||||
; mcall 4,,0xC0000000,dir_pach,,0xffffb0
|
; mcall 4,,0xC0000000,dir_path,,0xffffb0
|
||||||
; ret
|
; ret
|
||||||
;---------------------------------------------------------------------
|
;---------------------------------------------------------------------
|
||||||
draw_draw_file_browser1:
|
draw_draw_file_browser1:
|
||||||
call draw_dir_pach
|
call draw_dir_path
|
||||||
cmp [open_dialog_type],1
|
cmp [open_dialog_type],1
|
||||||
jne @f
|
jne @f
|
||||||
call draw_file_name
|
call draw_file_name
|
||||||
@ -1825,6 +1832,12 @@ load_directory:
|
|||||||
mcall 70,dirinfo
|
mcall 70,dirinfo
|
||||||
test eax,eax
|
test eax,eax
|
||||||
jz @f
|
jz @f
|
||||||
|
; mov esi,previous_dir_path
|
||||||
|
; mov edi,dir_path
|
||||||
|
; call copy_dir_name.1
|
||||||
|
; mcall 70,dirinfo
|
||||||
|
; test eax,eax
|
||||||
|
; jz @f
|
||||||
xor ebx,ebx
|
xor ebx,ebx
|
||||||
mov [file_browser_data_1.folder_data],ebx
|
mov [file_browser_data_1.folder_data],ebx
|
||||||
jmp .error
|
jmp .error
|
||||||
@ -2239,6 +2252,12 @@ copy_exit_dir:
|
|||||||
ret
|
ret
|
||||||
;---------------------------------------------------------------------
|
;---------------------------------------------------------------------
|
||||||
copy_dir_name:
|
copy_dir_name:
|
||||||
|
push esi edi
|
||||||
|
mov esi,edi
|
||||||
|
mov edi,previous_dir_path
|
||||||
|
call .1
|
||||||
|
pop edi esi
|
||||||
|
.1:
|
||||||
xor eax,eax
|
xor eax,eax
|
||||||
cld
|
cld
|
||||||
@@:
|
@@:
|
||||||
@ -2518,7 +2537,7 @@ dirinfo:
|
|||||||
.size dd 0
|
.size dd 0
|
||||||
.return dd 0
|
.return dd 0
|
||||||
db 0
|
db 0
|
||||||
.name: dd dir_pach
|
.name: dd dir_path
|
||||||
;---------------------------------------------------------------------
|
;---------------------------------------------------------------------
|
||||||
align 4
|
align 4
|
||||||
dir_header:
|
dir_header:
|
||||||
@ -2883,7 +2902,7 @@ PathShow_data_1:
|
|||||||
.background_flag dd 0 ;+16
|
.background_flag dd 0 ;+16
|
||||||
.font_color dd 0x0 ;+20
|
.font_color dd 0x0 ;+20
|
||||||
.background_color dd 0x0 ;+24
|
.background_color dd 0x0 ;+24
|
||||||
.text_pointer dd dir_pach ;+28
|
.text_pointer dd dir_path ;+28
|
||||||
.work_area_pointer dd text_work_area ;+32
|
.work_area_pointer dd text_work_area ;+32
|
||||||
.temp_text_length dd 0 ;+36
|
.temp_text_length dd 0 ;+36
|
||||||
;---------------------------------------------------------------------
|
;---------------------------------------------------------------------
|
||||||
@ -2949,7 +2968,10 @@ path:
|
|||||||
file_name:
|
file_name:
|
||||||
rb 4096
|
rb 4096
|
||||||
;---------------------------------------------------------------------
|
;---------------------------------------------------------------------
|
||||||
dir_pach:
|
previous_dir_path:
|
||||||
|
rb 4096
|
||||||
|
;---------------------------------------------------------------------
|
||||||
|
dir_path:
|
||||||
rb 4096
|
rb 4096
|
||||||
;---------------------------------------------------------------------
|
;---------------------------------------------------------------------
|
||||||
text_work_area:
|
text_work_area:
|
||||||
|
Loading…
Reference in New Issue
Block a user