📄 calllistview.cpp
字号:
#include "../dissipate2/sipclient.h"#include "sessioncontrol.h"#include "calllistview.h"ContactsListViewItem::ContactsListViewItem( bool subscribe, SipCall *c, QListView *parent ) : QListViewItem( parent ), call( c ){ isSubscribe = subscribe; QObject::connect( call, SIGNAL( callStatusUpdated() ), listView(), SLOT( triggerUpdate() ) );}ContactsListViewItem::~ContactsListViewItem( void ){}QString ContactsListViewItem::text( int col ) const{ switch( col ) { case 0: // Status if(isSubscribe) return call->getTrPresenceStatus(); else return "Offline"; break; case 1: // Subject return call->getContactStr(); break; default: break; } return QString::null;}void ContactsListViewItem::paintCell( QPainter *p, const QColorGroup &cg, int column, int width, int alignment ){ QColorGroup _cg( cg ); QColor c = _cg.text(); if( isSubscribe && column == 1 ) { _cg.setColor( QColorGroup::Text, Qt::darkGreen ); } QListViewItem::paintCell( p, _cg, column, width, alignment ); _cg.setColor( QColorGroup::Text, c );}ContactsListView::ContactsListView( SipClient *client, QWidget *parent, const char *name ) : MenuListView( parent, name ){ c = client; addColumn( "Status",150 ); addColumn( "Contact",248 );// setColumnWidth( 1, fontMetrics().maxWidth() * 9 ); setAllColumnsShowFocus( TRUE ); setMultiSelection( FALSE ); auditList();}ContactsListView::~ContactsListView( void ){}void ContactsListView::auditList( void ){ bool isSubscribed = false; clear(); SipCallIterator it( c->getCallList() ); SipCallIterator it2( c->getCallList() ); it.toFirst(); for( it.toFirst(); it.current(); ++it ) { if( it.current()->getCallType() == SipCall::outSubscribeCall ) { isSubscribed = false; it2.toFirst(); for( it2.toFirst(); it2.current(); ++it2 ) { if( it2.current()->getCallType() == SipCall::inSubscribeCall ) { if( it2.current()->getMember( it.current()->getSubject() ) ) { if( it2.current()->getCallStatus() == SipCall::callInProgress ) { isSubscribed = true; } } } } if( it.current()->getCallStatus() != SipCall::callDead ) { insertItem( new ContactsListViewItem( isSubscribed, it.current(), this ) ); //it.current()->getBasePresenceStatus(), it.current(), this ) ); } } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -