summaryrefslogtreecommitdiffabout
authorzautrix <zautrix>2005-06-20 06:01:55 (UTC)
committer zautrix <zautrix>2005-06-20 06:01:55 (UTC)
commit3876e95ff79298e9d95c506973c69790290b611e (patch) (unidiff)
tree654477f1cf73911d57fff86f0e087faf4021e113
parent19768fad9c35bd2611512dcdb426c879ad080493 (diff)
downloadkdepimpi-3876e95ff79298e9d95c506973c69790290b611e.zip
kdepimpi-3876e95ff79298e9d95c506973c69790290b611e.tar.gz
kdepimpi-3876e95ff79298e9d95c506973c69790290b611e.tar.bz2
fixes in contact selection
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--bin/kdepim/WhatsNew.txt2
-rw-r--r--kabc/addresseedialog.cpp18
-rw-r--r--kabc/addresseedialog.h2
3 files changed, 18 insertions, 4 deletions
diff --git a/bin/kdepim/WhatsNew.txt b/bin/kdepim/WhatsNew.txt
index 0ebd853..c4557ef 100644
--- a/bin/kdepim/WhatsNew.txt
+++ b/bin/kdepim/WhatsNew.txt
@@ -1,76 +1,78 @@
1Info about the changes in new versions of KDE-Pim/Pi 1Info about the changes in new versions of KDE-Pim/Pi
2 2
3 3
4********** VERSION 2.1.8 ************ 4********** VERSION 2.1.8 ************
5 5
6KO/Pi: 6KO/Pi:
7Added info about the completion state of a todo in the ListView/Searchdialog. 7Added info about the completion state of a todo in the ListView/Searchdialog.
8If in TodoView is selected "do not show compledted todos" then completed todos are not shown in the ListView as well. 8If in TodoView is selected "do not show compledted todos" then completed todos are not shown in the ListView as well.
9Fixed some updating problems when changing the filter. 9Fixed some updating problems when changing the filter.
10 10
11KA/Pi: 11KA/Pi:
12In the addressee selection dialog now the formatted name is shown, if not empty. 12In the addressee selection dialog now the formatted name is shown, if not empty.
13Added a column "category" to the addressee selection dialog to make it possible to sort addressees after category.
14Now in the addressee selection dialog a selected contact is remove with a single click from the selected list.
13 15
14Fixed in the file selector on the Zaurus the problem that symbolic links to files/dirs were ignored. 16Fixed in the file selector on the Zaurus the problem that symbolic links to files/dirs were ignored.
15Fixed the sorting for size in the file selector on the Z. 17Fixed the sorting for size in the file selector on the Z.
16 18
17Changed the color selection dialog on the Zaurus to a more user friendly version. 19Changed the color selection dialog on the Zaurus to a more user friendly version.
18 20
19********** VERSION 2.1.7 ************ 21********** VERSION 2.1.7 ************
20 22
21KO/Pi: 23KO/Pi:
22Fixed several problems in the new Resource handling. 24Fixed several problems in the new Resource handling.
23Added more options to the search dialog. 25Added more options to the search dialog.
24Fixed a problem in the Month view. 26Fixed a problem in the Month view.
25Added more options to the dialog when setting a todo to stopped. 27Added more options to the dialog when setting a todo to stopped.
26 28
27Fixed two small problems in KO/Pi Alarm applet. 29Fixed two small problems in KO/Pi Alarm applet.
28 30
29********** VERSION 2.1.6 ************ 31********** VERSION 2.1.6 ************
30 32
31This release is for testing only. 33This release is for testing only.
32 34
33KO/Pi: 35KO/Pi:
34Added to the list view (the list view is used in search dialog as well) the possibility to print it. 36Added to the list view (the list view is used in search dialog as well) the possibility to print it.
35Added to the list view the possibility to hide entries, if you do not want to print all entries of the list view. 37Added to the list view the possibility to hide entries, if you do not want to print all entries of the list view.
36Added to the list view the possibility to add all subtodos of selected todos to an export/beam. 38Added to the list view the possibility to add all subtodos of selected todos to an export/beam.
37Added to the search dialog the possibility to make an additive search such that you can get a better list for export/printout. 39Added to the search dialog the possibility to make an additive search such that you can get a better list for export/printout.
38Added to the search dialog the possibility to hide the checkboxes such that there is more space for the list view on the Zaurus. 40Added to the search dialog the possibility to hide the checkboxes such that there is more space for the list view on the Zaurus.
39Fixed a problem in the AlarmTimer Applet: Now utf8 messages are displayed properly. 41Fixed a problem in the AlarmTimer Applet: Now utf8 messages are displayed properly.
40 42
41Added support for multiple calendar files in KO/Pi. Only local ical (*.ics) files are supported as calendars. 43Added support for multiple calendar files in KO/Pi. Only local ical (*.ics) files are supported as calendars.
42In the sync profile config it is still missing to specify a particular calendar to sync with this profile. That setting will be added later. 44In the sync profile config it is still missing to specify a particular calendar to sync with this profile. That setting will be added later.
43Now on every sync the set of calendars is synced which are enabled in the resource view. 45Now on every sync the set of calendars is synced which are enabled in the resource view.
44 46
45A calendar is enabled in the resource view if the "eye" column is checked. 47A calendar is enabled in the resource view if the "eye" column is checked.
46You can set a calendar to be the default for new items( "+" column ). 48You can set a calendar to be the default for new items( "+" column ).
47You can tell KO/Pi to ignore all alarm of a calendar ( "bell" column ) and you can set it readonly. 49You can tell KO/Pi to ignore all alarm of a calendar ( "bell" column ) and you can set it readonly.
48To find out how to add a new calendar and how to remove a calendar is left as an exercise to the reader ... 50To find out how to add a new calendar and how to remove a calendar is left as an exercise to the reader ...
49 51
50 52
51********** VERSION 2.1.5 ************ 53********** VERSION 2.1.5 ************
52 54
53This is the new stable version. 55This is the new stable version.
54Bugfix: 56Bugfix:
55Fixed a problem with agenda popup on the desktop in KO/Pi. 57Fixed a problem with agenda popup on the desktop in KO/Pi.
56Fixed a crash when reloading file, e.g. after a passive pi-sync synchronization. 58Fixed a crash when reloading file, e.g. after a passive pi-sync synchronization.
57Added config option to not display completed todos in agenda view. 59Added config option to not display completed todos in agenda view.
58Addressee view is now using the formatted name, if defined. 60Addressee view is now using the formatted name, if defined.
59That makes it possible to display "lastname, firstname" in that view now. 61That makes it possible to display "lastname, firstname" in that view now.
60To set the formatted name for all contacts, please use menu: 62To set the formatted name for all contacts, please use menu:
61Edit->Change->Set formatted name. 63Edit->Change->Set formatted name.
62Fixed the bug in KA/Pi that is was not possible to add images to a contact on Windows. 64Fixed the bug in KA/Pi that is was not possible to add images to a contact on Windows.
63 65
64********** VERSION 2.1.4 ************ 66********** VERSION 2.1.4 ************
65 67
66Fixed two more bugs in the KA/Pi CSV import dialog: 68Fixed two more bugs in the KA/Pi CSV import dialog:
67Made it possible to read multi-line fields and import it to the "Note" field. 69Made it possible to read multi-line fields and import it to the "Note" field.
68Fixed a problem in mapping custom fields, whatever a custem field is... 70Fixed a problem in mapping custom fields, whatever a custem field is...
69 71
70********** VERSION 2.1.3 ************ 72********** VERSION 2.1.3 ************
71 73
72Changed the menu structure of the alarm applet: 74Changed the menu structure of the alarm applet:
73Moved "Simulate" to " Play Beeps" submenu and re-added "Todo List". 75Moved "Simulate" to " Play Beeps" submenu and re-added "Todo List".
74 76
75Fixed several problems in the KA/Pi CSV import dialog: 77Fixed several problems in the KA/Pi CSV import dialog:
76Added "Category", made codec configureable and made it possible to map many fields to the "Note" field. 78Added "Category", made codec configureable and made it possible to map many fields to the "Note" field.
diff --git a/kabc/addresseedialog.cpp b/kabc/addresseedialog.cpp
index e89584d..3e7b72c 100644
--- a/kabc/addresseedialog.cpp
+++ b/kabc/addresseedialog.cpp
@@ -1,230 +1,242 @@
1/* 1/*
2 This file is part of libkabc. 2 This file is part of libkabc.
3 Copyright (c) 2001 Cornelius Schumacher <schumacher@kde.org> 3 Copyright (c) 2001 Cornelius Schumacher <schumacher@kde.org>
4 4
5 This library is free software; you can redistribute it and/or 5 This library is free software; you can redistribute it and/or
6 modify it under the terms of the GNU Library General Public 6 modify it under the terms of the GNU Library General Public
7 License as published by the Free Software Foundation; either 7 License as published by the Free Software Foundation; either
8 version 2 of the License, or (at your option) any later version. 8 version 2 of the License, or (at your option) any later version.
9 9
10 This library is distributed in the hope that it will be useful, 10 This library is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of 11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 Library General Public License for more details. 13 Library General Public License for more details.
14 14
15 You should have received a copy of the GNU Library General Public License 15 You should have received a copy of the GNU Library General Public License
16 along with this library; see the file COPYING.LIB. If not, write to 16 along with this library; see the file COPYING.LIB. If not, write to
17 the Free Software Foundation, Inc., 59 Temple Place - Suite 330, 17 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
18 Boston, MA 02111-1307, USA. 18 Boston, MA 02111-1307, USA.
19*/ 19*/
20 20
21#include <qlayout.h> 21#include <qlayout.h>
22#include <qpushbutton.h> 22#include <qpushbutton.h>
23#include <qgroupbox.h> 23#include <qgroupbox.h>
24#include <qapplication.h> 24#include <qapplication.h>
25#include <qregexp.h> 25#include <qregexp.h>
26#include <qvbox.h> 26#include <qvbox.h>
27#include <qlabel.h> 27#include <qlabel.h>
28 28
29#include <klocale.h> 29#include <klocale.h>
30#include <kdebug.h> 30#include <kdebug.h>
31#include <kglobalsettings.h> 31#include <kglobalsettings.h>
32 32
33#include "stdaddressbook.h" 33#include "stdaddressbook.h"
34 34
35#include "addresseedialog.h" 35#include "addresseedialog.h"
36#include "KDGanttMinimizeSplitter.h" 36#include "KDGanttMinimizeSplitter.h"
37//#include "addresseedialog.moc" 37//#include "addresseedialog.moc"
38 38
39using namespace KABC; 39using namespace KABC;
40 40
41AddresseeItem::AddresseeItem( QListView *parent, const Addressee &addressee ) : 41AddresseeItem::AddresseeItem( QListView *parent, const Addressee &addressee ) :
42 QListViewItem( parent ), 42 QListViewItem( parent ),
43 mAddressee( addressee ) 43 mAddressee( addressee )
44{ 44{
45 setText( Name,addressee.realName()); 45 setText( Name,addressee.realName());
46 setText( Email, addressee.preferredEmail() ); 46 setText( Email, addressee.preferredEmail() );
47 setText( Category, addressee.categories().join(";") );
47} 48}
48 49
49QString AddresseeItem::key( int column, bool ) const 50QString AddresseeItem::key( int column, bool ) const
50{ 51{
51 52
52 if (column == Email) { 53 if (column == Email) {
53 QString value = text(Email); 54 QString value = text(Email);
54 int val = value.findRev("@"); 55 int val = value.findRev("@");
55 return value.mid( val) + value.left( val ); 56 return value.mid( val) + value.left( val );
56 } 57 }
57 return text(column).lower(); 58 return text(column).lower();
58} 59}
59 60
60AddresseeDialog::AddresseeDialog( QWidget *parent, bool multiple ) : 61AddresseeDialog::AddresseeDialog( QWidget *parent, bool multiple ) :
61 KDialogBase( KDialogBase::Plain, i18n("Select Addressee"), 62 KDialogBase( KDialogBase::Plain, i18n("Select Addressee"),
62 Ok|Cancel, No, parent ), mMultiple( multiple ) 63 Ok|Cancel, No, parent ), mMultiple( multiple )
63{ 64{
64 qDebug("NEW AddresseeDialog "); 65 qDebug("NEW AddresseeDialog ");
65 QWidget *topWidget = plainPage(); 66 QWidget *topWidget = plainPage();
66 67
67 QBoxLayout *topLayout = new QHBoxLayout( topWidget ); 68 QBoxLayout *topLayout = new QHBoxLayout( topWidget );
68 69
69 70
70 KDGanttMinimizeSplitter* mMiniSplitter = new KDGanttMinimizeSplitter( Qt::Horizontal, topWidget); 71 KDGanttMinimizeSplitter* mMiniSplitter = new KDGanttMinimizeSplitter( Qt::Horizontal, topWidget);
71 mMiniSplitter->setMinimizeDirection ( KDGanttMinimizeSplitter::Right ); 72 mMiniSplitter->setMinimizeDirection ( KDGanttMinimizeSplitter::Right );
72 73
73 topLayout->addWidget(mMiniSplitter ); 74 topLayout->addWidget(mMiniSplitter );
74 75
75 QWidget *listWidget = new QWidget( mMiniSplitter ); 76 QWidget *listWidget = new QWidget( mMiniSplitter );
76 77
77 QBoxLayout *listLayout = new QVBoxLayout (listWidget) ; 78 QBoxLayout *listLayout = new QVBoxLayout (listWidget) ;
78 //topLayout->addLayout( listLayout ); 79 //topLayout->addLayout( listLayout );
79 80
80 mAddresseeList = new KListView( listWidget ); 81 mAddresseeList = new KListView( listWidget );
81 mAddresseeList->addColumn( i18n("Name") ); 82 mAddresseeList->addColumn( i18n("Name") );
82 mAddresseeList->addColumn( i18n("Email") ); 83 mAddresseeList->addColumn( i18n("Email") );
84 mAddresseeList->addColumn( i18n("Category") );
83 mAddresseeList->setAllColumnsShowFocus( true ); 85 mAddresseeList->setAllColumnsShowFocus( true );
84 mAddresseeList->setFullWidth( true ); 86 mAddresseeList->setFullWidth( true );
85 listLayout->addWidget( mAddresseeList ); 87 listLayout->addWidget( mAddresseeList );
86 connect( mAddresseeList, SIGNAL( doubleClicked( QListViewItem * ) ), 88 connect( mAddresseeList, SIGNAL( doubleClicked( QListViewItem * ) ),
87 SLOT( slotOk() ) ); 89 SLOT( slotOk() ) );
88 90
89 mAddresseeEdit = new QLineEdit( listWidget ); 91 QHBox* searchBox = new QHBox ( listWidget );
92 mAddresseeEdit = new QLineEdit( searchBox );
90 connect( mAddresseeEdit, SIGNAL( returnPressed() ), 93 connect( mAddresseeEdit, SIGNAL( returnPressed() ),
91 SLOT( loadAddressBook() ) ); 94 SLOT( loadAddressBook() ) );
92 mAddresseeEdit->setFocus(); 95 mAddresseeEdit->setFocus();
96 QPushButton *searchButton = new QPushButton( i18n("Search!"), searchBox );
97 connect ( searchButton, SIGNAL( clicked() ), SLOT( loadAddressBook() ) );
93 98
94 listLayout->addWidget( mAddresseeEdit ); 99 listLayout->addWidget( searchBox );
95 100
96 if ( mMultiple ) { 101 if ( mMultiple ) {
97 //QBoxLayout *selectedLayout = new QVBoxLayout; 102 //QBoxLayout *selectedLayout = new QVBoxLayout;
98 //topLayout->addLayout( selectedLayout ); 103 //topLayout->addLayout( selectedLayout );
99 //topLayout->setSpacing( spacingHint() ); 104 //topLayout->setSpacing( spacingHint() );
100 105
101 QVBox *selectedGroup = new QVBox( mMiniSplitter ); 106 QVBox *selectedGroup = new QVBox( mMiniSplitter );
102 new QLabel ( i18n("Selected:"), selectedGroup ); 107 new QLabel ( i18n("Selected:"), selectedGroup );
103 //selectedLayout->addWidget( selectedGroup ); 108 //selectedLayout->addWidget( selectedGroup );
104 109
105 mSelectedList = new KListView( selectedGroup ); 110 mSelectedList = new KListView( selectedGroup );
106 mSelectedList->addColumn( i18n("Name") ); 111 mSelectedList->addColumn( i18n("Name") );
107 mSelectedList->addColumn( i18n("Email") ); 112 mSelectedList->addColumn( i18n("Email") );
108 mSelectedList->setAllColumnsShowFocus( true ); 113 mSelectedList->setAllColumnsShowFocus( true );
109 mSelectedList->setFullWidth( true ); 114 mSelectedList->setFullWidth( true );
110 connect( mSelectedList, SIGNAL( doubleClicked( QListViewItem * ) ), 115 //connect( mSelectedList, SIGNAL( doubleClicked( QListViewItem * ) ),
116 // SLOT( removeSelected() ) );
117 connect( mSelectedList, SIGNAL( clicked( QListViewItem * ) ),
118 SLOT( removeSelected() ) );
119 connect( mSelectedList, SIGNAL( returnPressed( QListViewItem *) ),
111 SLOT( removeSelected() ) ); 120 SLOT( removeSelected() ) );
112 121
122#if 0
113 QPushButton *unselectButton = new QPushButton( i18n("Unselect"), selectedGroup ); 123 QPushButton *unselectButton = new QPushButton( i18n("Unselect"), selectedGroup );
114 connect ( unselectButton, SIGNAL( clicked() ), SLOT( removeSelected() ) ); 124 connect ( unselectButton, SIGNAL( clicked() ), SLOT( removeSelected() ) );
115 125
126#endif
116 connect( mAddresseeList, SIGNAL( clicked( QListViewItem * ) ), 127 connect( mAddresseeList, SIGNAL( clicked( QListViewItem * ) ),
117 SLOT( addSelected( QListViewItem * ) ) ); 128 SLOT( addSelected( QListViewItem * ) ) );
118 connect( mAddresseeList, SIGNAL( returnPressed( QListViewItem * ) ), 129 connect( mAddresseeList, SIGNAL( returnPressed( QListViewItem * ) ),
119 SLOT( selectNextItem( QListViewItem * ) ) ); 130 SLOT( selectNextItem( QListViewItem * ) ) );
120 131
121 } 132 }
122 133
123 mAddressBook = StdAddressBook::self( true ); 134 mAddressBook = StdAddressBook::self( true );
124 connect( mAddressBook, SIGNAL( addressBookChanged( AddressBook* ) ), 135 connect( mAddressBook, SIGNAL( addressBookChanged( AddressBook* ) ),
125 SLOT( addressBookChanged() ) ); 136 SLOT( addressBookChanged() ) );
126#if 0 137#if 0
127 connect( mAddressBook, SIGNAL( loadingFinished( Resource* ) ), 138 connect( mAddressBook, SIGNAL( loadingFinished( Resource* ) ),
128 SLOT( addressBookChanged() ) ); 139 SLOT( addressBookChanged() ) );
129#endif 140#endif
130 loadAddressBook(); 141 loadAddressBook();
131 QValueList<int> splitterSize; 142 QValueList<int> splitterSize;
132 splitterSize.append( ( width() / 5 ) * 3 ); 143 splitterSize.append( ( width() / 5 ) * 3 );
133 splitterSize.append( ( width() / 5 ) *2 ); 144 splitterSize.append( ( width() / 5 ) *2 );
134 mMiniSplitter->setSizes( splitterSize ); 145 mMiniSplitter->setSizes( splitterSize );
135} 146}
136 147
137AddresseeDialog::~AddresseeDialog() 148AddresseeDialog::~AddresseeDialog()
138{ 149{
139 qDebug("DELETE AddresseeDialog "); 150 qDebug("DELETE AddresseeDialog ");
140} 151}
141 152
142void AddresseeDialog::loadAddressBook() 153void AddresseeDialog::loadAddressBook()
143{ 154{
144 mAddresseeList->clear(); 155 mAddresseeList->clear();
145 mItemDict.clear(); 156 mItemDict.clear();
146 if ( mAddresseeEdit->text().isEmpty() ) { 157 if ( mAddresseeEdit->text().isEmpty() ) {
147 AddressBook::Iterator it; 158 AddressBook::Iterator it;
148 for( it = mAddressBook->begin(); it != mAddressBook->end(); ++it ) { 159 for( it = mAddressBook->begin(); it != mAddressBook->end(); ++it ) {
149 if ( (*it).uid().left(2) == "la" && (*it).uid().left(19) == QString("last-syncAddressee-") ) 160 if ( (*it).uid().left(2) == "la" && (*it).uid().left(19) == QString("last-syncAddressee-") )
150 continue; 161 continue;
151 new AddresseeItem( mAddresseeList, (*it) ); 162 new AddresseeItem( mAddresseeList, (*it) );
152 } 163 }
153 return; 164 return;
154 } 165 }
155 //mAddresseeEdit->completionObject()->clear(); 166 //mAddresseeEdit->completionObject()->clear();
156 QRegExp re; 167 QRegExp re;
157 re.setWildcard(true); // most people understand these better. 168 re.setWildcard(true); // most people understand these better.
158 re.setCaseSensitive(false); 169 re.setCaseSensitive(false);
159 re.setPattern( "*"+ mAddresseeEdit->text() + "*"); 170 re.setPattern( "*"+ mAddresseeEdit->text() + "*");
160 171
161 AddressBook::Iterator it; 172 AddressBook::Iterator it;
162 for( it = mAddressBook->begin(); it != mAddressBook->end(); ++it ) { 173 for( it = mAddressBook->begin(); it != mAddressBook->end(); ++it ) {
163 if ( (*it).uid().left(2) == "la" && (*it).uid().left(19) == QString("last-syncAddressee-") ) 174 if ( (*it).uid().left(2) == "la" && (*it).uid().left(19) == QString("last-syncAddressee-") )
164 continue; 175 continue;
165 QString name = (*it).realName(); 176 QString name = (*it).realName();
166 name += (*it).preferredEmail(); 177 name += (*it).preferredEmail();
178 name += (*it).categories().join(";");
167#if QT_VERSION >= 0x030000 179#if QT_VERSION >= 0x030000
168 if (re.search(name) != -1) 180 if (re.search(name) != -1)
169#else 181#else
170 if (re.match(name) != -1) 182 if (re.match(name) != -1)
171#endif 183#endif
172 AddresseeItem *item = new AddresseeItem( mAddresseeList, (*it) ); 184 AddresseeItem *item = new AddresseeItem( mAddresseeList, (*it) );
173 } 185 }
174} 186}
175 187
176void AddresseeDialog::addCompletionItem( const QString &str, QListViewItem *item ) 188void AddresseeDialog::addCompletionItem( const QString &str, QListViewItem *item )
177{ 189{
178 if ( str.isEmpty() ) return; 190 if ( str.isEmpty() ) return;
179 191
180 mItemDict.insert( str, item ); 192 mItemDict.insert( str, item );
181 //mAddresseeEdit->completionObject()->addItem( str ); 193 //mAddresseeEdit->completionObject()->addItem( str );
182} 194}
183 195
184void AddresseeDialog::selectItem( const QString &str ) 196void AddresseeDialog::selectItem( const QString &str )
185{ 197{
186 if ( str.isEmpty() ) return; 198 if ( str.isEmpty() ) return;
187 199
188 QListViewItem *item = mItemDict.find( str ); 200 QListViewItem *item = mItemDict.find( str );
189 if ( item ) { 201 if ( item ) {
190 mAddresseeList->blockSignals( true ); 202 mAddresseeList->blockSignals( true );
191 mAddresseeList->setSelected( item, true ); 203 mAddresseeList->setSelected( item, true );
192 mAddresseeList->ensureItemVisible( item ); 204 mAddresseeList->ensureItemVisible( item );
193 mAddresseeList->blockSignals( false ); 205 mAddresseeList->blockSignals( false );
194 } 206 }
195} 207}
196 208
197void AddresseeDialog::updateEdit( QListViewItem *item ) 209void AddresseeDialog::updateEdit( QListViewItem *item )
198{ 210{
199 mAddresseeEdit->setText( item->text( 0 ) ); 211 mAddresseeEdit->setText( item->text( 0 ) );
200 mAddresseeEdit->setSelection( 0, item->text( 0 ).length() ); 212 mAddresseeEdit->setSelection( 0, item->text( 0 ).length() );
201} 213}
202 214
203void AddresseeDialog::selectNextItem( QListViewItem *item ) 215void AddresseeDialog::selectNextItem( QListViewItem *item )
204{ 216{
205 addSelected( item ); 217 addSelected( item );
206 QListViewItem *next = item->nextSibling(); 218 QListViewItem *next = item->nextSibling();
207 if ( next ) { 219 if ( next ) {
208 next->setSelected( true ); 220 next->setSelected( true );
209 item->setSelected( false ); 221 item->setSelected( false );
210 mAddresseeList->setCurrentItem( next ); 222 mAddresseeList->setCurrentItem( next );
211 } 223 }
212} 224}
213void AddresseeDialog::addSelected( QListViewItem *item ) 225void AddresseeDialog::addSelected( QListViewItem *item )
214{ 226{
215 AddresseeItem *addrItem = (AddresseeItem *)( item ); 227 AddresseeItem *addrItem = (AddresseeItem *)( item );
216 if ( !addrItem ) return; 228 if ( !addrItem ) return;
217 229
218 Addressee a = addrItem->addressee(); 230 Addressee a = addrItem->addressee();
219 231
220 QListViewItem *selectedItem = mSelectedDict.find( a.uid() ); 232 QListViewItem *selectedItem = mSelectedDict.find( a.uid() );
221 if ( !selectedItem ) { 233 if ( !selectedItem ) {
222 selectedItem = new AddresseeItem( mSelectedList, a ); 234 selectedItem = new AddresseeItem( mSelectedList, a );
223 mSelectedDict.insert( a.uid(), selectedItem ); 235 mSelectedDict.insert( a.uid(), selectedItem );
224 } 236 }
225 237
226} 238}
227 239
228void AddresseeDialog::removeSelected() 240void AddresseeDialog::removeSelected()
229{ 241{
230 QListViewItem *item = mSelectedList->selectedItem(); 242 QListViewItem *item = mSelectedList->selectedItem();
diff --git a/kabc/addresseedialog.h b/kabc/addresseedialog.h
index 99c74bd..6fab62d 100644
--- a/kabc/addresseedialog.h
+++ b/kabc/addresseedialog.h
@@ -1,110 +1,110 @@
1/* 1/*
2 This file is part of libkabc. 2 This file is part of libkabc.
3 Copyright (c) 2001 Cornelius Schumacher <schumacher@kde.org> 3 Copyright (c) 2001 Cornelius Schumacher <schumacher@kde.org>
4 4
5 This library is free software; you can redistribute it and/or 5 This library is free software; you can redistribute it and/or
6 modify it under the terms of the GNU Library General Public 6 modify it under the terms of the GNU Library General Public
7 License as published by the Free Software Foundation; either 7 License as published by the Free Software Foundation; either
8 version 2 of the License, or (at your option) any later version. 8 version 2 of the License, or (at your option) any later version.
9 9
10 This library is distributed in the hope that it will be useful, 10 This library is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of 11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 Library General Public License for more details. 13 Library General Public License for more details.
14 14
15 You should have received a copy of the GNU Library General Public License 15 You should have received a copy of the GNU Library General Public License
16 along with this library; see the file COPYING.LIB. If not, write to 16 along with this library; see the file COPYING.LIB. If not, write to
17 the Free Software Foundation, Inc., 59 Temple Place - Suite 330, 17 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
18 Boston, MA 02111-1307, USA. 18 Boston, MA 02111-1307, USA.
19*/ 19*/
20 20
21#ifndef KABC_ADDRESSEEDIALOG_H 21#ifndef KABC_ADDRESSEEDIALOG_H
22#define KABC_ADDRESSEEDIALOG_H 22#define KABC_ADDRESSEEDIALOG_H
23 23
24#include <qdict.h> 24#include <qdict.h>
25 25
26#include <kdialogbase.h> 26#include <kdialogbase.h>
27#include <klineedit.h> 27#include <klineedit.h>
28#include <klistview.h> 28#include <klistview.h>
29 29
30#include "addressbook.h" 30#include "addressbook.h"
31 31
32namespace KABC { 32namespace KABC {
33 33
34/** 34/**
35 @short Special ListViewItem, that is used by the AddresseeDialog. 35 @short Special ListViewItem, that is used by the AddresseeDialog.
36*/ 36*/
37class AddresseeItem : public QListViewItem 37class AddresseeItem : public QListViewItem
38{ 38{
39 public: 39 public:
40 40
41 /** 41 /**
42 Type of column 42 Type of column
43 @li @p Name - Name in Addressee 43 @li @p Name - Name in Addressee
44 @li @p Email - Email in Addressee 44 @li @p Email - Email in Addressee
45 */ 45 */
46 enum columns { Name = 0, Email = 1 }; 46 enum columns { Name = 0, Email = 1,Category = 2 };
47 47
48 /** 48 /**
49 Constructor. 49 Constructor.
50 50
51 @param parent The parent listview. 51 @param parent The parent listview.
52 @param addressee The associated addressee. 52 @param addressee The associated addressee.
53 */ 53 */
54 AddresseeItem( QListView *parent, const Addressee &addressee ); 54 AddresseeItem( QListView *parent, const Addressee &addressee );
55 55
56 /** 56 /**
57 Returns the addressee. 57 Returns the addressee.
58 */ 58 */
59 Addressee addressee() const { return mAddressee; } 59 Addressee addressee() const { return mAddressee; }
60 60
61 /** 61 /**
62 Method used by QListView to sort the items. 62 Method used by QListView to sort the items.
63 */ 63 */
64 virtual QString key( int column, bool ascending ) const; 64 virtual QString key( int column, bool ascending ) const;
65 65
66 private: 66 private:
67 Addressee mAddressee; 67 Addressee mAddressee;
68}; 68};
69 69
70/** 70/**
71 @short Dialog for selecting address book entries. 71 @short Dialog for selecting address book entries.
72 72
73 This class provides a dialog for selecting entries from the standard KDE 73 This class provides a dialog for selecting entries from the standard KDE
74 address book. Use the getAddressee() function to open a modal dialog, 74 address book. Use the getAddressee() function to open a modal dialog,
75 returning an address book entry. 75 returning an address book entry.
76 76
77 In the dialog you can select an entry from the list with the mouse or type in 77 In the dialog you can select an entry from the list with the mouse or type in
78 the first letters of the name or email address you are searching for. The 78 the first letters of the name or email address you are searching for. The
79 entry matching best is automatically selected. Use double click, pressing 79 entry matching best is automatically selected. Use double click, pressing
80 return or pressing the ok button to return the selected addressee to the 80 return or pressing the ok button to return the selected addressee to the
81 application. 81 application.
82*/ 82*/
83class AddresseeDialog : public KDialogBase 83class AddresseeDialog : public KDialogBase
84{ 84{
85 Q_OBJECT 85 Q_OBJECT
86 86
87 public: 87 public:
88 /** 88 /**
89 Construct addressbook entry select dialog. 89 Construct addressbook entry select dialog.
90 90
91 @param parent parent widget 91 @param parent parent widget
92 */ 92 */
93 AddresseeDialog( QWidget *parent=0, bool multiple=false ); 93 AddresseeDialog( QWidget *parent=0, bool multiple=false );
94 94
95 /** 95 /**
96 Destructor. 96 Destructor.
97 */ 97 */
98 virtual ~AddresseeDialog(); 98 virtual ~AddresseeDialog();
99 99
100 /** 100 /**
101 Return the address chosen. 101 Return the address chosen.
102 102
103 If it is a multiple select, this will return only the first address chosen 103 If it is a multiple select, this will return only the first address chosen
104 */ 104 */
105 Addressee addressee(); 105 Addressee addressee();
106 106
107 /** 107 /**
108 Return the list of addresses chosen 108 Return the list of addresses chosen
109 */ 109 */
110 Addressee::List addressees(); 110 Addressee::List addressees();