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