summaryrefslogtreecommitdiffabout
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--bin/kdepim/WhatsNew.txt1
-rw-r--r--kaddressbook/imagewidget.cpp21
-rw-r--r--kaddressbook/imagewidget.h2
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 @@
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.1.5 ************ 3********** VERSION 2.1.5 ************
4 4
5This is the new stable version. 5This is the new stable version.
6Bugfix: 6Bugfix:
7Fixed a problem with agenda popup on the desktop in KO/Pi. 7Fixed a problem with agenda popup on the desktop in KO/Pi.
8Fixed a crash when reloading file, e.g. after a passive pi-sync synchronization. 8Fixed a crash when reloading file, e.g. after a passive pi-sync synchronization.
9Added config option to not display completed todos in agenda view. 9Added config option to not display completed todos in agenda view.
10Addressee view is now using the formatted name, if defined. 10Addressee view is now using the formatted name, if defined.
11That makes it possible to display "lastname, firstname" in that view now. 11That makes it possible to display "lastname, firstname" in that view now.
12To set the formatted name for all contacts, please use menu: 12To set the formatted name for all contacts, please use menu:
13Edit->Change->Set formatted name. 13Edit->Change->Set formatted name.
14Fixed 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
17Fixed two more bugs in the KA/Pi CSV import dialog: 18Fixed two more bugs in the KA/Pi CSV import dialog:
18Made it possible to read multi-line fields and import it to the "Note" field. 19Made it possible to read multi-line fields and import it to the "Note" field.
19Fixed a problem in mapping custom fields, whatever a custem field is... 20Fixed 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
23Changed the menu structure of the alarm applet: 24Changed the menu structure of the alarm applet:
24Moved "Simulate" to " Play Beeps" submenu and re-added "Todo List". 25Moved "Simulate" to " Play Beeps" submenu and re-added "Todo List".
25 26
26Fixed several problems in the KA/Pi CSV import dialog: 27Fixed several problems in the KA/Pi CSV import dialog:
27Added "Category", made codec configureable and made it possible to map many fields to the "Note" field. 28Added "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
32Fixed a problem closing the alarm dialog on Zaurus with "OK" button. 33Fixed a problem closing the alarm dialog on Zaurus with "OK" button.
33 34
34Fixed a problem when importing data from Outlook with mutiple categories set. 35Fixed a problem when importing data from Outlook with mutiple categories set.
35 36
36Changed display of days in datenavigator: 37Changed display of days in datenavigator:
37Birthdays are now blue, not dark green. 38Birthdays are now blue, not dark green.
38When todo view is shown, no birtdays are shown and days with due todos are shown blue. 39When todo view is shown, no birtdays are shown and days with due todos are shown blue.
39When journal view is shown, only holidays are shown and days with journals are blue. 40When journal view is shown, only holidays are shown and days with journals are blue.
40 41
41Added Backup options to global config: 42Added Backup options to global config:
42You 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 ). 43You 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 ).
43It 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. 44It 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.
44The 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. 45The 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
48Stable release 2.1.1! 49Stable release 2.1.1!
49 50
50KO/Pi: 51KO/Pi:
51Fixed one problem in the layout of the edit dialogs on the Zaurus with 640x480 display. 52Fixed 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
55Stable release 2.1.0! 56Stable release 2.1.0!
56 57
57Summary of changes/fixes compared to version 2.0.6: 58Summary of changes/fixes compared to version 2.0.6:
58 59
59Many bugs of version 2.0.6 fixed. 60Many bugs of version 2.0.6 fixed.
60Most of them were small bugs, but some of them were important. 61Most of them were small bugs, but some of them were important.
61It is recommended to use version 2.1.0 and not version 2.0.6. 62It is recommended to use version 2.1.0 and not version 2.0.6.
62 63
63Important changes: 64Important changes:
64 65
65Added recurring todos to KO/Pi. 66Added recurring todos to KO/Pi.
66 67
67Added global application font settings (for all KDE-Pim/Pi apps) to the general settings. 68Added global application font settings (for all KDE-Pim/Pi apps) to the general settings.
68 69
69Made Passwordmanager PwM/Pi more userfriendly: Rearranged some toolbar icons, optimized setting of focus, fixed layout problems and more. 70Made Passwordmanager PwM/Pi more userfriendly: Rearranged some toolbar icons, optimized setting of focus, fixed layout problems and more.
70 71
71Datenavigator can now display many months. Very useful on the desktop. 72Datenavigator can now display many months. Very useful on the desktop.
72 73
73KO/Pi alarm applet changed: Made buttons in alarm dialog much bigger and other usebility enhancements. 74KO/Pi alarm applet changed: Made buttons in alarm dialog much bigger and other usebility enhancements.
74 75
75Made alarm sound working on Linux desktop. 76Made alarm sound working on Linux desktop.
76 77
77Made KO/Pi and KA/Pi running from a memory stick. Please read storage HowTo for details. 78Made KO/Pi and KA/Pi running from a memory stick. Please read storage HowTo for details.
78 79
79Added timetracking feature in KO/Pi todo view. Please read timetraker HowTo for details. 80Added timetracking feature in KO/Pi todo view. Please read timetraker HowTo for details.
80 81
81Many other usebility enhancements. 82Many other usebility enhancements.
82Special thanks to Ben for his suggestions! 83Special thanks to Ben for his suggestions!
83 84
84You can find the complete changelog 85You can find the complete changelog
85from version 1.7.7 to 2.1.0 86from version 1.7.7 to 2.1.0
86in the source package or on 87in the source package or on
87 88
88http://www.pi-sync.net/html/changelog.html 89http://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
@@ -156,157 +156,142 @@ void ImageWidget::setPhoto( const KABC::Picture &photo )
156//US mPhotoLabel->setPixmap( photo.data() ); 156//US mPhotoLabel->setPixmap( photo.data() );
157 if (photo.data().isNull() != true) 157 if (photo.data().isNull() != true)
158 { 158 {
159 QPixmap pm; 159 QPixmap pm;
160 pm.convertFromImage(photo.data()); 160 pm.convertFromImage(photo.data());
161 161
162 mPhotoLabel->setPixmap( pm ); 162 mPhotoLabel->setPixmap( pm );
163 } 163 }
164 164
165 mUsePhotoUrl->setChecked( false ); 165 mUsePhotoUrl->setChecked( false );
166 } else { 166 } else {
167 mPhotoUrl->setURL( photo.url() ); 167 mPhotoUrl->setURL( photo.url() );
168 if ( !photo.url().isEmpty() ) 168 if ( !photo.url().isEmpty() )
169 mUsePhotoUrl->setChecked( true ); 169 mUsePhotoUrl->setChecked( true );
170 loadPhoto(); 170 loadPhoto();
171 } 171 }
172 172
173 blockSignals( blocked ); 173 blockSignals( blocked );
174} 174}
175 175
176KABC::Picture ImageWidget::photo() const 176KABC::Picture ImageWidget::photo() const
177{ 177{
178 KABC::Picture photo; 178 KABC::Picture photo;
179 179
180 if ( mUsePhotoUrl->isChecked() ) 180 if ( mUsePhotoUrl->isChecked() )
181 photo.setUrl( mPhotoUrl->url() ); 181 photo.setUrl( mPhotoUrl->url() );
182 else { 182 else {
183 QPixmap *px = mPhotoLabel->pixmap(); 183 QPixmap *px = mPhotoLabel->pixmap();
184 if ( px ) { 184 if ( px ) {
185#ifndef KAB_EMBEDDED 185#ifndef KAB_EMBEDDED
186 if ( px->height() > px->width() ) 186 if ( px->height() > px->width() )
187 photo.setData( px->convertToImage().scaleHeight( 140 ) ); 187 photo.setData( px->convertToImage().scaleHeight( 140 ) );
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
203void ImageWidget::setLogo( const KABC::Picture &logo ) 203void 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
228KABC::Picture ImageWidget::logo() const 228KABC::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}
253void ImageWidget::removePhoto() 253void ImageWidget::removePhoto()
254{ 254{
255 setPhoto(KABC::Picture() ); 255 setPhoto(KABC::Picture() );
256} 256}
257 257
258void ImageWidget::removeLogo() 258void ImageWidget::removeLogo()
259{ 259{
260 setLogo(KABC::Picture() ); 260 setLogo(KABC::Picture() );
261} 261}
262 262
263void ImageWidget::loadPhoto() 263void ImageWidget::loadPhoto()
264{ 264{
265 mPhotoLabel->setPixmap( loadPixmap( mPhotoUrl->url() ) ); 265 mPhotoLabel->setPixmap( loadPixmap( mPhotoUrl->url() ) );
266} 266}
267 267
268void ImageWidget::loadLogo() 268void ImageWidget::loadLogo()
269{ 269{
270 mLogoLabel->setPixmap( loadPixmap( mLogoUrl->url() ) ); 270 mLogoLabel->setPixmap( loadPixmap( mLogoUrl->url() ) );
271} 271}
272 272
273void ImageWidget::updateGUI() 273void 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
284QPixmap ImageWidget::loadPixmap( const KURL &url ) 284QPixmap 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
32class KURL; 32class KURL;
33class KURLRequester; 33class KURLRequester;
34 34
35class QCheckBox; 35class QCheckBox;
36class QLabel; 36class QLabel;
37 37
38class ImageWidget : public QWidget 38class 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