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