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