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