@@ -64,6 +64,7 @@ def __init__(self, iface, parent=None):
64
64
self .input_items_all = []
65
65
self .output_items_all = []
66
66
self .processes = []
67
+ self .only_selected = {}
67
68
68
69
def show_process_description (self , index ):
69
70
self .textEditProcessDescription .setText ("[" + self .processes [index ].identifier + "]: " + self .processes [index ].abstract )
@@ -102,6 +103,16 @@ def isDateInput(self, identifier, title):
102
103
return True
103
104
return False
104
105
106
+ def get_only_selected_input (self , identifier ):
107
+ input_item = QCheckBox (self .tabInputs )
108
+ input_item .setText ("Only selected features" )
109
+ input_item .setChecked (True )
110
+ self .only_selected [str (identifier )] = input_item
111
+ self .input_items_all .append (input_item )
112
+ hbox_layout = QHBoxLayout (self .tabInputs )
113
+ hbox_layout .addWidget (input_item )
114
+ return hbox_layout
115
+
105
116
def get_input (self , identifier , title , data_type , default_value , min_occurs ):
106
117
# TODO check types
107
118
input_item = None
@@ -172,6 +183,9 @@ def set_input_items(self, data):
172
183
for x in data .dataInputs :
173
184
input_item = self .get_input (x .identifier , x .title , x .dataType , x .defaultValue , x .minOccurs )
174
185
self .verticalLayoutInputs .addLayout (input_item )
186
+ if x .dataType == 'ComplexData' :
187
+ only_selected_item = self .get_only_selected_input (x .identifier )
188
+ self .verticalLayoutInputs .addLayout (only_selected_item )
175
189
self .tabInputs .setLayout (self .verticalLayoutInputs )
176
190
self .set_layer_to_qgs_field_combo_box ()
177
191
self .set_map_layer_cmb_box_connect ()
@@ -251,11 +265,15 @@ def execute_process(self):
251
265
252
266
tmp_file = QgsProcessingUtils .generateTempFilename (
253
267
self .process_identifier + '_' + param ) + tmp_ext
268
+ only_selected = False
269
+ if param in self .only_selected :
270
+ only_selected = self .only_selected [param ].isChecked ()
254
271
QgsVectorFileWriter .writeAsVectorFormat (
255
272
layer ,
256
273
tmp_file ,
257
274
fileEncoding = "UTF-8" ,
258
- driverName = tmp_frmt
275
+ driverName = tmp_frmt ,
276
+ onlySelected = only_selected
259
277
)
260
278
with open (tmp_file ) as fd :
261
279
cdi = ComplexDataInput (fd .read ())
0 commit comments