File indexing completed on 2024-06-23 05:18:32

0001 /*
0002   SPDX-FileCopyrightText: 2009 Constantin Berzan <exit3219@gmail.com>
0003 
0004   SPDX-License-Identifier: LGPL-2.0-or-later
0005 */
0006 
0007 #pragma once
0008 
0009 #include "messagecomposer_export.h"
0010 
0011 #include <QList>
0012 
0013 #include <KCompositeJob>
0014 
0015 namespace MessageComposer
0016 {
0017 class GlobalPart;
0018 class JobBasePrivate;
0019 
0020 /**
0021   A dummy abstract class defining some errors pertaining to the Composer.
0022   It is meant to be subclassed.
0023 */
0024 class MESSAGECOMPOSER_EXPORT JobBase : public KCompositeJob
0025 {
0026     Q_OBJECT
0027 
0028 public:
0029     using List = QList<JobBase *>;
0030 
0031     enum Error {
0032         BugError = UserDefinedError + 1,
0033         IncompleteError,
0034         UserCancelledError,
0035         UserError = UserDefinedError + 42,
0036     };
0037 
0038     explicit JobBase(QObject *parent = nullptr);
0039     ~JobBase() override;
0040 
0041     // asserts if no Composer parent
0042     GlobalPart *globalPart();
0043 
0044 protected:
0045     JobBasePrivate *const d_ptr;
0046     JobBase(JobBasePrivate &dd, QObject *parent);
0047 
0048 private:
0049     Q_DECLARE_PRIVATE(JobBase)
0050 };
0051 } // namespace MessageComposer