Ejemplo n.º 1
0
void StackFolder::paintInterface(QPainter *p, const QStyleOptionGraphicsItem *option, const QRect &contentsRect)
{
    Q_UNUSED(p);
    Q_UNUSED(option);
    Q_UNUSED(contentsRect);

    if (m_placesModel && m_iconAnimationGroup->state() != QAbstractAnimation::Stopped) {
        if (m_hoverState) {
            stopAnimation();
        }
        else {
            setPopupIcon(m_icon.pixmap(m_popupIconSize.width(), m_popupIconSize.height()));
            return;
        }
    }

    if (m_hoverShow) {
        if (m_hoverState) {
            QPixmap pixmap = m_icon.pixmap(geometry().width(), geometry().height());
            QPixmap alphaMask(pixmap.width(), pixmap.height());
            const QColor color(127, 127, 127);
            alphaMask.fill(color);
            pixmap.setAlphaChannel(alphaMask);
            setPopupIcon(pixmap);
        }
        else {
            setPopupIcon(m_icon);
        }
    }
}
Ejemplo n.º 2
0
void RatingWidget::applyFading(QPixmap& pix)
{
    if (hasFading() && d->fadingValue < 255)
    {
        QPixmap alphaMask(pix.width(), pix.height());
        const QColor color(d->fadingValue, d->fadingValue, d->fadingValue);
        alphaMask.fill(color);
        pix.setAlphaChannel(alphaMask);
    }
}
Ejemplo n.º 3
0
/**
 * Creates a ExtGState with the SMask set to the luminosityShader in
 * luminosity mode. The shader pattern extends to the bbox.
 */
SkPDFGraphicState* SkPDFAlphaFunctionShader::CreateSMaskGraphicState() {
    SkRect bbox;
    bbox.set(fState.get()->fBBox);

    SkAutoTUnref<SkPDFObject> luminosityShader(
            SkPDFShader::GetPDFShaderByState(
                 fState->CreateAlphaToLuminosityState()));

    SkAutoTUnref<SkStream> alphaStream(create_pattern_fill_content(-1, bbox));

    SkAutoTUnref<SkPDFResourceDict>
        resources(get_gradient_resource_dict(luminosityShader, NULL));

    SkAutoTUnref<SkPDFFormXObject> alphaMask(
            new SkPDFFormXObject(alphaStream.get(), bbox, resources.get()));

    return SkPDFGraphicState::GetSMaskGraphicState(
            alphaMask.get(), false,
            SkPDFGraphicState::kLuminosity_SMaskMode);
}
Ejemplo n.º 4
0
/**
 * Creates a ExtGState with the SMask set to the luminosityShader in
 * luminosity mode. The shader pattern extends to the bbox.
 */
static SkPDFObject* create_smask_graphic_state(
        SkPDFCanon* canon, SkScalar dpi, const SkPDFShader::State& state) {
    SkRect bbox;
    bbox.set(state.fBBox);

    SkAutoTDelete<SkPDFShader::State> alphaToLuminosityState(
            state.CreateAlphaToLuminosityState());
    SkAutoTUnref<SkPDFObject> luminosityShader(
            get_pdf_shader_by_state(canon, dpi, &alphaToLuminosityState));

    SkAutoTDelete<SkStream> alphaStream(create_pattern_fill_content(-1, bbox));

    SkAutoTUnref<SkPDFDict>
        resources(get_gradient_resource_dict(luminosityShader, NULL));

    SkAutoTUnref<SkPDFFormXObject> alphaMask(
            new SkPDFFormXObject(alphaStream.get(), bbox, resources.get()));

    return SkPDFGraphicState::GetSMaskGraphicState(
            alphaMask.get(), false,
            SkPDFGraphicState::kLuminosity_SMaskMode);
}
Ejemplo n.º 5
0
void GraphicsLayer::paint(QPainter *painter,
    const QStyleOptionGraphicsItem *option, QWidget *widget)
{
  if (!m_layerScene) {
    return;
  }

  if (m_prevSceneRect != m_sceneRect) {
    m_pixmap = QPixmap(m_viewRect.size());
    QBitmap alphaMask(m_viewRect.size());
    alphaMask.clear();
    m_pixmap.setMask(alphaMask);

    m_prevSceneRect = m_sceneRect;

    QPainter sourcePainter(&m_pixmap);
    m_layerScene->render(&sourcePainter, m_viewRect, m_sceneRect);
  }

  painter->save();
  painter->setCompositionMode(QPainter::CompositionMode_Difference);
  painter->drawPixmap(m_sceneRect, m_pixmap, m_viewRect);
  painter->restore();
}