Diffstat (limited to 'libopie/pim/ocontactaccessbackend_xml.h') (more/less context) (ignore whitespace changes)
-rw-r--r-- | libopie/pim/ocontactaccessbackend_xml.h | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/libopie/pim/ocontactaccessbackend_xml.h b/libopie/pim/ocontactaccessbackend_xml.h index f7e8207..8b95102 100644 --- a/libopie/pim/ocontactaccessbackend_xml.h +++ b/libopie/pim/ocontactaccessbackend_xml.h @@ -18,4 +18,7 @@ * History: * $Log$ + * Revision 1.6 2002/11/13 14:14:51 eilers + * Added sorted for Contacts.. + * * Revision 1.5 2002/11/01 15:10:42 eilers * Added regExp-search in database for all fields in a contact. @@ -48,4 +51,5 @@ #include <qregexp.h> #include <qarray.h> +#include <qmap.h> #include <qpe/global.h> @@ -302,4 +306,32 @@ class OContactAccessBackend_XML : public OContactAccessBackend { } + // Currently only asc implemented.. + QArray<int> sorted( bool asc, int , int , int ) + { + QMap<QString, int> nameToUid; + QStringList names; + QArray<int> m_currentQuery( m_contactList.count() ); + + // First fill map and StringList with all Names ( better LastNames ? ) + // Afterwards sort namelist and use map to fill array to return.. + QValueListConstIterator<OContact> it; + for( it = m_contactList.begin(); it != m_contactList.end(); ++it ){ + names.append( (*it).lastName() ); + nameToUid.insert( (*it).lastName(), (*it).uid() ); + } + names.sort(); + + int i = 0; + if ( asc ){ + for ( QStringList::Iterator it = names.begin(); it != names.end(); ++it ) + m_currentQuery[i++] = nameToUid[ (*it) ]; + }else{ + for ( QStringList::Iterator it = names.end(); it != names.begin(); --it ) + m_currentQuery[i++] = nameToUid[ (*it) ]; + } + + return m_currentQuery; + + } bool add ( const OContact &newcontact ) { |