-rw-r--r-- | core/pim/addressbook/TODO | 16 | ||||
-rw-r--r-- | core/pim/addressbook/abtable.cpp | 40 | ||||
-rw-r--r-- | core/pim/addressbook/abview.cpp | 48 | ||||
-rw-r--r-- | core/pim/addressbook/contacteditor.cpp | 75 | ||||
-rw-r--r-- | core/pim/addressbook/contacteditor.h | 5 | ||||
-rw-r--r-- | core/pim/addressbook/ocontactfields.cpp | 101 | ||||
-rw-r--r-- | core/pim/addressbook/ocontactfields.h | 34 | ||||
-rw-r--r-- | core/pim/addressbook/version.h | 4 |
8 files changed, 251 insertions, 72 deletions
diff --git a/core/pim/addressbook/TODO b/core/pim/addressbook/TODO index 76247c1..c600d20 100644 --- a/core/pim/addressbook/TODO +++ b/core/pim/addressbook/TODO @@ -7,14 +7,15 @@ Feature requests: (Maybe using gsmtool. And we may add a library class for this) -- dial with dtmfdial incase it's installed and there's no mobile +- dial with dtmfdial in case it's installed and there's no mobile - 3rd column for 2. Contact - Implementing additional Views (Phonebook, ...) - Birthday & Anniversary Reminder -- Plugin for Today for Birthdays and Anniversaries - Beaming of multiple contacts (current list/ by search or by category) +- Configure the letter-picker: lastname/fullname search Known Bugs: ----------- - +- Email-button: A lot of problems.. :( +- Default Email-Button: Sometimes not hiding the textfields completely Bugs but not in addressbook: @@ -30,5 +31,4 @@ ContactEditor: - Contact-Editor is temporarely reenabled. Wait for replacement. - Redesign of Contacteditor -- Store last settings of combo-boxes - Category is on the wrong position after changing to personal and back to normal ( Temporarily workaround: Category is never deactivated.. :S ) @@ -41,5 +41,4 @@ Important: - If new contact is added (contacteditor closed): focus (table, card) to this entry ! -- Implement a picker/combo for the default email. - After search (Started with Return): KeyFocus should be on Tabelle @@ -49,5 +48,4 @@ Less important: --------------- - Reload if contacts were changed externally -- Overview window cleanup needed.. - The picker (alphabetical sort widget) should be placed verticaly or horizontally (configurable) @@ -58,5 +56,5 @@ Should be Fixed (not absolute sure, need further validation): -Fixed: +Fixed/Ready: ------- - Syncing: abtable not reloaded after sync. @@ -111,2 +109,6 @@ Fixed: 2. Contacteditor nur teilweise übersetzt. 3. Kategorie-Picker geht nicht. +- Plugin for Today for Birthdays and Anniversaries +- Implement a picker/combo for the default email. +- Overview window cleanup needed.. +- Store last settings of combo-boxes diff --git a/core/pim/addressbook/abtable.cpp b/core/pim/addressbook/abtable.cpp index 00335ae..aec390d 100644 --- a/core/pim/addressbook/abtable.cpp +++ b/core/pim/addressbook/abtable.cpp @@ -127,5 +127,5 @@ AbTable::AbTable( const QValueList<int> order, QWidget *parent, const char *name countNested( 0 ) { - qWarning("C'tor start"); + // qWarning("C'tor start"); setSelectionMode( NoSelection ); @@ -136,5 +136,5 @@ AbTable::AbTable( const QValueList<int> order, QWidget *parent, const char *name contactList.clear(); - qWarning("C'tor end"); + // qWarning("C'tor end"); } @@ -158,5 +158,5 @@ void AbTable::init() void AbTable::setContacts( const OContactAccess::List& viewList ) { - qWarning("AbTable::setContacts()"); + // qWarning("AbTable::setContacts()"); clear(); @@ -184,5 +184,5 @@ void AbTable::setContacts( const OContactAccess::List& viewList ) bool AbTable::selectContact( int UID ) { - qWarning( "AbTable::selectContact( %d )", UID ); + // qWarning( "AbTable::selectContact( %d )", UID ); int rows = numRows(); AbTableItem *abi; @@ -214,5 +214,5 @@ bool AbTable::selectContact( int UID ) void AbTable::insertIntoTable( const OContact& cnt, int row ) { - qWarning( "void AbTable::insertIntoTable( const OContact& cnt, %d )", row ); + // qWarning( "void AbTable::insertIntoTable( const OContact& cnt, %d )", row ); QString strName, strContact; @@ -255,5 +255,5 @@ void AbTable::columnClicked( int col ) void AbTable::resort() { - qWarning( "void AbTable::resort()" ); + // qWarning( "void AbTable::resort()" ); setPaintingEnabled( FALSE ); if ( sorting() ) { @@ -269,5 +269,5 @@ void AbTable::resort() OContact AbTable::currentEntry() { - qWarning( "OContact AbTable::currentEntry()" ); + // qWarning( "OContact AbTable::currentEntry()" ); OContact cnt; AbTableItem *abItem; @@ -287,5 +287,5 @@ int AbTable::currentEntry_UID() void AbTable::clear() { - qWarning( "void AbTable::clear()" ); + // qWarning( "void AbTable::clear()" ); contactList.clear(); @@ -305,5 +305,5 @@ void AbTable::clear() void AbTable::refresh() { - qWarning( "void AbTable::refresh()" ); + // qWarning( "void AbTable::refresh()" ); int rows = numRows(); QString value; @@ -327,5 +327,5 @@ void AbTable::keyPressEvent( QKeyEvent *e ) moveTo( key ); - qWarning("Received key .."); + // qWarning("Received key .."); switch( e->key() ) { case Qt::Key_Space: @@ -412,5 +412,5 @@ void AbTable::resizeRows() { void AbTable::realignTable() { - qWarning( "void AbTable::realignTable()" ); + // qWarning( "void AbTable::realignTable()" ); setPaintingEnabled( FALSE ); @@ -462,5 +462,5 @@ void QTable::paintEmptyArea( QPainter *p, int cx, int cy, int cw, int ch ) void AbTable::fitColumns() { - qWarning( "void AbTable::fitColumns()" ); + // qWarning( "void AbTable::fitColumns()" ); int contentsWidth = visibleWidth() / 2; // :SX Why too low // Fix to better value @@ -474,5 +474,5 @@ void AbTable::fitColumns() } - qWarning("Width: %d", contentsWidth); + // qWarning("Width: %d", contentsWidth); setColumnWidth( 0, contentsWidth ); @@ -486,5 +486,5 @@ void AbTable::fitColumns() void AbTable::show() { - qWarning( "void AbTable::show()" ); + // qWarning( "void AbTable::show()" ); realignTable(); QTable::show(); @@ -508,9 +508,9 @@ void AbTable::setChoiceNames( const QStringList& list) void AbTable::itemClicked(int,int col) { - qWarning( "AbTable::itemClicked(int, col:%d)", col); + // qWarning( "AbTable::itemClicked(int, col:%d)", col); if ( col == 2 ) { return; } else { - qWarning ("Emitting signalSwitch()"); + // qWarning ("Emitting signalSwitch()"); emit signalSwitch(); } @@ -549,5 +549,5 @@ QStringList AbTable::choiceSelection(int /*index*/) const void AbTable::updateVisible() { - qWarning("void AbTable::updateVisible()"); + // qWarning("void AbTable::updateVisible()"); int visible, @@ -587,5 +587,5 @@ void AbTable::updateVisible() void AbTable::setPaintingEnabled( bool e ) { - qWarning("IN void AbTable::setPaintingEnabled( %d )->Nested: %d", e, countNested ); + // qWarning("IN void AbTable::setPaintingEnabled( %d )->Nested: %d", e, countNested ); if ( e ) { @@ -603,9 +603,9 @@ void AbTable::setPaintingEnabled( bool e ) setUpdatesEnabled( false ); } - qWarning("OUT void AbTable::setPaintingEnabled( %d )->Nested: %d", e, countNested ); + // qWarning("OUT void AbTable::setPaintingEnabled( %d )->Nested: %d", e, countNested ); } void AbTable::viewportPaintEvent( QPaintEvent* e ) { - qWarning(" void AbTable::viewportPaintEvent( QPaintEvent* e ) -> %d", enablePainting); + // qWarning(" void AbTable::viewportPaintEvent( QPaintEvent* e ) -> %d", enablePainting); if ( enablePainting ) QTable::viewportPaintEvent( e ); diff --git a/core/pim/addressbook/abview.cpp b/core/pim/addressbook/abview.cpp index 93e57ca..7da0992 100644 --- a/core/pim/addressbook/abview.cpp +++ b/core/pim/addressbook/abview.cpp @@ -96,5 +96,5 @@ AbView::~AbView() void AbView::setView( Views view ) { - qWarning("AbView::setView( Views view )"); + // qWarning("AbView::setView( Views view )"); m_curr_View = view; load(); @@ -103,5 +103,5 @@ void AbView::setView( Views view ) void AbView::addEntry( const OContact &newContact ) { - qWarning("abview:AddContact"); + // qWarning("abview:AddContact"); m_contactdb->add ( newContact ); load(); @@ -110,5 +110,5 @@ void AbView::addEntry( const OContact &newContact ) void AbView::removeEntry( const int UID ) { - qWarning("abview:RemoveContact"); + // qWarning("abview:RemoveContact"); m_contactdb->remove( UID ); load(); @@ -117,5 +117,5 @@ void AbView::removeEntry( const int UID ) void AbView::replaceEntry( const OContact &contact ) { - qWarning("abview:ReplaceContact"); + // qWarning("abview:ReplaceContact"); m_contactdb->replace( contact ); load(); @@ -141,5 +141,5 @@ OContact AbView::currentEntry() bool AbView::save() { - qWarning("abView:Save data"); + // qWarning("abView:Save data"); return m_contactdb->save(); @@ -148,5 +148,5 @@ bool AbView::save() void AbView::load() { - qWarning("abView:Load data"); + // qWarning("abView:Load data"); // Letter Search is stopped at this place @@ -161,5 +161,5 @@ void AbView::load() } - qWarning ("Number of contacts: %d", m_list.count()); + // qWarning ("Number of contacts: %d", m_list.count()); updateView( true ); @@ -169,5 +169,5 @@ void AbView::load() void AbView::reload() { - qWarning( "void AbView::reload()" ); + // qWarning( "void AbView::reload()" ); m_contactdb->reload(); @@ -182,5 +182,5 @@ void AbView::clear() void AbView::setShowByCategory( const QString& cat ) { - qWarning("AbView::setShowCategory( const QString& cat )"); + // qWarning("AbView::setShowCategory( const QString& cat )"); int intCat = 0; @@ -194,5 +194,5 @@ void AbView::setShowByCategory( const QString& cat ) // Just do anything if we really change the category if ( intCat != m_curr_category ){ - qWarning ("Categories: Selected %s.. Number: %d", cat.latin1(), m_curr_category); + // qWarning ("Categories: Selected %s.. Number: %d", cat.latin1(), m_curr_category); m_curr_category = intCat; @@ -206,7 +206,7 @@ void AbView::setShowByCategory( const QString& cat ) void AbView::setShowToView( Views view ) { - qWarning("void AbView::setShowToView( View %d )", view); + // qWarning("void AbView::setShowToView( View %d )", view); - qWarning ("Change the View (Category is: %d)", m_curr_category); + // qWarning ("Change the View (Category is: %d)", m_curr_category); if ( m_curr_View != view ){ @@ -221,5 +221,5 @@ void AbView::setShowToView( Views view ) void AbView::setShowByLetter( char c ) { - qWarning("void AbView::setShowByLetter( %c )", c ); + // qWarning("void AbView::setShowByLetter( %c )", c ); OContact query; if ( c == 0 ){ @@ -255,5 +255,5 @@ QString AbView::showCategory() const void AbView::showPersonal( bool personal ) { - qWarning ("void AbView::showPersonal( %d )", personal); + // qWarning ("void AbView::showPersonal( %d )", personal); if ( personal ){ @@ -304,5 +304,5 @@ void AbView::slotDoFind( const QString &str, bool caseSensitive, bool useRegExp, bool , QString cat ) { - qWarning( "void AbView::slotDoFind" ); + // qWarning( "void AbView::slotDoFind" ); // We reloading the data: Deselect Letterpicker @@ -318,5 +318,5 @@ void AbView::slotDoFind( const QString &str, bool caseSensitive, bool useRegExp, } - qWarning ("Find in Category %d", category); + // qWarning ("Find in Category %d", category); QRegExp r( str ); @@ -327,5 +327,5 @@ void AbView::slotDoFind( const QString &str, bool caseSensitive, bool useRegExp, m_list = m_contactdb->matchRegexp( r ); - qWarning( "found: %d", m_list.count() ); + // qWarning( "found: %d", m_list.count() ); if ( m_list.count() == 0 ){ emit signalNotFound(); @@ -350,5 +350,5 @@ void AbView::offSearch() void AbView::slotSwitch(){ - qWarning("AbView::slotSwitch()"); + // qWarning("AbView::slotSwitch()"); m_prev_View = m_curr_View; @@ -378,5 +378,5 @@ void AbView::clearForCategory() for ( it = allList.begin(); it != allList.end(); ++it ){ if ( !contactCompare( *it, m_curr_category ) ){ - qWarning("Removing %d", (*it).uid()); + // qWarning("Removing %d", (*it).uid()); m_list.remove( (*it).uid() ); } @@ -388,5 +388,5 @@ void AbView::clearForCategory() bool AbView::contactCompare( const OContact &cnt, int category ) { - qWarning ("bool AbView::contactCompare( const OContact &cnt, %d )", category); + // qWarning ("bool AbView::contactCompare( const OContact &cnt, %d )", category); bool returnMe; @@ -394,5 +394,5 @@ bool AbView::contactCompare( const OContact &cnt, int category ) cats = cnt.categories(); - qWarning ("Number of categories: %d", cats.count() ); + // qWarning ("Number of categories: %d", cats.count() ); returnMe = false; @@ -403,5 +403,5 @@ bool AbView::contactCompare( const OContact &cnt, int category ) int i; for ( i = 0; i < int(cats.count()); i++ ) { - qWarning("Comparing %d with %d",cats[i],category ); + // qWarning("Comparing %d with %d",cats[i],category ); if ( cats[i] == category ) { returnMe = true; @@ -410,5 +410,5 @@ bool AbView::contactCompare( const OContact &cnt, int category ) } } - qWarning ("Return: %d", returnMe); + // qWarning ("Return: %d", returnMe); return returnMe; } @@ -423,5 +423,5 @@ void AbView::updateListinViews() void AbView::updateView( bool newdata ) { - qWarning("AbView::updateView()"); + // qWarning("AbView::updateView()"); if ( m_viewStack -> visibleWidget() ){ diff --git a/core/pim/addressbook/contacteditor.cpp b/core/pim/addressbook/contacteditor.cpp index d14ac51..d830ad3 100644 --- a/core/pim/addressbook/contacteditor.cpp +++ b/core/pim/addressbook/contacteditor.cpp @@ -68,12 +68,18 @@ ContactEditor::ContactEditor( const OContact &entry, WFlags fl ) : QDialog( parent, name, TRUE, fl ), - m_personalView ( false ) - + defaultEmailChooserPosition( -1 ), + m_personalView ( false ), + cmbDefaultEmail( 0 ), + initializing ( false ) { + initializing = true; + init(); setEntry( entry ); - cmbDefaultEmail = 0; - defaultEmailChooserPosition = -1; +// cmbDefaultEmail = 0; +// defaultEmailChooserPosition = -1; + + initializing = false; } @@ -82,4 +88,5 @@ ContactEditor::~ContactEditor() { void ContactEditor::init() { + qWarning("init() START"); useFullName = true; @@ -601,7 +608,7 @@ void ContactEditor::init() { cmbChooserField4->insertStringList( trlChooserNames ); - cmbChooserField1->setCurrentItem( 0 ); - cmbChooserField2->setCurrentItem( 1 ); - cmbChooserField3->setCurrentItem( 2 ); + cmbChooserField1->setCurrentItem( 0 ); + cmbChooserField2->setCurrentItem( 1 ); + cmbChooserField3->setCurrentItem( 2 ); connect( btnFullName, SIGNAL(clicked()), this, SLOT(slotName()) ); @@ -643,4 +650,6 @@ void ContactEditor::init() { setPersonalView ( m_personalView ); + + qWarning("init() END"); } @@ -693,13 +702,16 @@ void ContactEditor::populateDefaultEmailCmb(){ bool ContactEditor::cmbChooserChange( int index, QLineEdit *inputWid, int widgetPos ) { QString type = slChooserNames[index]; - qWarning("ContactEditor::cmbChooserChange -> Type: %s", type.latin1() ); + qWarning("ContactEditor::cmbChooserChange -> Type: %s, WidgetPos: %d", type.latin1(), widgetPos ); + + if ( !initializing ) + contactfields.setFieldOrder( widgetPos-1, index ); // Create and connect combobox for selecting the default email if ( type == "Default Email"){ - qWarning("Choosing default-email "); + qWarning("Choosing default-email (defaultEmailChooserPosition= %d) ", defaultEmailChooserPosition); // More than one defaul-email chooser is not allowed ! if ( ( defaultEmailChooserPosition != -1 ) && - defaultEmailChooserPosition != widgetPos ){ + defaultEmailChooserPosition != widgetPos && !initializing){ chooserError( widgetPos ); return true; @@ -711,5 +723,11 @@ bool ContactEditor::cmbChooserChange( int index, QLineEdit *inputWid, int widget } cmbDefaultEmail = new QComboBox(inputWid->parentWidget()); - cmbDefaultEmail->setGeometry(inputWid->frameGeometry()); + cmbDefaultEmail->setGeometry(inputWid->frameGeometry()); /* :SX */ + + QRect rect = inputWid->frameGeometry(); + qWarning("Geometrie: X=%d, Y=%d, Left=%d, Top=%d, Right=%d, Bottom=%d", + rect.x(), rect.y(), rect.left(), rect.top(), rect.right(), rect.bottom()); + QPoint pnt = inputWid->pos(); + qWarning("Position : X=%d, Y=%d", pnt.x(), pnt.y() ); connect( cmbDefaultEmail,SIGNAL( activated(int) ), @@ -945,4 +963,9 @@ void ContactEditor::slotCmbChooser4Change( int index ) { void ContactEditor::slotAddressTypeChange( int index ) { + + if ( !initializing ) + contactfields.setFieldOrder( 4, index ); + + if ( index == 0 ) { @@ -1277,10 +1300,10 @@ void ContactEditor::cleanupFields() { void ContactEditor::setEntry( const OContact &entry ) { + initializing = true; + cleanupFields(); ent = entry; - - emails = QStringList(ent.emailList()); defaultEmail = ent.defaultEmail(); @@ -1456,12 +1479,30 @@ void ContactEditor::setEntry( const OContact &entry ) { txtNote->setText( ent.notes() ); + slotAddressTypeChange( cmbAddress->currentItem() ); + + // Calling "show()" to arrange all widgets. Otherwise we will get + // a wrong position of the textfields and are unable to put our + // default-email combo over it.. This is very ugly ! + // Does anybody has a better solution ? + // Basically we should rethink the strategy to hide + // a textfield with overwriting.. (se) + show(); + + // Get combo-settings from contact and set preset.. + contactfields.loadFromRecord( ent ); + cmbChooserField1->setCurrentItem( contactfields.getFieldOrder(0, 0) ); + cmbChooserField2->setCurrentItem( contactfields.getFieldOrder(1, 1) ); + cmbChooserField3->setCurrentItem( contactfields.getFieldOrder(2, 2) ); + cmbChooserField4->setCurrentItem( contactfields.getFieldOrder(3, 5) ); + cmbAddress->setCurrentItem( contactfields.getFieldOrder(4, 1) ); slotCmbChooser1Change( cmbChooserField1->currentItem() ); slotCmbChooser2Change( cmbChooserField2->currentItem() ); slotCmbChooser3Change( cmbChooserField3->currentItem() ); - + slotCmbChooser4Change( cmbChooserField4->currentItem() ); slotAddressTypeChange( cmbAddress->currentItem() ); - // loadFields(); :SX updateDatePicker(); + + initializing = false; } void ContactEditor::updateDatePicker() @@ -1484,5 +1525,7 @@ void ContactEditor::updateDatePicker() void ContactEditor::saveEntry() { - + // Store current combo into contact + contactfields.saveToRecord( ent ); + if ( useFullName ) { txtFirstName->setText( parseName( txtFullName->text(), NAME_F ) ); diff --git a/core/pim/addressbook/contacteditor.h b/core/pim/addressbook/contacteditor.h index 4fa48d1..95f9f2d 100644 --- a/core/pim/addressbook/contacteditor.h +++ b/core/pim/addressbook/contacteditor.h @@ -31,4 +31,6 @@ #include <qstringlist.h> +#include "ocontactfields.h" + const int NAME_LF = 0; const int NAME_LFM = 1; @@ -109,4 +111,5 @@ class ContactEditor : public QDialog { void chooserChange( const QString&, int , QLineEdit*, int ); bool cmbChooserChange( int , QLineEdit*, int ); + OContactFields contactfields; bool useFullName; @@ -177,4 +180,6 @@ class ContactEditor : public QDialog { DateBookMonth* anniversaryPicker; QToolButton* anniversaryButton; + + bool initializing; }; diff --git a/core/pim/addressbook/ocontactfields.cpp b/core/pim/addressbook/ocontactfields.cpp index 0da6a4f..75a7641 100644 --- a/core/pim/addressbook/ocontactfields.cpp +++ b/core/pim/addressbook/ocontactfields.cpp @@ -7,4 +7,6 @@ // We should use our own enum in the future .. #include <qpe/recordfields.h> +#include <qpe/config.h> +#include <opie/ocontact.h> /*! @@ -200,5 +202,5 @@ QMap<int, QString> OContactFields::idToTrFields() { QMap<int, QString> ret_map; - + ret_map.insert( Qtopia::Title, QObject::tr( "Name Title") ); ret_map.insert( Qtopia::FirstName, QObject::tr( "First Name" ) ); @@ -255,5 +257,5 @@ QMap<int, QString> OContactFields::idToTrFields() // other ret_map.insert( Qtopia::Notes, QObject::tr( "Notes" ) ); - + return ret_map; @@ -269,6 +271,99 @@ QMap<QString, int> OContactFields::trFieldsToId() for( it = idtostr.begin(); it != idtostr.end(); ++it ) ret_map.insert( *it, it.key() ); - + return ret_map; } + +OContactFields::OContactFields(): + fieldOrder( DEFAULT_FIELD_ORDER ), + changedFieldOrder( false ) +{ + // Get the global field order from the config file and + // use it as a start pattern + Config cfg ( "AddressBook" ); + cfg.setGroup( "ContactFieldOrder" ); + globalFieldOrder = cfg.readEntry( "General", DEFAULT_FIELD_ORDER ); +} + +OContactFields::~OContactFields(){ + + // We will store the fieldorder into the config file + // to reuse it for the future.. + if ( changedFieldOrder ){ + Config cfg ( "AddressBook" ); + cfg.setGroup( "ContactFieldOrder" ); + cfg.writeEntry( "General", globalFieldOrder ); + } +} + + + +void OContactFields::saveToRecord( OContact &cnt ){ + + qDebug("ocontactfields saveToRecord: >%s<",fieldOrder.latin1()); + + // Store fieldorder into this contact. + cnt.setCustomField( CONTACT_FIELD_ORDER_NAME, fieldOrder ); + + globalFieldOrder = fieldOrder; + changedFieldOrder = true; + +} + +void OContactFields::loadFromRecord( const OContact &cnt ){ + qDebug("ocontactfields loadFromRecord"); + qDebug("loading >%s<",cnt.fullName().latin1()); + + // Get fieldorder for this contact. If none is defined, + // we will use the global one from the config file.. + + fieldOrder = cnt.customField( CONTACT_FIELD_ORDER_NAME ); + + qDebug("fieldOrder from contact>%s<",fieldOrder.latin1()); + + if (fieldOrder.isEmpty()){ + fieldOrder = globalFieldOrder; + } + + + qDebug("effective fieldOrder in loadFromRecord >%s<",fieldOrder.latin1()); +} + +void OContactFields::setFieldOrder( int num, int index ){ + qDebug("qcontactfields setfieldorder pos %i -> %i",num,index); + + fieldOrder[num] = QString::number( index )[0]; + + // We will store this new fieldorder globally to + // remember it for contacts which have none + globalFieldOrder = fieldOrder; + changedFieldOrder = true; + + qDebug("fieldOrder >%s<",fieldOrder.latin1()); +} + +int OContactFields::getFieldOrder( int num, int defIndex ){ + qDebug("ocontactfields getFieldOrder"); + qDebug("fieldOrder >%s<",fieldOrder.latin1()); + + // Get index of combo as char.. + QChar poschar = fieldOrder[num]; + + bool ok; + int ret = 0; + // Convert char to number.. + if ( !( poschar == QChar::null ) ) + ret = QString( poschar ).toInt(&ok, 10); + else + ok = false; + + // Return default value if index for + // num was not set or if anything else happened.. + if ( !ok ) ret = defIndex; + + qDebug("returning >%i<",ret); + + return ret; + +} diff --git a/core/pim/addressbook/ocontactfields.h b/core/pim/addressbook/ocontactfields.h index 796bc0a..bf3a7f5 100644 --- a/core/pim/addressbook/ocontactfields.h +++ b/core/pim/addressbook/ocontactfields.h @@ -6,8 +6,42 @@ class QStringList; #include <qmap.h> #include <qstring.h> +#include <opie/ocontact.h> +#define CONTACT_FIELD_ORDER_NAME "opie-contactfield-order" +#define DEFAULT_FIELD_ORDER "__________" + class OContactFields{ public: + OContactFields(); + ~OContactFields(); + /** Set the index for combo boxes. + * Sets the <b>index</b> of combo <b>num</b>. + * @param num selects the number of the combo + * @param index sets the index in the combo + */ + void setFieldOrder( int num, int index ); + + /** Get the index for combo boxes. + * Returns the index of combo <b>num</b> or defindex + * if none was defined.. + * @param num Selects the number of the combo + * @param defIndex will be returned if none was defined (either + * globally in the config file, nor by the contact which was used + * by loadFromRecord() ) + */ + int getFieldOrder( int num, int defIndex); + + /** Store fieldorder to contact. */ + void saveToRecord( OContact& ); + /** Get Fieldorder from contact. */ + void loadFromRecord( const OContact& ); + + private: + QString fieldOrder; + QString globalFieldOrder; + bool changedFieldOrder; + + public: static QStringList trphonefields( bool sorted = true ); static QStringList untrphonefields( bool sorted = true ); diff --git a/core/pim/addressbook/version.h b/core/pim/addressbook/version.h index b740326..e716fe4 100644 --- a/core/pim/addressbook/version.h +++ b/core/pim/addressbook/version.h @@ -3,6 +3,6 @@ #define MAINVERSION "0" -#define SUBVERSION "1" -#define PATCHVERSION "1" +#define SUBVERSION "2" +#define PATCHVERSION "0" #define APPNAME "OPIE_ADDRESSBOOK" |