summaryrefslogtreecommitdiff
path: root/library
authorzecke <zecke>2002-09-25 16:10:02 (UTC)
committer zecke <zecke>2002-09-25 16:10:02 (UTC)
commita546a6ea143da9244a06f1e40829254e8bf4dc8f (patch) (unidiff)
tree6e9e2a5606e9eec5f6ac751dd99ddedf1e42fb29 /library
parent5b7e930de7cc42f14b078072b8d23b977001e7b6 (diff)
downloadopie-a546a6ea143da9244a06f1e40829254e8bf4dc8f.zip
opie-a546a6ea143da9244a06f1e40829254e8bf4dc8f.tar.gz
opie-a546a6ea143da9244a06f1e40829254e8bf4dc8f.tar.bz2
Fix bigPixmaps BUG.
instead of returning the bigPixmap from the d->mPixmaps[1] I returned the deprecated variable which was null
Diffstat (limited to 'library') (more/less context) (show whitespace changes)
-rw-r--r--library/applnk.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/library/applnk.cpp b/library/applnk.cpp
index 1f053f3..44f3f58 100644
--- a/library/applnk.cpp
+++ b/library/applnk.cpp
@@ -398,193 +398,193 @@ AppLnk::AppLnk( const QString &file )
398 } 398 }
399 d->mCat[i] = id; 399 d->mCat[i] = id;
400 } 400 }
401 d->updateCatListFromArray(); 401 d->updateCatListFromArray();
402 } 402 }
403 } 403 }
404 } 404 }
405 mId = 0; 405 mId = 0;
406} 406}
407 407
408AppLnk& AppLnk::operator=(const AppLnk &copy) 408AppLnk& AppLnk::operator=(const AppLnk &copy)
409{ 409{
410 if ( mId ) 410 if ( mId )
411 qWarning("Deleting AppLnk that is in an AppLnkSet"); 411 qWarning("Deleting AppLnk that is in an AppLnkSet");
412 if ( d ) 412 if ( d )
413 delete d; 413 delete d;
414 414
415 415
416 mName = copy.mName; 416 mName = copy.mName;
417 417
418 /* remove for Qtopia 3.0 -zecke */ 418 /* remove for Qtopia 3.0 -zecke */
419 mPixmap = copy.mPixmap; 419 mPixmap = copy.mPixmap;
420 mBigPixmap = copy.mBigPixmap; 420 mBigPixmap = copy.mBigPixmap;
421 421
422 mExec = copy.mExec; 422 mExec = copy.mExec;
423 mType = copy.mType; 423 mType = copy.mType;
424 mRotation = copy.mRotation; 424 mRotation = copy.mRotation;
425 mComment = copy.mComment; 425 mComment = copy.mComment;
426 mFile = copy.mFile; 426 mFile = copy.mFile;
427 mLinkFile = copy.mLinkFile; 427 mLinkFile = copy.mLinkFile;
428 mIconFile = copy.mIconFile; 428 mIconFile = copy.mIconFile;
429 mMimeTypes = copy.mMimeTypes; 429 mMimeTypes = copy.mMimeTypes;
430 mMimeTypeIcons = copy.mMimeTypeIcons; 430 mMimeTypeIcons = copy.mMimeTypeIcons;
431 mId = 0; 431 mId = 0;
432 d = new AppLnkPrivate(); 432 d = new AppLnkPrivate();
433 d->mCat = copy.d->mCat; 433 d->mCat = copy.d->mCat;
434 d->mCatList = copy.d->mCatList; 434 d->mCatList = copy.d->mCatList;
435 d->mPixmaps = copy.d->mPixmaps; 435 d->mPixmaps = copy.d->mPixmaps;
436 436
437 return *this; 437 return *this;
438} 438}
439/*! 439/*!
440 protected internally to share code 440 protected internally to share code
441 should I document that at all? 441 should I document that at all?
442 I don't know the TT style for that 442 I don't know the TT style for that
443*/ 443*/
444const QPixmap& AppLnk::pixmap( int pos, int size ) const { 444const QPixmap& AppLnk::pixmap( int pos, int size ) const {
445 if ( d->mPixmaps[pos].isNull() ) { 445 if ( d->mPixmaps[pos].isNull() ) {
446 AppLnk* that = (AppLnk*)this; 446 AppLnk* that = (AppLnk*)this;
447 if ( mIconFile.isEmpty() ) { 447 if ( mIconFile.isEmpty() ) {
448 MimeType mt(type()); 448 MimeType mt(type());
449 that->d->mPixmaps[pos] = mt.pixmap(); 449 that->d->mPixmaps[pos] = mt.pixmap();
450 if ( that->d->mPixmaps[pos].isNull() ) 450 if ( that->d->mPixmaps[pos].isNull() )
451 that->d->mPixmaps[pos].convertFromImage( 451 that->d->mPixmaps[pos].convertFromImage(
452 Resource::loadImage("UnknownDocument") 452 Resource::loadImage("UnknownDocument")
453 .smoothScale( size, size ) ); 453 .smoothScale( size, size ) );
454 return that->d->mPixmaps[pos]; 454 return that->d->mPixmaps[pos];
455 } 455 }
456 QImage unscaledIcon = Resource::loadImage( that->mIconFile ); 456 QImage unscaledIcon = Resource::loadImage( that->mIconFile );
457 if ( unscaledIcon.isNull() ) { 457 if ( unscaledIcon.isNull() ) {
458 qDebug( "Cannot find icon: %s", that->mIconFile.latin1() ); 458 qDebug( "Cannot find icon: %s", that->mIconFile.latin1() );
459 that->d->mPixmaps[pos].convertFromImage( 459 that->d->mPixmaps[pos].convertFromImage(
460 Resource::loadImage("UnknownDocument") 460 Resource::loadImage("UnknownDocument")
461 .smoothScale( size, size ) ); 461 .smoothScale( size, size ) );
462 } else { 462 } else {
463 that->d->mPixmaps[0].convertFromImage( unscaledIcon.smoothScale( smallSize, smallSize ) ); 463 that->d->mPixmaps[0].convertFromImage( unscaledIcon.smoothScale( smallSize, smallSize ) );
464 that->d->mPixmaps[1].convertFromImage( unscaledIcon.smoothScale( bigSize, bigSize ) ); 464 that->d->mPixmaps[1].convertFromImage( unscaledIcon.smoothScale( bigSize, bigSize ) );
465 } 465 }
466 return that->d->mPixmaps[pos]; 466 return that->d->mPixmaps[pos];
467 } 467 }
468 return d->mPixmaps[pos]; 468 return d->mPixmaps[pos];
469} 469}
470 470
471/*! 471/*!
472 Returns a small pixmap associated with the application. 472 Returns a small pixmap associated with the application.
473 473
474 \sa bigPixmap() setIcon() 474 \sa bigPixmap() setIcon()
475*/ 475*/
476const QPixmap& AppLnk::pixmap() const 476const QPixmap& AppLnk::pixmap() const
477{ 477{
478 if ( d->mPixmaps[0].isNull() ) { 478 if ( d->mPixmaps[0].isNull() ) {
479 return pixmap(AppLnkPrivate::Normal, smallSize ); 479 return pixmap(AppLnkPrivate::Normal, smallSize );
480 } 480 }
481 return d->mPixmaps[0]; 481 return d->mPixmaps[0];
482} 482}
483 483
484/*! 484/*!
485 Returns a large pixmap associated with the application. 485 Returns a large pixmap associated with the application.
486 486
487 \sa pixmap() setIcon() 487 \sa pixmap() setIcon()
488*/ 488*/
489const QPixmap& AppLnk::bigPixmap() const 489const QPixmap& AppLnk::bigPixmap() const
490{ 490{
491 if ( d->mPixmaps[1].isNull() ) { 491 if ( d->mPixmaps[1].isNull() ) {
492 return pixmap( AppLnkPrivate::Big, bigSize ); 492 return pixmap( AppLnkPrivate::Big, bigSize );
493 } 493 }
494 return mBigPixmap; 494 return d->mPixmaps[1];
495} 495}
496 496
497/*! 497/*!
498 Returns the type of the AppLnk. For applications, games and 498 Returns the type of the AppLnk. For applications, games and
499 settings the type is \c Application; for documents the type is the 499 settings the type is \c Application; for documents the type is the
500 document's MIME type. 500 document's MIME type.
501*/ 501*/
502QString AppLnk::type() const 502QString AppLnk::type() const
503{ 503{
504 if ( mType.isNull() ) { 504 if ( mType.isNull() ) {
505 AppLnk* that = (AppLnk*)this; 505 AppLnk* that = (AppLnk*)this;
506 QString f = file(); 506 QString f = file();
507 if ( !f.isNull() ) { 507 if ( !f.isNull() ) {
508 MimeType mt(f); 508 MimeType mt(f);
509 that->mType = mt.id(); 509 that->mType = mt.id();
510 return that->mType; 510 return that->mType;
511 } 511 }
512 } 512 }
513 return mType; 513 return mType;
514} 514}
515 515
516/*! 516/*!
517 Returns the file associated with the AppLnk. 517 Returns the file associated with the AppLnk.
518 518
519 \sa exec() name() 519 \sa exec() name()
520*/ 520*/
521QString AppLnk::file() const 521QString AppLnk::file() const
522{ 522{
523 if ( mFile.isNull() ) { 523 if ( mFile.isNull() ) {
524 AppLnk* that = (AppLnk*)this; 524 AppLnk* that = (AppLnk*)this;
525 QString ext = MimeType(mType).extension(); 525 QString ext = MimeType(mType).extension();
526 if ( !ext.isEmpty() ) 526 if ( !ext.isEmpty() )
527 ext = "." + ext; 527 ext = "." + ext;
528 if ( !mLinkFile.isEmpty() ) { 528 if ( !mLinkFile.isEmpty() ) {
529 that->mFile = 529 that->mFile =
530 mLinkFile.right(8)==".desktop" // 8 = strlen(".desktop") 530 mLinkFile.right(8)==".desktop" // 8 = strlen(".desktop")
531 ? mLinkFile.left(mLinkFile.length()-8) : mLinkFile; 531 ? mLinkFile.left(mLinkFile.length()-8) : mLinkFile;
532 } else if ( mType.contains('/') ) { 532 } else if ( mType.contains('/') ) {
533 that->mFile = 533 that->mFile =
534 QString(getenv("HOME"))+"/Documents/"+mType+"/"+safeFileName(that->mName); 534 QString(getenv("HOME"))+"/Documents/"+mType+"/"+safeFileName(that->mName);
535 /* 535 /*
536 * A file with the same name or a .desktop file already exists 536 * A file with the same name or a .desktop file already exists
537 */ 537 */
538 if ( QFile::exists(that->mFile+ext) || QFile::exists(that->mFile+".desktop") ) { 538 if ( QFile::exists(that->mFile+ext) || QFile::exists(that->mFile+".desktop") ) {
539 int n=1; 539 int n=1;
540 QString nn; 540 QString nn;
541 while (QFile::exists((nn=(that->mFile+"_"+QString::number(n)))+ext) 541 while (QFile::exists((nn=(that->mFile+"_"+QString::number(n)))+ext)
542 || QFile::exists(nn+".desktop")) 542 || QFile::exists(nn+".desktop"))
543 n++; 543 n++;
544 that->mFile = nn; 544 that->mFile = nn;
545 } 545 }
546 that->mLinkFile = that->mFile+".desktop"; 546 that->mLinkFile = that->mFile+".desktop";
547 that->mFile += ext; 547 that->mFile += ext;
548 } 548 }
549 prepareDirectories(that->mFile); 549 prepareDirectories(that->mFile);
550 if ( !that->mFile.isEmpty() ) { 550 if ( !that->mFile.isEmpty() ) {
551 QFile f(that->mFile); 551 QFile f(that->mFile);
552 if ( !f.open(IO_WriteOnly) ) 552 if ( !f.open(IO_WriteOnly) )
553 that->mFile = QString::null; 553 that->mFile = QString::null;
554 return that->mFile; 554 return that->mFile;
555 } 555 }
556 } 556 }
557 return mFile; 557 return mFile;
558} 558}
559 559
560/*! 560/*!
561 Returns the desktop file corresponding to this AppLnk. 561 Returns the desktop file corresponding to this AppLnk.
562 562
563 \sa file() exec() name() 563 \sa file() exec() name()
564*/ 564*/
565QString AppLnk::linkFile() const 565QString AppLnk::linkFile() const
566{ 566{
567 if ( mLinkFile.isNull() ) { 567 if ( mLinkFile.isNull() ) {
568 AppLnk* that = (AppLnk*)this; 568 AppLnk* that = (AppLnk*)this;
569 if ( type().contains('/') ) { 569 if ( type().contains('/') ) {
570 StorageInfo storage; 570 StorageInfo storage;
571 const FileSystem *fs = storage.fileSystemOf( that->mFile ); 571 const FileSystem *fs = storage.fileSystemOf( that->mFile );
572 /* tmpfs + and ramfs are available too but not removable 572 /* tmpfs + and ramfs are available too but not removable
573 * either we fix storage or add this 573 * either we fix storage or add this
574 */ 574 */
575 if ( fs && ( fs->isRemovable() || fs->disk() == "/dev/mtdblock6" || fs->disk() == "tmpfs") ) { 575 if ( fs && ( fs->isRemovable() || fs->disk() == "/dev/mtdblock6" || fs->disk() == "tmpfs") ) {
576 that->mLinkFile = fs->path(); 576 that->mLinkFile = fs->path();
577 } else 577 } else
578 that->mLinkFile = getenv( "HOME" ); 578 that->mLinkFile = getenv( "HOME" );
579 that->mLinkFile += "/Documents/"+type()+"/"+safeFileName(that->mName); 579 that->mLinkFile += "/Documents/"+type()+"/"+safeFileName(that->mName);
580 580
581 /* the desktop file exists make sure we don't point to the same file */ 581 /* the desktop file exists make sure we don't point to the same file */
582 if ( QFile::exists(that->mLinkFile+".desktop") ) { 582 if ( QFile::exists(that->mLinkFile+".desktop") ) {
583 AppLnk lnk( that->mLinkFile + ".desktop" ); 583 AppLnk lnk( that->mLinkFile + ".desktop" );
584 584
585 /* the linked is different */ 585 /* the linked is different */
586 if(that->file() != lnk.file() ) { 586 if(that->file() != lnk.file() ) {
587 int n = 1; 587 int n = 1;
588 QString nn; 588 QString nn;
589 while (QFile::exists((nn=that->mLinkFile+"_"+QString::number(n))+".desktop")) { 589 while (QFile::exists((nn=that->mLinkFile+"_"+QString::number(n))+".desktop")) {
590 n++; 590 n++;