summaryrefslogtreecommitdiffabout
path: root/kaddressbook
Side-by-side diff
Diffstat (limited to 'kaddressbook') (more/less context) (ignore whitespace changes)
-rw-r--r--kaddressbook/addresseeeditorwidget.cpp6
-rw-r--r--kaddressbook/extensionmanager.cpp7
-rw-r--r--kaddressbook/filter.cpp21
-rw-r--r--kaddressbook/kabcore.cpp87
-rw-r--r--kaddressbook/kabcore.h3
-rw-r--r--kaddressbook/kabprefs.cpp2
-rw-r--r--kaddressbook/kcmconfigs/addresseewidget.cpp11
-rw-r--r--kaddressbook/nameeditdialog.cpp8
8 files changed, 113 insertions, 32 deletions
diff --git a/kaddressbook/addresseeeditorwidget.cpp b/kaddressbook/addresseeeditorwidget.cpp
index 3397e06..c6993e9 100644
--- a/kaddressbook/addresseeeditorwidget.cpp
+++ b/kaddressbook/addresseeeditorwidget.cpp
@@ -981,11 +981,11 @@ void AddresseeEditorWidget::load()
if ( mAddressee.formattedName().isEmpty() ) {
//US KConfig config( "kaddressbookrc" );
- KConfig config( locateLocal("config", "kaddressbookrc") );
+ KConfig config( locateLocal("config", "kabcrc") );
config.setGroup( "General" );
mFormattedNameType = config.readNumEntry( "FormattedNameType", 1 );
mAddressee.setFormattedName( NameEditDialog::formattedName( mAddressee, mFormattedNameType ) );
- } else {
+ } else {;
if ( mAddressee.formattedName() == NameEditDialog::formattedName( mAddressee, NameEditDialog::SimpleName ) )
mFormattedNameType = NameEditDialog::SimpleName;
else if ( mAddressee.formattedName() == NameEditDialog::formattedName( mAddressee, NameEditDialog::FullName ) )
@@ -1185,6 +1185,8 @@ bool AddresseeEditorWidget::dirty()
void AddresseeEditorWidget::nameTextChanged( const QString &text )
{
+ if ( mBlockSignals )
+ return;
// use the addressee class to parse the name for us
mAConfig->setUid( mAddressee.uid() );
if ( mAConfig->automaticNameParsing() ) {
diff --git a/kaddressbook/extensionmanager.cpp b/kaddressbook/extensionmanager.cpp
index 98561dc..efbdf17 100644
--- a/kaddressbook/extensionmanager.cpp
+++ b/kaddressbook/extensionmanager.cpp
@@ -58,6 +58,7 @@ ExtensionManager::ExtensionManager( KABCore *core, QWidget *parent,
connect( mActionExtensions, SIGNAL( activated( int ) ),
SLOT( setActiveExtension( int ) ) );
mWidgetBox = new QWidget( viewport() );
+ new QHBoxLayout (mWidgetBox );
addChild( mWidgetBox );
setResizePolicy(AutoOneFit);
createExtensionWidgets();
@@ -158,7 +159,7 @@ void ExtensionManager::createExtensionWidgets()
// add addressee editor as default
- QHBoxLayout *hbl = new QHBoxLayout (mWidgetBox );
+ QHBoxLayout *hbl = (QHBoxLayout *) mWidgetBox->layout();;
wdg = new AddresseeEditorWidget( mCore, true, mWidgetBox );
hbl->addWidget( wdg );
@@ -180,14 +181,14 @@ void ExtensionManager::createExtensionWidgets()
KLibFactory *factory = KLibLoader::self()->factory( (*it)->library().latin1() );
if ( !factory ) {
- kdDebug(5720) << "ExtensionManager::loadExtensions(): Factory creation failed" << endl;
+ //kdDebug(5720) << "ExtensionManager::loadExtensions(): Factory creation failed" << endl;
continue;
}
ExtensionFactory *extensionFactory = static_cast<ExtensionFactory*>( factory );
if ( !extensionFactory ) {
- kdDebug(5720) << "ExtensionManager::loadExtensions(): Cast failed" << endl;
+ //kdDebug(5720) << "ExtensionManager::loadExtensions(): Cast failed" << endl;
continue;
}
diff --git a/kaddressbook/filter.cpp b/kaddressbook/filter.cpp
index b0d04ca..39d2ae4 100644
--- a/kaddressbook/filter.cpp
+++ b/kaddressbook/filter.cpp
@@ -180,17 +180,18 @@ Filter::List Filter::restore( KConfig *config, QString baseGroup )
list.append( f );
}
- QStringList cats = KABPrefs::instance()->mCustomCategories;
- for ( QStringList::Iterator it = cats.begin(); it != cats.end(); ++it ) {
- Filter filter;
- filter.mName = *it;
- filter.mEnabled = true;
- filter.mCategoryList = *it;
- filter.mMatchRule = Matching;
- filter.mInternal = true;
- list.append( filter );
+ if ( list.isEmpty()) {
+ QStringList cats = KABPrefs::instance()->mCustomCategories;
+ for ( QStringList::Iterator it = cats.begin(); it != cats.end(); ++it ) {
+ Filter filter;
+ filter.mName = *it;
+ filter.mEnabled = true;
+ filter.mCategoryList = *it;
+ filter.mMatchRule = Matching;
+ filter.mInternal = true;
+ list.append( filter );
+ }
}
-
return list;
}
diff --git a/kaddressbook/kabcore.cpp b/kaddressbook/kabcore.cpp
index e14e579..c6288fa 100644
--- a/kaddressbook/kabcore.cpp
+++ b/kaddressbook/kabcore.cpp
@@ -151,6 +151,7 @@ $Id$
#include "jumpbuttonbar.h"
#include "extensionmanager.h"
#include "addresseeconfig.h"
+#include "nameeditdialog.h"
#include <kcmultidialog.h>
#ifdef _WIN32_
@@ -196,6 +197,41 @@ private:
QRadioButton* addCatBut;
};
+class KABFormatPrefs : public QDialog
+{
+ public:
+ KABFormatPrefs( QWidget *parent=0, const char *name=0 ) :
+ QDialog( parent, name, true )
+ {
+ setCaption( i18n("Set formatted name") );
+ QVBoxLayout* lay = new QVBoxLayout( this );
+ lay->setSpacing( 3 );
+ lay->setMargin( 3 );
+ QLabel * lab = new QLabel( i18n("You can set the formatted name\nfor a list of contacts in one go."), this );
+ lay->addWidget( lab );
+ QButtonGroup* format = new QButtonGroup( 1, Horizontal, i18n("Set formatted name to:"), this );
+ lay->addWidget( format );
+ format->setExclusive ( true ) ;
+ simple = new QRadioButton(i18n("Simple: James Bond"), format );
+ 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 );
+ }
+public:
+ QRadioButton* simple, *full, *reverse, *company;
+ QCheckBox* setCompany;
+};
+
class KAex2phonePrefs : public QDialog
@@ -1146,7 +1182,12 @@ bool KABCore::modified() const
return mModified;
}
-void KABCore::contactModified( const KABC::Addressee &addr )
+void KABCore::contactModified( const KABC::Addressee &addr )
+{
+ addrModified( addr );
+}
+
+void KABCore::addrModified( const KABC::Addressee &addr ,bool updateDetails )
{
Command *command = 0;
@@ -1163,7 +1204,8 @@ void KABCore::contactModified( const KABC::Addressee &addr )
UndoStack::instance()->push( command );
RedoStack::instance()->clear();
- mDetails->setAddressee( addr );
+ if ( updateDetails )
+ mDetails->setAddressee( addr );
setModified( true );
}
@@ -1541,7 +1583,7 @@ void KABCore::openConfigDialog()
ConfigureDialog->addModule(kdelibcfg );
connect( ConfigureDialog, SIGNAL( applyClicked() ),
- this, SLOT( configurationChanged() ) );
+ this, SLOT( configurationChanged() ) );
connect( ConfigureDialog, SIGNAL( okClicked() ),
this, SLOT( configurationChanged() ) );
saveSettings();
@@ -1996,6 +2038,9 @@ void KABCore::initActions()
mActionRemoveVoice = new KAction( i18n( "Remove \"voice\"..." ), 0, this,
SLOT( removeVoice() ), actionCollection(),
"remove_voice" );
+ mActionSetFormattedName = new KAction( i18n( "Set formatted name..." ), 0, this,
+ SLOT( setFormattedName() ), actionCollection(),
+ "set_formatted" );
mActionManageCategories= new KAction( i18n( "Manage new categories..." ), 0, this,
SLOT( manageCategories() ), actionCollection(),
@@ -2136,6 +2181,7 @@ void KABCore::addActionsManually()
editMenu->insertSeparator();
mActionSelectAll->plug( editMenu );
+ mActionSetFormattedName->plug( changeMenu );
mActionRemoveVoice->plug( changeMenu );
// settings menu
//US special menuentry to configure the addressbook resources. On KDE
@@ -2302,11 +2348,42 @@ void KABCore::removeVoice()
KABC::Addressee::List::Iterator it;
for ( it = list.begin(); it != list.end(); ++it ) {
if ( (*it).removeVoice() )
- contactModified((*it) );
+ 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
+ return;
+ KABC::Addressee::List::Iterator it;
+ for ( it = list.begin(); it != list.end(); ++it ) {
+ 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 );
+ }
+ Addressee add;
+ mDetails->setAddressee( add );
+}
void KABCore::clipboardDataChanged()
{
diff --git a/kaddressbook/kabcore.h b/kaddressbook/kabcore.h
index 85ffbdb..0d5891e 100644
--- a/kaddressbook/kabcore.h
+++ b/kaddressbook/kabcore.h
@@ -278,6 +278,7 @@ class KABCore : public QWidget, public KSyncInterface
dialog or the quick edit.
*/
void contactModified( const KABC::Addressee &addr );
+ void addrModified( const KABC::Addressee &addr, bool updateDetails = true );
/**
DCOP METHODS.
@@ -373,6 +374,7 @@ class KABCore : public QWidget, public KSyncInterface
void updateActionMenu();
void configureKeyBindings();
void removeVoice();
+ void setFormattedName();
#ifdef KAB_EMBEDDED
void configureResources();
#endif //KAB_EMBEDDED
@@ -477,6 +479,7 @@ class KABCore : public QWidget, public KSyncInterface
QPopupMenu *ExportMenu;
//LR additional methods
KAction *mActionRemoveVoice;
+ KAction *mActionSetFormattedName;
KAction * mActionImportOL;
#ifndef KAB_EMBEDDED
diff --git a/kaddressbook/kabprefs.cpp b/kaddressbook/kabprefs.cpp
index db123da..a2095d4 100644
--- a/kaddressbook/kabprefs.cpp
+++ b/kaddressbook/kabprefs.cpp
@@ -60,7 +60,7 @@ KABPrefs::KABPrefs()
addItemBool("AskForQuit",&mAskForQuit,true);
addItemBool("ToolBarHor",&mToolBarHor, true );
addItemBool("ToolBarUp",&mToolBarUp, false );
- addItemBool("SearchWithReturn",&mSearchWithReturn, true );
+ addItemBool("SearchWithReturn",&mSearchWithReturn, false );
addItemFont("DetailsFont",&mDetailsFont);
diff --git a/kaddressbook/kcmconfigs/addresseewidget.cpp b/kaddressbook/kcmconfigs/addresseewidget.cpp
index eb5bdd9..168d39e 100644
--- a/kaddressbook/kcmconfigs/addresseewidget.cpp
+++ b/kaddressbook/kcmconfigs/addresseewidget.cpp
@@ -218,24 +218,19 @@ void AddresseeWidget::restoreSettings()
mPrefix->setNameParts( config.readListEntry( "Prefixes" ) );
mInclusion->setNameParts( config.readListEntry( "Inclusions" ) );
mSuffix->setNameParts( config.readListEntry( "Suffixes" ) );
-
- KConfig cfg( locateLocal("config","kaddressbookrc") );
- cfg.setGroup( "General" );
- mFormattedNameCombo->setCurrentItem( cfg.readNumEntry( "FormattedNameType", 1 ) );
+ mFormattedNameCombo->setCurrentItem( config.readNumEntry( "FormattedNameType", 1 ) );
}
void AddresseeWidget::saveSettings()
{
+ qDebug("AddresseeWidget::saveSettings() ");
KConfig config( locateLocal("config","kabcrc") );
config.setGroup( "General" );
config.writeEntry( "Prefixes", mPrefix->nameParts() );
config.writeEntry( "Inclusions", mInclusion->nameParts() );
config.writeEntry( "Suffixes", mSuffix->nameParts() );
-
- KConfig cfg( locateLocal("config","kaddressbookrc") );
- cfg.setGroup( "General" );
- cfg.writeEntry( "FormattedNameType", mFormattedNameCombo->currentItem() );
+ config.writeEntry( "FormattedNameType", mFormattedNameCombo->currentItem() );
}
#ifndef KAB_EMBEDDED
diff --git a/kaddressbook/nameeditdialog.cpp b/kaddressbook/nameeditdialog.cpp
index 8213c2b..f5dba0f 100644
--- a/kaddressbook/nameeditdialog.cpp
+++ b/kaddressbook/nameeditdialog.cpp
@@ -225,22 +225,24 @@ bool NameEditDialog::changed() const
QString NameEditDialog::formattedName( const KABC::Addressee &addr, int type )
{
+ QString retval;
switch ( type ) {
case SimpleName:
- return addr.givenName() + " " + addr.familyName();
+ retval = addr.givenName() + " " + addr.familyName();
break;
case FullName:
- return addr.prefix() + " " + addr.givenName() + " " +
+ retval =addr.prefix() + " " + addr.givenName() + " " +
addr.additionalName() + " " + addr.familyName() + " " +
addr.suffix();
break;
case ReverseName:
- return addr.familyName() + ", " + addr.givenName();
+ retval = addr.familyName() + ", " + addr.givenName();
break;
default:
return "";
break;
}
+ return retval.stripWhiteSpace ();
}
void NameEditDialog::parseBoxChanged( bool value )