-rw-r--r-- | bin/kdepim/WhatsNew.txt | 1 | ||||
-rw-r--r-- | kaddressbook/imagewidget.cpp | 21 | ||||
-rw-r--r-- | kaddressbook/imagewidget.h | 2 |
3 files changed, 5 insertions, 19 deletions
diff --git a/bin/kdepim/WhatsNew.txt b/bin/kdepim/WhatsNew.txt index 93edc59..6e3b886 100644 --- a/bin/kdepim/WhatsNew.txt +++ b/bin/kdepim/WhatsNew.txt | |||
@@ -1,91 +1,92 @@ | |||
1 | Info about the changes in new versions of KDE-Pim/Pi | 1 | Info about the changes in new versions of KDE-Pim/Pi |
2 | 2 | ||
3 | ********** VERSION 2.1.5 ************ | 3 | ********** VERSION 2.1.5 ************ |
4 | 4 | ||
5 | This is the new stable version. | 5 | This is the new stable version. |
6 | Bugfix: | 6 | Bugfix: |
7 | Fixed a problem with agenda popup on the desktop in KO/Pi. | 7 | Fixed a problem with agenda popup on the desktop in KO/Pi. |
8 | Fixed a crash when reloading file, e.g. after a passive pi-sync synchronization. | 8 | Fixed a crash when reloading file, e.g. after a passive pi-sync synchronization. |
9 | Added config option to not display completed todos in agenda view. | 9 | Added config option to not display completed todos in agenda view. |
10 | Addressee view is now using the formatted name, if defined. | 10 | Addressee view is now using the formatted name, if defined. |
11 | That makes it possible to display "lastname, firstname" in that view now. | 11 | That makes it possible to display "lastname, firstname" in that view now. |
12 | To set the formatted name for all contacts, please use menu: | 12 | To set the formatted name for all contacts, please use menu: |
13 | Edit->Change->Set formatted name. | 13 | Edit->Change->Set formatted name. |
14 | Fixed the bug in KA/Pi that is was not possible to add images to a contact on Windows. | ||
14 | 15 | ||
15 | ********** VERSION 2.1.4 ************ | 16 | ********** VERSION 2.1.4 ************ |
16 | 17 | ||
17 | Fixed two more bugs in the KA/Pi CSV import dialog: | 18 | Fixed two more bugs in the KA/Pi CSV import dialog: |
18 | Made it possible to read multi-line fields and import it to the "Note" field. | 19 | Made it possible to read multi-line fields and import it to the "Note" field. |
19 | Fixed a problem in mapping custom fields, whatever a custem field is... | 20 | Fixed a problem in mapping custom fields, whatever a custem field is... |
20 | 21 | ||
21 | ********** VERSION 2.1.3 ************ | 22 | ********** VERSION 2.1.3 ************ |
22 | 23 | ||
23 | Changed the menu structure of the alarm applet: | 24 | Changed the menu structure of the alarm applet: |
24 | Moved "Simulate" to " Play Beeps" submenu and re-added "Todo List". | 25 | Moved "Simulate" to " Play Beeps" submenu and re-added "Todo List". |
25 | 26 | ||
26 | Fixed several problems in the KA/Pi CSV import dialog: | 27 | Fixed several problems in the KA/Pi CSV import dialog: |
27 | Added "Category", made codec configureable and made it possible to map many fields to the "Note" field. | 28 | Added "Category", made codec configureable and made it possible to map many fields to the "Note" field. |
28 | 29 | ||
29 | 30 | ||
30 | ********** VERSION 2.1.2 ************ | 31 | ********** VERSION 2.1.2 ************ |
31 | 32 | ||
32 | Fixed a problem closing the alarm dialog on Zaurus with "OK" button. | 33 | Fixed a problem closing the alarm dialog on Zaurus with "OK" button. |
33 | 34 | ||
34 | Fixed a problem when importing data from Outlook with mutiple categories set. | 35 | Fixed a problem when importing data from Outlook with mutiple categories set. |
35 | 36 | ||
36 | Changed display of days in datenavigator: | 37 | Changed display of days in datenavigator: |
37 | Birthdays are now blue, not dark green. | 38 | Birthdays are now blue, not dark green. |
38 | When todo view is shown, no birtdays are shown and days with due todos are shown blue. | 39 | When todo view is shown, no birtdays are shown and days with due todos are shown blue. |
39 | When journal view is shown, only holidays are shown and days with journals are blue. | 40 | When journal view is shown, only holidays are shown and days with journals are blue. |
40 | 41 | ||
41 | Added Backup options to global config: | 42 | Added Backup options to global config: |
42 | You can create now x-daily backups for KO/Pi, KA/Pi (for file resources only, file resource is the standard type) and PwM/Pi ( all files you will open ). | 43 | You can create now x-daily backups for KO/Pi, KA/Pi (for file resources only, file resource is the standard type) and PwM/Pi ( all files you will open ). |
43 | It is recommended to use another HDD/Memory card for the backup directory. If (very useful on the Zaurus) the specified backup directory does not exist you are asked if you want to try again to create a backup. That makes it possible to insert your memory card in the Zaurus and then trying again. | 44 | It is recommended to use another HDD/Memory card for the backup directory. If (very useful on the Zaurus) the specified backup directory does not exist you are asked if you want to try again to create a backup. That makes it possible to insert your memory card in the Zaurus and then trying again. |
44 | The backup is created when the application wants to save for the first time on a backup-day. You can specify the amount of backups and the day interval of backups. | 45 | The backup is created when the application wants to save for the first time on a backup-day. You can specify the amount of backups and the day interval of backups. |
45 | 46 | ||
46 | ********** VERSION 2.1.1 ************ | 47 | ********** VERSION 2.1.1 ************ |
47 | 48 | ||
48 | Stable release 2.1.1! | 49 | Stable release 2.1.1! |
49 | 50 | ||
50 | KO/Pi: | 51 | KO/Pi: |
51 | Fixed one problem in the layout of the edit dialogs on the Zaurus with 640x480 display. | 52 | Fixed one problem in the layout of the edit dialogs on the Zaurus with 640x480 display. |
52 | 53 | ||
53 | ********** VERSION 2.1.0 ************ | 54 | ********** VERSION 2.1.0 ************ |
54 | 55 | ||
55 | Stable release 2.1.0! | 56 | Stable release 2.1.0! |
56 | 57 | ||
57 | Summary of changes/fixes compared to version 2.0.6: | 58 | Summary of changes/fixes compared to version 2.0.6: |
58 | 59 | ||
59 | Many bugs of version 2.0.6 fixed. | 60 | Many bugs of version 2.0.6 fixed. |
60 | Most of them were small bugs, but some of them were important. | 61 | Most of them were small bugs, but some of them were important. |
61 | It is recommended to use version 2.1.0 and not version 2.0.6. | 62 | It is recommended to use version 2.1.0 and not version 2.0.6. |
62 | 63 | ||
63 | Important changes: | 64 | Important changes: |
64 | 65 | ||
65 | Added recurring todos to KO/Pi. | 66 | Added recurring todos to KO/Pi. |
66 | 67 | ||
67 | Added global application font settings (for all KDE-Pim/Pi apps) to the general settings. | 68 | Added global application font settings (for all KDE-Pim/Pi apps) to the general settings. |
68 | 69 | ||
69 | Made Passwordmanager PwM/Pi more userfriendly: Rearranged some toolbar icons, optimized setting of focus, fixed layout problems and more. | 70 | Made Passwordmanager PwM/Pi more userfriendly: Rearranged some toolbar icons, optimized setting of focus, fixed layout problems and more. |
70 | 71 | ||
71 | Datenavigator can now display many months. Very useful on the desktop. | 72 | Datenavigator can now display many months. Very useful on the desktop. |
72 | 73 | ||
73 | KO/Pi alarm applet changed: Made buttons in alarm dialog much bigger and other usebility enhancements. | 74 | KO/Pi alarm applet changed: Made buttons in alarm dialog much bigger and other usebility enhancements. |
74 | 75 | ||
75 | Made alarm sound working on Linux desktop. | 76 | Made alarm sound working on Linux desktop. |
76 | 77 | ||
77 | Made KO/Pi and KA/Pi running from a memory stick. Please read storage HowTo for details. | 78 | Made KO/Pi and KA/Pi running from a memory stick. Please read storage HowTo for details. |
78 | 79 | ||
79 | Added timetracking feature in KO/Pi todo view. Please read timetraker HowTo for details. | 80 | Added timetracking feature in KO/Pi todo view. Please read timetraker HowTo for details. |
80 | 81 | ||
81 | Many other usebility enhancements. | 82 | Many other usebility enhancements. |
82 | Special thanks to Ben for his suggestions! | 83 | Special thanks to Ben for his suggestions! |
83 | 84 | ||
84 | You can find the complete changelog | 85 | You can find the complete changelog |
85 | from version 1.7.7 to 2.1.0 | 86 | from version 1.7.7 to 2.1.0 |
86 | in the source package or on | 87 | in the source package or on |
87 | 88 | ||
88 | http://www.pi-sync.net/html/changelog.html | 89 | http://www.pi-sync.net/html/changelog.html |
89 | 90 | ||
90 | 91 | ||
91 | 92 | ||
diff --git a/kaddressbook/imagewidget.cpp b/kaddressbook/imagewidget.cpp index d0f52ea..eec5e08 100644 --- a/kaddressbook/imagewidget.cpp +++ b/kaddressbook/imagewidget.cpp | |||
@@ -188,125 +188,110 @@ KABC::Picture ImageWidget::photo() const | |||
188 | else | 188 | else |
189 | photo.setData( px->convertToImage().scaleWidth( 100 ) ); | 189 | photo.setData( px->convertToImage().scaleWidth( 100 ) ); |
190 | #else //KAB_EMBEDDED | 190 | #else //KAB_EMBEDDED |
191 | //US add teh nullcheck | 191 | //US add teh nullcheck |
192 | if (px->isNull() != true ) | 192 | if (px->isNull() != true ) |
193 | photo.setData( px->convertToImage() ); | 193 | photo.setData( px->convertToImage() ); |
194 | #endif //KAB_EMBEDDED | 194 | #endif //KAB_EMBEDDED |
195 | 195 | ||
196 | photo.setType( "PNG" ); | 196 | photo.setType( "PNG" ); |
197 | } | 197 | } |
198 | } | 198 | } |
199 | 199 | ||
200 | return photo; | 200 | return photo; |
201 | } | 201 | } |
202 | 202 | ||
203 | void ImageWidget::setLogo( const KABC::Picture &logo ) | 203 | void ImageWidget::setLogo( const KABC::Picture &logo ) |
204 | { | 204 | { |
205 | bool blocked = signalsBlocked(); | 205 | bool blocked = signalsBlocked(); |
206 | blockSignals( true ); | 206 | blockSignals( true ); |
207 | 207 | ||
208 | if ( logo.isIntern() ) { | 208 | if ( logo.isIntern() ) { |
209 | //US | 209 | //US |
210 | //US mLogoLabel->setPixmap( logo.data() ); | 210 | //US mLogoLabel->setPixmap( logo.data() ); |
211 | if (logo.data().isNull() != true) | 211 | if (logo.data().isNull() != true) |
212 | { | 212 | { |
213 | QPixmap pm; | 213 | QPixmap pm; |
214 | pm.convertFromImage(logo.data()); | 214 | pm.convertFromImage(logo.data()); |
215 | mLogoLabel->setPixmap( pm ); | 215 | mLogoLabel->setPixmap( pm ); |
216 | } | 216 | } |
217 | mUseLogoUrl->setChecked( false ); | 217 | mUseLogoUrl->setChecked( false ); |
218 | } else { | 218 | } else { |
219 | mLogoUrl->setURL( logo.url() ); | 219 | mLogoUrl->setURL( logo.url() ); |
220 | if ( !logo.url().isEmpty() ) | 220 | if ( !logo.url().isEmpty() ) |
221 | mUseLogoUrl->setChecked( true ); | 221 | mUseLogoUrl->setChecked( true ); |
222 | loadLogo(); | 222 | loadLogo(); |
223 | } | 223 | } |
224 | 224 | ||
225 | blockSignals( blocked ); | 225 | blockSignals( blocked ); |
226 | } | 226 | } |
227 | 227 | ||
228 | KABC::Picture ImageWidget::logo() const | 228 | KABC::Picture ImageWidget::logo() const |
229 | { | 229 | { |
230 | KABC::Picture logo; | 230 | KABC::Picture logo; |
231 | 231 | ||
232 | if ( mUseLogoUrl->isChecked() ) | 232 | if ( mUseLogoUrl->isChecked() ) |
233 | logo.setUrl( mLogoUrl->url() ); | 233 | logo.setUrl( mLogoUrl->url() ); |
234 | else { | 234 | else { |
235 | QPixmap *px = mLogoLabel->pixmap(); | 235 | QPixmap *px = mLogoLabel->pixmap(); |
236 | if ( px ) { | 236 | if ( px ) { |
237 | #ifndef KAB_EMBEDDED | 237 | #ifndef KAB_EMBEDDED |
238 | if ( px->height() > px->width() ) | 238 | if ( px->height() > px->width() ) |
239 | logo.setData( px->convertToImage().scaleHeight( 140 ) ); | 239 | logo.setData( px->convertToImage().scaleHeight( 140 ) ); |
240 | else | 240 | else |
241 | logo.setData( px->convertToImage().scaleWidth( 100 ) ); | 241 | logo.setData( px->convertToImage().scaleWidth( 100 ) ); |
242 | #else //KAB_EMBEDDED | 242 | #else //KAB_EMBEDDED |
243 | if (px->isNull() != true ) | 243 | if (px->isNull() != true ) |
244 | logo.setData( px->convertToImage() ); | 244 | logo.setData( px->convertToImage() ); |
245 | #endif //KAB_EMBEDDED | 245 | #endif //KAB_EMBEDDED |
246 | 246 | ||
247 | logo.setType( "PNG" ); | 247 | logo.setType( "PNG" ); |
248 | 248 | ||
249 | } | 249 | } |
250 | } | 250 | } |
251 | return logo; | 251 | return logo; |
252 | } | 252 | } |
253 | void ImageWidget::removePhoto() | 253 | void ImageWidget::removePhoto() |
254 | { | 254 | { |
255 | setPhoto(KABC::Picture() ); | 255 | setPhoto(KABC::Picture() ); |
256 | } | 256 | } |
257 | 257 | ||
258 | void ImageWidget::removeLogo() | 258 | void ImageWidget::removeLogo() |
259 | { | 259 | { |
260 | setLogo(KABC::Picture() ); | 260 | setLogo(KABC::Picture() ); |
261 | } | 261 | } |
262 | 262 | ||
263 | void ImageWidget::loadPhoto() | 263 | void ImageWidget::loadPhoto() |
264 | { | 264 | { |
265 | mPhotoLabel->setPixmap( loadPixmap( mPhotoUrl->url() ) ); | 265 | mPhotoLabel->setPixmap( loadPixmap( mPhotoUrl->url() ) ); |
266 | } | 266 | } |
267 | 267 | ||
268 | void ImageWidget::loadLogo() | 268 | void ImageWidget::loadLogo() |
269 | { | 269 | { |
270 | mLogoLabel->setPixmap( loadPixmap( mLogoUrl->url() ) ); | 270 | mLogoLabel->setPixmap( loadPixmap( mLogoUrl->url() ) ); |
271 | } | 271 | } |
272 | 272 | ||
273 | void ImageWidget::updateGUI() | 273 | void ImageWidget::updateGUI() |
274 | { | 274 | { |
275 | KURLRequester *ptr = (KURLRequester*)sender(); | 275 | KURLRequester *ptr = (KURLRequester*)sender(); |
276 | 276 | ||
277 | 277 | ||
278 | if ( ptr == mPhotoUrl ) | 278 | if ( ptr == mPhotoUrl ) |
279 | mUsePhotoUrl->setEnabled( true ); | 279 | mUsePhotoUrl->setEnabled( true ); |
280 | else if ( ptr == mLogoUrl ) | 280 | else if ( ptr == mLogoUrl ) |
281 | mUseLogoUrl->setEnabled( true ); | 281 | mUseLogoUrl->setEnabled( true ); |
282 | } | 282 | } |
283 | 283 | ||
284 | QPixmap ImageWidget::loadPixmap( const KURL &url ) | 284 | QPixmap ImageWidget::loadPixmap( const QString &url ) |
285 | { | 285 | { |
286 | QString tempFile; | 286 | |
287 | QPixmap pixmap; | 287 | QPixmap pixmap; |
288 | 288 | ||
289 | if ( url.isEmpty() ) | 289 | if ( url.isEmpty() ) |
290 | return pixmap; | 290 | return pixmap; |
291 | 291 | pixmap.load( url ); | |
292 | if ( url.isLocalFile() ) | ||
293 | pixmap = QPixmap( url.path() ); | ||
294 | else | ||
295 | { | ||
296 | #ifndef KAB_EMBEDDED | ||
297 | if ( KIO::NetAccess::download( url, tempFile ) ) { | ||
298 | pixmap = QPixmap( tempFile ); | ||
299 | KIO::NetAccess::removeTempFile( tempFile ); | ||
300 | } | ||
301 | #else //KAB_EMBEDDED | ||
302 | qDebug("ImageWidget::loadPixmap : only local pixmaps are allowed"); | ||
303 | #endif //KAB_EMBEDDED | ||
304 | |||
305 | } | ||
306 | |||
307 | return pixmap; | 292 | return pixmap; |
308 | } | 293 | } |
309 | 294 | ||
310 | #ifndef KAB_EMBEDDED | 295 | #ifndef KAB_EMBEDDED |
311 | #include "imagewidget.moc" | 296 | #include "imagewidget.moc" |
312 | #endif //KAB_EMBEDDED | 297 | #endif //KAB_EMBEDDED |
diff --git a/kaddressbook/imagewidget.h b/kaddressbook/imagewidget.h index afb9aa7..bbfba58 100644 --- a/kaddressbook/imagewidget.h +++ b/kaddressbook/imagewidget.h | |||
@@ -1,88 +1,88 @@ | |||
1 | /* | 1 | /* |
2 | This file is part of KAddressBook. | 2 | This file is part of KAddressBook. |
3 | Copyright (c) 2003 Tobias Koenig <tokoe@kde.org> | 3 | Copyright (c) 2003 Tobias Koenig <tokoe@kde.org> |
4 | 4 | ||
5 | This program is free software; you can redistribute it and/or modify | 5 | This program is free software; you can redistribute it and/or modify |
6 | it under the terms of the GNU General Public License as published by | 6 | it under the terms of the GNU General Public License as published by |
7 | the Free Software Foundation; either version 2 of the License, or | 7 | the Free Software Foundation; either version 2 of the License, or |
8 | (at your option) any later version. | 8 | (at your option) any later version. |
9 | 9 | ||
10 | This program is distributed in the hope that it will be useful, | 10 | This program is distributed in the hope that it will be useful, |
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of |
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
13 | GNU General Public License for more details. | 13 | GNU General Public License for more details. |
14 | 14 | ||
15 | You should have received a copy of the GNU General Public License | 15 | You should have received a copy of the GNU General Public License |
16 | along with this program; if not, write to the Free Software | 16 | along with this program; if not, write to the Free Software |
17 | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | 17 | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. |
18 | 18 | ||
19 | As a special exception, permission is given to link this program | 19 | As a special exception, permission is given to link this program |
20 | with any edition of Qt, and distribute the resulting executable, | 20 | with any edition of Qt, and distribute the resulting executable, |
21 | without including the source code for Qt in the source distribution. | 21 | without including the source code for Qt in the source distribution. |
22 | */ | 22 | */ |
23 | 23 | ||
24 | #ifndef IMAGEWIDGET_H | 24 | #ifndef IMAGEWIDGET_H |
25 | #define IMAGEWIDGET_H | 25 | #define IMAGEWIDGET_H |
26 | 26 | ||
27 | #include <qwidget.h> | 27 | #include <qwidget.h> |
28 | 28 | ||
29 | #include <kabc/picture.h> | 29 | #include <kabc/picture.h> |
30 | #include <kdialogbase.h> | 30 | #include <kdialogbase.h> |
31 | 31 | ||
32 | class KURL; | 32 | class KURL; |
33 | class KURLRequester; | 33 | class KURLRequester; |
34 | 34 | ||
35 | class QCheckBox; | 35 | class QCheckBox; |
36 | class QLabel; | 36 | class QLabel; |
37 | 37 | ||
38 | class ImageWidget : public QWidget | 38 | class ImageWidget : public QWidget |
39 | { | 39 | { |
40 | Q_OBJECT | 40 | Q_OBJECT |
41 | 41 | ||
42 | public: | 42 | public: |
43 | ImageWidget( QWidget *parent, const char *name = 0 ); | 43 | ImageWidget( QWidget *parent, const char *name = 0 ); |
44 | ~ImageWidget(); | 44 | ~ImageWidget(); |
45 | 45 | ||
46 | /** | 46 | /** |
47 | Sets the photo object. | 47 | Sets the photo object. |
48 | */ | 48 | */ |
49 | void setPhoto( const KABC::Picture &photo ); | 49 | void setPhoto( const KABC::Picture &photo ); |
50 | 50 | ||
51 | /** | 51 | /** |
52 | Returns a photo object. | 52 | Returns a photo object. |
53 | */ | 53 | */ |
54 | KABC::Picture photo() const; | 54 | KABC::Picture photo() const; |
55 | 55 | ||
56 | /** | 56 | /** |
57 | Sets the logo object. | 57 | Sets the logo object. |
58 | */ | 58 | */ |
59 | void setLogo( const KABC::Picture &photo ); | 59 | void setLogo( const KABC::Picture &photo ); |
60 | 60 | ||
61 | /** | 61 | /** |
62 | Returns a logo object. | 62 | Returns a logo object. |
63 | */ | 63 | */ |
64 | KABC::Picture logo() const; | 64 | KABC::Picture logo() const; |
65 | 65 | ||
66 | signals: | 66 | signals: |
67 | void changed(); | 67 | void changed(); |
68 | 68 | ||
69 | private slots: | 69 | private slots: |
70 | void loadPhoto(); | 70 | void loadPhoto(); |
71 | void loadLogo(); | 71 | void loadLogo(); |
72 | void removePhoto(); | 72 | void removePhoto(); |
73 | void removeLogo(); | 73 | void removeLogo(); |
74 | void updateGUI(); | 74 | void updateGUI(); |
75 | 75 | ||
76 | private: | 76 | private: |
77 | QPixmap loadPixmap( const KURL &url ); | 77 | QPixmap loadPixmap( const QString &url ); |
78 | 78 | ||
79 | KURLRequester *mPhotoUrl; | 79 | KURLRequester *mPhotoUrl; |
80 | KURLRequester *mLogoUrl; | 80 | KURLRequester *mLogoUrl; |
81 | 81 | ||
82 | QCheckBox *mUsePhotoUrl; | 82 | QCheckBox *mUsePhotoUrl; |
83 | QCheckBox *mUseLogoUrl; | 83 | QCheckBox *mUseLogoUrl; |
84 | QLabel *mPhotoLabel; | 84 | QLabel *mPhotoLabel; |
85 | QLabel *mLogoLabel; | 85 | QLabel *mLogoLabel; |
86 | }; | 86 | }; |
87 | 87 | ||
88 | #endif | 88 | #endif |