summaryrefslogtreecommitdiffstats
path: root/kbugbuster/backend/bug.cpp
blob: ec249ef7fcdb9c42bf46f4c8032fd729d4e8774e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240

#include "bug.h"

#include "bugimpl.h"

#include <assert.h>
#include <kdebug.h>

Bug::Bug()
: m_impl( NULL )
{
}

Bug::Bug( BugImpl *impl )
: m_impl( impl )
{
}

Bug::Bug( const Bug &other )
{
    (*this) = other;
}

Bug Bug::fromNumber( const TQString &bugNumber )
{
    return new BugImpl( TQString(), Person(), bugNumber, 0xFFFFFFFF, Normal, Person(),
                        Unconfirmed, Bug::BugMergeList() );
}

Bug &Bug::operator=( const Bug &rhs )
{
    m_impl = rhs.m_impl;
    return *this;
}

Bug::~Bug()
{
}

TQString Bug::severityLabel( Bug::Severity s )
{
    switch ( s )
    {
        case Critical: return i18n("Critical");
        case Grave: return i18n("Grave");
        case Major: return i18n("Major");
        case Crash: return i18n("Crash");
        case Normal: return i18n("Normal");
        case Minor: return i18n("Minor");
        case Wishlist: return i18n("Wishlist");
        default:
        case SeverityUndefined: return i18n("Undefined");
    }
}

TQString Bug::severityToString( Bug::Severity s )
{
  switch ( s ) {
    case Critical: return TQString::fromLatin1( "critical" );
    case Grave: return TQString::fromLatin1( "grave" );
    case Major: return TQString::fromLatin1( "major" );
    case Crash: return TQString::fromLatin1( "crash" );
    case Normal: return TQString::fromLatin1( "normal" );
    case Minor: return TQString::fromLatin1( "minor" );
    case Wishlist: return TQString::fromLatin1( "wishlist" );
    default:
      kdWarning() << "Bug::severityToString invalid severity " << s << endl;
      return TQString::fromLatin1( "<invalid>" );
   }
}

Bug::Severity Bug::stringToSeverity( const TQString &s, bool *ok )
{
   if ( ok )
      *ok = true;

   if ( s == "critical" ) return Critical;
   else if ( s == "grave" ) return Grave;
   else if ( s == "major" ) return Major;
   else if ( s == "crash" || s == "drkonqi" ) return Crash;
   else if ( s == "normal" ) return Normal;
   else if ( s == "minor" ) return Minor;
   else if ( s == "wishlist" ) return Wishlist;

   kdWarning() << "Bug::stringToSeverity: invalid severity: " << s << endl;
   if ( ok )
       *ok = false;
   return SeverityUndefined;
}

TQValueList<Bug::Severity> Bug::severities()
{
    TQValueList<Severity> s;
    s << Critical << Grave << Major << Crash << Normal << Minor << Wishlist;
    return s;
}

TQString Bug::statusLabel( Bug::Status s )
{
    switch ( s )
    {
        case Unconfirmed: return i18n("Unconfirmed");
        case New: return i18n("New");
        case Assigned: return i18n("Assigned");
        case Reopened: return i18n("Reopened");
        case Closed: return i18n("Closed");
        default:
        case StatusUndefined: return i18n("Undefined");
    }
}

TQString Bug::statusToString( Bug::Status s )
{
  switch ( s ) {
    case Unconfirmed: return TQString::fromLatin1( "unconfirmed" );
    case New: return TQString::fromLatin1( "new" );
    case Assigned: return TQString::fromLatin1( "assigned" );
    case Reopened: return TQString::fromLatin1( "reopened" );
    case Closed: return TQString::fromLatin1( "closed" );
    default:
      kdWarning() << "Bug::statusToString invalid status " << s << endl;
      return TQString::fromLatin1( "<invalid>" );
   }
}

Bug::Status Bug::stringToStatus( const TQString &s, bool *ok )
{
   if ( ok )
      *ok = true;

   if ( s == "unconfirmed" ) return Unconfirmed;
   else if ( s == "new" ) return New;
   else if ( s == "assigned" ) return Assigned;
   else if ( s == "reopened" ) return Reopened;
   else if ( s == "closed" ) return Closed;

   kdWarning() << "Bug::stringToStatus: invalid status: " << s << endl;
   if ( ok )
       *ok = false;
   return StatusUndefined;
}

TQString Bug::title() const
{
    if ( !m_impl )
        return TQString();

    return m_impl->title;
}

void Bug::setTitle( TQString title)
{
    if ( m_impl )
        m_impl->title = title;
}

uint Bug::age() const
{
    if ( !m_impl )
        return 0;

    return m_impl->age;
}

void Bug::setAge( uint age )
{
    if ( m_impl )
        m_impl->age = age;
}

struct Person Bug::submitter() const
{
    if ( !m_impl )
        return Person( TQString(), TQString() );

    return m_impl->submitter;
}

TQString Bug::number() const
{
    if ( !m_impl )
        return TQString();

    return m_impl->number;
}

Bug::Severity Bug::severity() const
{
    if ( !m_impl )
        return Normal;

    return m_impl->severity;
}

void Bug::setSeverity( Bug::Severity severity )
{
    if ( m_impl )
        m_impl->severity = severity;
}

Bug::BugMergeList Bug::mergedWith() const
{
    if ( !m_impl )
        return Bug::BugMergeList();

    return m_impl->mergedWith;
}


Bug::Status Bug::status() const
{
    if ( !m_impl )
        return StatusUndefined;

    return m_impl->status;
}

TQString Bug::severityAsString() const
{
    return severityToString( severity() );
}

Person Bug::developerTODO() const
{
  return (m_impl == NULL) ? Person( TQString(), TQString() ) :
                            m_impl->developerTODO;
}

bool Bug::operator==( const Bug &rhs )
{
    return m_impl == rhs.m_impl;
}

bool Bug::operator<( const Bug &rhs ) const
{
    return m_impl < rhs.m_impl;
}

/* vim: set ts=4 sw=4 et softtabstop=4: */