summaryrefslogtreecommitdiffabout
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--bin/kdepim/WhatsNew.txt1
-rw-r--r--kaddressbook/xxportmanager.cpp13
2 files changed, 11 insertions, 3 deletions
diff --git a/bin/kdepim/WhatsNew.txt b/bin/kdepim/WhatsNew.txt
index 15caf9e..fd5e4f9 100644
--- a/bin/kdepim/WhatsNew.txt
+++ b/bin/kdepim/WhatsNew.txt
@@ -1,29 +1,30 @@
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********** VERSION 2.2.1 ************ 3********** VERSION 2.2.1 ************
4 4
5KO/Pi: 5KO/Pi:
6Fixed a problem displaying very long allday events in agenda view in single day mode. 6Fixed a problem displaying very long allday events in agenda view in single day mode.
7Fixed a problem with the default settings for new todos. 7Fixed a problem with the default settings for new todos.
8 8
9KA/Pi: 9KA/Pi:
10Added a config option to turn on asking before a contact is deleted. 10Added a config option to turn on asking before a contact is deleted.
11Fixed a problem with the default view and view selection at startup. 11Fixed a problem with the default view and view selection at startup.
12Formatted name is now set on import, if formatted name is empty.
12 13
13********** VERSION 2.2.0 ************ 14********** VERSION 2.2.0 ************
14 15
15New stable release! 16New stable release!
16Fixed some minor usability problems. 17Fixed some minor usability problems.
17Added writing of next alarm to a file for usage on pdaXrom. 18Added writing of next alarm to a file for usage on pdaXrom.
18 19
19 20
20************************************* 21*************************************
21 22
22You can find the complete changelog 23You can find the complete changelog
23from version 1.7.7 to 2.2.0 24from version 1.7.7 to 2.2.0
24in the source package or on 25in the source package or on
25 26
26http://www.pi-sync.net/html/changelog.html 27http://www.pi-sync.net/html/changelog.html
27 28
28 29
29 30
diff --git a/kaddressbook/xxportmanager.cpp b/kaddressbook/xxportmanager.cpp
index 7cb67ed..405f7ec 100644
--- a/kaddressbook/xxportmanager.cpp
+++ b/kaddressbook/xxportmanager.cpp
@@ -30,64 +30,65 @@ $Id$
30 30
31#include <qlayout.h> 31#include <qlayout.h>
32#include <qlist.h> 32#include <qlist.h>
33 33
34#include <kabc/addressbook.h> 34#include <kabc/addressbook.h>
35#include <kabc/resource.h> 35#include <kabc/resource.h>
36#include <kdebug.h> 36#include <kdebug.h>
37#include <kdialogbase.h> 37#include <kdialogbase.h>
38#include <klocale.h> 38#include <klocale.h>
39#include <kmessagebox.h> 39#include <kmessagebox.h>
40 40
41#ifndef KAB_EMBEDDED 41#ifndef KAB_EMBEDDED
42#include <ktrader.h> 42#include <ktrader.h>
43#else //KAB_EMBEDDED 43#else //KAB_EMBEDDED
44extern "C" 44extern "C"
45{ 45{
46 void* init_microkaddrbk_csv_xxport(); 46 void* init_microkaddrbk_csv_xxport();
47 void* init_microkaddrbk_kde2_xxport(); 47 void* init_microkaddrbk_kde2_xxport();
48 void* init_microkaddrbk_vcard_xxport(); 48 void* init_microkaddrbk_vcard_xxport();
49 // void* init_microkaddrbk_opie_xxport(); 49 // void* init_microkaddrbk_opie_xxport();
50 void* init_microkaddrbk_qtopia_xxport(); 50 void* init_microkaddrbk_qtopia_xxport();
51 void* init_microkaddrbk_sharpdtm_xxport(); 51 void* init_microkaddrbk_sharpdtm_xxport();
52} 52}
53#endif //KAB_EMBEDDED 53#endif //KAB_EMBEDDED
54 54
55#include <addresseeview.h> 55#include <addresseeview.h>
56 56
57#include "kabcore.h" 57#include "kabcore.h"
58#include "undocmds.h" 58#include "undocmds.h"
59#include "xxportselectdialog.h" 59#include "xxportselectdialog.h"
60 60
61#include "xxportmanager.h" 61#include "xxportmanager.h"
62#include "nameeditdialog.h"
62 63
63KURL XXPortManager::importURL = KURL(); 64KURL XXPortManager::importURL = KURL();
64QString XXPortManager::importData = QString::null; 65QString XXPortManager::importData = QString::null;
65 66
66class PreviewDialog : public KDialogBase 67class PreviewDialog : public KDialogBase
67{ 68{
68 public: 69 public:
69 PreviewDialog( const KABC::Addressee &addr, 70 PreviewDialog( const KABC::Addressee &addr,
70 QWidget *parent, const char *name = 0 ); 71 QWidget *parent, const char *name = 0 );
71}; 72};
72 73
73XXPortManager::XXPortManager( KABCore *core, QObject *parent, const char *name ) 74XXPortManager::XXPortManager( KABCore *core, QObject *parent, const char *name )
74 : QObject( parent, name ), mCore( core ), mShowPreview( false ) 75 : QObject( parent, name ), mCore( core ), mShowPreview( false )
75{ 76{
76 loadPlugins(); 77 loadPlugins();
77} 78}
78 79
79XXPortManager::~XXPortManager() 80XXPortManager::~XXPortManager()
80{ 81{
81} 82}
82 83
83void XXPortManager::restoreSettings() 84void XXPortManager::restoreSettings()
84{ 85{
85} 86}
86 87
87void XXPortManager::saveSettings() 88void XXPortManager::saveSettings()
88{ 89{
89} 90}
90 91
91void XXPortManager::importVCard( const KURL &url ) 92void XXPortManager::importVCard( const KURL &url )
92{ 93{
93 importVCard( url, false ); 94 importVCard( url, false );
@@ -103,90 +104,96 @@ void XXPortManager::importVCard( const KURL &url, bool showPreview )
103} 104}
104 105
105void XXPortManager::importVCard( const QString &vCard, bool showPreview ) 106void XXPortManager::importVCard( const QString &vCard, bool showPreview )
106{ 107{
107 importData = vCard; 108 importData = vCard;
108 mShowPreview = showPreview; 109 mShowPreview = showPreview;
109 slotImport( "vcard", "<empty>" ); 110 slotImport( "vcard", "<empty>" );
110 mShowPreview = false; 111 mShowPreview = false;
111 importData = ""; 112 importData = "";
112} 113}
113 114
114void XXPortManager::slotImport( const QString &identifier, const QString &data ) 115void XXPortManager::slotImport( const QString &identifier, const QString &data )
115{ 116{
116 XXPortObject *obj = mXXPortObjects[ identifier ]; 117 XXPortObject *obj = mXXPortObjects[ identifier ];
117 if ( !obj ) { 118 if ( !obj ) {
118 KMessageBox::error( mCore, i18n( "<qt>No import plugin available for <b>%1</b>.</qt>" ).arg( identifier ) ); 119 KMessageBox::error( mCore, i18n( "<qt>No import plugin available for <b>%1</b>.</qt>" ).arg( identifier ) );
119 return; 120 return;
120 } 121 }
121 122
122 KABC::Resource *resource = mCore->requestResource( mCore ); 123 KABC::Resource *resource = mCore->requestResource( mCore );
123 if ( !resource ) 124 if ( !resource )
124 return; 125 return;
125 126
126 KABC::AddresseeList list = obj->importContacts( data ); 127 KABC::AddresseeList list = obj->importContacts( data );
127 bool useUndo = ( list.count() < 25 ); 128 bool useUndo = ( list.count() < 25 );
128#ifdef DESKTOP_VERSION 129#ifdef DESKTOP_VERSION
129 useUndo = true; 130 useUndo = true;
130#endif 131#endif
131 mShowPreview = true; 132 mShowPreview = true;
132 KABC::AddresseeList::Iterator it; 133 KABC::AddresseeList::Iterator it;
133 bool imported = false; 134 bool imported = false;
134 int count = 0; 135 int count = 0;
136
137 KConfig config( locateLocal("config", "kabcrc") );
138 config.setGroup( "General" );
139 int FormattedNameType = config.readNumEntry( "FormattedNameType", 1 );
140
141
135 for ( it = list.begin(); it != list.end(); ++it ) { 142 for ( it = list.begin(); it != list.end(); ++it ) {
136 if ( mShowPreview ) { 143 if ( mShowPreview ) {
137 PreviewDialog dlg( *it, mCore ); 144 PreviewDialog dlg( *it, mCore );
138 connect( &dlg, SIGNAL( closeClicked() ), this, SLOT ( noPreview()) ); 145 connect( &dlg, SIGNAL( closeClicked() ), this, SLOT ( noPreview()) );
139 if ( !dlg.exec() ) { 146 if ( !dlg.exec() ) {
140 if ( mShowPreview ) 147 if ( mShowPreview )
141 continue; 148 continue;
142 } 149 }
143 } 150 }
144
145 (*it).setResource( resource ); 151 (*it).setResource( resource );
152 if ( (*it).formattedName().isEmpty() )
153 (*it).setFormattedName( NameEditDialog::formattedName( (*it), FormattedNameType ) );
146 if ( useUndo ) { 154 if ( useUndo ) {
155 ++count;
147 // We use a PwNewCommand so the user can undo it. 156 // We use a PwNewCommand so the user can undo it.
148 PwNewCommand *command = new PwNewCommand( mCore->addressBook(), *it ); 157 PwNewCommand *command = new PwNewCommand( mCore->addressBook(), *it );
149 UndoStack::instance()->push( command ); 158 UndoStack::instance()->push( command );
150 RedoStack::instance()->clear(); 159 RedoStack::instance()->clear();
151 } else { 160 } else {
152 ++count; 161 ++count;
153 mCore->addressBook()->insertAddressee( (*it), true, true ); 162 mCore->addressBook()->insertAddressee( (*it), true, true );
154 } 163 }
155 imported = true; 164 imported = true;
156 } 165 }
157
158 if ( imported ) { 166 if ( imported ) {
159 KMessageBox::information( mCore, i18n( "%1 contacts\nsuccessfully\nimported.").arg( count) ); 167 KMessageBox::information( mCore, i18n( "%1 contacts\nsuccessfully\nimported.").arg( count) );
160
161 emit modified(); 168 emit modified();
162 } 169 }
163} 170}
164void XXPortManager::noPreview() 171void XXPortManager::noPreview()
165{ 172{
166 mShowPreview = false; 173 mShowPreview = false;
167} 174}
168void XXPortManager::slotExport( const QString &identifier, const QString &data ) 175void XXPortManager::slotExport( const QString &identifier, const QString &data )
169{ 176{
170 XXPortObject *obj = mXXPortObjects[ identifier ]; 177 XXPortObject *obj = mXXPortObjects[ identifier ];
171 if ( !obj ) { 178 if ( !obj ) {
172 KMessageBox::error( mCore, i18n( "<qt>No export plugin available for <b>%1</b>.</qt>" ).arg( identifier ) ); 179 KMessageBox::error( mCore, i18n( "<qt>No export plugin available for <b>%1</b>.</qt>" ).arg( identifier ) );
173 return; 180 return;
174 } 181 }
175 182
176 KABC::AddresseeList addrList; 183 KABC::AddresseeList addrList;
177 XXPortSelectDialog dlg( mCore, obj->requiresSorting(), mCore ); 184 XXPortSelectDialog dlg( mCore, obj->requiresSorting(), mCore );
178 if ( dlg.exec() ) 185 if ( dlg.exec() )
179 addrList = dlg.contacts(); 186 addrList = dlg.contacts();
180 else 187 else
181 return; 188 return;
182 if ( !obj->exportContacts( addrList, data ) ) 189 if ( !obj->exportContacts( addrList, data ) )
183 KMessageBox::error( mCore, i18n( "Unable to export contacts." ) ); 190 KMessageBox::error( mCore, i18n( "Unable to export contacts." ) );
184 else 191 else
185 KMessageBox::information( mCore, i18n( "contacts successfully exported." ) ); 192 KMessageBox::information( mCore, i18n( "contacts successfully exported." ) );
186} 193}
187 194
188void XXPortManager::loadPlugins() 195void XXPortManager::loadPlugins()
189{ 196{
190 mXXPortObjects.clear(); 197 mXXPortObjects.clear();
191 198
192#ifndef KAB_EMBEDDED 199#ifndef KAB_EMBEDDED