QGIS API Documentation 4.3.0-Master (2b7e6c9893e)
Loading...
Searching...
No Matches
qgsprocessingwidgetwrapperimpl.h
Go to the documentation of this file.
1/***************************************************************************
2 qgsprocessingwidgetwrapperimpl.h
3 ---------------------
4 begin : August 2018
5 copyright : (C) 2018 by Nyall Dawson
6 email : nyall dot dawson at gmail dot com
7 ***************************************************************************/
8
9/***************************************************************************
10 * *
11 * This program is free software; you can redistribute it and/or modify *
12 * it under the terms of the GNU General Public License as published by *
13 * the Free Software Foundation; either version 2 of the License, or *
14 * (at your option) any later version. *
15 * *
16 ***************************************************************************/
17
18
19#ifndef QGSPROCESSINGWIDGETWRAPPERIMPL_H
20#define QGSPROCESSINGWIDGETWRAPPERIMPL_H
21
22#include "ui_qgsinterpolationsourcewidgetbase.h"
23#include "ui_qgsprocessingpixelsizewidgetbase.h"
24#include "ui_qgsprocessingreliefcolorswidgetbase.h"
25
27#include "qgsmaptool.h"
29#include "qgspointcloudlayer.h"
34#include "qgsrasterlayerutils.h"
35#include "qobjectuniqueptr.h"
36
37#include <QAbstractButton>
38
39#define SIP_NO_FILE
40
41class QCheckBox;
42class QComboBox;
43class QLineEdit;
44class QPlainTextEdit;
45class QToolButton;
46class QButtonGroup;
48class QgsSpinBox;
51class QgsProcessingMatrixParameterPanel;
52class QgsFileWidget;
59class QgsPrintLayout;
60class QgsScaleWidget;
63class QgsColorButton;
66class QgsDateTimeEdit;
67class QgsDateEdit;
68class QgsTimeEdit;
72class QgsExtentWidget;
73class QgsProcessingEnumModelerWidget;
74class QgsProcessingMatrixModelerWidget;
75class QgsProcessingMapLayerComboBox;
78class QgsProcessingLayerOutputDestinationWidget;
81class QgsProcessingPointCloudExpressionLineEdit;
82class QgsProcessingRasterCalculatorExpressionLineEdit;
83class QgsRubberBand;
86class QTreeWidgetItem;
87class QTreeWidget;
88
90
91class GUI_EXPORT QgsProcessingBooleanParameterDefinitionWidget : public QgsProcessingAbstractParameterDefinitionWidget
92{
93 Q_OBJECT
94 public:
95 QgsProcessingBooleanParameterDefinitionWidget(
96 QgsProcessingContext &context,
97 const QgsProcessingParameterWidgetContext &widgetContext,
98 const QgsProcessingParameterDefinition *definition = nullptr,
99 const QgsProcessingAlgorithm *algorithm = nullptr,
100 QWidget *parent SIP_TRANSFERTHIS = nullptr
101 );
102 QgsProcessingParameterDefinition *createParameter( const QString &name, const QString &description, Qgis::ProcessingParameterFlags flags ) const override;
103
104 private:
105 QCheckBox *mDefaultCheckBox = nullptr;
106};
107
108class GUI_EXPORT QgsProcessingBooleanWidgetWrapper : public QgsAbstractProcessingParameterWidgetWrapper, public QgsProcessingParameterWidgetFactoryInterface
109{
110 Q_OBJECT
111
112 public:
113 QgsProcessingBooleanWidgetWrapper( const QgsProcessingParameterDefinition *parameter = nullptr, Qgis::ProcessingMode type = Qgis::ProcessingMode::Standard, QWidget *parent = nullptr );
114
115 // QgsProcessingParameterWidgetFactoryInterface
116 QString parameterType() const override;
117 QgsAbstractProcessingParameterWidgetWrapper *createWidgetWrapper( const QgsProcessingParameterDefinition *parameter, Qgis::ProcessingMode type ) override;
118 QgsProcessingAbstractParameterDefinitionWidget *createParameterDefinitionWidget(
119 QgsProcessingContext &context, const QgsProcessingParameterWidgetContext &widgetContext, const QgsProcessingParameterDefinition *definition = nullptr, const QgsProcessingAlgorithm *algorithm = nullptr
120 ) override;
121
122 // QgsProcessingParameterWidgetWrapper interface
123 QWidget *createWidget() override SIP_FACTORY;
124 QLabel *createLabel() override SIP_FACTORY;
125
126 protected:
127 void setWidgetValue( const QVariant &value, QgsProcessingContext &context ) override;
128 QVariant widgetValue() const override;
129
130 private:
131 QCheckBox *mCheckBox = nullptr;
132 QComboBox *mComboBox = nullptr;
133
134 friend class TestProcessingGui;
135};
136
137
138class GUI_EXPORT QgsProcessingCrsParameterDefinitionWidget : public QgsProcessingAbstractParameterDefinitionWidget
139{
140 Q_OBJECT
141 public:
142 QgsProcessingCrsParameterDefinitionWidget(
143 QgsProcessingContext &context,
144 const QgsProcessingParameterWidgetContext &widgetContext,
145 const QgsProcessingParameterDefinition *definition = nullptr,
146 const QgsProcessingAlgorithm *algorithm = nullptr,
147 QWidget *parent SIP_TRANSFERTHIS = nullptr
148 );
149 QgsProcessingParameterDefinition *createParameter( const QString &name, const QString &description, Qgis::ProcessingParameterFlags flags ) const override;
150
151 private:
152 QgsProjectionSelectionWidget *mCrsSelector = nullptr;
153};
154
155class GUI_EXPORT QgsProcessingCrsWidgetWrapper : public QgsAbstractProcessingParameterWidgetWrapper, public QgsProcessingParameterWidgetFactoryInterface
156{
157 Q_OBJECT
158
159 public:
160 QgsProcessingCrsWidgetWrapper( const QgsProcessingParameterDefinition *parameter = nullptr, Qgis::ProcessingMode type = Qgis::ProcessingMode::Standard, QWidget *parent = nullptr );
161
162 // QgsProcessingParameterWidgetFactoryInterface
163 QString parameterType() const override;
164 QgsAbstractProcessingParameterWidgetWrapper *createWidgetWrapper( const QgsProcessingParameterDefinition *parameter, Qgis::ProcessingMode type ) override;
165 QgsProcessingAbstractParameterDefinitionWidget *createParameterDefinitionWidget(
166 QgsProcessingContext &context, const QgsProcessingParameterWidgetContext &widgetContext, const QgsProcessingParameterDefinition *definition = nullptr, const QgsProcessingAlgorithm *algorithm = nullptr
167 ) override;
168
169 // QgsProcessingParameterWidgetWrapper interface
170 QWidget *createWidget() override SIP_FACTORY;
171
172 protected:
173 void setWidgetValue( const QVariant &value, QgsProcessingContext &context ) override;
174 QVariant widgetValue() const override;
175
176 QString modelerExpressionFormatString() const override;
177
178 private:
179 QgsProjectionSelectionWidget *mProjectionSelectionWidget = nullptr;
180 QCheckBox *mUseProjectCrsCheckBox = nullptr;
181
182 friend class TestProcessingGui;
183};
184
185
186class GUI_EXPORT QgsProcessingStringParameterDefinitionWidget : public QgsProcessingAbstractParameterDefinitionWidget
187{
188 Q_OBJECT
189 public:
190 QgsProcessingStringParameterDefinitionWidget(
191 QgsProcessingContext &context,
192 const QgsProcessingParameterWidgetContext &widgetContext,
193 const QgsProcessingParameterDefinition *definition = nullptr,
194 const QgsProcessingAlgorithm *algorithm = nullptr,
195 QWidget *parent SIP_TRANSFERTHIS = nullptr
196 );
197 QgsProcessingParameterDefinition *createParameter( const QString &name, const QString &description, Qgis::ProcessingParameterFlags flags ) const override;
198
199 private:
200 QLineEdit *mDefaultLineEdit = nullptr;
201 QCheckBox *mMultiLineCheckBox = nullptr;
202};
203
204class GUI_EXPORT QgsProcessingStringWidgetWrapper : public QgsAbstractProcessingParameterWidgetWrapper, public QgsProcessingParameterWidgetFactoryInterface
205{
206 Q_OBJECT
207
208 public:
209 QgsProcessingStringWidgetWrapper( const QgsProcessingParameterDefinition *parameter = nullptr, Qgis::ProcessingMode type = Qgis::ProcessingMode::Standard, QWidget *parent = nullptr );
210
211 // QgsProcessingParameterWidgetFactoryInterface
212 QString parameterType() const override;
213 QgsAbstractProcessingParameterWidgetWrapper *createWidgetWrapper( const QgsProcessingParameterDefinition *parameter, Qgis::ProcessingMode type ) override;
214 QgsProcessingAbstractParameterDefinitionWidget *createParameterDefinitionWidget(
215 QgsProcessingContext &context, const QgsProcessingParameterWidgetContext &widgetContext, const QgsProcessingParameterDefinition *definition = nullptr, const QgsProcessingAlgorithm *algorithm = nullptr
216 ) override;
217
218 // QgsProcessingParameterWidgetWrapper interface
219 QWidget *createWidget() override SIP_FACTORY;
220
221 protected:
222 void setWidgetValue( const QVariant &value, QgsProcessingContext &context ) override;
223 QVariant widgetValue() const override;
224
225 private:
226 QLineEdit *mLineEdit = nullptr;
227 QComboBox *mComboBox = nullptr;
228 QPlainTextEdit *mPlainTextEdit = nullptr;
229
230 friend class TestProcessingGui;
231};
232
233
234class GUI_EXPORT QgsProcessingAuthConfigWidgetWrapper : public QgsAbstractProcessingParameterWidgetWrapper, public QgsProcessingParameterWidgetFactoryInterface
235{
236 Q_OBJECT
237
238 public:
239 QgsProcessingAuthConfigWidgetWrapper( const QgsProcessingParameterDefinition *parameter = nullptr, Qgis::ProcessingMode type = Qgis::ProcessingMode::Standard, QWidget *parent = nullptr );
240
241 // QgsProcessingParameterWidgetFactoryInterface
242 QString parameterType() const override;
243 QgsAbstractProcessingParameterWidgetWrapper *createWidgetWrapper( const QgsProcessingParameterDefinition *parameter, Qgis::ProcessingMode type ) override;
244
245 // QgsProcessingParameterWidgetWrapper interface
246 QWidget *createWidget() override SIP_FACTORY;
247
248 protected:
249 void setWidgetValue( const QVariant &value, QgsProcessingContext &context ) override;
250 QVariant widgetValue() const override;
251
252 private:
253 QgsAuthConfigSelect *mAuthConfigSelect = nullptr;
254
255 friend class TestProcessingGui;
256};
257
258
259class GUI_EXPORT QgsProcessingNumberParameterDefinitionWidget : public QgsProcessingAbstractParameterDefinitionWidget
260{
261 Q_OBJECT
262 public:
263 QgsProcessingNumberParameterDefinitionWidget(
264 QgsProcessingContext &context,
265 const QgsProcessingParameterWidgetContext &widgetContext,
266 const QgsProcessingParameterDefinition *definition = nullptr,
267 const QgsProcessingAlgorithm *algorithm = nullptr,
268 QWidget *parent SIP_TRANSFERTHIS = nullptr
269 );
270 QgsProcessingParameterDefinition *createParameter( const QString &name, const QString &description, Qgis::ProcessingParameterFlags flags ) const override;
271
272 private:
273 QComboBox *mTypeComboBox = nullptr;
274 QLineEdit *mMinLineEdit = nullptr;
275 QLineEdit *mMaxLineEdit = nullptr;
276 QLineEdit *mDefaultLineEdit = nullptr;
277};
278
279
280class GUI_EXPORT QgsProcessingNumericWidgetWrapper : public QgsAbstractProcessingParameterWidgetWrapper, public QgsProcessingParameterWidgetFactoryInterface
281{
282 Q_OBJECT
283
284 public:
285 QgsProcessingNumericWidgetWrapper( const QgsProcessingParameterDefinition *parameter = nullptr, Qgis::ProcessingMode type = Qgis::ProcessingMode::Standard, QWidget *parent = nullptr );
286
287 // QgsProcessingParameterWidgetFactoryInterface
288 QString parameterType() const override;
289 QgsAbstractProcessingParameterWidgetWrapper *createWidgetWrapper( const QgsProcessingParameterDefinition *parameter, Qgis::ProcessingMode type ) override;
290 QgsProcessingAbstractParameterDefinitionWidget *createParameterDefinitionWidget(
291 QgsProcessingContext &context, const QgsProcessingParameterWidgetContext &widgetContext, const QgsProcessingParameterDefinition *definition = nullptr, const QgsProcessingAlgorithm *algorithm = nullptr
292 ) override;
293
294 // QgsProcessingParameterWidgetWrapper interface
295 QWidget *createWidget() override SIP_FACTORY;
296
297 protected:
298 void setWidgetValue( const QVariant &value, QgsProcessingContext &context ) override;
299 QVariant widgetValue() const override;
300
301 protected:
302 QgsSpinBox *mSpinBox = nullptr;
303 QgsDoubleSpinBox *mDoubleSpinBox = nullptr;
304
305 private:
306 static double calculateStep( double minimum, double maximum );
307
308 bool mAllowingNull = false;
309
310 friend class TestProcessingGui;
311};
312
313
314class GUI_EXPORT QgsProcessingDistanceParameterDefinitionWidget : public QgsProcessingAbstractParameterDefinitionWidget
315{
316 Q_OBJECT
317 public:
318 QgsProcessingDistanceParameterDefinitionWidget(
319 QgsProcessingContext &context,
320 const QgsProcessingParameterWidgetContext &widgetContext,
321 const QgsProcessingParameterDefinition *definition = nullptr,
322 const QgsProcessingAlgorithm *algorithm = nullptr,
323 QWidget *parent SIP_TRANSFERTHIS = nullptr
324 );
325 QgsProcessingParameterDefinition *createParameter( const QString &name, const QString &description, Qgis::ProcessingParameterFlags flags ) const override;
326
327 private:
328 QComboBox *mParentLayerComboBox = nullptr;
329 QLineEdit *mMinLineEdit = nullptr;
330 QLineEdit *mMaxLineEdit = nullptr;
331 QLineEdit *mDefaultLineEdit = nullptr;
332};
333
334class GUI_EXPORT QgsProcessingDistanceWidgetWrapper : public QgsProcessingNumericWidgetWrapper
335{
336 Q_OBJECT
337
338 public:
339 QgsProcessingDistanceWidgetWrapper( const QgsProcessingParameterDefinition *parameter = nullptr, Qgis::ProcessingMode type = Qgis::ProcessingMode::Standard, QWidget *parent = nullptr );
340
341 // QgsProcessingParameterWidgetFactoryInterface
342 QString parameterType() const override;
343 QgsAbstractProcessingParameterWidgetWrapper *createWidgetWrapper( const QgsProcessingParameterDefinition *parameter, Qgis::ProcessingMode type ) override;
344 QgsProcessingAbstractParameterDefinitionWidget *createParameterDefinitionWidget(
345 QgsProcessingContext &context, const QgsProcessingParameterWidgetContext &widgetContext, const QgsProcessingParameterDefinition *definition = nullptr, const QgsProcessingAlgorithm *algorithm = nullptr
346 ) override;
347
348 // QgsProcessingParameterWidgetWrapper interface
349 QWidget *createWidget() override SIP_FACTORY;
350 void postInitialize( const QList<QgsAbstractProcessingParameterWidgetWrapper *> &wrappers ) override;
351
352 public slots:
353 void setUnitParameterValue( const QVariant &value, const QgsAbstractProcessingParameterWidgetWrapper *unitParameterWrapper = nullptr );
354 void setUnits( Qgis::DistanceUnit unit );
355
356 protected:
357 QVariant widgetValue() const override;
358
359 private:
360 Qgis::DistanceUnit mBaseUnit = Qgis::DistanceUnit::Unknown;
361 QLabel *mLabel = nullptr;
362 QWidget *mWarningLabel = nullptr;
363 QComboBox *mUnitsCombo = nullptr;
364
365 friend class TestProcessingGui;
366};
367
368class GUI_EXPORT QgsProcessingAreaParameterDefinitionWidget : public QgsProcessingAbstractParameterDefinitionWidget
369{
370 Q_OBJECT
371 public:
372 QgsProcessingAreaParameterDefinitionWidget(
373 QgsProcessingContext &context,
374 const QgsProcessingParameterWidgetContext &widgetContext,
375 const QgsProcessingParameterDefinition *definition = nullptr,
376 const QgsProcessingAlgorithm *algorithm = nullptr,
377 QWidget *parent SIP_TRANSFERTHIS = nullptr
378 );
379 QgsProcessingParameterDefinition *createParameter( const QString &name, const QString &description, Qgis::ProcessingParameterFlags flags ) const override;
380
381 private:
382 QComboBox *mParentLayerComboBox = nullptr;
383 QLineEdit *mMinLineEdit = nullptr;
384 QLineEdit *mMaxLineEdit = nullptr;
385 QLineEdit *mDefaultLineEdit = nullptr;
386};
387
388class GUI_EXPORT QgsProcessingAreaWidgetWrapper : public QgsProcessingNumericWidgetWrapper
389{
390 Q_OBJECT
391
392 public:
393 QgsProcessingAreaWidgetWrapper( const QgsProcessingParameterDefinition *parameter = nullptr, Qgis::ProcessingMode type = Qgis::ProcessingMode::Standard, QWidget *parent = nullptr );
394
395 // QgsProcessingParameterWidgetFactoryInterface
396 QString parameterType() const override;
397 QgsAbstractProcessingParameterWidgetWrapper *createWidgetWrapper( const QgsProcessingParameterDefinition *parameter, Qgis::ProcessingMode type ) override;
398 QgsProcessingAbstractParameterDefinitionWidget *createParameterDefinitionWidget(
399 QgsProcessingContext &context, const QgsProcessingParameterWidgetContext &widgetContext, const QgsProcessingParameterDefinition *definition = nullptr, const QgsProcessingAlgorithm *algorithm = nullptr
400 ) override;
401
402 // QgsProcessingParameterWidgetWrapper interface
403 QWidget *createWidget() override SIP_FACTORY;
404 void postInitialize( const QList<QgsAbstractProcessingParameterWidgetWrapper *> &wrappers ) override;
405
406 public slots:
407 void setUnitParameterValue( const QVariant &value, const QgsAbstractProcessingParameterWidgetWrapper *unitParameterWrapper = nullptr );
408 void setUnits( Qgis::AreaUnit unit );
409
410 protected:
411 QVariant widgetValue() const override;
412
413 private:
414 Qgis::AreaUnit mBaseUnit = Qgis::AreaUnit::Unknown;
415 QLabel *mLabel = nullptr;
416 QWidget *mWarningLabel = nullptr;
417 QComboBox *mUnitsCombo = nullptr;
418
419 friend class TestProcessingGui;
420};
421
422
423class GUI_EXPORT QgsProcessingVolumeParameterDefinitionWidget : public QgsProcessingAbstractParameterDefinitionWidget
424{
425 Q_OBJECT
426 public:
427 QgsProcessingVolumeParameterDefinitionWidget(
428 QgsProcessingContext &context,
429 const QgsProcessingParameterWidgetContext &widgetContext,
430 const QgsProcessingParameterDefinition *definition = nullptr,
431 const QgsProcessingAlgorithm *algorithm = nullptr,
432 QWidget *parent SIP_TRANSFERTHIS = nullptr
433 );
434 QgsProcessingParameterDefinition *createParameter( const QString &name, const QString &description, Qgis::ProcessingParameterFlags flags ) const override;
435
436 private:
437 QComboBox *mParentLayerComboBox = nullptr;
438 QLineEdit *mMinLineEdit = nullptr;
439 QLineEdit *mMaxLineEdit = nullptr;
440 QLineEdit *mDefaultLineEdit = nullptr;
441};
442
443class GUI_EXPORT QgsProcessingVolumeWidgetWrapper : public QgsProcessingNumericWidgetWrapper
444{
445 Q_OBJECT
446
447 public:
448 QgsProcessingVolumeWidgetWrapper( const QgsProcessingParameterDefinition *parameter = nullptr, Qgis::ProcessingMode type = Qgis::ProcessingMode::Standard, QWidget *parent = nullptr );
449
450 // QgsProcessingParameterWidgetFactoryInterface
451 QString parameterType() const override;
452 QgsAbstractProcessingParameterWidgetWrapper *createWidgetWrapper( const QgsProcessingParameterDefinition *parameter, Qgis::ProcessingMode type ) override;
453 QgsProcessingAbstractParameterDefinitionWidget *createParameterDefinitionWidget(
454 QgsProcessingContext &context, const QgsProcessingParameterWidgetContext &widgetContext, const QgsProcessingParameterDefinition *definition = nullptr, const QgsProcessingAlgorithm *algorithm = nullptr
455 ) override;
456
457 // QgsProcessingParameterWidgetWrapper interface
458 QWidget *createWidget() override SIP_FACTORY;
459 void postInitialize( const QList<QgsAbstractProcessingParameterWidgetWrapper *> &wrappers ) override;
460
461 public slots:
462 void setUnitParameterValue( const QVariant &value, const QgsAbstractProcessingParameterWidgetWrapper *unitParameterWrapper = nullptr );
463 void setUnits( Qgis::VolumeUnit unit );
464
465 protected:
466 QVariant widgetValue() const override;
467
468 private:
469 Qgis::VolumeUnit mBaseUnit = Qgis::VolumeUnit::Unknown;
470 QLabel *mLabel = nullptr;
471 QWidget *mWarningLabel = nullptr;
472 QComboBox *mUnitsCombo = nullptr;
473
474 friend class TestProcessingGui;
475};
476
477
478class GUI_EXPORT QgsProcessingDurationParameterDefinitionWidget : public QgsProcessingAbstractParameterDefinitionWidget
479{
480 Q_OBJECT
481 public:
482 QgsProcessingDurationParameterDefinitionWidget(
483 QgsProcessingContext &context,
484 const QgsProcessingParameterWidgetContext &widgetContext,
485 const QgsProcessingParameterDefinition *definition = nullptr,
486 const QgsProcessingAlgorithm *algorithm = nullptr,
487 QWidget *parent SIP_TRANSFERTHIS = nullptr
488 );
489 QgsProcessingParameterDefinition *createParameter( const QString &name, const QString &description, Qgis::ProcessingParameterFlags flags ) const override;
490
491 private:
492 QLineEdit *mMinLineEdit = nullptr;
493 QLineEdit *mMaxLineEdit = nullptr;
494 QLineEdit *mDefaultLineEdit = nullptr;
495 QComboBox *mUnitsCombo = nullptr;
496};
497
498class GUI_EXPORT QgsProcessingDurationWidgetWrapper : public QgsProcessingNumericWidgetWrapper
499{
500 Q_OBJECT
501
502 public:
503 QgsProcessingDurationWidgetWrapper( const QgsProcessingParameterDefinition *parameter = nullptr, Qgis::ProcessingMode type = Qgis::ProcessingMode::Standard, QWidget *parent = nullptr );
504
505 // QgsProcessingParameterWidgetFactoryInterface
506 QString parameterType() const override;
507 QgsAbstractProcessingParameterWidgetWrapper *createWidgetWrapper( const QgsProcessingParameterDefinition *parameter, Qgis::ProcessingMode type ) override;
508 QgsProcessingAbstractParameterDefinitionWidget *createParameterDefinitionWidget(
509 QgsProcessingContext &context, const QgsProcessingParameterWidgetContext &widgetContext, const QgsProcessingParameterDefinition *definition = nullptr, const QgsProcessingAlgorithm *algorithm = nullptr
510 ) override;
511
512 // QgsProcessingParameterWidgetWrapper interface
513 QWidget *createWidget() override SIP_FACTORY;
514 QLabel *createLabel() override SIP_FACTORY;
515
516 protected:
517 QVariant widgetValue() const override;
518 void setWidgetValue( const QVariant &value, QgsProcessingContext &context ) override;
519
520 private:
521 Qgis::TemporalUnit mBaseUnit = Qgis::TemporalUnit::Milliseconds;
522 QComboBox *mUnitsCombo = nullptr;
523
524 friend class TestProcessingGui;
525};
526
527class GUI_EXPORT QgsProcessingScaleParameterDefinitionWidget : public QgsProcessingAbstractParameterDefinitionWidget
528{
529 Q_OBJECT
530 public:
531 QgsProcessingScaleParameterDefinitionWidget(
532 QgsProcessingContext &context,
533 const QgsProcessingParameterWidgetContext &widgetContext,
534 const QgsProcessingParameterDefinition *definition = nullptr,
535 const QgsProcessingAlgorithm *algorithm = nullptr,
536 QWidget *parent SIP_TRANSFERTHIS = nullptr
537 );
538 QgsProcessingParameterDefinition *createParameter( const QString &name, const QString &description, Qgis::ProcessingParameterFlags flags ) const override;
539
540 private:
541 QLineEdit *mDefaultLineEdit = nullptr;
542};
543
544class GUI_EXPORT QgsProcessingScaleWidgetWrapper : public QgsProcessingNumericWidgetWrapper
545{
546 Q_OBJECT
547
548 public:
549 QgsProcessingScaleWidgetWrapper( const QgsProcessingParameterDefinition *parameter = nullptr, Qgis::ProcessingMode type = Qgis::ProcessingMode::Standard, QWidget *parent = nullptr );
550
551 // QgsProcessingParameterWidgetFactoryInterface
552 QString parameterType() const override;
553 QgsAbstractProcessingParameterWidgetWrapper *createWidgetWrapper( const QgsProcessingParameterDefinition *parameter, Qgis::ProcessingMode type ) override;
554 QgsProcessingAbstractParameterDefinitionWidget *createParameterDefinitionWidget(
555 QgsProcessingContext &context, const QgsProcessingParameterWidgetContext &widgetContext, const QgsProcessingParameterDefinition *definition = nullptr, const QgsProcessingAlgorithm *algorithm = nullptr
556 ) override;
557
558 // QgsProcessingParameterWidgetWrapper interface
559 QWidget *createWidget() override SIP_FACTORY;
560 void setWidgetContext( const QgsProcessingParameterWidgetContext &context ) override;
561
562 protected:
563 QVariant widgetValue() const override;
564 void setWidgetValue( const QVariant &value, QgsProcessingContext &context ) override;
565
566 private:
567 QgsScaleWidget *mScaleWidget = nullptr;
568
569 friend class TestProcessingGui;
570};
571
572
573class GUI_EXPORT QgsProcessingRangeParameterDefinitionWidget : public QgsProcessingAbstractParameterDefinitionWidget
574{
575 Q_OBJECT
576 public:
577 QgsProcessingRangeParameterDefinitionWidget(
578 QgsProcessingContext &context,
579 const QgsProcessingParameterWidgetContext &widgetContext,
580 const QgsProcessingParameterDefinition *definition = nullptr,
581 const QgsProcessingAlgorithm *algorithm = nullptr,
582 QWidget *parent SIP_TRANSFERTHIS = nullptr
583 );
584 QgsProcessingParameterDefinition *createParameter( const QString &name, const QString &description, Qgis::ProcessingParameterFlags flags ) const override;
585
586 private:
587 QComboBox *mTypeComboBox = nullptr;
588 QLineEdit *mMinLineEdit = nullptr;
589 QLineEdit *mMaxLineEdit = nullptr;
590};
591
592class GUI_EXPORT QgsProcessingRangeWidgetWrapper : public QgsAbstractProcessingParameterWidgetWrapper, public QgsProcessingParameterWidgetFactoryInterface
593{
594 Q_OBJECT
595
596 public:
597 QgsProcessingRangeWidgetWrapper( const QgsProcessingParameterDefinition *parameter = nullptr, Qgis::ProcessingMode type = Qgis::ProcessingMode::Standard, QWidget *parent = nullptr );
598
599 // QgsProcessingParameterWidgetFactoryInterface
600 QString parameterType() const override;
601 QgsAbstractProcessingParameterWidgetWrapper *createWidgetWrapper( const QgsProcessingParameterDefinition *parameter, Qgis::ProcessingMode type ) override;
602 QgsProcessingAbstractParameterDefinitionWidget *createParameterDefinitionWidget(
603 QgsProcessingContext &context, const QgsProcessingParameterWidgetContext &widgetContext, const QgsProcessingParameterDefinition *definition = nullptr, const QgsProcessingAlgorithm *algorithm = nullptr
604 ) override;
605
606 // QgsProcessingParameterWidgetWrapper interface
607 QWidget *createWidget() override SIP_FACTORY;
608
609 protected:
610 void setWidgetValue( const QVariant &value, QgsProcessingContext &context ) override;
611 QVariant widgetValue() const override;
612 QString modelerExpressionFormatString() const override;
613
614 protected:
615 QgsDoubleSpinBox *mMinSpinBox = nullptr;
616 QgsDoubleSpinBox *mMaxSpinBox = nullptr;
617
618 private:
619 int mBlockChangedSignal = 0;
620 bool mAllowingNull = false;
621
622 friend class TestProcessingGui;
623};
624
625class GUI_EXPORT QgsProcessingMatrixParameterDefinitionWidget : public QgsProcessingAbstractParameterDefinitionWidget
626{
627 Q_OBJECT
628 public:
629 QgsProcessingMatrixParameterDefinitionWidget(
630 QgsProcessingContext &context,
631 const QgsProcessingParameterWidgetContext &widgetContext,
632 const QgsProcessingParameterDefinition *definition = nullptr,
633 const QgsProcessingAlgorithm *algorithm = nullptr,
634 QWidget *parent SIP_TRANSFERTHIS = nullptr
635 );
636 QgsProcessingParameterDefinition *createParameter( const QString &name, const QString &description, Qgis::ProcessingParameterFlags flags ) const override;
637
638 private:
639 QgsProcessingMatrixModelerWidget *mMatrixWidget = nullptr;
640};
641
642class GUI_EXPORT QgsProcessingMatrixWidgetWrapper : public QgsAbstractProcessingParameterWidgetWrapper, public QgsProcessingParameterWidgetFactoryInterface
643{
644 Q_OBJECT
645
646 public:
647 QgsProcessingMatrixWidgetWrapper( const QgsProcessingParameterDefinition *parameter = nullptr, Qgis::ProcessingMode type = Qgis::ProcessingMode::Standard, QWidget *parent = nullptr );
648
649 // QgsProcessingParameterWidgetFactoryInterface
650 QString parameterType() const override;
651 QgsAbstractProcessingParameterWidgetWrapper *createWidgetWrapper( const QgsProcessingParameterDefinition *parameter, Qgis::ProcessingMode type ) override;
652 QgsProcessingAbstractParameterDefinitionWidget *createParameterDefinitionWidget(
653 QgsProcessingContext &context, const QgsProcessingParameterWidgetContext &widgetContext, const QgsProcessingParameterDefinition *definition = nullptr, const QgsProcessingAlgorithm *algorithm = nullptr
654 ) override;
655
656 // QgsProcessingParameterWidgetWrapper interface
657 QWidget *createWidget() override SIP_FACTORY;
658
659 protected:
660 void setWidgetValue( const QVariant &value, QgsProcessingContext &context ) override;
661 QVariant widgetValue() const override;
662
663 QString modelerExpressionFormatString() const override;
664
665 private:
666 QgsProcessingMatrixParameterPanel *mMatrixWidget = nullptr;
667
668 friend class TestProcessingGui;
669};
670
671class GUI_EXPORT QgsProcessingFileParameterDefinitionWidget : public QgsProcessingAbstractParameterDefinitionWidget
672{
673 Q_OBJECT
674 public:
675 QgsProcessingFileParameterDefinitionWidget(
676 QgsProcessingContext &context,
677 const QgsProcessingParameterWidgetContext &widgetContext,
678 const QgsProcessingParameterDefinition *definition = nullptr,
679 const QgsProcessingAlgorithm *algorithm = nullptr,
680 QWidget *parent SIP_TRANSFERTHIS = nullptr
681 );
682 QgsProcessingParameterDefinition *createParameter( const QString &name, const QString &description, Qgis::ProcessingParameterFlags flags ) const override;
683
684 private:
685 QComboBox *mTypeComboBox = nullptr;
686 QComboBox *mFilterComboBox = nullptr;
687 QgsFileWidget *mDefaultFileWidget = nullptr;
688};
689
690class GUI_EXPORT QgsProcessingFileWidgetWrapper : public QgsAbstractProcessingParameterWidgetWrapper, public QgsProcessingParameterWidgetFactoryInterface
691{
692 Q_OBJECT
693
694 public:
695 QgsProcessingFileWidgetWrapper( const QgsProcessingParameterDefinition *parameter = nullptr, Qgis::ProcessingMode type = Qgis::ProcessingMode::Standard, QWidget *parent = nullptr );
696
697 // QgsProcessingParameterWidgetFactoryInterface
698 QString parameterType() const override;
699 QgsAbstractProcessingParameterWidgetWrapper *createWidgetWrapper( const QgsProcessingParameterDefinition *parameter, Qgis::ProcessingMode type ) override;
700 QgsProcessingAbstractParameterDefinitionWidget *createParameterDefinitionWidget(
701 QgsProcessingContext &context, const QgsProcessingParameterWidgetContext &widgetContext, const QgsProcessingParameterDefinition *definition = nullptr, const QgsProcessingAlgorithm *algorithm = nullptr
702 ) override;
703
704 // QgsProcessingParameterWidgetWrapper interface
705 QWidget *createWidget() override SIP_FACTORY;
706
707 protected:
708 void setWidgetValue( const QVariant &value, QgsProcessingContext &context ) override;
709 QVariant widgetValue() const override;
710
711 QString modelerExpressionFormatString() const override;
712
713 private:
714 QgsFileWidget *mFileWidget = nullptr;
715
716 friend class TestProcessingGui;
717};
718
719
720class GUI_EXPORT QgsProcessingExpressionParameterDefinitionWidget : public QgsProcessingAbstractParameterDefinitionWidget
721{
722 Q_OBJECT
723 public:
724 QgsProcessingExpressionParameterDefinitionWidget(
725 QgsProcessingContext &context,
726 const QgsProcessingParameterWidgetContext &widgetContext,
727 const QgsProcessingParameterDefinition *definition = nullptr,
728 const QgsProcessingAlgorithm *algorithm = nullptr,
729 QWidget *parent SIP_TRANSFERTHIS = nullptr
730 );
731 QgsProcessingParameterDefinition *createParameter( const QString &name, const QString &description, Qgis::ProcessingParameterFlags flags ) const override;
732
733 private:
734 QComboBox *mParentLayerComboBox = nullptr;
735 QgsExpressionLineEdit *mDefaultQgisLineEdit = nullptr;
736 QgsProcessingPointCloudExpressionLineEdit *mDefaultPointCloudLineEdit = nullptr;
737 QgsProcessingRasterCalculatorExpressionLineEdit *mDefaultRasterCalculatorLineEdit = nullptr;
738 QComboBox *mExpressionTypeComboBox = nullptr;
739};
740
741class GUI_EXPORT QgsProcessingExpressionWidgetWrapper : public QgsAbstractProcessingParameterWidgetWrapper, public QgsProcessingParameterWidgetFactoryInterface
742{
743 Q_OBJECT
744
745 public:
746 QgsProcessingExpressionWidgetWrapper( const QgsProcessingParameterDefinition *parameter = nullptr, Qgis::ProcessingMode type = Qgis::ProcessingMode::Standard, QWidget *parent = nullptr );
747
748 // QgsProcessingParameterWidgetFactoryInterface
749 QString parameterType() const override;
750 QgsAbstractProcessingParameterWidgetWrapper *createWidgetWrapper( const QgsProcessingParameterDefinition *parameter, Qgis::ProcessingMode type ) override;
751 QgsProcessingAbstractParameterDefinitionWidget *createParameterDefinitionWidget(
752 QgsProcessingContext &context, const QgsProcessingParameterWidgetContext &widgetContext, const QgsProcessingParameterDefinition *definition = nullptr, const QgsProcessingAlgorithm *algorithm = nullptr
753 ) override;
754
755 // QgsProcessingParameterWidgetWrapper interface
756 QWidget *createWidget() override SIP_FACTORY;
757 void postInitialize( const QList<QgsAbstractProcessingParameterWidgetWrapper *> &wrappers ) override;
758 void registerProcessingContextGenerator( QgsProcessingContextGenerator *generator ) override;
759
760 public slots:
761 void setParentLayerWrapperValue( const QgsAbstractProcessingParameterWidgetWrapper *parentWrapper );
762
763 protected:
764 void setWidgetValue( const QVariant &value, QgsProcessingContext &context ) override;
765 QVariant widgetValue() const override;
766
767 QString modelerExpressionFormatString() const override;
768 const QgsVectorLayer *linkedVectorLayer() const override;
769
770 private:
771 QgsFieldExpressionWidget *mFieldExpWidget = nullptr;
772 QgsExpressionBuilderWidget *mExpBuilderWidget = nullptr;
773 QgsExpressionLineEdit *mExpLineEdit = nullptr;
774 QgsProcessingPointCloudExpressionLineEdit *mPointCloudExpLineEdit = nullptr;
775 QgsProcessingRasterCalculatorExpressionLineEdit *mRasterCalculatorExpLineEdit = nullptr;
776 std::unique_ptr<QgsMapLayer> mParentLayer;
777
778 friend class TestProcessingGui;
779};
780
781
782class GUI_EXPORT QgsProcessingEnumCheckboxPanelWidget : public QWidget
783{
784 Q_OBJECT
785
786 public:
787 QgsProcessingEnumCheckboxPanelWidget( QWidget *parent = nullptr, const QgsProcessingParameterEnum *param = nullptr, int columns = 2 );
788 QVariant value() const;
789 void setValue( const QVariant &value );
790
791 signals:
792
793 void changed();
794
795 private slots:
796
797 void showPopupMenu();
798 void selectAll();
799 void deselectAll();
800
801 private:
802 const QgsProcessingParameterEnum *mParam = nullptr;
803 QMap<QVariant, QAbstractButton *> mButtons;
804 QButtonGroup *mButtonGroup = nullptr;
805 int mColumns = 2;
806 bool mBlockChangedSignal = false;
807
808 friend class TestProcessingGui;
809};
810
811class GUI_EXPORT QgsProcessingEnumPanelWidget : public QWidget
812{
813 Q_OBJECT
814
815 public:
816 QgsProcessingEnumPanelWidget( QWidget *parent = nullptr, const QgsProcessingParameterEnum *param = nullptr );
817 QVariant value() const { return mValue; }
818 void setValue( const QVariant &value );
819
820 signals:
821
822 void changed();
823
824 private slots:
825
826 void showDialog();
827
828 private:
829 void updateSummaryText();
830
831 const QgsProcessingParameterEnum *mParam = nullptr;
832 QLineEdit *mLineEdit = nullptr;
833 QToolButton *mToolButton = nullptr;
834
835 QVariantList mValue;
836
837 friend class TestProcessingGui;
838};
839
840class GUI_EXPORT QgsProcessingEnumParameterDefinitionWidget : public QgsProcessingAbstractParameterDefinitionWidget
841{
842 Q_OBJECT
843 public:
844 QgsProcessingEnumParameterDefinitionWidget(
845 QgsProcessingContext &context,
846 const QgsProcessingParameterWidgetContext &widgetContext,
847 const QgsProcessingParameterDefinition *definition = nullptr,
848 const QgsProcessingAlgorithm *algorithm = nullptr,
849 QWidget *parent SIP_TRANSFERTHIS = nullptr
850 );
851 QgsProcessingParameterDefinition *createParameter( const QString &name, const QString &description, Qgis::ProcessingParameterFlags flags ) const override;
852
853 private:
854 QgsProcessingEnumModelerWidget *mEnumWidget = nullptr;
855};
856
857class GUI_EXPORT QgsProcessingEnumWidgetWrapper : public QgsAbstractProcessingParameterWidgetWrapper, public QgsProcessingParameterWidgetFactoryInterface
858{
859 Q_OBJECT
860
861 public:
862 QgsProcessingEnumWidgetWrapper( const QgsProcessingParameterDefinition *parameter = nullptr, Qgis::ProcessingMode type = Qgis::ProcessingMode::Standard, QWidget *parent = nullptr );
863
864 // QgsProcessingParameterWidgetFactoryInterface
865 QString parameterType() const override;
866 QgsAbstractProcessingParameterWidgetWrapper *createWidgetWrapper( const QgsProcessingParameterDefinition *parameter, Qgis::ProcessingMode type ) override;
867 QgsProcessingAbstractParameterDefinitionWidget *createParameterDefinitionWidget(
868 QgsProcessingContext &context, const QgsProcessingParameterWidgetContext &widgetContext, const QgsProcessingParameterDefinition *definition = nullptr, const QgsProcessingAlgorithm *algorithm = nullptr
869 ) override;
870
871 // QgsProcessingParameterWidgetWrapper interface
872 QWidget *createWidget() override SIP_FACTORY;
873
874 protected:
875 void setWidgetValue( const QVariant &value, QgsProcessingContext &context ) override;
876 QVariant widgetValue() const override;
877
878 QString modelerExpressionFormatString() const override;
879
880 private:
881 QComboBox *mComboBox = nullptr;
882 QgsProcessingEnumPanelWidget *mPanel = nullptr;
883 QgsProcessingEnumCheckboxPanelWidget *mCheckboxPanel = nullptr;
884
885 friend class TestProcessingGui;
886};
887
888
889class GUI_EXPORT QgsProcessingLayoutWidgetWrapper : public QgsAbstractProcessingParameterWidgetWrapper, public QgsProcessingParameterWidgetFactoryInterface
890{
891 Q_OBJECT
892
893 public:
894 QgsProcessingLayoutWidgetWrapper( const QgsProcessingParameterDefinition *parameter = nullptr, Qgis::ProcessingMode type = Qgis::ProcessingMode::Standard, QWidget *parent = nullptr );
895
896 // QgsProcessingParameterWidgetFactoryInterface
897 QString parameterType() const override;
898 QgsAbstractProcessingParameterWidgetWrapper *createWidgetWrapper( const QgsProcessingParameterDefinition *parameter, Qgis::ProcessingMode type ) override;
899
900 // QgsProcessingParameterWidgetWrapper interface
901 QWidget *createWidget() override SIP_FACTORY;
902
903 protected:
904 void setWidgetValue( const QVariant &value, QgsProcessingContext &context ) override;
905 QVariant widgetValue() const override;
906 void setWidgetContext( const QgsProcessingParameterWidgetContext &context ) override;
907
908 QString modelerExpressionFormatString() const override;
909
910 private:
911 QgsLayoutComboBox *mComboBox = nullptr;
912 QComboBox *mPlainComboBox = nullptr;
913
914 friend class TestProcessingGui;
915};
916
917
918class GUI_EXPORT QgsProcessingLayoutItemParameterDefinitionWidget : public QgsProcessingAbstractParameterDefinitionWidget
919{
920 Q_OBJECT
921 public:
922 QgsProcessingLayoutItemParameterDefinitionWidget(
923 QgsProcessingContext &context,
924 const QgsProcessingParameterWidgetContext &widgetContext,
925 const QgsProcessingParameterDefinition *definition = nullptr,
926 const QgsProcessingAlgorithm *algorithm = nullptr,
927 QWidget *parent SIP_TRANSFERTHIS = nullptr
928 );
929 QgsProcessingParameterDefinition *createParameter( const QString &name, const QString &description, Qgis::ProcessingParameterFlags flags ) const override;
930
931 private:
932 QComboBox *mParentLayoutComboBox = nullptr;
933};
934
935class GUI_EXPORT QgsProcessingLayoutItemWidgetWrapper : public QgsAbstractProcessingParameterWidgetWrapper, public QgsProcessingParameterWidgetFactoryInterface
936{
937 Q_OBJECT
938
939 public:
940 QgsProcessingLayoutItemWidgetWrapper( const QgsProcessingParameterDefinition *parameter = nullptr, Qgis::ProcessingMode type = Qgis::ProcessingMode::Standard, QWidget *parent = nullptr );
941
942 // QgsProcessingParameterWidgetFactoryInterface
943 QString parameterType() const override;
944 QgsAbstractProcessingParameterWidgetWrapper *createWidgetWrapper( const QgsProcessingParameterDefinition *parameter, Qgis::ProcessingMode type ) override;
945 QgsProcessingAbstractParameterDefinitionWidget *createParameterDefinitionWidget(
946 QgsProcessingContext &context, const QgsProcessingParameterWidgetContext &widgetContext, const QgsProcessingParameterDefinition *definition = nullptr, const QgsProcessingAlgorithm *algorithm = nullptr
947 ) override;
948
949 // QgsProcessingParameterWidgetWrapper interface
950 QWidget *createWidget() override SIP_FACTORY;
951 void postInitialize( const QList<QgsAbstractProcessingParameterWidgetWrapper *> &wrappers ) override;
952
953
954 public slots:
955 void setLayoutParameterValue( const QVariant &value );
956 void setLayout( QgsPrintLayout *layout );
957
958 protected:
959 void setWidgetValue( const QVariant &value, QgsProcessingContext &context ) override;
960 QVariant widgetValue() const override;
961
962 QString modelerExpressionFormatString() const override;
963
964 private:
965 QgsLayoutItemComboBox *mComboBox = nullptr;
966 QLineEdit *mLineEdit = nullptr;
967
968 friend class TestProcessingGui;
969};
970
971class GUI_EXPORT QgsProcessingPointMapTool : public QgsMapTool
972{
973 Q_OBJECT
974 public:
975 QgsProcessingPointMapTool( QgsMapCanvas *canvas );
976 ~QgsProcessingPointMapTool() override;
977 void deactivate() override;
978 void canvasMoveEvent( QgsMapMouseEvent *e ) override;
979 void canvasPressEvent( QgsMapMouseEvent *e ) override;
980 void keyPressEvent( QKeyEvent *e ) override;
981
982 signals:
983
984 void clicked( const QgsPointXY &point );
985 void complete();
986
987 private:
988 std::unique_ptr<QgsSnapIndicator> mSnapIndicator;
989 friend class TestProcessingGui;
990};
991
992class GUI_EXPORT QgsProcessingPointPanel : public QWidget
993{
994 Q_OBJECT
995
996 public:
997 QgsProcessingPointPanel( QWidget *parent );
998 ~QgsProcessingPointPanel() override;
999 void setMapCanvas( QgsMapCanvas *canvas );
1000 void setAllowNull( bool allowNull );
1001 void setShowPointOnCanvas( bool show );
1002 void setAllowSelectOnCanvas( bool allow );
1003
1004 QVariant value() const;
1005 void clear();
1006 void setValue( const QgsPointXY &point, const QgsCoordinateReferenceSystem &crs );
1007 void showEvent( QShowEvent *event ) override;
1008
1009 signals:
1010
1011 void toggleDialogVisibility( bool visible );
1012 void changed();
1013
1014 private slots:
1015
1016 void selectOnCanvas();
1017 void updatePoint( const QgsPointXY &point );
1018 void pointPicked();
1019 void textChanged( const QString &text );
1020
1021 private:
1022 void updateRubberBand();
1023
1024 QgsFilterLineEdit *mLineEdit = nullptr;
1025 bool mShowPointOnCanvas = false;
1026 bool mFirstShow = true;
1027 bool mAllowSelectOnCanvas = true;
1028 QToolButton *mButton = nullptr;
1029 QgsMapCanvas *mCanvas = nullptr;
1030 QgsCoordinateReferenceSystem mCrs;
1031 QPointer<QgsMapTool> mPrevTool;
1032 std::unique_ptr<QgsProcessingPointMapTool> mTool;
1033 QgsPointXY mPoint;
1034 QObjectUniquePtr<QgsRubberBand> mMapPointRubberBand;
1035 friend class TestProcessingGui;
1036};
1037
1038
1039class GUI_EXPORT QgsProcessingPointParameterDefinitionWidget : public QgsProcessingAbstractParameterDefinitionWidget
1040{
1041 Q_OBJECT
1042 public:
1043 QgsProcessingPointParameterDefinitionWidget(
1044 QgsProcessingContext &context,
1045 const QgsProcessingParameterWidgetContext &widgetContext,
1046 const QgsProcessingParameterDefinition *definition = nullptr,
1047 const QgsProcessingAlgorithm *algorithm = nullptr,
1048 QWidget *parent SIP_TRANSFERTHIS = nullptr
1049 );
1050 QgsProcessingParameterDefinition *createParameter( const QString &name, const QString &description, Qgis::ProcessingParameterFlags flags ) const override;
1051
1052 private:
1053 QLineEdit *mDefaultLineEdit = nullptr;
1054};
1055
1056class GUI_EXPORT QgsProcessingPointWidgetWrapper : public QgsAbstractProcessingParameterWidgetWrapper, public QgsProcessingParameterWidgetFactoryInterface
1057{
1058 Q_OBJECT
1059
1060 public:
1061 QgsProcessingPointWidgetWrapper( const QgsProcessingParameterDefinition *parameter = nullptr, Qgis::ProcessingMode type = Qgis::ProcessingMode::Standard, QWidget *parent = nullptr );
1062
1063 // QgsProcessingParameterWidgetFactoryInterface
1064 QString parameterType() const override;
1065 QgsAbstractProcessingParameterWidgetWrapper *createWidgetWrapper( const QgsProcessingParameterDefinition *parameter, Qgis::ProcessingMode type ) override;
1066 QgsProcessingAbstractParameterDefinitionWidget *createParameterDefinitionWidget(
1067 QgsProcessingContext &context, const QgsProcessingParameterWidgetContext &widgetContext, const QgsProcessingParameterDefinition *definition = nullptr, const QgsProcessingAlgorithm *algorithm = nullptr
1068 ) override;
1069
1070 // QgsProcessingParameterWidgetWrapper interface
1071 QWidget *createWidget() override SIP_FACTORY;
1072 void setWidgetContext( const QgsProcessingParameterWidgetContext &context ) override;
1073 void setDialog( QWidget *dialog ) override;
1074
1075 protected:
1076 void setWidgetValue( const QVariant &value, QgsProcessingContext &context ) override;
1077 QVariant widgetValue() const override;
1078
1079 QString modelerExpressionFormatString() const override;
1080
1081 private:
1082 QgsProcessingPointPanel *mPanel = nullptr;
1083 QLineEdit *mLineEdit = nullptr;
1084 QWidget *mDialog = nullptr;
1085
1086 friend class TestProcessingGui;
1087};
1088
1089class GUI_EXPORT QgsProcessingGeometryParameterDefinitionWidget : public QgsProcessingAbstractParameterDefinitionWidget
1090{
1091 Q_OBJECT
1092 public:
1093 QgsProcessingGeometryParameterDefinitionWidget(
1094 QgsProcessingContext &context,
1095 const QgsProcessingParameterWidgetContext &widgetContext,
1096 const QgsProcessingParameterDefinition *definition = nullptr,
1097 const QgsProcessingAlgorithm *algorithm = nullptr,
1098 QWidget *parent SIP_TRANSFERTHIS = nullptr
1099 );
1100 QgsProcessingParameterDefinition *createParameter( const QString &name, const QString &description, Qgis::ProcessingParameterFlags flags ) const override;
1101
1102 private:
1103 QgsGeometryWidget *mGeometryWidget = nullptr;
1104};
1105
1106class GUI_EXPORT QgsProcessingGeometryWidgetWrapper : public QgsAbstractProcessingParameterWidgetWrapper, public QgsProcessingParameterWidgetFactoryInterface
1107{
1108 Q_OBJECT
1109
1110 public:
1111 QgsProcessingGeometryWidgetWrapper( const QgsProcessingParameterDefinition *parameter = nullptr, Qgis::ProcessingMode type = Qgis::ProcessingMode::Standard, QWidget *parent = nullptr );
1112
1113 // QgsProcessingParameterWidgetFactoryInterface
1114 QString parameterType() const override;
1115 QgsAbstractProcessingParameterWidgetWrapper *createWidgetWrapper( const QgsProcessingParameterDefinition *parameter, Qgis::ProcessingMode type ) override;
1116 QgsProcessingAbstractParameterDefinitionWidget *createParameterDefinitionWidget(
1117 QgsProcessingContext &context, const QgsProcessingParameterWidgetContext &widgetContext, const QgsProcessingParameterDefinition *definition = nullptr, const QgsProcessingAlgorithm *algorithm = nullptr
1118 ) override;
1119
1120 // QgsProcessingParameterWidgetWrapper interface
1121 QWidget *createWidget() override SIP_FACTORY;
1122
1123 protected:
1124 void setWidgetValue( const QVariant &value, QgsProcessingContext &context ) override;
1125 QVariant widgetValue() const override;
1126
1127 QString modelerExpressionFormatString() const override;
1128
1129 private:
1130 QgsGeometryWidget *mGeometryWidget = nullptr;
1131
1132 friend class TestProcessingGui;
1133};
1134
1135class GUI_EXPORT QgsProcessingExtentParameterDefinitionWidget : public QgsProcessingAbstractParameterDefinitionWidget
1136{
1137 Q_OBJECT
1138 public:
1139 QgsProcessingExtentParameterDefinitionWidget(
1140 QgsProcessingContext &context,
1141 const QgsProcessingParameterWidgetContext &widgetContext,
1142 const QgsProcessingParameterDefinition *definition = nullptr,
1143 const QgsProcessingAlgorithm *algorithm = nullptr,
1144 QWidget *parent SIP_TRANSFERTHIS = nullptr
1145 );
1146 QgsProcessingParameterDefinition *createParameter( const QString &name, const QString &description, Qgis::ProcessingParameterFlags flags ) const override;
1147
1148 private:
1149 QgsExtentWidget *mDefaultWidget = nullptr;
1150};
1151
1152class GUI_EXPORT QgsProcessingExtentWidgetWrapper : public QgsAbstractProcessingParameterWidgetWrapper, public QgsProcessingParameterWidgetFactoryInterface
1153{
1154 Q_OBJECT
1155
1156 public:
1157 QgsProcessingExtentWidgetWrapper( const QgsProcessingParameterDefinition *parameter = nullptr, Qgis::ProcessingMode type = Qgis::ProcessingMode::Standard, QWidget *parent = nullptr );
1158
1159 // QgsProcessingParameterWidgetFactoryInterface
1160 QString parameterType() const override;
1161 QgsAbstractProcessingParameterWidgetWrapper *createWidgetWrapper( const QgsProcessingParameterDefinition *parameter, Qgis::ProcessingMode type ) override;
1162 QgsProcessingAbstractParameterDefinitionWidget *createParameterDefinitionWidget(
1163 QgsProcessingContext &context, const QgsProcessingParameterWidgetContext &widgetContext, const QgsProcessingParameterDefinition *definition = nullptr, const QgsProcessingAlgorithm *algorithm = nullptr
1164 ) override;
1165
1166 // QgsProcessingParameterWidgetWrapper interface
1167 QWidget *createWidget() override SIP_FACTORY;
1168 void setWidgetContext( const QgsProcessingParameterWidgetContext &context ) override;
1169 void setDialog( QWidget *dialog ) override;
1170
1171 protected:
1172 void setWidgetValue( const QVariant &value, QgsProcessingContext &context ) override;
1173 QVariant widgetValue() const override;
1174
1175 QString modelerExpressionFormatString() const override;
1176
1177 private:
1178 QgsExtentWidget *mExtentWidget = nullptr;
1179 QWidget *mDialog = nullptr;
1180
1181 friend class TestProcessingGui;
1182};
1183
1184class GUI_EXPORT QgsProcessingColorParameterDefinitionWidget : public QgsProcessingAbstractParameterDefinitionWidget
1185{
1186 Q_OBJECT
1187 public:
1188 QgsProcessingColorParameterDefinitionWidget(
1189 QgsProcessingContext &context,
1190 const QgsProcessingParameterWidgetContext &widgetContext,
1191 const QgsProcessingParameterDefinition *definition = nullptr,
1192 const QgsProcessingAlgorithm *algorithm = nullptr,
1193 QWidget *parent SIP_TRANSFERTHIS = nullptr
1194 );
1195 QgsProcessingParameterDefinition *createParameter( const QString &name, const QString &description, Qgis::ProcessingParameterFlags flags ) const override;
1196
1197 private:
1198 QgsColorButton *mDefaultColorButton = nullptr;
1199 QCheckBox *mAllowOpacity = nullptr;
1200};
1201
1202class GUI_EXPORT QgsProcessingColorWidgetWrapper : public QgsAbstractProcessingParameterWidgetWrapper, public QgsProcessingParameterWidgetFactoryInterface
1203{
1204 Q_OBJECT
1205
1206 public:
1207 QgsProcessingColorWidgetWrapper( const QgsProcessingParameterDefinition *parameter = nullptr, Qgis::ProcessingMode type = Qgis::ProcessingMode::Standard, QWidget *parent = nullptr );
1208
1209 // QgsProcessingParameterWidgetFactoryInterface
1210 QString parameterType() const override;
1211 QgsAbstractProcessingParameterWidgetWrapper *createWidgetWrapper( const QgsProcessingParameterDefinition *parameter, Qgis::ProcessingMode type ) override;
1212 QgsProcessingAbstractParameterDefinitionWidget *createParameterDefinitionWidget(
1213 QgsProcessingContext &context, const QgsProcessingParameterWidgetContext &widgetContext, const QgsProcessingParameterDefinition *definition = nullptr, const QgsProcessingAlgorithm *algorithm = nullptr
1214 ) override;
1215
1216 // QgsProcessingParameterWidgetWrapper interface
1217 QWidget *createWidget() override SIP_FACTORY;
1218
1219 protected:
1220 void setWidgetValue( const QVariant &value, QgsProcessingContext &context ) override;
1221 QVariant widgetValue() const override;
1222
1223 QString modelerExpressionFormatString() const override;
1224
1225 private:
1226 QgsColorButton *mColorButton = nullptr;
1227 friend class TestProcessingGui;
1228};
1229
1230
1231class GUI_EXPORT QgsProcessingCoordinateOperationParameterDefinitionWidget : public QgsProcessingAbstractParameterDefinitionWidget
1232{
1233 Q_OBJECT
1234 public:
1235 QgsProcessingCoordinateOperationParameterDefinitionWidget(
1236 QgsProcessingContext &context,
1237 const QgsProcessingParameterWidgetContext &widgetContext,
1238 const QgsProcessingParameterDefinition *definition = nullptr,
1239 const QgsProcessingAlgorithm *algorithm = nullptr,
1240 QWidget *parent SIP_TRANSFERTHIS = nullptr
1241 );
1242 QgsProcessingParameterDefinition *createParameter( const QString &name, const QString &description, Qgis::ProcessingParameterFlags flags ) const override;
1243
1244 private:
1245 QLineEdit *mDefaultLineEdit = nullptr;
1246
1247 QComboBox *mSourceParamComboBox = nullptr;
1248 QComboBox *mDestParamComboBox = nullptr;
1249
1250 QgsProjectionSelectionWidget *mStaticSourceWidget = nullptr;
1251 QgsProjectionSelectionWidget *mStaticDestWidget = nullptr;
1252};
1253
1254class GUI_EXPORT QgsProcessingCoordinateOperationWidgetWrapper : public QgsAbstractProcessingParameterWidgetWrapper, public QgsProcessingParameterWidgetFactoryInterface
1255{
1256 Q_OBJECT
1257
1258 public:
1259 QgsProcessingCoordinateOperationWidgetWrapper( const QgsProcessingParameterDefinition *parameter = nullptr, Qgis::ProcessingMode type = Qgis::ProcessingMode::Standard, QWidget *parent = nullptr );
1260
1261 // QgsProcessingParameterWidgetFactoryInterface
1262 QString parameterType() const override;
1263 QgsAbstractProcessingParameterWidgetWrapper *createWidgetWrapper( const QgsProcessingParameterDefinition *parameter, Qgis::ProcessingMode type ) override;
1264 QgsProcessingAbstractParameterDefinitionWidget *createParameterDefinitionWidget(
1265 QgsProcessingContext &context, const QgsProcessingParameterWidgetContext &widgetContext, const QgsProcessingParameterDefinition *definition = nullptr, const QgsProcessingAlgorithm *algorithm = nullptr
1266 ) override;
1267
1268 // QgsProcessingParameterWidgetWrapper interface
1269 QWidget *createWidget() override SIP_FACTORY;
1270 void postInitialize( const QList<QgsAbstractProcessingParameterWidgetWrapper *> &wrappers ) override;
1271 void setWidgetContext( const QgsProcessingParameterWidgetContext &context ) override;
1272
1273 protected:
1274 void setWidgetValue( const QVariant &value, QgsProcessingContext &context ) override;
1275 QVariant widgetValue() const override;
1276
1277 QString modelerExpressionFormatString() const override;
1278
1279 private:
1280 void setSourceCrsParameterValue( const QVariant &value );
1281 void setDestinationCrsParameterValue( const QVariant &value );
1282
1283 QgsCoordinateOperationWidget *mOperationWidget = nullptr;
1284 QgsMapCanvas *mCanvas = nullptr;
1285 QLineEdit *mLineEdit = nullptr;
1286 QgsCoordinateReferenceSystem mSourceCrs;
1287 QgsCoordinateReferenceSystem mDestCrs;
1288 friend class TestProcessingGui;
1289};
1290
1291class GUI_EXPORT QgsProcessingFieldPanelWidget : public QWidget
1292{
1293 Q_OBJECT
1294
1295 public:
1296 QgsProcessingFieldPanelWidget( QWidget *parent = nullptr, const QgsProcessingParameterField *param = nullptr );
1297
1298 void setFields( const QgsFields &fields );
1299
1300 QgsFields fields() const { return mFields; }
1301
1302 QVariant value() const { return mValue; }
1303 void setValue( const QVariant &value );
1304
1305 signals:
1306
1307 void changed();
1308
1309 private slots:
1310
1311 void showDialog();
1312
1313 private:
1314 void updateSummaryText();
1315
1316 QgsFields mFields;
1317
1318 const QgsProcessingParameterField *mParam = nullptr;
1319 QLineEdit *mLineEdit = nullptr;
1320 QToolButton *mToolButton = nullptr;
1321
1322 QVariantList mValue;
1323
1324 friend class TestProcessingGui;
1325};
1326
1327class GUI_EXPORT QgsProcessingFieldParameterDefinitionWidget : public QgsProcessingAbstractParameterDefinitionWidget
1328{
1329 Q_OBJECT
1330 public:
1331 QgsProcessingFieldParameterDefinitionWidget(
1332 QgsProcessingContext &context,
1333 const QgsProcessingParameterWidgetContext &widgetContext,
1334 const QgsProcessingParameterDefinition *definition = nullptr,
1335 const QgsProcessingAlgorithm *algorithm = nullptr,
1336 QWidget *parent SIP_TRANSFERTHIS = nullptr
1337 );
1338 QgsProcessingParameterDefinition *createParameter( const QString &name, const QString &description, Qgis::ProcessingParameterFlags flags ) const override;
1339
1340 private:
1341 QComboBox *mParentLayerComboBox = nullptr;
1342 QComboBox *mDataTypeComboBox = nullptr;
1343 QLineEdit *mDefaultLineEdit = nullptr;
1344 QCheckBox *mAllowMultipleCheckBox = nullptr;
1345 QCheckBox *mDefaultToAllCheckBox = nullptr;
1346};
1347
1348class GUI_EXPORT QgsProcessingFieldWidgetWrapper : public QgsAbstractProcessingParameterWidgetWrapper, public QgsProcessingParameterWidgetFactoryInterface
1349{
1350 Q_OBJECT
1351
1352 public:
1353 QgsProcessingFieldWidgetWrapper( const QgsProcessingParameterDefinition *parameter = nullptr, Qgis::ProcessingMode type = Qgis::ProcessingMode::Standard, QWidget *parent = nullptr );
1354
1355 // QgsProcessingParameterWidgetFactoryInterface
1356 QString parameterType() const override;
1357 QgsAbstractProcessingParameterWidgetWrapper *createWidgetWrapper( const QgsProcessingParameterDefinition *parameter, Qgis::ProcessingMode type ) override;
1358 QgsProcessingAbstractParameterDefinitionWidget *createParameterDefinitionWidget(
1359 QgsProcessingContext &context, const QgsProcessingParameterWidgetContext &widgetContext, const QgsProcessingParameterDefinition *definition = nullptr, const QgsProcessingAlgorithm *algorithm = nullptr
1360 ) override;
1361
1362 // QgsProcessingParameterWidgetWrapper interface
1363 QWidget *createWidget() override SIP_FACTORY;
1364 void postInitialize( const QList<QgsAbstractProcessingParameterWidgetWrapper *> &wrappers ) override;
1365
1366 public slots:
1367 void setParentLayerWrapperValue( const QgsAbstractProcessingParameterWidgetWrapper *parentWrapper );
1368
1369 protected:
1370 void setWidgetValue( const QVariant &value, QgsProcessingContext &context ) override;
1371 QVariant widgetValue() const override;
1372
1373 QString modelerExpressionFormatString() const override;
1374 const QgsVectorLayer *linkedVectorLayer() const override;
1375
1376 private:
1377 QgsFieldComboBox *mComboBox = nullptr;
1378 QgsProcessingFieldPanelWidget *mPanel = nullptr;
1379 QLineEdit *mLineEdit = nullptr;
1380
1381 std::unique_ptr<QgsVectorLayer> mParentLayer;
1382
1383 QgsFields filterFields( const QgsFields &fields ) const;
1384
1385 friend class TestProcessingGui;
1386};
1387
1388
1389class GUI_EXPORT QgsProcessingMapThemeParameterDefinitionWidget : public QgsProcessingAbstractParameterDefinitionWidget
1390{
1391 Q_OBJECT
1392 public:
1393 QgsProcessingMapThemeParameterDefinitionWidget(
1394 QgsProcessingContext &context,
1395 const QgsProcessingParameterWidgetContext &widgetContext,
1396 const QgsProcessingParameterDefinition *definition = nullptr,
1397 const QgsProcessingAlgorithm *algorithm = nullptr,
1398 QWidget *parent SIP_TRANSFERTHIS = nullptr
1399 );
1400 QgsProcessingParameterDefinition *createParameter( const QString &name, const QString &description, Qgis::ProcessingParameterFlags flags ) const override;
1401
1402 private:
1403 QComboBox *mDefaultComboBox = nullptr;
1404};
1405
1406class GUI_EXPORT QgsProcessingMapThemeWidgetWrapper : public QgsAbstractProcessingParameterWidgetWrapper, public QgsProcessingParameterWidgetFactoryInterface
1407{
1408 Q_OBJECT
1409
1410 public:
1411 QgsProcessingMapThemeWidgetWrapper( const QgsProcessingParameterDefinition *parameter = nullptr, Qgis::ProcessingMode type = Qgis::ProcessingMode::Standard, QWidget *parent = nullptr );
1412
1413 // QgsProcessingParameterWidgetFactoryInterface
1414 QString parameterType() const override;
1415 QgsAbstractProcessingParameterWidgetWrapper *createWidgetWrapper( const QgsProcessingParameterDefinition *parameter, Qgis::ProcessingMode type ) override;
1416 QgsProcessingAbstractParameterDefinitionWidget *createParameterDefinitionWidget(
1417 QgsProcessingContext &context, const QgsProcessingParameterWidgetContext &widgetContext, const QgsProcessingParameterDefinition *definition = nullptr, const QgsProcessingAlgorithm *algorithm = nullptr
1418 ) override;
1419
1420 // QgsProcessingParameterWidgetWrapper interface
1421 QWidget *createWidget() override SIP_FACTORY;
1422
1423 protected:
1424 void setWidgetValue( const QVariant &value, QgsProcessingContext &context ) override;
1425 QVariant widgetValue() const override;
1426
1427 QString modelerExpressionFormatString() const override;
1428
1429 private:
1430 QComboBox *mComboBox = nullptr;
1431
1432 friend class TestProcessingGui;
1433};
1434
1435
1436class GUI_EXPORT QgsProcessingDateTimeParameterDefinitionWidget : public QgsProcessingAbstractParameterDefinitionWidget
1437{
1438 Q_OBJECT
1439 public:
1440 QgsProcessingDateTimeParameterDefinitionWidget(
1441 QgsProcessingContext &context,
1442 const QgsProcessingParameterWidgetContext &widgetContext,
1443 const QgsProcessingParameterDefinition *definition = nullptr,
1444 const QgsProcessingAlgorithm *algorithm = nullptr,
1445 QWidget *parent SIP_TRANSFERTHIS = nullptr
1446 );
1447 QgsProcessingParameterDefinition *createParameter( const QString &name, const QString &description, Qgis::ProcessingParameterFlags flags ) const override;
1448
1449 private:
1450 QComboBox *mTypeComboBox = nullptr;
1451};
1452
1453class GUI_EXPORT QgsProcessingDateTimeWidgetWrapper : public QgsAbstractProcessingParameterWidgetWrapper, public QgsProcessingParameterWidgetFactoryInterface
1454{
1455 Q_OBJECT
1456
1457 public:
1458 QgsProcessingDateTimeWidgetWrapper( const QgsProcessingParameterDefinition *parameter = nullptr, Qgis::ProcessingMode type = Qgis::ProcessingMode::Standard, QWidget *parent = nullptr );
1459
1460 // QgsProcessingParameterWidgetFactoryInterface
1461 QString parameterType() const override;
1462 QgsAbstractProcessingParameterWidgetWrapper *createWidgetWrapper( const QgsProcessingParameterDefinition *parameter, Qgis::ProcessingMode type ) override;
1463
1464 // QgsProcessingParameterWidgetWrapper interface
1465 QWidget *createWidget() override SIP_FACTORY;
1466 QgsProcessingAbstractParameterDefinitionWidget *createParameterDefinitionWidget(
1467 QgsProcessingContext &context, const QgsProcessingParameterWidgetContext &widgetContext, const QgsProcessingParameterDefinition *definition = nullptr, const QgsProcessingAlgorithm *algorithm = nullptr
1468 ) override;
1469
1470 protected:
1471 void setWidgetValue( const QVariant &value, QgsProcessingContext &context ) override;
1472 QVariant widgetValue() const override;
1473
1474 QString modelerExpressionFormatString() const override;
1475
1476 private:
1477 QgsDateTimeEdit *mDateTimeEdit = nullptr;
1478 QgsDateEdit *mDateEdit = nullptr;
1479 QgsTimeEdit *mTimeEdit = nullptr;
1480
1481 friend class TestProcessingGui;
1482};
1483
1484
1485//
1486// QgsProcessingProviderConnectionWidgetWrapper
1487//
1488
1489class GUI_EXPORT QgsProcessingProviderConnectionParameterDefinitionWidget : public QgsProcessingAbstractParameterDefinitionWidget
1490{
1491 Q_OBJECT
1492 public:
1493 QgsProcessingProviderConnectionParameterDefinitionWidget(
1494 QgsProcessingContext &context,
1495 const QgsProcessingParameterWidgetContext &widgetContext,
1496 const QgsProcessingParameterDefinition *definition = nullptr,
1497 const QgsProcessingAlgorithm *algorithm = nullptr,
1498 QWidget *parent SIP_TRANSFERTHIS = nullptr
1499 );
1500 QgsProcessingParameterDefinition *createParameter( const QString &name, const QString &description, Qgis::ProcessingParameterFlags flags ) const override;
1501
1502 private:
1503 QComboBox *mProviderComboBox = nullptr;
1504 QLineEdit *mDefaultEdit = nullptr;
1505};
1506
1507class GUI_EXPORT QgsProcessingProviderConnectionWidgetWrapper : public QgsAbstractProcessingParameterWidgetWrapper, public QgsProcessingParameterWidgetFactoryInterface
1508{
1509 Q_OBJECT
1510
1511 public:
1512 QgsProcessingProviderConnectionWidgetWrapper( const QgsProcessingParameterDefinition *parameter = nullptr, Qgis::ProcessingMode type = Qgis::ProcessingMode::Standard, QWidget *parent = nullptr );
1513
1514 // QgsProcessingParameterWidgetFactoryInterface
1515 QString parameterType() const override;
1516 QgsAbstractProcessingParameterWidgetWrapper *createWidgetWrapper( const QgsProcessingParameterDefinition *parameter, Qgis::ProcessingMode type ) override;
1517
1518
1519 // QgsProcessingParameterWidgetWrapper interface
1520 QWidget *createWidget() override SIP_FACTORY;
1521 QgsProcessingAbstractParameterDefinitionWidget *createParameterDefinitionWidget(
1522 QgsProcessingContext &context, const QgsProcessingParameterWidgetContext &widgetContext, const QgsProcessingParameterDefinition *definition = nullptr, const QgsProcessingAlgorithm *algorithm = nullptr
1523 ) override;
1524
1525 protected:
1526 void setWidgetValue( const QVariant &value, QgsProcessingContext &context ) override;
1527 QVariant widgetValue() const override;
1528
1529 QString modelerExpressionFormatString() const override;
1530
1531 private:
1532 QgsProviderConnectionComboBox *mProviderComboBox = nullptr;
1533 int mBlockSignals = 0;
1534
1535 friend class TestProcessingGui;
1536};
1537
1538
1539class GUI_EXPORT QgsProcessingDatabaseSchemaParameterDefinitionWidget : public QgsProcessingAbstractParameterDefinitionWidget
1540{
1541 Q_OBJECT
1542 public:
1543 QgsProcessingDatabaseSchemaParameterDefinitionWidget(
1544 QgsProcessingContext &context,
1545 const QgsProcessingParameterWidgetContext &widgetContext,
1546 const QgsProcessingParameterDefinition *definition = nullptr,
1547 const QgsProcessingAlgorithm *algorithm = nullptr,
1548 QWidget *parent SIP_TRANSFERTHIS = nullptr
1549 );
1550 QgsProcessingParameterDefinition *createParameter( const QString &name, const QString &description, Qgis::ProcessingParameterFlags flags ) const override;
1551
1552 private:
1553 QComboBox *mConnectionParamComboBox = nullptr;
1554 QLineEdit *mDefaultEdit = nullptr;
1555};
1556
1557class GUI_EXPORT QgsProcessingDatabaseSchemaWidgetWrapper : public QgsAbstractProcessingParameterWidgetWrapper, public QgsProcessingParameterWidgetFactoryInterface
1558{
1559 Q_OBJECT
1560
1561 public:
1562 QgsProcessingDatabaseSchemaWidgetWrapper( const QgsProcessingParameterDefinition *parameter = nullptr, Qgis::ProcessingMode type = Qgis::ProcessingMode::Standard, QWidget *parent = nullptr );
1563
1564 // QgsProcessingParameterWidgetFactoryInterface
1565 QString parameterType() const override;
1566 QgsAbstractProcessingParameterWidgetWrapper *createWidgetWrapper( const QgsProcessingParameterDefinition *parameter, Qgis::ProcessingMode type ) override;
1567 void postInitialize( const QList<QgsAbstractProcessingParameterWidgetWrapper *> &wrappers ) override;
1568
1569
1570 // QgsProcessingParameterWidgetWrapper interface
1571 QWidget *createWidget() override SIP_FACTORY;
1572 QgsProcessingAbstractParameterDefinitionWidget *createParameterDefinitionWidget(
1573 QgsProcessingContext &context, const QgsProcessingParameterWidgetContext &widgetContext, const QgsProcessingParameterDefinition *definition = nullptr, const QgsProcessingAlgorithm *algorithm = nullptr
1574 ) override;
1575
1576 public slots:
1577 void setParentConnectionWrapperValue( const QgsAbstractProcessingParameterWidgetWrapper *parentWrapper );
1578
1579 protected:
1580 void setWidgetValue( const QVariant &value, QgsProcessingContext &context ) override;
1581 QVariant widgetValue() const override;
1582
1583 QString modelerExpressionFormatString() const override;
1584
1585 private:
1586 QgsDatabaseSchemaComboBox *mSchemaComboBox = nullptr;
1587 int mBlockSignals = 0;
1588
1589 friend class TestProcessingGui;
1590};
1591
1592
1593class GUI_EXPORT QgsProcessingDatabaseTableParameterDefinitionWidget : public QgsProcessingAbstractParameterDefinitionWidget
1594{
1595 Q_OBJECT
1596 public:
1597 QgsProcessingDatabaseTableParameterDefinitionWidget(
1598 QgsProcessingContext &context,
1599 const QgsProcessingParameterWidgetContext &widgetContext,
1600 const QgsProcessingParameterDefinition *definition = nullptr,
1601 const QgsProcessingAlgorithm *algorithm = nullptr,
1602 QWidget *parent SIP_TRANSFERTHIS = nullptr
1603 );
1604 QgsProcessingParameterDefinition *createParameter( const QString &name, const QString &description, Qgis::ProcessingParameterFlags flags ) const override;
1605
1606 private:
1607 QComboBox *mConnectionParamComboBox = nullptr;
1608 QComboBox *mSchemaParamComboBox = nullptr;
1609 QLineEdit *mDefaultEdit = nullptr;
1610};
1611
1612class GUI_EXPORT QgsProcessingDatabaseTableWidgetWrapper : public QgsAbstractProcessingParameterWidgetWrapper, public QgsProcessingParameterWidgetFactoryInterface
1613{
1614 Q_OBJECT
1615
1616 public:
1617 QgsProcessingDatabaseTableWidgetWrapper( const QgsProcessingParameterDefinition *parameter = nullptr, Qgis::ProcessingMode type = Qgis::ProcessingMode::Standard, QWidget *parent = nullptr );
1618
1619 // QgsProcessingParameterWidgetFactoryInterface
1620 QString parameterType() const override;
1621 QgsAbstractProcessingParameterWidgetWrapper *createWidgetWrapper( const QgsProcessingParameterDefinition *parameter, Qgis::ProcessingMode type ) override;
1622 void postInitialize( const QList<QgsAbstractProcessingParameterWidgetWrapper *> &wrappers ) override;
1623
1624
1625 // QgsProcessingParameterWidgetWrapper interface
1626 QWidget *createWidget() override SIP_FACTORY;
1627 QgsProcessingAbstractParameterDefinitionWidget *createParameterDefinitionWidget(
1628 QgsProcessingContext &context, const QgsProcessingParameterWidgetContext &widgetContext, const QgsProcessingParameterDefinition *definition = nullptr, const QgsProcessingAlgorithm *algorithm = nullptr
1629 ) override;
1630
1631 public slots:
1632 void setParentConnectionWrapperValue( const QgsAbstractProcessingParameterWidgetWrapper *parentWrapper );
1633 void setParentSchemaWrapperValue( const QgsAbstractProcessingParameterWidgetWrapper *parentWrapper );
1634
1635 protected:
1636 void setWidgetValue( const QVariant &value, QgsProcessingContext &context ) override;
1637 QVariant widgetValue() const override;
1638
1639 QString modelerExpressionFormatString() const override;
1640
1641 private:
1642 QgsDatabaseTableComboBox *mTableComboBox = nullptr;
1643 int mBlockSignals = 0;
1644 QString mConnection;
1645 QString mProvider;
1646 QString mSchema;
1647
1648 friend class TestProcessingGui;
1649};
1650
1651class GUI_EXPORT QgsProcessingMapLayerParameterDefinitionWidget : public QgsProcessingAbstractParameterDefinitionWidget
1652{
1653 Q_OBJECT
1654 public:
1655 QgsProcessingMapLayerParameterDefinitionWidget(
1656 QgsProcessingContext &context,
1657 const QgsProcessingParameterWidgetContext &widgetContext,
1658 const QgsProcessingParameterDefinition *definition = nullptr,
1659 const QgsProcessingAlgorithm *algorithm = nullptr,
1660 QWidget *parent SIP_TRANSFERTHIS = nullptr
1661 );
1662 QgsProcessingParameterDefinition *createParameter( const QString &name, const QString &description, Qgis::ProcessingParameterFlags flags ) const override;
1663
1664 private:
1665 QgsCheckableComboBox *mLayerTypeComboBox = nullptr;
1666};
1667
1668class GUI_EXPORT QgsProcessingMapLayerWidgetWrapper : public QgsAbstractProcessingParameterWidgetWrapper, public QgsProcessingParameterWidgetFactoryInterface
1669{
1670 Q_OBJECT
1671
1672 public:
1673 QgsProcessingMapLayerWidgetWrapper( const QgsProcessingParameterDefinition *parameter = nullptr, Qgis::ProcessingMode type = Qgis::ProcessingMode::Standard, QWidget *parent = nullptr );
1674
1675 // QgsProcessingParameterWidgetFactoryInterface
1676 QString parameterType() const override;
1677 QgsAbstractProcessingParameterWidgetWrapper *createWidgetWrapper( const QgsProcessingParameterDefinition *parameter, Qgis::ProcessingMode type ) override;
1678 QgsProcessingAbstractParameterDefinitionWidget *createParameterDefinitionWidget(
1679 QgsProcessingContext &context, const QgsProcessingParameterWidgetContext &widgetContext, const QgsProcessingParameterDefinition *definition = nullptr, const QgsProcessingAlgorithm *algorithm = nullptr
1680 ) override;
1681
1682 void setWidgetContext( const QgsProcessingParameterWidgetContext &context ) override;
1683 // QgsProcessingParameterWidgetWrapper interface
1684 QWidget *createWidget() override SIP_FACTORY;
1685
1686 protected:
1687 void setWidgetValue( const QVariant &value, QgsProcessingContext &context ) override;
1688 QVariant widgetValue() const override;
1689
1690 QString modelerExpressionFormatString() const override;
1691 Qgis::ProcessingModelChildParameterSource defaultModelSource( const QgsProcessingParameterDefinition *parameter ) const override;
1692
1693 private:
1694 QPointer<QgsProcessingMapLayerComboBox> mComboBox;
1695 int mBlockSignals = 0;
1696
1697 friend class TestProcessingGui;
1698};
1699
1700
1701class GUI_EXPORT QgsProcessingRasterLayerWidgetWrapper : public QgsProcessingMapLayerWidgetWrapper
1702{
1703 Q_OBJECT
1704
1705 public:
1706 QgsProcessingRasterLayerWidgetWrapper( const QgsProcessingParameterDefinition *parameter = nullptr, Qgis::ProcessingMode type = Qgis::ProcessingMode::Standard, QWidget *parent = nullptr );
1707
1708 // QgsProcessingParameterWidgetFactoryInterface
1709 QString parameterType() const override;
1710 QgsAbstractProcessingParameterWidgetWrapper *createWidgetWrapper( const QgsProcessingParameterDefinition *parameter, Qgis::ProcessingMode type ) override;
1711 QgsProcessingAbstractParameterDefinitionWidget *createParameterDefinitionWidget(
1712 QgsProcessingContext &context, const QgsProcessingParameterWidgetContext &widgetContext, const QgsProcessingParameterDefinition *definition = nullptr, const QgsProcessingAlgorithm *algorithm = nullptr
1713 ) override;
1714
1715 protected:
1716 QString modelerExpressionFormatString() const override;
1717};
1718
1719
1720class GUI_EXPORT QgsProcessingVectorLayerParameterDefinitionWidget : public QgsProcessingAbstractParameterDefinitionWidget
1721{
1722 Q_OBJECT
1723 public:
1724 QgsProcessingVectorLayerParameterDefinitionWidget(
1725 QgsProcessingContext &context,
1726 const QgsProcessingParameterWidgetContext &widgetContext,
1727 const QgsProcessingParameterDefinition *definition = nullptr,
1728 const QgsProcessingAlgorithm *algorithm = nullptr,
1729 QWidget *parent SIP_TRANSFERTHIS = nullptr
1730 );
1731 QgsProcessingParameterDefinition *createParameter( const QString &name, const QString &description, Qgis::ProcessingParameterFlags flags ) const override;
1732
1733 private:
1734 QgsCheckableComboBox *mGeometryTypeComboBox = nullptr;
1735};
1736
1737class GUI_EXPORT QgsProcessingVectorLayerWidgetWrapper : public QgsProcessingMapLayerWidgetWrapper
1738{
1739 Q_OBJECT
1740
1741 public:
1742 QgsProcessingVectorLayerWidgetWrapper( const QgsProcessingParameterDefinition *parameter = nullptr, Qgis::ProcessingMode type = Qgis::ProcessingMode::Standard, QWidget *parent = nullptr );
1743
1744 // QgsProcessingParameterWidgetFactoryInterface
1745 QString parameterType() const override;
1746 QgsAbstractProcessingParameterWidgetWrapper *createWidgetWrapper( const QgsProcessingParameterDefinition *parameter, Qgis::ProcessingMode type ) override;
1747 QgsProcessingAbstractParameterDefinitionWidget *createParameterDefinitionWidget(
1748 QgsProcessingContext &context, const QgsProcessingParameterWidgetContext &widgetContext, const QgsProcessingParameterDefinition *definition = nullptr, const QgsProcessingAlgorithm *algorithm = nullptr
1749 ) override;
1750
1751 protected:
1752 QString modelerExpressionFormatString() const override;
1753};
1754
1755
1756class GUI_EXPORT QgsProcessingFeatureSourceParameterDefinitionWidget : public QgsProcessingAbstractParameterDefinitionWidget
1757{
1758 Q_OBJECT
1759 public:
1760 QgsProcessingFeatureSourceParameterDefinitionWidget(
1761 QgsProcessingContext &context,
1762 const QgsProcessingParameterWidgetContext &widgetContext,
1763 const QgsProcessingParameterDefinition *definition = nullptr,
1764 const QgsProcessingAlgorithm *algorithm = nullptr,
1765 QWidget *parent SIP_TRANSFERTHIS = nullptr
1766 );
1767 QgsProcessingParameterDefinition *createParameter( const QString &name, const QString &description, Qgis::ProcessingParameterFlags flags ) const override;
1768
1769 private:
1770 QgsCheckableComboBox *mGeometryTypeComboBox = nullptr;
1771};
1772
1773class GUI_EXPORT QgsProcessingFeatureSourceWidgetWrapper : public QgsProcessingMapLayerWidgetWrapper
1774{
1775 Q_OBJECT
1776
1777 public:
1778 QgsProcessingFeatureSourceWidgetWrapper( const QgsProcessingParameterDefinition *parameter = nullptr, Qgis::ProcessingMode type = Qgis::ProcessingMode::Standard, QWidget *parent = nullptr );
1779
1780 // QgsProcessingParameterWidgetFactoryInterface
1781 QString parameterType() const override;
1782 QgsAbstractProcessingParameterWidgetWrapper *createWidgetWrapper( const QgsProcessingParameterDefinition *parameter, Qgis::ProcessingMode type ) override;
1783 QgsProcessingAbstractParameterDefinitionWidget *createParameterDefinitionWidget(
1784 QgsProcessingContext &context, const QgsProcessingParameterWidgetContext &widgetContext, const QgsProcessingParameterDefinition *definition = nullptr, const QgsProcessingAlgorithm *algorithm = nullptr
1785 ) override;
1786
1787 protected:
1788 QString modelerExpressionFormatString() const override;
1789};
1790
1791
1792class GUI_EXPORT QgsProcessingMeshLayerWidgetWrapper : public QgsProcessingMapLayerWidgetWrapper
1793{
1794 Q_OBJECT
1795
1796 public:
1797 QgsProcessingMeshLayerWidgetWrapper( const QgsProcessingParameterDefinition *parameter = nullptr, Qgis::ProcessingMode type = Qgis::ProcessingMode::Standard, QWidget *parent = nullptr );
1798
1799 // QgsProcessingParameterWidgetFactoryInterface
1800 QString parameterType() const override;
1801 QgsAbstractProcessingParameterWidgetWrapper *createWidgetWrapper( const QgsProcessingParameterDefinition *parameter, Qgis::ProcessingMode type ) override;
1802 QgsProcessingAbstractParameterDefinitionWidget *createParameterDefinitionWidget(
1803 QgsProcessingContext &context, const QgsProcessingParameterWidgetContext &widgetContext, const QgsProcessingParameterDefinition *definition = nullptr, const QgsProcessingAlgorithm *algorithm = nullptr
1804 ) override;
1805
1806 protected:
1807 QString modelerExpressionFormatString() const override;
1808};
1809
1810
1811class GUI_EXPORT QgsProcessingRasterBandPanelWidget : public QWidget
1812{
1813 Q_OBJECT
1814
1815 public:
1816 QgsProcessingRasterBandPanelWidget( QWidget *parent = nullptr, const QgsProcessingParameterBand *param = nullptr );
1817
1818 void setBands( const QList<int> &bands );
1819 void setBandNames( const QHash<int, QString> &names );
1820 QList<int> bands() const { return mBands; }
1821
1822 QVariant value() const { return mValue; }
1823 void setValue( const QVariant &value );
1824
1825 signals:
1826
1827 void changed();
1828
1829 private slots:
1830
1831 void showDialog();
1832
1833 private:
1834 void updateSummaryText();
1835
1836 QList<int> mBands;
1837 QHash<int, QString> mBandNames;
1838
1839 const QgsProcessingParameterBand *mParam = nullptr;
1840 QLineEdit *mLineEdit = nullptr;
1841 QToolButton *mToolButton = nullptr;
1842
1843 QVariantList mValue;
1844
1845 friend class TestProcessingGui;
1846};
1847
1848class GUI_EXPORT QgsProcessingBandParameterDefinitionWidget : public QgsProcessingAbstractParameterDefinitionWidget
1849{
1850 Q_OBJECT
1851 public:
1852 QgsProcessingBandParameterDefinitionWidget(
1853 QgsProcessingContext &context,
1854 const QgsProcessingParameterWidgetContext &widgetContext,
1855 const QgsProcessingParameterDefinition *definition = nullptr,
1856 const QgsProcessingAlgorithm *algorithm = nullptr,
1857 QWidget *parent SIP_TRANSFERTHIS = nullptr
1858 );
1859 QgsProcessingParameterDefinition *createParameter( const QString &name, const QString &description, Qgis::ProcessingParameterFlags flags ) const override;
1860
1861 private:
1862 QComboBox *mParentLayerComboBox = nullptr;
1863 QLineEdit *mDefaultLineEdit = nullptr;
1864 QCheckBox *mAllowMultipleCheckBox = nullptr;
1865};
1866
1867class GUI_EXPORT QgsProcessingBandWidgetWrapper : public QgsAbstractProcessingParameterWidgetWrapper, public QgsProcessingParameterWidgetFactoryInterface
1868{
1869 Q_OBJECT
1870
1871 public:
1872 QgsProcessingBandWidgetWrapper( const QgsProcessingParameterDefinition *parameter = nullptr, Qgis::ProcessingMode type = Qgis::ProcessingMode::Standard, QWidget *parent = nullptr );
1873
1874 // QgsProcessingParameterWidgetFactoryInterface
1875 QString parameterType() const override;
1876 QgsAbstractProcessingParameterWidgetWrapper *createWidgetWrapper( const QgsProcessingParameterDefinition *parameter, Qgis::ProcessingMode type ) override;
1877 QgsProcessingAbstractParameterDefinitionWidget *createParameterDefinitionWidget(
1878 QgsProcessingContext &context, const QgsProcessingParameterWidgetContext &widgetContext, const QgsProcessingParameterDefinition *definition = nullptr, const QgsProcessingAlgorithm *algorithm = nullptr
1879 ) override;
1880
1881 // QgsProcessingParameterWidgetWrapper interface
1882 QWidget *createWidget() override SIP_FACTORY;
1883 void postInitialize( const QList<QgsAbstractProcessingParameterWidgetWrapper *> &wrappers ) override;
1884
1885 public slots:
1886 void setParentLayerWrapperValue( const QgsAbstractProcessingParameterWidgetWrapper *parentWrapper );
1887
1888 protected:
1889 void setWidgetValue( const QVariant &value, QgsProcessingContext &context ) override;
1890 QVariant widgetValue() const override;
1891
1892 QString modelerExpressionFormatString() const override;
1893
1894 private:
1895 QgsRasterBandComboBox *mComboBox = nullptr;
1896 QgsProcessingRasterBandPanelWidget *mPanel = nullptr;
1897 QLineEdit *mLineEdit = nullptr;
1898
1899 std::unique_ptr<QgsRasterLayer> mParentLayer;
1900
1901 friend class TestProcessingGui;
1902};
1903
1904
1905class GUI_EXPORT QgsProcessingMultipleLayerLineEdit : public QgsHighlightableLineEdit
1906{
1907 Q_OBJECT
1908
1909 public:
1910 QgsProcessingMultipleLayerLineEdit( QWidget *parent = nullptr, const QgsProcessingParameterMultipleLayers *param = nullptr );
1911 void dragEnterEvent( QDragEnterEvent *event ) override;
1912 void dragLeaveEvent( QDragLeaveEvent *event ) override;
1913 void dropEvent( QDropEvent *event ) override;
1914
1915 signals:
1916
1917 void layersDropped( const QVariantList &value );
1918
1919 private:
1920 const QgsProcessingParameterMultipleLayers *mParam = nullptr;
1921};
1922
1923class GUI_EXPORT QgsProcessingMultipleLayerPanelWidget : public QWidget
1924{
1925 Q_OBJECT
1926
1927 public:
1928 QgsProcessingMultipleLayerPanelWidget( QWidget *parent = nullptr, const QgsProcessingParameterMultipleLayers *param = nullptr );
1929
1930 QVariant value() const { return mValue; }
1931 void setValue( const QVariant &value );
1932
1933 void setProject( QgsProject *project );
1934 void setModel( QgsProcessingModelAlgorithm *model, const QString &modelChildAlgorithmID );
1935
1936 signals:
1937
1938 void changed();
1939
1940 private slots:
1941
1942 void showDialog();
1943
1944 private:
1945 void updateSummaryText();
1946
1947 const QgsProcessingParameterMultipleLayers *mParam = nullptr;
1948 QgsProcessingMultipleLayerLineEdit *mLineEdit = nullptr;
1949 QToolButton *mToolButton = nullptr;
1950
1951 QVariantList mValue;
1952 QList<QgsProcessingModelChildParameterSource> mModelSources;
1953 QgsProcessingModelAlgorithm *mModel = nullptr;
1954
1955 QgsProject *mProject = nullptr;
1956
1957 friend class TestProcessingGui;
1958};
1959
1960class GUI_EXPORT QgsProcessingMultipleLayerParameterDefinitionWidget : public QgsProcessingAbstractParameterDefinitionWidget
1961{
1962 Q_OBJECT
1963 public:
1964 QgsProcessingMultipleLayerParameterDefinitionWidget(
1965 QgsProcessingContext &context,
1966 const QgsProcessingParameterWidgetContext &widgetContext,
1967 const QgsProcessingParameterDefinition *definition = nullptr,
1968 const QgsProcessingAlgorithm *algorithm = nullptr,
1969 QWidget *parent SIP_TRANSFERTHIS = nullptr
1970 );
1971 QgsProcessingParameterDefinition *createParameter( const QString &name, const QString &description, Qgis::ProcessingParameterFlags flags ) const override;
1972
1973 private:
1974 QComboBox *mLayerTypeComboBox = nullptr;
1975};
1976
1977class GUI_EXPORT QgsProcessingMultipleLayerWidgetWrapper : public QgsAbstractProcessingParameterWidgetWrapper, public QgsProcessingParameterWidgetFactoryInterface
1978{
1979 Q_OBJECT
1980
1981 public:
1982 QgsProcessingMultipleLayerWidgetWrapper( const QgsProcessingParameterDefinition *parameter = nullptr, Qgis::ProcessingMode type = Qgis::ProcessingMode::Standard, QWidget *parent = nullptr );
1983
1984 // QgsProcessingParameterWidgetFactoryInterface
1985 QString parameterType() const override;
1986 QgsAbstractProcessingParameterWidgetWrapper *createWidgetWrapper( const QgsProcessingParameterDefinition *parameter, Qgis::ProcessingMode type ) override;
1987 QgsProcessingAbstractParameterDefinitionWidget *createParameterDefinitionWidget(
1988 QgsProcessingContext &context, const QgsProcessingParameterWidgetContext &widgetContext, const QgsProcessingParameterDefinition *definition = nullptr, const QgsProcessingAlgorithm *algorithm = nullptr
1989 ) override;
1990
1991 // QgsProcessingParameterWidgetWrapper interface
1992 QWidget *createWidget() override SIP_FACTORY;
1993 void setWidgetContext( const QgsProcessingParameterWidgetContext &context ) override;
1994
1995 protected:
1996 void setWidgetValue( const QVariant &value, QgsProcessingContext &context ) override;
1997 QVariant widgetValue() const override;
1998
1999 QString modelerExpressionFormatString() const override;
2000
2001 private:
2002 QgsProcessingMultipleLayerPanelWidget *mPanel = nullptr;
2003
2004 friend class TestProcessingGui;
2005};
2006
2012class GUI_EXPORT QgsProcessingDestinationParameterDefinitionWidget : public QgsProcessingAbstractParameterDefinitionWidget
2013{
2014 Q_OBJECT
2015
2016 public:
2017 QgsProcessingDestinationParameterDefinitionWidget(
2018 const QString &type,
2019 QgsProcessingContext &context,
2020 const QgsProcessingParameterWidgetContext &widgetContext,
2021 const QgsProcessingDestinationParameter *definition = nullptr,
2022 const QgsProcessingAlgorithm *algorithm = nullptr,
2023 QWidget *parent SIP_TRANSFERTHIS = nullptr
2024 );
2025
2026 QgsProcessingParameterDefinition *createParameter( const QString &name, const QString &description, Qgis::ProcessingParameterFlags flags ) const override;
2027
2028 private:
2029 QString mType;
2030 QgsProcessingLayerOutputDestinationWidget *mDestinationWidget = nullptr;
2031 std::unique_ptr< QgsProcessingDestinationParameter > mExistingDestinationParameter;
2032};
2033
2034class GUI_EXPORT QgsProcessingOutputWidgetWrapper : public QgsAbstractProcessingParameterWidgetWrapper, public QgsProcessingParameterWidgetFactoryInterface
2035{
2036 Q_OBJECT
2037
2038 public:
2039 QgsProcessingOutputWidgetWrapper( const QgsProcessingParameterDefinition *parameter = nullptr, Qgis::ProcessingMode type = Qgis::ProcessingMode::Standard, QWidget *parent = nullptr );
2040
2041 // QgsProcessingParameterWidgetWrapper interface
2042 QWidget *createWidget() override SIP_FACTORY;
2043 QgsProcessingAbstractParameterDefinitionWidget *createParameterDefinitionWidget(
2044 QgsProcessingContext &context, const QgsProcessingParameterWidgetContext &widgetContext, const QgsProcessingParameterDefinition *definition = nullptr, const QgsProcessingAlgorithm *algorithm = nullptr
2045 ) override;
2046
2047 protected:
2048 void setWidgetValue( const QVariant &value, QgsProcessingContext &context ) override;
2049 QVariant widgetValue() const override;
2050 QVariantMap customProperties() const override;
2051
2052 private:
2053 QgsProcessingLayerOutputDestinationWidget *mOutputWidget = nullptr;
2054 int mBlockSignals = 0;
2055
2056 friend class TestProcessingGui;
2057};
2058
2059
2060class GUI_EXPORT QgsProcessingFeatureSinkWidgetWrapper : public QgsProcessingOutputWidgetWrapper
2061{
2062 Q_OBJECT
2063
2064 public:
2065 QgsProcessingFeatureSinkWidgetWrapper( const QgsProcessingParameterDefinition *parameter = nullptr, Qgis::ProcessingMode type = Qgis::ProcessingMode::Standard, QWidget *parent = nullptr );
2066
2067 // QgsProcessingParameterWidgetFactoryInterface
2068 QString parameterType() const override;
2069 QgsAbstractProcessingParameterWidgetWrapper *createWidgetWrapper( const QgsProcessingParameterDefinition *parameter, Qgis::ProcessingMode type ) override;
2070
2071 protected:
2072 QString modelerExpressionFormatString() const override;
2073
2074 private:
2075 QgsProcessingContext mContext;
2076};
2077
2078class GUI_EXPORT QgsProcessingVectorDestinationWidgetWrapper : public QgsProcessingOutputWidgetWrapper
2079{
2080 Q_OBJECT
2081
2082 public:
2083 QgsProcessingVectorDestinationWidgetWrapper( const QgsProcessingParameterDefinition *parameter = nullptr, Qgis::ProcessingMode type = Qgis::ProcessingMode::Standard, QWidget *parent = nullptr );
2084
2085 // QgsProcessingParameterWidgetFactoryInterface
2086 QString parameterType() const override;
2087 QgsAbstractProcessingParameterWidgetWrapper *createWidgetWrapper( const QgsProcessingParameterDefinition *parameter, Qgis::ProcessingMode type ) override;
2088
2089 protected:
2090 QString modelerExpressionFormatString() const override;
2091};
2092
2093class GUI_EXPORT QgsProcessingRasterDestinationWidgetWrapper : public QgsProcessingOutputWidgetWrapper
2094{
2095 Q_OBJECT
2096
2097 public:
2098 QgsProcessingRasterDestinationWidgetWrapper( const QgsProcessingParameterDefinition *parameter = nullptr, Qgis::ProcessingMode type = Qgis::ProcessingMode::Standard, QWidget *parent = nullptr );
2099
2100 // QgsProcessingParameterWidgetFactoryInterface
2101 QString parameterType() const override;
2102 QgsAbstractProcessingParameterWidgetWrapper *createWidgetWrapper( const QgsProcessingParameterDefinition *parameter, Qgis::ProcessingMode type ) override;
2103
2104 protected:
2105 QString modelerExpressionFormatString() const override;
2106};
2107
2108class GUI_EXPORT QgsProcessingPointCloudDestinationWidgetWrapper : public QgsProcessingOutputWidgetWrapper
2109{
2110 Q_OBJECT
2111
2112 public:
2113 QgsProcessingPointCloudDestinationWidgetWrapper( const QgsProcessingParameterDefinition *parameter = nullptr, Qgis::ProcessingMode type = Qgis::ProcessingMode::Standard, QWidget *parent = nullptr );
2114
2115 // QgsProcessingParameterWidgetFactoryInterface
2116 QString parameterType() const override;
2117 QgsAbstractProcessingParameterWidgetWrapper *createWidgetWrapper( const QgsProcessingParameterDefinition *parameter, Qgis::ProcessingMode type ) override;
2118
2119 protected:
2120 QString modelerExpressionFormatString() const override;
2121};
2122
2123class GUI_EXPORT QgsProcessingFileDestinationWidgetWrapper : public QgsProcessingOutputWidgetWrapper
2124{
2125 Q_OBJECT
2126
2127 public:
2128 QgsProcessingFileDestinationWidgetWrapper( const QgsProcessingParameterDefinition *parameter = nullptr, Qgis::ProcessingMode type = Qgis::ProcessingMode::Standard, QWidget *parent = nullptr );
2129
2130 // QgsProcessingParameterWidgetFactoryInterface
2131 QString parameterType() const override;
2132 QgsAbstractProcessingParameterWidgetWrapper *createWidgetWrapper( const QgsProcessingParameterDefinition *parameter, Qgis::ProcessingMode type ) override;
2133
2134 protected:
2135 QString modelerExpressionFormatString() const override;
2136};
2137
2138class GUI_EXPORT QgsProcessingFolderDestinationWidgetWrapper : public QgsProcessingOutputWidgetWrapper
2139{
2140 Q_OBJECT
2141
2142 public:
2143 QgsProcessingFolderDestinationWidgetWrapper( const QgsProcessingParameterDefinition *parameter = nullptr, Qgis::ProcessingMode type = Qgis::ProcessingMode::Standard, QWidget *parent = nullptr );
2144
2145 // QgsProcessingParameterWidgetFactoryInterface
2146 QString parameterType() const override;
2147 QgsAbstractProcessingParameterWidgetWrapper *createWidgetWrapper( const QgsProcessingParameterDefinition *parameter, Qgis::ProcessingMode type ) override;
2148
2149 protected:
2150 QString modelerExpressionFormatString() const override;
2151};
2152
2153class GUI_EXPORT QgsProcessingPointCloudLayerWidgetWrapper : public QgsProcessingMapLayerWidgetWrapper
2154{
2155 Q_OBJECT
2156
2157 public:
2158 QgsProcessingPointCloudLayerWidgetWrapper( const QgsProcessingParameterDefinition *parameter = nullptr, Qgis::ProcessingMode type = Qgis::ProcessingMode::Standard, QWidget *parent = nullptr );
2159
2160 // QgsProcessingParameterWidgetFactoryInterface
2161 QString parameterType() const override;
2162 QgsAbstractProcessingParameterWidgetWrapper *createWidgetWrapper( const QgsProcessingParameterDefinition *parameter, Qgis::ProcessingMode type ) override;
2163 QgsProcessingAbstractParameterDefinitionWidget *createParameterDefinitionWidget(
2164 QgsProcessingContext &context, const QgsProcessingParameterWidgetContext &widgetContext, const QgsProcessingParameterDefinition *definition = nullptr, const QgsProcessingAlgorithm *algorithm = nullptr
2165 ) override;
2166
2167 protected:
2168 QString modelerExpressionFormatString() const override;
2169};
2170
2171
2172class GUI_EXPORT QgsProcessingAnnotationLayerWidgetWrapper : public QgsAbstractProcessingParameterWidgetWrapper, public QgsProcessingParameterWidgetFactoryInterface
2173{
2174 Q_OBJECT
2175
2176 public:
2177 QgsProcessingAnnotationLayerWidgetWrapper( const QgsProcessingParameterDefinition *parameter = nullptr, Qgis::ProcessingMode type = Qgis::ProcessingMode::Standard, QWidget *parent = nullptr );
2178
2179 // QgsProcessingParameterWidgetFactoryInterface
2180 QString parameterType() const override;
2181 QgsAbstractProcessingParameterWidgetWrapper *createWidgetWrapper( const QgsProcessingParameterDefinition *parameter, Qgis::ProcessingMode type ) override;
2182 QgsProcessingAbstractParameterDefinitionWidget *createParameterDefinitionWidget(
2183 QgsProcessingContext &context, const QgsProcessingParameterWidgetContext &widgetContext, const QgsProcessingParameterDefinition *definition = nullptr, const QgsProcessingAlgorithm *algorithm = nullptr
2184 ) override;
2185 void setWidgetContext( const QgsProcessingParameterWidgetContext &context ) override;
2186
2187 QWidget *createWidget() override SIP_FACTORY;
2188
2189 protected:
2190 void setWidgetValue( const QVariant &value, QgsProcessingContext &context ) override;
2191 QVariant widgetValue() const override;
2192
2193 QString modelerExpressionFormatString() const override;
2194
2195 private:
2196 QPointer<QgsMapLayerComboBox> mComboBox;
2197 int mBlockSignals = 0;
2198
2199 friend class TestProcessingGui;
2200};
2201
2202
2203class GUI_EXPORT QgsProcessingPointCloudAttributePanelWidget : public QWidget
2204{
2205 Q_OBJECT
2206
2207 public:
2208 QgsProcessingPointCloudAttributePanelWidget( QWidget *parent = nullptr, const QgsProcessingParameterPointCloudAttribute *param = nullptr );
2209
2210 void setAttributes( const QgsPointCloudAttributeCollection &attributes );
2211
2212 QgsPointCloudAttributeCollection attributes() const { return mAttributes; }
2213
2214 QVariant value() const { return mValue; }
2215 void setValue( const QVariant &value );
2216
2217 signals:
2218
2219 void changed();
2220
2221 private slots:
2222
2223 void showDialog();
2224
2225 private:
2226 void updateSummaryText();
2227
2228 QgsPointCloudAttributeCollection mAttributes;
2229
2230 const QgsProcessingParameterPointCloudAttribute *mParam = nullptr;
2231 QLineEdit *mLineEdit = nullptr;
2232 QToolButton *mToolButton = nullptr;
2233
2234 QVariantList mValue;
2235
2236 friend class TestProcessingGui;
2237};
2238
2239class GUI_EXPORT QgsProcessingPointCloudAttributeParameterDefinitionWidget : public QgsProcessingAbstractParameterDefinitionWidget
2240{
2241 Q_OBJECT
2242 public:
2243 QgsProcessingPointCloudAttributeParameterDefinitionWidget(
2244 QgsProcessingContext &context,
2245 const QgsProcessingParameterWidgetContext &widgetContext,
2246 const QgsProcessingParameterDefinition *definition = nullptr,
2247 const QgsProcessingAlgorithm *algorithm = nullptr,
2248 QWidget *parent SIP_TRANSFERTHIS = nullptr
2249 );
2250 QgsProcessingParameterDefinition *createParameter( const QString &name, const QString &description, Qgis::ProcessingParameterFlags flags ) const override;
2251
2252 private:
2253 QComboBox *mParentLayerComboBox = nullptr;
2254 QLineEdit *mDefaultLineEdit = nullptr;
2255 QCheckBox *mAllowMultipleCheckBox = nullptr;
2256 QCheckBox *mDefaultToAllCheckBox = nullptr;
2257};
2258
2259class GUI_EXPORT QgsProcessingPointCloudAttributeWidgetWrapper : public QgsAbstractProcessingParameterWidgetWrapper, public QgsProcessingParameterWidgetFactoryInterface
2260{
2261 Q_OBJECT
2262
2263 public:
2264 QgsProcessingPointCloudAttributeWidgetWrapper( const QgsProcessingParameterDefinition *parameter = nullptr, Qgis::ProcessingMode type = Qgis::ProcessingMode::Standard, QWidget *parent = nullptr );
2265
2266 // QgsProcessingParameterWidgetFactoryInterface
2267 QString parameterType() const override;
2268 QgsAbstractProcessingParameterWidgetWrapper *createWidgetWrapper( const QgsProcessingParameterDefinition *parameter, Qgis::ProcessingMode type ) override;
2269 QgsProcessingAbstractParameterDefinitionWidget *createParameterDefinitionWidget(
2270 QgsProcessingContext &context, const QgsProcessingParameterWidgetContext &widgetContext, const QgsProcessingParameterDefinition *definition = nullptr, const QgsProcessingAlgorithm *algorithm = nullptr
2271 ) override;
2272
2273 // QgsProcessingParameterWidgetWrapper interface
2274 QWidget *createWidget() override SIP_FACTORY;
2275 void postInitialize( const QList<QgsAbstractProcessingParameterWidgetWrapper *> &wrappers ) override;
2276
2277 public slots:
2278 void setParentLayerWrapperValue( const QgsAbstractProcessingParameterWidgetWrapper *parentWrapper );
2279
2280 protected:
2281 void setWidgetValue( const QVariant &value, QgsProcessingContext &context ) override;
2282 QVariant widgetValue() const override;
2283
2284 QString modelerExpressionFormatString() const override;
2285
2286 private:
2287 QgsPointCloudAttributeComboBox *mComboBox = nullptr;
2288 QgsProcessingPointCloudAttributePanelWidget *mPanel = nullptr;
2289 QLineEdit *mLineEdit = nullptr;
2290
2291 std::unique_ptr<QgsPointCloudLayer> mParentLayer;
2292
2293 friend class TestProcessingGui;
2294};
2295
2296class GUI_EXPORT QgsProcessingVectorTileDestinationWidgetWrapper : public QgsProcessingOutputWidgetWrapper
2297{
2298 Q_OBJECT
2299
2300 public:
2301 QgsProcessingVectorTileDestinationWidgetWrapper( const QgsProcessingParameterDefinition *parameter = nullptr, Qgis::ProcessingMode type = Qgis::ProcessingMode::Standard, QWidget *parent = nullptr );
2302
2303 // QgsProcessingParameterWidgetFactoryInterface
2304 QString parameterType() const override;
2305 QgsAbstractProcessingParameterWidgetWrapper *createWidgetWrapper( const QgsProcessingParameterDefinition *parameter, Qgis::ProcessingMode type ) override;
2306
2307 protected:
2308 QString modelerExpressionFormatString() const override;
2309};
2310
2311
2312class GUI_EXPORT QgsHeatmapPixelSizeWidget : public QgsPanelWidget, private Ui::QgsProcessingPixelSizeWidgetBase
2313{
2314 Q_OBJECT
2315 public:
2316 QgsHeatmapPixelSizeWidget( QWidget *parent = nullptr );
2317
2318 void setLayer( QgsVectorLayer *layer );
2319 QgsVectorLayer *layer();
2320 void setRadius( double radius );
2321 void setRadiusField( const QString &radiusField );
2322
2323 double value() const;
2324 void setValue( double value );
2325
2326 signals:
2327 void valueChanged();
2328
2329 private slots:
2330 void pixelSizeChanged();
2331 void rowsChanged();
2332 void columnsChanged();
2333
2334 private:
2335 void recalculateBounds();
2336
2337 QPointer<QgsVectorLayer> mLayer;
2338 QgsRectangle mLayerBounds;
2339 QgsRectangle mRasterBounds;
2340 double mRadius = 100.0;
2341 QString mRadiusField;
2342
2343 friend class TestProcessingGui;
2344};
2345
2346class GUI_EXPORT QgsProcessingHeatmapPixelSizeWidgetWrapper : public QgsAbstractProcessingParameterWidgetWrapper, public QgsProcessingParameterWidgetFactoryInterface
2347{
2348 Q_OBJECT
2349 public:
2350 QgsProcessingHeatmapPixelSizeWidgetWrapper( const QgsProcessingParameterDefinition *parameter = nullptr, Qgis::ProcessingMode type = Qgis::ProcessingMode::Standard, QWidget *parent = nullptr );
2351
2352 // QgsProcessingParameterWidgetFactoryInterface
2353 QString parameterType() const override;
2354 QgsAbstractProcessingParameterWidgetWrapper *createWidgetWrapper( const QgsProcessingParameterDefinition *parameter, Qgis::ProcessingMode type ) override;
2355 QgsProcessingAbstractParameterDefinitionWidget *createParameterDefinitionWidget(
2356 QgsProcessingContext &context, const QgsProcessingParameterWidgetContext &widgetContext, const QgsProcessingParameterDefinition *definition = nullptr, const QgsProcessingAlgorithm *algorithm = nullptr
2357 ) override;
2358
2359 // QgsProcessingParameterWidgetWrapper interface
2360 QWidget *createWidget() override;
2361 void postInitialize( const QList<QgsAbstractProcessingParameterWidgetWrapper *> &wrappers ) override;
2362
2363 public slots:
2364 void setParentLayerWrapperValue( const QgsAbstractProcessingParameterWidgetWrapper *parentWrapper );
2365
2366 protected:
2367 void setWidgetValue( const QVariant &value, QgsProcessingContext &context ) override;
2368 QVariant widgetValue() const override;
2369 const QgsVectorLayer *linkedVectorLayer() const override;
2370
2371 private slots:
2372 void radiusChanged( QgsAbstractProcessingParameterWidgetWrapper *wrapper );
2373 void radiusFieldChanged( QgsAbstractProcessingParameterWidgetWrapper *wrapper );
2374
2375 private:
2376 QgsHeatmapPixelSizeWidget *mWidget = nullptr;
2377 QgsDoubleSpinBox *mFallbackSpinBox = nullptr;
2378
2379 std::unique_ptr<QgsMapLayer> mParentLayer;
2380
2381 friend class TestProcessingGui;
2382};
2383
2384
2385class GUI_EXPORT QgsReliefColorsWidget : public QgsPanelWidget, private Ui::QgsProcessingReliefColorsWidgetBase
2386{
2387 Q_OBJECT
2388 public:
2389 QgsReliefColorsWidget( QWidget *parent = nullptr );
2390
2391 void setLayer( QgsRasterLayer *layer );
2392 QgsRasterLayer *layer();
2393
2394 QList< QgsRasterReliefColor > colors() const;
2395
2396 void setColors( const QList< QgsRasterReliefColor > &colors );
2397
2398 public slots:
2399
2400 void autoCalculate();
2401
2402 signals:
2403 void valueChanged();
2404
2405 private slots:
2406 void addClicked();
2407 void removeClicked();
2408 void upClicked();
2409 void downClicked();
2410 void loadClicked();
2411 void saveClicked();
2412 void itemDoubleClicked( QTreeWidgetItem *item, int column );
2413
2414 private:
2415 QPointer<QgsRasterLayer> mLayer;
2416};
2417
2418
2419class GUI_EXPORT QgsProcessingReliefColorsWidgetWrapper : public QgsAbstractProcessingParameterWidgetWrapper, public QgsProcessingParameterWidgetFactoryInterface
2420{
2421 Q_OBJECT
2422 public:
2423 QgsProcessingReliefColorsWidgetWrapper( const QgsProcessingParameterDefinition *parameter = nullptr, Qgis::ProcessingMode type = Qgis::ProcessingMode::Standard, QWidget *parent = nullptr );
2424
2425 // QgsProcessingParameterWidgetFactoryInterface
2426 QString parameterType() const override;
2427 QgsAbstractProcessingParameterWidgetWrapper *createWidgetWrapper( const QgsProcessingParameterDefinition *parameter, Qgis::ProcessingMode type ) override;
2428 QgsProcessingAbstractParameterDefinitionWidget *createParameterDefinitionWidget(
2429 QgsProcessingContext &context, const QgsProcessingParameterWidgetContext &widgetContext, const QgsProcessingParameterDefinition *definition = nullptr, const QgsProcessingAlgorithm *algorithm = nullptr
2430 ) override;
2431
2432 // QgsProcessingParameterWidgetWrapper interface
2433 QWidget *createWidget() override;
2434 void postInitialize( const QList<QgsAbstractProcessingParameterWidgetWrapper *> &wrappers ) override;
2435
2436 public slots:
2437 void setParentLayerWrapperValue( const QgsAbstractProcessingParameterWidgetWrapper *parentWrapper );
2438
2439 protected:
2440 void setWidgetValue( const QVariant &value, QgsProcessingContext &context ) override;
2441 QVariant widgetValue() const override;
2442 QString modelerExpressionFormatString() const override;
2443
2444 private:
2445 QgsReliefColorsWidget *mWidget = nullptr;
2446 QLineEdit *mFallbackLineEdit = nullptr;
2447
2448 std::unique_ptr<QgsRasterLayer> mParentLayer;
2449
2450 friend class TestProcessingGui;
2451};
2452
2453class GUI_EXPORT QgsExecuteSqlWidget : public QWidget
2454{
2455 Q_OBJECT
2456
2457 public:
2458 explicit QgsExecuteSqlWidget( QWidget *parent = nullptr );
2459 void setValue( const QString &text );
2460 QString value() const;
2461 QgsFieldExpressionWidget *expressionWidget() const { return mExpressionWidget; }
2462 QPlainTextEdit *textEdit() const { return mTextEdit; }
2463
2464 signals:
2465
2466 void changed();
2467
2468 private slots:
2469
2470 void insertExpression();
2471
2472 private:
2473 QPlainTextEdit *mTextEdit = nullptr;
2474 QgsFieldExpressionWidget *mExpressionWidget = nullptr;
2475 QPushButton *mInsertButton = nullptr;
2476};
2477
2478class GUI_EXPORT QgsProcessingExecuteSqlWidgetWrapper : public QgsAbstractProcessingParameterWidgetWrapper, public QgsProcessingParameterWidgetFactoryInterface
2479{
2480 Q_OBJECT
2481
2482 public:
2483 QgsProcessingExecuteSqlWidgetWrapper( const QgsProcessingParameterDefinition *parameter = nullptr, Qgis::ProcessingMode type = Qgis::ProcessingMode::Standard, QObject *parent = nullptr );
2484
2485 // QgsProcessingParameterWidgetFactoryInterface
2486 QString parameterType() const override;
2487 QgsAbstractProcessingParameterWidgetWrapper *createWidgetWrapper( const QgsProcessingParameterDefinition *parameter, Qgis::ProcessingMode type ) override SIP_FACTORY;
2488 // QgsProcessingParameterWidgetWrapper interface
2489 QWidget *createWidget() override SIP_FACTORY;
2490
2491 protected:
2492 void setWidgetValue( const QVariant &value, QgsProcessingContext &context ) override;
2493 QVariant widgetValue() const override;
2494
2495 private:
2496 QgsExecuteSqlWidget *mExecuteSqlWidget = nullptr;
2497
2498 friend class TestProcessingGui;
2499};
2500
2501class GUI_EXPORT QgsInterpolationSourceWidget : public QWidget, private Ui::QgsInterpolationSourceWidgetBase
2502{
2503 Q_OBJECT
2504
2505 public:
2506 explicit QgsInterpolationSourceWidget( QWidget *parent = nullptr );
2507
2508 void setValue( const QVariant &value, QgsProcessingContext &context );
2509 QVariant value() const;
2510
2511 signals:
2512
2513 void changed();
2514
2515 private slots:
2516 void addLayer();
2517 void removeLayer();
2518 void layerChanged( QgsVectorLayer *layer );
2519
2520 private:
2521 void addLayerData( QgsVectorLayer *layer, const QString &attribute );
2522
2523 friend class TestProcessingGui;
2524};
2525
2526class GUI_EXPORT QgsProcessingInterpolationSourceWidgetWrapper : public QgsAbstractProcessingParameterWidgetWrapper, public QgsProcessingParameterWidgetFactoryInterface
2527{
2528 Q_OBJECT
2529
2530 public:
2531 QgsProcessingInterpolationSourceWidgetWrapper( const QgsProcessingParameterDefinition *parameter = nullptr, Qgis::ProcessingMode type = Qgis::ProcessingMode::Standard, QObject *parent = nullptr );
2532
2533 QString parameterType() const override;
2534 QgsAbstractProcessingParameterWidgetWrapper *createWidgetWrapper( const QgsProcessingParameterDefinition *parameter, Qgis::ProcessingMode type ) override;
2535 QgsProcessingAbstractParameterDefinitionWidget *createParameterDefinitionWidget(
2536 QgsProcessingContext &context, const QgsProcessingParameterWidgetContext &widgetContext, const QgsProcessingParameterDefinition *definition = nullptr, const QgsProcessingAlgorithm *algorithm = nullptr
2537 ) override;
2538
2539 QWidget *createWidget() override SIP_FACTORY;
2540
2541 protected:
2542 void setWidgetValue( const QVariant &value, QgsProcessingContext &context ) override;
2543 QVariant widgetValue() const override;
2544
2545 private:
2546 QgsInterpolationSourceWidget *mWidget = nullptr;
2547
2548 friend class TestProcessingGui;
2549};
2550
2551
2552class GUI_EXPORT QgsInterpolationPixelSizeWidget : public QgsPanelWidget, private Ui::QgsProcessingPixelSizeWidgetBase
2553{
2554 Q_OBJECT
2555 public:
2556 QgsInterpolationPixelSizeWidget( QWidget *parent = nullptr );
2557
2558 void setSourceData( const QString &sourceData, QgsProcessingContext &context );
2559 void setExtent( const QgsRectangle &extent );
2560
2561 double value() const;
2562 void setValue( double value );
2563
2564 signals:
2565 void valueChanged();
2566
2567 private slots:
2568 void pixelSizeChanged();
2569 void rowsChanged();
2570 void columnsChanged();
2571
2572 private:
2573 QgsRectangle mExtent;
2574
2575 friend class TestProcessingGui;
2576};
2577
2578
2579class GUI_EXPORT QgsProcessingInterpolationPixelSizeWidgetWrapper : public QgsAbstractProcessingParameterWidgetWrapper, public QgsProcessingParameterWidgetFactoryInterface
2580{
2581 Q_OBJECT
2582 public:
2583 QgsProcessingInterpolationPixelSizeWidgetWrapper( const QgsProcessingParameterDefinition *parameter = nullptr, Qgis::ProcessingMode type = Qgis::ProcessingMode::Standard, QWidget *parent = nullptr );
2584
2585 // QgsProcessingParameterWidgetFactoryInterface
2586 QString parameterType() const override;
2587 QgsAbstractProcessingParameterWidgetWrapper *createWidgetWrapper( const QgsProcessingParameterDefinition *parameter, Qgis::ProcessingMode type ) override;
2588 QgsProcessingAbstractParameterDefinitionWidget *createParameterDefinitionWidget(
2589 QgsProcessingContext &context, const QgsProcessingParameterWidgetContext &widgetContext, const QgsProcessingParameterDefinition *definition = nullptr, const QgsProcessingAlgorithm *algorithm = nullptr
2590 ) override;
2591
2592 // QgsProcessingParameterWidgetWrapper interface
2593 QWidget *createWidget() override;
2594 void postInitialize( const QList<QgsAbstractProcessingParameterWidgetWrapper *> &wrappers ) override;
2595
2596 protected:
2597 void setWidgetValue( const QVariant &value, QgsProcessingContext &context ) override;
2598 QVariant widgetValue() const override;
2599
2600 private slots:
2601 void sourceChanged( QgsAbstractProcessingParameterWidgetWrapper *wrapper );
2602 void extentChanged( QgsAbstractProcessingParameterWidgetWrapper *wrapper );
2603
2604 private:
2605 QgsInterpolationPixelSizeWidget *mWidget = nullptr;
2606 QgsDoubleSpinBox *mFallbackSpinBox = nullptr;
2607
2608 friend class TestProcessingGui;
2609};
2610
2612
2613#endif // QGSPROCESSINGWIDGETWRAPPERIMPL_H
ProcessingMode
Types of modes which Processing widgets can be created for.
Definition qgis.h:3890
@ Standard
Standard (single-run) algorithm mode.
Definition qgis.h:3891
QFlags< ProcessingParameterFlag > ProcessingParameterFlags
Flags which dictate the behavior of Processing parameters.
Definition qgis.h:3998
A widget wrapper for Processing parameter value widgets.
Selector widget for authentication configs.
QComboBox subclass which allows selecting multiple items.
A cross platform button subclass for selecting colors.
A widget for selecting the coordinate operation to use when transforming between a source and destina...
A combo box which displays the list of schemas for a specific database connection.
A combobox which displays the list of tables for a specific database connection.
A QDateEdit widget with the capability of setting/reading null dates.
A QDateTimeEdit with the capability of setting/reading null date/times.
The QgsSpinBox is a spin box with a clear button that will set the value to the defined clear value.
A reusable widget that can be used to build an expression string.
A widget which includes a line edit for entering expressions together with a button to open the expre...
A widget for configuration of a map extent.
A combobox which displays the list of fields of a given layer.
A widget for selection of layer fields or expression creation.
A widget for selecting a file or a folder.
QLineEdit subclass with built in support for clearing the widget's value and handling custom null val...
A widget for storing and interacting with a QgsGeometry object.
A QgsFilterLineEdit subclass with the ability to "highlight" the edges of the widget.
A combobox which displays available layouts from a QgsLayoutManager.
A combo box which displays items of a matching type from a layout.
A combobox which displays a dynamic list of layers from a QGIS project.
A combobox which displays the list of attributes of a given point cloud layer.
Print layout, a QgsLayout subclass for static or atlas-based layouts.
Abstract base class for widgets which allow users to specify the properties of a Processing parameter...
void changed()
Emitted whenever the definition of the parameter is changed in the widget.
virtual void setWidgetContext(const QgsProcessingParameterWidgetContext &context)
Sets the context in which the Processing definition widget is shown, e.g., the parent model algorithm...
virtual QgsProcessingParameterDefinition * createParameter(const QString &name, const QString &description, Qgis::ProcessingParameterFlags flags) const =0
Returns a new instance of a parameter definition, using the current settings defined in the dialog.
Abstract base class for processing algorithms.
Contains information about the context in which a processing algorithm is executed.
Base class for the definition of processing parameters.
An enum based parameter for processing algorithms, allowing for selection from predefined values.
Contains settings which reflect the context in which a Processing parameter widget is shown.
An interface for Processing widget wrapper factories.
A widget for selecting a projection.
A combo box which displays the list of connections registered for a given provider.
A combobox widget which displays the bands present in a raster layer.
Responsible for drawing transient features (e.g.
A combobox which lets the user select map scale from predefined list and highlights nearest to curren...
Shows a snapping marker on map canvas for the current snapping match.
A spin box with a clear button that will set the value to the defined clear value.
Definition qgsspinbox.h:45
A QTimeEdit widget with the capability of setting/reading null date/times.
As part of the API refactoring and improvements which landed in the Processing API was substantially reworked from the x version This was done in order to allow much of the underlying Processing framework to be ported into allowing algorithms to be written in pure substantial changes are required in order to port existing x Processing algorithms for QGIS x The most significant changes are outlined not GeoAlgorithm For algorithms which operate on features one by consider subclassing the QgsProcessingFeatureBasedAlgorithm class This class allows much of the boilerplate code for looping over features from a vector layer to be bypassed and instead requires implementation of a processFeature method Ensure that your algorithm(or algorithm 's parent class) implements the new pure virtual createInstance(self) call
#define SIP_TRANSFERTHIS
Definition qgis_sip.h:52
#define SIP_FACTORY
Definition qgis_sip.h:83