~ubuntu-branches/ubuntu/feisty/psi/feisty

« back to all changes in this revision

Viewing changes to iris/xmpp-im/types.cpp

  • Committer: Bazaar Package Importer
  • Author(s): Stephan Hermann
  • Date: 2005-09-14 16:33:49 UTC
  • mfrom: (2.1.1 sarge)
  • Revision ID: james.westby@ubuntu.com-20050914163349-3zacov4afysz5cw5
Tags: 0.9.3-2ubuntu1
* Sync with debian
* Applied patch to psi.desktop to start psi without gpg-agent use (known
  issue)
* Updated README.Debian

Show diffs side-by-side

added added

removed removed

Lines of Context:
187
187
        // extensions
188
188
        QDateTime timeStamp;
189
189
        UrlList urlList;
 
190
        QValueList<MsgEvent> eventList;
 
191
        QString eventId;
190
192
        QString xencrypted, invite;
191
193
 
192
194
        bool spooled, wasEncrypted;
389
391
        d->urlList = list;
390
392
}
391
393
 
 
394
QString Message::eventId() const
 
395
{
 
396
        return d->eventId;
 
397
}
 
398
 
 
399
void Message::setEventId(const QString& id)
 
400
{
 
401
        d->eventId = id;
 
402
}
 
403
 
 
404
bool Message::containsEvents() const
 
405
{
 
406
        return !d->eventList.isEmpty();
 
407
}
 
408
 
 
409
bool Message::containsEvent(MsgEvent e) const
 
410
{
 
411
        return d->eventList.contains(e);
 
412
}
 
413
 
 
414
void Message::addEvent(MsgEvent e)
 
415
{
 
416
        if (!d->eventList.contains(e)) {
 
417
                if (e == CancelEvent || containsEvent(CancelEvent)) 
 
418
                        d->eventList.clear(); // Reset list
 
419
                d->eventList += e;
 
420
        }
 
421
}
 
422
 
392
423
QString Message::xencrypted() const
393
424
{
394
425
        return d->xencrypted;
478
509
                s.appendChild(x);
479
510
        }
480
511
 
 
512
        // events
 
513
        if (!d->eventList.isEmpty()) {
 
514
                QDomElement x = s.createElement("jabber:x:event", "x");
 
515
 
 
516
                if (d->body.isEmpty()) {
 
517
                        if (d->eventId.isEmpty())
 
518
                                x.appendChild(s.createElement("jabber:x:event","id"));
 
519
                        else
 
520
                                x.appendChild(s.createTextElement("jabber:x:event","id",d->eventId));
 
521
                }
 
522
 
 
523
                for(QValueList<MsgEvent>::ConstIterator ev = d->eventList.begin(); ev != d->eventList.end(); ++ev) {
 
524
                        switch (*ev) {
 
525
                                case OfflineEvent:
 
526
                                        x.appendChild(s.createElement("jabber:x:event", "offline"));
 
527
                                        break;
 
528
                                case DeliveredEvent:
 
529
                                        x.appendChild(s.createElement("jabber:x:event", "delivered"));
 
530
                                        break;
 
531
                                case DisplayedEvent:
 
532
                                        x.appendChild(s.createElement("jabber:x:event", "displayed"));
 
533
                                        break;
 
534
                                case ComposingEvent: 
 
535
                                        x.appendChild(s.createElement("jabber:x:event", "composing"));
 
536
                                        break;
 
537
                                case CancelEvent:
 
538
                                        // Add nothing
 
539
                                        break;
 
540
                        }
 
541
                }
 
542
                s.appendChild(x);
 
543
        } 
 
544
 
481
545
        // xencrypted
482
546
        if(!d->xencrypted.isEmpty())
483
547
                s.appendChild(s.createTextElement("jabber:x:encrypted", "x", d->xencrypted));
558
622
                u.setDesc(t.elementsByTagName("desc").item(0).toElement().text());
559
623
                d->urlList += u;
560
624
        }
 
625
        
 
626
    // events
 
627
        d->eventList.clear();
 
628
        nl = root.elementsByTagNameNS("jabber:x:event", "x");
 
629
        if (nl.count()) {
 
630
                nl = nl.item(0).childNodes();
 
631
                for(n = 0; n < nl.count(); ++n) {
 
632
                        QString evtag = nl.item(n).toElement().tagName();
 
633
                        if (evtag == "id") {
 
634
                                d->eventId =  nl.item(n).toElement().text();
 
635
                        }
 
636
                        else if (evtag == "displayed")
 
637
                                d->eventList += DisplayedEvent;
 
638
                        else if (evtag == "composing")
 
639
                                d->eventList += ComposingEvent;
 
640
                        else if (evtag == "delivered")
 
641
                                d->eventList += DeliveredEvent;
 
642
                }
 
643
                if (d->eventList.isEmpty())
 
644
                        d->eventList += CancelEvent;
 
645
        }
561
646
 
562
647
        // xencrypted
563
648
        t = root.elementsByTagNameNS("jabber:x:encrypted", "x").item(0).toElement();