-rw-r--r-- | kaddressbook/imagewidget.cpp | 25 | ||||
-rw-r--r-- | kaddressbook/kabcore.cpp | 28 | ||||
-rw-r--r-- | kaddressbook/xxportselectdialog.cpp | 48 | ||||
-rw-r--r-- | kaddressbook/xxportselectdialog.h | 1 |
4 files changed, 75 insertions, 27 deletions
diff --git a/kaddressbook/imagewidget.cpp b/kaddressbook/imagewidget.cpp index 9ee4eac..1e9743c 100644 --- a/kaddressbook/imagewidget.cpp +++ b/kaddressbook/imagewidget.cpp @@ -44,84 +44,83 @@ #include <qpushbutton.h> #include <qapplication.h> #include "imagewidget.h" ImageWidget::ImageWidget( QWidget *parent, const char *name ) : QWidget( parent, name ) { QGridLayout *topLayout = new QGridLayout( this, 2, 1, KDialog::marginHint(), KDialog::spacingHint() ); QGroupBox *photoBox = new QGroupBox( 0, Qt::Vertical, i18n( "Photo" ), this ); - QGridLayout *boxLayout = new QGridLayout( photoBox->layout(), 4, 2, + QGridLayout *boxLayout = new QGridLayout( photoBox->layout(), 3, 2, KDialog::spacingHint() ); boxLayout->setRowStretch( 2, 1 ); mPhotoLabel = new QLabel( photoBox ); int fac = 9; if ( QApplication::desktop()->width() > 320 ) fac = 6; mPhotoLabel->setFixedSize( 50*9/fac, 70*9/fac ); mPhotoLabel->setScaledContents( true ); mPhotoLabel->setFrameStyle( QFrame::Panel | QFrame::Sunken ); boxLayout->addMultiCellWidget( mPhotoLabel, 0, 3, 0, 0 ); mPhotoUrl = new KURLRequester( photoBox ); #ifndef KAB_EMBEDDED mPhotoUrl->setFilter( KImageIO::pattern() ); #else //KAB_EMBEDDED //US qDebug("ImageWidget::ImageWidget KImageIO not defined. Does this harm ???"); #endif //KAB_EMBEDDED boxLayout->addWidget( mPhotoUrl, 0, 1 ); - - mUsePhotoUrl = new QCheckBox( i18n( "Store as URL" ), photoBox ); + QHBox *hb1 = new QHBox ( photoBox ); + mUsePhotoUrl = new QCheckBox( i18n( "Store as URL" ), hb1 ); mUsePhotoUrl->setEnabled( false ); - boxLayout->addWidget( mUsePhotoUrl, 1, 1 ); + boxLayout->addWidget( hb1, 1, 1 ); - QPushButton * pb = new QPushButton( i18n( "Remove" ), photoBox ); + QPushButton * pb = new QPushButton( i18n( "Remove" ), hb1 ); connect( pb, SIGNAL( clicked() ),this, SLOT( removePhoto() ) ); - boxLayout->addWidget( pb, 2, 1 ); - boxLayout->addWidget( new QLabel( photoBox ), 3, 1 ); + boxLayout->addWidget( new QLabel( photoBox ), 2, 1 ); topLayout->addWidget( photoBox, 0, 0 ); QGroupBox *logoBox = new QGroupBox( 0, Qt::Vertical, i18n( "Logo" ), this ); - boxLayout = new QGridLayout( logoBox->layout(), 4, 2, KDialog::spacingHint() ); + boxLayout = new QGridLayout( logoBox->layout(), 3, 2, KDialog::spacingHint() ); boxLayout->setRowStretch( 2, 1 ); mLogoLabel = new QLabel( logoBox ); mLogoLabel->setFixedSize( 50*9/fac, 70*9/fac ); mLogoLabel->setScaledContents( true ); mLogoLabel->setFrameStyle( QFrame::Panel | QFrame::Sunken ); boxLayout->addMultiCellWidget( mLogoLabel, 0, 3, 0, 0 ); mLogoUrl = new KURLRequester( logoBox ); #ifndef KAB_EMBEDDED mLogoUrl->setFilter( KImageIO::pattern() ); #else //KAB_EMBEDDED //US qDebug("ImageWidget::ImageWidget KImageIO not defined 2"); #endif //KAB_EMBEDDED boxLayout->addWidget( mLogoUrl, 0, 1 ); - mUseLogoUrl = new QCheckBox( i18n( "Store as URL" ), logoBox ); + QHBox *hb2 = new QHBox ( logoBox ); + mUseLogoUrl = new QCheckBox( i18n( "Store as URL" ), hb2 ); mUseLogoUrl->setEnabled( false ); - boxLayout->addWidget( mUseLogoUrl, 1, 1 ); + boxLayout->addWidget( hb2, 1, 1 ); - pb = new QPushButton( i18n( "Remove" ), logoBox ); + pb = new QPushButton( i18n( "Remove" ), hb2 ); connect( pb, SIGNAL( clicked() ),this, SLOT( removeLogo() ) ); - boxLayout->addWidget( pb, 2, 1 ); - boxLayout->addWidget( new QLabel( logoBox ), 3, 1 ); + boxLayout->addWidget( new QLabel( logoBox ), 2, 1 ); topLayout->addWidget( logoBox, 1, 0 ); connect( mPhotoUrl, SIGNAL( textChanged( const QString& ) ), SIGNAL( changed() ) ); connect( mPhotoUrl, SIGNAL( urlSelected( const QString& ) ), SLOT( loadPhoto() ) ); connect( mPhotoUrl, SIGNAL( urlSelected( const QString& ) ), SIGNAL( changed() ) ); connect( mPhotoUrl, SIGNAL( urlSelected( const QString& ) ), SLOT( updateGUI() ) ); connect( mUsePhotoUrl, SIGNAL( toggled( bool ) ), SIGNAL( changed() ) ); diff --git a/kaddressbook/kabcore.cpp b/kaddressbook/kabcore.cpp index 9526f23..d393660 100644 --- a/kaddressbook/kabcore.cpp +++ b/kaddressbook/kabcore.cpp @@ -216,25 +216,26 @@ class KABFormatPrefs : public QDialog full = new QRadioButton(i18n("Full: Mr. James 007 Bond I"), format ); reverse = new QRadioButton(i18n("Reverse: Bond, James"), format ); company = new QRadioButton(i18n("Organization: MI6"), format ); simple->setChecked( true ); setCompany = new QCheckBox(i18n("Set formatted name to\norganization, if name empty"), this); lay->addWidget( setCompany ); QPushButton * ok = new QPushButton( i18n("Select contact list"), this ); lay->addWidget( ok ); QPushButton * cancel = new QPushButton( i18n("Cancel"), this ); lay->addWidget( cancel ); connect ( ok,SIGNAL(clicked() ),this , SLOT ( accept() ) ); connect (cancel, SIGNAL(clicked() ), this, SLOT ( reject()) ); - resize( 200, 200 ); + //resize( 200, 200 ); + } public: QRadioButton* simple, *full, *reverse, *company; QCheckBox* setCompany; }; class KAex2phonePrefs : public QDialog { public: KAex2phonePrefs( QWidget *parent=0, const char *name=0 ) : @@ -1364,25 +1365,26 @@ void KABCore::executeContact( const QString &uid /*US = QString::null*/ ) void KABCore::save() { if (syncManager->blockSave()) return; if ( !mModified ) return; syncManager->setBlockSave(true); QString text = i18n( "There was an error while attempting to save\n the " "address book. Please check that some \nother application is " "not using it. " ); - message(i18n("Saving addressbook ... ")); + message(i18n("Saving ... please wait! ")); + qApp->processEvents(); #ifndef KAB_EMBEDDED KABC::StdAddressBook *b = dynamic_cast<KABC::StdAddressBook*>( mAddressBook ); if ( !b || !b->save() ) { KMessageBox::error( this, text, i18n( "Unable to Save" ) ); } #else //KAB_EMBEDDED KABC::StdAddressBook *b = (KABC::StdAddressBook*)( mAddressBook ); if ( !b || !b->save() ) { QMessageBox::critical( this, i18n( "Unable to Save" ), text, i18n("Ok")); } #endif //KAB_EMBEDDED @@ -2354,49 +2356,55 @@ void KABCore::removeVoice() for ( it = list.begin(); it != list.end(); ++it ) { if ( (*it).removeVoice() ) addrModified((*it), false ); } } void KABCore::setFormattedName() { KABFormatPrefs setpref; if ( !setpref.exec() ) { return; } - KABC::Addressee::List list; XXPortSelectDialog dlg( this, false, this ); - if ( dlg.exec() ) - list = dlg.contacts(); - else + if ( !dlg.exec() ) return; - KABC::Addressee::List::Iterator it; - for ( it = list.begin(); it != list.end(); ++it ) { + mAddressBook->setUntagged(); + dlg.tagSelected(); + int count = 0; + KABC::AddressBook::Iterator it; + for ( it = mAddressBook->begin(); it != mAddressBook->end(); ++it ) { + if ( (*it).tagged() ) { + message(i18n("Changing contact #%1").arg( ++count ) ); + qApp->processEvents(); QString fName; if ( setpref.simple->isChecked() ) fName = NameEditDialog::formattedName( (*it), NameEditDialog::SimpleName ); else if ( setpref.full->isChecked() ) fName = NameEditDialog::formattedName( (*it), NameEditDialog::FullName ); else if ( setpref.reverse->isChecked() ) fName = NameEditDialog::formattedName( (*it), NameEditDialog::ReverseName ); else fName = (*it).organization(); if ( setpref.setCompany->isChecked() ) if ( fName.isEmpty() || fName =="," ) fName = (*it).organization(); (*it).setFormattedName( fName ); - addrModified((*it),false ); } + } + message(i18n("Refreshing view...") ); + mViewManager->refreshView( "" ); Addressee add; mDetails->setAddressee( add ); + message(i18n("Setting formatted name completed!") ); } void KABCore::clipboardDataChanged() { if ( mReadWrite ) mActionPaste->setEnabled( !QApplication::clipboard()->text().isEmpty() ); } void KABCore::updateActionMenu() { @@ -3197,25 +3205,25 @@ bool KABCore::syncExternal(KSyncManager* manager, QString resource) setModified(); } abLocal.removeResources(); if ( syncOK ) mViewManager->refreshView(); disableBR( false ); return syncOK; } void KABCore::message( QString m ) { topLevelWidget()->setCaption( m ); - mMessageTimer->start( 15000, true ); + mMessageTimer->start( 20000, true ); } bool KABCore::syncPhone() { QString mCurrentSyncDevice = syncManager->getCurrentSyncDevice(); QString fileName = getPhoneFile(); if ( !PhoneAccess::readFromPhone( fileName) ) { message(i18n("Phone access failed!")); return false; } AddressBook abLocal( fileName,"syncContact"); bool syncOK = false; { diff --git a/kaddressbook/xxportselectdialog.cpp b/kaddressbook/xxportselectdialog.cpp index 6282453..e7bc8c0 100644 --- a/kaddressbook/xxportselectdialog.cpp +++ b/kaddressbook/xxportselectdialog.cpp @@ -45,25 +45,25 @@ $Id$ #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 @@ -100,31 +100,71 @@ XXPortSelectDialog::XXPortSelectDialog( KABCore *core, bool sort, 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; } -KABC::AddresseeList XXPortSelectDialog::contacts() +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() +{ 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; @@ -237,26 +277,26 @@ void XXPortSelectDialog::initGUI() 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 diff --git a/kaddressbook/xxportselectdialog.h b/kaddressbook/xxportselectdialog.h index 3bb696f..28b1fef 100644 --- a/kaddressbook/xxportselectdialog.h +++ b/kaddressbook/xxportselectdialog.h @@ -39,24 +39,25 @@ class QRadioButton; class KABCore; class KComboBox; class XXPortSelectDialog : public KDialogBase { Q_OBJECT public: XXPortSelectDialog( KABCore *core, bool sort, QWidget* parent, const char* name = 0 ); KABC::AddresseeList contacts(); + void tagSelected(); QStringList uids(); private slots: void filterChanged( int ); void categoryClicked( QListViewItem * i ); protected slots: void slotHelp(); private: void initGUI(); QStringList categories() const; |