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