summaryrefslogtreecommitdiffabout
path: root/kaddressbook/xxportselectdialog.cpp
Side-by-side diff
Diffstat (limited to 'kaddressbook/xxportselectdialog.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--kaddressbook/xxportselectdialog.cpp48
1 files changed, 44 insertions, 4 deletions
diff --git a/kaddressbook/xxportselectdialog.cpp b/kaddressbook/xxportselectdialog.cpp
index 6282453..e7bc8c0 100644
--- a/kaddressbook/xxportselectdialog.cpp
+++ b/kaddressbook/xxportselectdialog.cpp
@@ -33,49 +33,49 @@ $Id$
#include <kapplication.h>
#include <kcombobox.h>
#include <klocale.h>
#include <kglobal.h>
#include <qapplication.h>
#include <qbuttongroup.h>
#include <qcombobox.h>
#include <qheader.h>
#include <qlabel.h>
#include <qlayout.h>
#include <qlistview.h>
#include <qpushbutton.h>
#include <qradiobutton.h>
#include <qstringlist.h>
#include <qwhatsthis.h>
#include "kabcore.h"
#include "kabprefs.h"
#include "xxportselectdialog.h"
XXPortSelectDialog::XXPortSelectDialog( KABCore *core, bool sort,
QWidget* parent, const char* name )
- : KDialogBase( Plain, i18n( "Choose which contacts to select" ), Help | Ok | Cancel,
+ : KDialogBase( Plain, i18n( "Choose contact selection" ), Help | Ok | Cancel,
Ok, parent, name, true, true ), mCore( core ),
mUseSorting( sort )
{
initGUI();
connect( mFiltersCombo, SIGNAL( activated( int ) ),
SLOT( filterChanged( int ) ) );
connect( mCategoriesView, SIGNAL( clicked( QListViewItem* ) ),
SLOT( categoryClicked( QListViewItem* ) ) );
// setup filters
#ifndef KAB_EMBEDDED
mFilters = Filter::restore( kapp->config(), "Filter" );
Filter::List::iterator filterIt;
#else //KAB_EMBEDDED
mFilters = Filter::restore( KGlobal::config(), "Filter" );
Filter::List::Iterator filterIt;
#endif //KAB_EMBEDDED
QStringList filters;
for ( filterIt = mFilters.begin(); filterIt != mFilters.end(); ++filterIt )
filters.append( (*filterIt).name() );
mFiltersCombo->insertStringList( filters );
mUseFilters->setEnabled( filters.count() > 0 );
@@ -88,55 +88,95 @@ XXPortSelectDialog::XXPortSelectDialog( KABCore *core, bool sort,
mUseCategories->setEnabled( categories.count() > 0 );
int count = mCore->selectedUIDs().count();
mUseSelection->setEnabled( count != 0 );
mUseSelection->setChecked( count > 1 );
mSortTypeCombo->insertItem( i18n( "Ascending" ) );
mSortTypeCombo->insertItem( i18n( "Descending" ) );
mFields = mCore->addressBook()->fields( KABC::Field::All );
KABC::Field::List::Iterator fieldIt;
for ( fieldIt = mFields.begin(); fieldIt != mFields.end(); ++fieldIt )
mFieldCombo->insertItem( (*fieldIt)->label() );
}
QStringList XXPortSelectDialog::uids()
{
QStringList uidlist;
KABC::AddresseeList list = contacts();
KABC::Addressee::List::Iterator it;
for ( it = list.begin(); it != list.end(); ++it )
uidlist.append((*it).uid());
return uidlist;
}
+void XXPortSelectDialog::tagSelected()
+{
+ if ( mUseSelection->isChecked() ) {
+
+ QStringList selection = mCore->selectedUIDs();
+ KABC::AddressBook::Iterator it;
+ for ( it = mCore->addressBook()->begin(); it != mCore->addressBook()->end(); ++it ) {
+ if ( selection.findIndex((*it).uid()) >= 0 )
+ (*it).setTagged( true );
+ }
+ } else if ( mUseFilters->isChecked() ) {
+ // find contacts that can pass selected filter
+ Filter::List::Iterator filterIt;
+ for ( filterIt = mFilters.begin(); filterIt != mFilters.end(); ++filterIt )
+ if ( (*filterIt).name() == mFiltersCombo->currentText() )
+ break;
+ KABC::AddressBook::Iterator it;
+ for ( it = mCore->addressBook()->begin(); it != mCore->addressBook()->end(); ++it ) {
+ if ( (*filterIt).filterAddressee( *it ) )
+ (*it).setTagged( true );
+ }
+ } else if ( mUseCategories->isChecked() ) {
+ QStringList categorieList = categories();
+ KABC::AddressBook::Iterator it;
+ for ( it = mCore->addressBook()->begin(); it != mCore->addressBook()->end(); ++it ) {
+ QStringList tmp( (*it).categories() );
+ QStringList::Iterator tmpIt;
+ for ( tmpIt = tmp.begin(); tmpIt != tmp.end(); ++tmpIt )
+ if ( categorieList.contains( *tmpIt ) ) {
+ (*it).setTagged( true );
+ break;
+ }
+ }
+ } else {
+ // create a string list of all entries:
+ KABC::AddressBook::Iterator it;
+ for ( it = mCore->addressBook()->begin(); it != mCore->addressBook()->end(); ++it )
+ (*it).setTagged( true );
+ }
+}
KABC::AddresseeList XXPortSelectDialog::contacts()
{
- QStringList selection = mCore->selectedUIDs();
KABC::AddresseeList list;
if ( mUseSelection->isChecked() ) {
QStringList::Iterator it;
+ QStringList selection = mCore->selectedUIDs();
for ( it = selection.begin(); it != selection.end(); ++it ) {
KABC::Addressee addr = mCore->addressBook()->findByUid( *it );
if ( !addr.isEmpty() )
list.append( addr );
}
} else if ( mUseFilters->isChecked() ) {
// find contacts that can pass selected filter
Filter::List::Iterator filterIt;
for ( filterIt = mFilters.begin(); filterIt != mFilters.end(); ++filterIt )
if ( (*filterIt).name() == mFiltersCombo->currentText() )
break;
KABC::AddressBook::Iterator it;
for ( it = mCore->addressBook()->begin(); it != mCore->addressBook()->end(); ++it ) {
if ( (*filterIt).filterAddressee( *it ) )
list.append( *it );
}
} else if ( mUseCategories->isChecked() ) {
QStringList categorieList = categories();
KABC::AddressBook::Iterator it;
for ( it = mCore->addressBook()->begin(); it != mCore->addressBook()->end(); ++it ) {
QStringList tmp( (*it).categories() );
QStringList::Iterator tmpIt;
for ( tmpIt = tmp.begin(); tmpIt != tmp.end(); ++tmpIt )
@@ -225,50 +265,50 @@ void XXPortSelectDialog::initGUI()
QWhatsThis::add( mUseSelection, i18n( "Only contacts selected in KAddressBook.\n"
"This option is disabled if no contacts are selected." ) );
groupLayout->addWidget( mUseSelection, 1, 0 );
mUseFilters = new QRadioButton( i18n( "By matching &filter" ), mButtonGroup );
QWhatsThis::add( mUseFilters, i18n( "Only contacts matching the selected filter.\n"
"This option is disabled if you haven't defined any filters" ) );
groupLayout->addWidget( mUseFilters, 2, 0 );
mUseCategories = new QRadioButton( i18n( "By Cate&gories" ), mButtonGroup );
QWhatsThis::add( mUseCategories, i18n( "Only contacts who are members of a category that is checked on the list to the left.\n"
"This option is disabled if you have no categories." ) );
groupLayout->addWidget( mUseCategories, 3, 0 );
mFiltersCombo = new QComboBox( false, mButtonGroup );
QWhatsThis::add( mFiltersCombo, i18n( "Select a filter to decide which contacts to select." ) );
groupLayout->addWidget( mFiltersCombo, 2, 1 );
mCategoriesView = new QListView( mButtonGroup );
mCategoriesView->addColumn( "" );
mCategoriesView->header()->hide();
QWhatsThis::add( mCategoriesView, i18n( "Check the categories whose members you want to select." ) );
groupLayout->addWidget( mCategoriesView, 3, 1 );
- // if (QApplication::desktop()->height() == 480 )
- // mCategoriesView->setMaximumHeight( 240 );
+ if (QApplication::desktop()->height() == 480 )
+ mCategoriesView->setMaximumHeight( 240 );
topLayout->addWidget( mButtonGroup );
QButtonGroup *sortingGroup = new QButtonGroup( i18n( "Sorting" ), page );
sortingGroup->setColumnLayout( 0, Qt::Vertical );
QGridLayout *sortLayout = new QGridLayout( sortingGroup->layout(), 2, 2,
KDialog::spacingHint() );
sortLayout->setAlignment( Qt::AlignTop );
label = new QLabel( i18n( "Criterion:" ), sortingGroup );
sortLayout->addWidget( label, 0, 0 );
#ifndef KAB_EMBEDDED
mFieldCombo = new KComboBox( false, sortingGroup );
#else //KAB_EMBEDDED
//US Combobox is not editable anyway
mFieldCombo = new KComboBox( sortingGroup );
#endif //KAB_EMBEDDED
sortLayout->addWidget( mFieldCombo, 0, 1 );
label = new QLabel( i18n( "Order:" ), sortingGroup );
sortLayout->addWidget( label, 1, 0 );
#ifndef KAB_EMBEDDED
mSortTypeCombo = new KComboBox( false, sortingGroup );