Skip to content

Commit

Permalink
adaptive tooltip placement, minor fixes, cleanup
Browse files Browse the repository at this point in the history
  • Loading branch information
xy committed Jan 13, 2024
1 parent 79580d6 commit 3b06d5b
Show file tree
Hide file tree
Showing 2 changed files with 37 additions and 35 deletions.
8 changes: 1 addition & 7 deletions src/core.py
Original file line number Diff line number Diff line change
Expand Up @@ -754,7 +754,6 @@ def tupelize_rec(self,scan_like_data,results_queue_put):

self_tupelize_rec = self.tupelize_rec

#self_customdata = self.customdata
sub_list = []
for entry_name,items_list in scan_like_data.items():
try:
Expand Down Expand Up @@ -909,9 +908,6 @@ def find_items(self,
filestructure,parent_path_components = search_list_pop()

for data_entry in filestructure:
#if check_abort():
# break

search_progress +=1

name_nr,code,size,mtime = data_entry[0:4]
Expand Down Expand Up @@ -1081,7 +1077,6 @@ def prepare_info(self):
info_list.append( 'internal sizes : compressed serialized original items references CDE time CDE errors')
info_list.append('')

#h_data = self.header_sizes
h_data = self_header.zipinfo["header"]
fs_data = self_header.zipinfo["filestructure"]
fn_data = self_header.zipinfo["filenames"]
Expand Down Expand Up @@ -1381,7 +1376,6 @@ def repack_record(self,record,new_label,new_compression,keep_cd,update_callback)
with ZipFile(src_file, "r") as src_zip_file:

dec_dec = ZstdDecompressor().decompress
#dec_dec = decompressor.decompress

header_ser_compr = src_zip_file.read('header')
header_ser = dec_dec(header_ser_compr)
Expand Down Expand Up @@ -1791,7 +1785,7 @@ def threaded_run(record_nr,commands_list,results_list,progress_list,info_list,pr
running = len([record_nr for record_nr in range(records_to_process_len) if jobs[record_nr][0]==1 and jobs[record_nr][1].is_alive() ])
finished = self.search_record_nr = records_to_process_len-running-waiting

self.records_perc_info = self.search_record_nr * 100.0 / records_to_process_len
self.records_perc_info = (self.search_record_nr+0.5) * 100.0 / records_to_process_len

self.info_line = f'Threads: waiting:{waiting}, running:{running}, finished:{finished}'

Expand Down
64 changes: 36 additions & 28 deletions src/librer.py
Original file line number Diff line number Diff line change
Expand Up @@ -1848,14 +1848,38 @@ def configure_tooltip(self,widget):
except Exception as te:
print(f'configure_tooltip error:{widget}:{te}')

def adaptive_tooltip_geometry(self,event):
x,y = self.tooltip_wm_geometry().split('+')[0].split('x')
x_int=int(x)
y_int=int(y)

size_combo,x_main_off,y_main_off = self.main.wm_geometry().split('+')
x_main_size,y_main_size = size_combo.split('x')

x_middle = int(x_main_size)/2+int(x_main_off)
y_middle = int(y_main_size)/2+int(y_main_off)

if event.x_root>x_middle:
x_mod = -x_int -20
else:
x_mod = 20

if event.y_root>y_middle:
y_mod = -y_int -5
else:
y_mod = 5

self.tooltip_wm_geometry("+%d+%d" % (event.x_root + x_mod, event.y_root + y_mod))

def show_tooltip_widget(self,event):
self.unschedule_tooltip_widget(event)
self.menubar_unpost()

self.configure_tooltip(event.widget)

self.tooltip_deiconify()
self.tooltip_wm_geometry("+%d+%d" % (event.x_root + 20, event.y_root + 5))

self.adaptive_tooltip_geometry(event)

def get_item_record(self,item):
tree = self.tree
Expand All @@ -1875,22 +1899,16 @@ def get_item_record(self,item):
if values:
data=values[0]
subpath_list.append(data)
#else:
#print(f'get_item_record no values: {item=},{values=}')
#dummy item

<
item=tree.parent(item)

subpath_list.reverse()
return (item,current_record_name,subpath_list)
#sep + sep.join(reversed(subpath_list))

def show_tooltips_tree(self,event):
self.unschedule_tooltips_tree(event)
self.menubar_unpost()

self.tooltip_wm_geometry("+%d+%d" % (event.x_root + 20, event.y_root + 5))

tree = event.widget
col=tree.identify_column(event.x)
if col:
Expand Down Expand Up @@ -1950,6 +1968,8 @@ def show_tooltips_tree(self,event):
else:
self.hide_tooltip()

self.adaptive_tooltip_geometry(event)

def unschedule_tooltip_widget(self,event):
if self.tooltip_show_after_widget:
event.widget.after_cancel(self.tooltip_show_after_widget)
Expand Down Expand Up @@ -2344,6 +2364,7 @@ def find_items(self):
range_par = self.current_record if not find_range_all else None

sel_range = [range_par] if range_par else librer_core.records
sel_range_len = len(sel_range)
files_search_quant = sum([record.header.quant_files+record.header.quant_folders for record in sel_range])

if files_search_quant==0:
Expand Down Expand Up @@ -2534,7 +2555,7 @@ def find_items(self):

#librer_core_files_search_quant = librer_core.files_search_quant
fnumber_files_search_quant = fnumber(files_search_quant)
fnumber_records_len = fnumber(records_len)
fnumber_sel_range_len = fnumber(sel_range_len)

time_without_busy_sign=0
while search_thread_is_alive():
Expand All @@ -2546,13 +2567,11 @@ def find_items(self):

curr_files = librer_core.total_search_progress

files_perc = curr_files * 100.0 / files_search_quant

self_progress_dialog_on_find_progr1var_set(librer_core.records_perc_info)
self_progress_dialog_on_find_progr2var_set(files_perc)
self_progress_dialog_on_find_progr2var_set(curr_files * 100.0 / files_search_quant)

self_progress_dialog_on_find_lab_r1_config(text=fnumber(librer_core.search_record_nr) + '/' + fnumber_records_len)
self_progress_dialog_on_find_lab_r2_config(text=fnumber(curr_files) + '/' + fnumber_files_search_quant)
self_progress_dialog_on_find_lab_r1_config(text=f'{fnumber(librer_core.search_record_nr)} / {fnumber_sel_range_len}')
self_progress_dialog_on_find_lab_r2_config(text=f'{fnumber(curr_files)} / {fnumber_files_search_quant}')

if self.action_abort:
librer_core.abort()
Expand Down Expand Up @@ -2900,9 +2919,6 @@ def context_menu_show(self,event):
if tree.identify("region", event.x, event.y) == 'heading':
return

#if not self.actions_processing:
# return

tree.focus_set()
self.tree_on_mouse_button_press(event)
tree.update()
Expand All @@ -2918,8 +2934,6 @@ def context_menu_show(self,event):
pop_add_command = pop.add_command
self_ico = self.ico
state_on_records = 'normal' if librer_core.records else 'disabled'
#state_has_cd =
#print(state_has_cd)

c_nav = Menu(self.menubar,tearoff=0,bg=self.bg_color)
c_nav_add_command = c_nav.add_command
Expand Down Expand Up @@ -3177,7 +3191,6 @@ def scan(self,compression_level):

self_progress_dialog_on_scan_lab[2].configure(image='',text='')


any_cde_enabled=False
cde_sklejka_list=[]
cde_list=[]
Expand Down Expand Up @@ -3325,16 +3338,15 @@ def scan(self,compression_level):
change4 = self_progress_dialog_on_scan_update_lab_text(4,'Extraction Errors : ' + fnumber(librer_core.stdout_files_cde_errors_quant_all) )

files_q = librer_core.stdout_files_cde_quant
files_perc = files_q * 100.0 / librer_core.stdout_files_cde_quant_sum if librer_core.stdout_files_cde_quant_sum else 0

files_size = librer_core.stdout_files_cde_size
files_size_perc = files_size * 100.0 / librer_core.stdout_files_cde_size_sum if librer_core.stdout_files_cde_size_sum else 0

self_progress_dialog_on_scan_progr1var_set(files_size_perc)
self_progress_dialog_on_scan_progr2var_set(files_perc)
self_progress_dialog_on_scan_progr2var_set(files_q * 100.0 / librer_core.stdout_files_cde_quant_sum if librer_core.stdout_files_cde_quant_sum else 0)

self_progress_dialog_on_scan_lab_r1_config(text=local_bytes_to_str(librer_core.stdout_files_cde_size) + '/' + local_bytes_to_str(librer_core.stdout_files_cde_size_sum))
self_progress_dialog_on_scan_lab_r2_config(text=fnumber(files_q) + '/' + fnumber(librer_core.stdout_files_cde_quant_sum))
self_progress_dialog_on_scan_lab_r1_config(text=f'{local_bytes_to_str(librer_core.stdout_files_cde_size)} / {local_bytes_to_str(librer_core.stdout_files_cde_size_sum)}')
self_progress_dialog_on_scan_lab_r2_config(text=f'{fnumber(files_q)} / {fnumber(librer_core.stdout_files_cde_quant_sum)}')

if change3 or change4:
time_to_show_busy_sign=now+1.0
Expand Down Expand Up @@ -3377,7 +3389,6 @@ def scan(self,compression_level):
gc_collect()
gc_enable()


self_progress_dialog_on_scan.hide(True)

#################################################################################################################################################
Expand Down Expand Up @@ -3566,7 +3577,6 @@ def abort_single(self):
def kill_test(self):
if self.subprocess and self.subprocess!=True:
kill_subprocess(self.subprocess)
# self.output_list.append(str(e))

def cde_test(self,e):
initialdir = self.last_dir if self.last_dir else self.cwd
Expand Down Expand Up @@ -3834,8 +3844,6 @@ def single_record_show(self,record):
self.item_to_record[record_item]=record
self.record_to_item[record]=record_item

#self.item_to_data[record_item] = record.filestructure

self.tree.focus(record_item)
self.tree.selection_set(record_item)
self.tree.see(record_item)
Expand Down

0 comments on commit 3b06d5b

Please sign in to comment.