@@ -46,30 +46,29 @@ In the "Selected Images" module click on "Collect on this Image"
46
46
]]
47
47
48
48
local dt = require " darktable"
49
- previous = nil
50
- all_active = false
49
+ local previous = nil
50
+ local all_active = false
51
51
52
52
-- FUNCTION --
53
53
local function CheckSingleImage (selection )
54
54
if # selection ~= 1 then
55
55
dt .print (" Please select a single image" )
56
- return 1
56
+ return true
57
57
end
58
- return 0
58
+ return false
59
59
end
60
60
local function PreviousCollection ()
61
61
if previous ~= nil then
62
62
previous = dt .gui .libs .collect .filter (previous )
63
63
end
64
64
end
65
- local function CollectOnFolder ()
65
+ local function CollectOnFolder (all_rules , all_active )
66
66
local images = dt .gui .selection ()
67
- if CheckSingleImage (images ) == 1 then
67
+ if CheckSingleImage (images ) then
68
68
return
69
69
end
70
- rules = {}
71
- all_rules = {}
72
- rule = dt .gui .libs .collect .new_rule ()
70
+ local rules = {}
71
+ local rule = dt .gui .libs .collect .new_rule ()
73
72
rule .mode = " DT_LIB_COLLECT_MODE_AND"
74
73
rule .data = images [1 ].path
75
74
rule .item = " DT_COLLECTION_PROP_FOLDERS"
@@ -78,47 +77,48 @@ local function CollectOnFolder()
78
77
for _ ,active_rule in pairs (rules ) do
79
78
table.insert (all_rules , active_rule )
80
79
end
80
+ return all_rules
81
81
else
82
82
previous = dt .gui .libs .collect .filter (rules )
83
83
end
84
84
end
85
- local function CollectOnColors ()
85
+ local function CollectOnColors (all_rules , all_active )
86
86
local images = dt .gui .selection ()
87
- if CheckSingleImage (images ) == 1 then
87
+ if CheckSingleImage (images ) then
88
88
return
89
89
end
90
90
for _ ,image in pairs (images ) do
91
- rules = {}
91
+ local rules = {}
92
92
if image .red then
93
- red_rule = dt .gui .libs .collect .new_rule ()
93
+ local red_rule = dt .gui .libs .collect .new_rule ()
94
94
red_rule .mode = " DT_LIB_COLLECT_MODE_AND"
95
95
red_rule .data = " red"
96
96
red_rule .item = " DT_COLLECTION_PROP_COLORLABEL"
97
97
table.insert (rules , red_rule )
98
98
end
99
99
if image .blue then
100
- blue_rule = dt .gui .libs .collect .new_rule ()
100
+ local blue_rule = dt .gui .libs .collect .new_rule ()
101
101
blue_rule .mode = " DT_LIB_COLLECT_MODE_AND"
102
102
blue_rule .data = " blue"
103
103
blue_rule .item = " DT_COLLECTION_PROP_COLORLABEL"
104
104
table.insert (rules , blue_rule )
105
105
end
106
106
if image .green then
107
- green_rule = dt .gui .libs .collect .new_rule ()
107
+ local green_rule = dt .gui .libs .collect .new_rule ()
108
108
green_rule .mode = " DT_LIB_COLLECT_MODE_AND"
109
109
green_rule .data = " green"
110
110
green_rule .item = " DT_COLLECTION_PROP_COLORLABEL"
111
111
table.insert (rules , green_rule )
112
112
end
113
113
if image .yellow then
114
- yellow_rule = dt .gui .libs .collect .new_rule ()
114
+ local yellow_rule = dt .gui .libs .collect .new_rule ()
115
115
yellow_rule .mode = " DT_LIB_COLLECT_MODE_AND"
116
116
yellow_rule .data = " yellow"
117
117
yellow_rule .item = " DT_COLLECTION_PROP_COLORLABEL"
118
118
table.insert (rules , yellow_rule )
119
119
end
120
120
if image .purple then
121
- purple_rule = dt .gui .libs .collect .new_rule ()
121
+ local purple_rule = dt .gui .libs .collect .new_rule ()
122
122
purple_rule .mode = " DT_LIB_COLLECT_MODE_AND"
123
123
purple_rule .data = " purple"
124
124
purple_rule .item = " DT_COLLECTION_PROP_COLORLABEL"
@@ -128,26 +128,25 @@ local function CollectOnColors()
128
128
for _ ,active_rule in pairs (rules ) do
129
129
table.insert (all_rules , active_rule )
130
130
end
131
+ return all_rules
131
132
else
132
133
previous = dt .gui .libs .collect .filter (rules )
133
134
end
134
135
end
135
136
end
136
137
local function CollectOnAll_AND ()
137
138
local images = dt .gui .selection ()
138
- if CheckSingleImage (images ) == 1 then
139
+ if CheckSingleImage (images ) then
139
140
return
140
141
end
141
- all_rules = {}
142
- all_active = true
142
+ local rules = {}
143
143
if dt .preferences .read (' module_CollectHelper' ,' folder' ,' bool' ) then
144
- CollectOnFolder ()
144
+ rules = CollectOnFolder (rules , true )
145
145
end
146
146
if dt .preferences .read (' module_CollectHelper' ,' colors' ,' bool' ) then
147
- CollectOnColors ()
147
+ rules = CollectOnColors (rules , true )
148
148
end
149
- all_active = false
150
- previous = dt .gui .libs .collect .filter (all_rules )
149
+ previous = dt .gui .libs .collect .filter (rules )
151
150
end
152
151
153
152
-- GUI --
@@ -159,14 +158,14 @@ dt.gui.libs.image.register_action(
159
158
if dt .preferences .read (' module_CollectHelper' ,' folder' ,' bool' ) then
160
159
dt .gui .libs .image .register_action (
161
160
" collect: folder" ,
162
- function () CollectOnFolder () end ,
161
+ function () CollectOnFolder (_ , false ) end ,
163
162
" Sets the Collect parameters to be the selected images's folder"
164
163
)
165
164
end
166
165
if dt .preferences .read (' module_CollectHelper' ,' colors' ,' bool' ) then
167
166
dt .gui .libs .image .register_action (
168
167
" collect: color label(s)" ,
169
- function () CollectOnColors () end ,
168
+ function () CollectOnColors (_ , false ) end ,
170
169
" Sets the Collect parameters to be the selected images's color label(s)"
171
170
)
172
171
end
@@ -196,4 +195,4 @@ dt.preferences.register("module_CollectHelper", "folder", -- name
196
195
' CollectHelper: Folder' , -- label
197
196
' Enable the button that allows you to swap to a collection based on selected image\' s FOLDER location' , -- tooltip
198
197
true -- default
199
- )
198
+ )
0 commit comments