00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
#include <qlayout.h>
00025
#include <qpopupmenu.h>
00026
00027
#include <kabc/addressbook.h>
00028
#include <kabc/distributionlistdialog.h>
00029
#include <kconfig.h>
00030
#include <kdebug.h>
00031
#include <klocale.h>
00032
#include <kxmlguifactory.h>
00033
#include <kxmlguiclient.h>
00034
00035
#include "core.h"
00036
00037
#include "kaddressbookview.h"
00038
00039 KAddressBookView::KAddressBookView( KAB::Core *core, QWidget *parent,
00040
const char *name )
00041 : QWidget( parent, name ), mCore( core ), mFieldList()
00042 {
00043 initGUI();
00044 }
00045
00046 KAddressBookView::~KAddressBookView()
00047 {
00048 kdDebug(5720) <<
"KAddressBookView::~KAddressBookView: destroying - "
00049 << name() << endl;
00050 }
00051
00052 void KAddressBookView::readConfig( KConfig *config )
00053 {
00054 mFieldList = KABC::Field::restoreFields( config,
"KABCFields" );
00055
00056
if ( mFieldList.isEmpty() )
00057 mFieldList = KABC::Field::defaultFields();
00058
00059 mDefaultFilterType = (DefaultFilterType)config->readNumEntry(
"DefaultFilterType", 1 );
00060 mDefaultFilterName = config->readEntry(
"DefaultFilterName" );
00061 }
00062
00063 void KAddressBookView::writeConfig( KConfig* )
00064 {
00065
00066 }
00067
00068 QString
KAddressBookView::selectedEmails()
00069 {
00070
bool first =
true;
00071 QString emailAddrs;
00072 QStringList uidList =
selectedUids();
00073 KABC::Addressee addr;
00074 QString email;
00075
00076 QStringList::Iterator it;
00077
for ( it = uidList.begin(); it != uidList.end(); ++it ) {
00078 addr = mCore->addressBook()->findByUid( *it );
00079
00080
if ( !addr.isEmpty() ) {
00081 QString m = QString::null;
00082
00083
if ( addr.emails().count() > 1 )
00084 m = KABC::EmailSelector::getEmail( addr.emails(), addr.preferredEmail(),
this );
00085
00086 email = addr.fullEmail( m );
00087
00088
if ( !first )
00089 emailAddrs +=
", ";
00090
else
00091 first =
false;
00092
00093 emailAddrs += email;
00094 }
00095 }
00096
00097
return emailAddrs;
00098 }
00099
00100 KABC::Addressee::List
KAddressBookView::addressees()
00101 {
00102 KABC::Addressee::List addresseeList;
00103
00104 KABC::AddressBook::Iterator it;
00105
for (it = mCore->addressBook()->begin(); it != mCore->addressBook()->end(); ++it ) {
00106
if ( mFilter.
filterAddressee( *it ) )
00107 addresseeList.append( *it );
00108 }
00109
00110
return addresseeList;
00111 }
00112
00113
void KAddressBookView::initGUI()
00114 {
00115
00116 QVBoxLayout *layout =
new QVBoxLayout(
this );
00117
00118
00119 mViewWidget =
new QWidget(
this );
00120 layout->addWidget( mViewWidget );
00121 }
00122
00123 KABC::Field::List
KAddressBookView::fields()
const
00124
{
00125
return mFieldList;
00126 }
00127
00128 void KAddressBookView::setFilter(
const Filter &filter )
00129 {
00130 mFilter = filter;
00131 }
00132
00133 KAddressBookView::DefaultFilterType
KAddressBookView::defaultFilterType()
const
00134
{
00135
return mDefaultFilterType;
00136 }
00137
00138 const QString &
KAddressBookView::defaultFilterName()
const
00139
{
00140
return mDefaultFilterName;
00141 }
00142
00143 KAB::Core *
KAddressBookView::core()
const
00144
{
00145
return mCore;
00146 }
00147
00148 void KAddressBookView::popup(
const QPoint &point )
00149 {
00150
if ( !mCore->guiClient() ) {
00151 kdWarning() <<
"No GUI client set!" << endl;
00152
return;
00153 }
00154
00155 QPopupMenu *menu = static_cast<QPopupMenu*>( mCore->guiClient()->factory()->container(
"RMBPopup",
00156 mCore->guiClient() ) );
00157
if ( menu )
00158 menu->popup( point );
00159 }
00160
00161 QWidget *
KAddressBookView::viewWidget()
00162 {
00163
return mViewWidget;
00164 }
00165
00166
ViewConfigureWidget *ViewFactory::configureWidget( KABC::AddressBook *ab,
00167 QWidget *parent,
00168
const char *name )
00169 {
00170
return new ViewConfigureWidget( ab, parent, name );
00171 }
00172
00173
#include "kaddressbookview.moc"