~ubuntu-branches/ubuntu/karmic/psi/karmic

« back to all changes in this revision

Viewing changes to src/psievent.cpp

  • Committer: Bazaar Package Importer
  • Author(s): Jan Niehusmann
  • Date: 2006-01-20 00:20:36 UTC
  • mfrom: (1.2.2 upstream)
  • Revision ID: james.westby@ubuntu.com-20060120002036-7nw6yo6totip0ee5
Tags: 0.10-2
* Added upstream changelog (Closes: Bug#327748)
* Mention --no-gpg and --no-gpg-agent in manpage (Closes: Bug#204416)

Show diffs side-by-side

added added

removed removed

Lines of Context:
138
138
        v_ts = t;
139
139
}
140
140
 
141
 
QDomElement *PsiEvent::toXml(QDomDocument *doc) const
 
141
QDomElement PsiEvent::toXml(QDomDocument *doc) const
142
142
{
143
143
        QDomElement e = doc->createElement("event");
144
144
        e.setAttribute("type", className());
152
152
        if ( v_account )
153
153
                e.appendChild( textTag(*doc, "account", v_account->name()) );
154
154
 
155
 
        QDomElement *ret = new QDomElement(e);
156
 
        return ret;
 
155
        return e;
157
156
}
158
157
 
159
 
bool PsiEvent::fromXml(PsiCon *psi, const QDomElement *e)
 
158
bool PsiEvent::fromXml(PsiCon *psi, PsiAccount *account, const QDomElement *e)
160
159
{
161
160
        if ( e->tagName() != "event" )
162
161
                return false;
168
167
        v_ts  = QDateTime::fromString(subTagText(*e, "ts"), ISODate);
169
168
        v_jid = Jid( subTagText(*e, "jid") );
170
169
 
171
 
        if ( hasSubTag(*e, "account") ) {
 
170
        if ( account ) {
 
171
                v_account = account;
 
172
        }
 
173
        else if ( hasSubTag(*e, "account") ) {
172
174
                PsiAccountList list = psi->accountList();
173
175
                PsiAccountListIt it(list);
174
176
                QString accName = subTagText(*e, "account");
188
190
        return Options::EventPriorityDontCare;
189
191
}
190
192
 
 
193
PsiEvent *PsiEvent::copy() const
 
194
{
 
195
        return 0;
 
196
}
 
197
 
191
198
//----------------------------------------------------------------------------
192
199
// MessageEvent
193
200
//----------------------------------------------------------------------------
251
258
        setLate ( v_m.spooled() );
252
259
}
253
260
 
254
 
QDomElement *MessageEvent::toXml(QDomDocument *doc) const
 
261
QDomElement MessageEvent::toXml(QDomDocument *doc) const
255
262
{
256
 
        QDomElement *e = PsiEvent::toXml(doc);
257
 
        if ( !e )
258
 
                return 0;
 
263
        QDomElement e = PsiEvent::toXml(doc);
259
264
 
260
265
        DummyStream stream;
261
266
        Stanza s = v_m.toStanza(&stream);
262
 
        e->appendChild( s.element() );
 
267
        e.appendChild( s.element() );
263
268
 
264
269
        return e;
265
270
}
266
271
 
267
 
bool MessageEvent::fromXml(PsiCon *psi, const QDomElement *e)
 
272
bool MessageEvent::fromXml(PsiCon *psi, PsiAccount *account, const QDomElement *e)
268
273
{
269
 
        if ( !PsiEvent::fromXml(psi, e) )
 
274
        if ( !PsiEvent::fromXml(psi, account, e) )
270
275
                return false;
271
276
 
272
277
        bool found = false;
291
296
        return option.eventPriorityMessage;
292
297
}
293
298
 
 
299
PsiEvent *MessageEvent::copy() const
 
300
{
 
301
        return new MessageEvent( *this );
 
302
}
 
303
 
294
304
//----------------------------------------------------------------------------
295
305
// AuthEvent
296
306
//----------------------------------------------------------------------------
331
341
        return v_at;
332
342
}
333
343
 
334
 
QDomElement *AuthEvent::toXml(QDomDocument *doc) const
 
344
QDomElement AuthEvent::toXml(QDomDocument *doc) const
335
345
{
336
 
        QDomElement *e = PsiEvent::toXml(doc);
337
 
        if ( !e )
338
 
                return 0;
339
 
 
340
 
        e->appendChild( textTag(*doc, "from",    v_from.full()) );
341
 
        e->appendChild( textTag(*doc, "authType", v_at) );
342
 
 
343
 
        return 0;
 
346
        QDomElement e = PsiEvent::toXml(doc);
 
347
 
 
348
        e.appendChild( textTag(*doc, "from",     v_from.full()) );
 
349
        e.appendChild( textTag(*doc, "authType", v_at) );
 
350
 
 
351
        return e;
344
352
}
345
353
 
346
 
bool AuthEvent::fromXml(PsiCon *psi, const QDomElement *e)
 
354
bool AuthEvent::fromXml(PsiCon *psi, PsiAccount *account, const QDomElement *e)
347
355
{
348
 
        if ( !PsiEvent::fromXml(psi, e) )
 
356
        if ( !PsiEvent::fromXml(psi, account, e) )
349
357
                return false;
350
358
 
351
359
        v_from = Jid( subTagText(*e, "from") );
359
367
        return option.eventPriorityAuth;
360
368
}
361
369
 
 
370
PsiEvent *AuthEvent::copy() const
 
371
{
 
372
        return new AuthEvent( *this );
 
373
}
 
374
 
362
375
//----------------------------------------------------------------------------
363
376
// FileEvent
364
377
//----------------------------------------------------------------------------
443
456
 
444
457
        QPtrList<EventItem> list;
445
458
        PsiCon *psi;
 
459
        PsiAccount *account;
446
460
};
447
461
 
448
 
EventQueue::EventQueue(PsiCon *psi)
 
462
EventQueue::EventQueue(PsiAccount *account)
449
463
{
450
464
        d = new Private();
451
465
 
452
 
        d->psi = psi;
 
466
        d->account = account;
 
467
        d->psi = account->psi();
453
468
}
454
469
 
455
470
EventQueue::EventQueue(const EventQueue &from)
679
694
        return *this;
680
695
}
681
696
 
682
 
QDomElement *EventQueue::toXml(QDomDocument *doc) const
 
697
QDomElement EventQueue::toXml(QDomDocument *doc) const
683
698
{
684
699
        QDomElement e = doc->createElement("eventQueue");
685
700
        e.setAttribute("version", "1.0");
687
702
 
688
703
        QPtrListIterator<EventItem> it(d->list);
689
704
        for(EventItem *i; (i = it.current()); ++it) {
690
 
                QDomElement *event = (*it)->event()->toXml(doc);
691
 
 
692
 
                if ( event ) {
693
 
                        e.appendChild( *event );
694
 
                        delete event;
695
 
                }
 
705
                QDomElement event = (*it)->event()->toXml(doc);
 
706
                e.appendChild( event );
696
707
        }
697
708
 
698
 
        QDomElement *ret = new QDomElement(e);
699
 
        return ret;
 
709
        return e;
700
710
}
701
711
 
702
712
bool EventQueue::fromXml(const QDomElement *q)
724
734
                QString eventType = e.attribute("type");
725
735
                if ( eventType == "MessageEvent" ) {
726
736
                        event = new MessageEvent(0);
727
 
                        if ( !event->fromXml(d->psi, &e) ) {
 
737
                        if ( !event->fromXml(d->psi, d->account, &e) ) {
728
738
                                delete event;
729
739
                                event = 0;
730
740
                        }
731
741
                }
732
742
                else if ( eventType == "AuthEvent" ) {
733
743
                        event = new AuthEvent("", "", 0);
734
 
                        if ( !event->fromXml(d->psi, &e) ) {
 
744
                        if ( !event->fromXml(d->psi, d->account, &e) ) {
735
745
                                delete event;
736
746
                                event = 0;
737
747
                        }
748
758
{
749
759
        QDomDocument doc;
750
760
 
751
 
        QDomElement *element = toXml(&doc);
752
 
        if ( !element )
753
 
                return FALSE;
754
 
        doc.appendChild(*element);
 
761
        QDomElement element = toXml(&doc);
 
762
        doc.appendChild(element);
755
763
 
756
764
        QFile f( fname );
757
765
        if( !f.open(IO_WriteOnly) )