mirror of
https://bitbucket.org/smil3y/kdelibs.git
synced 2025-02-23 10:22:48 +00:00
plasma: drop Plasma::ItemBackground class
unused, tho the svg that it paints is used in multiple places as base. perhaps the class was not flexible enough? Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
This commit is contained in:
parent
2a93f0b19b
commit
06654c0495
6 changed files with 2 additions and 473 deletions
|
@ -430,7 +430,6 @@ install(
|
||||||
Plasma/FrameSvg
|
Plasma/FrameSvg
|
||||||
Plasma/GroupBox
|
Plasma/GroupBox
|
||||||
Plasma/IconWidget
|
Plasma/IconWidget
|
||||||
Plasma/ItemBackground
|
|
||||||
Plasma/Label
|
Plasma/Label
|
||||||
Plasma/LineEdit
|
Plasma/LineEdit
|
||||||
Plasma/Meter
|
Plasma/Meter
|
||||||
|
|
|
@ -1 +0,0 @@
|
||||||
#include "../../plasma/widgets/itembackground.h"
|
|
|
@ -69,7 +69,6 @@ set(plasma_LIB_SRCS
|
||||||
widgets/frame.cpp
|
widgets/frame.cpp
|
||||||
widgets/groupbox.cpp
|
widgets/groupbox.cpp
|
||||||
widgets/iconwidget.cpp
|
widgets/iconwidget.cpp
|
||||||
widgets/itembackground.cpp
|
|
||||||
widgets/label.cpp
|
widgets/label.cpp
|
||||||
widgets/lineedit.cpp
|
widgets/lineedit.cpp
|
||||||
widgets/meter.cpp
|
widgets/meter.cpp
|
||||||
|
@ -173,7 +172,6 @@ install(
|
||||||
widgets/frame.h
|
widgets/frame.h
|
||||||
widgets/groupbox.h
|
widgets/groupbox.h
|
||||||
widgets/iconwidget.h
|
widgets/iconwidget.h
|
||||||
widgets/itembackground.h
|
|
||||||
widgets/label.h
|
widgets/label.h
|
||||||
widgets/lineedit.h
|
widgets/lineedit.h
|
||||||
widgets/meter.h
|
widgets/meter.h
|
||||||
|
|
|
@ -338,7 +338,7 @@ void Delegate::paint(QPainter *painter, const QStyleOptionViewItem &option,
|
||||||
if (option.direction == Qt::LeftToRight) {
|
if (option.direction == Qt::LeftToRight) {
|
||||||
if (((titleRect.width() + decorationRect.width() + 10) > option.rect.width() ||
|
if (((titleRect.width() + decorationRect.width() + 10) > option.rect.width() ||
|
||||||
(subTitleRect.width() + decorationRect.width() + 15) > option.rect.width()) &&
|
(subTitleRect.width() + decorationRect.width() + 15) > option.rect.width()) &&
|
||||||
(titleRect.width() > 120 || subTitleRect.width() > 120)) {
|
(titleRect.width() > 120 || subTitleRect.width() > 120)) {
|
||||||
QPainter p(&buffer);
|
QPainter p(&buffer);
|
||||||
p.setCompositionMode(QPainter::CompositionMode_DestinationOut);
|
p.setCompositionMode(QPainter::CompositionMode_DestinationOut);
|
||||||
p.setPen(Qt::NoPen);
|
p.setPen(Qt::NoPen);
|
||||||
|
@ -359,7 +359,7 @@ void Delegate::paint(QPainter *painter, const QStyleOptionViewItem &option,
|
||||||
} else {
|
} else {
|
||||||
if (((titleRect.width() + decorationRect.width() + 10) > option.rect.width() ||
|
if (((titleRect.width() + decorationRect.width() + 10) > option.rect.width() ||
|
||||||
(subTitleRect.width() + decorationRect.width() + 15 )> option.rect.width()) &&
|
(subTitleRect.width() + decorationRect.width() + 15 )> option.rect.width()) &&
|
||||||
(titleRect.width() > 120 || subTitleRect.width() > 120)) {
|
(titleRect.width() > 120 || subTitleRect.width() > 120)) {
|
||||||
buffer.fill(Qt::transparent);
|
buffer.fill(Qt::transparent);
|
||||||
QPainter p(&buffer);
|
QPainter p(&buffer);
|
||||||
p.setCompositionMode(QPainter::CompositionMode_DestinationOut);
|
p.setCompositionMode(QPainter::CompositionMode_DestinationOut);
|
||||||
|
|
|
@ -1,345 +0,0 @@
|
||||||
/***************************************************************************
|
|
||||||
* Copyright 2009 by Alessandro Diaferia <alediaferia@gmail.com> *
|
|
||||||
* Copyright 2009 by Marco Martin <notmart@gmail.com> *
|
|
||||||
* *
|
|
||||||
* This program is free software; you can redistribute it and/or modify *
|
|
||||||
* it under the terms of the GNU Library General Public License as *
|
|
||||||
* published by the Free Software Foundation; either version 2, or *
|
|
||||||
* (at your option) any later version. *
|
|
||||||
* *
|
|
||||||
* This program is distributed in the hope that it will be useful, *
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
|
||||||
* GNU General Public License for more details. *
|
|
||||||
* *
|
|
||||||
* You should have received a copy of the GNU General Public License *
|
|
||||||
* along with this program; if not, write to the *
|
|
||||||
* Free Software Foundation, Inc., *
|
|
||||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA . *
|
|
||||||
***************************************************************************/
|
|
||||||
#include "itembackground.h"
|
|
||||||
|
|
||||||
#include <QPainter>
|
|
||||||
#include <QTimer>
|
|
||||||
#include <QtGui/qstyleoption.h>
|
|
||||||
#include <QPropertyAnimation>
|
|
||||||
|
|
||||||
#include <kdebug.h>
|
|
||||||
#include <plasma/framesvg.h>
|
|
||||||
#include <plasma/animator.h>
|
|
||||||
#include <plasma/theme.h>
|
|
||||||
|
|
||||||
namespace Plasma
|
|
||||||
{
|
|
||||||
|
|
||||||
class ItemBackgroundPrivate
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
ItemBackgroundPrivate(ItemBackground *parent)
|
|
||||||
: q(parent),
|
|
||||||
target(nullptr),
|
|
||||||
opacity(1.0),
|
|
||||||
fading(false),
|
|
||||||
fadeIn(false),
|
|
||||||
immediate(false)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
void animationUpdate(qreal progress);
|
|
||||||
void targetDestroyed(QObject*);
|
|
||||||
void frameSvgChanged();
|
|
||||||
void refreshCurrentTarget();
|
|
||||||
|
|
||||||
ItemBackground * const q;
|
|
||||||
QGraphicsItem *target;
|
|
||||||
Plasma::FrameSvg *frameSvg;
|
|
||||||
QRectF oldGeometry;
|
|
||||||
QRectF newGeometry;
|
|
||||||
QPropertyAnimation *anim;
|
|
||||||
qreal opacity;
|
|
||||||
bool fading;
|
|
||||||
bool fadeIn;
|
|
||||||
bool immediate;
|
|
||||||
};
|
|
||||||
|
|
||||||
ItemBackground::ItemBackground(QGraphicsWidget *parent)
|
|
||||||
: QGraphicsWidget(parent),
|
|
||||||
d(new ItemBackgroundPrivate(this))
|
|
||||||
{
|
|
||||||
d->frameSvg = new Plasma::FrameSvg(this);
|
|
||||||
d->anim = new QPropertyAnimation(this, "animationUpdate", this);
|
|
||||||
d->anim->setStartValue(0);
|
|
||||||
d->anim->setEndValue(1);
|
|
||||||
|
|
||||||
d->frameSvg->setImagePath("widgets/viewitem");
|
|
||||||
d->frameSvg->setEnabledBorders(Plasma::FrameSvg::AllBorders);
|
|
||||||
d->frameSvg->setCacheAllRenderedFrames(true);
|
|
||||||
d->frameSvg->setElementPrefix("hover");
|
|
||||||
|
|
||||||
setCacheMode(DeviceCoordinateCache);
|
|
||||||
setFlag(ItemIsMovable, false);
|
|
||||||
setFlag(ItemIsSelectable, false);
|
|
||||||
setFlag(ItemIsFocusable, false);
|
|
||||||
|
|
||||||
setFlag(QGraphicsItem::ItemSendsGeometryChanges, false);
|
|
||||||
|
|
||||||
qreal l, t, r, b;
|
|
||||||
d->frameSvg->getMargins(l, t, r, b);
|
|
||||||
setContentsMargins(l, t, r, b);
|
|
||||||
|
|
||||||
connect(d->frameSvg, SIGNAL(repaintNeeded()), this, SLOT(frameSvgChanged()));
|
|
||||||
|
|
||||||
setAcceptedMouseButtons(0);
|
|
||||||
setZValue(-800);
|
|
||||||
}
|
|
||||||
|
|
||||||
ItemBackground::~ItemBackground()
|
|
||||||
{
|
|
||||||
delete d;
|
|
||||||
}
|
|
||||||
|
|
||||||
QRectF ItemBackground::target() const
|
|
||||||
{
|
|
||||||
return d->newGeometry;
|
|
||||||
}
|
|
||||||
|
|
||||||
void ItemBackground::setTarget(const QRectF &newGeometry)
|
|
||||||
{
|
|
||||||
d->oldGeometry = geometry();
|
|
||||||
d->newGeometry = newGeometry;
|
|
||||||
|
|
||||||
if (!isVisible() && (!d->target || !d->target->isVisible())) {
|
|
||||||
setGeometry(d->newGeometry);
|
|
||||||
targetReached(newGeometry);
|
|
||||||
if (d->target) {
|
|
||||||
emit targetItemReached(d->target);
|
|
||||||
}
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
QGraphicsWidget *pw = parentWidget();
|
|
||||||
if (pw) {
|
|
||||||
d->newGeometry = d->newGeometry.intersected(QRectF(QPointF(0,0), pw->size()));
|
|
||||||
}
|
|
||||||
|
|
||||||
if (d->anim->state() != QAbstractAnimation::Stopped) {
|
|
||||||
d->anim->stop();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (d->target && d->target->isVisible() && !isVisible()) {
|
|
||||||
setZValue(d->target->zValue()-1);
|
|
||||||
setGeometry(newGeometry);
|
|
||||||
d->oldGeometry = newGeometry;
|
|
||||||
show();
|
|
||||||
} else {
|
|
||||||
d->fading = false;
|
|
||||||
d->opacity = 1;
|
|
||||||
d->anim->start();
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
void ItemBackground::setTargetItem(QGraphicsItem *target)
|
|
||||||
{
|
|
||||||
if (d->target && d->target != target) {
|
|
||||||
QObject *obj = 0;
|
|
||||||
if (d->target->isWidget()) {
|
|
||||||
obj = static_cast<QGraphicsWidget*>(d->target);
|
|
||||||
obj->removeEventFilter(this);
|
|
||||||
} else {
|
|
||||||
d->target->removeSceneEventFilter(this);
|
|
||||||
obj = dynamic_cast<QObject *>(d->target);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (obj) {
|
|
||||||
disconnect(obj, 0, this, 0);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!target) {
|
|
||||||
hide();
|
|
||||||
}
|
|
||||||
|
|
||||||
bool newTarget = (d->target != target);
|
|
||||||
d->target = target;
|
|
||||||
if (target) {
|
|
||||||
setZValue(target->zValue() - 1);
|
|
||||||
if (parentItem() != target->parentItem()) {
|
|
||||||
QTransform t = transform();
|
|
||||||
setTransform(QTransform());
|
|
||||||
QRectF geom = mapToScene(geometry()).boundingRect();
|
|
||||||
setGeometry(mapFromScene(geom).boundingRect());
|
|
||||||
setTransform(t);
|
|
||||||
}
|
|
||||||
|
|
||||||
QRectF rect = target->boundingRect();
|
|
||||||
rect.moveTopLeft(mapToParent(mapFromScene(target->mapToScene(QPointF(0, 0)))));
|
|
||||||
|
|
||||||
setTarget(rect);
|
|
||||||
|
|
||||||
|
|
||||||
if (newTarget) {
|
|
||||||
QObject *obj = 0;
|
|
||||||
if (target->isWidget()) {
|
|
||||||
obj = static_cast<QGraphicsWidget*>(target);
|
|
||||||
obj->installEventFilter(this);
|
|
||||||
} else {
|
|
||||||
d->target->installSceneEventFilter(this);
|
|
||||||
obj = dynamic_cast<QObject *>(target);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (obj) {
|
|
||||||
connect(obj, SIGNAL(destroyed(QObject*)), this, SLOT(targetDestroyed(QObject*)));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
QGraphicsItem *ItemBackground::targetItem() const
|
|
||||||
{
|
|
||||||
return d->target;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool ItemBackground::eventFilter(QObject *watched, QEvent *event)
|
|
||||||
{
|
|
||||||
QGraphicsWidget *targetWidget = static_cast<QGraphicsWidget *>(d->target);
|
|
||||||
if (watched == targetWidget) {
|
|
||||||
if (event->type() == QEvent::GraphicsSceneResize ||
|
|
||||||
event->type() == QEvent::GraphicsSceneMove) {
|
|
||||||
// We need to wait for the parent widget to resize...
|
|
||||||
QTimer::singleShot(0, this, SLOT(refreshCurrentTarget()) );
|
|
||||||
} else if (event->type() == QEvent::Show) {
|
|
||||||
setTargetItem(targetWidget);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool ItemBackground::sceneEventFilter(QGraphicsItem *watched, QEvent *event)
|
|
||||||
{
|
|
||||||
if (watched == d->target) {
|
|
||||||
if (event->type() == QEvent::GraphicsSceneMove) {
|
|
||||||
QTimer::singleShot(0, this, SLOT(refreshCurrentTarget()) );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
void ItemBackground::resizeEvent(QGraphicsSceneResizeEvent *)
|
|
||||||
{
|
|
||||||
d->frameSvg->resizeFrame(size());
|
|
||||||
}
|
|
||||||
|
|
||||||
QVariant ItemBackground::itemChange(GraphicsItemChange change, const QVariant &value)
|
|
||||||
{
|
|
||||||
if (d->immediate) {
|
|
||||||
return value;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (change == ItemVisibleChange) {
|
|
||||||
bool visible = value.toBool();
|
|
||||||
bool retVisible = visible;
|
|
||||||
if (visible == isVisible() || d->anim->state() == QAbstractAnimation::Stopped) {
|
|
||||||
retVisible = true;
|
|
||||||
}
|
|
||||||
d->fading = true;
|
|
||||||
d->fadeIn = visible;
|
|
||||||
|
|
||||||
if (d->anim->state() != QAbstractAnimation::Stopped) {
|
|
||||||
d->anim->stop();
|
|
||||||
}
|
|
||||||
|
|
||||||
d->anim->setDuration(250);
|
|
||||||
d->anim->start();
|
|
||||||
|
|
||||||
return retVisible;
|
|
||||||
|
|
||||||
}
|
|
||||||
return value;
|
|
||||||
}
|
|
||||||
|
|
||||||
void ItemBackground::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget)
|
|
||||||
{
|
|
||||||
Q_UNUSED(widget)
|
|
||||||
|
|
||||||
if (qFuzzyCompare(d->opacity, (qreal)1.0)) {
|
|
||||||
d->frameSvg->paintFrame(painter, option->rect.topLeft());
|
|
||||||
} else if (qFuzzyCompare(d->opacity+1, (qreal)1.0)) {
|
|
||||||
return;
|
|
||||||
} else {
|
|
||||||
QPixmap framePix = d->frameSvg->framePixmap();
|
|
||||||
QPainter bufferPainter(&framePix);
|
|
||||||
bufferPainter.setCompositionMode(QPainter::CompositionMode_DestinationIn);
|
|
||||||
bufferPainter.fillRect(framePix.rect(), QColor(0, 0, 0, 255 * d->opacity));
|
|
||||||
bufferPainter.end();
|
|
||||||
painter->drawPixmap(framePix.rect(), framePix, framePix.rect());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void ItemBackground::setAnimationUpdate(qreal progress)
|
|
||||||
{
|
|
||||||
d->animationUpdate(progress);
|
|
||||||
}
|
|
||||||
|
|
||||||
qreal ItemBackground::animationUpdate() const
|
|
||||||
{
|
|
||||||
return d->opacity;
|
|
||||||
}
|
|
||||||
|
|
||||||
void ItemBackgroundPrivate::animationUpdate(qreal progress)
|
|
||||||
{
|
|
||||||
if (progress == 1) {
|
|
||||||
if ((!fading) || (fadeIn)) {
|
|
||||||
emit q->targetReached(newGeometry);
|
|
||||||
if (target) {
|
|
||||||
emit q->targetItemReached(target);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (fading) {
|
|
||||||
opacity = fadeIn?progress:1-progress;
|
|
||||||
if (!fadeIn && qFuzzyCompare(opacity+1, (qreal)1.0)) {
|
|
||||||
immediate = true;
|
|
||||||
q->hide();
|
|
||||||
immediate = false;
|
|
||||||
}
|
|
||||||
} else if (oldGeometry != newGeometry) {
|
|
||||||
q->setGeometry(oldGeometry.x() + (newGeometry.x() - oldGeometry.x()) * progress,
|
|
||||||
oldGeometry.y() + (newGeometry.y() - oldGeometry.y()) * progress,
|
|
||||||
oldGeometry.width() + (newGeometry.width() - oldGeometry.width()) * progress,
|
|
||||||
oldGeometry.height() + (newGeometry.height() - oldGeometry.height()) * progress);
|
|
||||||
}
|
|
||||||
|
|
||||||
q->update();
|
|
||||||
emit q->animationStep(progress);
|
|
||||||
}
|
|
||||||
|
|
||||||
void ItemBackgroundPrivate::targetDestroyed(QObject*)
|
|
||||||
{
|
|
||||||
target = 0;
|
|
||||||
q->setTargetItem(0);
|
|
||||||
}
|
|
||||||
|
|
||||||
void ItemBackgroundPrivate::frameSvgChanged()
|
|
||||||
{
|
|
||||||
qreal l, t, r, b;
|
|
||||||
frameSvg->getMargins(l, t, r, b);
|
|
||||||
q->setContentsMargins(l, t, r, b);
|
|
||||||
q->update();
|
|
||||||
emit q->appearanceChanged();
|
|
||||||
}
|
|
||||||
|
|
||||||
void ItemBackgroundPrivate::refreshCurrentTarget()
|
|
||||||
{
|
|
||||||
q->setTargetItem(target);
|
|
||||||
}
|
|
||||||
|
|
||||||
} // Plasma namespace
|
|
||||||
|
|
||||||
|
|
||||||
#include "moc_itembackground.cpp"
|
|
||||||
|
|
||||||
|
|
|
@ -1,122 +0,0 @@
|
||||||
/***************************************************************************
|
|
||||||
* Copyright 2009 by Alessandro Diaferia <alediaferia@gmail.com> *
|
|
||||||
* Copyright 2009 by Marco Martin <notmart@gmail.com> *
|
|
||||||
* *
|
|
||||||
* This program is free software; you can redistribute it and/or modify *
|
|
||||||
* it under the terms of the GNU Library General Public License as *
|
|
||||||
* published by the Free Software Foundation; either version 2, or *
|
|
||||||
* (at your option) any later version. *
|
|
||||||
* *
|
|
||||||
* This program is distributed in the hope that it will be useful, *
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
|
||||||
* GNU General Public License for more details. *
|
|
||||||
* *
|
|
||||||
* You should have received a copy of the GNU General Public License *
|
|
||||||
* along with this program; if not, write to the *
|
|
||||||
* Free Software Foundation, Inc., *
|
|
||||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA . *
|
|
||||||
***************************************************************************/
|
|
||||||
|
|
||||||
#ifndef ITEMBACKGROUND_H
|
|
||||||
#define ITEMBACKGROUND_H
|
|
||||||
|
|
||||||
#include <QtGui/QGraphicsWidget>
|
|
||||||
|
|
||||||
#include <plasma/plasma_export.h>
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @class ItemBackground plasma/widgets/itembackground.h
|
|
||||||
*
|
|
||||||
* @short a background for QGraphicsWidget based item views with animation effects
|
|
||||||
*
|
|
||||||
* @since 4.4
|
|
||||||
*/
|
|
||||||
namespace Plasma {
|
|
||||||
|
|
||||||
class FrameSvg;
|
|
||||||
class ItemBackgroundPrivate;
|
|
||||||
|
|
||||||
class PLASMA_EXPORT ItemBackground : public QGraphicsWidget
|
|
||||||
{
|
|
||||||
Q_OBJECT
|
|
||||||
Q_PROPERTY(QRectF target READ target WRITE setTarget)
|
|
||||||
Q_PROPERTY(QGraphicsItem* targetItem READ targetItem WRITE setTargetItem)
|
|
||||||
Q_PROPERTY(qreal animationUpdate READ animationUpdate WRITE setAnimationUpdate)
|
|
||||||
|
|
||||||
public:
|
|
||||||
ItemBackground(QGraphicsWidget *parent = 0);
|
|
||||||
~ItemBackground();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets a new target geometry we want at the end of animation
|
|
||||||
*
|
|
||||||
* @param newGeometry the final geometry target
|
|
||||||
*/
|
|
||||||
void setTarget(const QRectF &newGeometry);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @return the current target rect; may be empty if there is no target currently set
|
|
||||||
*/
|
|
||||||
QRectF target() const;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* set the ItemBackground geometry to be the target geometry, plus the ItemBackground margins
|
|
||||||
*/
|
|
||||||
void setTargetItem(QGraphicsItem *target);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @return the target item, if any
|
|
||||||
*/
|
|
||||||
QGraphicsItem *targetItem() const;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @reimp from QGraphicsWidget
|
|
||||||
*/
|
|
||||||
void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget);
|
|
||||||
|
|
||||||
Q_SIGNALS:
|
|
||||||
/**
|
|
||||||
* Emitted when the visual layout and appearance changes. Useful for synchronizing
|
|
||||||
* content margins.
|
|
||||||
*/
|
|
||||||
void appearanceChanged();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Emitted at each animation frame. Useful for synchronizing item animations
|
|
||||||
*/
|
|
||||||
void animationStep(qreal progress);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Emitted when the target has been reached. Useful to consider this instead of
|
|
||||||
* the corresponding hoverEnterEvent;
|
|
||||||
*/
|
|
||||||
void targetReached(QRectF);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Emitted when the target has been reached. Useful to consider this instead of
|
|
||||||
* the corresponding hoverEnterEvent;
|
|
||||||
*/
|
|
||||||
void targetItemReached(QGraphicsItem *);
|
|
||||||
|
|
||||||
protected:
|
|
||||||
QVariant itemChange(GraphicsItemChange change, const QVariant &value);
|
|
||||||
bool eventFilter(QObject *watched, QEvent *event);
|
|
||||||
bool sceneEventFilter(QGraphicsItem *watched, QEvent *event);
|
|
||||||
void resizeEvent(QGraphicsSceneResizeEvent *);
|
|
||||||
|
|
||||||
private:
|
|
||||||
void setAnimationUpdate(qreal progress);
|
|
||||||
qreal animationUpdate() const;
|
|
||||||
|
|
||||||
private:
|
|
||||||
Q_PRIVATE_SLOT(d, void targetDestroyed(QObject*))
|
|
||||||
Q_PRIVATE_SLOT(d, void frameSvgChanged())
|
|
||||||
Q_PRIVATE_SLOT(d, void refreshCurrentTarget())
|
|
||||||
|
|
||||||
friend class ItemBackgroundPrivate;
|
|
||||||
ItemBackgroundPrivate * const d;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
|
Loading…
Add table
Reference in a new issue