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

📄 kphonebook.cpp

📁 KphoneSI (kpsi) is a SIP (Session Initiation Protocol) user agent for Linux, with which you can in
💻 CPP
📖 第 1 页 / 共 2 页
字号:
		if( rejectedContacts.count() == 0 ) {			parser = new PhoneBookParser( phoneBook, false, false );		} else {			parser = new PhoneBookParser( phoneBook, false, true );		}	} else {		parser = new PhoneBookParser( phoneBook, true, true );	}	reader.setContentHandler( parser );	reader.parse( source );	IncomingCall *c;	QListViewItem *item;	item = parser->getListReceivedCalls();	int count = 1;	QString s;	for ( c = receivedCalls.last(); c != 0; c = receivedCalls.prev() ) {		if( count > 99 ) {			break;		}		s.setNum( count++ );		if( count <= 10 ) {			s = " " + s;		}		new QListViewItem( item, s + ". " + c->getContact(), c->getDateTime().toString() );	}	item = parser->getListMissedCalls();	count = 1;	for ( c = missedCalls.last(); c != 0; c = missedCalls.prev() ) {		if( count > 99 ) {			break;		}		s.setNum( count++ );		if( count <= 10 ) {			s = " " + s;		}		new QListViewItem( item, s + ". " + c->getContact(), c->getDateTime().toString() );	}	item = parser->getListDialledCalls();	count = 1;	for ( c = dialledCalls.last(); c != 0; c = dialledCalls.prev() ) {		if( count > 99 ) {			break;		}		s.setNum( count++ );		if( count <= 10 ) {			s = " " + s;		}		new QListViewItem( item, s + ". " + c->getContact(), c->getDateTime().toString() );	}	item = parser->getRejectedContacts();	for ( QStringList::Iterator it = rejectedContacts.begin(); it != rejectedContacts.end(); ++it ) {		new QListViewItem( item, *it );	}	QHBox *buttonbox = new QHBox( this );	buttonbox->setSpacing( 5 );	vbox->insertWidget( 2, buttonbox );	QHBox *hb1 = new QHBox( this );	hb1->setSpacing( 5 );	vbox->insertWidget( 3, hb1 );	add_button = new QPushButton( "Add", hb1 );	connect( add_button, SIGNAL( clicked() ), this, SLOT( clickAddButton() ) );	edit_button = new QPushButton( "Edit", hb1 );	connect( edit_button, SIGNAL( clicked() ), this, SLOT( clickEditButton() ) );	remove_button = new QPushButton( "Remove", hb1 );	connect( remove_button, SIGNAL( clicked() ), this, SLOT( clickRemoveButton() ) );	remove_button = new QPushButton( "Hide", hb1 );	connect( remove_button, SIGNAL( clicked() ), this, SLOT( clickHideButton() ) );	addIdentity = 0;	editIdentity = 0;	editPerson = 0;}PhoneBook::~PhoneBook( void ){}QStringList PhoneBook::getRejectedContactsList(){	QListViewItem *item;	QStringList sl;	if( parser->getRejectedContacts() ) {		item = parser->getRejectedContacts()->firstChild();		while( item ) {			sl.append( clean( item->text( 0 ) ).latin1() );			item = item->nextSibling();		}	}	return sl;}void PhoneBook::addContact( SipCallMember *member ){	bool personFound = false;	bool identityFound = false;	QString identity;	QListViewItem *personItem;	QListViewItem *identityItem = 0;	if( !addIdentity ) {		addIdentity = new PhoneBookAddIdentity( this, caption );	}	addIdentity->clean();	addIdentity->setPerson( member->getUri().getFullname() );	addIdentity->setIdentity( member->getUri().reqUri() );	addIdentity->setDescription( "" );	addIdentity->setContact( true );	identity = addIdentity->getIdentity();	if( identity.left( 4 ).lower() != "tel:" && identity.left( 4 ).lower() != "sip:" ) {		identity = "sip:" + identity;	}	personItem = parser->getListPhoneBook()->firstChild();	if( personItem ) {		identityItem = personItem->firstChild();		while( personItem ) {			identityItem = personItem->firstChild();			while( identityItem ) {				if( identityItem->text( 0 ) == identity ) {					identityFound = true;					break;				}				identityItem = identityItem->nextSibling();			}			if( identityFound ) {				personFound = true;				addIdentity->setPerson( personItem->text( 0 ) );				addIdentity->setDescription( identityItem->text( 2 ) );				break;			}			personItem = personItem->nextSibling();		}	}	addIdentity->exec();	if( addIdentity->result() ) {		if( !personFound ) {			personItem = parser->getListPhoneBook()->firstChild();			while( personItem ) {				identityItem = personItem->firstChild();				if( personItem->text( 0 ) == addIdentity->getPerson() ) {					personFound = true;					break;				}				personItem = personItem->nextSibling();			}		}		if( !personFound ) {			personItem = new QListViewItem( parser->getListPhoneBook(), addIdentity->getPerson(), "" );		}		personItem->setOpen( TRUE );		if( !identityFound ) {			new QListViewItem( personItem, identity, addIdentity->getContact(), addIdentity->getDescription() );		} else {			if( identityItem ) {				identityItem->setText( 1, addIdentity->getContact() );				identityItem->setText( 2, addIdentity->getDescription() );			}		}	}	save();}void PhoneBook::clickAddButton(){	bool done = false;	QString s;	QListViewItem *item;	item = phoneBook->currentItem();	if( !addIdentity ) {		addIdentity = new PhoneBookAddIdentity( this, caption );	}	addIdentity->clean();	if( item != 0 ) {		if( item->parent() != 0 ) {			if( item->parent()->parent() == 0 ) {				if( item->parent()->text( 0 ) == "Permanently rejected contacts" ) {					return;				}				if( item->parent()->text( 0 ) == "PhoneBook" ) {					addIdentity->setPerson( item->text( 0 ) );				}			} else {				if( item->parent()->parent()->parent() == 0 ) {					if( item->parent()->parent()->text( 0 ) == "PhoneBook" ) {						addIdentity->setPerson( item->parent()->text( 0 ) );					}				}			}		}	}	addIdentity->exec();	if( addIdentity->result() ) {		s = addIdentity->getIdentity();		if( s.left( 4 ).lower() != "sip:" ) {			s = "sip:" + s;		}		item = parser->getListPhoneBook()->firstChild();		while( item ) {			if( item->text( 0 ) == addIdentity->getPerson() ) {				done = true;				break;			}			item = item->nextSibling();		}		if( !done ) {			item = new QListViewItem( parser->getListPhoneBook(), addIdentity->getPerson(), "" );		}		item->setOpen( TRUE );		new QListViewItem( item, s, addIdentity->getContact(), addIdentity->getDescription() );	}	save();}void PhoneBook::clickEditButton(){	QString s;	QListViewItem *item;	item = phoneBook->currentItem();	if( item != 0 ) {		if( item->parent() != 0 ) {			if( item->parent()->parent() == 0 ) {				if( item->parent()->text( 0 ) == "PhoneBook" ) {					if( !editPerson ) {						editPerson = new PhoneBookEditPerson( this, caption );					}					editPerson->setPerson( item->text( 0 ) );					editPerson->exec();					if( editPerson->result() ) {						item->setText( 0, editPerson->getPerson() );					}				}			} else if( item->parent()->parent()->parent() == 0 ) {				if( item->parent()->parent()->text( 0 ) == "PhoneBook" ) {					if( !editIdentity ) {						editIdentity = new PhoneBookEditIdentity( this, caption );					}					editIdentity->setIdentity( item->text( 0 ) );					editIdentity->setContact( item->text( 1 ) );					editIdentity->setDescription( item->text( 2 ) );					editIdentity->exec();					if( editIdentity->result() ) {						s = editIdentity->getIdentity();						if( s.left( 4 ).lower() != "sip:" ) {							item->setText( 0, "sip:" + s );						} else {							item->setText( 0, s );						}						item->setText( 1, editIdentity->getContact() );						item->setText( 2, editIdentity->getDescription() );					}				}			}			save();		}	} else {		QMessageBox::information( this, "KPhone", "Select first item." );	}}void PhoneBook::clickRemoveButton(){	bool OK = false;	QListViewItem *item;	item = phoneBook->currentItem();	if( item != 0 ) {		if( item->parent() != 0 ) {			if( item->parent()->parent() == 0 ) {				if( item->parent()->text( 0 ) == "Permanently rejected contacts" ) {					OK = true;				}				if( item->parent()->text( 0 ) == "PhoneBook" ) {					OK = true;				}			} else if( item->parent()->parent()->parent() == 0 ) {				if( item->parent()->parent()->text( 0 ) == "PhoneBook" ) {					OK = true;				}			} else if( item->parent()->parent()->parent()->parent() == 0 ) {				if( item->parent()->parent()->parent()->text( 0 ) == "PhoneBook" ) {					OK = true;				}			}			if( OK ) {				if( !QMessageBox::warning( this, "KPhone", "Are You Sure ?", "Yes", "No", "", 1) ) {					delete item;					item = 0;					save();				}			}		}	} else {		QMessageBox::information( this, "KPhone", "Select first item." );	}}void PhoneBook::clickHideButton(){	done(1);}void PhoneBook::save(){	QListViewItem *item1;	QListViewItem *item2;	FILE *f = fopen( filePhoneBook, "w" );	item1 = parser->getListPhoneBook()->firstChild();	fprintf( f, "<?xml version=\"1.0\" encoding=\"iso-8859-1\"?>\n" );	fprintf( f, "<phonebook>\n" );	while( item1 ) {		fprintf( f, "    <person Name=\"%s\">\n", clean( item1->text( 0 ) ).latin1() );		item2 = item1->firstChild();		while( item2 ) {			fprintf( f, "        <identity\n" );			fprintf( f, "             uri = \"%s\"\n", clean( item2->text( 0 ) ).latin1() );			fprintf( f, "             contact = \"%s\"\n", clean( item2->text( 1 ) ).latin1() );			fprintf( f, "             description = \"%s\"\n", clean( item2->text( 2 ) ).latin1() );			fprintf( f, "        />\n");			item2 = item2->nextSibling();		}		fprintf( f, "    </person>\n" );		item1 = item1->nextSibling();	}	fprintf( f, "</phonebook>\n" );	fclose( f );}bool PhoneBook::setIdentity( QListViewItem *i ){	if( i != 0 ) {		if( i->text( 0 ).left( 4 ).lower() == "sip:" ) {			remote = i->text( 0 );			return true;		}		if( i->text( 0 ).mid( 4, 4 ).lower() == "sip:" ) {			remote = i->text( 0 );			return true;		}	}	return false;}void PhoneBook::setIdentityAndDone( QListViewItem *i ){	if (setIdentity( i ) ) {		done(0);	}}QString PhoneBook::getUri(){	return remote;}QString PhoneBook::clean( QString s ){	s.replace( QRegExp(">"), "" );	s.replace( QRegExp("<"), "" );	s.replace( QRegExp("\""), "" );	s.replace( QRegExp("&"), "" );	return s;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -