-rw-r--r-- | bin/kdepim/korganizer/kopiWhatsNew.txt | 74 | ||||
-rw-r--r-- | kaddressbook/kabcore.cpp | 30 |
2 files changed, 93 insertions, 11 deletions
diff --git a/bin/kdepim/korganizer/kopiWhatsNew.txt b/bin/kdepim/korganizer/kopiWhatsNew.txt index 8982a9c..20de933 100644 --- a/bin/kdepim/korganizer/kopiWhatsNew.txt +++ b/bin/kdepim/korganizer/kopiWhatsNew.txt | |||
@@ -1,131 +1,205 @@ | |||
1 | Info about the changes in new versions of KO/Pi | 1 | Info about the changes in new versions of KO/Pi |
2 | and KDE-Pim/Pi | 2 | and KDE-Pim/Pi |
3 | 3 | ||
4 | ********** VERSION 1.9.4 ************ | ||
5 | |||
6 | This is the version 1.9.4 of KDE-Pim/Pi for the Zaurus. | ||
7 | |||
8 | WARNING: | ||
9 | PLEASE BACKUP ALL YOUR DATA! | ||
10 | We have changed a lot and maybe there are some unknown problems. | ||
11 | |||
12 | SYNC HANDLING HAS CHANGED! | ||
13 | Such that, if you sync now with an already synded device, you will duplicated entries after the first sync. | ||
14 | (This change was introduced to make it possible to sync with mobile phones, which will be available later (maybe in 4 weeks). | ||
15 | |||
16 | You need the kmicrokdelibs_1.9.4_arm.ipk as a base for the other programs. | ||
17 | If you get the error: "Install only possible in main memory", just try it again to install it on SD card. That worked for me. And it was reported that rebooting Qtopia did help in this case as well. | ||
18 | |||
19 | As programs are available: | ||
20 | KO/Pi (korganizer ipk) - a calendar program. | ||
21 | KA/Pi (kaddressbook ipk ) - an addressbook | ||
22 | OM/Pi (kopiemail ipk ) an email program with pop/smtp and IMAP support. | ||
23 | |||
24 | An alarm notification program ( korganizer-alarm ipk ) for KO/Pi that notifies you about alarms, even if the Zaurus is in suspend mode. | ||
25 | (If you do not see an icon in the taskbar after installing korganizer-alarm, please restart Qtopia) | ||
26 | |||
27 | All the applications are installed in a "Pim" TAB. | ||
28 | If this TAB is new on your system, you can get an icon in this TAB by installing pim_TAB_icon_1.9.4_arm.ipk | ||
29 | |||
30 | All the application are integrated. | ||
31 | Such that you can choose in KO/Pi the attendees of a meeting from the addresses in KA/Pi. When you click in KA/Pi on the email address, OM/Pi is started to write the mail. | ||
32 | |||
33 | HINT: | ||
34 | If you install KPhone/Pi 0.9.7, it will be called, if you click in KA/Pi on a phone number. | ||
35 | |||
36 | What's new? | ||
37 | |||
38 | SYNC HANDLING HAS CHANGED! | ||
39 | Such that, if you sync now with an already synded device, you will duplicated entries after the first sync. | ||
40 | (This change was introduced to make it possible to sync with mobile phones, which will be available later (maybe in 4 weeks). | ||
41 | |||
42 | New in OM/Pi: | ||
43 | When copying(i.e. downloading mails) , you can specify, that only mails of a given size should be downloaded. Added mail copy possibility for selected mails. | ||
44 | |||
45 | New in KO/Pi: | ||
46 | French is now available for KO/Pi. | ||
47 | Choose menu:Actions - Configure:TAB locale | ||
48 | Syncing has changed. | ||
49 | Phone sync available soon. | ||
50 | Not much changes, I cannot remember them ... | ||
51 | |||
52 | New in KA/Pi: | ||
53 | Beaming possible. | ||
54 | Sharp DTM readonly access possible( create a new DTM resource ); | ||
55 | Better searching possible. | ||
56 | Search is performed only after pressing the return key. | ||
57 | Use wildcard * to specify parts of a name. | ||
58 | |||
59 | Better name/email selection dialog (called from KO/Pi or OM/Pi). In this dialog, now searching is possible. Like in KA/Pi, use return key and wildcard * . | ||
60 | |||
61 | A big improvement is the new management of the contact access. | ||
62 | In version 1.9.3, every application was using their own addressbook access data. | ||
63 | That means, the addressbook was loaded up to three times in the memory, when accessed by KA/Pi, KO/Pi and OM/Pi. | ||
64 | That was wasting of memory, if you had several hundreds of contacts. | ||
65 | |||
66 | Now only KA/Pi accesses the addressbook. | ||
67 | If KO/Pi or OM/Pi want to get some name/email data, they request KA/Pi to open the name/email selection dialog and send it back to them. | ||
68 | If you click on an attendee in a meeting, its contact data is displayed in KA/Pi directly. | ||
69 | That means, if KO/Pi or OM/Pi want to access contact data, KA/Pi is started first. | ||
70 | |||
71 | New in the KO/Pi alarm applet: | ||
72 | Configure your own timer popup menu! | ||
73 | (Text and minutes for timer countdown) | ||
74 | Just edit the file | ||
75 | (yourhomedir)/.kopialarmtimerrc | ||
76 | and start/stop a timer to get a new menu with the data of this file. | ||
77 | |||
4 | ********** VERSION 1.9.3 ************ | 78 | ********** VERSION 1.9.3 ************ |
5 | 1) | 79 | 1) |
6 | Now KO/Pi on Windows imports directly the calendar data of | 80 | Now KO/Pi on Windows imports directly the calendar data of |
7 | an installed Outlook. Should work with OL version >= 2000. | 81 | an installed Outlook. Should work with OL version >= 2000. |
8 | 82 | ||
9 | ********** VERSION 1.9.2 ************ | 83 | ********** VERSION 1.9.2 ************ |
10 | 1) | 84 | 1) |
11 | KDE-Pim/Pi has got a new member: | 85 | KDE-Pim/Pi has got a new member: |
12 | KmicroMail (KM/Pi) is a mail program, | 86 | KmicroMail (KM/Pi) is a mail program, |
13 | which can handle IMAP and POP mail access. | 87 | which can handle IMAP and POP mail access. |
14 | It is based on Opie-Mail v3. | 88 | It is based on Opie-Mail v3. |
15 | All dependencies to the Opie libraries ar removed, | 89 | All dependencies to the Opie libraries ar removed, |
16 | such that no additional Opie lib is needed. | 90 | such that no additional Opie lib is needed. |
17 | It is already integrated in KO/Pi and KA/Pi. | 91 | It is already integrated in KO/Pi and KA/Pi. |
18 | It it now available for the Zaurus,probably it | 92 | It it now available for the Zaurus,probably it |
19 | will be available for other platforms later. | 93 | will be available for other platforms later. |
20 | Hint: | 94 | Hint: |
21 | Create your own contact (name + email) | 95 | Create your own contact (name + email) |
22 | in KA/Pi, select this contact and choose menu: | 96 | in KA/Pi, select this contact and choose menu: |
23 | Settings - Set Who Am I. | 97 | Settings - Set Who Am I. |
24 | Now the settings of this contact are used as | 98 | Now the settings of this contact are used as |
25 | the sender data in KM/Pi. | 99 | the sender data in KM/Pi. |
26 | 2) | 100 | 2) |
27 | KDE-Pim/Pi is split up in five different | 101 | KDE-Pim/Pi is split up in five different |
28 | packages now precompiled for Sharp Zaurus: | 102 | packages now precompiled for Sharp Zaurus: |
29 | --kmicrokdelibs_1.9.2_arm.ipk | 103 | --kmicrokdelibs_1.9.2_arm.ipk |
30 | The libs are needed for any | 104 | The libs are needed for any |
31 | of the following programs: | 105 | of the following programs: |
32 | --kaddressbook_1.9.2_arm.ipk | 106 | --kaddressbook_1.9.2_arm.ipk |
33 | --kmicromail_1.9.2_arm.ipk | 107 | --kmicromail_1.9.2_arm.ipk |
34 | --korganizer_1.9.2_arm.ipk | 108 | --korganizer_1.9.2_arm.ipk |
35 | Independ from that, there is the alarm applet | 109 | Independ from that, there is the alarm applet |
36 | available for KO/Pi, which also offers | 110 | available for KO/Pi, which also offers |
37 | quick access for a new mail or | 111 | quick access for a new mail or |
38 | showing the addressbook.: | 112 | showing the addressbook.: |
39 | --korganizer-alarm_1.9.2_arm.ipk | 113 | --korganizer-alarm_1.9.2_arm.ipk |
40 | Independend means, that the alarm applet | 114 | Independend means, that the alarm applet |
41 | does not need any of the libs or programs above to run. | 115 | does not need any of the libs or programs above to run. |
42 | But it would be quite useless without these programs. | 116 | But it would be quite useless without these programs. |
43 | NOTE: | 117 | NOTE: |
44 | If you get a | 118 | If you get a |
45 | "This application depends on other programs" | 119 | "This application depends on other programs" |
46 | during installation of | 120 | during installation of |
47 | --kmicrokdelibs_1.9.2_arm.ipk | 121 | --kmicrokdelibs_1.9.2_arm.ipk |
48 | you probably do not have to care about that. | 122 | you probably do not have to care about that. |
49 | kmicrokdelibs_1.9.2 will come with some | 123 | kmicrokdelibs_1.9.2 will come with some |
50 | resource plugins, which needs additional libraries. | 124 | resource plugins, which needs additional libraries. |
51 | (E.g. libopie1, if you want to use the | 125 | (E.g. libopie1, if you want to use the |
52 | opie resource connector in KA/Pi). | 126 | opie resource connector in KA/Pi). |
53 | If you do not have this libraries installed, | 127 | If you do not have this libraries installed, |
54 | you simply cannot use the resource. | 128 | you simply cannot use the resource. |
55 | To make it clear: | 129 | To make it clear: |
56 | If the libraries are missing, the applications | 130 | If the libraries are missing, the applications |
57 | using kmicrokdelibs will start, | 131 | using kmicrokdelibs will start, |
58 | because the resources are plugins. | 132 | because the resources are plugins. |
59 | 3) | 133 | 3) |
60 | KO/Pi and friends are now installable on SD-Card! | 134 | KO/Pi and friends are now installable on SD-Card! |
61 | It is recommended to install all libs and apps | 135 | It is recommended to install all libs and apps |
62 | on the SD card or all in the internal storage. | 136 | on the SD card or all in the internal storage. |
63 | There may be problems, if this is mixed. | 137 | There may be problems, if this is mixed. |
64 | 4) | 138 | 4) |
65 | Fixed two bugs in the alarm notification on Windows. | 139 | Fixed two bugs in the alarm notification on Windows. |
66 | 5) | 140 | 5) |
67 | Great improvement! | 141 | Great improvement! |
68 | KO/Pi uses now the latest version of libical. | 142 | KO/Pi uses now the latest version of libical. |
69 | Libical is the library which actually reads | 143 | Libical is the library which actually reads |
70 | the calendar files and extract the data from it. | 144 | the calendar files and extract the data from it. |
71 | With the old version, there were problems | 145 | With the old version, there were problems |
72 | (crashes or program hangs) when licical did read | 146 | (crashes or program hangs) when licical did read |
73 | files, which were not stored from KO/Pi. | 147 | files, which were not stored from KO/Pi. |
74 | I do not know, if the new libical works perfect, | 148 | I do not know, if the new libical works perfect, |
75 | but actually it works much better than | 149 | but actually it works much better than |
76 | the old version. | 150 | the old version. |
77 | There are no problems with compatibility with | 151 | There are no problems with compatibility with |
78 | old calendar files of KO/Pi, of course! | 152 | old calendar files of KO/Pi, of course! |
79 | 6) | 153 | 6) |
80 | New in KA/Pi: | 154 | New in KA/Pi: |
81 | Opie addressbook resource connector available! | 155 | Opie addressbook resource connector available! |
82 | You will need libopie1 and the opie addressbook, | 156 | You will need libopie1 and the opie addressbook, |
83 | of course. | 157 | of course. |
84 | With the Opie addressbook resource connector, | 158 | With the Opie addressbook resource connector, |
85 | you can access the Opie addressbook readonly in KA/Pi. | 159 | you can access the Opie addressbook readonly in KA/Pi. |
86 | If you want to edit or import the data into KA/Pi, | 160 | If you want to edit or import the data into KA/Pi, |
87 | do this: | 161 | do this: |
88 | a) Create an Opie resource. | 162 | a) Create an Opie resource. |
89 | (Menu: Settings-Configure Resources). | 163 | (Menu: Settings-Configure Resources). |
90 | After configuration and restarting KA/Pi you should see | 164 | After configuration and restarting KA/Pi you should see |
91 | the Opie contacts in KA/Pi. | 165 | the Opie contacts in KA/Pi. |
92 | b) Select some or all Opie contacts. | 166 | b) Select some or all Opie contacts. |
93 | (NOTE: +++++ | 167 | (NOTE: +++++ |
94 | To know exactly, what contacts are Opie contacts, | 168 | To know exactly, what contacts are Opie contacts, |
95 | do this: Choose menu: | 169 | do this: Choose menu: |
96 | View-Modify View - TAB Fields. | 170 | View-Modify View - TAB Fields. |
97 | Select in the above list "Resource" and click | 171 | Select in the above list "Resource" and click |
98 | down arrow to add it to the "Selected fields". | 172 | down arrow to add it to the "Selected fields". |
99 | Click OK. | 173 | Click OK. |
100 | Now you have a new column "Resource" in your list, | 174 | Now you have a new column "Resource" in your list, |
101 | where you can see, what an Opie resource is. | 175 | where you can see, what an Opie resource is. |
102 | ++++ NOTE end.) | 176 | ++++ NOTE end.) |
103 | Ok, we do have now some Opie contacts seleted. | 177 | Ok, we do have now some Opie contacts seleted. |
104 | (Use SHIFT or CTRL key in order to multiple select). | 178 | (Use SHIFT or CTRL key in order to multiple select). |
105 | c) Choose menu: Edit-Copy. | 179 | c) Choose menu: Edit-Copy. |
106 | d) Choose menu: Edit-Paste. | 180 | d) Choose menu: Edit-Paste. |
107 | e) Select the resource, you want to add the contacts to. | 181 | e) Select the resource, you want to add the contacts to. |
108 | Congrats! Now you have read/write access to the copied | 182 | Congrats! Now you have read/write access to the copied |
109 | opie contacts as "real" KA/Pi contacts. | 183 | opie contacts as "real" KA/Pi contacts. |
110 | 184 | ||
111 | 185 | ||
112 | ********** VERSION 1.9.1 ************ | 186 | ********** VERSION 1.9.1 ************ |
113 | 1) | 187 | 1) |
114 | +++ IMPORTANT 1 +++ | 188 | +++ IMPORTANT 1 +++ |
115 | 189 | ||
116 | The storing place of the default calendar | 190 | The storing place of the default calendar |
117 | file has changed! | 191 | file has changed! |
118 | The default calendar file was | 192 | The default calendar file was |
119 | Applications/korganizer/mycalendar.ics | 193 | Applications/korganizer/mycalendar.ics |
120 | on Zaurus and | 194 | on Zaurus and |
121 | (yourHomeDir)/korganizer/mycalendar.ics | 195 | (yourHomeDir)/korganizer/mycalendar.ics |
122 | on Windows/Linux desktop. Now it is | 196 | on Windows/Linux desktop. Now it is |
123 | (yourHomeDir)/kdepim/korganizer/mycalendar.ics | 197 | (yourHomeDir)/kdepim/korganizer/mycalendar.ics |
124 | on Zaurus, Windows and Linux. | 198 | on Zaurus, Windows and Linux. |
125 | To load the old file, choose menu | 199 | To load the old file, choose menu |
126 | File-Load calendar backup. | 200 | File-Load calendar backup. |
127 | (It should be loaded automatically | 201 | (It should be loaded automatically |
128 | at startup with a warning message displayed). | 202 | at startup with a warning message displayed). |
129 | The place of the configuration file has changed too. | 203 | The place of the configuration file has changed too. |
130 | If you want to use your old KO/Pi config, | 204 | If you want to use your old KO/Pi config, |
131 | copy it to | 205 | copy it to |
diff --git a/kaddressbook/kabcore.cpp b/kaddressbook/kabcore.cpp index 74e5cf7..1a1bcff 100644 --- a/kaddressbook/kabcore.cpp +++ b/kaddressbook/kabcore.cpp | |||
@@ -169,270 +169,278 @@ KABCore::KABCore( KXMLGUIClient *client, bool readWrite, QWidget *parent, const | |||
169 | 169 | ||
170 | connect( mAddressBook, SIGNAL( addressBookChanged( AddressBook * ) ), | 170 | connect( mAddressBook, SIGNAL( addressBookChanged( AddressBook * ) ), |
171 | SLOT( addressBookChanged() ) ); | 171 | SLOT( addressBookChanged() ) ); |
172 | 172 | ||
173 | mAddressBook->addCustomField( i18n( "Department" ), KABC::Field::Organization, | 173 | mAddressBook->addCustomField( i18n( "Department" ), KABC::Field::Organization, |
174 | "X-Department", "KADDRESSBOOK" ); | 174 | "X-Department", "KADDRESSBOOK" ); |
175 | mAddressBook->addCustomField( i18n( "Profession" ), KABC::Field::Organization, | 175 | mAddressBook->addCustomField( i18n( "Profession" ), KABC::Field::Organization, |
176 | "X-Profession", "KADDRESSBOOK" ); | 176 | "X-Profession", "KADDRESSBOOK" ); |
177 | mAddressBook->addCustomField( i18n( "Assistant's Name" ), KABC::Field::Organization, | 177 | mAddressBook->addCustomField( i18n( "Assistant's Name" ), KABC::Field::Organization, |
178 | "X-AssistantsName", "KADDRESSBOOK" ); | 178 | "X-AssistantsName", "KADDRESSBOOK" ); |
179 | mAddressBook->addCustomField( i18n( "Manager's Name" ), KABC::Field::Organization, | 179 | mAddressBook->addCustomField( i18n( "Manager's Name" ), KABC::Field::Organization, |
180 | "X-ManagersName", "KADDRESSBOOK" ); | 180 | "X-ManagersName", "KADDRESSBOOK" ); |
181 | mAddressBook->addCustomField( i18n( "Spouse's Name" ), KABC::Field::Personal, | 181 | mAddressBook->addCustomField( i18n( "Spouse's Name" ), KABC::Field::Personal, |
182 | "X-SpousesName", "KADDRESSBOOK" ); | 182 | "X-SpousesName", "KADDRESSBOOK" ); |
183 | mAddressBook->addCustomField( i18n( "Office" ), KABC::Field::Personal, | 183 | mAddressBook->addCustomField( i18n( "Office" ), KABC::Field::Personal, |
184 | "X-Office", "KADDRESSBOOK" ); | 184 | "X-Office", "KADDRESSBOOK" ); |
185 | mAddressBook->addCustomField( i18n( "IM Address" ), KABC::Field::Personal, | 185 | mAddressBook->addCustomField( i18n( "IM Address" ), KABC::Field::Personal, |
186 | "X-IMAddress", "KADDRESSBOOK" ); | 186 | "X-IMAddress", "KADDRESSBOOK" ); |
187 | mAddressBook->addCustomField( i18n( "Anniversary" ), KABC::Field::Personal, | 187 | mAddressBook->addCustomField( i18n( "Anniversary" ), KABC::Field::Personal, |
188 | "X-Anniversary", "KADDRESSBOOK" ); | 188 | "X-Anniversary", "KADDRESSBOOK" ); |
189 | 189 | ||
190 | //US added this field to become compatible with Opie/qtopia addressbook | 190 | //US added this field to become compatible with Opie/qtopia addressbook |
191 | // values can be "female" or "male" or "". An empty field represents undefined. | 191 | // values can be "female" or "male" or "". An empty field represents undefined. |
192 | mAddressBook->addCustomField( i18n( "Gender" ), KABC::Field::Personal, | 192 | mAddressBook->addCustomField( i18n( "Gender" ), KABC::Field::Personal, |
193 | "X-Gender", "KADDRESSBOOK" ); | 193 | "X-Gender", "KADDRESSBOOK" ); |
194 | mAddressBook->addCustomField( i18n( "Children" ), KABC::Field::Personal, | 194 | mAddressBook->addCustomField( i18n( "Children" ), KABC::Field::Personal, |
195 | "X-Children", "KADDRESSBOOK" ); | 195 | "X-Children", "KADDRESSBOOK" ); |
196 | mAddressBook->addCustomField( i18n( "FreeBusyUrl" ), KABC::Field::Personal, | 196 | mAddressBook->addCustomField( i18n( "FreeBusyUrl" ), KABC::Field::Personal, |
197 | "X-FreeBusyUrl", "KADDRESSBOOK" ); | 197 | "X-FreeBusyUrl", "KADDRESSBOOK" ); |
198 | 198 | ||
199 | initGUI(); | 199 | initGUI(); |
200 | 200 | ||
201 | mIncSearchWidget->setFocus(); | 201 | mIncSearchWidget->setFocus(); |
202 | 202 | ||
203 | 203 | ||
204 | connect( mViewManager, SIGNAL( selected( const QString& ) ), | 204 | connect( mViewManager, SIGNAL( selected( const QString& ) ), |
205 | SLOT( setContactSelected( const QString& ) ) ); | 205 | SLOT( setContactSelected( const QString& ) ) ); |
206 | connect( mViewManager, SIGNAL( executed( const QString& ) ), | 206 | connect( mViewManager, SIGNAL( executed( const QString& ) ), |
207 | SLOT( executeContact( const QString& ) ) ); | 207 | SLOT( executeContact( const QString& ) ) ); |
208 | 208 | ||
209 | connect( mViewManager, SIGNAL( deleteRequest( ) ), | 209 | connect( mViewManager, SIGNAL( deleteRequest( ) ), |
210 | SLOT( deleteContacts( ) ) ); | 210 | SLOT( deleteContacts( ) ) ); |
211 | connect( mViewManager, SIGNAL( modified() ), | 211 | connect( mViewManager, SIGNAL( modified() ), |
212 | SLOT( setModified() ) ); | 212 | SLOT( setModified() ) ); |
213 | 213 | ||
214 | connect( mExtensionManager, SIGNAL( modified( const KABC::Addressee::List& ) ), this, SLOT( extensionModified( const KABC::Addressee::List& ) ) ); | 214 | connect( mExtensionManager, SIGNAL( modified( const KABC::Addressee::List& ) ), this, SLOT( extensionModified( const KABC::Addressee::List& ) ) ); |
215 | connect( mExtensionManager, SIGNAL( changedActiveExtension( int ) ), this, SLOT( extensionChanged( int ) ) ); | 215 | connect( mExtensionManager, SIGNAL( changedActiveExtension( int ) ), this, SLOT( extensionChanged( int ) ) ); |
216 | 216 | ||
217 | connect( mXXPortManager, SIGNAL( modified() ), | 217 | connect( mXXPortManager, SIGNAL( modified() ), |
218 | SLOT( setModified() ) ); | 218 | SLOT( setModified() ) ); |
219 | 219 | ||
220 | connect( mJumpButtonBar, SIGNAL( jumpToLetter( const QString& ) ), | 220 | connect( mJumpButtonBar, SIGNAL( jumpToLetter( const QString& ) ), |
221 | SLOT( incrementalSearch( const QString& ) ) ); | 221 | SLOT( incrementalSearch( const QString& ) ) ); |
222 | connect( mIncSearchWidget, SIGNAL( fieldChanged() ), | 222 | connect( mIncSearchWidget, SIGNAL( fieldChanged() ), |
223 | mJumpButtonBar, SLOT( recreateButtons() ) ); | 223 | mJumpButtonBar, SLOT( recreateButtons() ) ); |
224 | 224 | ||
225 | connect( mDetails, SIGNAL( sendEmail( const QString& ) ), | 225 | connect( mDetails, SIGNAL( sendEmail( const QString& ) ), |
226 | SLOT( sendMail( const QString& ) ) ); | 226 | SLOT( sendMail( const QString& ) ) ); |
227 | 227 | ||
228 | 228 | ||
229 | connect( ExternalAppHandler::instance(), SIGNAL (requestForNameEmailUidList(const QString&, const QString&)),this, SLOT(requestForNameEmailUidList(const QString&, const QString&))); | 229 | connect( ExternalAppHandler::instance(), SIGNAL (requestForNameEmailUidList(const QString&, const QString&)),this, SLOT(requestForNameEmailUidList(const QString&, const QString&))); |
230 | connect( ExternalAppHandler::instance(), SIGNAL (requestForDetails(const QString&, const QString&, const QString&, const QString&, const QString&)),this, SLOT(requestForDetails(const QString&, const QString&, const QString&, const QString&, const QString&))); | 230 | connect( ExternalAppHandler::instance(), SIGNAL (requestForDetails(const QString&, const QString&, const QString&, const QString&, const QString&)),this, SLOT(requestForDetails(const QString&, const QString&, const QString&, const QString&, const QString&))); |
231 | 231 | ||
232 | 232 | ||
233 | #ifndef KAB_EMBEDDED | 233 | #ifndef KAB_EMBEDDED |
234 | connect( mViewManager, SIGNAL( urlDropped( const KURL& ) ), | 234 | connect( mViewManager, SIGNAL( urlDropped( const KURL& ) ), |
235 | mXXPortManager, SLOT( importVCard( const KURL& ) ) ); | 235 | mXXPortManager, SLOT( importVCard( const KURL& ) ) ); |
236 | 236 | ||
237 | connect( mDetails, SIGNAL( browse( const QString& ) ), | 237 | connect( mDetails, SIGNAL( browse( const QString& ) ), |
238 | SLOT( browse( const QString& ) ) ); | 238 | SLOT( browse( const QString& ) ) ); |
239 | 239 | ||
240 | 240 | ||
241 | mAddressBookService = new KAddressBookService( this ); | 241 | mAddressBookService = new KAddressBookService( this ); |
242 | 242 | ||
243 | #endif //KAB_EMBEDDED | 243 | #endif //KAB_EMBEDDED |
244 | mEditorDialog = 0; | 244 | mEditorDialog = 0; |
245 | createAddresseeEditorDialog( this ); | 245 | createAddresseeEditorDialog( this ); |
246 | setModified( false ); | 246 | setModified( false ); |
247 | } | 247 | } |
248 | 248 | ||
249 | KABCore::~KABCore() | 249 | KABCore::~KABCore() |
250 | { | 250 | { |
251 | // save(); | 251 | // save(); |
252 | //saveSettings(); | 252 | //saveSettings(); |
253 | //KABPrefs::instance()->writeConfig(); | 253 | //KABPrefs::instance()->writeConfig(); |
254 | delete AddresseeConfig::instance(); | 254 | delete AddresseeConfig::instance(); |
255 | mAddressBook = 0; | 255 | mAddressBook = 0; |
256 | KABC::StdAddressBook::close(); | 256 | KABC::StdAddressBook::close(); |
257 | } | 257 | } |
258 | 258 | ||
259 | void KABCore::restoreSettings() | 259 | void KABCore::restoreSettings() |
260 | { | 260 | { |
261 | mMultipleViewsAtOnce = KABPrefs::instance()->mMultipleViewsAtOnce; | 261 | mMultipleViewsAtOnce = KABPrefs::instance()->mMultipleViewsAtOnce; |
262 | 262 | ||
263 | bool state; | 263 | bool state; |
264 | 264 | ||
265 | if (mMultipleViewsAtOnce) | 265 | if (mMultipleViewsAtOnce) |
266 | state = KABPrefs::instance()->mDetailsPageVisible; | 266 | state = KABPrefs::instance()->mDetailsPageVisible; |
267 | else | 267 | else |
268 | state = false; | 268 | state = false; |
269 | 269 | ||
270 | mActionDetails->setChecked( state ); | 270 | mActionDetails->setChecked( state ); |
271 | setDetailsVisible( state ); | 271 | setDetailsVisible( state ); |
272 | 272 | ||
273 | state = KABPrefs::instance()->mJumpButtonBarVisible; | 273 | state = KABPrefs::instance()->mJumpButtonBarVisible; |
274 | 274 | ||
275 | mActionJumpBar->setChecked( state ); | 275 | mActionJumpBar->setChecked( state ); |
276 | setJumpButtonBarVisible( state ); | 276 | setJumpButtonBarVisible( state ); |
277 | /*US | 277 | /*US |
278 | QValueList<int> splitterSize = KABPrefs::instance()->mDetailsSplitter; | 278 | QValueList<int> splitterSize = KABPrefs::instance()->mDetailsSplitter; |
279 | if ( splitterSize.count() == 0 ) { | 279 | if ( splitterSize.count() == 0 ) { |
280 | splitterSize.append( width() / 2 ); | 280 | splitterSize.append( width() / 2 ); |
281 | splitterSize.append( width() / 2 ); | 281 | splitterSize.append( width() / 2 ); |
282 | } | 282 | } |
283 | mMiniSplitter->setSizes( splitterSize ); | 283 | mMiniSplitter->setSizes( splitterSize ); |
284 | if ( mExtensionBarSplitter ) { | 284 | if ( mExtensionBarSplitter ) { |
285 | splitterSize = KABPrefs::instance()->mExtensionsSplitter; | 285 | splitterSize = KABPrefs::instance()->mExtensionsSplitter; |
286 | if ( splitterSize.count() == 0 ) { | 286 | if ( splitterSize.count() == 0 ) { |
287 | splitterSize.append( width() / 2 ); | 287 | splitterSize.append( width() / 2 ); |
288 | splitterSize.append( width() / 2 ); | 288 | splitterSize.append( width() / 2 ); |
289 | } | 289 | } |
290 | mExtensionBarSplitter->setSizes( splitterSize ); | 290 | mExtensionBarSplitter->setSizes( splitterSize ); |
291 | 291 | ||
292 | } | 292 | } |
293 | */ | 293 | */ |
294 | mViewManager->restoreSettings(); | 294 | mViewManager->restoreSettings(); |
295 | mIncSearchWidget->setCurrentItem( KABPrefs::instance()->mCurrentIncSearchField ); | 295 | mIncSearchWidget->setCurrentItem( KABPrefs::instance()->mCurrentIncSearchField ); |
296 | mExtensionManager->restoreSettings(); | 296 | mExtensionManager->restoreSettings(); |
297 | 297 | #ifdef DESKTOP_VERSION | |
298 | QValueList<int> splitterSize = KABPrefs::instance()->mDetailsSplitter; | 298 | int wid = width(); |
299 | if ( splitterSize.count() == 0 ) { | 299 | if ( wid < 10 ) |
300 | splitterSize.append( width() / 2 ); | 300 | wid = 400; |
301 | splitterSize.append( width() / 2 ); | 301 | #else |
302 | int wid = QApplication::desktop()->width(); | ||
303 | if ( wid < 640 ) | ||
304 | wid = QApplication::desktop()->height(); | ||
305 | #endif | ||
306 | QValueList<int> splitterSize;// = KABPrefs::instance()->mDetailsSplitter; | ||
307 | if ( true /*splitterSize.count() == 0*/ ) { | ||
308 | splitterSize.append( wid / 2 ); | ||
309 | splitterSize.append( wid / 2 ); | ||
302 | } | 310 | } |
303 | mMiniSplitter->setSizes( splitterSize ); | 311 | mMiniSplitter->setSizes( splitterSize ); |
304 | if ( mExtensionBarSplitter ) { | 312 | if ( mExtensionBarSplitter ) { |
305 | splitterSize = KABPrefs::instance()->mExtensionsSplitter; | 313 | //splitterSize = KABPrefs::instance()->mExtensionsSplitter; |
306 | if ( splitterSize.count() == 0 ) { | 314 | if ( true /*splitterSize.count() == 0*/ ) { |
307 | splitterSize.append( width() / 2 ); | 315 | splitterSize.append( wid / 2 ); |
308 | splitterSize.append( width() / 2 ); | 316 | splitterSize.append( wid / 2 ); |
309 | } | 317 | } |
310 | mExtensionBarSplitter->setSizes( splitterSize ); | 318 | mExtensionBarSplitter->setSizes( splitterSize ); |
311 | 319 | ||
312 | } | 320 | } |
313 | 321 | ||
314 | 322 | ||
315 | } | 323 | } |
316 | 324 | ||
317 | void KABCore::saveSettings() | 325 | void KABCore::saveSettings() |
318 | { | 326 | { |
319 | KABPrefs::instance()->mJumpButtonBarVisible = mActionJumpBar->isChecked(); | 327 | KABPrefs::instance()->mJumpButtonBarVisible = mActionJumpBar->isChecked(); |
320 | if ( mExtensionBarSplitter ) | 328 | if ( mExtensionBarSplitter ) |
321 | KABPrefs::instance()->mExtensionsSplitter = mExtensionBarSplitter->sizes(); | 329 | KABPrefs::instance()->mExtensionsSplitter = mExtensionBarSplitter->sizes(); |
322 | KABPrefs::instance()->mDetailsPageVisible = mActionDetails->isChecked(); | 330 | KABPrefs::instance()->mDetailsPageVisible = mActionDetails->isChecked(); |
323 | KABPrefs::instance()->mDetailsSplitter = mMiniSplitter->sizes(); | 331 | KABPrefs::instance()->mDetailsSplitter = mMiniSplitter->sizes(); |
324 | #ifndef KAB_EMBEDDED | 332 | #ifndef KAB_EMBEDDED |
325 | 333 | ||
326 | KABPrefs::instance()->mExtensionsSplitter = mExtensionBarSplitter->sizes(); | 334 | KABPrefs::instance()->mExtensionsSplitter = mExtensionBarSplitter->sizes(); |
327 | KABPrefs::instance()->mDetailsSplitter = mDetailsSplitter->sizes(); | 335 | KABPrefs::instance()->mDetailsSplitter = mDetailsSplitter->sizes(); |
328 | #endif //KAB_EMBEDDED | 336 | #endif //KAB_EMBEDDED |
329 | mExtensionManager->saveSettings(); | 337 | mExtensionManager->saveSettings(); |
330 | mViewManager->saveSettings(); | 338 | mViewManager->saveSettings(); |
331 | 339 | ||
332 | KABPrefs::instance()->mCurrentIncSearchField = mIncSearchWidget->currentItem(); | 340 | KABPrefs::instance()->mCurrentIncSearchField = mIncSearchWidget->currentItem(); |
333 | } | 341 | } |
334 | 342 | ||
335 | KABC::AddressBook *KABCore::addressBook() const | 343 | KABC::AddressBook *KABCore::addressBook() const |
336 | { | 344 | { |
337 | return mAddressBook; | 345 | return mAddressBook; |
338 | } | 346 | } |
339 | 347 | ||
340 | KConfig *KABCore::config() | 348 | KConfig *KABCore::config() |
341 | { | 349 | { |
342 | #ifndef KAB_EMBEDDED | 350 | #ifndef KAB_EMBEDDED |
343 | return KABPrefs::instance()->config(); | 351 | return KABPrefs::instance()->config(); |
344 | #else //KAB_EMBEDDED | 352 | #else //KAB_EMBEDDED |
345 | return KABPrefs::instance()->getConfig(); | 353 | return KABPrefs::instance()->getConfig(); |
346 | #endif //KAB_EMBEDDED | 354 | #endif //KAB_EMBEDDED |
347 | } | 355 | } |
348 | 356 | ||
349 | KActionCollection *KABCore::actionCollection() const | 357 | KActionCollection *KABCore::actionCollection() const |
350 | { | 358 | { |
351 | return mGUIClient->actionCollection(); | 359 | return mGUIClient->actionCollection(); |
352 | } | 360 | } |
353 | 361 | ||
354 | KABC::Field *KABCore::currentSearchField() const | 362 | KABC::Field *KABCore::currentSearchField() const |
355 | { | 363 | { |
356 | if (mIncSearchWidget) | 364 | if (mIncSearchWidget) |
357 | return mIncSearchWidget->currentField(); | 365 | return mIncSearchWidget->currentField(); |
358 | else | 366 | else |
359 | return 0; | 367 | return 0; |
360 | } | 368 | } |
361 | 369 | ||
362 | QStringList KABCore::selectedUIDs() const | 370 | QStringList KABCore::selectedUIDs() const |
363 | { | 371 | { |
364 | return mViewManager->selectedUids(); | 372 | return mViewManager->selectedUids(); |
365 | } | 373 | } |
366 | 374 | ||
367 | KABC::Resource *KABCore::requestResource( QWidget *parent ) | 375 | KABC::Resource *KABCore::requestResource( QWidget *parent ) |
368 | { | 376 | { |
369 | QPtrList<KABC::Resource> kabcResources = addressBook()->resources(); | 377 | QPtrList<KABC::Resource> kabcResources = addressBook()->resources(); |
370 | 378 | ||
371 | QPtrList<KRES::Resource> kresResources; | 379 | QPtrList<KRES::Resource> kresResources; |
372 | QPtrListIterator<KABC::Resource> resIt( kabcResources ); | 380 | QPtrListIterator<KABC::Resource> resIt( kabcResources ); |
373 | KABC::Resource *resource; | 381 | KABC::Resource *resource; |
374 | while ( ( resource = resIt.current() ) != 0 ) { | 382 | while ( ( resource = resIt.current() ) != 0 ) { |
375 | ++resIt; | 383 | ++resIt; |
376 | if ( !resource->readOnly() ) { | 384 | if ( !resource->readOnly() ) { |
377 | KRES::Resource *res = static_cast<KRES::Resource*>( resource ); | 385 | KRES::Resource *res = static_cast<KRES::Resource*>( resource ); |
378 | if ( res ) | 386 | if ( res ) |
379 | kresResources.append( res ); | 387 | kresResources.append( res ); |
380 | } | 388 | } |
381 | } | 389 | } |
382 | 390 | ||
383 | KRES::Resource *res = KRES::SelectDialog::getResource( kresResources, parent ); | 391 | KRES::Resource *res = KRES::SelectDialog::getResource( kresResources, parent ); |
384 | return static_cast<KABC::Resource*>( res ); | 392 | return static_cast<KABC::Resource*>( res ); |
385 | } | 393 | } |
386 | 394 | ||
387 | #ifndef KAB_EMBEDDED | 395 | #ifndef KAB_EMBEDDED |
388 | KAboutData *KABCore::createAboutData() | 396 | KAboutData *KABCore::createAboutData() |
389 | #else //KAB_EMBEDDED | 397 | #else //KAB_EMBEDDED |
390 | void KABCore::createAboutData() | 398 | void KABCore::createAboutData() |
391 | #endif //KAB_EMBEDDED | 399 | #endif //KAB_EMBEDDED |
392 | { | 400 | { |
393 | #ifndef KAB_EMBEDDED | 401 | #ifndef KAB_EMBEDDED |
394 | KAboutData *about = new KAboutData( "kaddressbook", I18N_NOOP( "KAddressBook" ), | 402 | KAboutData *about = new KAboutData( "kaddressbook", I18N_NOOP( "KAddressBook" ), |
395 | "3.1", I18N_NOOP( "The KDE Address Book" ), | 403 | "3.1", I18N_NOOP( "The KDE Address Book" ), |
396 | KAboutData::License_GPL_V2, | 404 | KAboutData::License_GPL_V2, |
397 | I18N_NOOP( "(c) 1997-2003, The KDE PIM Team" ) ); | 405 | I18N_NOOP( "(c) 1997-2003, The KDE PIM Team" ) ); |
398 | about->addAuthor( "Tobias Koenig", I18N_NOOP( "Current maintainer " ), "tokoe@kde.org" ); | 406 | about->addAuthor( "Tobias Koenig", I18N_NOOP( "Current maintainer " ), "tokoe@kde.org" ); |
399 | about->addAuthor( "Don Sanders", I18N_NOOP( "Original author " ) ); | 407 | about->addAuthor( "Don Sanders", I18N_NOOP( "Original author " ) ); |
400 | about->addAuthor( "Cornelius Schumacher", | 408 | about->addAuthor( "Cornelius Schumacher", |
401 | I18N_NOOP( "Co-maintainer, libkabc port, CSV import/export " ), | 409 | I18N_NOOP( "Co-maintainer, libkabc port, CSV import/export " ), |
402 | "schumacher@kde.org" ); | 410 | "schumacher@kde.org" ); |
403 | about->addAuthor( "Mike Pilone", I18N_NOOP( "GUI and framework redesign " ), | 411 | about->addAuthor( "Mike Pilone", I18N_NOOP( "GUI and framework redesign " ), |
404 | "mpilone@slac.com" ); | 412 | "mpilone@slac.com" ); |
405 | about->addAuthor( "Greg Stern", I18N_NOOP( "DCOP interface" ) ); | 413 | about->addAuthor( "Greg Stern", I18N_NOOP( "DCOP interface" ) ); |
406 | about->addAuthor( "Mark Westcott", I18N_NOOP( "Contact pinning" ) ); | 414 | about->addAuthor( "Mark Westcott", I18N_NOOP( "Contact pinning" ) ); |
407 | about->addAuthor( "Michel Boyer de la Giroday", I18N_NOOP( "LDAP Lookup\n" ), | 415 | about->addAuthor( "Michel Boyer de la Giroday", I18N_NOOP( "LDAP Lookup\n" ), |
408 | "michel@klaralvdalens-datakonsult.se" ); | 416 | "michel@klaralvdalens-datakonsult.se" ); |
409 | about->addAuthor( "Steffen Hansen", I18N_NOOP( "LDAP Lookup " ), | 417 | about->addAuthor( "Steffen Hansen", I18N_NOOP( "LDAP Lookup " ), |
410 | "hansen@kde.org" ); | 418 | "hansen@kde.org" ); |
411 | 419 | ||
412 | return about; | 420 | return about; |
413 | #endif //KAB_EMBEDDED | 421 | #endif //KAB_EMBEDDED |
414 | 422 | ||
415 | QString version; | 423 | QString version; |
416 | #include <../version> | 424 | #include <../version> |
417 | QMessageBox::about( this, "About KAddressbook/Pi", | 425 | QMessageBox::about( this, "About KAddressbook/Pi", |
418 | "KAddressbook/Platform-independent\n" | 426 | "KAddressbook/Platform-independent\n" |
419 | "(KA/Pi) " +version + " - " + | 427 | "(KA/Pi) " +version + " - " + |
420 | #ifdef DESKTOP_VERSION | 428 | #ifdef DESKTOP_VERSION |
421 | "Desktop Edition\n" | 429 | "Desktop Edition\n" |
422 | #else | 430 | #else |
423 | "PDA-Edition\n" | 431 | "PDA-Edition\n" |
424 | "for: Zaurus 5500 / 7x0 / 8x0\n" | 432 | "for: Zaurus 5500 / 7x0 / 8x0\n" |
425 | #endif | 433 | #endif |
426 | 434 | ||
427 | "(c) 2004 Ulf Schenk\n" | 435 | "(c) 2004 Ulf Schenk\n" |
428 | "(c) 2004 Lutz Rogowski\n" | 436 | "(c) 2004 Lutz Rogowski\n" |
429 | "(c) 1997-2003, The KDE PIM Team\n" | 437 | "(c) 1997-2003, The KDE PIM Team\n" |
430 | "Tobias Koenig Current maintainer\ntokoe@kde.org\n" | 438 | "Tobias Koenig Current maintainer\ntokoe@kde.org\n" |
431 | "Don Sanders Original author\n" | 439 | "Don Sanders Original author\n" |
432 | "Cornelius Schumacher Co-maintainer\nschumacher@kde.org\n" | 440 | "Cornelius Schumacher Co-maintainer\nschumacher@kde.org\n" |
433 | "Mike Pilone GUI and framework redesign\nmpilone@slac.com\n" | 441 | "Mike Pilone GUI and framework redesign\nmpilone@slac.com\n" |
434 | "Greg Stern DCOP interface\n" | 442 | "Greg Stern DCOP interface\n" |
435 | "Mark Westcot Contact pinning\n" | 443 | "Mark Westcot Contact pinning\n" |
436 | "Michel Boyer de la Giroday LDAP Lookup\n" "michel@klaralvdalens-datakonsult.se\n" | 444 | "Michel Boyer de la Giroday LDAP Lookup\n" "michel@klaralvdalens-datakonsult.se\n" |
437 | "Steffen Hansen LDAP Lookup\nhansen@kde.org\n" | 445 | "Steffen Hansen LDAP Lookup\nhansen@kde.org\n" |
438 | #ifdef _WIN32_ | 446 | #ifdef _WIN32_ |