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