summaryrefslogtreecommitdiff
authoreilers <eilers>2002-12-11 17:15:12 (UTC)
committer eilers <eilers>2002-12-11 17:15:12 (UTC)
commit9f5e007f4859027eaeb989c620ec62fc698b44cc (patch) (unidiff)
treef87f5882e5e9f87c32ac3833d9396a0de16b1c40
parent77b921d0269820b16d8ec613fb8de578638d372e (diff)
downloadopie-9f5e007f4859027eaeb989c620ec62fc698b44cc.zip
opie-9f5e007f4859027eaeb989c620ec62fc698b44cc.tar.gz
opie-9f5e007f4859027eaeb989c620ec62fc698b44cc.tar.bz2
Added dialogbox to notify that the vcard was unable to read
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--core/pim/addressbook/addressbook.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/core/pim/addressbook/addressbook.cpp b/core/pim/addressbook/addressbook.cpp
index e009d52..a1ce5a0 100644
--- a/core/pim/addressbook/addressbook.cpp
+++ b/core/pim/addressbook/addressbook.cpp
@@ -1,739 +1,745 @@
1/********************************************************************** 1/**********************************************************************
2** Copyright (C) 2000 Trolltech AS. All rights reserved. 2** Copyright (C) 2000 Trolltech AS. All rights reserved.
3** 3**
4** This file is part of Qt Palmtop Environment. 4** This file is part of Qt Palmtop Environment.
5** 5**
6** This file may be distributed and/or modified under the terms of the 6** This file may be distributed and/or modified under the terms of the
7** GNU General Public License version 2 as published by the Free Software 7** GNU General Public License version 2 as published by the Free Software
8** Foundation and appearing in the file LICENSE.GPL included in the 8** Foundation and appearing in the file LICENSE.GPL included in the
9** packaging of this file. 9** packaging of this file.
10** 10**
11** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 11** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
12** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 12** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
13** 13**
14** See http://www.trolltech.com/gpl/ for GPL licensing information. 14** See http://www.trolltech.com/gpl/ for GPL licensing information.
15** 15**
16** OContact info@trolltech.com if any conditions of this licensing are 16** OContact info@trolltech.com if any conditions of this licensing are
17** not clear to you. 17** not clear to you.
18** 18**
19**********************************************************************/ 19**********************************************************************/
20 20
21#define QTOPIA_INTERNAL_FD 21#define QTOPIA_INTERNAL_FD
22 22
23#include "contacteditor.h" 23#include "contacteditor.h"
24#include "ablabel.h" 24#include "ablabel.h"
25#include "abview.h" 25#include "abview.h"
26#include "abtable.h" 26#include "abtable.h"
27// #include "addresssettings.h" 27// #include "addresssettings.h"
28#include "addressbook.h" 28#include "addressbook.h"
29 29
30 30
31#include <opie/ofileselector.h> 31#include <opie/ofileselector.h>
32#include <opie/ofiledialog.h> 32#include <opie/ofiledialog.h>
33#include <opie/ocontact.h> 33#include <opie/ocontact.h>
34#include <opie/ocontactaccessbackend_vcard.h> 34#include <opie/ocontactaccessbackend_vcard.h>
35 35
36#include <qpe/resource.h> 36#include <qpe/resource.h>
37#include <qpe/ir.h> 37#include <qpe/ir.h>
38#include <qpe/qpemessagebox.h> 38#include <qpe/qpemessagebox.h>
39#include <qpe/qcopenvelope_qws.h> 39#include <qpe/qcopenvelope_qws.h>
40#include <qpe/qpetoolbar.h> 40#include <qpe/qpetoolbar.h>
41#include <qpe/qpemenubar.h> 41#include <qpe/qpemenubar.h>
42// #include <qtoolbar.h> 42// #include <qtoolbar.h>
43// #include <qmenubar.h> 43// #include <qmenubar.h>
44#include <qpe/qpeapplication.h> 44#include <qpe/qpeapplication.h>
45#include <qpe/config.h> 45#include <qpe/config.h>
46 46
47#include <qaction.h> 47#include <qaction.h>
48#include <qdialog.h> 48#include <qdialog.h>
49#include <qdir.h> 49#include <qdir.h>
50#include <qfile.h> 50#include <qfile.h>
51#include <qimage.h> 51#include <qimage.h>
52#include <qlayout.h> 52#include <qlayout.h>
53#include <qmessagebox.h> 53#include <qmessagebox.h>
54#include <qpixmap.h> 54#include <qpixmap.h>
55#include <qpopupmenu.h> 55#include <qpopupmenu.h>
56#include <qstringlist.h> 56#include <qstringlist.h>
57#include <qtoolbutton.h> 57#include <qtoolbutton.h>
58#include <qwhatsthis.h> 58#include <qwhatsthis.h>
59#include <qdatetime.h> 59#include <qdatetime.h>
60 60
61#include <stdlib.h> 61#include <stdlib.h>
62#include <sys/stat.h> 62#include <sys/stat.h>
63#include <sys/types.h> 63#include <sys/types.h>
64#include <fcntl.h> 64#include <fcntl.h>
65#include <unistd.h> 65#include <unistd.h>
66 66
67 67
68#include "picker.h" 68#include "picker.h"
69#include "configdlg.h" 69#include "configdlg.h"
70 70
71extern QString addressbookPersonalVCardName(); 71extern QString addressbookPersonalVCardName();
72 72
73AddressbookWindow::AddressbookWindow( QWidget *parent, const char *name, 73AddressbookWindow::AddressbookWindow( QWidget *parent, const char *name,
74 WFlags f ) 74 WFlags f )
75 : QMainWindow( parent, name, f ), 75 : QMainWindow( parent, name, f ),
76 catMenu (0l), 76 catMenu (0l),
77 abEditor(0l), 77 abEditor(0l),
78 syncing(FALSE), 78 syncing(FALSE),
79 m_tableViewButton(0l), 79 m_tableViewButton(0l),
80 m_cardViewButton(0l) 80 m_cardViewButton(0l)
81{ 81{
82 isLoading = true; 82 isLoading = true;
83 83
84 m_config.load(); 84 m_config.load();
85 85
86 setCaption( tr("Contacts") ); 86 setCaption( tr("Contacts") );
87 setIcon( Resource::loadPixmap( "AddressBook" ) ); 87 setIcon( Resource::loadPixmap( "AddressBook" ) );
88 88
89 // Settings for Main Menu 89 // Settings for Main Menu
90 setToolBarsMovable( true ); 90 setToolBarsMovable( true );
91 setRightJustification( true ); 91 setRightJustification( true );
92 92
93 // Create Toolbar 93 // Create Toolbar
94 listTools = new QPEToolBar( this, "list operations" ); 94 listTools = new QPEToolBar( this, "list operations" );
95 listTools->setHorizontalStretchable( true ); 95 listTools->setHorizontalStretchable( true );
96 addToolBar( listTools ); 96 addToolBar( listTools );
97 moveToolBar( listTools, m_config.getToolBarPos() ); 97 moveToolBar( listTools, m_config.getToolBarPos() );
98 98
99 QPEMenuBar *mbList = new QPEMenuBar( this ); 99 QPEMenuBar *mbList = new QPEMenuBar( this );
100 mbList->setMargin( 0 ); 100 mbList->setMargin( 0 );
101 101
102 QPopupMenu *edit = new QPopupMenu( mbList ); 102 QPopupMenu *edit = new QPopupMenu( mbList );
103 mbList->insertItem( tr( "Contact" ), edit ); 103 mbList->insertItem( tr( "Contact" ), edit );
104 104
105 105
106 // View Icons 106 // View Icons
107 m_tableViewButton = new QAction( tr( "List" ), Resource::loadPixmap( "datebook/weeklst" ), 107 m_tableViewButton = new QAction( tr( "List" ), Resource::loadPixmap( "datebook/weeklst" ),
108 QString::null, 0, this, 0 ); 108 QString::null, 0, this, 0 );
109 connect( m_tableViewButton, SIGNAL( activated() ), this, SLOT( slotListView() ) ); 109 connect( m_tableViewButton, SIGNAL( activated() ), this, SLOT( slotListView() ) );
110 m_tableViewButton->setToggleAction( true ); 110 m_tableViewButton->setToggleAction( true );
111 m_tableViewButton->addTo( listTools ); 111 m_tableViewButton->addTo( listTools );
112 m_cardViewButton = new QAction( tr( "Card" ), Resource::loadPixmap( "day" ), QString::null, 0, this, 0 ); 112 m_cardViewButton = new QAction( tr( "Card" ), Resource::loadPixmap( "day" ), QString::null, 0, this, 0 );
113 connect( m_cardViewButton, SIGNAL( activated() ), this, SLOT( slotCardView() ) ); 113 connect( m_cardViewButton, SIGNAL( activated() ), this, SLOT( slotCardView() ) );
114 m_cardViewButton->setToggleAction( true ); 114 m_cardViewButton->setToggleAction( true );
115 m_cardViewButton->addTo( listTools ); 115 m_cardViewButton->addTo( listTools );
116 116
117 listTools->addSeparator(); 117 listTools->addSeparator();
118 118
119 // Other Buttons 119 // Other Buttons
120 QAction *a = new QAction( tr( "New" ), Resource::loadPixmap( "new" ), QString::null, 120 QAction *a = new QAction( tr( "New" ), Resource::loadPixmap( "new" ), QString::null,
121 0, this, 0 ); 121 0, this, 0 );
122 actionNew = a; 122 actionNew = a;
123 connect( a, SIGNAL( activated() ), this, SLOT( slotListNew() ) ); 123 connect( a, SIGNAL( activated() ), this, SLOT( slotListNew() ) );
124 a->addTo( edit ); 124 a->addTo( edit );
125 a->addTo( listTools ); 125 a->addTo( listTools );
126 126
127 a = new QAction( tr( "Edit" ), Resource::loadPixmap( "edit" ), QString::null, 127 a = new QAction( tr( "Edit" ), Resource::loadPixmap( "edit" ), QString::null,
128 0, this, 0 ); 128 0, this, 0 );
129 actionEdit = a; 129 actionEdit = a;
130 connect( a, SIGNAL( activated() ), this, SLOT( slotViewEdit() ) ); 130 connect( a, SIGNAL( activated() ), this, SLOT( slotViewEdit() ) );
131 a->addTo( edit ); 131 a->addTo( edit );
132 a->addTo( listTools ); 132 a->addTo( listTools );
133 133
134 a = new QAction( tr( "Delete" ), Resource::loadPixmap( "trash" ), QString::null, 134 a = new QAction( tr( "Delete" ), Resource::loadPixmap( "trash" ), QString::null,
135 0, this, 0 ); 135 0, this, 0 );
136 actionTrash = a; 136 actionTrash = a;
137 connect( a, SIGNAL( activated() ), this, SLOT( slotListDelete() ) ); 137 connect( a, SIGNAL( activated() ), this, SLOT( slotListDelete() ) );
138 a->addTo( edit ); 138 a->addTo( edit );
139 a->addTo( listTools ); 139 a->addTo( listTools );
140 140
141 141
142 // make it possible to go directly to businesscard via qcop call 142 // make it possible to go directly to businesscard via qcop call
143#if defined(Q_WS_QWS) 143#if defined(Q_WS_QWS)
144#if !defined(QT_NO_COP) 144#if !defined(QT_NO_COP)
145 QCopChannel *addressChannel = new QCopChannel("QPE/Addressbook" , this ); 145 QCopChannel *addressChannel = new QCopChannel("QPE/Addressbook" , this );
146 connect (addressChannel, SIGNAL( received(const QCString &, const QByteArray &)), 146 connect (addressChannel, SIGNAL( received(const QCString &, const QByteArray &)),
147 this, SLOT ( appMessage(const QCString &, const QByteArray &) ) ); 147 this, SLOT ( appMessage(const QCString &, const QByteArray &) ) );
148#endif 148#endif
149#endif 149#endif
150 a = new QAction( tr( "Find" ), Resource::loadPixmap( "mag" ), 150 a = new QAction( tr( "Find" ), Resource::loadPixmap( "mag" ),
151 QString::null, 0, this, 0 ); 151 QString::null, 0, this, 0 );
152 actionFind = a; 152 actionFind = a;
153 connect( a, SIGNAL(activated()), this, SLOT( slotFindOpen()) ); 153 connect( a, SIGNAL(activated()), this, SLOT( slotFindOpen()) );
154 a->addTo( edit ); 154 a->addTo( edit );
155 a->addTo( listTools ); 155 a->addTo( listTools );
156 156
157 // Much better search widget, taken from QTReader.. (se) 157 // Much better search widget, taken from QTReader.. (se)
158 searchBar = new OFloatBar( "Search", this, QMainWindow::Top, TRUE ); 158 searchBar = new OFloatBar( "Search", this, QMainWindow::Top, TRUE );
159 searchBar->setHorizontalStretchable( TRUE ); 159 searchBar->setHorizontalStretchable( TRUE );
160 searchBar->hide(); 160 searchBar->hide();
161 searchEdit = new QLineEdit( searchBar, "searchEdit" ); 161 searchEdit = new QLineEdit( searchBar, "searchEdit" );
162 162
163 // QFont f("unifont", 16 /*, QFont::Bold*/); 163 // QFont f("unifont", 16 /*, QFont::Bold*/);
164 // searchEdit->setFont( f ); 164 // searchEdit->setFont( f );
165 165
166 searchBar->setStretchableWidget( searchEdit ); 166 searchBar->setStretchableWidget( searchEdit );
167 connect( searchEdit, SIGNAL( returnPressed( ) ), 167 connect( searchEdit, SIGNAL( returnPressed( ) ),
168 this, SLOT( slotFind( ) ) ); 168 this, SLOT( slotFind( ) ) );
169 169
170 a = new QAction( tr( "Start Search" ), Resource::loadPixmap( "enter" ), QString::null, 0, this, 0 ); 170 a = new QAction( tr( "Start Search" ), Resource::loadPixmap( "enter" ), QString::null, 0, this, 0 );
171 connect( a, SIGNAL( activated() ), this, SLOT( slotFind() ) ); 171 connect( a, SIGNAL( activated() ), this, SLOT( slotFind() ) );
172 a->addTo( searchBar ); 172 a->addTo( searchBar );
173 173
174 a = new QAction( tr( "Close Find" ), Resource::loadPixmap( "close" ), QString::null, 0, this, 0 ); 174 a = new QAction( tr( "Close Find" ), Resource::loadPixmap( "close" ), QString::null, 0, this, 0 );
175 connect( a, SIGNAL( activated() ), this, SLOT( slotFindClose() ) ); 175 connect( a, SIGNAL( activated() ), this, SLOT( slotFindClose() ) );
176 a->addTo( searchBar ); 176 a->addTo( searchBar );
177 177
178 a = new QAction( tr( "Write Mail To" ), Resource::loadPixmap( "mail/sendmail" ), 178 a = new QAction( tr( "Write Mail To" ), Resource::loadPixmap( "mail/sendmail" ),
179 QString::null, 0, this, 0 ); 179 QString::null, 0, this, 0 );
180 //a->setEnabled( FALSE ); we got support for it now :) zecke 180 //a->setEnabled( FALSE ); we got support for it now :) zecke
181 actionMail = a; 181 actionMail = a;
182 connect( a, SIGNAL( activated() ), this, SLOT( writeMail() ) ); 182 connect( a, SIGNAL( activated() ), this, SLOT( writeMail() ) );
183 a->addTo( edit ); 183 a->addTo( edit );
184 a->addTo( listTools ); 184 a->addTo( listTools );
185 185
186 if ( Ir::supported() ) { 186 if ( Ir::supported() ) {
187 a = new QAction( tr ("Beam Entry" ), Resource::loadPixmap( "beam" ), QString::null, 187 a = new QAction( tr ("Beam Entry" ), Resource::loadPixmap( "beam" ), QString::null,
188 0, this, 0 ); 188 0, this, 0 );
189 actionBeam = a; 189 actionBeam = a;
190 connect( a, SIGNAL( activated() ), this, SLOT( slotBeam() ) ); 190 connect( a, SIGNAL( activated() ), this, SLOT( slotBeam() ) );
191 a->addTo( edit ); 191 a->addTo( edit );
192 a->addTo( listTools ); 192 a->addTo( listTools );
193 } 193 }
194 194
195 edit->insertSeparator(); 195 edit->insertSeparator();
196 196
197 a = new QAction( tr("Import vCard"), QString::null, 0, 0); 197 a = new QAction( tr("Import vCard"), QString::null, 0, 0);
198 actionPersonal = a; 198 actionPersonal = a;
199 connect( a, SIGNAL( activated() ), this, SLOT( importvCard() ) ); 199 connect( a, SIGNAL( activated() ), this, SLOT( importvCard() ) );
200 a->addTo( edit ); 200 a->addTo( edit );
201 201
202 edit->insertSeparator(); 202 edit->insertSeparator();
203 203
204 a = new QAction( tr("My Personal Details"), QString::null, 0, 0, 0, TRUE ); 204 a = new QAction( tr("My Personal Details"), QString::null, 0, 0, 0, TRUE );
205 actionPersonal = a; 205 actionPersonal = a;
206 connect( a, SIGNAL( activated() ), this, SLOT( slotPersonalView() ) ); 206 connect( a, SIGNAL( activated() ), this, SLOT( slotPersonalView() ) );
207 a->addTo( edit ); 207 a->addTo( edit );
208 208
209 209
210#ifdef __DEBUG_RELEASE 210#ifdef __DEBUG_RELEASE
211 // Remove this function for public Release ! This is only 211 // Remove this function for public Release ! This is only
212 // for debug purposes .. 212 // for debug purposes ..
213 a = new QAction( tr( "Save all Data"), QString::null, 0, 0 ); 213 a = new QAction( tr( "Save all Data"), QString::null, 0, 0 );
214 connect( a, SIGNAL( activated() ), this , SLOT( slotSave() ) ); 214 connect( a, SIGNAL( activated() ), this , SLOT( slotSave() ) );
215 a->addTo( edit ); 215 a->addTo( edit );
216#endif 216#endif
217 a = new QAction( tr( "Config" ), Resource::loadPixmap( "today/config" ), QString::null, 217 a = new QAction( tr( "Config" ), Resource::loadPixmap( "today/config" ), QString::null,
218 0, this, 0 ); 218 0, this, 0 );
219 connect( a, SIGNAL( activated() ), this, SLOT( slotConfig() ) ); 219 connect( a, SIGNAL( activated() ), this, SLOT( slotConfig() ) );
220 a->addTo( edit ); 220 a->addTo( edit );
221 221
222 // Create Views 222 // Create Views
223 listContainer = new QWidget( this ); 223 listContainer = new QWidget( this );
224 QVBoxLayout *vb = new QVBoxLayout( listContainer ); 224 QVBoxLayout *vb = new QVBoxLayout( listContainer );
225 225
226 m_abView = new AbView( listContainer, m_config.orderList() ); 226 m_abView = new AbView( listContainer, m_config.orderList() );
227 vb->addWidget( m_abView ); 227 vb->addWidget( m_abView );
228 // abList->setHScrollBarMode( QScrollView::AlwaysOff ); 228 // abList->setHScrollBarMode( QScrollView::AlwaysOff );
229 connect( m_abView, SIGNAL( signalViewSwitched ( int ) ), 229 connect( m_abView, SIGNAL( signalViewSwitched ( int ) ),
230 this, SLOT( slotViewSwitched( int ) ) ); 230 this, SLOT( slotViewSwitched( int ) ) );
231 231
232 232
233 QObject::connect( m_abView, SIGNAL(signalNotFound()), this, SLOT(slotNotFound()) ); 233 QObject::connect( m_abView, SIGNAL(signalNotFound()), this, SLOT(slotNotFound()) );
234 234
235 m_abView->load(); 235 m_abView->load();
236 236
237 // Letter Picker 237 // Letter Picker
238 pLabel = new LetterPicker( listContainer ); 238 pLabel = new LetterPicker( listContainer );
239 connect(pLabel, SIGNAL(letterClicked(char)), this, SLOT(slotSetLetter(char))); 239 connect(pLabel, SIGNAL(letterClicked(char)), this, SLOT(slotSetLetter(char)));
240 connect(m_abView, SIGNAL( signalClearLetterPicker() ), pLabel, SLOT( clear() ) ); 240 connect(m_abView, SIGNAL( signalClearLetterPicker() ), pLabel, SLOT( clear() ) );
241 241
242 vb->addWidget( pLabel ); 242 vb->addWidget( pLabel );
243 243
244 // Category Menu 244 // Category Menu
245 catMenu = new QPopupMenu( this ); 245 catMenu = new QPopupMenu( this );
246 catMenu->setCheckable( TRUE ); 246 catMenu->setCheckable( TRUE );
247 connect( catMenu, SIGNAL(activated(int)), this, SLOT(slotSetCategory(int)) ); 247 connect( catMenu, SIGNAL(activated(int)), this, SLOT(slotSetCategory(int)) );
248 populateCategories(); 248 populateCategories();
249 mbList->insertItem( tr("View"), catMenu ); 249 mbList->insertItem( tr("View"), catMenu );
250 250
251 defaultFont = new QFont( m_abView->font() ); 251 defaultFont = new QFont( m_abView->font() );
252 slotSetFont(m_config.fontSize()); 252 slotSetFont(m_config.fontSize());
253 m_curFontSize = m_config.fontSize(); 253 m_curFontSize = m_config.fontSize();
254 254
255 setCentralWidget(listContainer); 255 setCentralWidget(listContainer);
256 256
257 // qDebug("adressbook contrsuction: t=%d", t.elapsed() ); 257 // qDebug("adressbook contrsuction: t=%d", t.elapsed() );
258 258
259 259
260 isLoading = false; 260 isLoading = false;
261} 261}
262 262
263 263
264void AddressbookWindow::slotConfig() 264void AddressbookWindow::slotConfig()
265{ 265{
266 ConfigDlg* dlg = new ConfigDlg( this, "Config" ); 266 ConfigDlg* dlg = new ConfigDlg( this, "Config" );
267 dlg -> setConfig( m_config ); 267 dlg -> setConfig( m_config );
268 dlg -> showMaximized(); 268 dlg -> showMaximized();
269 if ( dlg -> exec() ) { 269 if ( dlg -> exec() ) {
270 qWarning ("Config Dialog accepted !"); 270 qWarning ("Config Dialog accepted !");
271 m_config = dlg -> getConfig(); 271 m_config = dlg -> getConfig();
272 if ( m_curFontSize != m_config.fontSize() ){ 272 if ( m_curFontSize != m_config.fontSize() ){
273 qWarning("Font was changed!"); 273 qWarning("Font was changed!");
274 m_curFontSize = m_config.fontSize(); 274 m_curFontSize = m_config.fontSize();
275 emit slotSetFont( m_curFontSize ); 275 emit slotSetFont( m_curFontSize );
276 } 276 }
277 m_abView -> setListOrder( m_config.orderList() ); 277 m_abView -> setListOrder( m_config.orderList() );
278 } 278 }
279 279
280 delete dlg; 280 delete dlg;
281} 281}
282 282
283 283
284void AddressbookWindow::slotSetFont( int size ) 284void AddressbookWindow::slotSetFont( int size )
285{ 285{
286 qWarning("void AddressbookWindow::slotSetFont( %d )", size); 286 qWarning("void AddressbookWindow::slotSetFont( %d )", size);
287 287
288 if (size > 2 || size < 0) 288 if (size > 2 || size < 0)
289 size = 1; 289 size = 1;
290 290
291 m_config.setFontSize( size ); 291 m_config.setFontSize( size );
292 292
293 QFont *currentFont; 293 QFont *currentFont;
294 294
295 switch (size) { 295 switch (size) {
296 case 0: 296 case 0:
297 m_abView->setFont( QFont( defaultFont->family(), defaultFont->pointSize() - 2 ) ); 297 m_abView->setFont( QFont( defaultFont->family(), defaultFont->pointSize() - 2 ) );
298 currentFont = new QFont (m_abView->font()); 298 currentFont = new QFont (m_abView->font());
299 // abList->resizeRows(currentFont->pixelSize() + 7); :SX 299 // abList->resizeRows(currentFont->pixelSize() + 7); :SX
300 // abList->resizeRows(); 300 // abList->resizeRows();
301 break; 301 break;
302 case 1: 302 case 1:
303 m_abView->setFont( *defaultFont ); 303 m_abView->setFont( *defaultFont );
304 currentFont = new QFont (m_abView->font()); 304 currentFont = new QFont (m_abView->font());
305 // // abList->resizeRows(currentFont->pixelSize() + 7); 305 // // abList->resizeRows(currentFont->pixelSize() + 7);
306 // abList->resizeRows(); 306 // abList->resizeRows();
307 break; 307 break;
308 case 2: 308 case 2:
309 m_abView->setFont( QFont( defaultFont->family(), defaultFont->pointSize() + 2 ) ); 309 m_abView->setFont( QFont( defaultFont->family(), defaultFont->pointSize() + 2 ) );
310 currentFont = new QFont (m_abView->font()); 310 currentFont = new QFont (m_abView->font());
311 // //abList->resizeRows(currentFont->pixelSize() + 7); 311 // //abList->resizeRows(currentFont->pixelSize() + 7);
312 // abList->resizeRows(); 312 // abList->resizeRows();
313 break; 313 break;
314 } 314 }
315} 315}
316 316
317 317
318 318
319void AddressbookWindow::importvCard() { 319void AddressbookWindow::importvCard() {
320 QString str = OFileDialog::getOpenFileName( 1,"/");//,"", "*", this ); 320 QString str = OFileDialog::getOpenFileName( 1,"/");//,"", "*", this );
321 if(!str.isEmpty() ){ 321 if(!str.isEmpty() ){
322 setDocument((const QString&) str ); 322 setDocument((const QString&) str );
323 } 323 }
324 324
325} 325}
326 326
327void AddressbookWindow::setDocument( const QString &filename ) 327void AddressbookWindow::setDocument( const QString &filename )
328{ 328{
329 qWarning( "void AddressbookWindow::setDocument( %s )", filename.latin1() ); 329 qWarning( "void AddressbookWindow::setDocument( %s )", filename.latin1() );
330 330
331 if ( filename.find(".vcf") != int(filename.length()) - 4 ){ 331 if ( filename.find(".vcf") != int(filename.length()) - 4 ){
332 332
333 333
334 334
335 switch( QMessageBox::information( this, tr ( "Right file type ?" ), 335 switch( QMessageBox::information( this, tr ( "Right file type ?" ),
336 tr( "The selected file \n does not end with \".vcf\".\n Do you really want to open it?" ), 336 tr( "The selected file \n does not end with \".vcf\".\n Do you really want to open it?" ),
337 tr( "&Yes" ), tr( "&No" ), QString::null, 337 tr( "&Yes" ), tr( "&No" ), QString::null,
338 0, // Enter == button 0 338 0, // Enter == button 0
339 2 ) ) { // Escape == button 2 339 2 ) ) { // Escape == button 2
340 case 0: 340 case 0:
341 qWarning("YES clicked"); 341 qWarning("YES clicked");
342 break; 342 break;
343 case 1: 343 case 1:
344 qWarning("NO clicked"); 344 qWarning("NO clicked");
345 return; 345 return;
346 break; 346 break;
347 } 347 }
348 } 348 }
349 349
350 OContactAccessBackend* vcard_backend = new OContactAccessBackend_VCard( QString::null, 350 OContactAccessBackend* vcard_backend = new OContactAccessBackend_VCard( QString::null,
351 filename ); 351 filename );
352 OContactAccess* access = new OContactAccess ( "addressbook", QString::null , vcard_backend, true ); 352 OContactAccess* access = new OContactAccess ( "addressbook", QString::null , vcard_backend, true );
353 OContactAccess::List allList = access->allRecords(); 353 OContactAccess::List allList = access->allRecords();
354 qWarning( "Found number of contacts in File: %d", allList.count() ); 354 qWarning( "Found number of contacts in File: %d", allList.count() );
355 355
356 if ( !allList.count() ) {
357 QMessageBox::information( this, "Import VCard",
358 "It was impossible to import the VCard.\n"
359 "The VCard may be corrupted !" );
360 }
361
356 bool doAsk = true; 362 bool doAsk = true;
357 OContactAccess::List::Iterator it; 363 OContactAccess::List::Iterator it;
358 for ( it = allList.begin(); it != allList.end(); ++it ){ 364 for ( it = allList.begin(); it != allList.end(); ++it ){
359 qWarning("Adding Contact from: %s", (*it).fullName().latin1() ); 365 qWarning("Adding Contact from: %s", (*it).fullName().latin1() );
360 if ( doAsk ){ 366 if ( doAsk ){
361 switch( QMessageBox::information( this, tr ( "Add Contact ?" ), 367 switch( QMessageBox::information( this, tr ( "Add Contact ?" ),
362 tr( "Do you really want add contact for \n%1 ?" ) 368 tr( "Do you really want add contact for \n%1 ?" )
363 .arg( (*it).fullName().latin1() ), 369 .arg( (*it).fullName().latin1() ),
364 tr( "&Yes" ), tr( "&No" ), tr( "&AllYes"), 370 tr( "&Yes" ), tr( "&No" ), tr( "&AllYes"),
365 0, // Enter == button 0 371 0, // Enter == button 0
366 2 ) ) { // Escape == button 2 372 2 ) ) { // Escape == button 2
367 case 0: 373 case 0:
368 qWarning("YES clicked"); 374 qWarning("YES clicked");
369 m_abView->addEntry( *it ); 375 m_abView->addEntry( *it );
370 break; 376 break;
371 case 1: 377 case 1:
372 qWarning("NO clicked"); 378 qWarning("NO clicked");
373 break; 379 break;
374 case 2: 380 case 2:
375 qWarning("YesAll clicked"); 381 qWarning("YesAll clicked");
376 doAsk = false; 382 doAsk = false;
377 break; 383 break;
378 } 384 }
379 }else 385 }else
380 m_abView->addEntry( *it ); 386 m_abView->addEntry( *it );
381 387
382 } 388 }
383 389
384 delete access; 390 delete access;
385} 391}
386 392
387void AddressbookWindow::resizeEvent( QResizeEvent *e ) 393void AddressbookWindow::resizeEvent( QResizeEvent *e )
388{ 394{
389 QMainWindow::resizeEvent( e ); 395 QMainWindow::resizeEvent( e );
390 396
391 397
392} 398}
393 399
394AddressbookWindow::~AddressbookWindow() 400AddressbookWindow::~AddressbookWindow()
395{ 401{
396 ToolBarDock dock; 402 ToolBarDock dock;
397 int dummy; 403 int dummy;
398 bool bDummy; 404 bool bDummy;
399 getLocation ( listTools, dock, dummy, bDummy, dummy ); 405 getLocation ( listTools, dock, dummy, bDummy, dummy );
400 m_config.setToolBarDock( dock ); 406 m_config.setToolBarDock( dock );
401 m_config.save(); 407 m_config.save();
402} 408}
403 409
404void AddressbookWindow::slotUpdateToolbar() 410void AddressbookWindow::slotUpdateToolbar()
405{ 411{
406 OContact ce = m_abView->currentEntry(); 412 OContact ce = m_abView->currentEntry();
407 actionMail->setEnabled( !ce.defaultEmail().isEmpty() ); 413 actionMail->setEnabled( !ce.defaultEmail().isEmpty() );
408} 414}
409 415
410void AddressbookWindow::slotListNew() 416void AddressbookWindow::slotListNew()
411{ 417{
412 OContact cnt; 418 OContact cnt;
413 if( !syncing ) { 419 if( !syncing ) {
414 editEntry( NewEntry ); 420 editEntry( NewEntry );
415 } else { 421 } else {
416 QMessageBox::warning(this, tr("OContacts"), 422 QMessageBox::warning(this, tr("OContacts"),
417 tr("Can not edit data, currently syncing")); 423 tr("Can not edit data, currently syncing"));
418 } 424 }
419} 425}
420 426
421// void AddressbookWindow::slotListView() 427// void AddressbookWindow::slotListView()
422// { 428// {
423 // m_abView -> init( abList->currentEntry() ); 429 // m_abView -> init( abList->currentEntry() );
424 // // :SX mView->sync(); 430 // // :SX mView->sync();
425 // //:SXshowView(); 431 // //:SXshowView();
426// } 432// }
427 433
428void AddressbookWindow::slotListDelete() 434void AddressbookWindow::slotListDelete()
429{ 435{
430 if(!syncing) { 436 if(!syncing) {
431 OContact tmpEntry = m_abView ->currentEntry(); 437 OContact tmpEntry = m_abView ->currentEntry();
432 438
433 // get a name, do the best we can... 439 // get a name, do the best we can...
434 QString strName = tmpEntry.fullName(); 440 QString strName = tmpEntry.fullName();
435 if ( strName.isEmpty() ) { 441 if ( strName.isEmpty() ) {
436 strName = tmpEntry.company(); 442 strName = tmpEntry.company();
437 if ( strName.isEmpty() ) 443 if ( strName.isEmpty() )
438 strName = "No Name"; 444 strName = "No Name";
439 } 445 }
440 446
441 447
442 if ( QPEMessageBox::confirmDelete( this, tr( "Contacts" ), 448 if ( QPEMessageBox::confirmDelete( this, tr( "Contacts" ),
443 strName ) ) { 449 strName ) ) {
444 m_abView->removeEntry( tmpEntry.uid() ); 450 m_abView->removeEntry( tmpEntry.uid() );
445 } 451 }
446 } else { 452 } else {
447 QMessageBox::warning( this, tr("Contacts"), 453 QMessageBox::warning( this, tr("Contacts"),
448 tr("Can not edit data, currently syncing") ); 454 tr("Can not edit data, currently syncing") );
449 } 455 }
450} 456}
451 457
452void AddressbookWindow::slotFindOpen() 458void AddressbookWindow::slotFindOpen()
453{ 459{
454 searchBar->show(); 460 searchBar->show();
455 m_abView -> inSearch(); 461 m_abView -> inSearch();
456 searchEdit->setFocus(); 462 searchEdit->setFocus();
457} 463}
458void AddressbookWindow::slotFindClose() 464void AddressbookWindow::slotFindClose()
459{ 465{
460 searchBar->hide(); 466 searchBar->hide();
461 m_abView -> offSearch(); 467 m_abView -> offSearch();
462 // m_abView->setFocus(); 468 // m_abView->setFocus();
463} 469}
464 470
465 471
466void AddressbookWindow::slotFind() 472void AddressbookWindow::slotFind()
467{ 473{
468 m_abView->slotDoFind( searchEdit->text(), m_config.beCaseSensitive(), m_config.useRegExp(), false); 474 m_abView->slotDoFind( searchEdit->text(), m_config.beCaseSensitive(), m_config.useRegExp(), false);
469 475
470 searchEdit->clearFocus(); 476 searchEdit->clearFocus();
471 // m_abView->setFocus(); 477 // m_abView->setFocus();
472 478
473} 479}
474 480
475void AddressbookWindow::slotViewBack() 481void AddressbookWindow::slotViewBack()
476{ 482{
477 // :SX showList(); 483 // :SX showList();
478} 484}
479 485
480void AddressbookWindow::slotViewEdit() 486void AddressbookWindow::slotViewEdit()
481{ 487{
482 if(!syncing) { 488 if(!syncing) {
483 if (actionPersonal->isOn()) { 489 if (actionPersonal->isOn()) {
484 editPersonal(); 490 editPersonal();
485 } else { 491 } else {
486 editEntry( EditEntry ); 492 editEntry( EditEntry );
487 } 493 }
488 } else { 494 } else {
489 QMessageBox::warning( this, tr("Contacts"), 495 QMessageBox::warning( this, tr("Contacts"),
490 tr("Can not edit data, currently syncing") ); 496 tr("Can not edit data, currently syncing") );
491 } 497 }
492} 498}
493 499
494 500
495 501
496void AddressbookWindow::writeMail() 502void AddressbookWindow::writeMail()
497{ 503{
498 OContact c = m_abView -> currentEntry(); 504 OContact c = m_abView -> currentEntry();
499 QString name = c.fileAs(); 505 QString name = c.fileAs();
500 QString email = c.defaultEmail(); 506 QString email = c.defaultEmail();
501 507
502 // I prefer the OPIE-Environment variable before the 508 // I prefer the OPIE-Environment variable before the
503 // QPE-one.. 509 // QPE-one..
504 QString basepath = QString::fromLatin1( getenv("OPIEDIR") ); 510 QString basepath = QString::fromLatin1( getenv("OPIEDIR") );
505 if ( basepath.isEmpty() ) 511 if ( basepath.isEmpty() )
506 basepath = QString::fromLatin1( getenv("QPEDIR") ); 512 basepath = QString::fromLatin1( getenv("QPEDIR") );
507 513
508 // Try to access the preferred. If not possible, try to 514 // Try to access the preferred. If not possible, try to
509 // switch to the other one.. 515 // switch to the other one..
510 if ( m_config.useQtMail() ){ 516 if ( m_config.useQtMail() ){
511 qWarning ("Accessing: %s", (basepath + "/bin/qtmail").latin1()); 517 qWarning ("Accessing: %s", (basepath + "/bin/qtmail").latin1());
512 if ( QFile::exists( basepath + "/bin/qtmail" ) ){ 518 if ( QFile::exists( basepath + "/bin/qtmail" ) ){
513 qWarning ("QCop"); 519 qWarning ("QCop");
514 QCopEnvelope e("QPE/Application/qtmail", "writeMail(QString,QString)"); 520 QCopEnvelope e("QPE/Application/qtmail", "writeMail(QString,QString)");
515 e << name << email; 521 e << name << email;
516 return; 522 return;
517 } else 523 } else
518 m_config.setUseOpieMail( true ); 524 m_config.setUseOpieMail( true );
519 } 525 }
520 if ( m_config.useOpieMail() ){ 526 if ( m_config.useOpieMail() ){
521 qWarning ("Accessing: %s", (basepath + "/bin/mail").latin1()); 527 qWarning ("Accessing: %s", (basepath + "/bin/mail").latin1());
522 if ( QFile::exists( basepath + "/bin/mail" ) ){ 528 if ( QFile::exists( basepath + "/bin/mail" ) ){
523 qWarning ("QCop"); 529 qWarning ("QCop");
524 QCopEnvelope e("QPE/Application/mail", "writeMail(QString,QString)"); 530 QCopEnvelope e("QPE/Application/mail", "writeMail(QString,QString)");
525 e << name << email; 531 e << name << email;
526 return; 532 return;
527 } else 533 } else
528 m_config.setUseQtMail( true ); 534 m_config.setUseQtMail( true );
529 } 535 }
530 536
531} 537}
532 538
533static const char * beamfile = "/tmp/obex/contact.vcf"; 539static const char * beamfile = "/tmp/obex/contact.vcf";
534 540
535void AddressbookWindow::slotBeam() 541void AddressbookWindow::slotBeam()
536{ 542{
537 QString filename; 543 QString filename;
538 OContact c; 544 OContact c;
539 if ( actionPersonal->isOn() ) { 545 if ( actionPersonal->isOn() ) {
540 filename = addressbookPersonalVCardName(); 546 filename = addressbookPersonalVCardName();
541 if (!QFile::exists(filename)) 547 if (!QFile::exists(filename))
542 return; // can't beam a non-existent file 548 return; // can't beam a non-existent file
543 OContactAccessBackend* vcard_backend = new OContactAccessBackend_VCard( QString::null, 549 OContactAccessBackend* vcard_backend = new OContactAccessBackend_VCard( QString::null,
544 filename ); 550 filename );
545 OContactAccess* access = new OContactAccess ( "addressbook", QString::null , vcard_backend, true ); 551 OContactAccess* access = new OContactAccess ( "addressbook", QString::null , vcard_backend, true );
546 OContactAccess::List allList = access->allRecords(); 552 OContactAccess::List allList = access->allRecords();
547 OContactAccess::List::Iterator it = allList.begin(); // Just take first 553 OContactAccess::List::Iterator it = allList.begin(); // Just take first
548 c = *it; 554 c = *it;
549 555
550 delete access; 556 delete access;
551 } else { 557 } else {
552 unlink( beamfile ); // delete if exists 558 unlink( beamfile ); // delete if exists
553 mkdir("/tmp/obex/", 0755); 559 mkdir("/tmp/obex/", 0755);
554 c = m_abView -> currentEntry(); 560 c = m_abView -> currentEntry();
555 OContactAccessBackend* vcard_backend = new OContactAccessBackend_VCard( QString::null, 561 OContactAccessBackend* vcard_backend = new OContactAccessBackend_VCard( QString::null,
556 beamfile ); 562 beamfile );
557 OContactAccess* access = new OContactAccess ( "addressbook", QString::null , vcard_backend, true ); 563 OContactAccess* access = new OContactAccess ( "addressbook", QString::null , vcard_backend, true );
558 access->add( c ); 564 access->add( c );
559 access->save(); 565 access->save();
560 delete access; 566 delete access;
561 567
562 filename = beamfile; 568 filename = beamfile;
563 } 569 }
564 570
565 571
566 Ir *ir = new Ir( this ); 572 Ir *ir = new Ir( this );
567 connect( ir, SIGNAL( done( Ir * ) ), this, SLOT( beamDone( Ir * ) ) ); 573 connect( ir, SIGNAL( done( Ir * ) ), this, SLOT( beamDone( Ir * ) ) );
568 QString description = c.fullName(); 574 QString description = c.fullName();
569 ir->send( filename, description, "text/x-vCard" ); 575 ir->send( filename, description, "text/x-vCard" );
570} 576}
571 577
572void AddressbookWindow::beamDone( Ir *ir ) 578void AddressbookWindow::beamDone( Ir *ir )
573{ 579{
574 delete ir; 580 delete ir;
575 unlink( beamfile ); 581 unlink( beamfile );
576} 582}
577 583
578 584
579static void parseName( const QString& name, QString *first, QString *middle, 585static void parseName( const QString& name, QString *first, QString *middle,
580 QString * last ) 586 QString * last )
581{ 587{
582 588
583 int comma = name.find ( "," ); 589 int comma = name.find ( "," );
584 QString rest; 590 QString rest;
585 if ( comma > 0 ) { 591 if ( comma > 0 ) {
586 *last = name.left( comma ); 592 *last = name.left( comma );
587 comma++; 593 comma++;
588 while ( comma < int(name.length()) && name[comma] == ' ' ) 594 while ( comma < int(name.length()) && name[comma] == ' ' )
589 comma++; 595 comma++;
590 rest = name.mid( comma ); 596 rest = name.mid( comma );
591 } else { 597 } else {
592 int space = name.findRev( ' ' ); 598 int space = name.findRev( ' ' );
593 *last = name.mid( space+1 ); 599 *last = name.mid( space+1 );
594 rest = name.left( space ); 600 rest = name.left( space );
595 } 601 }
596 int space = rest.find( ' ' ); 602 int space = rest.find( ' ' );
597 if ( space <= 0 ) { 603 if ( space <= 0 ) {
598 *first = rest; 604 *first = rest;
599 } else { 605 } else {
600 *first = rest.left( space ); 606 *first = rest.left( space );
601 *middle = rest.mid( space+1 ); 607 *middle = rest.mid( space+1 );
602 } 608 }
603 609
604} 610}
605 611
606 612
607void AddressbookWindow::appMessage(const QCString &msg, const QByteArray &data) 613void AddressbookWindow::appMessage(const QCString &msg, const QByteArray &data)
608{ 614{
609 if (msg == "editPersonal()") { 615 if (msg == "editPersonal()") {
610 editPersonal(); 616 editPersonal();
611 } else if (msg == "editPersonalAndClose()") { 617 } else if (msg == "editPersonalAndClose()") {
612 editPersonal(); 618 editPersonal();
613 close(); 619 close();
614 } else if ( msg == "addContact(QString,QString)" ) { 620 } else if ( msg == "addContact(QString,QString)" ) {
615 QDataStream stream(data,IO_ReadOnly); 621 QDataStream stream(data,IO_ReadOnly);
616 QString name, email; 622 QString name, email;
617 stream >> name >> email; 623 stream >> name >> email;
618 624
619 OContact cnt; 625 OContact cnt;
620 QString fn, mn, ln; 626 QString fn, mn, ln;
621 parseName( name, &fn, &mn, &ln ); 627 parseName( name, &fn, &mn, &ln );
622 // qDebug( " %s - %s - %s", fn.latin1(), mn.latin1(), ln.latin1() ); 628 // qDebug( " %s - %s - %s", fn.latin1(), mn.latin1(), ln.latin1() );
623 cnt.setFirstName( fn ); 629 cnt.setFirstName( fn );
624 cnt.setMiddleName( mn ); 630 cnt.setMiddleName( mn );
625 cnt.setLastName( ln ); 631 cnt.setLastName( ln );
626 cnt.insertEmails( email ); 632 cnt.insertEmails( email );
627 cnt.setDefaultEmail( email ); 633 cnt.setDefaultEmail( email );
628 cnt.setFileAs(); 634 cnt.setFileAs();
629 635
630 m_abView -> addEntry( cnt ); 636 m_abView -> addEntry( cnt );
631 637
632 // :SXm_abView()->init( cnt ); 638 // :SXm_abView()->init( cnt );
633 editEntry( EditEntry ); 639 editEntry( EditEntry );
634 640
635 641
636 642
637 } 643 }
638#if 0 644#if 0
639 else if (msg == "pickAddresses(QCString,QCString,QStringList,...)" ) { 645 else if (msg == "pickAddresses(QCString,QCString,QStringList,...)" ) {
640 QDataStream stream(data,IO_ReadOnly); 646 QDataStream stream(data,IO_ReadOnly);
641 QCString ch,m; 647 QCString ch,m;
642 QStringList types; 648 QStringList types;
643 stream >> ch >> m >> types; 649 stream >> ch >> m >> types;
644 AddressPicker picker(abList,this,0,TRUE); 650 AddressPicker picker(abList,this,0,TRUE);
645 picker.showMaximized(); 651 picker.showMaximized();
646 picker.setChoiceNames(types); 652 picker.setChoiceNames(types);
647 int i=0; 653 int i=0;
648 for (QStringList::ConstIterator it = types.begin(); it!=types.end(); ++it) { 654 for (QStringList::ConstIterator it = types.begin(); it!=types.end(); ++it) {
649 QStringList sel; 655 QStringList sel;
650 stream >> sel; 656 stream >> sel;
651 picker.setSelection(i++,sel); 657 picker.setSelection(i++,sel);
652 } 658 }
653 picker.showMaximized(); 659 picker.showMaximized();
654 picker.exec(); 660 picker.exec();
655 661
656 // ###### note: contacts may have been added - save here! 662 // ###### note: contacts may have been added - save here!
657 663
658 setCentralWidget(abList); 664 setCentralWidget(abList);
659 QCopEnvelope e(ch,m); 665 QCopEnvelope e(ch,m);
660 i=0; 666 i=0;
661 for (QStringList::ConstIterator it = types.begin(); it!=types.end(); ++it) { 667 for (QStringList::ConstIterator it = types.begin(); it!=types.end(); ++it) {
662 QStringList sel = picker.selection(i++); 668 QStringList sel = picker.selection(i++);
663 e << sel; 669 e << sel;
664 } 670 }
665 } 671 }
666#endif 672#endif
667 673
668} 674}
669 675
670void AddressbookWindow::editEntry( EntryMode entryMode ) 676void AddressbookWindow::editEntry( EntryMode entryMode )
671{ 677{
672 OContact entry; 678 OContact entry;
673 if ( !abEditor ) { 679 if ( !abEditor ) {
674 abEditor = new ContactEditor( entry, this, "editor" ); 680 abEditor = new ContactEditor( entry, this, "editor" );
675 } 681 }
676 if ( entryMode == EditEntry ) 682 if ( entryMode == EditEntry )
677 abEditor->setEntry( m_abView -> currentEntry() ); 683 abEditor->setEntry( m_abView -> currentEntry() );
678 else if ( entryMode == NewEntry ) 684 else if ( entryMode == NewEntry )
679 abEditor->setEntry( entry ); 685 abEditor->setEntry( entry );
680 // other things may change the caption. 686 // other things may change the caption.
681 abEditor->setCaption( tr("Edit Address") ); 687 abEditor->setCaption( tr("Edit Address") );
682 688
683#if defined(Q_WS_QWS) || defined(_WS_QWS_) 689#if defined(Q_WS_QWS) || defined(_WS_QWS_)
684 abEditor->showMaximized(); 690 abEditor->showMaximized();
685#endif 691#endif
686 // fix the foxus... 692 // fix the foxus...
687 abEditor->setNameFocus(); 693 abEditor->setNameFocus();
688 if ( abEditor->exec() ) { 694 if ( abEditor->exec() ) {
689 setFocus(); 695 setFocus();
690 if ( entryMode == NewEntry ) { 696 if ( entryMode == NewEntry ) {
691 OContact insertEntry = abEditor->entry(); 697 OContact insertEntry = abEditor->entry();
692 insertEntry.assignUid(); 698 insertEntry.assignUid();
693 m_abView -> addEntry( insertEntry ); 699 m_abView -> addEntry( insertEntry );
694 } else { 700 } else {
695 OContact replEntry = abEditor->entry(); 701 OContact replEntry = abEditor->entry();
696 702
697 if ( !replEntry.isValidUid() ) 703 if ( !replEntry.isValidUid() )
698 replEntry.assignUid(); 704 replEntry.assignUid();
699 705
700 m_abView -> replaceEntry( replEntry ); 706 m_abView -> replaceEntry( replEntry );
701 } 707 }
702 } 708 }
703 // populateCategories(); 709 // populateCategories();
704 710
705} 711}
706 712
707void AddressbookWindow::editPersonal() 713void AddressbookWindow::editPersonal()
708{ 714{
709 OContact entry; 715 OContact entry;
710 if ( !abEditor ) { 716 if ( !abEditor ) {
711 abEditor = new ContactEditor( entry, this, "editor" ); 717 abEditor = new ContactEditor( entry, this, "editor" );
712 } 718 }
713 719
714 abEditor->setCaption(tr("Edit My Personal Details")); 720 abEditor->setCaption(tr("Edit My Personal Details"));
715 abEditor->setPersonalView( true ); 721 abEditor->setPersonalView( true );
716 editEntry( EditEntry ); 722 editEntry( EditEntry );
717 abEditor->setPersonalView( false ); 723 abEditor->setPersonalView( false );
718 724
719} 725}
720 726
721 727
722void AddressbookWindow::slotPersonalView() 728void AddressbookWindow::slotPersonalView()
723{ 729{
724 if (!actionPersonal->isOn()) { 730 if (!actionPersonal->isOn()) {
725 // we just turned it off 731 // we just turned it off
726 setCaption( tr("Contacts") ); 732 setCaption( tr("Contacts") );
727 actionNew->setEnabled(TRUE); 733 actionNew->setEnabled(TRUE);
728 actionTrash->setEnabled(TRUE); 734 actionTrash->setEnabled(TRUE);
729 actionFind->setEnabled(TRUE); 735 actionFind->setEnabled(TRUE);
730 actionMail->setEnabled(TRUE); 736 actionMail->setEnabled(TRUE);
731 // slotUpdateToolbar(); 737 // slotUpdateToolbar();
732 738
733 m_abView->showPersonal( false ); 739 m_abView->showPersonal( false );
734 740
735 return; 741 return;
736 } 742 }
737 743
738 // XXX need to disable some QActions. 744 // XXX need to disable some QActions.
739 actionNew->setEnabled(FALSE); 745 actionNew->setEnabled(FALSE);