~ubuntu-branches/ubuntu/vivid/digikam/vivid

« back to all changes in this revision

Viewing changes to core/digikam/items/imagedelegate.cpp

  • Committer: Package Import Robot
  • Author(s): Philip Muškovac
  • Date: 2012-02-14 19:29:29 UTC
  • mfrom: (1.2.38) (3.1.16 experimental)
  • Revision ID: package-import@ubuntu.com-20120214192929-cx2zia3b2nt67lvz
Tags: 4:2.5.0-1ubuntu1
* Merge from debian unstable, remaining changes:
  - keep seperate binary packages:
    + libkface1, libkface-data, libkface-dev
    + libkgeomap1, libkgeomap-data, libkgeomap-dev
    + libvkontakte1, libkvkontakte-dev
    + libmediawiki1, libmediawiki-dev
  - keep patches:
    + kubuntu_mysqld_executable_name.diff
  - don't fail on missing files in dh_install
  - install oxygen icons for kipi-plugins
  - build-depend on mysql 5.5 instead of 5.1
  - update install files
* digikam breaks/replaces kipi-plugins-common << 4:2.5.0~
* digikam-doc breaks/replaces digikam-data << 4:2.5.0~
* digikam-data breaks/replaces kipi-plugins << 4:2.5.0~
* kipi-plugins-common breaks/replaces kipi-plugins << 4:2.5.0~

Show diffs side-by-side

added added

removed removed

Lines of Context:
27
27
#include "imagedelegate.moc"
28
28
#include "imagedelegatepriv.h"
29
29
 
 
30
// C++ includes
 
31
 
 
32
#include <cmath>
 
33
 
30
34
// Qt includes
31
35
 
32
36
#include <QCache>
517
521
    }
518
522
}
519
523
 
 
524
int ImageDelegate::calculatethumbSizeToFit(int ws)
 
525
{
 
526
    Q_D(ImageDelegate);
 
527
 
 
528
    int ts     = thumbnailSize().size();
 
529
    int gs     = gridSize().width();
 
530
    int sp     = spacing();
 
531
    ws         = ws - 2*sp;
 
532
 
 
533
    // Thumbnails size loop to check (upper/lower)
 
534
    int ts1, ts2;
 
535
    // New grid size used in loop
 
536
    int ngs;
 
537
 
 
538
    double rs1 = fmod(ws, gs);
 
539
 
 
540
    for (ts1 = ts ; ts1 < ThumbnailSize::Huge ; ++ts1)
 
541
    {
 
542
        ngs        = ts1 + 2*(d->margin + d->radius) + sp;
 
543
        double nrs = fmod(ws, ngs);
 
544
 
 
545
        if (nrs <= rs1)
 
546
        {
 
547
            rs1 = nrs;
 
548
        }
 
549
        else 
 
550
        {
 
551
            break;
 
552
        }
 
553
    }
 
554
 
 
555
    double rs2 = fmod(ws, gs);
 
556
 
 
557
    for (ts2 = ts ; ts2 > ThumbnailSize::Small ; --ts2)
 
558
    {
 
559
        ngs        = ts2 + 2*(d->margin + d->radius) + sp;
 
560
        double nrs = fmod(ws, ngs);
 
561
 
 
562
        if (nrs >= rs2)
 
563
        {
 
564
            rs2 = nrs;
 
565
        }
 
566
        else
 
567
        {
 
568
            rs2 = nrs;
 
569
            break;
 
570
        }
 
571
    }
 
572
 
 
573
    if (rs1 > rs2)
 
574
        return (ts2);
 
575
 
 
576
    return (ts1);
 
577
}
 
578
 
520
579
} // namespace Digikam