Skip to content

Commit 79580d6

Browse files
author
xy
committed
optimization of search results selection
1 parent fc507af commit 79580d6

File tree

2 files changed

+29
-28
lines changed

2 files changed

+29
-28
lines changed

src/core.py

+4-2
Original file line numberDiff line numberDiff line change
@@ -309,6 +309,7 @@ def __init__(self,label=None,scan_path=None,file_path=None):
309309
self.filenames = []
310310

311311
self.find_results = []
312+
self.find_results_tuples_set=set()
312313

313314
self.abort_action = False
314315

@@ -873,8 +874,6 @@ def find_items(self,
873874
cd_search_kind,cd_func_to_call,
874875
print_info_fn):
875876

876-
self.find_results = []
877-
878877
self.decompress_filestructure()
879878

880879
filenames_loc = self.filenames
@@ -1814,6 +1813,9 @@ def threaded_run(record_nr,commands_list,results_list,progress_list,info_list,pr
18141813

18151814
sleep(0.1)
18161815
#####################################################
1816+
for record in records_to_process:
1817+
record.find_results_tuples_set = {result[0] for result in record.find_results}
1818+
18171819
for record_nr,info in enumerate(info_list):
18181820
self.log.info(f'got info for record:{record_nr}')
18191821
for info_line in info:

src/librer.py

+25-26
Original file line numberDiff line numberDiff line change
@@ -610,6 +610,7 @@ def help_cascade_post():
610610
records_quant,records_size = librer_core.read_records_pre()
611611

612612
load_errors = []
613+
613614
if records_quant:
614615
self.status_info.configure(image='',text = 'Loading records ...')
615616

@@ -2626,12 +2627,16 @@ def find_items(self):
26262627
self.find_result_index=-1
26272628
self.find_next()
26282629

2629-
def get_child_of_name(self,item,child_name):
2630+
def get_child_of_name(self,record,item,child_name):
26302631
self_tree = self.tree
2632+
self_tree_item = self_tree.item
2633+
2634+
self_item_to_data = self.item_to_data
2635+
record_filenames = record.filenames
2636+
2637+
#mozna by to zcachowac ale jest kwestia sortowania
26312638
for child in self_tree.get_children(item):
2632-
values = self_tree.item(child,'values')
2633-
data=values[0]
2634-
if data==child_name:
2639+
if record_filenames[self_item_to_data[child][0]]==child_name:
26352640
return child
26362641
return None
26372642

@@ -2646,13 +2651,10 @@ def select_find_result(self,mod):
26462651
find_result_index_reset=False
26472652

26482653
while not settled:
2649-
#print('self.find_result_record_index:',self.find_result_record_index)
2650-
#print('self.find_result_index:',self.find_result_index)
2651-
26522654
record = librer_core.records_sorted[self.find_result_record_index]
2653-
#print('\n'.join([sep.join(x[0]) for x in record.find_results]))
2654-
record_find_results_len=len(record.find_results)
2655+
record_find_results = record.find_results
26552656

2657+
record_find_results_len=len(record_find_results)
26562658

26572659
if find_result_index_reset:
26582660
find_result_index_reset=False
@@ -2673,33 +2675,31 @@ def select_find_result(self,mod):
26732675
self.find_result_record_index %= records_quant
26742676

26752677
try:
2676-
items_names_tuple,res_size,res_mtime=record.find_results[self.find_result_index]
2678+
items_names_tuple,res_size,res_mtime=record_find_results[self.find_result_index]
26772679
except Exception as e:
26782680
continue
26792681
else:
26802682
settled=True
2681-
status_to_set=f'record find result: {self.find_result_index+1 if self.find_result_index>=0 else record_find_results_len+self.find_result_index+1} / {fnumber(record_find_results_len)} / {fnumber(self.all_records_find_results_len)}'
2682-
2683-
#print(record_result)
2683+
status_to_set=f'record find result: {fnumber(self.find_result_index+1 if self.find_result_index>=0 else record_find_results_len+self.find_result_index+1)} / {fnumber(record_find_results_len)} / {fnumber(self.all_records_find_results_len)}'
26842684

26852685
record_item = self.record_to_item[record]
26862686

2687-
#record = self.item_to_record[record_item]
2688-
26892687
current_item = record_item
26902688

26912689
self.open_item(current_item)
26922690

2691+
self_get_child_of_name = self.get_child_of_name
2692+
self_open_item = self.open_item
2693+
self_tree_update = self_tree.update
2694+
26932695
for item_name in items_names_tuple:
2694-
#print('item_name:',item_name)
2695-
child_item = self.get_child_of_name(current_item,item_name)
2696-
#print('child_item:',child_item)
2696+
child_item = self_get_child_of_name(record,current_item,item_name)
26972697

26982698
if child_item:
26992699
current_item = child_item
2700-
self.open_item(current_item)
2700+
self_open_item(current_item)
27012701
#self_tree.see(current_item)
2702-
self_tree.update()
2702+
self_tree_update()
27032703
else:
27042704
self.info_dialog_on_main.show('cannot find item:',item_name)
27052705
break
@@ -3757,7 +3757,9 @@ def open_item(self,item=None):
37573757
self_ico_empty = self.ico_empty
37583758

37593759
record_find_results = record.find_results
3760-
self.FOUND = self.FOUND
3760+
record_find_results_tuples_set = record.find_results_tuples_set
3761+
3762+
self_FOUND = self.FOUND
37613763
if top_has_files:
37623764
for data_tuple in top_data_tuple[4]:
37633765

@@ -3793,11 +3795,8 @@ def open_item(self,item=None):
37933795
tags=self_SYMLINK
37943796
else:
37953797
tags=''
3796-
if record_find_results:
3797-
for find_result in record_find_results:
3798-
if find_result[0]==entry_subpath_tuple:
3799-
tags=self.FOUND
3800-
break
3798+
if entry_subpath_tuple in record_find_results_tuples_set:
3799+
tags=self_FOUND
38013800

38023801
#('data','record','opened','path','size','size_h','ctime','ctime_h','kind')
38033802
values = (entry_name,'','0',entry_name,size,bytes_to_str(size),mtime,strftime('%Y/%m/%d %H:%M:%S',localtime_catched(mtime)),kind)

0 commit comments

Comments
 (0)