⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 calllistview.cpp

📁 KphoneSI (kpsi) is a SIP (Session Initiation Protocol) user agent for Linux, with which you can in
💻 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 + -