~ubuntu-branches/ubuntu/saucy/digikam/saucy

« back to all changes in this revision

Viewing changes to utilities/imageeditor/widgets/imageregionwidget.cpp

  • Committer: Bazaar Package Importer
  • Author(s): Scott Kitterman
  • Date: 2010-12-21 23:19:11 UTC
  • mfrom: (1.2.33 upstream) (3.1.7 experimental)
  • Revision ID: james.westby@ubuntu.com-20101221231911-z9jip7s5aht1jqn9
Tags: 2:1.7.0-1ubuntu1
* Merge from Debian Experimental. Remaining Ubuntu changes:
  - Export .pot name and copy to plugins in debian/rules
  - Version build-depends on kipi-plugins-dev to ensure build is against the
    same version on all archs
* Drop debian/patches/kubuntu_01_linker.diff, incoporated upstream
* Remove patches directory and unused patches

Show diffs side-by-side

added added

removed removed

Lines of Context:
57
57
 
58
58
public:
59
59
 
60
 
    ImageRegionWidgetPriv()
 
60
    ImageRegionWidgetPriv() :
 
61
        onMouseMovePreviewToggled(true),
 
62
        capturePtMode(false),
 
63
        renderingPreviewMode(PreviewToolBar::PreviewBothImagesVertCont),
 
64
        oldRenderingPreviewMode(PreviewToolBar::PreviewBothImagesVertCont),
 
65
        xpos(0),
 
66
        ypos(0),
 
67
        iface(0)
61
68
    {
62
 
        capturePtMode             = false;
63
 
        onMouseMovePreviewToggled = true;
64
 
        iface                     = 0;
65
 
        renderingPreviewMode      = PreviewToolBar::PreviewBothImagesVertCont;
66
 
        oldRenderingPreviewMode   = PreviewToolBar::PreviewBothImagesVertCont;
67
69
    }
68
70
 
69
71
    bool        onMouseMovePreviewToggled;
84
86
};
85
87
 
86
88
ImageRegionWidget::ImageRegionWidget(QWidget* parent)
87
 
                 : PreviewWidget(parent), d(new ImageRegionWidgetPriv)
 
89
    : PreviewWidget(parent), d(new ImageRegionWidgetPriv)
88
90
{
89
91
    d->iface = new ImageIface(0, 0);
90
92
    d->image = d->iface->getOriginalImg()->copy();
109
111
 
110
112
ImageRegionWidget::~ImageRegionWidget()
111
113
{
112
 
    if (d->iface) delete d->iface;
 
114
    if (d->iface)
 
115
    {
 
116
        delete d->iface;
 
117
    }
 
118
 
113
119
    delete d;
114
120
}
115
121
 
152
158
{
153
159
    d->capturePtMode = b;
154
160
    viewport()->setMouseTracking(b);
 
161
 
155
162
    if (b)
156
163
    {
157
164
        d->oldRenderingPreviewMode = d->renderingPreviewMode;
206
213
        if (d->renderingPreviewMode == PreviewToolBar::PreviewOriginalImage ||
207
214
            (d->renderingPreviewMode == PreviewToolBar::PreviewToggleOnMouseOver && !d->onMouseMovePreviewToggled))
208
215
        {
209
 
           drawText(&p,QPoint(rt.topLeft().x()+20, rt.topLeft().y()+20),i18n("Before"));
 
216
            drawText(&p,QPoint(rt.topLeft().x()+20, rt.topLeft().y()+20),i18n("Before"));
210
217
        }
211
218
        else if (d->renderingPreviewMode == PreviewToolBar::PreviewTargetImage ||
212
219
                 d->renderingPreviewMode == PreviewToolBar::NoPreviewMode      ||
224
231
                 d->renderingPreviewMode == PreviewToolBar::PreviewBothImagesVertCont)
225
232
        {
226
233
            if (d->renderingPreviewMode == PreviewToolBar::PreviewBothImagesVert)
 
234
            {
227
235
                rt.translate(rt.width(), 0);
 
236
            }
228
237
 
229
238
            if (d->renderingPreviewMode == PreviewToolBar::PreviewBothImagesVertCont)
 
239
            {
230
240
                ro.translate(-ro.width(), 0);
 
241
            }
231
242
 
232
243
            p.drawPixmap(rt.x(), rt.y(), d->pixmapRegion, 0, 0, rt.width(), rt.height());
233
244
 
243
254
                 d->renderingPreviewMode == PreviewToolBar::PreviewBothImagesHorzCont)
244
255
        {
245
256
            if (d->renderingPreviewMode == PreviewToolBar::PreviewBothImagesHorz)
 
257
            {
246
258
                rt.translate(0, rt.height());
 
259
            }
247
260
 
248
261
            if (d->renderingPreviewMode == PreviewToolBar::PreviewBothImagesHorzCont)
 
262
            {
249
263
                ro.translate(0, -ro.height());
 
264
            }
250
265
 
251
266
            p.drawPixmap(rt.x(), rt.y(), d->pixmapRegion, 0, 0, rt.width(), rt.height());
252
267
 
391
406
 
392
407
void ImageRegionWidget::setContentsPosition(int x, int y, bool targetDone)
393
408
{
394
 
    if( targetDone )
 
409
    if ( targetDone )
 
410
    {
395
411
        m_movingInProgress = false;
 
412
    }
396
413
 
397
414
    setContentsPos(x, y);
398
415
 
399
 
    if( targetDone )
400
 
       slotZoomFactorChanged();
 
416
    if ( targetDone )
 
417
    {
 
418
        slotZoomFactorChanged();
 
419
    }
401
420
}
402
421
 
403
422
void ImageRegionWidget::backupPixmapRegion()
422
441
    // restore the embedded ICC color profile.
423
442
    // However, some plugins may set a profile on the preview image, which we accept of course.
424
443
    if (image.getIccProfile().isNull())
 
444
    {
425
445
        image.setIccProfile(d->image.getIccProfile());
 
446
    }
426
447
 
427
448
    d->pixmapRegion = d->iface->convertToPixmap(image);
428
449
    repaintContents(false);
431
452
DImg ImageRegionWidget::getOriginalRegionImage(bool useDownscaledImage)
432
453
{
433
454
    DImg image = d->image.copy(getOriginalImageRegionToRender());
 
455
 
434
456
    if (useDownscaledImage)
435
457
    {
436
458
        QRect r = getLocalImageRegionToRender();
437
459
        image.resize(r.width(), r.height());
438
460
    }
 
461
 
439
462
    return (image);
440
463
}
441
464
 
522
545
            (d->renderingPreviewMode == PreviewToolBar::PreviewToggleOnMouseOver && !d->onMouseMovePreviewToggled))
523
546
        {
524
547
            if (ro.contains(pt))
 
548
            {
525
549
                emitCapturedPointFromOriginal(pt - ro.topLeft());
 
550
            }
526
551
        }
527
552
        else if (d->renderingPreviewMode == PreviewToolBar::PreviewBothImagesVert ||
528
 
                d->renderingPreviewMode == PreviewToolBar::PreviewBothImagesVertCont)
 
553
                 d->renderingPreviewMode == PreviewToolBar::PreviewBothImagesVertCont)
529
554
        {
530
555
            if (d->renderingPreviewMode == PreviewToolBar::PreviewBothImagesVert)
 
556
            {
531
557
                rt.translate(rt.width(), 0);
 
558
            }
532
559
 
533
560
            if (d->renderingPreviewMode == PreviewToolBar::PreviewBothImagesVertCont)
 
561
            {
534
562
                ro.translate(-ro.width(), 0);
 
563
            }
535
564
 
536
565
            if (!rt.contains(pt) && ro.contains(pt))
 
566
            {
537
567
                emitCapturedPointFromOriginal(pt - ro.topLeft());
 
568
            }
538
569
        }
539
570
        else if (d->renderingPreviewMode == PreviewToolBar::PreviewBothImagesHorz ||
540
 
                d->renderingPreviewMode == PreviewToolBar::PreviewBothImagesHorzCont)
 
571
                 d->renderingPreviewMode == PreviewToolBar::PreviewBothImagesHorzCont)
541
572
        {
542
573
            if (d->renderingPreviewMode == PreviewToolBar::PreviewBothImagesHorz)
 
574
            {
543
575
                rt.translate(0, rt.height());
 
576
            }
544
577
 
545
578
            if (d->renderingPreviewMode == PreviewToolBar::PreviewBothImagesHorzCont)
 
579
            {
546
580
                ro.translate(0, -ro.height());
 
581
            }
547
582
 
548
583
            if (!rt.contains(pt) && ro.contains(pt))
 
584
            {
549
585
                emitCapturedPointFromOriginal(pt - ro.topLeft());
 
586
            }
550
587
        }
551
588
 
552
589
        return;