@@ -47,6 +47,12 @@ local dt = require "darktable"
47
47
local du = require " lib/dtutils"
48
48
local debug = require " darktable.debug"
49
49
50
+ local qt = {}
51
+ qt .module_installed = false
52
+ qt .event_registered = false
53
+ qt .widget_table = {}
54
+
55
+
50
56
51
57
local gettext = dt .gettext
52
58
@@ -177,6 +183,27 @@ local function update_quicktag_list()
177
183
end
178
184
end
179
185
186
+ local function install_module ()
187
+ if not qt .module_installed then
188
+ dt .register_lib (
189
+ " quicktag" , -- Module name
190
+ " quicktag" , -- name
191
+ true , -- expandable
192
+ false , -- resetable
193
+ {[dt .gui .views .lighttable ] = {" DT_UI_CONTAINER_PANEL_RIGHT_CENTER" , 490 }},
194
+
195
+ dt .new_widget (" box" ){
196
+ orientation = " vertical" ,
197
+ table.unpack (qt .widget_table ),
198
+
199
+ },
200
+ nil ,-- view_enter
201
+ nil -- view_leave
202
+ )
203
+ qt .module_installed = true
204
+ end
205
+ end
206
+
180
207
update_quicktag_list ()
181
208
182
209
local new_quicktag = dt .new_widget (" entry" ){
@@ -213,33 +240,32 @@ local new_qt_widget = dt.new_widget ("box") {
213
240
214
241
-- back UI elements in a table
215
242
-- thanks to wpferguson for the hint
216
- local widget_table = {}
217
243
218
244
for i = 1 ,qnr do
219
- widget_table [# widget_table + 1 ] = button [i ]
245
+ qt . widget_table [# qt . widget_table + 1 ] = button [i ]
220
246
end
221
247
222
- widget_table [# widget_table + 1 ] = dt .new_widget (" separator" ){}
223
- widget_table [# widget_table + 1 ] = old_quicktag
224
- widget_table [# widget_table + 1 ] = new_qt_widget
248
+ qt . widget_table [# qt . widget_table + 1 ] = dt .new_widget (" separator" ){}
249
+ qt . widget_table [# qt . widget_table + 1 ] = old_quicktag
250
+ qt . widget_table [# qt . widget_table + 1 ] = new_qt_widget
225
251
226
252
227
253
-- create module
228
- dt .register_lib (
229
- " quicktag " , -- Module name
230
- " quicktag " , -- name
231
- true , -- expandable
232
- false , -- resetable
233
- {[ dt . gui . views . lighttable ] = { " DT_UI_CONTAINER_PANEL_RIGHT_CENTER " , 490 }} ,
234
-
235
- dt . new_widget ( " box " ){
236
- orientation = " vertical " ,
237
- table.unpack ( widget_table ),
238
-
239
- },
240
- nil , -- view_enter
241
- nil -- view_leave
242
- )
254
+ if dt .gui . current_view (). name == " lighttable " then
255
+ install_module ()
256
+ else
257
+ if not qt . event_registered then
258
+ dt . register_event (
259
+ " view-changed " ,
260
+ function ( event , old_view , new_view )
261
+ if new_view . name == " lighttable " and old_view . name == " darkroom " then
262
+ install_module ()
263
+ end
264
+ end
265
+ )
266
+ qt . event_registered = true
267
+ end
268
+ end
243
269
244
270
-- create shortcuts
245
271
for i = 1 ,qnr do
0 commit comments