author | eilers <eilers> | 2002-10-27 16:18:51 (UTC) |
---|---|---|
committer | eilers <eilers> | 2002-10-27 16:18:51 (UTC) |
commit | cc01384d8c2b421d5f455f32631d8c2ec4b7e844 (patch) (side-by-side diff) | |
tree | 0917ecf78c54b17620a583e584198881db24fee2 /core/pim | |
parent | 5f09fc992af19fc208315217eb46635a762f1e55 (diff) | |
download | opie-cc01384d8c2b421d5f455f32631d8c2ec4b7e844.zip opie-cc01384d8c2b421d5f455f32631d8c2ec4b7e844.tar.gz opie-cc01384d8c2b421d5f455f32631d8c2ec4b7e844.tar.bz2 |
OContact now uses QDate to avoid wrong interpreted strings
A lot of inline functions moved into the library..
-rw-r--r-- | core/pim/addressbook/abtable.cpp | 5 | ||||
-rw-r--r-- | core/pim/addressbook/contacteditor.cpp | 34 |
2 files changed, 20 insertions, 19 deletions
diff --git a/core/pim/addressbook/abtable.cpp b/core/pim/addressbook/abtable.cpp index 4feadeb..5222f16 100644 --- a/core/pim/addressbook/abtable.cpp +++ b/core/pim/addressbook/abtable.cpp @@ -1,74 +1,75 @@ /********************************************************************** ** 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. ** ** Contact info@trolltech.com if any conditions of this licensing are ** not clear to you. ** **********************************************************************/ #define QTOPIA_INTERNAL_CONTACT_MRE #include <qpe/categoryselect.h> #include <qpe/config.h> #include <qpe/stringutil.h> #include <qpe/qcopenvelope_qws.h> +#include <qpe/timestring.h> #include <opie/orecordlist.h> #include <qasciidict.h> #include <qdatetime.h> #include <qfile.h> #include <qregexp.h> #include <qmessagebox.h> #include "abtable.h" #include <errno.h> #include <fcntl.h> #include <unistd.h> #include <stdlib.h> #include <ctype.h> //toupper() for key hack static bool contactCompare( const OContact &cnt, const QRegExp &r, int category ); /*! \class AbTableItem abtable.h \brief QTableItem based class for showing a field of an entry */ AbTableItem::AbTableItem( QTable *t, EditType et, const QString &s, const QString &secondSortKey) : QTableItem( t, et, s ) { // sortKey = s.lower() + QChar( '\0' ) + secondSortKey.lower(); sortKey = Qtopia::buildSortKey( s, secondSortKey ); } int AbTableItem::alignment() const { return AlignLeft|AlignVCenter; } QString AbTableItem::key() const { return sortKey; } // A way to reset the item, without out doing a delete or a new... void AbTableItem::setItem( const QString &txt, const QString &secondKey ) { @@ -405,100 +406,100 @@ QString AbTable::findContactContact( const OContact &entry, int /* row */ ) value = entry.businessStreet(); break; case Qtopia::BusinessZip: value = entry.businessZip(); break; case Qtopia::BusinessCountry: value = entry.businessCountry(); break; case Qtopia::BusinessWebPage: value = entry.businessWebpage(); break; case Qtopia::JobTitle: value = entry.jobTitle(); break; case Qtopia::Department: value = entry.department(); break; case Qtopia::Office: value = entry.office(); break; case Qtopia::BusinessPhone: value = entry.businessPhone(); break; case Qtopia::BusinessFax: value = entry.businessFax(); break; case Qtopia::BusinessMobile: value = entry.businessMobile(); break; case Qtopia::BusinessPager: value = entry.businessPager(); break; case Qtopia::Profession: value = entry.profession(); break; case Qtopia::Assistant: value = entry.assistant(); break; case Qtopia::Manager: value = entry.manager(); break; case Qtopia::Spouse: value = entry.spouse(); break; case Qtopia::Gender: value = entry.gender(); break; case Qtopia::Birthday: - value = entry.birthday(); + value = TimeString::numberDateString( entry.birthday() ); break; case Qtopia::Anniversary: - value = entry.anniversary(); + value = TimeString::numberDateString( entry.anniversary() ); break; case Qtopia::Nickname: value = entry.nickname(); break; case Qtopia::Children: value = entry.children(); break; case Qtopia::Notes: value = entry.notes(); break; } if ( !value.isEmpty() ) break; } return value; } void AbTable::addEntry( const OContact &newCnt ) { int row = numRows(); setNumRows( row + 1 ); insertIntoTable( newCnt, row ); qWarning("abtable:AddContact"); m_contactdb.add ( newCnt ); setCurrentCell( row, 0 ); // updateVisible(); } void AbTable::resizeRows() { /* if (numRows()) { for (int i = 0; i < numRows(); i++) { setRowHeight( i, size ); } } updateVisible(); */ } bool AbTable::save() { // QTime t; // t.start(); qWarning("abtable:Save data"); diff --git a/core/pim/addressbook/contacteditor.cpp b/core/pim/addressbook/contacteditor.cpp index 52ab0f2..e034b35 100644 --- a/core/pim/addressbook/contacteditor.cpp +++ b/core/pim/addressbook/contacteditor.cpp @@ -1,50 +1,51 @@ /* * Copyright (c) 2002 Michael R. Crawford <mike@tuxnami.org> + * Copyright (C) 2002 by Stefan Eilers (eilers.stefan@epost.de) * * 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 <qpe/timeconversion.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> #include <qpopupmenu.h> #include <qlistbox.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 ); @@ -1063,110 +1064,96 @@ void ContactEditor::slotFullNameChange( const QString &textChanged ) { cmbFileAs->clear(); cmbFileAs->insertItem( parseName( textChanged, 0 ) ); cmbFileAs->insertItem( parseName( textChanged, 1 ) ); cmbFileAs->insertItem( parseName( textChanged, 2 ) ); cmbFileAs->insertItem( parseName( textChanged, 3 ) ); cmbFileAs->setCurrentItem( index ); useFullName = TRUE; } // Loads the detail fields void ContactEditor::loadFields() { QStringList::ConstIterator it; QListIterator<QLabel> lit( listName ); for ( it = slDynamicEntries.begin(); *lit; ++lit, ++it) { if ( *it == "Department" ) (*lit)->setText( tr( "Department" ) ); if ( *it == "Company" ) (*lit)->setText( tr( "Company" ) ); if ( *it == "Office" ) (*lit)->setText( tr( "Office" ) ); if ( *it == "Profession" ) (*lit)->setText( tr( "Profession" ) ); if ( *it == "Assistant" ) (*lit)->setText( tr( "Assistant" ) ); if ( *it == "Manager" ) (*lit)->setText( tr( "Manager" ) ); if ( *it == "Spouse" ) (*lit)->setText( tr( "Spouse" ) ); if ( *it == "Nickname" ) (*lit)->setText( tr( "Nickname" ) ); if ( *it == "Children" ) (*lit)->setText( tr( "Children" ) ); } - // Set DatePicker - qWarning ("**Info: %s", ent.birthday().latin1() ); - if ( !ent.birthday().isEmpty() ){ - birthdayButton->setText( ent.birthday() ); - birthdayPicker->setDate( TimeConversion::fromString ( ent.birthday() ) ); - } else - birthdayButton->setText( tr ("Unknown") ); - - qWarning ("**Info: %s", ent.anniversary().latin1() ); - if ( !ent.anniversary().isEmpty() ){ - anniversaryButton->setText( ent.anniversary() ); - anniversaryPicker->setDate( TimeConversion::fromString ( ent.birthday() ) ); - } else - anniversaryButton->setText( tr ("Unknown") ); } void ContactEditor::accept() { if ( isEmpty() ) { cleanupFields(); reject(); } else { saveEntry(); cleanupFields(); QDialog::accept(); } } void ContactEditor::slotNote() { dlgNote->showMaximized(); if ( !dlgNote->exec() ) { txtNote->setText( ent.notes() ); } } void ContactEditor::slotName() { QString tmpName; 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) ); } dlgName->showMaximized(); if ( dlgName->exec() ) { tmpName = txtFirstName->text() + " " + txtMiddleName->text() + " " + txtLastName->text() + " " + txtSuffix->text(); txtFullName->setText( tmpName.simplifyWhiteSpace() ); slotFullNameChange( txtFullName->text() ); useFullName = FALSE; } } void ContactEditor::setNameFocus() { txtFullName->setFocus(); @@ -1556,97 +1543,110 @@ void ContactEditor::setEntry( const OContact &entry ) { 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() ); - loadFields(); + // loadFields(); :SX + + // Set DatePicker + if ( !ent.birthday().isNull() ){ + birthdayButton->setText( TimeString::numberDateString( ent.birthday() ) ); + birthdayPicker->setDate( ent.birthday() ); + } else + birthdayButton->setText( tr ("Unknown") ); + + if ( !ent.anniversary().isNull() ){ + anniversaryButton->setText( TimeString::numberDateString( ent.anniversary() ) ); + anniversaryPicker->setDate( ent.anniversary() ); + } else + anniversaryButton->setText( tr ("Unknown") ); } 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] ); } @@ -1846,59 +1846,59 @@ void parseEmailTo( const QString &strDefaultEmail, if ( foundDefault || strTmp != strDefaultEmail ) { strBack.append( ", " ); strBack.append( strTmp ); } else foundDefault = true; } } static inline bool containsAlphaNum( const QString &str ) { int i, count = str.length(); for ( i = 0; i < count; i++ ) if ( !str[i].isSpace() ) return TRUE; return FALSE; } static inline bool constainsWhiteSpace( const QString &str ) { int i, count = str.length(); for (i = 0; i < count; i++ ) if ( str[i].isSpace() ) return TRUE; return FALSE; } void ContactEditor::setPersonalView( bool personal ) { m_personalView = personal; if ( personal ){ cmbCat->hide(); labCat->hide(); } else{ cmbCat->show(); labCat->show(); } } void ContactEditor::slotAnniversaryDateChanged( int year, int month, int day) { QDate date; date.setYMD( year, month, day ); QString dateString = TimeString::numberDateString( date ); anniversaryButton->setText( dateString ); - ent.setAnniversary ( dateString ); + ent.setAnniversary ( date ); } void ContactEditor::slotBirthdayDateChanged( int year, int month, int day) { QDate date; date.setYMD( year, month, day ); QString dateString = TimeString::numberDateString( date ); birthdayButton->setText( dateString ); - ent.setBirthday ( dateString ); + ent.setBirthday ( date ); } |