diff options
Diffstat (limited to 'kbugbuster/backend/bugcommand.h')
-rw-r--r-- | kbugbuster/backend/bugcommand.h | 217 |
1 files changed, 217 insertions, 0 deletions
diff --git a/kbugbuster/backend/bugcommand.h b/kbugbuster/backend/bugcommand.h new file mode 100644 index 00000000..96b9c85c --- /dev/null +++ b/kbugbuster/backend/bugcommand.h @@ -0,0 +1,217 @@ +#ifndef BUGCOMMAND_H +#define BUGCOMMAND_H + +#include <qstring.h> +#include <qstringlist.h> + +#include "bug.h" +#include "package.h" + +class KConfig; + +class BugCommand { + public: + enum Mode { Normal, Maintonly, Quiet }; + enum State { None, Queued, Sent }; + + BugCommand( const Bug &bug ) : m_bug( bug ) {} + BugCommand( const Bug &bug, const Package &pkg ) : m_bug( bug ), m_package( pkg ) {} + virtual ~BugCommand() {} + + virtual QString controlString() const { return QString::null; } + + virtual QString mailAddress() const { return QString::null; } + virtual QString mailText() const { return QString::null; } + + Bug bug() const { return m_bug; } + Package package() const { return m_package; } + + virtual QString name(); + virtual QString details(); + + virtual QString type() const { return QString::null; } + + virtual void save( KConfig * ) = 0; + static BugCommand *load( KConfig *, const QString &type ); + + protected: + Bug m_bug; + Package m_package; +}; + +class BugCommandClose : public BugCommand { + public: + BugCommandClose( const Bug &bug, const QString &message, const Package &pkg ) : + BugCommand( bug, pkg ), m_message( message ) {} + + QString controlString() const; + QString mailAddress() const; + QString mailText() const; + + QString name(); + QString details() const; + + QString type() const { return QString::fromLatin1("Close"); } + + void save( KConfig * ); + + private: + QString m_message; +}; + +class BugCommandCloseSilently : public BugCommand { + public: + BugCommandCloseSilently( const Bug &bug, const Package &pkg ) : + BugCommand( bug, pkg ) {} + + QString controlString() const; + + QString name(); + + QString type() const { return QString::fromLatin1("CloseSilently"); } + + void save( KConfig * ); +}; + +class BugCommandReopen : public BugCommand { + public: + BugCommandReopen( const Bug &bug, const Package &pkg ) : + BugCommand( bug, pkg ) {} + + QString controlString() const; + + QString name(); + + QString type() const { return QString::fromLatin1("Reopen"); } + + void save( KConfig * ); +}; + +class BugCommandRetitle : public BugCommand { + public: + BugCommandRetitle( const Bug &bug, const QString &title, const Package &pkg ) : + BugCommand( bug, pkg ), m_title( title ) {} + + QString controlString() const; + + QString name(); + QString details() const; + + QString type() const { return QString::fromLatin1("Retitle"); } + + void save( KConfig * ); + + private: + QString m_title; +}; + +class BugCommandMerge : public BugCommand { + public: + BugCommandMerge( const QStringList &bugNumbers, const Package &pkg ) : + BugCommand( Bug(), pkg ), m_bugNumbers( bugNumbers ) {} + + QString controlString() const; + + QString name(); + QString details() const; + + QString type() const { return QString::fromLatin1("Merge"); } + + void save( KConfig * ); + + private: + QStringList m_bugNumbers; +}; + +class BugCommandUnmerge : public BugCommand { + public: + BugCommandUnmerge( const Bug &bug, const Package &pkg ) : + BugCommand( bug, pkg ) {} + + QString name(); + + QString type() const { return QString::fromLatin1("Unmerge"); } + + void save( KConfig * ); + + QString controlString() const; +}; + +class BugCommandReply : public BugCommand { + public: + BugCommandReply( const Bug &bug, const QString &message, const int &recipient) : + BugCommand( bug ), m_message( message ), m_recipient( recipient ) {} + + QString mailAddress() const; + QString mailText() const; + + QString name(); + QString details() const; + + QString type() const { return QString::fromLatin1("Reply"); } + + void save( KConfig * ); + + private: + QString m_message; + int m_recipient; +}; + +class BugCommandReplyPrivate : public BugCommand { + public: + BugCommandReplyPrivate( const Bug &bug, const QString &address, + const QString &message ) : + BugCommand( bug ), m_address( address ), m_message( message ) {} + + QString mailAddress() const; + QString mailText() const; + + QString name(); + QString details() const; + + QString type() const { return QString::fromLatin1("ReplyPrivate"); } + + void save( KConfig * ); + + private: + QString m_address; + QString m_message; +}; + +class BugCommandSeverity : public BugCommand { + public: + BugCommandSeverity( const Bug &bug, const QString &severity, const Package &pkg ) : + BugCommand( bug, pkg ), m_severity( severity ) {} + + QString name(); + QString details() const; + + QString type() const { return QString::fromLatin1("Severity"); } + + QString controlString() const; + + void save( KConfig * ); + + private: + QString m_severity; +}; + +class BugCommandReassign : public BugCommand { + public: + BugCommandReassign( const Bug &bug, const QString &package, const Package &pkg ) : + BugCommand( bug, pkg ), m_package( package ) {} + + QString name(); + QString details() const; + + QString type() const { return QString::fromLatin1("Reassign"); } + + QString controlString() const; + + void save( KConfig * ); + + private: + QString m_package; +}; + +#endif |