00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef TW_ACTION_H
00020 #define TW_ACTION_H
00021
00022 #include <ThreadWeaver.h>
00023
00024 #include <koffice_export.h>
00025
00026 class KoExecutePolicy;
00027 class DirectPolicy;
00028 class KoJobsListPolicy;
00029
00055 class KOFFICECORE_EXPORT KoAction : public QObject {
00056 Q_OBJECT
00057 public:
00063 KoAction(QObject *parent = 0);
00064 virtual ~KoAction();
00065
00071 void setWeaver(ThreadWeaver::WeaverInterface *weaver) { m_weaver = weaver; }
00072
00076 ThreadWeaver::WeaverInterface *weaver() const { return m_weaver; }
00077
00081 void setExecutePolicy(KoExecutePolicy *policy) { m_policy = policy; }
00082
00088 void setEnabled(bool enabled) { m_enabled = enabled; }
00089
00093 bool isEnabled() const { return m_enabled; }
00094
00098 int jobCount();
00099
00100 signals:
00107 void triggered(const QVariant ¶ms);
00108
00115 void updateUi(const QVariant ¶ms);
00116
00117 public slots:
00122 void execute();
00123
00130 void execute(QVariant *params);
00131
00132 private:
00133 friend class ActionJob;
00134 void doAction(QVariant *params);
00135 void doActionUi(QVariant *params);
00136
00137 KoExecutePolicy *m_policy;
00138 ThreadWeaver::WeaverInterface *m_weaver;
00139 bool m_enabled;
00140 KoJobsListPolicy *m_jobsQueue;
00141 };
00142
00143 #endif