mirror of
https://github.com/qTox/qTox.git
synced 2024-03-22 14:00:36 +08:00
04dc650596
When hovering over the "attach file" button in the chat form, an additional button for the screenshot functionality will 'fly out' to the left, showing a computer monitor as icon. Leaving the attach file or the take screenshot button will collapse the fly out again. Bug: Moving the mouse over the fly out and then back again to the attach button collapses the fly out. Will sort this out later. Also used the opportunity to rename headers from hpp -> h extension I added earlier.
65 lines
2.0 KiB
C++
65 lines
2.0 KiB
C++
/*
|
|
Copyright (C) 2014 by Project Tox <https://tox.im>
|
|
|
|
This file is part of qTox, a Qt-based graphical interface for Tox.
|
|
|
|
This program is libre software: you can redistribute it and/or modify
|
|
it under the terms of the GNU General Public License as published by
|
|
the Free Software Foundation, either version 3 of the License, 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 COPYING file for more details.
|
|
*/
|
|
|
|
#include "toolboxgraphicsitem.h"
|
|
|
|
#include <QPainter>
|
|
|
|
ToolBoxGraphicsItem::ToolBoxGraphicsItem()
|
|
{
|
|
this->opacityAnimation = new QPropertyAnimation(this, QByteArrayLiteral("opacity"), this);
|
|
|
|
this->opacityAnimation->setKeyValueAt(0, this->idleOpacity);
|
|
this->opacityAnimation->setKeyValueAt(1, this->activeOpacity);
|
|
this->opacityAnimation->setDuration(this->fadeTimeMs);
|
|
|
|
setOpacity(this->idleOpacity);
|
|
}
|
|
|
|
ToolBoxGraphicsItem::~ToolBoxGraphicsItem()
|
|
{
|
|
|
|
}
|
|
|
|
void ToolBoxGraphicsItem::hoverEnterEvent(QGraphicsSceneHoverEvent* event)
|
|
{
|
|
startAnimation(QAbstractAnimation::Forward);
|
|
QGraphicsItemGroup::hoverEnterEvent(event);
|
|
}
|
|
|
|
void ToolBoxGraphicsItem::hoverLeaveEvent(QGraphicsSceneHoverEvent* event)
|
|
{
|
|
startAnimation(QAbstractAnimation::Backward);
|
|
QGraphicsItemGroup::hoverLeaveEvent(event);
|
|
}
|
|
|
|
void ToolBoxGraphicsItem::startAnimation(QAbstractAnimation::Direction direction)
|
|
{
|
|
this->opacityAnimation->setDirection(direction);
|
|
this->opacityAnimation->start();
|
|
}
|
|
|
|
void ToolBoxGraphicsItem::paint(QPainter* painter, const QStyleOptionGraphicsItem* option, QWidget* widget)
|
|
{
|
|
painter->save();
|
|
painter->setPen(Qt::NoPen);
|
|
painter->setBrush(QBrush(QColor(0xFF, 0xE2, 0x82)));
|
|
painter->drawRect(childrenBoundingRect());
|
|
painter->restore();
|
|
|
|
QGraphicsItemGroup::paint(painter, option, widget);
|
|
}
|