~ubuntu-branches/ubuntu/oneiric/koffice/oneiric-updates

« back to all changes in this revision

Viewing changes to krita/ui/kis_canvas_resource_provider.cpp

  • Committer: Bazaar Package Importer
  • Author(s): Alessandro Ghersi
  • Date: 2010-10-27 17:52:57 UTC
  • mfrom: (0.12.1 upstream)
  • Revision ID: james.westby@ubuntu.com-20101027175257-s04zqqk5bs8ckm9o
Tags: 1:2.2.83-0ubuntu1
* Merge with Debian git remaining changes:
 - Add build-deps on librcps-dev, opengtl-dev, libqtgtl-dev, freetds-dev,
   create-resources, libspnav-dev
 - Remove needless build-dep on libwv2-dev
 - koffice-libs recommends create-resources
 - krita recommends pstoedit
 - Keep our patches
* New upstream release 2.3 beta 3
  - Remove debian/patches fixed by upstream
  - Update install files

Show diffs side-by-side

added added

removed removed

Lines of Context:
33
33
#include <KoColorModelStandardIds.h>
34
34
#include <KoColorProfile.h>
35
35
#include <KoAbstractGradient.h>
 
36
#include <KoCompositeOp.h>
 
37
#include <KoResourceServerProvider.h>
 
38
#include <KoStopGradient.h>
36
39
 
37
40
#include <kis_pattern.h>
38
41
#include <kis_paint_device.h>
51
54
KisCanvasResourceProvider::KisCanvasResourceProvider(KisView2 * view)
52
55
        : m_view(view)
53
56
{
54
 
    m_fGChanged = true;
 
57
    m_fGChanged = true;  
 
58
    m_enablefGChange = true;    // default to true, so that colour history is working without popup palette
55
59
}
56
60
 
57
61
KisCanvasResourceProvider::~KisCanvasResourceProvider()
69
73
    v.setValue(KoColor(Qt::white, m_view->image()->colorSpace()));
70
74
    m_resourceManager->setResource(KoCanvasResource::BackgroundColor, v);
71
75
 
 
76
    setCurrentCompositeOp(COMPOSITE_OVER);
72
77
    resetDisplayProfile();
73
78
 
74
79
    connect(m_resourceManager, SIGNAL(resourceChanged(int, const QVariant &)),
104
109
    m_view->image()->projection()->colorSpace()->profile()->setProperty("exposure", exposure);
105
110
    m_view->image()->rootLayer()->accept(eV);
106
111
    m_view->canvasBase()->updateCanvas();
107
 
    m_view->canvasBase()->updateCanvasProjection(m_view->image()->bounds());
 
112
    m_view->canvasBase()->startUpdateCanvasProjection(m_view->image()->bounds());
108
113
}
109
114
 
110
115
 
260
265
 
261
266
void KisCanvasResourceProvider::slotResourceChanged(int key, const QVariant & res)
262
267
{
 
268
    if(key == KoCanvasResource::ForegroundColor || key == KoCanvasResource::BackgroundColor) {
 
269
        KoAbstractGradient* resource = KoResourceServerProvider::instance()->gradientServer()->resources()[0];
 
270
        KoStopGradient* stopGradient = dynamic_cast<KoStopGradient*>(resource);
 
271
        if(stopGradient) {
 
272
            QList<KoGradientStop> stops;
 
273
            stops << KoGradientStop(0.0, fgColor()) << KoGradientStop(1.0, bgColor());
 
274
            stopGradient->setStops(stops);
 
275
            KoResourceServerProvider::instance()->gradientServer()->updateResource(resource);
 
276
        }
 
277
        resource = KoResourceServerProvider::instance()->gradientServer()->resources()[1];
 
278
        stopGradient = dynamic_cast<KoStopGradient*>(resource);
 
279
        if(stopGradient) {
 
280
            QList<KoGradientStop> stops;
 
281
            stops << KoGradientStop(0.0, fgColor()) << KoGradientStop(1.0,  KoColor(QColor(0, 0, 0, 0), fgColor().colorSpace()));
 
282
            stopGradient->setStops(stops);
 
283
            KoResourceServerProvider::instance()->gradientServer()->updateResource(resource);
 
284
        }
 
285
    }
263
286
    switch (key) {
264
287
    case(KoCanvasResource::ForegroundColor):
265
288
        m_fGChanged = true;
281
304
        break;
282
305
    case(CurrentKritaNode) :
283
306
        emit sigNodeChanged(currentNode());
 
307
        break;
 
308
    case(CurrentCompositeOp) :
 
309
        emit sigCompositeOpChanged(currentCompositeOp());
284
310
    default:
285
311
        ;
286
312
        // Do nothing
326
352
#endif
327
353
}
328
354
 
 
355
void KisCanvasResourceProvider::setCurrentCompositeOp(const QString& compositeOp)
 
356
{
 
357
    QVariant v;
 
358
    v.setValue(compositeOp);
 
359
    m_resourceManager->setResource(CurrentCompositeOp, v);
 
360
    emit sigCompositeOpChanged(compositeOp);
 
361
}
 
362
 
 
363
QString KisCanvasResourceProvider::currentCompositeOp() const
 
364
{
 
365
    return m_resourceManager->resource(CurrentCompositeOp).value<QString>();
 
366
}
 
367
 
329
368
void KisCanvasResourceProvider::slotPainting()
330
369
{
331
 
 
332
370
    if (m_fGChanged && m_enablefGChange) {
333
371
        emit sigFGColorUsed(fgColor());
334
372
        m_fGChanged = false;