You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tdesdk/kbugbuster/backend/bugcommand.cpp

318 lines
6.8 KiB

#include <kdebug.h>
#include <kconfig.h>
#include <klocale.h>
#include "bugcommand.h"
TQString BugCommand::name()
{
return i18n("Unknown");
}
TQString BugCommand::details()
{
return TQString();
}
BugCommand *BugCommand::load( KConfig *config, const TQString &type )
{
TQString bugNumber = config->group();
// ### this sucks. we better let Bug implement proper persistance,
// because this way of instantiating a bug object doesn't bring back
// properties like title, package, etc. (Simon)
Bug bug = Bug::fromNumber( bugNumber );
Package pkg = Package(); // hack
if ( type == "Close" ) {
return new BugCommandClose( bug, config->readEntry( type ), pkg );
} else if ( type == "Reopen" ) {
return new BugCommandReopen( bug, pkg );
} else if ( type == "Merge" ) {
return new BugCommandMerge( config->readListEntry( type ), pkg );
} else if ( type == "Unmerge" ) {
return new BugCommandUnmerge( bug, pkg );
} else if ( type == "Reassign" ) {
return new BugCommandReassign( bug, config->readEntry( type ), pkg );
} else if ( type == "Retitle" ) {
return new BugCommandRetitle( bug, config->readEntry( type ), pkg );
} else if ( type == "Severity" ) {
return new BugCommandSeverity( bug, config->readEntry( type ), pkg );
} else if ( type == "Reply" ) {
return new BugCommandReply( bug, config->readEntry( type ), config->readNumEntry("Recipient",Normal) );
} else if ( type == "ReplyPrivate" ) {
TQStringList args = config->readListEntry( type );
if ( args.count() != 2 ) return 0;
return new BugCommandReplyPrivate( bug, *(args.at(0)), *(args.at(1)) );
} else {
kdDebug() << "Warning! Unknown bug command '" << type << "'" << endl;
return 0;
}
}
///////////////////// Close /////////////////////
TQString BugCommandClose::controlString() const
{
if (m_message.isEmpty()) {
return "close " + m_bug.number();
} else {
return TQString();
}
}
TQString BugCommandClose::mailAddress() const
{
kdDebug() << "BugCommandClose::mailAddress(): number: " << m_bug.number() << endl;
if (m_message.isEmpty()) {
return TQString();
} else {
return m_bug.number() + "-done@bugs.trinitydesktop.org";
}
}
TQString BugCommandClose::mailText() const
{
if (m_message.isEmpty()) {
return TQString();
} else {
return m_message;
}
}
TQString BugCommandClose::name()
{
return i18n("Close");
}
TQString BugCommandClose::details() const
{
return m_message;
}
void BugCommandClose::save( KConfig *config )
{
config->writeEntry( "Close",m_message );
}
///////////////////// Close Silently /////////////////////
TQString BugCommandCloseSilently::controlString() const
{
return "done " + m_bug.number();
}
TQString BugCommandCloseSilently::name()
{
return i18n("Close Silently");
}
void BugCommandCloseSilently::save( KConfig *config )
{
config->writeEntry( "CloseSilently", true );
}
///////////////////// Reopen /////////////////////
TQString BugCommandReopen::controlString() const
{
return "reopen " + m_bug.number();
}
TQString BugCommandReopen::name()
{
return i18n("Reopen");
}
void BugCommandReopen::save( KConfig *config )
{
config->writeEntry( "Reopen", true );
}
///////////////////// Retitle /////////////////////
TQString BugCommandRetitle::controlString() const
{
return "retitle " + m_bug.number() + " " + m_title;
}
TQString BugCommandRetitle::name()
{
return i18n("Retitle");
}
TQString BugCommandRetitle::details() const
{
return m_title;
}
void BugCommandRetitle::save( KConfig *config )
{
config->writeEntry( "Retitle", m_title );
}
///////////////////// Merge /////////////////////
TQString BugCommandMerge::controlString() const
{
return "merge " + m_bugNumbers.join(" ");
}
TQString BugCommandMerge::name()
{
return i18n("Merge");
}
TQString BugCommandMerge::details() const
{
return m_bugNumbers.join(", ");
}
void BugCommandMerge::save( KConfig *config )
{
config->writeEntry( "Merge", m_bugNumbers );
}
///////////////////// Unmerge /////////////////////
TQString BugCommandUnmerge::controlString() const
{
return "unmerge " + m_bug.number();
}
TQString BugCommandUnmerge::name()
{
return i18n("Unmerge");
}
void BugCommandUnmerge::save( KConfig *config )
{
config->writeEntry( "Unmerge", true );
}
///////////////////// Reply /////////////////////
TQString BugCommandReply::mailAddress() const
{
return m_bug.number() + "@bugs.trinitydesktop.org";
#if 0
switch ( m_recipient ) {
case Normal:
return m_bug.number() + "@bugs.trinitydesktop.org";
case Maintonly:
return m_bug.number() + "-maintonly@bugs.trinitydesktop.org";
case Quiet:
return m_bug.number() + "-quiet@bugs.trinitydesktop.org";
}
return TQString();
#endif
}
TQString BugCommandReply::mailText() const
{
return m_message;
}
TQString BugCommandReply::name()
{
return i18n("Reply");
#if 0
switch ( m_recipient ) {
case Normal:
return i18n("Reply");
case Maintonly:
return i18n("Reply (Maintonly)");
case Quiet:
return i18n("Reply (Quiet)");
}
return TQString();
#endif
}
TQString BugCommandReply::details() const
{
return m_message;
}
void BugCommandReply::save( KConfig *config )
{
config->writeEntry( "Reply", m_message );
#if 0
config->writeEntry( "Recipient", m_recipient );
#endif
}
///////////////////// Reply Private /////////////////////
TQString BugCommandReplyPrivate::mailAddress() const
{
return m_address;
}
TQString BugCommandReplyPrivate::mailText() const
{
return m_message;
}
TQString BugCommandReplyPrivate::name()
{
return i18n("Private Reply");
}
TQString BugCommandReplyPrivate::details() const
{
return m_message;
}
void BugCommandReplyPrivate::save( KConfig *config )
{
TQStringList args;
args << m_address;
args << m_message;
config->writeEntry( "ReplyPrivate", args );
}
///////////////////// Severity /////////////////////
TQString BugCommandSeverity::controlString() const
{
return "severity " + m_bug.number() + " " + m_severity.lower();
}
TQString BugCommandSeverity::name()
{
return i18n("Severity");
}
TQString BugCommandSeverity::details() const
{
return m_severity;
}
void BugCommandSeverity::save( KConfig *config )
{
config->writeEntry( "Severity", m_severity );
}
///////////////////// Reassign /////////////////////
TQString BugCommandReassign::controlString() const
{
return "reassign " + m_bug.number() + " " + m_package;
}
TQString BugCommandReassign::name()
{
return i18n("Reassign");
}
TQString BugCommandReassign::details() const
{
return m_package;
}
void BugCommandReassign::save( KConfig *config )
{
config->writeEntry( "Reassign", m_package );
}