@@ -51,6 +51,11 @@ local function _(msgid)
51
51
return gettext .dgettext (" copy_attach_detach_tags" , msgid )
52
52
end
53
53
54
+ local cadt = {}
55
+ cadt .module_installed = false
56
+ cadt .event_registered = false
57
+ cadt .widget_table = {}
58
+
54
59
55
60
local image_tags = {}
56
61
@@ -156,6 +161,26 @@ local function replace_tags()
156
161
dt .print (_ (' Tags replaced' ))
157
162
end
158
163
164
+ local function install_module ()
165
+ if not cadt .module_installed then
166
+ dt .register_lib (" tagging_addon" ," Tagging addon" ,true ,true ,{
167
+ [dt .gui .views .lighttable ] = {" DT_UI_CONTAINER_PANEL_RIGHT_CENTER" ,500 }
168
+ },
169
+ dt .new_widget (" box" ) {
170
+ -- orientation = "vertical",
171
+ reset_callback = function ()
172
+ taglist_label .label = " "
173
+ image_tags = {}
174
+ end ,
175
+ table.unpack (cadt .widget_table ),
176
+ },
177
+ nil ,
178
+ nil
179
+ )
180
+ cadt .module_installed = true
181
+ end
182
+ end
183
+
159
184
-- create modul Tagging addons
160
185
taglist_label .reset_callback = mcopy_tags
161
186
@@ -190,31 +215,31 @@ local box2 = dt.new_widget("box"){
190
215
local sep = dt .new_widget (" separator" ){}
191
216
192
217
-- pack elements into widget table for a nicer layout
193
- local widget_table = {}
194
218
195
- widget_table [1 ] = box1
196
- widget_table [# widget_table + 1 ] = box2
219
+ cadt . widget_table [1 ] = box1
220
+ cadt . widget_table [# cadt . widget_table + 1 ] = box2
197
221
198
- widget_table [# widget_table + 1 ] = sep
199
- widget_table [# widget_table + 1 ] = taglabel
200
- widget_table [# widget_table + 1 ] = taglist_label
222
+ cadt . widget_table [# cadt . widget_table + 1 ] = sep
223
+ cadt . widget_table [# cadt . widget_table + 1 ] = taglabel
224
+ cadt . widget_table [# cadt . widget_table + 1 ] = taglist_label
201
225
202
226
203
227
-- create modul
204
- dt .register_lib (" tagging_addon" ," Tagging addon" ,true ,true ,{
205
- [dt .gui .views .lighttable ] = {" DT_UI_CONTAINER_PANEL_RIGHT_CENTER" ,500 }
206
- },
207
- dt .new_widget (" box" ) {
208
- -- orientation = "vertical",
209
- reset_callback = function ()
210
- taglist_label .label = " "
211
- image_tags = {}
212
- end ,
213
- table.unpack (widget_table ),
214
- },
215
- nil ,
216
- nil
217
- )
228
+ if dt .gui .current_view ().name == " lighttable" then
229
+ install_module ()
230
+ else
231
+ if not cadt .event_registered then
232
+ dt .register_event (
233
+ " view-changed" ,
234
+ function (event , old_view , new_view )
235
+ if new_view .name == " lighttable" and old_view .name == " darkroom" then
236
+ install_module ()
237
+ end
238
+ end
239
+ )
240
+ cadt .event_registered = true
241
+ end
242
+ end
218
243
219
244
220
245
-- shortcut for copy
0 commit comments