diff options
author | Timothy Pearson <kb9vqf@pearsoncomputing.net> | 2013-02-15 21:57:54 -0600 |
---|---|---|
committer | Timothy Pearson <kb9vqf@pearsoncomputing.net> | 2013-02-15 21:57:54 -0600 |
commit | ed99a30644c19b0a3cf0d2147243532df4daa16b (patch) | |
tree | 7f3f2850e59824fdf100a642367a82b1e7f0204f /kabc/addresseelist.cpp | |
parent | e5f2d46e9caf6942f365f1b454087dda71a340f7 (diff) | |
download | tdelibs-ed99a30644c19b0a3cf0d2147243532df4daa16b.tar.gz tdelibs-ed99a30644c19b0a3cf0d2147243532df4daa16b.zip |
Rename additional header files to avoid conflicts with KDE4
Diffstat (limited to 'kabc/addresseelist.cpp')
-rw-r--r-- | kabc/addresseelist.cpp | 256 |
1 files changed, 0 insertions, 256 deletions
diff --git a/kabc/addresseelist.cpp b/kabc/addresseelist.cpp deleted file mode 100644 index 47324001c..000000000 --- a/kabc/addresseelist.cpp +++ /dev/null @@ -1,256 +0,0 @@ -/* - This file is part of libkabc. - Copyright (c) 2002 Jost Schenck <jost@schenck.de> - 2003 Tobias Koenig <tokoe@kde.org> - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public License - along with this library; see the file COPYING.LIB. If not, write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. -*/ - -#include <kdebug.h> - -#include "addresseelist.h" - -#include "field.h" -#include "sortmode.h" - -using namespace KABC; - -// -// -// Traits -// -// - -bool SortingTraits::Uid::eq( const Addressee &a1, const Addressee &a2 ) -{ - // locale awareness doesn't make sense sorting ids - return ( TQString::compare( a1.uid(), a2.uid() ) == 0 ); -} - -bool SortingTraits::Uid::lt( const Addressee &a1, const Addressee &a2 ) -{ - // locale awareness doesn't make sense sorting ids - return ( TQString::compare( a1.uid(), a2.uid() ) < 0 ); -} - -bool SortingTraits::Name::eq( const Addressee &a1, const Addressee &a2 ) -{ - return ( TQString::localeAwareCompare( a1.name(), a2.name() ) == 0 ); -} - -bool SortingTraits::Name::lt( const Addressee &a1, const Addressee &a2 ) -{ - return ( TQString::localeAwareCompare( a1.name(), a2.name() ) < 0 ); -} - -bool SortingTraits::FormattedName::eq( const Addressee &a1, const Addressee &a2 ) -{ - return ( TQString::localeAwareCompare( a1.formattedName(), a2.formattedName() ) == 0 ); -} - -bool SortingTraits::FormattedName::lt( const Addressee &a1, const Addressee &a2 ) -{ - return ( TQString::localeAwareCompare( a1.formattedName(), a2.formattedName() ) < 0 ); -} - -bool SortingTraits::FamilyName::eq( const Addressee &a1, const Addressee &a2 ) -{ - return ( TQString::localeAwareCompare( a1.familyName(), a2.familyName() ) == 0 - && TQString::localeAwareCompare( a1.givenName(), a2.givenName() ) == 0 ); -} - -bool SortingTraits::FamilyName::lt( const Addressee &a1, const Addressee &a2 ) -{ - int family = TQString::localeAwareCompare( a1.familyName(), a2.familyName() ); - if ( 0 == family ) { - return ( TQString::localeAwareCompare( a1.givenName(), a2.givenName() ) < 0 ); - } else { - return family < 0; - } -} - -bool SortingTraits::GivenName::eq( const Addressee &a1, const Addressee &a2 ) -{ - return ( TQString::localeAwareCompare( a1.givenName(), a2.givenName() ) == 0 - && TQString::localeAwareCompare( a1.familyName(), a2.familyName() ) == 0 ); -} - -bool SortingTraits::GivenName::lt( const Addressee &a1, const Addressee &a2 ) -{ - int given = TQString::localeAwareCompare( a1.givenName(), a2.givenName() ); - if ( 0 == given ) { - return ( TQString::localeAwareCompare( a1.familyName(), a2.familyName() ) < 0 ); - } else { - return given < 0; - } -} - -// -// -// AddresseeList -// -// - -static Field *sActiveField=0; - -AddresseeList::AddresseeList() - : TQValueList<Addressee>() -{ - mReverseSorting = false; - mActiveSortingCriterion = FormattedName; -} - -AddresseeList::~AddresseeList() -{ -} - -AddresseeList::AddresseeList( const AddresseeList &l ) - : TQValueList<Addressee>( l ) -{ - mReverseSorting = l.reverseSorting(); - mActiveSortingCriterion = l.sortingCriterion(); -} - -AddresseeList::AddresseeList( const TQValueList<Addressee> &l ) - : TQValueList<Addressee>( l ) -{ - mReverseSorting = false; -} - -void AddresseeList::dump() const -{ - kdDebug(5700) << "AddresseeList {" << endl; - kdDebug(5700) << "reverse order: " << ( mReverseSorting ? "true" : "false" ) << endl; - - TQString crit; - if ( Uid == mActiveSortingCriterion ) { - crit = "Uid"; - } else if ( Name == mActiveSortingCriterion ) { - crit = "Name"; - } else if ( FormattedName == mActiveSortingCriterion ) { - crit = "FormattedName"; - } else if ( FamilyName == mActiveSortingCriterion ) { - crit = "FamilyName"; - } else if ( GivenName == mActiveSortingCriterion ) { - crit = "GivenName"; - } else { - crit = "unknown -- update dump method"; - } - - kdDebug(5700) << "sorting criterion: " << crit << endl; - - for ( const_iterator it = begin(); it != end(); ++it ) { - (*it).dump(); - } - - kdDebug(5700) << "}" << endl; -} - -void AddresseeList::sortBy( SortingCriterion c ) -{ - mActiveSortingCriterion = c; - if ( Uid == c ) { - sortByTrait<SortingTraits::Uid>(); - } else if ( Name == c ) { - sortByTrait<SortingTraits::Name>(); - } else if ( FormattedName == c ) { - sortByTrait<SortingTraits::FormattedName>(); - } else if ( FamilyName == c ) { - sortByTrait<SortingTraits::FamilyName>(); - } else if ( GivenName==c ) { - sortByTrait<SortingTraits::GivenName>(); - } else { - kdError(5700) << "AddresseeList sorting criterion passed for which a trait is not known. No sorting done." << endl; - } -} - -void AddresseeList::sort() -{ - sortBy( mActiveSortingCriterion ); -} - -template<class Trait> -void AddresseeList::sortByTrait() -{ - // FIXME: better sorting algorithm, bubblesort is not acceptable for larger lists. - // - // for i := 1 to n - 1 - // do for j := 1 to n - i - // do if A[j] > A[j+1] - // then temp := A[j] - // A[j] := A[j + 1] - // A[j + 1 ] := temp - - iterator i1 = begin(); - iterator endIt = end(); - --endIt; - if ( i1 == endIt ) // don't need sorting - return; - - iterator i2 = endIt; - while( i1 != endIt ) { - iterator j1 = begin(); - iterator j2 = j1; - ++j2; - while( j1 != i2 ) { - if ( !mReverseSorting && Trait::lt( *j2, *j1 ) - || mReverseSorting && Trait::lt( *j1, *j2 ) ) { - tqSwap( *j1, *j2 ); - } - ++j1; - ++j2; - } - ++i1; - --i2; - } -} - -void AddresseeList::sortByField( Field *field ) -{ - if ( !field ) { - kdWarning(5700) << "sortByField called with no active sort field" << endl; - return; - } - - sActiveField = field; - - if ( count() == 0 ) - return; - - KABC::FieldSortMode *mode = new KABC::FieldSortMode( sActiveField, !mReverseSorting ); - - KABC::Addressee::setSortMode( mode ); - qHeapSort( *this ); - KABC::Addressee::setSortMode( 0 ); - - delete mode; -} - -void AddresseeList::sortByMode( SortMode *mode ) -{ - if ( count() == 0 ) - return; - - KABC::Addressee::setSortMode( mode ); - qHeapSort( *this ); - KABC::Addressee::setSortMode( 0 ); -} - -Field* -AddresseeList::sortingField() const -{ - return sActiveField; -} |