26
26
#include <KoCompositeOp.h>
27
27
#include "kis_node_visitor.h"
28
28
#include "kis_pixel_selection.h"
29
#include "kis_undo_adapter.h"
30
31
class KisSelectionMask::Private
98
101
m_d->deselectedSelection = selection;
104
KoDocumentSectionModel::PropertyList KisSelectionMask::sectionModelProperties() const
106
KoDocumentSectionModel::PropertyList l = KisBaseNode::sectionModelProperties();
107
l << KoDocumentSectionModel::Property(i18n("Active"), KIcon("local_selection_active"),KIcon("local_selection_inactive"),active());
111
void KisSelectionMask::setSectionModelProperties(const KoDocumentSectionModel::PropertyList &properties)
113
setVisible(properties.at(0).state.toBool());
114
setUserLocked(properties.at(1).state.toBool());
115
setActive(properties.at(2).state.toBool());
118
void KisSelectionMask::setVisible(bool visible)
120
nodeProperties().setProperty("visible", visible);
123
selection()->setVisible(visible);
124
emit(visibilityChanged(visible));
127
bool KisSelectionMask::active() const
129
return nodeProperties().boolProperty("active", true);
132
void KisSelectionMask::setActive(bool active)
134
//the change needs to be done by the manager to deactive current active selectionMask
135
emit changeActivity(this,active);
138
QImage KisSelectionMask::createThumbnail(qint32 w, qint32 h)
140
KisPaintDeviceSP originalDevice = paintDevice();
141
if (!originalDevice) return QImage();
145
boundRect=m_d->image->bounds();
147
boundRect=originalDevice->exactBounds();
149
if (boundRect.isEmpty()) return QImage();
152
double c=(double)boundRect.width()/(double)boundRect.height();
153
hprop=(int)((double)w/c);
158
wprop=(int)(c*(double)h);
161
return originalDevice->createThumbnailDevice(w,h,0,boundRect)->convertToQImage(originalDevice->colorSpace()->profile(),0,0,wprop,hprop);