📄 abeditor.cpp
字号:
// the extraction if ( isLineEdit ) { if ( !lineEdits.contains( keyIt ) ) { qWarning("AbEditor Possible Bug: %s has no editor", PimContact::trFieldsMap()[keyIt].latin1() ); continue; } QLineEdit *le = lineEdits[ keyIt ]; switch ( keyIt ) { case PimContact::FirstName: le->setText( ent.firstName() ); break; case PimContact::MiddleName: le->setText( ent.middleName() ); break; case PimContact::LastName: le->setText( ent.lastName() ); break; case PimContact::Suffix: le->setText( ent.suffix() ); break; case PimContact::FirstNamePronunciation: le->setText( ent.firstNamePronunciation() ); break; case PimContact::LastNamePronunciation: le->setText( ent.lastNamePronunciation() ); break; // home case PimContact::HomeCity: le->setText( ent.homeCity() ); break; case PimContact::HomeState: le->setText( ent.homeState() ); break; case PimContact::HomeZip: le->setText( ent.homeZip() ); break; case PimContact::HomeCountry: le->setText( ent.homeCountry() ); break; case PimContact::HomePhone: le->setText( ent.homePhone() ); break; case PimContact::HomeFax: le->setText( ent.homeFax() ); break; case PimContact::HomeMobile: le->setText( ent.homeMobile() ); break; case PimContact::HomeWebPage: le->setText( ent.homeWebpage() ); break; // business case PimContact::Company: le->setText( ent.company() ); break; case PimContact::CompanyPronunciation: le->setText( ent.companyPronunciation() ); break; case PimContact::BusinessCity: le->setText( ent.businessCity() ); break; case PimContact::BusinessState: le->setText( ent.businessState() ); break; case PimContact::BusinessZip: le->setText( ent.businessZip() ); break; case PimContact::BusinessCountry: le->setText( ent.businessCountry() ); break; case PimContact::BusinessWebPage: le->setText( ent.businessWebpage() ); break; case PimContact::JobTitle: le->setText( ent.jobTitle() ); break; case PimContact::Department: le->setText( ent.department() ); break; case PimContact::Office: le->setText( ent.office() ); break; case PimContact::BusinessPhone: le->setText( ent.businessPhone() ); break; case PimContact::BusinessFax: le->setText( ent.businessFax() ); break; case PimContact::BusinessMobile: le->setText( ent.businessMobile() ); break; case PimContact::BusinessPager: le->setText( ent.businessPager() ); break; case PimContact::Profession: le->setText( ent.profession() ); break; case PimContact::Assistant: le->setText( ent.assistant() ); break; case PimContact::Manager: le->setText( ent.manager() ); break; // personal case PimContact::Spouse: le->setText( ent.spouse() ); break; case PimContact::Children: le->setText( ent.children() ); break; case PimContact::Nickname: le->setText( ent.nickname() ); break; } } } fileAsCombo->programaticUpdate = FALSE; fileAsCombo->reload();}void AbEditor::closeEvent(QCloseEvent *e){#ifdef QTOPIA_DESKTOP PimContact current; contactFromFields(current); if ( !quitExplicitly && ent.toRichText() != current.toRichText() && QMessageBox::warning(this, tr("Contacts"), tr("Discard changes?"), QMessageBox::Yes, QMessageBox::No) == QMessageBox::No ) e->ignore(); else QDialog::closeEvent(e);#else QDialog::closeEvent(e);#endif quitExplicitly = FALSE;}void AbEditor::accept(){ quitExplicitly = TRUE; if ( isEmpty() ) { reject(); } else { contactFromFields(ent); QDialog::accept(); }}void AbEditor::reject(){ quitExplicitly = TRUE; QDialog::reject();}bool AbEditor::isEmpty(){ // analyze all the fields and make sure there is _something_ there // that warrants saving... QString text; for ( QMap<int, QLineEdit *>::ConstIterator it = lineEdits.begin(); it != lineEdits.end(); ++it ) { text = (*it)->text(); if ( !text.stripWhiteSpace().isEmpty() ) return FALSE; } text = txtNote->text(); if ( !text.stripWhiteSpace().isEmpty() ) return FALSE; return TRUE;}void AbEditor::contactFromFields(PimContact &e){ int gender = genderCombo->currentItem(); switch( gender ) { case 0: e.setGender( PimContact::UnspecifiedGender ); break; case 1: e.setGender( PimContact::Male ); break; case 2: e.setGender( PimContact::Female ); break; } e.setNameTitle( titleCombo->currentText() ); e.setSuffix( suffixCombo->currentText() ); QString tmpFileAs = fileAsCombo->currentText(); if (tmpFileAs.isEmpty()) { tmpFileAs = fileAsCombo->text(0); } e.setFileAs( tmpFileAs ); e.setBirthday( bdayButton->date() ); e.setAnniversary( anniversaryButton->date() ); e.setCategories( cmbCat->currentCategories() ); e.setNotes( txtNote->text() ); e.setHomeStreet (homeStreetEdit->text()); e.setBusinessStreet (businessStreetEdit->text()); QString strDefaultEmail; QStringList emails; parseEmailFrom( emailLE->text(), strDefaultEmail, emails ); e.setDefaultEmail( strDefaultEmail ); e.setEmailList( emails ); QString str; for ( QMap<int, QLineEdit *>::ConstIterator it = lineEdits.begin(); it != lineEdits.end(); ++it ) { str = (*it)->text(); switch ( it.key() ) { case PimContact::FirstName: e.setFirstName( str ); break; case PimContact::MiddleName: e.setMiddleName( str ); break; case PimContact::LastName: e.setLastName( str ); break; case PimContact::FirstNamePronunciation: e.setFirstNamePronunciation( str ); break; case PimContact::LastNamePronunciation: e.setLastNamePronunciation( str ); break; // home case PimContact::HomeCity: e.setHomeCity( str ); break; case PimContact::HomeState: e.setHomeState( str ); break; case PimContact::HomeZip: e.setHomeZip( str ); break; case PimContact::HomeCountry: e.setHomeCountry( str ); break; case PimContact::HomePhone: e.setHomePhone( str ); break; case PimContact::HomeFax: e.setHomeFax( str ); break; case PimContact::HomeMobile: e.setHomeMobile( str ); break; case PimContact::HomeWebPage: e.setHomeWebpage( str ); break; // business case PimContact::Company: e.setCompany( str ); break; case PimContact::CompanyPronunciation: e.setCompanyPronunciation( str ); break; case PimContact::BusinessCity: e.setBusinessCity( str ); break; case PimContact::BusinessState: e.setBusinessState( str ); break; case PimContact::BusinessZip: e.setBusinessZip( str ); break; case PimContact::BusinessCountry: e.setBusinessCountry( str ); break; case PimContact::BusinessWebPage: e.setBusinessWebpage( str ); break; case PimContact::JobTitle: e.setJobTitle( str ); break; case PimContact::Department: e.setDepartment( str ); break; case PimContact::Office: e.setOffice( str ); break; case PimContact::BusinessPhone: e.setBusinessPhone( str ); break; case PimContact::BusinessFax: e.setBusinessFax( str ); break; case PimContact::BusinessMobile: e.setBusinessMobile( str ); break; case PimContact::BusinessPager: e.setBusinessPager( str ); break; case PimContact::Profession: e.setProfession( str ); break; case PimContact::Assistant: e.setAssistant( str ); break; case PimContact::Manager: e.setManager( str ); break; // personal case PimContact::Spouse: e.setSpouse( str ); break; case PimContact::Children: e.setChildren( str ); break; case PimContact::Nickname: e.setNickname( str ); break; default: qWarning("AbEditor Possible Bug: %s is not being saved", PimContact::trFieldsMap()[it.key()].latin1() ); break; } }}void AbEditor::setNameFocus(){ tabs->showPage( personalTab ); QLineEdit *firstEdit = lineEdits[ PimContact::FirstName ]; firstEdit->setFocus();}void parseEmailFrom( const QString &txt, QString &strDefaultEmail, QStringList &all ){ //qDebug( "parseEmailFrom <%s> def <%s>", txt.latin1(), strDefaultEmail.latin1() ); all.clear(); strDefaultEmail = ""; QString emailStr = txt.stripWhiteSpace(); if ( emailStr.contains(',') || emailStr.contains(';') || emailStr.contains(' ') ) { all = QStringList::split( QRegExp( "[,; ]" ), emailStr ); } else all = emailStr; strDefaultEmail = all.first();}void parseEmailTo( const QString &strDefaultEmail, const QStringList &allEmails, QString &strBack ){ //qDebug("parseEmailTo default email = %s all emails = %s",strDefaultEmail.latin1(), allEmails.join(", ").latin1() ); if ( strDefaultEmail.isEmpty() && !allEmails.count() ) { strBack = ""; return; } if ( strDefaultEmail.isEmpty() ) { strBack = allEmails.join(", "); return ; } if ( !strDefaultEmail.isEmpty() && strDefaultEmail == allEmails.join( " " ) ) { //handle imported single addresses with spaces in them: strBack = strDefaultEmail; return; } QStringList emails = allEmails; // make sure the default email is first QStringList::Iterator defaultIt = emails.find( strDefaultEmail ); if ( defaultIt == emails.end() ) { qWarning("AbEditor::parseEmailTo default email is not found in the email list; bug!"); strBack = strDefaultEmail; strBack += emails.join(", "); return; } if ( defaultIt == emails.begin() ) { strBack = emails.join(", "); return; } // reorder the emails to put default first emails.remove( defaultIt ); emails.prepend( strDefaultEmail ); strBack = emails.join(", ");}#ifdef QTOPIA_DESKTOPvoid AbEditor::updateCategories(){ if ( !cmbCat ) return; connect( this, SIGNAL( categoriesChanged() ), cmbCat, SLOT( categoriesChanged() ) ); emit categoriesChanged(); disconnect( this, SIGNAL( categoriesChanged() ), cmbCat, SLOT( categoriesChanged() ) );}#endif#include "abeditor.moc"
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -