diff --git a/src/lib/jobs/kjobuidelegate.h b/src/lib/jobs/kjobuidelegate.h --- a/src/lib/jobs/kjobuidelegate.h +++ b/src/lib/jobs/kjobuidelegate.h @@ -32,11 +32,31 @@ Q_OBJECT public: + + /** + * Flags for the constructor, to enable automatic handling of errors and/or warnings + * @since 5.70 + */ + enum Flag { + AutoHandlingDisabled = 0, ///< No automatic handling (default) + AutoErrorHandlingEnabled = 1, ///< Equivalent to setAutoErrorHandlingEnabled(true) + AutoWarningHandlingEnabled = 2, ///< Equivalent to setAutoWarningHandlingEnabled(true) + AutoHandlingEnabled = AutoErrorHandlingEnabled | AutoWarningHandlingEnabled ///< Enables both error and warning handling + }; + Q_DECLARE_FLAGS(Flags, Flag) + /** * Constructs a new KJobUiDelegate. */ KJobUiDelegate(); + /** + * Constructs a new KJobUiDelegate with a flags argument. + * @param flags allows to enable automatic error/warning handling + * @since 5.70 + */ + KJobUiDelegate(Flags flags); // KF6 TODO merge with default constructor, using AutoHandlingDisabled as default value + /** * Destroys a KJobUiDelegate. */ @@ -124,4 +144,6 @@ Private *const d; }; +Q_DECLARE_OPERATORS_FOR_FLAGS(KJobUiDelegate::Flags) + #endif // KJOBUIDELEGATE_H diff --git a/src/lib/jobs/kjobuidelegate.cpp b/src/lib/jobs/kjobuidelegate.cpp --- a/src/lib/jobs/kjobuidelegate.cpp +++ b/src/lib/jobs/kjobuidelegate.cpp @@ -32,7 +32,17 @@ KJobUiDelegate::KJobUiDelegate() : QObject(), d(new Private(this)) { +} +KJobUiDelegate::KJobUiDelegate(Flags flags) + : QObject(), d(new Private(this)) +{ + if (flags & AutoErrorHandlingEnabled) { + d->autoErrorHandling = true; + } + if (flags & AutoWarningHandlingEnabled) { + d->autoWarningHandling = true; + } } KJobUiDelegate::~KJobUiDelegate()