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