void KarbonSmallStylePreview::canvasChanged(const KoCanvasBase *canvas)
{
    if (canvas) {
        connect(canvas->shapeManager(), SIGNAL(selectionChanged()),
                this, SLOT(selectionChanged()));
        connect(canvas->shapeManager(), SIGNAL(selectionContentChanged()),
                this, SLOT(selectionChanged()));
    }
    selectionChanged();
}
void ShapePropertiesDocker::setCanvas( KoCanvasBase *canvas )
{
    if (d->canvas) {
        d->canvas->disconnectCanvasObserver(this); // "Every connection you make emits a signal, so duplicate connections emit two signals"
    }

    d->canvas = canvas;

    if( d->canvas )  {
        connect( d->canvas->shapeManager(), SIGNAL( selectionChanged() ),
            this, SLOT( selectionChanged() ) );
        connect( d->canvas->shapeManager(), SIGNAL( selectionContentChanged() ),
            this, SLOT( selectionChanged() ) );
        connect( d->canvas->resourceManager(), SIGNAL( resourceChanged( int, const QVariant& ) ),
            this, SLOT( resourceChanged( int, const QVariant& ) ) );
    }