Output total transfer size when confirming
This commit is contained in:
parent
7c90812e51
commit
3eee442f28
@ -26,6 +26,7 @@ from kitty.typing import KeyEventType
|
||||
from ..tui.handler import Handler
|
||||
from ..tui.loop import Loop, debug
|
||||
from ..tui.operations import styled
|
||||
from ..tui.utils import human_size
|
||||
|
||||
_cwd = _home = ''
|
||||
debug
|
||||
@ -304,6 +305,7 @@ class SendManager:
|
||||
self.current_chunk_uncompressed_sz: Optional[int] = None
|
||||
self.prefix = f'\x1b]{FILE_TRANSFER_CODE};id={self.request_id};'
|
||||
self.suffix = '\x1b\\'
|
||||
self.total_size_of_all_files = sum(df.file_size for df in self.files if df.file_size >= 0)
|
||||
|
||||
@property
|
||||
def active_file(self) -> Optional[File]:
|
||||
@ -448,6 +450,8 @@ class Send(Handler):
|
||||
self.print(df.local_path, '→', end=' ')
|
||||
self.cmd.styled(df.remote_final_path, fg='red' if df.remote_initial_size > -1 else None)
|
||||
self.print()
|
||||
self.print(f'Transferring {len(self.manager.files)} files of total size: {human_size(self.manager.total_size_of_all_files)}')
|
||||
self.print()
|
||||
self.print_continue_msg()
|
||||
|
||||
def print_continue_msg(self) -> None:
|
||||
|
||||
@ -27,3 +27,18 @@ def get_key_press(allowed: str, default: str) -> str:
|
||||
finally:
|
||||
print(set_cursor_visible(True), end='', flush=True)
|
||||
return response
|
||||
|
||||
|
||||
def human_size(size: int, sep: str = ' ') -> str:
|
||||
""" Convert a size in bytes into a human readable form """
|
||||
divisor, suffix = 1, "B"
|
||||
for i, candidate in enumerate(('B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB')):
|
||||
if size < (1 << ((i + 1) * 10)):
|
||||
divisor, suffix = (1 << (i * 10)), candidate
|
||||
break
|
||||
ans = str(size / divisor)
|
||||
if ans.find(".") > -1:
|
||||
ans = ans[:ans.find(".")+2]
|
||||
if ans.endswith('.0'):
|
||||
ans = ans[:-2]
|
||||
return ans + sep + suffix
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user