Skip to content

Commit 86f086d

Browse files
author
ruz76
committed
Fix #25
1 parent a298aa6 commit 86f086d

File tree

1 file changed

+19
-1
lines changed

1 file changed

+19
-1
lines changed

wps_dialog.py

+19-1
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,7 @@ def __init__(self, iface, parent=None):
6464
self.input_items_all = []
6565
self.output_items_all = []
6666
self.processes = []
67+
self.only_selected = {}
6768

6869
def show_process_description(self, index):
6970
self.textEditProcessDescription.setText("[" + self.processes[index].identifier + "]: " + self.processes[index].abstract)
@@ -102,6 +103,16 @@ def isDateInput(self, identifier, title):
102103
return True
103104
return False
104105

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+
105116
def get_input(self, identifier, title, data_type, default_value, min_occurs):
106117
# TODO check types
107118
input_item = None
@@ -172,6 +183,9 @@ def set_input_items(self, data):
172183
for x in data.dataInputs:
173184
input_item = self.get_input(x.identifier, x.title, x.dataType, x.defaultValue, x.minOccurs)
174185
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)
175189
self.tabInputs.setLayout(self.verticalLayoutInputs)
176190
self.set_layer_to_qgs_field_combo_box()
177191
self.set_map_layer_cmb_box_connect()
@@ -251,11 +265,15 @@ def execute_process(self):
251265

252266
tmp_file = QgsProcessingUtils.generateTempFilename(
253267
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()
254271
QgsVectorFileWriter.writeAsVectorFormat(
255272
layer,
256273
tmp_file,
257274
fileEncoding="UTF-8",
258-
driverName=tmp_frmt
275+
driverName=tmp_frmt,
276+
onlySelected=only_selected
259277
)
260278
with open(tmp_file) as fd:
261279
cdi = ComplexDataInput(fd.read())

0 commit comments

Comments
 (0)