summaryrefslogtreecommitdiff
authoreilers <eilers>2002-10-14 09:26:18 (UTC)
committer eilers <eilers>2002-10-14 09:26:18 (UTC)
commit0bccef01b70fec98e744fab286f5ea443287cdad (patch) (side-by-side diff)
tree3a602e633dcbe81eca22f490402d39467c4eb32a
parent59d6018e53537e15d27cd0174adefba2ec8b8f6e (diff)
downloadopie-0bccef01b70fec98e744fab286f5ea443287cdad.zip
opie-0bccef01b70fec98e744fab286f5ea443287cdad.tar.gz
opie-0bccef01b70fec98e744fab286f5ea443287cdad.tar.bz2
Last patch for language bug. I am not really happy with it, but it should work now.
Please use the current release of libopie with this application. Otherwise the app will fail !
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--core/pim/addressbook/addressbook.cpp3
-rw-r--r--core/pim/addressbook/contacteditor.cpp88
2 files changed, 53 insertions, 38 deletions
diff --git a/core/pim/addressbook/addressbook.cpp b/core/pim/addressbook/addressbook.cpp
index 472b13e..2eb9ddf 100644
--- a/core/pim/addressbook/addressbook.cpp
+++ b/core/pim/addressbook/addressbook.cpp
@@ -1,130 +1,130 @@
/**********************************************************************
** Copyright (C) 2000 Trolltech AS. All rights reserved.
**
** This file is part of Qt Palmtop Environment.
**
** This file may be distributed and/or modified under the terms of the
** GNU General Public License version 2 as published by the Free Software
** Foundation and appearing in the file LICENSE.GPL included in the
** packaging of this file.
**
** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
**
** See http://www.trolltech.com/gpl/ for GPL licensing information.
**
** OContact info@trolltech.com if any conditions of this licensing are
** not clear to you.
**
**********************************************************************/
#define QTOPIA_INTERNAL_FD
#include "contacteditor.h"
#include "ablabel.h"
#include "abtable.h"
#include "addresssettings.h"
#include "addressbook.h"
#include <opie/ofileselector.h>
#include <opie/ofiledialog.h>
#include <qpe/qpeapplication.h>
#include <qpe/config.h>
-#include <qpe/contact.h>
+#include <opie/ocontact.h>
#ifndef MAKE_FOR_SHARP_ROM
#include <qpe/finddialog.h>
#endif
#include <qpe/global.h>
#include <qpe/resource.h>
#include <qpe/ir.h>
#include <qpe/qpemessagebox.h>
#include <qpe/qcopenvelope_qws.h>
#include <qaction.h>
#include <qdialog.h>
#include <qdir.h>
#include <qfile.h>
#include <qimage.h>
#include <qlayout.h>
#include <qpe/qpemenubar.h>
#include <qmessagebox.h>
#include <qpixmap.h>
#include <qpopupmenu.h>
#include <qpe/qpetoolbar.h>
#include <qstringlist.h>
#include <qtoolbutton.h>
#include <qwhatsthis.h>
#include <stdlib.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <fcntl.h>
#include <unistd.h>
#include <qdatetime.h>
#include "picker.h"
static QString addressbookOldXMLFilename()
{
QString filename = QPEApplication::documentDir() + "addressbook.xml";
return filename;
}
static QString addressbookXMLFilename()
{
QString filename = Global::applicationFileName("addressbook",
"addressbook.xml");
return filename;
}
static QString addressbookPersonalVCardName()
{
QString filename = Global::applicationFileName("addressbook",
"businesscard.vcf");
return filename;
}
AddressbookWindow::AddressbookWindow( QWidget *parent, const char *name,
WFlags f )
: QMainWindow( parent, name, f ),
abEditor(0),
bAbEditFirstTime(TRUE),
syncing(FALSE)
{
isLoading = true;
initFields();
setCaption( tr("Contacts") );
setIcon( Resource::loadPixmap( "AddressBook" ) );
setToolBarsMovable( FALSE );
// Create Toolbars
QPEToolBar *bar = new QPEToolBar( this );
bar->setHorizontalStretchable( TRUE );
QPEMenuBar *mbList = new QPEMenuBar( bar );
mbList->setMargin( 0 );
QPopupMenu *edit = new QPopupMenu( this );
mbList->insertItem( tr( "Contact" ), edit );
listTools = new QPEToolBar( this, "list operations" );
QAction *a = new QAction( tr( "New" ), Resource::loadPixmap( "new" ), QString::null,
0, this, 0 );
actionNew = a;
connect( a, SIGNAL( activated() ), this, SLOT( slotListNew() ) );
a->addTo( edit );
a->addTo( listTools );
a = new QAction( tr( "Edit" ), Resource::loadPixmap( "edit" ), QString::null,
0, this, 0 );
actionEdit = a;
@@ -764,192 +764,193 @@ bool AddressbookWindow::save()
"\nQuit anyway?"),
QMessageBox::Yes|QMessageBox::Escape,
QMessageBox::No|QMessageBox::Default )
!= QMessageBox::No )
return TRUE;
else
return FALSE;
} else {
if ( !abList->save( str ) ) {
if ( QMessageBox::critical( 0, tr( "Out of space" ),
tr("Unable to save information.\n"
"Free up some space\n"
"and try again.\n"
"\nQuit anyway?"),
QMessageBox::Yes|QMessageBox::Escape,
QMessageBox::No|QMessageBox::Default )
!= QMessageBox::No )
return TRUE;
else
return FALSE;
}
}
return TRUE;
}
void AddressbookWindow::slotSettings()
{
AddressSettings frmSettings( this );
#if defined(Q_WS_QWS) || defined(_WS_QWS_)
frmSettings.showMaximized();
#endif
if ( frmSettings.exec() ) {
allFields.clear();
orderedFields.clear();
slOrderedFields.clear();
initFields();
if ( abEditor )
abEditor->loadFields();
abList->refresh();
}
}
void AddressbookWindow::initFields()
{
// we really don't need the things from the configuration, anymore
// only thing that is important are the important categories. So,
// Call the contact functions that correspond to these old functions...
QStringList xmlFields = OContact::fields();
QStringList visibleFields = OContact::untrfields();
// QStringList trFields = OContact::trfields();
xmlFields.remove( "Title" );
visibleFields.remove( "Name Title" );
visibleFields.remove( "Notes" );
int i, version;
Config cfg( "AddressBook" );
QString zn;
// ### Write a function to keep this from happening again...
QStringList::ConstIterator it;
for ( i = 0, it = xmlFields.begin(); it != xmlFields.end(); ++it, i++ ) {
allFields.append( i + 3 );
}
cfg.setGroup( "Version" );
version = cfg.readNumEntry( "version" );
i = 0;
startFontSize = 1;
if ( version >= ADDRESSVERSION ) {
cfg.setGroup( "ImportantCategory" );
zn = cfg.readEntry( "Category" + QString::number(i), QString::null );
while ( !zn.isNull() ) {
if ( zn.contains( "Work" ) || zn.contains( "Mb" ) ) {
slOrderedFields.clear();
break;
}
slOrderedFields.append( zn );
zn = cfg.readEntry( "Category" + QString::number(++i), QString::null );
}
cfg.setGroup( "Font" );
startFontSize = cfg.readNumEntry( "fontSize", 1 );
} else {
QString str;
str = getenv("HOME");
str += "/Settings/AddressBook.conf";
QFile::remove( str );
}
+
if ( slOrderedFields.count() > 0 ) {
for( QStringList::ConstIterator it = slOrderedFields.begin();
it != slOrderedFields.end(); ++it ) {
QValueList<int>::ConstIterator itVl;
QStringList::ConstIterator itVis;
itVl = allFields.begin();
for ( itVis = visibleFields.begin();
itVis != visibleFields.end() && itVl != allFields.end();
++itVis, ++itVl ) {
if ( *it == *itVis && itVl != allFields.end() ) {
orderedFields.append( *itVl );
}
}
}
} else {
QValueList<int>::ConstIterator it;
for ( it = allFields.begin(); it != allFields.end(); ++it )
orderedFields.append( *it );
slOrderedFields = visibleFields;
orderedFields.remove( Qtopia::AddressUid );
orderedFields.remove( Qtopia::Title );
orderedFields.remove( Qtopia::Groups );
orderedFields.remove( Qtopia::AddressCategory );
orderedFields.remove( Qtopia::FirstName );
orderedFields.remove( Qtopia::LastName );
orderedFields.remove( Qtopia::DefaultEmail );
orderedFields.remove( Qtopia::FileAs );
orderedFields.remove( Qtopia::Notes );
orderedFields.remove( Qtopia::Gender );
slOrderedFields.remove( "Name Title" );
slOrderedFields.remove( "First Name" );
slOrderedFields.remove( "Last Name" );
slOrderedFields.remove( "File As" );
slOrderedFields.remove( "Default Email" );
slOrderedFields.remove( "Notes" );
slOrderedFields.remove( "Gender" );
}
}
AbLabel *AddressbookWindow::abView()
{
if ( !mView ) {
mView = new AbLabel( this, "viewer" );
mView->init( OContact() );
connect( mView, SIGNAL( okPressed() ), this, SLOT( slotListView() ) );
}
return mView;
}
void AddressbookWindow::slotFind()
{
#ifndef MAKE_FOR_SHARP_ROM
if ( centralWidget() == abView() )
showList();
FindDialog frmFind( "Contacts", this );
QObject::connect( &frmFind, SIGNAL(signalFindClicked(const QString &, bool, bool, int)), abList, SLOT(slotDoFind( const QString&,bool,bool,int)));
QObject::connect( abList, SIGNAL(signalNotFound()), &frmFind, SLOT(slotNotFound()) );
QObject::connect( abList, SIGNAL(signalWrapAround()), &frmFind, SLOT(slotWrapAround()) );
frmFind.exec();
if ( abList->numSelections() )
abList->clearSelection();
abList->clearFindRow();
#endif
}
void AddressbookWindow::slotSetCategory( int c )
{
QString cat, book;
if ( c <= 0 )
return;
// Checkmark Book Menu Item Selected
if ( c < 6 )
for ( unsigned int i = 1; i < 6; i++ )
catMenu->setItemChecked( i, c == (int)i );
// Checkmark Category Menu Item Selected
else
for ( unsigned int i = 6; i < catMenu->count(); i++ )
catMenu->setItemChecked( i, c == (int)i );
for ( unsigned int i = 1; i < catMenu->count(); i++ ) {
if (catMenu->isItemChecked( i )) {
if ( i == 1 ) // default List view
book = QString::null;
else if ( i == 2 )
book = "Phone";
diff --git a/core/pim/addressbook/contacteditor.cpp b/core/pim/addressbook/contacteditor.cpp
index b01583f..bae3a2b 100644
--- a/core/pim/addressbook/contacteditor.cpp
+++ b/core/pim/addressbook/contacteditor.cpp
@@ -1,285 +1,299 @@
/*
* Copyright (c) 2002 Michael R. Crawford <mike@tuxnami.org>
*
* This file is an add-on for the OPIE Palmtop Environment
*
* This file may be distributed and/or modified under the terms of the
* GNU General Public License version 2 as published by the Free Software
* Foundation and appearing in the file LICENSE.GPL included in the pacakaging
* of this file.
*
* This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
* WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
*
*
* This is a rewrite of the abeditor.h file, modified to provide a more
* intuitive interface to TrollTech's original Address Book editor. This
* is made to operate exactly in interface with the exception of name.
*
*/
#include "contacteditor.h"
#include "addresspicker.h"
#include <qpe/categoryselect.h>
#include <qpe/qpeapplication.h>
#include <qpe/qpedialog.h>
#include <qcombobox.h>
#include <qlabel.h>
#include <qtabwidget.h>
#include <qlayout.h>
#include <qlineedit.h>
#include <qmultilineedit.h>
#include <qscrollview.h>
#include <qtoolbutton.h>
#include <qpushbutton.h>
#include <qmainwindow.h>
#include <qvaluelist.h>
static inline bool containsAlphaNum( const QString &str );
static inline bool constainsWhiteSpace( const QString &str );
// helper functions, convert our comma delimited list to proper
// file format...
void parseEmailFrom( const QString &txt, QString &strDefaultEmail,
QString &strAll );
// helper convert from file format to comma delimited...
void parseEmailTo( const QString &strDefaultEmail,
const QString &strOtherEmail, QString &strBack );
ContactEditor::ContactEditor( const OContact &entry,
const QValueList<int> *newOrderedValues,
QStringList *slNewOrdered,
QWidget *parent,
const char *name,
WFlags fl )
: QDialog( parent, name, TRUE, fl ),
orderedValues( newOrderedValues ),
slOrdered( *slNewOrdered )
{
init();
initMap();
setEntry( entry );
qDebug("finish");
}
ContactEditor::~ContactEditor() {
}
void ContactEditor::init() {
useFullName = TRUE;
int i = 0;
/** SHut up and stop leaking
slHomeAddress = new QStringList;
slBusinessAddress = new QStringList;
slChooserNames = new QStringList;
slChooserValues = new QStringList;
slDynamicEntries = new QStringList;
*/
//*slDynamicEntries = *slOrdered;
+ QStringList trlChooserNames;
+
for (i = 0; i <= 6; i++) {
slHomeAddress.append( "" );
slBusinessAddress.append( "" );
}
{
hasGender = FALSE;
hasTitle = FALSE;
hasCompany = FALSE;
hasNotes = FALSE;
hasStreet = FALSE;
hasStreet2 = FALSE;
hasPOBox = FALSE;
hasCity = FALSE;
hasState = FALSE;
hasZip = FALSE;
hasCountry = FALSE;
QStringList::ConstIterator it = slOrdered.begin();
+
for ( i = 0; it != slOrdered.end(); i++, ++it ) {
if ( (*it) == "Business Fax" ) {
- slChooserNames.append( tr( "Business Fax" ) );
+ trlChooserNames.append( tr( "Business Fax" ) );
+ slChooserNames.append( *it );
slChooserValues.append("" );
//slDynamicEntries->remove( it );
continue;
}
if ( (*it) == "Home Fax" ) {
- slChooserNames.append( tr( "Home Fax" ) );
+ trlChooserNames.append( tr( "Home Fax" ) );
+ slChooserNames.append( *it );
slChooserValues.append("" );
//slDynamicEntries->remove( it );
continue;
}
if ( (*it) == "Business Phone" ) {
- slChooserNames.append( tr( "Business Phone" ) );
+ trlChooserNames.append( tr( "Business Phone" ) );
+ slChooserNames.append( *it );
slChooserValues.append( "" );
//slDynamicEntries->remove( it );
continue;
}
if ( (*it) == "Home Phone" ) {
- slChooserNames.append( tr( "Home Phone" ) );
+ trlChooserNames.append( tr( "Home Phone" ) );
+ slChooserNames.append( *it );
slChooserValues.append( "" );
//slDynamicEntries->remove( it );
continue;
}
/*
if ( (*it).right( 2 ) == tr( "IM" ) ) {
slChooserNames.append( *it );
slChooserValues.append( "" );
//slDynamicEntries->remove( it );
continue;
} */
if ( (*it) == "Business Mobile" ) {
- slChooserNames.append( tr( "Business Mobile" ) );
+ trlChooserNames.append( tr( "Business Mobile" ) );
+ slChooserNames.append( *it );
slChooserValues.append( "" );
//slDynamicEntries->remove( it );
continue;
}
if ( (*it) == "Home Mobile" ) {
- slChooserNames.append( tr( "Home Mobile" ) );
+ trlChooserNames.append( tr( "Home Mobile" ) );
+ slChooserNames.append( *it );
slChooserValues.append( "" );
//slDynamicEntries->remove( it );
continue;
}
if ( (*it) == "Business WebPage" ) {
- slChooserNames.append( tr( "Business WebPage" ) );
+ trlChooserNames.append( tr( "Business WebPage" ) );
+ slChooserNames.append( *it );
slChooserValues.append( "" );
//slDynamicEntries->remove( it );
continue;
}
if ( (*it) == "Home Web Page" ) {
- slChooserNames.append( tr( "Home Web Page" ) );
+ trlChooserNames.append( tr( "Home Web Page" ) );
+ slChooserNames.append( *it );
slChooserValues.append( "" );
//slDynamicEntries->remove( it );
continue;
}
if ( (*it) == "Business Pager" ) {
- slChooserNames.append( tr( "Business Pager" ) );
+ trlChooserNames.append( tr( "Business Pager" ) );
+ slChooserNames.append( *it );
slChooserValues.append( "" );
//slDynamicEntries->remove( it );
continue;
}
if ( *it == "Default Email" ) {
- slChooserNames.append( tr( "Default Email" ) );
+ trlChooserNames.append( tr( "Default Email" ) );
+ slChooserNames.append( *it );
slChooserValues.append( "" );
//slDynamicEntries->remove( it );
continue;
}
if ( *it == "Emails" ) {
- slChooserNames.append( tr( "Emails" ) );
+ trlChooserNames.append( tr( "Emails" ) );
+ slChooserNames.append( *it );
slChooserValues.append( "" );
//slDynamicEntries->remove( it );
continue;
}
if ( *it == "Name Title" || *it == "First Name" || *it == "Middle Name" || *it == "Last Name" || *it == "File As" || *it == "Default Email" || *it == "Emails" || *it == "Groups" )
continue;
if ( *it == "Name Title" ) {
//slDynamicEntries->remove( it );
continue;
}
if ( *it == "First Name" ) {
// slDynamicEntries->remove( it );
continue;
}
if ( *it == "Middle Name" ) {
// slDynamicEntries->remove( it );
continue;
}
if ( *it == "Last Name" ) {
// slDynamicEntries->remove( it );
continue;
}
if ( *it == "Suffix" ) {
// slDynamicEntries->remove( it );
continue;
}
if ( *it == "File As" ) {
// slDynamicEntries->remove( it );
continue;
}
if ( *it == "Gender" ) {
hasGender = TRUE;
// slDynamicEntries->remove( it );
continue;
}
if ( *it == "Job Title" ) {
hasTitle = TRUE;
// slDynamicEntries->remove( it );
continue;
}
if ( ( *it == "Company") || (*it == "Organization" ) ) {
hasCompany = TRUE;
// slDynamicEntries->remove( it );
continue;
}
if ( *it == "Notes" ) {
hasNotes = TRUE;
// slDynamicEntries->remove( it );
continue;
}
if ( *it == "Groups" ) {
// slDynamicEntries->remove( it );
continue;
}
if ( (*it) == "Business Street" ) {
hasStreet = TRUE;
// slDynamicEntries->remove( it );
continue;
}
if ( (*it) == "Home Street" ) {
hasStreet = TRUE;
// slDynamicEntries->remove( it );
continue;
}
/*
if ( (*it).right( 8 ) == tr( "Street 2" ) ) {
hasStreet2 = TRUE;
// slDynamicEntries->remove( it );
continue;
}
if ( (*it).right( 8 ) == tr( "P.O. Box" ) ) {
hasPOBox = TRUE;
// slDynamicEntries->remove( it );
continue;
} */
if ( (*it) == "Business City" ) {
hasCity = TRUE;
// slDynamicEntries->remove( it );
continue;
}
@@ -656,196 +670,196 @@ void ContactEditor::init() {
cmbCountry->insertItem( tr ( "Vanuatu" ) );
cmbCountry->insertItem( tr ( "Venezuela" ) );
cmbCountry->insertItem( tr ( "Viet Nam" ) );
cmbCountry->insertItem( tr ( "Virgin Islands" ) );
cmbCountry->insertItem( tr ( "Western Sahara" ) );
cmbCountry->insertItem( tr ( "Yemen" ) );
cmbCountry->insertItem( tr ( "Yugoslavia" ) );
cmbCountry->insertItem( tr ( "Zambia" ) );
cmbCountry->insertItem( tr ( "Zimbabwe" ) );
cmbCountry->setMaximumWidth( 135 );
gl->addMultiCellWidget( cmbCountry, 5, 5, 1, 2 );
cmbChooserField4 = new QComboBox( FALSE, container );
cmbChooserField4->setMaximumWidth( 90 );
gl->addWidget( cmbChooserField4, 6, 0 );
txtChooserField4 = new QLineEdit( container );
gl->addMultiCellWidget( txtChooserField4, 6, 6, 1, 2 );
QSpacerItem *space = new QSpacerItem(1,1,
QSizePolicy::Maximum,
QSizePolicy::MinimumExpanding );
gl->addItem( space, 7, 0 );
tabMain->insertTab( tabViewport, tr( "Address" ) );
tabViewport = new QWidget ( tabMain );
vb = new QVBoxLayout( tabViewport );
svDetails = new QScrollView( tabViewport );
vb->addWidget( svDetails, 0, 0 );
svDetails->setResizePolicy( QScrollView::AutoOneFit );
svDetails->setFrameStyle( QFrame::NoFrame );
container = new QWidget( svDetails->viewport() );
svDetails->addChild( container );
gl = new QGridLayout( container, 1, 2, 2, 4 );
QStringList::ConstIterator it = slDynamicEntries.begin();
for (i = 0; it != slDynamicEntries.end(); i++, ++it) {
l = new QLabel( *it, container );
listName.append( l );
gl->addWidget( l, i, 0 );
QLineEdit *e = new QLineEdit( container );
listValue.append( e );
gl->addWidget( e, i, 1);
}
l = new QLabel( tr("Gender"), container );
gl->addWidget( l, slDynamicEntries.count(), 0 );
cmbGender = new QComboBox( container );
cmbGender->insertItem( "", 0 );
cmbGender->insertItem( tr("Male"), 1);
cmbGender->insertItem( tr("Female"), 2);
gl->addWidget( cmbGender, slDynamicEntries.count(), 1 );
tabMain->insertTab( tabViewport, tr( "Details" ) );
dlgNote = new QDialog( this, "Note Dialog", TRUE );
dlgNote->setCaption( tr("Enter Note") );
QVBoxLayout *vbNote = new QVBoxLayout( dlgNote );
txtNote = new QMultiLineEdit( dlgNote );
vbNote->addWidget( txtNote );
connect( btnNote, SIGNAL(clicked()), this, SLOT(slotNote()) );
dlgName = new QDialog( this, "Name Dialog", TRUE );
dlgName->setCaption( tr("Edit Name") );
gl = new QGridLayout( dlgName, 5, 2, 2, 3 );
l = new QLabel( tr("First Name"), dlgName );
gl->addWidget( l, 0, 0 );
txtFirstName = new QLineEdit( dlgName );
gl->addWidget( txtFirstName, 0, 1 );
l = new QLabel( tr("Middle Name"), dlgName );
gl->addWidget( l, 1, 0 );
txtMiddleName = new QLineEdit( dlgName );
gl->addWidget( txtMiddleName, 1, 1 );
l = new QLabel( tr("Last Name"), dlgName );
gl->addWidget( l, 2, 0 );
txtLastName = new QLineEdit( dlgName );
gl->addWidget( txtLastName, 2, 1 );
l = new QLabel( tr("Suffix"), dlgName );
gl->addWidget( l, 3, 0 );
txtSuffix = new QLineEdit( dlgName );
gl->addWidget( txtSuffix, 3, 1 );
space = new QSpacerItem(1,1,
QSizePolicy::Maximum,
QSizePolicy::MinimumExpanding );
gl->addItem( space, 4, 0 );
- cmbChooserField1->insertStringList( slChooserNames );
- cmbChooserField2->insertStringList( slChooserNames );
- cmbChooserField3->insertStringList( slChooserNames );
- cmbChooserField4->insertStringList( slChooserNames );
+ cmbChooserField1->insertStringList( trlChooserNames );
+ cmbChooserField2->insertStringList( trlChooserNames );
+ cmbChooserField3->insertStringList( trlChooserNames );
+ cmbChooserField4->insertStringList( trlChooserNames );
cmbChooserField1->setCurrentItem( 0 );
cmbChooserField2->setCurrentItem( 1 );
cmbChooserField3->setCurrentItem( 2 );
connect( btnFullName, SIGNAL(clicked()), this, SLOT(slotName()) );
connect( txtFullName, SIGNAL(textChanged(const QString &)), this, SLOT(slotFullNameChange(const QString &)) );
connect( txtChooserField1, SIGNAL(textChanged(const QString &)),
this, SLOT(slotChooser1Change(const QString &)) );
connect( txtChooserField2, SIGNAL(textChanged(const QString &)),
this, SLOT(slotChooser2Change(const QString &)) );
connect( txtChooserField3, SIGNAL(textChanged(const QString &)),
this, SLOT(slotChooser3Change(const QString &)) );
connect( txtChooserField4, SIGNAL(textChanged(const QString &)),
this, SLOT(slotChooser4Change(const QString &)) );
connect( txtAddress, SIGNAL(textChanged(const QString &)),
this, SLOT(slotAddressChange(const QString &)) );
//connect( txtAddress2, SIGNAL(textChanged(const QString &)), this, SLOT(slotAddress2Change(const QString &)) );
//connect( txtPOBox, SIGNAL(textChanged(const QString &)), this, SLOT(slotPOBoxChange(const QString &)) );
connect( txtCity, SIGNAL(textChanged(const QString &)),
this, SLOT(slotCityChange(const QString &)) );
connect( txtState, SIGNAL(textChanged(const QString &)),
this, SLOT(slotStateChange(const QString &)) );
connect( txtZip, SIGNAL(textChanged(const QString &)),
this, SLOT(slotZipChange(const QString &)) );
connect( cmbCountry, SIGNAL(textChanged(const QString &)),
this, SLOT(slotCountryChange(const QString &)) );
connect( cmbCountry, SIGNAL(activated(const QString &)),
this, SLOT(slotCountryChange(const QString &)) );
connect( cmbChooserField1, SIGNAL(activated(int)),
this, SLOT(slotCmbChooser1Change(int)) );
connect( cmbChooserField2, SIGNAL(activated(int)),
this, SLOT(slotCmbChooser2Change(int)) );
connect( cmbChooserField3, SIGNAL(activated(int)),
this, SLOT(slotCmbChooser3Change(int)) );
connect( cmbChooserField4, SIGNAL(activated(int)),
this, SLOT(slotCmbChooser4Change(int)) );
connect( cmbAddress, SIGNAL(activated(int)),
this, SLOT(slotAddressTypeChange(int)) );
new QPEDialogListener(this);
}
void ContactEditor::initMap()
{
/*
// since the fields and the XML fields exist, create a map
// between them...
Config cfg1( "AddressBook" );
Config cfg2( "AddressBook" );
QString strCfg1,
strCfg2;
int i;
// This stuff better exist...
cfg1.setGroup( "AddressFields" );
o cfg2.setGroup( "XMLFields" );
i = 0;
strCfg1 = cfg1.readEntry( "Field" + QString::number(i), QString::null );
strCfg2 = cfg2.readEntry( "XMLField" + QString::number(i++),
QString::null );
while ( !strCfg1.isNull() && !strCfg2.isNull() ) {
mapField.insert( strCfg1, strCfg2 );
strCfg1 = cfg1.readEntry( "Field" + QString::number(i),
QString::null );
strCfg2 = cfg2.readEntry( "XMLField" + QString::number(i++),
QString::null );
}
*/
}
void ContactEditor::slotChooser1Change( const QString &textChanged ) {
int index = cmbChooserField1->currentItem();
slChooserValues[index] = textChanged;
}
void ContactEditor::slotChooser2Change( const QString &textChanged ) {
int index = cmbChooserField2->currentItem();
slChooserValues[index] = textChanged;
}
void ContactEditor::slotChooser3Change( const QString &textChanged ) {
int index = cmbChooserField3->currentItem();
slChooserValues[index] = textChanged;
}
@@ -1267,421 +1281,421 @@ void ContactEditor::cleanupFields() {
for ( cit = slDynamicEntries.begin(); cit != slDynamicEntries.end(); ++cit, ++itLE) {
(*itLE)->setText( "" );
}
txtFirstName->setText("");
txtMiddleName->setText("");
txtLastName->setText("");
txtSuffix->setText("");
txtNote->setText("");
txtFullName->setText("");
txtJobTitle->setText("");
txtOrganization->setText("");
txtChooserField1->setText("");
txtChooserField2->setText("");
txtChooserField3->setText("");
txtAddress->setText("");
//txtAddress2->setText("");
txtCity->setText("");
//txtPOBox->setText("");
txtState->setText("");
txtZip->setText("");
QLineEdit *txtTmp = cmbCountry->lineEdit();
txtTmp->setText("");
txtTmp = cmbFileAs->lineEdit();
txtTmp->setText("");
}
void ContactEditor::setEntry( const OContact &entry ) {
cleanupFields();
ent = entry;
useFullName = FALSE;
txtFirstName->setText( ent.firstName() );
txtMiddleName->setText( ent.middleName() );
txtLastName->setText( ent.lastName() );
txtSuffix->setText( ent.suffix() );
QString *tmpString = new QString;
*tmpString = ent.firstName() + " " + ent.middleName() +
+ " " + ent.lastName() + " " + ent.suffix();
txtFullName->setText( tmpString->simplifyWhiteSpace() );
cmbFileAs->setEditText( ent.fileAs() );
if (hasTitle)
txtJobTitle->setText( ent.jobTitle() );
if (hasCompany)
txtOrganization->setText( ent.company() );
if (hasNotes)
txtNote->setText( ent.notes() );
if (hasStreet) {
slHomeAddress[0] = ent.homeStreet();
slBusinessAddress[0] = ent.businessStreet();
}
/*
if (hasStreet2) {
(*slHomeAddress)[1] = ent.homeStreet2();
(*slBusinessAddress)[1] = ent.businessStreet2();
}
if (hasPOBox) {
(*slHomeAddress)[2] = ent.homePOBox();
(*slBusinessAddress)[2] = ent.businessPOBox();
}
*/
if (hasCity) {
slHomeAddress[3] = ent.homeCity();
slBusinessAddress[3] = ent.businessCity();
}
if (hasState) {
slHomeAddress[4] = ent.homeState();
slBusinessAddress[4] = ent.businessState();
}
if (hasZip) {
slHomeAddress[5] = ent.homeZip();
slBusinessAddress[5] = ent.businessZip();
}
if (hasCountry) {
slHomeAddress[6] = ent.homeCountry();
slBusinessAddress[6] = ent.businessCountry();
}
QStringList::ConstIterator it;
QListIterator<QLineEdit> itLE( listValue );
for ( it = slDynamicEntries.begin(); it != slDynamicEntries.end(); ++it, ++itLE) {
- if ( *it =="Department" )
+ if ( *it == tr( "Department" ) )
(*itLE)->setText( ent.department() );
- if ( *it == "Company" )
+ if ( *it == tr( "Company" ) )
(*itLE)->setText( ent.company() );
- if ( *it == "Office" )
+ if ( *it == tr( "Office" ) )
(*itLE)->setText( ent.office() );
- if ( *it == "Profession" )
+ if ( *it == tr( "Profession" ) )
(*itLE)->setText( ent.profession() );
- if ( *it == "Assistant" )
+ if ( *it == tr( "Assistant" ) )
(*itLE)->setText( ent.assistant() );
- if ( *it == "Manager" )
+ if ( *it == tr( "Manager" ) )
(*itLE)->setText( ent.manager() );
- if ( *it == "Spouse" )
+ if ( *it == tr( "Spouse" ) )
(*itLE)->setText( ent.spouse() );
- if ( *it == "Birthday" )
+ if ( *it == tr( "Birthday" ) )
(*itLE)->setText( ent.birthday() );
- if ( *it == "Anniversary" )
+ if ( *it == tr( "Anniversary" ) )
(*itLE)->setText( ent.anniversary() );
- if ( *it == "Nickname" )
+ if ( *it == tr( "Nickname" ) )
(*itLE)->setText( ent.nickname() );
- if ( *it == "Children" )
+ if ( *it == tr( "Children" ) )
(*itLE)->setText( ent.children() );
}
QStringList::Iterator itV;
for ( it = slChooserNames.begin(), itV = slChooserValues.begin(); it != slChooserNames.end(); ++it, ++itV ) {
if ( ( *it == "Business Phone") || ( *it == "Work Phone" ) )
*itV = ent.businessPhone();
/*
if ( *it == "Business 2 Phone" )
*itV = ent.business2Phone();
*/
if ( ( *it == "Business Fax") || ( *it == "Work Fax" ) )
*itV = ent.businessFax();
if ( ( *it == "Business Mobile" ) || ( *it == "work Mobile" ) )
*itV = ent.businessMobile();
/*
if ( *it == "Company Phone" )
*itV = ent.companyPhone();
*/
if ( *it == "Default Email" )
*itV = ent.defaultEmail();
if ( *it == "Emails" )
*itV = ent.emailList().join(", "); // :SX
if ( *it == "Home Phone" )
*itV = ent.homePhone();
/*
if ( *it == "Home 2 Phone" )
*itV = ent.home2Phone();
*/
if ( *it == "Home Fax" )
*itV = ent.homeFax();
if ( *it == "Home Mobile" )
*itV = ent.homeMobile();
/*
if ( *it == "Car Phone" )
*itV = ent.carPhone();
if ( *it == "ISDN Phone" )
*itV = ent.ISDNPhone();
if ( *it == "Other Phone" )
*itV = ent.otherPhone();
*/
if ( ( *it == "Business Pager" ) || ( *it == "Work Pager" ) )
*itV = ent.businessPager();
/*
if ( *it == "Home Pager")
*itV = ent.homePager();
if ( *it == "AIM IM" )
*itV = ent.AIMIM();
if ( *it == "ICQ IM" )
*itV = ent.ICQIM();
if ( *it == "Jabber IM" )
*itV = ent.jabberIM();
if ( *it == "MSN IM" )
*itV = ent.MSNIM();
if ( *it == "Yahoo IM" )
*itV = ent.yahooIM();
*/
if ( *it == "Home Web Page" )
*itV = ent.homeWebpage();
if ( ( *it == "Business WebPage" ) || ( *it == "Work Web Page" ) )
*itV = ent.businessWebpage();
}
cmbCat->setCategories( ent.categories(), "Contacts", tr("Contacts") );
QString gender = ent.gender();
cmbGender->setCurrentItem( gender.toInt() );
txtNote->setText( ent.notes() );
slotCmbChooser1Change( cmbChooserField1->currentItem() );
slotCmbChooser2Change( cmbChooserField2->currentItem() );
slotCmbChooser3Change( cmbChooserField3->currentItem() );
slotAddressTypeChange( cmbAddress->currentItem() );
}
void ContactEditor::saveEntry() {
if ( useFullName == TRUE ) {
txtFirstName->setText( parseName( txtFullName->text(), NAME_F ) );
txtMiddleName->setText( parseName( txtFullName->text(), NAME_M ) );
txtLastName->setText( parseName( txtFullName->text(), NAME_L ) );
txtSuffix->setText( parseName( txtFullName->text(), NAME_S ) );
useFullName = FALSE;
}
/*if ( ent.firstName() != txtFirstName->text() ||
ent.lastName != txtLastName->text() ||
ent.middleName != txtMiddleName->text() ) {
*/
ent.setFirstName( txtFirstName->text() );
ent.setLastName( txtLastName->text() );
ent.setMiddleName( txtMiddleName->text() );
ent.setSuffix( txtSuffix->text() );
//}
ent.setFileAs( cmbFileAs->currentText() );
ent.setCategories( cmbCat->currentCategories() );
if (hasTitle)
ent.setJobTitle( txtJobTitle->text() );
if (hasCompany)
ent.setCompany( txtOrganization->text() );
if (hasNotes)
ent.setNotes( txtNote->text() );
if (hasStreet) {
ent.setHomeStreet( slHomeAddress[0] );
ent.setBusinessStreet( slBusinessAddress[0] );
}
/*
if (hasStreet2) {
ent.setHomeStreet2( (*slHomeAddress)[1] );
ent.setBusinessStreet2( (*slBusinessAddress)[1] );
}
if (hasPOBox) {
ent.setHomePOBox( (*slHomeAddress)[2] );
ent.setBusinessPOBox( (*slBusinessAddress)[2] );
}
*/
if (hasCity) {
ent.setHomeCity( slHomeAddress[3] );
ent.setBusinessCity( slBusinessAddress[3] );
}
if (hasState) {
ent.setHomeState( slHomeAddress[4] );
ent.setBusinessState( slBusinessAddress[4] );
}
if (hasZip) {
ent.setHomeZip( slHomeAddress[5] );
ent.setBusinessZip( slBusinessAddress[5] );
}
if (hasCountry) {
ent.setHomeCountry( slHomeAddress[6] );
ent.setBusinessCountry( slBusinessAddress[6] );
}
QStringList::ConstIterator it;
QListIterator<QLineEdit> itLE( listValue );
for ( it = slDynamicEntries.begin(); it != slDynamicEntries.end(); ++it, ++itLE) {
- if ( *it == "Department" )
+ if ( *it == tr( "Department" ) )
ent.setDepartment( (*itLE)->text() );
- if ( *it == "Company" )
+ if ( *it == tr( "Company" ) )
ent.setCompany( (*itLE)->text() );
- if ( *it == "Office" )
+ if ( *it == tr( "Office" ) )
ent.setOffice( (*itLE)->text() );
- if ( *it == "Profession" )
+ if ( *it == tr( "Profession" ) )
ent.setProfession( (*itLE)->text() );
- if ( *it == "Assistant" )
+ if ( *it == tr( "Assistant" ) )
ent.setAssistant( (*itLE)->text() );
- if ( *it == "Manager" )
+ if ( *it == tr( "Manager" ) )
ent.setManager( (*itLE)->text() );
- if ( *it == "Spouse" )
+ if ( *it == tr( "Spouse" ) )
ent.setSpouse( (*itLE)->text() );
- if ( *it == "Birthday" )
+ if ( *it == tr( "Birthday" ) )
ent.setBirthday( (*itLE)->text() );
- if ( *it == "Anniversary" )
+ if ( *it == tr( "Anniversary" ) )
ent.setAnniversary( (*itLE)->text() );
- if ( *it == "Nickname" )
+ if ( *it == tr( "Nickname" ) )
ent.setNickname( (*itLE)->text() );
- if ( *it == "Children" )
+ if ( *it == tr( "Children" ) )
ent.setChildren( (*itLE)->text() );
}
QStringList::ConstIterator itV;
for ( it = slChooserNames.begin(), itV = slChooserValues.begin(); it != slChooserNames.end(); ++it, ++itV ) {
if ( ( *it == "Business Phone" ) || ( *it == "Work Phone" ) )
ent.setBusinessPhone( *itV );
/*
if ( *it == tr("Business 2 Phone" )
ent.setBusiness2Phone( *itV );
*/
if ( ( *it == "Business Fax" ) || ( *it == "Work Fax" ) )
ent.setBusinessFax( *itV );
if ( ( *it == "Business Mobile" ) || ( *it == "Work Mobile" ) )
ent.setBusinessMobile( *itV );
/*
if ( *it == "Company Phone" )
ent.setCompanyPhone( *itV );
*/
//if ( *it == "Default Email" )
//ent.setDefaultEmail( *itV );
if ( *it == "Emails" ){
QString allemail;
QString defaultmail;
parseEmailFrom( *itV, defaultmail, allemail );
// ent.clearEmails();
ent.setDefaultEmail( defaultmail );
ent.setEmails( allemail );
}
if ( *it == "Home Phone" )
ent.setHomePhone( *itV );
/*
if ( *it == "Home 2 Phone" )
ent.setHome2Phone( *itV );
*/
if ( *it == "Home Fax" )
ent.setHomeFax( *itV );
if ( *it == "Home Mobile" )
ent.setHomeMobile( *itV );
/*
if ( *it == "Car Phone" )
ent.setCarPhone( *itV );
if ( *it == "ISDN Phone" )
ent.setISDNPhone( *itV );
if ( *it == "Other Phone" )
ent.setOtherPhone( *itV );
*/
if ( ( *it == "Business Pager" ) || ( *it == "Work Pager" ) )
ent.setBusinessPager( *itV );
/*
if ( *it == "Home Pager" )
ent.setHomePager( *itV );
if ( *it == "AIM IM" )
ent.setAIMIM( *itV );
if ( *it == "ICQ IM" )
ent.setICQIM( *itV );
if ( *it == "Jabber IM" )
ent.setJabberIM( *itV );
if ( *it == "MSN IM" )
ent.setMSNIM( *itV );
if ( *it == "Yahoo IM" )
ent.setYahooIM( *itV );
*/
if ( *it == "Home Web Page" )
ent.setHomeWebpage( *itV );
if ( ( *it == "Business WebPage" ) || ( *it == "Work Web Page" ) )
ent.setBusinessWebpage( *itV );
}
int gender = cmbGender->currentItem();
ent.setGender( QString::number( gender ) );
QString str = txtNote->text();
if ( !str.isNull() )
ent.setNotes( str );
}
void parseEmailFrom( const QString &txt, QString &strDefaultEmail,
QString &strAll )