📄 kphonebook.cpp
字号:
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 + -