-rw-r--r-- | bin/kdepim/korganizer/Migration-HowTo.txt | 77 | ||||
-rw-r--r-- | libkcal/incidencebase.cpp | 10 |
2 files changed, 71 insertions, 16 deletions
diff --git a/bin/kdepim/korganizer/Migration-HowTo.txt b/bin/kdepim/korganizer/Migration-HowTo.txt index ca767c6..a5fa02c 100644 --- a/bin/kdepim/korganizer/Migration-HowTo.txt +++ b/bin/kdepim/korganizer/Migration-HowTo.txt | |||
@@ -1,9 +1,18 @@ | |||
1 | 1 | ||
2 | Migration HowTo Outlook 200X -> KDE | 2 | Migration HowTo Outlook 200X -> KDE |
3 | 3 | ||
4 | Version 1.0.1 | ||
5 | The latest version of this file can be downloaded from | ||
6 | http://sourceforge.net/projects/kdepimpi/ | ||
7 | Please choose there package/project/file: | ||
8 | general Files for KDE/Pim | ||
9 | MigrationHowTo_OL2KDE | ||
10 | MigrationHowTo_OL2KDE.txt | ||
11 | |||
12 | |||
4 | This HowTo describes the process of migrating data ( contact and calendar data ) from Outlook 200X to the PIM programs of the KDE-Desktop-Environment. | 13 | This HowTo describes the process of migrating data ( contact and calendar data ) from Outlook 200X to the PIM programs of the KDE-Desktop-Environment. |
5 | The PIM programs are KAdddressbook and KOrganizer, which may be used embedded in the Kontact PIM management framework. | 14 | The PIM programs are KAdddressbook and KOrganizer, which may be used embedded in the Kontact PIM management framework. |
6 | This HowTo describes version 1.9.3a of the migration tools. | 15 | This HowTo describes version 1.9.3a of the migration tools. |
7 | The migration tools are the platform independent versions of KAdddressbook and KOrganizer: KAdddressbook/Pi and KOrganizer/Pi. | 16 | The migration tools are the platform independent versions of KAdddressbook and KOrganizer: KAdddressbook/Pi and KOrganizer/Pi. |
8 | 17 | ||
9 | Content: | 18 | Content: |
@@ -11,12 +20,14 @@ Content: | |||
11 | 1) How to start | 20 | 1) How to start |
12 | 2) How to import pst files in Outlook | 21 | 2) How to import pst files in Outlook |
13 | 3) Where to get the migration tools | 22 | 3) Where to get the migration tools |
14 | 4) How to install the migration tools | 23 | 4) How to install the migration tools |
15 | 5) How to get the contact data out of Outlook200X | 24 | 5) How to get the contact data out of Outlook200X |
16 | 6) How to get the calendar data out of Outlook200X | 25 | 6) How to get the calendar data out of Outlook200X |
26 | 7) How to import your contact data into Kontact | ||
27 | 8) How to import your calendar data into Kontact | ||
17 | 28 | ||
18 | APPENDIX A) Problems and solutions when reading contact data | 29 | APPENDIX A) Problems and solutions when reading contact data |
19 | APPENDIX B) Problems and solutions when reading calendar data | 30 | APPENDIX B) Problems and solutions when reading calendar data |
20 | 31 | ||
21 | **************************************** | 32 | **************************************** |
22 | 1) How to start | 33 | 1) How to start |
@@ -32,27 +43,40 @@ If you have a running Outlook200X already with contact/calendar data available, | |||
32 | 43 | ||
33 | 44 | ||
34 | **************************************** | 45 | **************************************** |
35 | 2) How to import pst files in Outlook | 46 | 2) How to import pst files in Outlook |
36 | **************************************** | 47 | **************************************** |
37 | 48 | ||
38 | MISSING | 49 | To open a local *.pst file in Outlook2003, choose menu: |
50 | File - Open - Outlook Data File ... | ||
51 | Now the data included in this file is shown | ||
52 | as folders of a newly added root folder in the Outlook folder view. | ||
53 | This root folder is probably not accessable from | ||
54 | the migration tools via OLE. | ||
55 | To access data stored in one of the subfolders, | ||
56 | copy this subfolder to a root folder, | ||
57 | which can be accessed from the migration tools via OLE. | ||
58 | (To know, which folder can be accessed, just perform 5.) or 6.) until | ||
59 | you get the Oulook import dialog!) | ||
60 | |||
61 | To copy it, right click on that subfolder and choose | ||
62 | Copy "<subfoldername>"... | ||
63 | in the popup menu. | ||
39 | 64 | ||
40 | **************************************** | 65 | **************************************** |
41 | 3) Where to get the migration tools | 66 | 3) Where to get the migration tools |
42 | **************************************** | 67 | **************************************** |
43 | 68 | ||
44 | The data migration is is performed with the Windows versions of KAdddressbook/Pi and KOrganizer/Pi. | 69 | The data migration is is performed with the Windows versions of KAdddressbook/Pi and KOrganizer/Pi. |
45 | Pi stands for platform-independend - platform-independend because the same program is available for different platforms, like Windows, Linux desktop and Sharp-Zaurus PDA. | 70 | Pi stands for platform-independend - platform-independend because the same program is available for different platforms, like Windows, Linux desktop and Sharp-Zaurus PDA. |
46 | Note: The Linux desktop versions of KOrganizer/Pi and KOrganizer/KDE-desktop are two different programs! You cannot use KOrganizer/Pi together with or embedded in the KDE-desktop environment. The same is valid for KAdddressbook/Pi. | 71 | Note: The Linux desktop versions of KOrganizer/Pi and KOrganizer/KDE-desktop are two different programs! You cannot use KOrganizer/Pi together with, or embedded in, the KDE-desktop environment. The same is valid for KAdddressbook/Pi. |
47 | 72 | ||
48 | The programs you need for the migration are: | 73 | The programs you need for the migration are: |
49 | a) KAdddressbook/Pi executeable + 2dlls + icons | 74 | a) KAdddressbook/Pi executeable + 2dlls + icons |
50 | b) KOrganizer/Pi executeable + icons | 75 | b) KOrganizer/Pi executeable + icons |
51 | c) The Qt3 library qt-mt331.dll and the MSVC library msvcr71.dll | 76 | c) The Qt3 library qt-mt331.dll and the MSVC library msvcr71.dll and the MSVC library mfc71u.dll |
52 | |||
53 | You can download all of them at: | 77 | You can download all of them at: |
54 | 78 | ||
55 | http://sourceforge.net/projects/kdepimpi/ | 79 | http://sourceforge.net/projects/kdepimpi/ |
56 | 80 | ||
57 | Download of a) and b) | 81 | Download of a) and b) |
58 | Please choose there package/project with name KDE/Pim | 82 | Please choose there package/project with name KDE/Pim |
@@ -63,45 +87,49 @@ kopixxx-exe.zip | |||
63 | The latest version is currently ( 2004-07-13 ) 1.9.3a. | 87 | The latest version is currently ( 2004-07-13 ) 1.9.3a. |
64 | Such that the files to download are | 88 | Such that the files to download are |
65 | kapi193a-exe.zip | 89 | kapi193a-exe.zip |
66 | kopi193a-exe.zip | 90 | kopi193a-exe.zip |
67 | 91 | ||
68 | To download b) | 92 | To download b) |
69 | Please choose there package/project with name KO/Pi - general files. | 93 | Please choose there package/project/file: |
70 | (Direct link: http://sourceforge.net/project/showfiles.php?group_id=104103&package_id=116719 ) | 94 | general Files for KDE/Pim |
95 | Needed Windows Dlls | ||
96 | kdepimdll.zip | ||
97 | |||
98 | (Direct link: http://sourceforge.net/project/showfiles.php?group_id=104103&package_id=122438&release_id=256700 ) | ||
71 | Choose there the file: | 99 | Choose there the file: |
72 | kopidll.zip | 100 | kdepimdll.zip |
73 | 101 | ||
74 | Now you have downloaded the files | 102 | Now you have downloaded the files |
75 | 103 | ||
76 | kapi193a-exe.zip | 104 | kapi193a-exe.zip |
77 | kopi193a-exe.zip | 105 | kopi193a-exe.zip |
78 | kopidll.zip | 106 | kdepimdll.zip |
79 | 107 | ||
80 | and we can continue to install the files, which is simply unzipping them. | 108 | and we can continue to install the files, which is simply unzipping them. |
81 | 109 | ||
82 | 110 | ||
83 | **************************************** | 111 | **************************************** |
84 | 4) How to install the migration tools | 112 | 4) How to install the migration tools |
85 | **************************************** | 113 | **************************************** |
86 | 114 | ||
87 | You have downloaded the files | 115 | You have downloaded the files |
88 | 116 | ||
89 | kapi193a-exe.zip | 117 | kapi193a-exe.zip |
90 | kopi193a-exe.zip | 118 | kopi193a-exe.zip |
91 | kopidll.zip | 119 | kdepimdll.zip |
92 | 120 | ||
93 | Unzip these files. | 121 | Unzip these files. |
94 | The directory "pics" of the kopidll.zip is useless now and can be completely ignored. | ||
95 | Now choose an arbitrary installation directory, where to copy all the needed files together. | 122 | Now choose an arbitrary installation directory, where to copy all the needed files together. |
96 | You should have now the following files and the directory "kdepim" in the same directory: | 123 | You should have now the following files and the directory "kdepim" in the same directory: |
97 | kopi.exe | 124 | kopi.exe |
98 | kapi.exe | 125 | kapi.exe |
99 | microkabc_dir.dll | 126 | microkabc_dir.dll |
100 | microkabc_file.dll | 127 | microkabc_file.dll |
101 | msvcr71.dll | 128 | msvcr71.dll |
129 | mfc71u.dll | ||
102 | qt-mt331.dll | 130 | qt-mt331.dll |
103 | ReadMich.txt | 131 | ReadMich.txt |
104 | kdepim (directory) | 132 | kdepim (directory) |
105 | 133 | ||
106 | The directory "kdepim" should contain subdirectories | 134 | The directory "kdepim" should contain subdirectories |
107 | kaddressbook | 135 | kaddressbook |
@@ -130,13 +158,15 @@ Getting the contact data | |||
130 | 158 | ||
131 | Please start kapi.exe. | 159 | Please start kapi.exe. |
132 | Choose menu: | 160 | Choose menu: |
133 | File - Import - Import from OL... | 161 | File - Import - Import from OL... |
134 | You will get a dialog which shows all "Personal Folders" of Outlook. | 162 | You will get a dialog which shows all "Personal Folders" of Outlook. |
135 | Choose the Contact Folder(s) you want to import and select them with a hook. | 163 | Choose the Contact Folder(s) you want to import and select them with a hook. |
136 | (All other folder but the contact containing folders are shown, but disabled) | 164 | (All other folder but the contact containing folders are shown, but disabled). |
165 | (If the data you want to import is not stored in one of the shown folders, | ||
166 | please read step 2.) and click on "close" ). | ||
137 | Click the "import" button. | 167 | Click the "import" button. |
138 | Now Outlook asks you to allow access to the contact data. | 168 | Now Outlook asks you to allow access to the contact data. |
139 | Select "Allow access" amd click "Yes" in this dialog. | 169 | Select "Allow access" amd click "Yes" in this dialog. |
140 | Now the importing is performed and KA/Pi will show a progress bar. | 170 | Now the importing is performed and KA/Pi will show a progress bar. |
141 | After importing, KA/Pi shows a dialog, how much contacts are imported. | 171 | After importing, KA/Pi shows a dialog, how much contacts are imported. |
142 | If you press a second time "import" , already imported contacts are not imported again. | 172 | If you press a second time "import" , already imported contacts are not imported again. |
@@ -151,12 +181,13 @@ File - Save | |||
151 | and close KA/Pi. | 181 | and close KA/Pi. |
152 | Now you should have the contact data in the file std.vcf in your home directory in the path | 182 | Now you should have the contact data in the file std.vcf in your home directory in the path |
153 | (YOURHOMEDIR)\kdepim\apps\kabc\std.vcf | 183 | (YOURHOMEDIR)\kdepim\apps\kabc\std.vcf |
154 | 184 | ||
155 | Copy that file to a moveable disk or memory stick or just copy it via network to the destination. | 185 | Copy that file to a moveable disk or memory stick or just copy it via network to the destination. |
156 | Import that file into KAddressbook/Kontact via Import - Import vcard. | 186 | Import that file into KAddressbook/Kontact via Import - Import vcard. |
187 | Details about importing you can read at: 7) How to import your contact data into Kontact | ||
157 | 188 | ||
158 | Now you have your Outlook200X contact data on the KDE desktop available and you are done with the migration of contacts. | 189 | Now you have your Outlook200X contact data on the KDE desktop available and you are done with the migration of contacts. |
159 | 190 | ||
160 | ************************************************************* | 191 | ************************************************************* |
161 | 6) How to get the calendar data out of Outlook200X | 192 | 6) How to get the calendar data out of Outlook200X |
162 | ************************************************************* | 193 | ************************************************************* |
@@ -183,13 +214,15 @@ The dialog shows defaults for CET (Central European Time), such that users locat | |||
183 | 214 | ||
184 | Now you will see the KO/Pi main window. | 215 | Now you will see the KO/Pi main window. |
185 | Choose menu: | 216 | Choose menu: |
186 | File - Import from OL | 217 | File - Import from OL |
187 | You will get a dialog which shows all "Personal Folders" of Outlook. | 218 | You will get a dialog which shows all "Personal Folders" of Outlook. |
188 | Choose the Calendar Folder(s) you want to import and select them with a hook. | 219 | Choose the Calendar Folder(s) you want to import and select them with a hook. |
189 | (All other folder but the calendar data containing folders are shown, but disabled) | 220 | (All other folder but the calendar data containing folders are shown, but disabled). |
221 | (If the data you want to import is not stored in one of the shown folders, | ||
222 | please read step 2.) and click on "close" ). | ||
190 | Click the "import" button. | 223 | Click the "import" button. |
191 | Now Outllok asks you to allow access to the contact data. | 224 | Now Outllok asks you to allow access to the contact data. |
192 | Select "Allow access" amd click "Yes" in this dialog. | 225 | Select "Allow access" amd click "Yes" in this dialog. |
193 | Now the importing is performed and KO/Pi will show a progress bar. | 226 | Now the importing is performed and KO/Pi will show a progress bar. |
194 | After importing, KO/Pi shows a dialog, how much calendar items are imported. | 227 | After importing, KO/Pi shows a dialog, how much calendar items are imported. |
195 | If you press a second time "import" , already imported calendar items are not imported again. | 228 | If you press a second time "import" , already imported calendar items are not imported again. |
@@ -201,24 +234,42 @@ About problems of mapping particular Outlook-data-fields to KOrganizer-data-fiel | |||
201 | Close KO/Pi - data will be saved automatically. | 234 | Close KO/Pi - data will be saved automatically. |
202 | 235 | ||
203 | Now you should have the calendar data in the file mycalendar.ics in your home directory in the path | 236 | Now you should have the calendar data in the file mycalendar.ics in your home directory in the path |
204 | (YOURHOMEDIR)\kdepim\apps\korganizer\mycalendar.ics | 237 | (YOURHOMEDIR)\kdepim\apps\korganizer\mycalendar.ics |
205 | 238 | ||
206 | Copy that file to a moveable disk or memory stick or just copy it via network to the destination. | 239 | Copy that file to a moveable disk or memory stick or just copy it via network to the destination. |
207 | Import that file into KOrganizer/Kontact via Import - Import iCal/ics file. | 240 | Import that file into KOrganizer/Kontact. |
241 | Details about importing your calendar data you can read at: 8) How to import your calendar data into Kontact. | ||
208 | (Warning again: Don't forget to set the timezone in KDE KOrganizer before importing data there. The timezone in KDE KOrganizer is set per default to UTC (GMT), that is -1h of CET). | 242 | (Warning again: Don't forget to set the timezone in KDE KOrganizer before importing data there. The timezone in KDE KOrganizer is set per default to UTC (GMT), that is -1h of CET). |
209 | Now you have your Outlook200X calendar data on the KDE desktop available and you are done with the migration. | 243 | Now you have your Outlook200X calendar data on the KDE desktop available and you are done with the migration. |
210 | 244 | ||
211 | Hint: | 245 | Hint: |
212 | If you want to use KO/Pi and KA/Pi on your windows desktop, you should read all the help information available in the KO/Pi Help menu. One Highlight of KO/Pi is the easy syncing with another *.ics file. | 246 | If you want to use KO/Pi and KA/Pi on your windows desktop, you should read all the help information available in the KO/Pi Help menu. One Highlight of KO/Pi is the easy syncing with another *.ics file. |
213 | (Information about syncing available in the KO/Pi help menu). | 247 | (Information about syncing available in the KO/Pi help menu). |
214 | Another hint: | 248 | Another hint: |
215 | KO/Pi + KA/Pi ( = KDE-Pim/Pi ) are available for the Sharp Zaurus PDA. | 249 | KO/Pi + KA/Pi ( = KDE-Pim/Pi ) are available for the Sharp Zaurus PDA. |
216 | Syncing data works for KO/Pi ( version 1.9.3) but not yet for KA/Pi. | 250 | Syncing data works for KO/Pi ( version 1.9.3) but not yet for KA/Pi. |
217 | 251 | ||
218 | 252 | ||
253 | ************************************************************* | ||
254 | 7) How to import your contact data into Kontact | ||
255 | ************************************************************* | ||
256 | |||
257 | |||
258 | |||
259 | MISSING | ||
260 | |||
261 | |||
262 | |||
263 | ************************************************************* | ||
264 | 8) How to import your calendar data into Kontact | ||
265 | ************************************************************* | ||
266 | |||
267 | |||
268 | MISSING | ||
269 | |||
219 | 270 | ||
220 | ************************************************************* | 271 | ************************************************************* |
221 | APPENDIX A) Problems and solutions when reading contact data | 272 | APPENDIX A) Problems and solutions when reading contact data |
222 | ************************************************************* | 273 | ************************************************************* |
223 | 274 | ||
224 | All data, which can be displayed and accessed in KAddressbook is imported from Outlook. | 275 | All data, which can be displayed and accessed in KAddressbook is imported from Outlook. |
diff --git a/libkcal/incidencebase.cpp b/libkcal/incidencebase.cpp index d7c4595..f1db8b7 100644 --- a/libkcal/incidencebase.cpp +++ b/libkcal/incidencebase.cpp | |||
@@ -383,28 +383,30 @@ void IncidenceBase::setID( const QString & prof , int id ) | |||
383 | mExternalId = mExternalId.left( num+len ) +QString::number( id)+mExternalId.mid( end ); | 383 | mExternalId = mExternalId.left( num+len ) +QString::number( id)+mExternalId.mid( end ); |
384 | } else | 384 | } else |
385 | qDebug("Error in IncidenceBase::setID "); | 385 | qDebug("Error in IncidenceBase::setID "); |
386 | } else { | 386 | } else { |
387 | mExternalId += prof+";"+QString::number( id) +";0:"; | 387 | mExternalId += prof+";"+QString::number( id) +";0:"; |
388 | } | 388 | } |
389 | qDebug("setID*%s*%d*%s* ", prof.latin1(), id,mExternalId.latin1() ); | ||
389 | } | 390 | } |
390 | int IncidenceBase::getID( const QString & prof) | 391 | int IncidenceBase::getID( const QString & prof) |
391 | { | 392 | { |
392 | int ret = -1; | 393 | int ret = -1; |
393 | int num = mExternalId.find(":"+ prof+";" ); | 394 | int num = mExternalId.find(":"+ prof+";" ); |
394 | if ( num >= 0 ) { | 395 | if ( num >= 0 ) { |
395 | int len = prof.length()+2; | 396 | int len = prof.length()+2; |
396 | int end = mExternalId.find( ";", num+len ); | 397 | int end = mExternalId.find( ";", num+len ); |
397 | if ( end > 0 ) { | 398 | if ( end > 0 ) { |
398 | bool ok; | 399 | bool ok; |
399 | ret = mExternalId.mid ( num + len,end-len-num).toInt( &ok ); | 400 | ret = mExternalId.mid ( num + len,end-len-num).toInt( &ok ); |
400 | if (!ok) | 401 | if (!ok) |
401 | return -1; | 402 | ret = -1; |
402 | } | 403 | } |
403 | } | 404 | } |
404 | return ret; | 405 | qDebug("getID*%s*%d*%s* ", prof.latin1(), ret,mExternalId.latin1() ); |
406 | return ret; | ||
405 | } | 407 | } |
406 | 408 | ||
407 | // example :Sharp_DTM;22;23566:TP;-1;8654:TPP;18;0: | 409 | // example :Sharp_DTM;22;23566:TP;-1;8654:TPP;18;0: |
408 | // format name;III;JJJ: III >= 0, may be -1. JJJ always >= 0 | 410 | // format name;III;JJJ: III >= 0, may be -1. JJJ always >= 0 |
409 | void IncidenceBase::setCsum( const QString & prof , int id ) | 411 | void IncidenceBase::setCsum( const QString & prof , int id ) |
410 | { | 412 | { |
@@ -417,12 +419,13 @@ void IncidenceBase::setCsum( const QString & prof , int id ) | |||
417 | mExternalId = mExternalId.left( num ) +QString::number(id)+mExternalId.mid( end ); | 419 | mExternalId = mExternalId.left( num ) +QString::number(id)+mExternalId.mid( end ); |
418 | } else | 420 | } else |
419 | qDebug("Error in IncidenceBase::setCsum "); | 421 | qDebug("Error in IncidenceBase::setCsum "); |
420 | } else { | 422 | } else { |
421 | mExternalId += prof+";-1;"+QString::number( id) +":"; | 423 | mExternalId += prof+";-1;"+QString::number( id) +":"; |
422 | } | 424 | } |
425 | qDebug("setCsum*%s*%d*%s* ", prof.latin1(), id,mExternalId.latin1() ); | ||
423 | } | 426 | } |
424 | int IncidenceBase::getCsum( const QString & prof) | 427 | int IncidenceBase::getCsum( const QString & prof) |
425 | { | 428 | { |
426 | int ret = -1; | 429 | int ret = -1; |
427 | int num = mExternalId.find( ":"+prof+";" ); | 430 | int num = mExternalId.find( ":"+prof+";" ); |
428 | if ( num >= 0 ) { | 431 | if ( num >= 0 ) { |
@@ -430,15 +433,16 @@ int IncidenceBase::getCsum( const QString & prof) | |||
430 | num = mExternalId.find( ";", num+len ); | 433 | num = mExternalId.find( ";", num+len ); |
431 | int end = mExternalId.find( ":", num+1 ); | 434 | int end = mExternalId.find( ":", num+1 ); |
432 | if ( end > 0 ) { | 435 | if ( end > 0 ) { |
433 | bool ok; | 436 | bool ok; |
434 | ret = mExternalId.mid ( num ,end-num).toInt( &ok ); | 437 | ret = mExternalId.mid ( num ,end-num).toInt( &ok ); |
435 | if (!ok) | 438 | if (!ok) |
436 | return -1; | 439 | ret = -1; |
437 | } | 440 | } |
438 | } | 441 | } |
442 | qDebug("getCsum*%s*%d*%s* ", prof.latin1(), ret,mExternalId.latin1() ); | ||
439 | return ret; | 443 | return ret; |
440 | } | 444 | } |
441 | 445 | ||
442 | void IncidenceBase::setIDStr( const QString & s ) | 446 | void IncidenceBase::setIDStr( const QString & s ) |
443 | { | 447 | { |
444 | if (mReadOnly) return; | 448 | if (mReadOnly) return; |