85 mIsInView = event.mIsInView; |
86 mIsInView = event.mIsInView; |
86 mEventState = event.mEventState; |
87 mEventState = event.mEventState; |
87 mIsLocallySeen = event.mIsLocallySeen; |
88 mIsLocallySeen = event.mIsLocallySeen; |
88 mIsPrivate = event.mIsPrivate; |
89 mIsPrivate = event.mIsPrivate; |
89 mIsUnknown = event.mIsUnknown; |
90 mIsUnknown = event.mIsUnknown; |
|
91 mContactMatched = event.mContactMatched; |
|
92 mMergedDuplicates = event.mMergedDuplicates; |
90 } |
93 } |
91 |
94 |
92 // ---------------------------------------------------------------------------- |
95 // ---------------------------------------------------------------------------- |
93 // LogsEvent::~LogsEvent |
96 // LogsEvent::~LogsEvent |
94 // ---------------------------------------------------------------------------- |
97 // ---------------------------------------------------------------------------- |
169 if ( mEventState == EventNotUpdated && mRemoteParty != remoteParty ){ |
172 if ( mEventState == EventNotUpdated && mRemoteParty != remoteParty ){ |
170 LOGS_QDEBUG( "logs [ENG] <-> LogsEvent::setRemoteParty, event updated") |
173 LOGS_QDEBUG( "logs [ENG] <-> LogsEvent::setRemoteParty, event updated") |
171 mEventState = LogsEvent::EventUpdated; |
174 mEventState = LogsEvent::EventUpdated; |
172 } |
175 } |
173 mRemoteParty = remoteParty; |
176 mRemoteParty = remoteParty; |
|
177 } |
|
178 |
|
179 // ---------------------------------------------------------------------------- |
|
180 // LogsEvent::setContactMatched |
|
181 // ---------------------------------------------------------------------------- |
|
182 // |
|
183 void LogsEvent::setContactMatched( bool value ) |
|
184 { |
|
185 mContactMatched = value; |
|
186 } |
|
187 |
|
188 // ---------------------------------------------------------------------------- |
|
189 // LogsEvent::contactMatched |
|
190 // ---------------------------------------------------------------------------- |
|
191 // |
|
192 bool LogsEvent::contactMatched() |
|
193 { |
|
194 return mContactMatched; |
174 } |
195 } |
175 |
196 |
176 // ---------------------------------------------------------------------------- |
197 // ---------------------------------------------------------------------------- |
177 // LogsEvent::validate |
198 // LogsEvent::validate |
178 // ---------------------------------------------------------------------------- |
199 // ---------------------------------------------------------------------------- |
377 mEventState = static_cast<LogsEvent::LogsEventState>( tempEnum ); |
398 mEventState = static_cast<LogsEvent::LogsEventState>( tempEnum ); |
378 serializedEvent >> mIsLocallySeen; |
399 serializedEvent >> mIsLocallySeen; |
379 serializedEvent >> mIsPrivate; |
400 serializedEvent >> mIsPrivate; |
380 serializedEvent >> mIsUnknown; |
401 serializedEvent >> mIsUnknown; |
381 |
402 |
382 LogsEventData* logsEventData = new LogsEventData(serializedEvent); |
403 bool hasEventData = false; |
383 if ( serializedEvent.status() == QDataStream::ReadPastEnd ){ |
404 serializedEvent >> hasEventData; |
|
405 if ( hasEventData ){ |
|
406 LogsEventData* logsEventData = new LogsEventData(serializedEvent); |
|
407 mLogsEventData = logsEventData; |
|
408 } else { |
384 mLogsEventData = 0; |
409 mLogsEventData = 0; |
385 delete logsEventData; |
410 } |
386 } else { |
411 |
387 mLogsEventData = logsEventData; |
412 int mergedDuplCount = 0; |
388 } |
413 serializedEvent >> mergedDuplCount; |
|
414 for ( int i = 0; i < mergedDuplCount; i++ ){ |
|
415 LOGS_QDEBUG( "logs [ENG] deserializing merged duplicates") |
|
416 LogsEvent duplEvent( serializedEvent ); |
|
417 mMergedDuplicates.append( duplEvent ); |
|
418 } |
|
419 |
389 LOGS_QDEBUG( "logs [ENG] <- LogsEvent::LogsEvent deserialize") |
420 LOGS_QDEBUG( "logs [ENG] <- LogsEvent::LogsEvent deserialize") |
390 |
421 |
391 } |
422 } |
392 |
423 |
393 // ---------------------------------------------------------------------------- |
424 // ---------------------------------------------------------------------------- |
416 serializeDestination << mEventState; |
447 serializeDestination << mEventState; |
417 serializeDestination << mIsLocallySeen; |
448 serializeDestination << mIsLocallySeen; |
418 serializeDestination << mIsPrivate; |
449 serializeDestination << mIsPrivate; |
419 serializeDestination << mIsUnknown; |
450 serializeDestination << mIsUnknown; |
420 |
451 |
421 if ( mLogsEventData ){ |
452 bool hasEventData = mLogsEventData; |
|
453 serializeDestination << hasEventData; |
|
454 if ( hasEventData ){ |
422 mLogsEventData->serialize(serializeDestination); |
455 mLogsEventData->serialize(serializeDestination); |
|
456 } |
|
457 |
|
458 serializeDestination << mMergedDuplicates.count(); |
|
459 foreach ( LogsEvent duplEvent, mMergedDuplicates ){ |
|
460 duplEvent.serialize( serializeDestination ); |
423 } |
461 } |
424 |
462 |
425 LOGS_QDEBUG( "logs [ENG] <- LogsEvent::serialize") |
463 LOGS_QDEBUG( "logs [ENG] <- LogsEvent::serialize") |
426 return true; |
464 return true; |
427 } |
465 } |
670 // ---------------------------------------------------------------------------- |
708 // ---------------------------------------------------------------------------- |
671 // |
709 // |
672 void LogsEvent::markedAsSeenLocally(bool markedAsSeen) |
710 void LogsEvent::markedAsSeenLocally(bool markedAsSeen) |
673 { |
711 { |
674 mIsLocallySeen = markedAsSeen; |
712 mIsLocallySeen = markedAsSeen; |
|
713 for ( int i = 0; i < mMergedDuplicates.count(); i++ ){ |
|
714 mMergedDuplicates[i].markedAsSeenLocally(markedAsSeen); |
|
715 } |
675 } |
716 } |
676 |
717 |
677 // ---------------------------------------------------------------------------- |
718 // ---------------------------------------------------------------------------- |
678 // |
719 // |
679 // ---------------------------------------------------------------------------- |
720 // ---------------------------------------------------------------------------- |
680 // |
721 // |
681 bool LogsEvent::isSeenLocally() const |
722 bool LogsEvent::isSeenLocally() const |
682 { |
723 { |
683 return ( mIsLocallySeen || mIsRead ); |
724 return ( mIsLocallySeen || mIsRead ); |
684 } |
725 } |
685 |
726 |
|
727 // ---------------------------------------------------------------------------- |
|
728 // |
|
729 // ---------------------------------------------------------------------------- |
|
730 // |
686 bool LogsEvent::isRemotePartyPrivate() const |
731 bool LogsEvent::isRemotePartyPrivate() const |
687 { |
732 { |
688 return mIsPrivate; |
733 return mIsPrivate; |
689 } |
734 } |
690 |
735 |
|
736 // ---------------------------------------------------------------------------- |
|
737 // |
|
738 // ---------------------------------------------------------------------------- |
|
739 // |
691 bool LogsEvent::isRemotePartyUnknown() const |
740 bool LogsEvent::isRemotePartyUnknown() const |
692 { |
741 { |
693 return mIsUnknown; |
742 return mIsUnknown; |
694 } |
743 } |
695 |
744 |
|
745 // ---------------------------------------------------------------------------- |
|
746 // |
|
747 // ---------------------------------------------------------------------------- |
|
748 // |
696 void LogsEvent::setRemotePartyPrivate(bool markedAsPrivate) |
749 void LogsEvent::setRemotePartyPrivate(bool markedAsPrivate) |
697 { |
750 { |
698 mIsPrivate = markedAsPrivate; |
751 mIsPrivate = markedAsPrivate; |
699 } |
752 } |
700 |
753 |
701 |
754 // ---------------------------------------------------------------------------- |
|
755 // |
|
756 // ---------------------------------------------------------------------------- |
|
757 // |
702 void LogsEvent::setRemotePartyUnknown(bool markedAsUnknown) |
758 void LogsEvent::setRemotePartyUnknown(bool markedAsUnknown) |
703 { |
759 { |
704 mIsUnknown = markedAsUnknown; |
760 mIsUnknown = markedAsUnknown; |
705 } |
761 } |
706 |
762 |
|
763 // ---------------------------------------------------------------------------- |
|
764 // |
|
765 // ---------------------------------------------------------------------------- |
|
766 // |
|
767 void LogsEvent::merge(LogsEvent& event) |
|
768 { |
|
769 if ( isUnseenEvent(*this) && isUnseenEvent(event) ){ |
|
770 setDuplicates( duplicates() + event.duplicates() + 1 ); |
|
771 } |
|
772 if ( !mMergedDuplicates.contains(event) ){ |
|
773 mMergedDuplicates.append(event); |
|
774 } |
|
775 } |
|
776 |
|
777 // ---------------------------------------------------------------------------- |
|
778 // |
|
779 // ---------------------------------------------------------------------------- |
|
780 // |
|
781 QList<LogsEvent>& LogsEvent::mergedDuplicates() |
|
782 { |
|
783 return mMergedDuplicates; |
|
784 } |
|
785 |
|
786 // ---------------------------------------------------------------------------- |
|
787 // |
|
788 // ---------------------------------------------------------------------------- |
|
789 // |
|
790 bool LogsEvent::operator==(const LogsEvent& other) |
|
791 { |
|
792 return this->logId() == other.logId(); |
|
793 } |
|
794 |
|
795 // ----------------------------------------------------------------------------- |
|
796 // |
|
797 // ----------------------------------------------------------------------------- |
|
798 // |
|
799 bool LogsEvent::isCommunicationPossible() const |
|
800 { |
|
801 return ( !isRemotePartyPrivate() && !isRemotePartyUnknown() ); |
|
802 } |
|
803 |
|
804 // ---------------------------------------------------------------------------- |
|
805 // |
|
806 // ---------------------------------------------------------------------------- |
|
807 // |
|
808 bool LogsEvent::isUnseenEvent( const LogsEvent& event ) const |
|
809 { |
|
810 return ( event.direction() == LogsEvent::DirMissed && !event.isSeenLocally() ); |
|
811 } |
|
812 |
707 // End of file |
813 // End of file |
708 |
814 |