@@ -41,7 +41,7 @@ def __init__(
41
41
) -> None :
42
42
super ().__init__ (title )
43
43
44
- self .item = item
44
+ # self.item = item
45
45
self .driver = driver # Used for creating tag click callbacks that search entries for that tag.
46
46
# self.field_index = field_index
47
47
self .tags = tags
@@ -86,21 +86,16 @@ def __init__(
86
86
87
87
self .set_tags (tags )
88
88
89
- def set_item (self , item ):
90
- self .item = item
91
-
92
89
def set_tags (self , tags : list [Tag ]):
93
90
is_recycled = False
94
- if self .base_layout .itemAt (0 ):
95
- while self .base_layout .itemAt (0 ) and self .base_layout .itemAt (1 ):
96
- self .base_layout .takeAt (0 ).widget ().deleteLater ()
91
+ while self .base_layout .itemAt (0 ) and self .base_layout .itemAt (1 ):
92
+ self .base_layout .takeAt (0 ).widget ().deleteLater ()
97
93
is_recycled = True
98
94
99
95
for tag in tags :
100
96
tw = TagWidget (tag , True , True )
101
97
tw .on_click .connect (
102
98
lambda tag_id = tag .id : (
103
- print ("tag widget clicked on_click emited" , tag_id ),
104
99
self .driver .main_window .searchField .setText (f"tag_id:{ tag_id } " ), # type: ignore
105
100
self .driver .filter_items (FilterState (id = tag_id )), # type: ignore[func-returns-value]
106
101
)
@@ -109,6 +104,7 @@ def set_tags(self, tags: list[Tag]):
109
104
tw .on_remove .connect (lambda tag_id = tag .id : self .remove_tag (tag_id ))
110
105
tw .on_edit .connect (lambda tag_id = tag .id : self .edit_tag (tag_id ))
111
106
self .base_layout .addWidget (tw )
107
+
112
108
self .tags = tags
113
109
114
110
# Move or add the '+' button.
@@ -128,7 +124,7 @@ def edit_tag(self, tag_id: int):
128
124
tag = self .driver .lib .get_tag (tag_id )
129
125
self .edit_modal = PanelModal (
130
126
btp ,
131
- tag .name ,
127
+ tag .name , # TODO - display name including subtags
132
128
"Edit Tag" ,
133
129
done_callback = self .driver .preview_panel .update_widgets ,
134
130
has_save = True ,
@@ -142,17 +138,17 @@ def edit_tag(self, tag_id: int):
142
138
def add_tag_callback (self , tag_id : int ):
143
139
logger .info ("add_tag_callback" , tag_id = tag_id , selected = self .driver .selected )
144
140
141
+ tag = self .driver .lib .get_tag (tag_id = tag_id )
142
+
145
143
for idx in self .driver .selected :
146
144
entry : Entry = self .driver .frame_content [idx ]
147
145
148
146
# TODO - add tag to correct field
149
147
tag_field : TagBoxField = entry .tag_box_fields [0 ]
148
+ self .driver .lib .add_field_tag (tag , tag_field )
150
149
151
- tag = self .driver .lib .get_tag (tag_id = tag_id )
152
-
153
- tag_field .tags .add (tag )
154
-
155
- self .updated .emit ()
150
+ # TODO - this was originally in the loop, is it needed there?
151
+ self .updated .emit ()
156
152
157
153
if tag_id in (TAG_FAVORITE , TAG_ARCHIVED ):
158
154
self .driver .update_badges ()
0 commit comments